最近なんだか太ってきました←
食欲の秋ですから仕方ないですねー
食べるの楽しいですし。
お疲れ様です。なずなです。
重要回ですが、めんどくさいのでさらっと
今回ではテキストファイルを扱う操作を覚えます。
方法は実は何種類かあります。 今回はFSOオブジェクトを利用します。
ついでにクラスを使ってオブジェクトを利用する 感覚を身に着けると楽です。
最初に参照設定で Microsoft Scripting Runtimeにチェックをいれます。
テキストファイルを作成する。
Sub CreateTextFile() Dim fso As New Scripting.FileSystemObject Dim path Dim fileName path = ThisWorkbook.path & "\" fileName = "test.txt" fso.CreateTextFile (path & fileName) End Sub
さらっと作るだけ。
この手の作成や読み込みにはフルパス指定が基本です。
VBAを動かすファイルが存在するフォルダを対象にする方法も
一緒に覚えておきましょう。
引数で存在した場合に上書きするかどうかが選択できます。
変数宣言と同時にNewするかどうかはいろいろ意見があります。
覚えるのが楽なのでとりあえずこちらで。
テキストファイルに書き込む
Sub WriteAppendText() Dim fso As New Scripting.FileSystemObject Dim path Dim fileName path = ThisWorkbook.path & "\" fileName = "test.txt" Dim str str = "test" & " " & Now Dim stream As TextStream 'fso.OpenTextFile(path & fileName, ForAppending, True).WriteLine (str) Set stream = fso.OpenTextFile(path & fileName, ForAppending, True) stream.WriteLine (str) End Sub
前回作ったテキストファイルに1行追加します。
コメントアウトしてますが、1行でもさらっと書けます。
いちど変数に格納する方法もよく使うので一緒に覚えておきましょう。
テキストファイルを読み込む
Sub ReadText() Dim fso As New Scripting.FileSystemObject Dim path Dim fileName path = ThisWorkbook.path & "\" fileName = "test.txt" Dim str str = fso.OpenTextFile(path & fileName, ForReading, False).ReadAll Debug.Print str End Sub
ずばっとテキストファイルの中身を全部読み込む方法です。
ものすごくファイルが大きいときだけ注意。
ほとんどの場合は問題ないので、このあと改行でSplitするなり
いろいろ加工しましょう。
というわけで、オブジェクトの使い方を覚えるにしても、
データの入出力も基本はテキストファイルです。
ここをぎっちり覚えておけば、あとはどうにでもなります
pathやfileNameを引数にしたり、読み込んだ文字を返す
関数にしたりいろいろ工夫してみましょー!