Excel

【Excel】VBAマクロで別シートのセルの値を取得やコピー(範囲も:ループ:変数:入力:特定)する方法【Cells、Range、For Next】

当サイトでは記事内に広告を含みます

この記事ではVBAマクロで別シートのセルの値を取得し入力する方法について解説していきます。

ポイントとしてはCells関数、Range関数を使用することです。

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

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

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

 

VBAで別シートのセルの値を取得し入力する方法【シート2のD5を取得し、シート1のE6に入力:変数】【Cells】

それではまず、VBAで別シートのセルの値を取得し入力する方法について解説していきます。

具体的な例として、シート2のD5のセルの値を取得し、シート1のE6に入力する方法を見ていきましょう。

 

Cells関数を使用して、シート名を指定してセルを取得・入力します。

※後にループ処理などで処理しやすいよう、セル指定はCells(5, 4)といった記載にしております※

 

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


Sub cell_torikomi_hensuu()
    
    'シート2のD5のセルの値を変数「ataihennsuu」に代入
    Dim ataihennsuu As Variant
    ataihennsuu = Sheets("Sheet2").Cells(5, 4).Value
       
    'シート1のE6に変数「ataihennsuu」の値を入力
    Sheets("Sheet1").Cells(6, 5).Value = ataihennsuu
    
End Sub

 

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

このコードでは、まずDim文で変数「ataihennsuu」を宣言しています。

次に、Sheets(“Sheet2”).Cells(5, 4).Valueでシート2のD5のセルの値を取得し、変数「ataihennsuu」に代入しています。

最後に、Sheets(“Sheet1”).Cells(6, 5).Value = ataihensuuでシート1のE6に変数「ataihennsuu」の値を入力しています。

 

VBAで別シートのセルの値を取得し入力する方法【シート2のD2から最終行までをループで取得し、シート1のE2を先頭で貼り付け】【Range、For Next】

続いては、VBAで別シートのセルの値を取得し入力する方法について解説していきます。

具体的には、シート2のD2から最終行までのセルの値を、For Nextループを使用して1行ずつ取得し、シート1のE2を先頭セルとして貼り付けていきます。

ここではRange関数を使用して、開始セルと最終セルを指定して範囲を取得します。

 

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

  
Sub cell_torikomi_loop()

    Dim kaishigyou As Long, saishuugyou As Long
    Dim gyou As Long
    
    'シート2のD列の最終行を取得
    saishuugyou = Sheets("Sheet2").Cells(Rows.Count, 4).End(xlUp).Row
    
    'シート2のD2から最終行までループ
    For gyou = 2 To saishuugyou
        'シート2のD列の値を取得し、シート1のE列に入力
        Sheets("Sheet1").Cells(gyou, 5).Value = Sheets("Sheet2").Cells(gyou, 4).Value
    Next gyou
    
End Sub  

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

 

このコードでは、まずDim文で変数「kaishigyou」「saishuugyou」「gyou」を宣言しています。

次に、saishuugyou = Sheets(“Sheet2”).Cells(Rows.Count, 4).End(xlUp).RowでD列の最終行を取得しています。

For gyou = 2 To saishuugyouでD2から最終行までループ処理を行います。

ループ内では、Sheets(“Sheet1”).Cells(gyou, 5).Value = Sheets(“Sheet2”).Cells(gyou, 4).Valueでシート2のD列の値を取得し、シート1のE列に入力しています。

これにより、シート2のD2からD最終行までのセルの値が、シート1のE2からE最終行に1行ずつ貼り付けられますね(^^)/

 

まとめ VBAで別シートのセルの値を取得し(ループ:変数など)入力する方法【Cells、Range、For Next】

以上、VBAマクロで別シートのセルの値を取得し入力する方法について解説しました。

Cells関数を使ってシート名とセル番地を指定することで、別シートのセルの値を簡単に取得・入力することができます。

また、Range関数とFor Nextループを使用することで、連続した範囲のセルの値を一括で取得・入力することも可能です。

ぜひ参考にして、業務の効率化にお役立てください。