ここでは、VBA で csv 形式のデータファイルを読み込み、エクセルシート上に展開するサンプルスクリプトを掲載しています。
スポンサーリンク
使用する csv ファイル
ここ紹介するスクリプトでは、以下の csv 形式のデータファイルを使用するものとします。
11,12,13 21,22,23,24 31,32,33,34,35
csv データを Excel シート上に貼り付ける
上記の csv ファイルを読み込みエクセルシート上に展開するサンプルスクリプトです。1行ずつ配列に格納したデータを一気にシート上に展開しています。詳細はサンプル内のコメントを参照ください。
' 変数宣言は必須 Option Explicit ' ボタンクリックイベント Private Sub CommandButton1_Click() Dim lineStr As String ' 1行読み込み用のバッファ Dim arrayStr As Variant ' 1行データを格納する配列 Dim rowIndex As Integer ' 出力する開始行のオフセット ' csv ファイルをオープン Open "E:\test.csv" For Input As #1 rowIndex = 0 ' シートには出力開始行から出力 ' ファイルの最後まで読み込む Do While Not EOF(1) ' CSV ファイルを1行読み込み Line Input #1, lineStr ' カンマ区切りで分割し配列に格納 arrayStr = Split(lineStr, ",") ' A1 セルを基点にして、列数を配列の要素数分広げ、行数のオフセット分ずらして展開する Range("A1").Resize(1, UBound(arrayStr) + 1).Offset(rowIndex) = arrayStr ' 行オフセットをインクリメント rowIndex = rowIndex + 1 Loop ' csv ファイルを閉じる Close #1 End Sub
スクリプトの動作結果
サンプルの csv ファイルをエクセルシート上に展開した結果は次の通りです。

csvデータをシートに展開した結果
はじめまして
マクロを使う機会があり、手法を探しているうちにこちらのサイトに
たどり着きました。CSVの取り込み方法、わかりやすいです。
1つ質問なのですが、マクロを実行した時に、別ページに展開できたら
いいなと思っているのですが、そのようなことは上記のソースでどこを
変更すれば実現できそうでしょうか?
お手数おかけしますがよろしくおねがいします。