選択範囲をJPEG画像形式で保存するVBA:Excel

Excelの選択したセルの範囲を画像として保存するVBAを掲載しています。




Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ


Excel VBAで選択範囲をJPEG形式で保存するには下記の流れになります。

  1. ファイル保存ダイアログを表示し、保存ファイル名を設定します。
  2. 選択範囲を画像形式でコピー
    これは、[Shift]キー+編集メニューの「図のコピー」と同じです。
  3. 画像を一時貼り付ける為、埋め込みグラフオブジェクトを作成します。
  4. 埋め込みグラフに画像を貼り付けます。
  5. JPG形式でファイルに保存します。
  6. 埋め込みグラフを削除します。

別の画像形式で保存するには、 Exportメソッドのfilternameを変更します。

例えば、GIF形式の場合は  filtername:="GIF" とします。

関連するVBA「コピー&ペースト(画像でコピーする方法)」を掲載しています、参照してください。



Excel実行画面

「選択範囲をJPG保存」ボタンをクリックすると、選択しているB7:D13の範囲をJPEG形式で保存します。

JPEG保存シート

保存したJPEGファイルをペイントアプリで開きました。

選択範囲ピッタリでなく、少し余白があります。

ペイントでJPGファイルを表示

Excel VBA実行コード

Option Explicit

'ファイル保存ダイアログ
Private Function GetSaveFileName() As String
    Dim sfile As String

    sfile = Application.GetSaveAsFilename(fileFilter:="JPGファイル (*.jpg), *.jpg")
    If sfile = "False" Then
        GetSaveFileName = ""
    Else
        GetSaveFileName = sfile
    End If
End Function

Private Sub CommandButton1_Click()
    Dim rg As Range
    Dim cht As Chart
    Dim fina As String
    
    '保存ファイル名を取得
    fina = GetSaveFileName
    
    If fina <> "" Then
        '選択範囲を取得
        Set rg = Selection
        '選択した範囲を画像形式でコピー
        rg.CopyPicture appearance:=xlScreen, Format:=xlPicture
        '画像貼り付け用の埋め込みグラフを作成
        Set cht = ActiveSheet.ChartObjects.Add(0, 0, rg.Width, rg.Height).Chart
        '埋め込みグラフに貼り付ける
        cht.Paste
        'JPEG形式で保存
        cht.Export Filename:=fina, filtername:="JPG"
        '埋め込みグラフを削除
        cht.Parent.Delete
    End If
End Sub



Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved