F0000022_配列を指定位置へ貼り付ける

F0000022_配列を指定位置へ貼り付ける 関数リファレンス

この関数について

ExcelVBA(マクロ)では高級なプログラミング言語とは異なり最初からブックやシートが用意されています。そのためデータをセル上でのみ扱ってRPA(自動化)ツールを作成することも可能です。しかし、大量の顧客データなどをすべてセル上で処理すると、目に見えて実行速度が低下します。画面更新を停止するなどの改善策もありますが、一番のおすすめはデータを変数や配列に格納して扱うことです。すでに紹介済のシート内の指定した表を配列で取得する(F0000007)関数で配列にデータを取り込むことができます。加工や集計を実施した後、このデータをcsvファイルなどにエクスポートすることもできますが、元の位置や、別のシートに貼り付けたい場合もあります。このページで紹介する関数では配列のデータを指定位置へ貼り付けることができます。

使い方 ①引数

■引数1:target_2Dim_table
 貼り付けたいデータが格納されている2次元配列を指定します。

■引数2:cast_table_in_var_type_code
 引数1の配列の2次元目と同じ要素数を持った1次元配列を渡します。この配列には貼り付けるデータの列方向のデータ型を指定します。指定できるデータ型は「vbString」、「vbLong」、「vbDouble」、「vbDate」、「vbVariant」。指定しない場合はVariant型とみなします。例えば8桁固定の製品コードなどはvbStringを指定すると先頭の0が消えません。

■引数3:target_range
 データを貼り付ける始点となるセルのRangeオブジェクト

使い方 ②返値

この関数に返値はありません。配列のデータを指定位置へ貼り付けて動作を終了します。

使い方 ③呼び出し方例(サンプルコード)

Public Sub Test_WriteArrayToRange()

Dim target_range As Range
Dim arr(1 To 2, 1 To 3) As Variant
Dim cast_table(1 To 3) As Long

Set target_range = ThisWorkbook.Worksheets(1).Range("A1")

arr(1, 1) = "01234567"
arr(1, 2) = "佐藤"
arr(1, 3) = "5,000円"

arr(2, 1) = "99999999"
arr(2, 2) = "加藤"
arr(2, 3) = "8,000円"

cast_table(1) = vbString

Call WriteArrayToRange(arr, cast_table, target_range)

End Sub

【結果】配列のデータをシートへ貼り付けることができました

上記、サンプルコードを実行すると1番目のシートのセルA1を起点とした「A1:C2」の範囲に配列のデータが貼り付けられます。cast_tableで1列目にString型を指定しているため、”01234567”の先頭の0が貼り付け後も保持されます。

この関数は関数リファレンスからコピペ可能です!

この記事のタイトルを検索窓へ貼り付けて関数を検索してみましょう。 表示されたコードをクリックするだけでコピー完了! あとは自身で作成したモジュールに貼り付けるだけでこの関数を利用できます。サンプルコードもあり! 関数リファレンストップへ

Comment