セル範囲を画像としてコピーする(CopyPictureメソッド)|Excel VBA |
対象をピクチャ(画像)としてクリップボードにコピーします。
Excel 2016/2013の[ホーム]タブ→[コピー]→[図としてコピー]、Excel 2010/2007の[ホーム]タブ→[貼り付け]→[図]→[図としてコピー]、Excel 2003以前の[Shift]キーを押しながら[編集]メニューを選択した時に表示される[図のコピー]の機能と同じです。
セル範囲を対象とした場合、そのセル範囲に埋め込まれている図形も一緒にコピーされます。なお、複数のセル範囲に対しては実行できません。
構文 Object.CopyPicture(Appearance, Format, Size)
設定項目 | 内容 |
---|---|
Object | Range,Chart,ChartObject, ChartObjectsコレクション, Shape, OLEObject,OLEObjectsコレクションオブジェクト |
Appearance | コピー形式を指定。画面表示に近い形式(xlScreen:既定値)、印刷時のイメージと同じ形式(xlPrinter) [省略可能] |
Format | ピクチャの形式を指定。ピクチャ形式(xlPicture:既定値)、ビットマップ形式(xlBitmap)[省略可能] |
Size | グラフシートが対象のときだけ、ピクチャのコピーサイズを指定。 画面表示のサイズ(xlScreen:既定値)、印刷時サイズ(xlPrinter) [省略可能] |
次のサンプルは、セル範囲B1:G12のイメージを画面表示に近い形式で、ピクチャとして新しく追加したシートに貼り付けます。
Sub CopyPictureSamp1()
Range("B1:G12").CopyPicture _
Appearance:=xlScreen, Format:=xlPicture
Worksheets.Add Before:=ActiveSheet
ActiveSheet.Paste
End Sub
ビットマップ形式で画像をコピーすると、画像のファイルサイズが大きくなりますので、単にワークシートなどに貼り付けるだけの用途の場合には、ピクチャ形式でコピーすることをお勧めします。