構文
Object.CopyPicture(Appearance, Format, Size)
設定項目は以下参照。
指定したオブジェクトを画像データとしてコピーします。
Excel2019の[ホーム]タブ→[コピー]→[図としてコピー(P)]と同様の動作です。
| 設定項目 | 内容 | 詳細 | 省略 |
| Object | オブジェクトを指定。 | Range | 不可 |
| Chart | |||
| ChartObject | |||
| ChartObjectsコレクション | |||
| Shape | |||
| OLEObject | |||
| OLEObjectsコレクション | |||
| Appearance | コピー形式を指定。 | xlScreen:画面表示に近い形式(既定値) | 可能 |
| xlPrinter:印刷時のイメージと同じ形式 | |||
| Format | ピクチャの形式を指定。 | xlPicture:ピクチャ形式(既定値) | 可能 |
| xlBitmap:ビットマップ形式 | |||
| Size | ピクチャのコピーサイズを指定。 ※グラフシートが対象の時のみ |
xlScreen:画面表示のサイズ(既定値) | 可能 |
| xlPrinter:印刷時サイズ |
CopyPictureメソッドのコードサンプル
Public Sub test()
'■セル範囲を画像としてコピーする(引数あり)
Range("A1:D15").CopyPicture Appearance:=xlScreen, Format:=xlPicture
Paste Range("E1")
'■セル範囲を画像としてコピーする(引数なし)
Range("A1:D15").CopyPicture
Paste Range("E1")
End Sub
注意点
- CopyPictureメソッドが失敗し、以下エラーが発生する場合があります。
実行時エラー1004’RangeクラスのCopyPictureメソッドが失敗しました。
上記エラーの場合、毎度出ない場合(何回かに一回失敗する/特定PCのみ発生する)であれば、
DoEventsで回避できるかもしれません。(コピーしている途中にVBAがペーストをしようとしているのを防ぐ為)
- ビットマップ形式(xlBitmap)で画像をコピーすると、画像のファイルサイズが大きくなります。
関連記事
クリップボードの中身を貼り付ける【Pasteメソッド】※PasteSpecialがおすすめ
形式を選択して貼り付ける【PasteSpecialメソッド】
セルを切り取る【Cutメソッド】【ExcelVBA】
セルをコピーする【Copyメソッド】【ExcelVBA】
コメント