@ポケじゃらし

音楽ゲームとかボーカロイドとか

ExcelVBAでテキストファイルを出力してみる


どうも、じゃらしです。

今回はExcelVBAのネタです。
ExcelVBAでテキストファイルを作成してみます。

今回のキモは「FileSystemObject」と「TextStream」というオブジェクトです。

これらのオブジェクトを使用するため、コーディングする前に参照設定で「Microsoft Scripting Runtime」にチェックを入れておきましょう。
f:id:twitpokej:20200130224945p:plain

ここでは、テキストファイルを新規に作成してみます。

Sub test()
  Dim fso As New FileSystemObject
  Dim ts As TextStream
  
  'テキストを作成する場所
  Dim filePath As String
  filePath = "C:\wk\test.txt"
  
  'テキストファイルを作成して編集する
  Set ts = fso.CreateTextFile(filePath)
  With ts
    .WriteLine "Write Line"
    .WriteBlankLines 3
    .Write "Write"
    .Close
  End With
  
  Set ts = Nothing
  Set fso = Nothing
  
End Sub


↑のスクリプトを実行すると、↓のテキストファイルが作成されます。

f:id:twitpokej:20200130230111p:plain

「FileSystemObject」には、ExcelVBA上でファイルやフォルダを操作するメソッドが用意されています。テキストファイルを作成するメソッド「CreateTextFile」を使用しました。

また、テキストファイルを扱うオブジェクトとして「TextStream」が登場します。
「TextStream」には、テキスト行を読み書きするメソッドがいくつか用意されています。
今回使用したメソッドは

  1. WriteLine -文字列を書き込む(改行あり)
  2. WriteBlankLines -指定した数だけ空白行を書き込む
  3. Write -文字列を書き込む(改行なし)
  4. Close -テキストファイルを閉じる

でした。

以上、それではまた。