Microsoft ExcelでグラフをPNGまたはGIFファイルに保存するにはどうすればよいですか?


27

Microsoft ExcelでグラフをPNGまたはGIFファイルに保存するにはどうすればよいですか?

HTMLファイルとして保存し、そこに作成された画像を使用できることは知っていますが、他の不要なファイルを作成しない方法があると思います。アドインが推奨オプションである場合、アドインをインストールできてうれしいです。

それが重要な場合は、Excel 2003および2007を使用しています。


:ここで説明し、あなたのためにそれを行いますExcelアドイン(無料)へのリンクの強化輸出チャート手順
ジョンペルチェ

回答:


34

Excelにはこの機能に対するユーザーアクセス可能なサポートがありませんが、この機能を簡単に回避するか、この機能提供されているVBAを掘り下げることができます。


「ワンショット」エクスポート

  • グラフを選択します(内部コンポーネントではなく、グラフ全体です。境界線を選択します)。
  • コピーします(ctrl-c、コピーを右クリック、好きなもの)。
  • MSペイントを開きます。
  • 貼り付け(最初に画像サイズを最小化することをお勧めします。画像サイズに合わせて拡大されますが、縮小されません)。
  • 必要に応じて保存します。

一括エクスポート

おそらくActiveChart.ExportVBAマクロでの使用を検討する必要があります。これにより、ファイルパスを指定し、Excelで作業を実行できます。

以下は、私がまとめた作業プロトタイプです。これを実行すると、アクティブなワークブック内のすべてのチャートがそのファイルと同じフォルダーにPNG形式でエクスポート_chart##され、ファイル名に追加されます(##番号は増加します)。

それはしない任意の安全性チェックを(そのファイルを上書きしてしまいます!)を実行していない任意のエラーチェックが含まれています。それはないだろう防止は、ファイルの場所に書き込むことをあなたはまだ、ブックを保存していない場合は、場所は読み取り専用または何か他の仕事します。これはExcel 2003でしかテストしていません(現時点ではこれで十分です)。

言い換えれば、自己責任使用してください。これは基本的な作業例としてのみ使用することを目的としてます。

'small nicety to ensure two-digits for better file sorting'
Function NiceFileNumber(num As Integer) As String
    If num < 10 Then
        NiceFileNumber = "0" & num
    Else
        NiceFileNumber = num
    End If
End Function

'the real function'
Sub ExportAllCharts()
    Dim i As Integer, exportCount As Integer
    Dim fileNum As String, fileBase As String
    Dim sheetObj As Worksheet
    Dim chartObj As Chart

    'current file location and name, with extension stripped'
    fileBase = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".") - 1)
    exportCount = 0

    'First, export all charts that are in their own sheets'
    For Each chartObj In ActiveWorkbook.Charts
        fileNum = NiceFileNumber(exportCount)
        exportCount = exportCount + 1

        'Do the export'
        chartObj.Export fileBase & "_chart" & fileNum & ".png"
    Next

    'Then, export all charts that are embedded inside normal sheets'
    For Each sheetObj In ActiveWorkbook.Worksheets
        For i = 1 To sheetObj.ChartObjects.count
            fileNum = NiceFileNumber(exportCount)
            exportCount = exportCount + 1

            'Do the export'
            sheetObj.ChartObjects(i).Activate
            ActiveChart.Export fileBase & "_chart" & fileNum & ".png"
        Next i
    Next
End Sub

注:'両端のsにコメントを入れましたが、これは必要ありませんが、ここで正しく色付けされていることを確認するのに役立ちます。


私は、ボタンを押すだけで、現在のスプレッドシートと同じフォルダにエクスポートする方法を持っていることを好むだろう
fmark

@fmark-それがマクロの出番ActiveChart.Export ActiveWorkbook.Path & "\chart.png"です。ツールバーボタンにバインドされたマクロ内のような(ただし、少し賢いかもしれません!)仕事をするでしょう。
DMA57361

@fmark、退屈して数分でしたので、もっと完全なものをまとめました。編集内容を確認してください。これにより、非常に確実な出発点が得られると思います。
DMA57361

乾杯!私はそれに旋回を与えます。
fmark

4

最良の方法は、ExcelファイルをHTMLとして保存することです。

次に、画像が保存されているフォルダに移動すると、目的のPNG画像が表示されます。


これが本当に最速の方法であることに完全に同意する必要があります。はるかに。
ジーフ

3

PNGに安全に変換するには、Excelから図をコピーし、Power Pointのスライドに貼り付けてから、次の手順を実行します。

[ 名前を付けて保存] →[ その他の形式]を選択し、目的の形式を選択します。次に、現在のスライドのみに適用するか、すべてのスライドに適用するかを尋ねられます。すべてのスライドを選択すると、指定したディレクトリにフォルダーが作成され、選択した形式で各スライドが独自のファイルに保存されます。

それほどエレガントではありませんが、ファイルだけが必要な場合は十分に高速であり、同じグラフでプレゼンテーションを既に作成している場合に特に役立ちます。


2

古いスレッドですが、万が一誰かがGoogleからここに来た場合に備えて:Excel 2011 for Macには、これを行うために右クリックメニューに[画像として保存]オプションがあります。


Excelのバージョン 私のExcel 2007には間違いなくこれがありません。7年前のOfficeに固執することは、おそらく「コスト削減策」です。
オーガ詩sal 33

Excel 2011 for Macは私が使用しているものです。
デイブマリガン14

0

Excel 2010では、次の方法でこれを行うことができます。

  1. チャートをクリックして選択します。
  2. Ctrlキーを押しながらCキーを押すか、右クリックして[コピー]を選択してコピーします。
  3. グラフィック編集プログラムに切り替えます(Paint.netを使用しました)。
  4. ペースト。

その後、任意の形式で画像を保存できます。


0

Greenshot(スクリーンキャプチャソフトウェア)を使用している場合は、Excelでグラフをコピー(Ctrl+ C)し、Greenshotのアイコンを右クリックして、[ クリップボードから画像を開く ]を選択して保存します。グラフィックエディターを使用する必要はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.