0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Excelグラフを画像として保存する方法(C# および VBA)

Last updated at Posted at 2025-05-30

Excelでのレポート自動生成や、グラフを他のドキュメントで再利用する場面では、グラフを画像として保存するニーズがよくあります。たとえば、PowerPointレポートへの埋め込み、メールでの共有、Webでの可視化表示などに活用されます。C# を使って複数のグラフを一括で画像として出力することも、VBA を使って Excel 内からワンクリックで画像化することも可能です。

本記事では、C# および VBA を使って Excel 内のグラフを画像として保存する方法について、コード例と操作手順を交えて詳しく解説します。


C# を使って Excel グラフを画像として保存する

.NET 環境では、Free Spire.XLS for .NET を使用することで、Excel ファイル内のグラフを .jpg 形式の画像として簡単に出力できます。

Spire.XLS のインストール

NuGet パッケージマネージャーで以下のコマンドを実行します:

Install-Package FreeSpire.XLS

C# のサンプルコード

using Spire.Xls;
using System.Drawing;

Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx");

// すべてのワークシートとグラフを走査し、画像として保存
foreach (Worksheet sheet in workbook.Worksheets)
{
    foreach (Chart chart in sheet.Charts)
    {
        Bitmap chartImage = chart.SaveToImage();
        chartImage.Save($"output/{sheet.Name} - {chart.ChartTitle}.jpg");
    }
}
workbook.Dispose();

操作の流れ

  1. 既存の Excel ファイルを読み込む
  2. すべてのワークシートをループ処理
  3. 各ワークシート内の Chart オブジェクトを取得
  4. SaveToImage() メソッドで画像化
  5. .jpg ファイルとして保存

利用シーン例:C# でのバッチ処理や、レポート生成システムへの組み込みなど


VBA を使って Excel グラフを画像として保存する

Excel の UI から直接グラフを画像として保存したい場合は、VBA マクロを使うと簡単に実現できます。外部ライブラリやアドインの導入は不要です。

VBA のコード例

Sub SaveAllChartsAsImages()
    Dim ws As Worksheet
    Dim chartObj As ChartObject
    Dim folderPath As String
    Dim chartIndex As Integer
    Dim fileName As String

    ' 保存先フォルダの設定
    folderPath = ThisWorkbook.Path & "\Charts"
    If Dir(folderPath, vbDirectory) = "" Then MkDir folderPath

    chartIndex = 1 ' ファイル名用の番号付け

    ' すべてのワークシートを走査
    For Each ws In ThisWorkbook.Worksheets
        ' 各ワークシート内のグラフオブジェクトを取得
        For Each chartObj In ws.ChartObjects
            fileName = folderPath & "\" & ws.Name & "_Chart" & chartIndex & ".jpg"
            chartObj.Chart.Export Filename:=fileName, FilterName:="JPG"
            chartIndex = chartIndex + 1
        Next chartObj
    Next ws

    MsgBox "すべてのグラフを画像として保存しました。", vbInformation
End Sub

実行手順

  1. Excel ファイルを開く
  2. Alt + F11 キーで VBA エディタを起動
  3. [挿入] > [標準モジュール] を選択し、新規モジュールを追加
  4. 上記コードを貼り付ける
  5. F5 キーでマクロを実行
  6. 現在の Excel ファイルと同じディレクトリに Charts フォルダが作成され、すべてのグラフが .jpg 形式で保存されます

利用シーン例:開発不要で Excel 内から手軽にグラフ画像を取得したい一般ユーザー向け


出力例

以下は C# を使って出力したグラフ画像の一例です:

Excelのグラフを画像として保存する効果


まとめ

方法 メリット 想定ユーザー
C# + Spire.XLS バッチ処理対応、システム組み込み可能、自動化に最適 開発者、業務システム運用者
Excel VBA マクロ 追加インストール不要、操作が直感的 一般ユーザー、非エンジニア

グラフを自動で画像化したい場合でも、手動で素早く保存したい場合でも、これら2つの方法で多様なニーズに対応可能です。

さらに Excel ファイル処理の詳細を知りたい方は、以下のリソースも参考にしてください:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?