1. ホーム
  2. vba

[解決済み] VBAを使用してtxtファイルを作成し、書き込む方法

2022-03-01 19:15:36

質問

入力内容に応じて手動で追加・変更するファイルがあります。そのファイルでは、ほとんどの内容が繰り返され、16進数の値だけが変化しているので、ツールで生成されたファイルにしたいのです。

その中に出力されるCコードを書きたいのです。 .txt ファイルを作成します。

を作成するコマンドは何ですか? .txt VBAを使用してファイルを作成し、そのファイルに書き込むにはどうすればよいか

どのように解決するのですか?

を詳しく説明すると ベンの回答 :

への参照を追加した場合 Microsoft Scripting Runtime を正しく入力し、変数 フソー できる オートコンプリートを利用する (Intellisense)の他の優れた機能を発見してください。 FileSystemObject .

以下は、完全なサンプルモジュールです。

Option Explicit

' Go to Tools -> References... and check "Microsoft Scripting Runtime" to be able to use
' the FileSystemObject which has many useful features for handling files and folders
Public Sub SaveTextToFile()

    Dim filePath As String
    filePath = "C:\temp\MyTestFile.txt"

    ' The advantage of correctly typing fso as FileSystemObject is to make autocompletion
    ' (Intellisense) work, which helps you avoid typos and lets you discover other useful
    ' methods of the FileSystemObject
    Dim fso As FileSystemObject
    Set fso = New FileSystemObject
    Dim fileStream As TextStream

    ' Here the actual file is created and opened for write access
    Set fileStream = fso.CreateTextFile(filePath)

    ' Write something to the file
    fileStream.WriteLine "something"

    ' Close it, so it is not locked anymore
    fileStream.Close

    ' Here is another great method of the FileSystemObject that checks if a file exists
    If fso.FileExists(filePath) Then
        MsgBox "Yay! The file was created! :D"
    End If

    ' Explicitly setting objects to Nothing should not be necessary in most cases, but if
    ' you're writing macros for Microsoft Access, you may want to uncomment the following
    ' two lines (see https://stackoverflow.com/a/517202/2822719 for details):
    'Set fileStream = Nothing
    'Set fso = Nothing

End Sub