VBAで自動化 VBA一覧 セル・値の取得と貼り付け 貼り付け

【VBA】貼り付け操作【値・数式・書式・行列の転置・加算貼り付けなど】

Excel VBA での貼り付け操作は、クリップボードのあるデータを指定された範囲に貼り付けるためのものです。

基本的な貼り付け操作に関する情報やそのバリエーションについてわかる記事になっています。

基本的な貼り付けする方法

A1セルの内容をB1セルにコピーするコードです。

Range("A1").Copy
Range("B1").PasteSpecial

PasteSpecial メソッドとは

Excel VBA でクリップボードにあるデータを特定の形式やオプションで範囲に貼り付けるための非常に強力なツールです。

PasteSpecial メソッドの主な引数と役割とは

貼り付け

  • xlPasteAll: すべての情報を貼り付けます。
  • xlPasteFormats: セルの書式のみを貼り付けます。
  • xlPasteFormulas: 数式のみを貼り付けます。
  • xlPasteValues: 値のみを貼り付けます。
  • xlPasteComments: コメントのみを貼り付けます。
  • xlPasteValidation:データの検証設定のみを貼り付けます。
  • xlPasteAllUsingSourceTheme: 全ての情報をソースのテーマを使用して貼り付けます。

操作

  • xlNone: 操作を指定しない(一応)。
  • xlAdd: 貼り付けるデータを既存のセルの値に加算します。
  • xlSubtract: 貼り付けるデータを既存のセルの値から減算します。
  • xlMultiply: 貼り付けるデータを既存のセルの値と乗算します。
  • xlDivide: 既存のセルの値を貼り付けるデータを付けて除算します。

スキップブランク

  • True: コピー元の範囲内で空白のセルを無視して、対象のセルのデータをそのまま保持します。
  • False: コピー元の範囲内のすべてのセル(空白を含む)を貼り付けます。

トランスポーズ

  • True: 行と列を書き換えてデータを貼り付けます。
  • False: データをそのままの形で貼り付けます。

値のみを貼る

Range("A1").Copy
Range("B1").PasteSpecial Paste:=xlPasteValues

書式のみを貼る

Range("A1").Copy
Range("B1").PasteSpecial Paste:=xlPasteFormats

値と書式を貼り付ける

Range("A1:A10").Copy
Range("B1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats

数式のみを貼り付ける

Range("A1:A10").Copy
Range("B1").PasteSpecial Paste:=xlPasteFormulas

行と列を転置して貼り付ける

Range("A1:B2").Copy
Range("C1").PasteSpecial Transpose:=True

貼り付けながら加算する

Range("A1:A10").Copy
Range("B1").PasteSpecial Operation:=xlAdd

貼り付け操作の注意点

VBAで貼り付け操作を行う場合は操作の終了後にExcelの選択範囲が点線でコピーや切り取り状態のままです。Application.CutCopyMode = Falseのコードでポイント線を止めることが望ましいです。これにより、コピーまたは切り取りモードを解除し、クリップボードからの誤操作による追加貼り付けを防ぎます。

-VBAで自動化, VBA一覧, セル・値の取得と貼り付け, 貼り付け