Excel VBA 複数セル、離れたセルに変数の値を一括で入力する

ExcelVBA-基礎編

セルにあらかじめ変数へ格納しているデータを入力する方法をご説明します。

単一のセルへの入力方法や、複数セルに一括で入力する方法も併せてご説明します。

その他のセルの操作方法については下記の記事をご覧ください。

単一のセルへ変数の値を入力

記述方法

変数に入れた内容の入力方法です。

変数を宣言して、変数に文字列や数字を格納してからセルへデータを入力します。

以下Sampleは2つの変数に文字列と数字を格納してからA1とB1に入力するコードです。

サンプルコード

Range

Sub Sample1()
    Dim myStr As String
    Dim myInt As Long
    
    myStr = "あいうえお"
    myInt = 12345
    Range("A1").Value = myStr
    Range("B1").Value = myInt
End Sub

Cells

Sub Sample2()
    Dim myStr As String
    Dim myInt As Long

    myStr = "あいうえお"
    myInt = 12345
    Cells(1, 1).Value = myStr
    Cells(1, 2).Value = myInt
End Sub

結果

複数セルへ変数の値を一括で入力

記述方法

複数のセルへ一括で入力する方法です。

複数のセルへ一括と言っても、内容が多岐にわたります。

1つ変数に1つの値を連続した複数のセルへ一括入力、離れたセルへ一括入力。

複数の値を持つ変数をセルへ一括入力する方法がなどがあります。

方法によって宣言も含めた記述が変わってきます。

連続するセルへ1つの値の変数を一括で入力する

まずは1つの値のみ格納している変数を連続したセルへ入力方法です。

Rangeであれば「Range(“A1:A5”).Value = 変数」のように範囲を指定して、セルへ反映します。

Cellsの場合は「Range(Cells(1, 1), Cells(5, 1)).Value = 変数」と行、列とCellsでアドレスを指定します。

Range

Sub Sample3()
    Dim myStr As String
    Dim myInt As Long

    myStr = "あいうえお"
    myInt = 12345
    Range("A1:A5").Value = myStr
    Range("B1:B5").Value = myInt
End Sub

Cells

Sub Sample4()
    Dim myStr As String
    Dim myInt As Long

    myStr = "あいうえお"
    myInt = 12345
    Range(Cells(1, 1), Cells(5, 1)).Value = myStr
    Range(Cells(1, 2), Cells(5, 2)).Value = myInt
End Sub

結果

変数に格納していた同じ値を複数のセルへ反映できました。

離れたセルへ1つの値の変数を一括で入力する

離れたセルは連続したセルと記述が異なります。

Rangeの場合は指定するセルを、それぞれカンマで区切ります

Cellsの場合は「Unionメソッド」を使用します。

離れたセルの選択方法については、「複数のセルを一括で選択、指定する方法」を参照ください。

Range

Sub Sample5()
    Dim myStr As String
    Dim myInt As Long

    myStr = "あいうえお"
    myInt = 12345
    Range("A1,B3,C5").Value = myStr
    Range("A3,B5,C7").Value = myInt
End Sub

Cells

Sub Sample6()
    Dim myStr As String
    Dim myInt As Long

    myStr = "あいうえお"
    myInt = 12345
    Union(Cells(1, 1), Cells(3, 2), Cells(5, 3)).Value = myStr
    Union(Cells(3, 1), Cells(5, 2), Cells(7, 3)).Value = myInt
End Sub

結果

複数の値を持つ変数を一括で入力する

複数の値を持つ変数使って一括で入力する方法です。

基本的に変数には1つの値を格納しますが、複数の値を格納することもできます。

より応用的に複数の値を扱う場合は、「配列の使い方(基礎編)」「配列の使い方(応用編)」を参照ください。

変数の宣言時に「Variant」を使用します。

変数へ一括で範囲指定して格納して、反映したい範囲を指定して出力します。

あらかじめA1~A5に入力しているデータを格納して、C1~C5へ一括で入力します。

Sub Sample7()

    Dim myArr As Variant
    
    myArr = Range(Cells(1, 1), Cells(5, 1)).Value
    
    Range(Cells(1, 3), Cells(5, 3)).Value = myArr

End Sub
タイトルとURLをコピーしました