【VBA】セル範囲を画像としてコピーする|CopyPicture
作成日:2022-12-28
更新日:2025-10-04

セル範囲を画像としてコピーする

セル範囲は、行番号と列番号で指定してる
' Copy selected range as picture|指定範囲を画像としてコピー
' 開始行・列と終了行・列を指定してスクリーンキャプチャ形式でコピー
Public Sub CopyAsPicture( _
ByVal ws As Worksheet, _
ByVal rowFirst As Long, _
ByVal colFirst As Long, _
ByVal rowLast As Long, _
ByVal colLast As Long)
With ws
.Range(.Cells(rowFirst, colFirst), .Cells(rowLast, colLast)) _
.CopyPicture xlScreen, xlPicture
End With
End Sub
- この関数は 指定セル範囲を画像としてコピー するだけの単純処理。
CopyPicture
は 値コピーではなく描画イメージをクリップボードへ送る。xlScreen
とxlPicture
の組み合わせは 標準的なコピー形式。

xlScreen:画面表示に近い形式(規定値)
xlPicture:ピクチャ形式(規定値)
Detailed Explanation
引数の意味
- ws|ワークシート: コピー元シート
- rowFirst, colFirst: コピー開始位置(左上セル)
- rowLast, colLast: コピー終了位置(右下セル)
指定範囲を表す
.Range(.Cells(rowFirst, colFirst), .Cells(rowLast, colLast))
「画面表示のまま」「ピクチャ形式(メタファイル)」でクリップボードに送る
.CopyPicture xlScreen, xlPicture
この状態で Paste
すれば、図形としてワークシートに貼り付け可能
- Appearance (xlScreen / xlPrinter)
xlScreen
: 画面表示の見た目(速いが解像度低め)。xlPrinter
: 印刷品質(高精細、処理重い)。
- Format (xlPicture / xlBitmap)
xlPicture
: メタファイル形式(拡大縮小しても劣化少ない)。xlBitmap
: ビットマップ形式(そのまま画像、拡大すると荒れる)。
Referenced Insights & Citations
- Microsoft Docs. Range.CopyPicture method (Excel).
https://learn.microsoft.com/en-us/office/vba/api/excel.range.copypicture
| CopyPicture|コピー図形化 |
| xlScreen|画面表示 |
| xlPrinter|印刷品質 |
| xlPicture|メタファイル形式 |
| xlBitmap|ビットマップ形式 |
| Paste|貼り付け |
If you need high-quality exports,
use
use
xlPrinter, xlPicture
.
2022-12-28
編集後記:
この記事の内容がベストではないかもしれません。