【VBA】ループ処理を使用せずに、配列の設定値をセル(縦方向)へ貼り付ける【高速】

VBAで
 ・ループ処理を使用せずに
 ・簡易な方法で配列の設定値を
 ・セル(縦方向)へ貼り付け
できます!

配列
配列
セル(縦方向)へ貼り付け
セル(縦方向)へ貼り付け

ループ処理が不要のため、
処理の高速化が期待できます!

PR

VBAコード

ここでは例として、
 ・配列「arrEmployees」を作成し
 ・シート「sample」のセル「B2」から
 ・配列「employees」をセル(縦方向)へ設定
します。

Option Explicit

Sub sample()
    
    Dim arrEmployees As Variant
    Dim startRange As Range
    Dim endRange As Range
    
    '配列を作成
    arrEmployees = Array("田中", "佐藤", "小島", "飯島", "遠藤")
    
    '開始セルを取得
    Set startRange = Worksheets("sample").Range("B2")
    '最終セルを取得
    Set endRange = startRange.Offset(UBound(arrEmployees), 0)
    
    '配列をセルへ設定(縦方向)
    Range(startRange, endRange) = WorksheetFunction.Transpose(arrEmployees)
    
End Sub

「Array関数」を使用して、配列を作成します(5行目)。
※「Array関数を使用する場合、配列の型は「Variant」にします。

「開始セル」を取得します(13行目)。
※「Worksheetオブジェクト」の「Range」プロパティにより、「Rangeオブジェクト」を取得します。

「最終セル」を取得します(15行目)。
※「UBound関数」により、「配列の要素数」を取得します。
※「Rangeオブジェクト」の「Offset」プロパティにより、「Rangeオブジェクト」を取得します。

「WorksheetFunctionオブジェクト」の「Transpose」メソッドにより、配列の値をセルへ張り付けます(18行目)。
※貼り付けるセル範囲を指定するために、「開始セル」と「最終セル」を使用します。

PR

実行結果

配列の設定値をセル(縦方向)へ設定できました。

実行結果
実行結果
PR

参考

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

「Worksheetオブジェクト」の「Range」プロパティ


●Array関数


●UBound関数


●「Rangeオブジェクト」の「Offset」プロパティ


●「WorksheetFunctionオブジェクト」の「Transpose」メソッド

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