
- VBA 教程
- VBA - 首頁
- VBA - 概述
- VBA - Excel 宏
- VBA - Excel 術語
- VBA - 宏註釋
- VBA - 訊息框
- VBA - 輸入框
- VBA - 變數
- VBA - 常量
- VBA - 運算子
- VBA - 決策
- VBA - 迴圈
- VBA - 字串
- VBA - 日期和時間
- VBA - 陣列
- VBA - 函式
- VBA - 子過程
- VBA - 事件
- VBA - 錯誤處理
- VBA - Excel 物件
- VBA - 文字檔案
- VBA - 圖表程式設計
- VBA - 使用者窗體
- VBA 有用資源
- VBA - 快速指南
- VBA - 有用資源
- VBA - 討論
VBA - 文字檔案
您還可以使用 VBA 讀取 Excel 檔案並將單元格內容寫入文字檔案。VBA 允許使用者使用兩種方法處理文字檔案:
- 檔案系統物件
- 使用 Write 命令
檔案系統物件 (FSO)
顧名思義,FSO 幫助開發人員處理驅動器、資料夾和檔案。在本節中,我們將討論如何使用 FSO。
序號 | 物件型別和描述 |
---|---|
1 |
驅動器 驅動器是一個物件。包含允許您收集有關連線到系統上的驅動器資訊的方法和屬性。 |
2 |
驅動器列表 驅動器列表是一個集合。它提供連線到系統的驅動器列表,無論是物理的還是邏輯的。 |
3 |
檔案 檔案是一個物件。它包含允許開發人員建立、刪除或移動檔案的方法和屬性。 |
4 |
檔案列表 檔案列表是一個集合。它提供資料夾中包含的所有檔案的列表。 |
5 |
資料夾 資料夾是一個物件。它提供允許開發人員建立、刪除或移動資料夾的方法和屬性。 |
6 |
資料夾列表 資料夾列表是一個集合。它提供資料夾內所有資料夾的列表。 |
7 |
文字流 文字流是一個物件。它使開發人員能夠讀取和寫入文字檔案。 |
驅動器
驅動器是一個物件,它提供對特定磁碟驅動器或網路共享的屬性的訪問。驅動器物件支援以下屬性:
- 可用空間
- 驅動器磁碟機代號
- 驅動器型別
- 檔案系統
- 空閒空間
- 就緒狀態
- 路徑
- 根資料夾
- 序列號
- 共享名稱
- 總大小
- 卷標
示例
步驟 1 - 在繼續使用 FSO 進行指令碼編寫之前,我們應該啟用 Microsoft Scripting Runtime。為此,請導航到“工具”→“引用”,如下面的螢幕截圖所示。

步驟 2 - 新增“Microsoft Scripting RunTime”並單擊“確定”。

步驟 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”下建立,如下面的螢幕截圖所示。

檔案內容如下面的螢幕截圖所示。

Write 命令
與 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”檔案,如下面的螢幕截圖所示。

檔案內容如下面的螢幕截圖所示。
