伊田生活ブログのロゴ
HOME  >  勉強
カテゴリー : 勉強 - プログラミング
•VBA •テキスト •Excel •LibreOffice


公開日:

自分と同じディレクトリのファイルに、テキストを書き込む(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() を実行すると、自分(コードを実行したファイル)と同じディレクトリの "test.html" というファイルに、"Hello." という文字が書き込まれます。

解説
  • ActiveWorkbook.Path の記述によって、自分のパスを取得しています。
  • Open ~ Close の記述で、"test.html" に "Hello." という文字を記述しています。
実行結果

test.html をブラウザで開くと、以下のように表示されます。

img_1
上書きではなく、追加したい場合
#sample1は、Sub a() を何回実行しても、「Hello.」と1つしか表示されません。

Sub a() を実行するたびに「Hello.」の文字が追加されるサンプルコードを以下に示します。

[sample2]
'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

マーカーでハイライトした部分は、#sample1から変更した部分です。このように、Append でファイルを open すると、上書きではなく、追加できます。

img_2