構文
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】
コメント