銀河鉄道

【VBA】セル範囲を画像としてコピーする|CopyPicture

サムネイル
[VBA]画像として貼り付けCopyPicture

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

セル範囲は、行番号と列番号で指定してる

' 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値コピーではなく描画イメージをクリップボードへ送る
  • xlScreenxlPicture の組み合わせは 標準的なコピー形式

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

| CopyPicture|コピー図形化 |
| xlScreen|画面表示 |
| xlPrinter|印刷品質 |
| xlPicture|メタファイル形式 |
| xlBitmap|ビットマップ形式 |
| Paste|貼り付け |

If you need high-quality exports,
use xlPrinter, xlPicture.

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧