【Excel VBA】 テキストファイルを読み書きしてみる。

Excel VBA のお勉強中でして、やってみたことの断片的なメモを残します。

Excel VBA から、テキストファイルを開いて変数に入れたり、変数の中身をファイルに保存したりする方法。

ファイルをオープンして中身を変数に格納する

ファイル選択ダイアログを開いて、開くファイルを選択してもらう。

Dim vntFileName As Variant
vntFileName = _
    Application.GetOpenFilename( _
         FileFilter:="テキストファイル(*.txt),*.txt,CSVファイル(*.csv),*.csv" _
       , Title:="ファイルを選択してください。" _
       , MultiSelect:=False _
    )

vntFileName に、選択したファイルの絶対パスが入る。

次に、文字列を読み込む。

Dim MyString
Dim All
Open vntFileName For Binary Access Read As #1
Do While Not EOF(1)
    MyString = Input(1024, #1)
    All = All & MyString
Loop
Close #1

#1は、ファイルポインタ。PHPで言うと、fopen() の戻り値に当たる。この例では、All に読み込んだ文字列を溜めていっている。

変数に格納された値をファイルに保存する

Dim vntFileName As Variant
vntFileName = Application.GetSaveAsFilename( _
     InitialFileName:="サンプル.txt" _
   , FileFilter:="テキストファイル(*.txt),*.txt" & _
                 ",CSVファイル(*.csv),*.csv" _
   , FilterIndex:=1 _
   , Title:="保存先を指定してください。" _
)

読み込みの例と同様、vntFileName に、選択したファイルの絶対パスが入る。

次に、文字列を書き込む。ここでは、書き込む文字列が MyString に格納されているものとしている。

Dim MyString
MyString = "テキストテキスト"
Open vntFileName For Output Access Write As #1
Print #1, MyString
Close #1

For Output のところを、For Append にすると、追記モードになるっぽい。

以上です。


プロフィール

コヤナギ トモヤ

まったりウェブ系コーダーしてます。PHP製静的CMS Pickles 2 を開発しています。

RSSフィード

  • このサイトは、 コヤナギ トモヤ の個人サイトです。
  • 個人的な主張や、活動の記録などを掲載しています。 所属する企業、団体、その他の意見や立場を代表するものではありません。
  • 掲載された内容は古くなっている可能性があります。 特に古い記事では、現在の筆者の考えと異なる主張をしていることがありますが、記録としてそのまま残しております。 予めご了承ください。
ページの先頭へ戻る