Excel

【Excel】VBAマクロでセルコピー(別シート、範囲指定、別ブック、値のみ)する方法【Copy、PasteSpecial】

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事では、VBAマクロでセルコピー(別シート、範囲指定、別ブック、値のみ)する方法【Copy、PasteSpecial】について解説していきます。

ポイントとしては

☆Copy☆、☆PasteSpecial☆

を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

VBAマクロでセルコピー(範囲指定)し別シートに貼り付ける方法【書式もすべて】【Copy】

それではまず、VBAマクロでセルコピー(範囲指定)し別シートに貼り付ける方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KopiShiito()
    'KopiSuruHensuu: コピーする範囲を指定
    Dim KopiSuruHensuu As Range
    Set KopiSuruHensuu = Sheets("Sheet1").Range("A1:A10")

    'Shiito2: 貼り付けるシートを指定
    Dim Shiito2 As Worksheet
    Set Shiito2 = ThisWorkbook.Sheets("Sheet2")

    'コピー & 貼り付け
    KopiSuruHensuu.Copy Destination:=Shiito2.Range("A1")
End Sub

コードのAlt+F8を押し、マクロ選択画面でKopiShiito関数を実行します。

このコードでは、Sheet1のA1からA10までの範囲をコピーし、Sheet2のA1セルを開始点としてそのまま貼り付ける処理を行います。

 VBAマクロでセルコピー(範囲指定)し別シートに値のみ貼り付けする方法【PasteSpecial】

続いては、VBAマクロでセルコピー(範囲指定)し別シートに値のみ貼り付ける方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KopiAtaiDake()
    'KopiSuruHensuu: コピーする範囲を指定
    Dim KopiSuruHensuu As Range
    Set KopiSuruHensuu = Sheets("Sheet1").Range("A1:A10")

    'Shiito2: 貼り付けるシートを指定
    Dim Shiito2 As Worksheet
    Set Shiito2 = ThisWorkbook.Sheets("Sheet2")

    'コピー
    KopiSuruHensuu.Copy
    '値のみ貼り付け
    Shiito2.Range("B1").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End Sub

コードのAlt+F8を押し、マクロ選択画面でKopiAtaiDake関数を実行します。

このコードでは、Sheet1のA1からA10までの範囲をコピーし、Sheet2のB1セルを開始点として値のみを貼り付ける処理を行います。

VBAマクロでセルコピー(範囲指定)し別ブックの別シートに貼り付ける方法【書式もすべて】【Workbooks】

続いては、VBAマクロでセルコピー(範囲指定)し別ブックの別シートに貼り付ける方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KopiBettoBukku()
    'KopiSuruHensuu: コピーする範囲を指定
    Dim KopiSuruHensuu As Range
    Set KopiSuruHensuu = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")

    'BettoBukku: 貼り付けるブック・シートを指定
    Dim BettoBukku As Workbook
    Set BettoBukku = Workbooks("Book2.xlsx")
    Dim BettoShiito As Worksheet
    Set BettoShiito = BettoBukku.Sheets("Sheet1")

    'コピー & 貼り付け
    KopiSuruHensuu.Copy Destination:=BettoShiito.Range("A1")
End Sub

コードのAlt+F8を押し、マクロ選択画面でKopiBettoBukku関数を実行します。

このコードでは、現在のワークブックのSheet1のA1からA10までの範囲をコピーし、別のワークブック(Book2.xlsx)のSheet1のA1セルを開始点としてそのまま貼り付ける処理を行います。

まとめ