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

スポンサーリンク

セル範囲を画像としてコピーして自由に貼り付け

前回ExcelVBAでバーコードを作成するコードを紹介しましたが、セルに直接色付けをしたバーコード一覧表は誤って他の行のバーコードを読んでしまって問題が生じました。

そこでバーコードの読み誤りを減らすことを目的として簡単に実行できる方法を探していたところ、特定のセル範囲を画像としてコピーする機能を見つけました。
今回はすごく簡単なコードになりますが、セル範囲を画像としてコピーする方法をご紹介します。

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

特定のセル範囲をコピーするコードの例は下記の通りです。

Range(Cells(1, 12), Cells(1, 108)).CopyPicture Appearance:=xlPrinter, Format:=xlPicture

Appearangeはコピー形式を指定する引数で、画面表示と近い「xlScreen」印刷時のイメージと同じ「xlPrinter」のいずれかを選択します。
引数Formatは画像の形式を指定しする引数で、「xlPicture」と「xlBitmap」のいずれかを選択します。

私は大量のバーコードを印刷して使用する目的でコードを書いたため、ファイルが軽くなる(と思われる)上記の引数で設定しました。
出力した画像のサイズや位置を変更する場合は下記のように変数に格納して処理します。

Sub セルを画像として貼り付け()
Range(Cells(1, 12), Cells(1, 108)).CopyPicture Appearance:=xlPrinter, Format:=xlPicture
Cells(1, 2).PasteSpecial
Set Shp = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
’位置とサイズを適当に合わせる
Shp.Width = Shp.Width / 2
Shp.Top = Shp.Top + 10
Set Shp = Nothing
End Sub

Widthは幅、Heightは高さ、Topは上からの位置、Leftは左からの位置でセルの大きさ、貼り付けたい場所などで修正必要です。
バーコードを実際にコピーして画像として貼り付ける方法はこちらの記事でご紹介します。

コメント