選択範囲を画像化させたいという案件もあるかと思います。
今回はマクロで選択範囲を画像化させる方法とフォルダーに保存する方法をご紹介します。
手順
画像化させる方法の重要なポイント①
ChartObjectsオブジェクトで土台を作る
画像化させる方法の重要なポイント②
CopyPictureメソッドで画像をコピー
画像化させる方法の重要なポイント③
Chartメソッドで画像をチャートとして張り付ける
流れを理解できれば選択範囲を画像化できます♪
サンプルコードは下記です
ではでは!
コメント
はじめまして、色々みてこちらにたどり着き
参考にさせていただいたのですが
同じようにマクロをコピーしたのですが
シート全体が画像として保存されます。
どうしたら選択範囲に出来ますでしょうか?
できれば1度でA1:C1・A2:C2・A3:C3を選択して
3つの画像を出力出来ますでしょうか?
よろしくお願いします
コメントありがとうございます。
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
ありがとうございます。
うまくいきました~
一つきになるのですがA1:C1で書き出し画像ですが
右端が少し余白がでます。
でも満足する物が出来ました。