エクセル 任意の選択範囲を画像化! 画像化したファイルをフォルダに保存する VBA マクロ

選択範囲を画像化させたいという案件もあるかと思います。

今回はマクロで選択範囲を画像化させる方法とフォルダーに保存する方法をご紹介します。

 

手順

 

画像化させる方法の重要なポイント①

ChartObjectsオブジェクトで土台を作る

 

画像化させる方法の重要なポイント②

 

CopyPictureメソッドで画像をコピー

 

画像化させる方法の重要なポイント③

 

Chartメソッドで画像をチャートとして張り付ける

 

流れを理解できれば選択範囲を画像化できます♪

 

サンプルコードは下記です

画像取得マクロ


ではでは!

コメント

  1. cazz より:

    はじめまして、色々みてこちらにたどり着き
    参考にさせていただいたのですが
    同じようにマクロをコピーしたのですが
    シート全体が画像として保存されます。
    どうしたら選択範囲に出来ますでしょうか?
    できれば1度でA1:C1・A2:C2・A3:C3を選択して
    3つの画像を出力出来ますでしょうか?
    よろしくお願いします

    • youjie youjie より:

      コメントありがとうございます。

      3度ループさせて画像出力させます
      下記のようなマクロになるかと思います

      Option Explicit

      Sub GetPic()

      Dim ws As Worksheet
      Dim Rng As Range
      Dim Ind As Long
      Dim Spath As String
      Spath = ThisWorkbook.Path
      Set ws = ActiveSheet
      Ind = 0
      Do While Ind < 3 Set Rng = Range("A1:C1").Offset(Ind) '範囲を指定 Rng.CopyPicture Format:=xlScreen, Format:=xlBitmap '範囲をコピー '画像挿入するための土台であるチャートオブジェクトを挿入 '引数にはチャートオブジェクトのサイズ(画像のサイズ)を指定 ws.ChartObjects.Add Rng.Left, Rng.Top, Rng.Width, Rng.Height '挿入したチャートオブジェクトに名前を付ける ws.ChartObjects(1).Name = "エクスポート用" With ws.ChartObjects("エクスポート用") .Select 'コピーした画像を張り付けるために選択する←これ重要 .Chart.Paste '画像を張り付ける .Chart.Export Spath & "\kimama" & Ind & ".jpg" 'フォルダに出力する .Delete 'ココは任意 End With Ind = Ind + 1 Loop MsgBox "処理完了" End Sub

      • cazz より:

        ありがとうございます。
        うまくいきました~

        一つきになるのですがA1:C1で書き出し画像ですが
        右端が少し余白がでます。
        でも満足する物が出来ました。

タイトルとURLをコピーしました