F0000024_配列をcsv形式の文字列に変換する

配列をcsv形式の文字列に変換する 関数リファレンス

この関数について

ExcelVBA(マクロ)では、シートやセル上だけでデータを処理していると行数が増えるほどに実行速度の低下を感じると思います。また100万行を超えるデータを扱うとなると、シートではデータを保持しきれずどうしても、変数や配列といったデータを保持する方法を使用することになります。また例えば複数の顧客データを統合し出力するといった場合にも100万行を超える場合、シートに出力することができないためcsv等でデータを保存する必要があります(2024/08/21:最大1,048,576行)。この関数は配列に保持しているデータをcsv形式の文字列として出力します。この関数については特筆すべき点があります。それはその実行速度です。100万行を超えるデータであっても数秒~数十秒で処理が完了してしまいます。※PCスペックや列数に処理速度は影響を受けます。

使い方 ①引数

■引数:target_2Dim_table
 渡せるのは2次元配列のみです。1次元目をレコード(行)、2次元目をカラム(列)として扱います。

使い方 ②返値

csv形式の文字列を返します。

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

Public Sub Test_ConvertArrayToCsv()

Dim csv_table(0 To 999999, 0 To 999) As String
Dim i As Long

For i = LBound(csv_table, 1) To UBound(csv_table, 1) Step 1
csv_table(i, 0) = Format(i, "000")
csv_table(i, 1) = i * 2
Next i

Debug.Print ConvertArrayToCsv(csv_table)

End Sub

【結果】csv形式の文字列を取得できました

サンプルコードを実行するとcsv形式の文字列がイミディエイトウィンドウに出力されます。100万行あるので、見切れてしまうと思います。またPCによってはメモリ不足エラーになることもあるかもしれません。その場合は、配列の大きさを調整して実行してみてください。

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

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

Comment