Vba-text-files

提供:Dev Guides
移動先:案内検索

VBA-テキストファイル

VBAを使用して、Excelファイルを読み取り、セルの内容をテキストファイルに書き込むこともできます。 VBAは、ユーザーが2つの方法を使用してテキストファイルで作業することができます-

  • ファイルシステムオブジェクト *書き込みコマンドを使用する

ファイルシステムオブジェクト(FSO)

名前が示すように、FSOは、開発者がドライブ、フォルダー、およびファイルを操作するのに役立ちます。 このセクションでは、FSOの使用方法について説明します。

Sr.No. Object Type & Description
1
  • Drive*

ドライブはオブジェクトです。 システムに接続されているドライブに関する情報を収集できるメソッドとプロパティが含まれています。

2

Drives

ドライブはコレクションです。 物理的または論理的に、システムに接続されているドライブのリストを提供します。

3

File

ファイルはオブジェクトです。 開発者がファイルを作成、削除、または移動できるようにするメソッドとプロパティが含まれています。

4

Files

ファイルはコレクションです。 フォルダー内に含まれるすべてのファイルのリストを提供します。

5

Folder

フォルダーはオブジェクトです。 開発者がフォルダを作成、削除、または移動できるようにするメソッドとプロパティを提供します。

6

Folders

フォルダはコレクションです。 フォルダー内のすべてのフォルダーのリストを提供します。

7

TextStream

TextStreamはオブジェクトです。 開発者がテキストファイルを読み書きできるようにします。

ドライブ

ドライブ*は、特定のディスクドライブまたはネットワーク共有のプロパティへのアクセスを提供するオブジェクトです。 次のプロパティは *Drive オブジェクトでサポートされています-

  • 空きスペース
  • ドライブレター
  • ドライブタイプ
  • ファイルシステム
  • フリースペース
  • IsReady
  • Path
  • ルートフォルダ
  • シリアルナンバー
  • ShareName
  • 全体の大きさ
  • VolumeName

  • ステップ1 *-FSOを使用したスクリプト作成に進む前に、Microsoft Scripting Runtimeを有効にする必要があります。 同じことを行うには、次のスクリーンショットに示すように、ツール→参照に移動します。

VBScriptのExcel FSO

  • ステップ2 *-「Microsoft Scripting RunTime」を追加し、[OK]をクリックします。

VBScriptのExcel FSO

  • ステップ3 *-テキストファイルに書き込むデータを追加し、コマンドボタンを追加します。

VBScriptのExcel FSO

  • ステップ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」の下の次のスクリーンショットに示すように作成されます。

VBScriptのExcel FSO

ファイルの内容は、次のスクリーンショットに示されています。

VBScriptのExcel FSO

書き込みコマンド

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」ファイルが作成されます。

VBScriptのExcel FSO

ファイルの内容は、次のスクリーンショットに示されています。

VBScriptのExcel FSO