VBA を使用した選択貼り付け

Iqra Hasnain 2024年2月15日
VBA を使用した選択貼り付け

この記事では、VBA を使用してシート内のある場所から別の場所にデータをコピー アンド ペーストする方法について説明します。

VBA を使用した選択貼り付け

コピーと貼り付けにより、Excel での日常業務が簡素化されました。 VBA プログラミングを使いこなすには、貼り付け機能の考え方を学ぶ必要があります。

あるセルから別のセルにデータを貼り付ける方法は多数あります。 1つ目は代入演算子を使用する方法、2つ目は paste 関数を使用する方法、そして最後に pastespecial 関数を使用する方法です。

マクロを記録して、VBA paste メソッドを学習しましょう。 Excel のセル A1 にいくつかの値があるとします。 ここで、A1 から B3 にコピー アンド ペーストします。

マクロを記録する際に従う必要がある手順は次のとおりです。

  1. まず、Excel の [開発者] タブに表示される [マクロの記録] を選択する必要があります。
  2. マクロの記録をクリックするとすぐに、デフォルトのマクロの名前が表示されます。 あとは、[OK] をクリックするだけです。
  3. これで、すべてのアクティビティが記録されました。 今のところ、目的のセル (この場合は A1) を選択してコピーする必要があります。
  4. 次のステップは、Ctrl+C コマンドを押すことです。 これにより、選択したセルがコピーされます。
  5. 次に、Excel を使用してコピーしたものを貼り付ける宛先セル B3 を選択します。
  6. 貼り付けるには、Ctrl+V コマンドを押します。 これで、記録を停止できます。

A1 セルを選択するコードを以下に示します。

コード:

# vba
Range("A1").Select

セルがコピーされると、そのコードが選択されます。 Range("A1") の代わりにコピーします。これは、セルを選択した後にアクティブ セルまたは選択範囲になるためです。 ここで、コーディングでは、選択として表示されます。

次に、次のセル A1 をコピーして貼り付けます。 コードを以下に示します。

コード:

# vba
Range("B3").Select

最後に、値が貼り付けられます。

貼り付けるセルを選択したため、コードには Active Sheet と表示されます。 アクティブ シートのアクティブ セルとして表示されます。

このステップのコードは ActiveSheet.Paste を使用しています。 これで VBA の paste メソッドは終了です。

計算式は以下の通りです。

Expression.Paste (Dest, Url)

貼り付けるために選択したワークシート名であるため、式を理解できます。

VBAを使用して同じシートにコピーして貼り付けます

では、同じシートで作業中に VBA の paste メソッドを使用する方法を見てみましょう。 セル B1 から B5 までのいくつかの値を取得したとします。

必要に応じてコードの書き方を学びます。 以下にいくつかの手順を示します。

最初のステップは、目的のデータ範囲をコピーして何かを貼り付けることです。 この例では、以下に示すように、B1 から B5 までの範囲をコピーします。

コード:

# vba
Sub CopyExample()
Range("B1:B5").Copy
End Sub

値をコピーしたら、貼り付ける場所を指定する必要があります。 この目的のために、ワークシート名を選択します。 同じシートに貼り付けたいので、以下に示すようにアクティブ シート オブジェクトを使用します。

コード:

# vba
Sub CopyExample()
Range("B1:B5").Copy
ActiveSheet.Paste
End Sub

paste メソッドを選択したら、宛先がどこにあるかを判断する必要があります。 この場合、以下に示すように、D1 から D5 の範囲です。

コード:

# vba
Sub CopyExample()
Range("B1:B5").Copy
ActiveSheet.Paste Destination:=Range("D1:D5")
End Sub

出力:

最初に VBA の例で選択を貼り付けます

F5 キーを押すと、このコードを簡単に実行できます。これにより、データを B1 から B5 にコピーし、D1 から D5 に貼り付けることができます。

VBA を使用して特別なプロパティをコピーして貼り付ける

この VBA 機能を使用して、セルの特定のプロパティ (特殊な形式、値など) をコピーして貼り付けることもできます。 空白のスキップや転置などの重要な貼り付け操作を実行できます。

コピーしたセルのいくつかの特別なプロパティをコピーして貼り付けようとする例を見てみましょう。 xlPasteFormats を使用して、コピーしたセルの書式のみを貼り付けることができます。

xlPasteColumnWidths を使用して、コピーした列の幅を貼り付けることができます。 xlPasteFormulas を使用して、コピーしたセルから数式を貼り付けることもできます。

コード:

# vba
Sub SpecialCopying()

Range("B1").Copy

Range("D1").PasteSpecial Paste:=xlPasteFormats

Range("D1").PasteSpecial Paste:=xlPasteColumnWidths

Range("D1").PasteSpecial Paste:=xlPasteFormulas

Application.CutCopyMode = False
End Sub