Vba を使用してテキスト ファイルを作成して書き込むにはどうすればよいですか?
VBA コードを使用してテキストを作成するには、CreateTextFile メソッドを使用する必要があります。この方法では、作成する場所を設定できます。このメソッドの構文では、その場所のファイルを上書きするかどうかを指定し、ファイルを Unicode ファイルとして作成するか ASCII ファイルとして作成するかを指定できます。
VBAでテキストファイルを作成する
次の手順を使用します。
- まず、このメソッドで使用する FileSystemObject または Folder オブジェクトを使用する必要があります。
- その後、CreateTextFile メソッドを使用して別のオブジェクトを作成する必要があります。
- このコードでは、フォルダー内に同じ名前のファイルがすでに存在する場合に上書きするために TRUE を使用しています。
- 最後に、このマクロを実行すると、次のようにフォルダーに新しいテキスト ファイルが作成されます。
Sub create_text_file() 'object to use as folder Dim fld As Object Set fld = CreateObject("Scripting.FileSystemObject") 'using create text file method Dim myFile As Object Set myFile = fld.CreateTextFile("C:UsersDellDesktopmyFoldermyTextFile.txt", True) End Sub
CreateTextFile メソッドの構文
CreateTextFile (filename, [ overwrite, [ unicode ]])
- filename:作成するファイルのパスと名前。
- overwrite:ファイルを上書きするかどうかを定義するブール値 (既に存在する場合) (オプション)。
- unicode:ファイルを Unicode ファイルとして作成するか ASCII ファイルとして作成するかを定義するブール値 (オプション)。
VBA を使用してテキスト ファイルに書き込む
2 つのステートメントを使用して、データをテキスト ファイルに書き込むことができます。
- 書き込み:このステートメントを使用すると、値の間にカンマ、文字列を引用符で囲み、日付を # 記号で囲んだテキスト ファイルにデータを書き込むことができます。
- 印刷:このステートメントを使用すると、Excel スプレッドシートとまったく同じ外観でデータをテキスト ファイルに書き込むことができます。
ここで、両方のステートメントの例を見て、テキスト ファイルに書き込むための完全なコードを記述する方法を理解します。ただし、その前に、希望どおりにコードを記述するためにいくつかの用語を理解する必要があります。
- 出力の場合:このコマンドは、テキスト ファイルにデータを書き込んだり、データを変更したりするときに使用できます。
- 入力の場合:このコマンドを使用すると、テキストからデータを抽出できますが、データを変更したり、ファイルにデータを追加したりすることはできません。
- 追加するには:このコマンドは、テキスト ファイルの最後に新しいデータを追加するのに役立ちます。
- FreeFile:使用したいテキストファイルに使用されていないファイル番号を設定し、参照できるようにします。
次に、テキスト ファイルにデータを入力するコードを記述してみましょう。
- まず、コード内で使用する変数を宣言する必要があります。
- その後、テキストファイルに書き込む必要がある範囲を定義する必要があります。そして、範囲内のセルの数を変数に設定して、ループのカウンターとして使用します。
- 次に、データを追加するテキスト ファイルのアドレスを設定する必要があります。
- そこから、「FreeFile」コマンドを変数に宣言してファイル番号を取得する必要があります。
- ファイルにデータを追加する必要があるため、「出力」コマンドを使用して作成する必要があります。
- 最後に、「For Next」ループを使用して範囲値を 1 つずつ取得し、ファイルに追加する必要があります。
- さらに、データをテキスト ファイルに追加した後、close コマンドを使用してテキスト ファイルを閉じる必要があります。
- 最終的に、このマクロを実行すると、範囲 A1:A13 のデータが、指定したパスに保存したテキスト ファイルに追加されます。
注:システム内のパスに従って、コードからのテキスト ファイルのパスを必ず変更してください。
Option Explicit Sub data_to_text_file() 'variables that you need to use in the code Dim TextFile As Integer Dim iCol As Integer Dim myRange As Range Dim cVal As Range Dim i As Integer Dim myFile As String 'define the range that you want to write Set myRange = Range("A1:A13") iCol = myRange.Count 'path to the text file (MAKE SURE TO CHANGE IT) myFile = "C:UsersDellDesktopNewFoldertextfile.txt" 'define FreeFile to the variable file number TextFile = FreeFile 'using append command to add text to the end of the file Open myFile For Output As TextFile 'loop to add data to the text file For i = 1 To iCol Print #TextFile, Cells(i, 1), Print #TextFile, Cells(i, 2) Next i 'close command to close the text file after adding data Close #TextFile End Sub
VBAとは
関連するチュートリアル
- VBAを使用して重複した値を強調表示する
- ハイパーリンク アドレス (URL) を抽出する VBA
- VBAの入力ボックス
- VBA画面更新
- VBA ステータス バー (非表示、表示、進行状況)