VBAでセルのコピー&値貼り付け|サンプルコード多数

Excel VBAでセルのコピーと値の貼り付けを行う方法は、頻繁に必要とされるスキルです。VBAで値で貼り付ける際にはPasteSpecialメソッドを使用します。この記事では、サンプルコードを元にセルのコピーとPasteSpecialメソッドを使っての値での貼付け方法について解説します。

目次

PasteSpecialメソッドの基本

メソッドの構文とは?

Range.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)という形で使用します。このメソッドは、コピーしたセル範囲に対して特定の形式や操作で貼り付けを行うためのものです。

基本的なコード例

Worksheets("Sheet1").Range("C1:D20").Copy
Worksheets("Sheet2").Range("B1").PasteSpecial _
    Paste:=xlPasteValues, _
    Operation:=xlNone, _
    SkipBlanks:=False, _
    Transpose:=False

このサンプルコードでは、Sheet1C1:D20の範囲をコピーして、Sheet2B1セルに値だけを貼り付けています。

設定項目の詳細解説

設定項目説明備考
Paste貼り付ける内容を指定します。xlPasteValues, xlPasteAllxlPasteValuesは値のみ、
xlPasteAllは全て(値、書式、コメントなど)を貼り付けます。
Operation算術操作を指定します。xlNone, xlMultiplyxlNoneは算術操作なし、
xlMultiplyは掛け算を行います。
SkipBlanks空白セルをスキップするかどうか。True, FalseTrueで空白セルをスキップ、
Falseで空白セルも貼り付けます。
Transpose行と列を転置するかどうか。True, FalseTrueで行と列を転置、
Falseでそのまま貼り付けます。

サンプルコード集

サンプル1:基本的な値の貼り付け

' Sheet1のC1:D20をコピー
Worksheets("Sheet1").Range("C1:D20").Copy
' Sheet2のB1に値だけを貼り付け
Worksheets("Sheet2").Range("B1").PasteSpecial Paste:=xlPasteValues

このコードは最も基本的な形です。Sheet1C1:D20をコピーして、Sheet2B1に値だけを貼り付けます。

サンプル2:書式も含めて貼り付け

' Sheet1のC1:D20をコピー
Worksheets("Sheet1").Range("C1:D20").Copy
' Sheet2のB1に全てを貼り付け
Worksheets("Sheet2").Range("B1").PasteSpecial Paste:=xlPasteAll

このコードは、Sheet1C1:D20をコピーして、Sheet2B1に値だけでなく書式も含めて貼り付けます。

サンプル3:行と列を転置して貼り付け

' Sheet1のC1:D20をコピー
Worksheets("Sheet1").Range("C1:D20").Copy
' Sheet2のB1に行と列を転置して貼り付け
Worksheets("Sheet2").Range("B1").PasteSpecial Paste:=xlPasteValues, Transpose:=True

このコードは、Sheet1C1:D20をコピーして、Sheet2B1に行と列を転置して値を貼り付けます。

FAQ

Q:書式も一緒に貼り付ける方法は?

A:PasteSpecialメソッドのPaste引数にxlPasteAllを指定すると、値と書式を一緒に貼り付けることができます。

Q:空白セルをスキップするには?

A:PasteSpecialメソッドのSkipBlanks引数にTrueを指定すると、空白セルをスキップして貼り付けます。

Q:行と列を転置して貼り付けるには?

A:PasteSpecialメソッドのTranspose引数にTrueを指定すると、行と列を転置して貼り付けることができます。

Q:貼り付け後に元のセル範囲をクリアするには?

A:貼り付け操作後にWorksheets("Sheet1").Range("A1:B10").ClearContentsのようにClearContentsメソッドを使用すると、元のセル範囲の内容をクリアできます。

Q:複数のシートに同じ内容を貼り付けるには?

A:VBAのループ構造を使用して、複数のシートに対して同じPasteSpecialメソッドを適用することで、複数のシートに同じ内容を貼り付けることができます。

Q:エラーが出た場合の対処法は?

A:エラーが出た場合は、まずエラーメッセージを確認してください。それが解決の手がかりになる場合が多いです。また、コードの各行でエラーチェックを行い、問題の箇所を特定することも有効です。

Q:貼り付け先のセルが既にデータが入っている場合は?

A:貼り付け先のセルに既にデータが入っている場合、PasteSpecialメソッドを使用すると、そのデータは上書きされます。上書きを避けたい場合は、事前にそのセルが空かどうかを確認するコードを追加する必要があります。

Q:貼り付けを一回で複数回行いたい場合は?

A:VBAのループ構造を使って、PasteSpecialメソッドを複数回適用することで、一度の操作で複数回の貼り付けが可能です。

関連動画

まとめ

Excel VBAでのセルのコピーと値の貼り付けは、多くの場面で非常に役立つスキルです。この記事で紹介した各設定項目とサンプルコードを理解し、効率的なデータ処理を行いましょう。特にPasteSpecialメソッドは多機能であり、その全ての機能を使いこなせるようになると、より高度な操作が可能になります。

Excelのショートカットキーの練習

当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。

下のスタートボタンを押して練習モードに入ります。
STARTSTOP
※入力モード切り替え ctrl + shift + alt + space
PRE
NEXT
現在の問題をリストから除外
除外したリストをリセット
現在の除外状況のURL取得
コピー
ガイドモード
リピートモード

※推奨ブラウザ Google Chrome

PUSH ENTER
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次