公開日:
自分と同じディレクトリのファイルに、テキストを書き込む(VBA)
VBAで、自分と同じパスのファイルにテキストを書き込むことを考えます。
サンプルコードを以下に示します。
[sample1]
'Option VBASupport 1
Sub a()
writeToFile ("Hello.")
End Sub
Private Sub writeToFile(myText)
currentDir = ActiveWorkbook.Path
targetFilePath = currentDir & "\" & "test.html"
Open targetFilePath For Output As #1
 Print #1, myText
Close #1  
End Sub
Sub a()
writeToFile ("Hello.")
End Sub
Private Sub writeToFile(myText)
currentDir = ActiveWorkbook.Path
targetFilePath = currentDir & "\" & "test.html"
Open targetFilePath For Output As #1
 Print #1, myText
Close #1  
End Sub
このコードの Sub a()
を実行すると、自分(コードを実行したファイル)と同じディレクトリの "test.html" というファイルに、"Hello." という文字が書き込まれます。
ActiveWorkbook.Path
の記述によって、自分のパスを取得しています。- Open ~ Close の記述で、"test.html" に "Hello." という文字を記述しています。
test.html をブラウザで開くと、以下のように表示されます。
![img_1](./24_h03_007_1.png)
#sample1は、
Sub a()
を何回実行しても、「Hello.」と1つしか表示されません。
Sub a()
を実行するたびに「Hello.」の文字が追加されるサンプルコードを以下に示します。
'Option VBASupport 1
Sub a()
writeToFile ("Hello.")
End Sub
Private Sub writeToFile(myText)
currentDir = ActiveWorkbook.Path
targetFilePath = currentDir & "\" & "test.html"
Open targetFilePath For Append As #1
 Print #1, myText
Close #1  
End Sub
Sub a()
writeToFile ("Hello.")
End Sub
Private Sub writeToFile(myText)
currentDir = ActiveWorkbook.Path
targetFilePath = currentDir & "\" & "test.html"
Open targetFilePath For Append As #1
 Print #1, myText
Close #1  
End Sub
マーカーでハイライトした部分は、#sample1から変更した部分です。このように、Append
でファイルを open すると、上書きではなく、追加できます。
![img_2](./24_h03_007_2.png)