「VBA上で作成した配列データをテキストファイルに出力したい。」
この記事では、こんな悩みを解決します。
具体的には、以下の画像に示すように、
①VBA上で配列を作成⇒データ代入
②配列の表形式を維持してテキストファイルに出力する
ということをやっていきたいと思います。
記事中で紹介するVBAコードをあなたの状況に合わせて微修正するだけです。
ぜひ最後までご覧ください。
それでは早速やっていきます!
配列を作成する方法
配列をテキストファイルに出力するには、まず配列がなければ始まりません。
今回はVBA上で以下のように配列を作成することにします。
◆配列作成コード
Dim list_sample(1, 2) As Variant
list_sample(0, 0) = "国語"
list_sample(0, 1) = "算数"
list_sample(0, 2) = "理科"
list_sample(1, 0) = 92
list_sample(1, 1) = 85
list_sample(1, 2) = 95
配列の作成方法についてもう少し、詳しく知りたい方は以下の記事を参考にしてください。
【エクセルVBA】一つの変数に複数データを代入!配列の概念を詳細解説! – ヒガサラblog
配列をテキストに出力する方法
次に先ほど作成した配列をテキストに出力するコードをご紹介します。
◆テキストファイルの出力コード
Dim i As Integer, j As Integer
Open ThisWorkbook.Path & "\output1.txt" For Output As #1
For i = 0 To UBound(list_sample, 1)
For j = 0 To UBound(list_sample, 2) - 1
Print #1, list_sample(i, j) & amp; vbTab;
Next
Print #1, list_sample(i, j)
Next
Close #1
このコードでは、マクロを実行するエクセルファイルと同じ保存場所にoutput1.txtというテキストファイルを作成し、そのテキストファイル内に配列内のデータを出力していっています。
もし、別の場所にテキストファイルを保存したい場合はOpen ThiesWorkbook・・・の部分をあなたの状況に応じて適宜変更してください。
また配列も上で作成したlist_sampleという名前になっていますので、ここもあなたの作成する配列名に変更してください。
最終的な完成形
というわけで配列作成&配列データをテキストファイルに出力する方法を、それぞれご紹介しました。
最後に、これらをくっつけたVBAコードの最終形をご紹介しておきます。
◆配列作成⇒表形式でテキスト出力するVBAコード
Sub list_output()
'配列の作成⇒データ代入
Dim list_sample(1, 2) As Variant
list_sample(0, 0) = "国語"
list_sample(0, 1) = "算数"
list_sample(0, 2) = "理科"
list_sample(1, 0) = 92
list_sample(1, 1) = 85
list_sample(1, 2) = 95
'配列のテキスト出力
Dim i As Integer, j As Integer
Open ThisWorkbook.Path & "\output1.txt" For Output As #1
For i = 0 To UBound(list_sample, 1)
For j = 0 To UBound(list_sample, 2) - 1
Print #1, list_sample(i, j) & amp; vbTab;
Next
Print #1, list_sample(i, j)
Next
Close #1
End Sub
念のためこのコードを実行してみましょう。
実行すると、このコードを記述している場所と同じフォルダ内に以下のようなテキストファイルが出力されていました。
問題なく出力されていますね。
今回は配列をテキスト出力する方法についての解説でしたが、エクセルシート上のデータも似たようなことをやれば出力可能です。
その方法は以下の記事でご紹介していますので、こちらもぜひご覧ください。
【VBA】セルデータをテキストに!表形式での出力演習! – ヒガサラblog
おわりに
というわけで今回はVBA上で作成した配列をテキストファイルに表形式で出力する方法についてご紹介しました。
これができれば、データ集計⇒テキスト保存という業務上よくありそうな一連の流れを実行できるようになるはずです。
ぜひやり方をマスターしておきましょう!
このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
・日々の残業時間を減らしたい。
・業務をもっと効率的にこなしたい。
・もっと勉強する時間を作りたい。
こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。
この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント