公開日: 2009年06月09日(Tue)
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
にすると、追記モードになるっぽい。
以上です。
公開日: 2009年06月09日(Tue)