Vba-text-files
VBA-テキストファイル
VBAを使用して、Excelファイルを読み取り、セルの内容をテキストファイルに書き込むこともできます。 VBAは、ユーザーが2つの方法を使用してテキストファイルで作業することができます-
- ファイルシステムオブジェクト *書き込みコマンドを使用する
ファイルシステムオブジェクト(FSO)
名前が示すように、FSOは、開発者がドライブ、フォルダー、およびファイルを操作するのに役立ちます。 このセクションでは、FSOの使用方法について説明します。
Sr.No. | Object Type & Description |
---|---|
1 |
ドライブはオブジェクトです。 システムに接続されているドライブに関する情報を収集できるメソッドとプロパティが含まれています。 |
2 |
Drives ドライブはコレクションです。 物理的または論理的に、システムに接続されているドライブのリストを提供します。 |
3 |
File ファイルはオブジェクトです。 開発者がファイルを作成、削除、または移動できるようにするメソッドとプロパティが含まれています。 |
4 |
Files ファイルはコレクションです。 フォルダー内に含まれるすべてのファイルのリストを提供します。 |
5 |
Folder フォルダーはオブジェクトです。 開発者がフォルダを作成、削除、または移動できるようにするメソッドとプロパティを提供します。 |
6 |
Folders フォルダはコレクションです。 フォルダー内のすべてのフォルダーのリストを提供します。 |
7 |
TextStream TextStreamはオブジェクトです。 開発者がテキストファイルを読み書きできるようにします。 |
ドライブ
ドライブ*は、特定のディスクドライブまたはネットワーク共有のプロパティへのアクセスを提供するオブジェクトです。 次のプロパティは *Drive オブジェクトでサポートされています-
- 空きスペース
- ドライブレター
- ドライブタイプ
- ファイルシステム
- フリースペース
- IsReady
- Path
- ルートフォルダ
- シリアルナンバー
- ShareName
- 全体の大きさ
- VolumeName
例
- ステップ1 *-FSOを使用したスクリプト作成に進む前に、Microsoft Scripting Runtimeを有効にする必要があります。 同じことを行うには、次のスクリーンショットに示すように、ツール→参照に移動します。
- ステップ2 *-「Microsoft Scripting RunTime」を追加し、[OK]をクリックします。
- ステップ3 *-テキストファイルに書き込むデータを追加し、コマンドボタンを追加します。
- ステップ4 *-スクリプトの時間です。
Private Sub fn_write_to_text_Click()
Dim FilePath As String
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim stream As TextStream
LastCol = ActiveSheet.UsedRange.Columns.Count
LastRow = ActiveSheet.UsedRange.Rows.Count
' Create a TextStream.
Set stream = fso.OpenTextFile("D:\Try\Support.log", ForWriting, True)
CellData = ""
For i = 1 To LastRow
For j = 1 To LastCol
CellData = Trim(ActiveCell(i, j).Value)
stream.WriteLine "The Value at location (" & i & "," & j & ")" & CellData
Next j
Next i
stream.Close
MsgBox ("Job Done")
End Sub
出力
スクリプトを実行するときは、ワークシートの最初のセルにカーソルを置いてください。 Support.logファイルは、「D:\ Try」の下の次のスクリーンショットに示すように作成されます。
ファイルの内容は、次のスクリーンショットに示されています。
書き込みコマンド
FSOとは異なり、参照を追加する必要はありませんが、ドライブ、ファイル、フォルダーを操作することはできません。 ストリームをテキストファイルに追加するだけです。
例
Private Sub fn_write_to_text_Click()
Dim FilePath As String
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long
LastCol = ActiveSheet.UsedRange.Columns.Count
LastRow = ActiveSheet.UsedRange.Rows.Count
FilePath = "D:\Try\write.txt"
Open FilePath For Output As #2
CellData = ""
For i = 1 To LastRow
For j = 1 To LastCol
CellData = "The Value at location (" & i & "," & j & ")" & Trim(ActiveCell(i, j).Value)
Write #2, CellData
Next j
Next i
Close #2
MsgBox ("Job Done")
End Sub
出力
スクリプトを実行すると、次のスクリーンショットに示すように、場所「D:\ Try」に「write.txt」ファイルが作成されます。
ファイルの内容は、次のスクリーンショットに示されています。