作成した表やレポートの一部を、値や書式が変更されない「スナップショット」として別の場所に貼り付けたい、という場合があります。
VBAの.CopyPictureメソッドを使えば、セル範囲を見た目そのままの「図(画像)」としてコピーし、シート上に貼り付けることができます。これにより、元のデータが変更されても影響を受けない、固定されたレポート部品を簡単に作成できます。
この記事では、セル範囲を図としてコピー&ペーストする基本的な方法を解説します。
完成したVBAコード
以下が、「DataSheet」というシートのB2:E10の範囲をコピーし、「ReportSheet」シートのC3セルに図として貼り付けるVBAコードです。
Sub CopyRangeAsPicture()
' 変数を宣言します
Dim sourceRange As Range
Dim destinationCell As Range
'--- 設定 ---
' コピー元のセル範囲
Set sourceRange = ThisWorkbook.Worksheets("DataSheet").Range("B2:E10")
' 貼り付け先のセル
Set destinationCell = ThisWorkbook.Worksheets("ReportSheet").Range("C3")
'--- 設定ここまで ---
Application.ScreenUpdating = False
' --- 1. 指定した範囲を「図」としてコピー ---
' 引数を指定して、画面表示の見た目で、ピクチャ形式でコピーします
sourceRange.CopyPicture Appearance:=xlScreen, Format:=xlPicture
' --- 2. 貼り付け先のシートとセルをアクティブにする ---
destinationCell.Parent.Activate
destinationCell.Select
' --- 3. アクティブなシートに「図」として貼り付け ---
ActiveSheet.Pictures.Paste
' (任意) 貼り付けた図の名前などを設定
' With ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
' .Name = "Snapshot_Table"
' End With
Application.ScreenUpdating = True
MsgBox "セル範囲を図として貼り付けました。"
End Sub
コードのポイント解説
① セル範囲を図としてコピー: .CopyPicture
sourceRange.CopyPicture Appearance:=xlScreen, Format:=xlPicture
これが、セル範囲を「図」としてクリップボードにコピーする命令です。通常の.Copyとは異なり、セルデータそのものではなく、その範囲の見た目を画像情報としてコピーします。
.CopyPictureメソッドには、2つの重要な引数があります。
Appearance引数:xlScreen(規定値): 画面に表示されている通りにコピーします。通常はこちらを使用します。xlPrinter: 印刷した場合の見た目でコピーします。
Format引数:xlPicture(規定値): ピクチャ形式でコピーします。拡大・縮小しても劣化しにくいベクトル画像です。xlBitmap: ビットマップ形式でコピーします。昔の形式で、通常はピクチャ形式の方が高品質です。
② 図として貼り付け: .Pictures.Paste
ActiveSheet.Pictures.Paste
クリップボードに図としてコピーされた情報を、ワークシート上に貼り付けます。このメソッドを実行すると、現在アクティブなセル(.Selectで選択したセル)の左上隅を基点として、図が挿入されます。
貼り付けられた図は、VBA上ではShapeオブジェクトとして扱われるため、後からサイズや位置を調整することも可能です。
まとめ
セル範囲を「図」として固定し、シートに貼り付ける手順は以下の2ステップです。
- コピー元の
Rangeオブジェクトに対し、**.CopyPicture**メソッドを実行する。 - 貼り付け先のセルを選択し、**
ActiveSheet.Pictures.Paste**メソッドを実行する。
このテクニックは、以下のような場面で非常に有効です。
- ダッシュボード上に、特定の時点での集計表やグラフのスナップショットを配置したい場合。
- ユーザーによる編集や、数式の再計算による値の変動を防ぎたいレポート部品を作成したい場合。
- メール本文などに貼り付けるための、見栄えの良い表の画像を素早く生成したい場合。
CopyとCopyPictureを使い分けることで、VBAでのレポート作成の幅が大きく広がります。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
