Const ForReading = 1, ForWriting = 2, ForAppending = 8 '概要: フォルダー選択ダイアローグを出して、フォルダを選択 '引数: 無し '戻り値: getFilePath 選択されたパス Function getFilePath() As String Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFolderPicker) With fd .Title = "フォルダを開く" If .Show = -1 Then getFilePath= .SelectedItems(1) End If End With End Function '概要: 指定された行番を読む '引数: strRowNo 行番 '戻り値: readRowNo 指定行目の内容 Function readRowNo(strPath As String, strRowNo As Integer) As String Dim FileObj Dim FilePath Dim strNY As String Set FileObj = CreateObject("Scripting.FileSystemObject") Set File = FileObj.openTextFile(strPath, 1) For i = 1 To strRowNo File.SkipLine Next readRowNo = File.readLine File.Close Set File = Nothing Set FileObj = Nothing End Function '概要: フォルダー中のファイル一覧(全てファイル)を取得(サブフォルダー含む) '引数: strInPath パス, arrOutput 戻す配列 '戻り値: makeFileList「true:ファイル有り, false:ファイル無し」 Function makeFileList(strInPath As String, arrOutput() As String) As Boolean Dim fso As Object Dim fd As Object makeFileList = False ReDim arrOutput(0) Set fso = CreateObject("Scripting.FileSystemObject") Set fd = fso.GetFolder(strInPath) searchFiles fd, arrOutput Set fso = Nothing Set fd = Nothing If 0 < UBound(arrOutput, 1) Then ReDim Preserve arrOutput(UBound(arrOutput, 1) - 1) Else Exit Function End If makeFileList = True End Function '概要: フォルダー中のファイル一覧(指定拡張子)を取得(サブフォルダー含む) '引数: strInPath:パス, strFileType:ファイル類型 ,arrOutput 戻す配列 '戻り値: makeFileList「true:ファイル有り, false:ファイル無し」 Function makeFileList(strInPath As String, strFileType As String, arrOutput() As String) As Boolean Dim fso As Object Dim fd As Object makeFileList = False ReDim arrOutput(0) Set fso = CreateObject("Scripting.FileSystemObject") Set fd = fso.GetFolder(strInPath) searchFiles fd, strFileType, arrOutput Set fso = Nothing Set fd = Nothing If 0 < UBound(arrOutput, 1) Then ReDim Preserve arrOutput(UBound(arrOutput, 1) - 1) Else Exit Function End If makeFileList = True End Function '概要: フォルダー中のファイル一覧(全てファイル)を取得 '引数: fd フォルダー対象, arrOutput 戻す配列 '戻り値: searchFiles「true:ファイル有り, false:ファイル無し」 Function searchFiles(fd As Object, arrOutput() As String) As Boolean Dim fl As Object Dim sfd As Object searchFiles = False For Each fl In fd.Files ReDim Preserve arrOutput(UBound(arrOutput, 1) + 1) arrOutput(UBound(arrOutput, 1) - 1) = fl.Path Next fl If fd.SubFolders.Count = 0 Then Exit Function End If For Each sfd In fd.SubFolders searchFiles sfd, strFileType, arrOutput Next Set sfd = Nothing searchFiles = True End Function '概要: フォルダー中のファイル一覧(指定拡張子)を取得 '引数: fd フォルダー対象, strFileType:ファイル類型, arrOutput 戻す配列 '戻り値: searchFiles「true:ファイル有り, false:ファイル無し」 Function searchFiles(fd As Object, strFileType As String, arrOutput() As String) As Boolean Dim fl As Object Dim sfd As Object Dim sTmp As String sTmp = "" searchFiles = False sTmp = Split(strFileType, ".")(1) sTmp = "." & sTmp For Each fl In fd.Files If UCase(Right(fl.Path, Len(sTmp))) = UCase(sTmp) Then ReDim Preserve arrOutput(UBound(arrOutput, 1) + 1) arrOutput(UBound(arrOutput, 1) - 1) = fl.Path End If Next fl If fd.SubFolders.Count = 0 Then Exit Function End If For Each sfd In fd.SubFolders searchFiles sfd, strFileType, arrOutput Next Set sfd = Nothing searchFiles = True End Function '概要: ファイル内容を取得 '引数: strFileName ファイル名, arrContent ファイル正文配列 '戻り値: readFile「true:正常, false:異常」 Function readFile(strFileName As String, arrContent As Variant) As Boolean Dim fso As Object Dim sFile As Object readFile = False If isFileExists(strFileName) Then 'NULL Else Exit Function End If ReDim arrContent(0) Set fso = CreateObject("Scripting.FileSystemObject") Set sFile = fso.openTextFile(strFileName, 1) Do While Not sFile.AtEndOfStream ReDim Preserve arrContent(UBound(arrContent, 1) + 1) arrContent(UBound(arrContent, 1) - 1) = sFile.readLine Loop sFile.Close Set fso = Nothing Set sFile = Nothing If 0 < UBound(arrContent, 1) Then ReDim Preserve arrContent(UBound(arrContent, 1) - 1) Else Exit Function End If readFile = True End Function '概要: ファイル存在を判定 '引数: strFileName ファイル名 '戻り値: isFileExists「true:存在, false:存在しない」 Function isFileExists(strFileName As String) As Boolean Dim fs As Object Set fs = CreateObject("Scripting.FileSystemObject") If fs.FileExists(strFileName) Then isFileExists = True Else isFileExists = False End If Set fs = Nothing End Function '概要: ファイルに内容を記入 '引数: strFileName:ファイル名, arrContent:記入したい内容, intIoMode:処理モード, booCreate:ファイル存在無し「true:作成, false:作成しない」 '戻り値: 無し Function writeFile(strFileName As String, arrContent() As String, _ ByVal intIoMode As integer, ByVal booCreate As Boolean) As Boolean Dim fso As Object Dim sFile As Object Dim i As Long i = 0 writeFile = False Set fso = CreateObject("Scripting.FileSystemObject") Select Case intIoMode Case 8 '追加 Set sFile = fso.openTextFile(strFileName, 8, booCreate) Case 1 '読む Set sFile = fso.openTextFile(strFileName, 1, booCreate) Case 2 '書く Set sFile = fso.openTextFile(strFileName, 2, booCreate) End Select For i = 0 To UBound(arrContent, 1) sFile.writeLine (arrContent(i)) Next i sFile.Close Set fso = Nothing Set sFile = Nothing writeFile = True End Function '概要: ログタイトルを記入 '引数: strOutFile 目標ファイル名 '戻り値: 無し Function writeLogHeader(strOutFile As String) Dim cOutput() As String ReDim cOutput(0) 'タイトルを指定 cOutput(0) = """" & "No." & """" & vbTab cOutput(0) = cOutput(0) & """" & "Source File" & """" & vbTab cOutput(0) = cOutput(0) & """" & "Row Number" & """" & vbTab cOutput(0) = cOutput(0) & """" & "Row Infor" & """" Call writeFile(strOutFile, cOutput, ForAppending, True) End Function '概要: ログ正文を記入 '引数: strOutFile:ファイル名, lNum:順番, strSrcFile:ソースファイル, lngRownum:行番, strRowContent:行正文 '戻り値: 無し Function writeLog(strOutFile As String, lNum As Long, strSrcFile As String, lngRownum As Long, strRowContent As String) Dim cOutput() As String ReDim cOutput(0) cOutput(0) = Chr(34) & lNum & Chr(34) & vbTab cOutput(0) = cOutput(0) & Chr(34) & strSrcFile & Chr(34) & vbTab cOutput(0) = cOutput(0) & Chr(34) & lngRownum & Chr(34) & vbTab 'cOutput(0) = cOutput(0) & Chr(34) & strRowContent & Chr(34) cOutput(0) = cOutput(0) & strRowContent Call writeFile(strOutFile, cOutput, ForAppending, True) End Function '概要: 指定パスのファイルを消す '引数: strFilePath:目標パス '戻り値: true:操作成功, false:操作失敗 Function deleteAllFiles(ByVal strFilePath As String) As Boolean Dim arrOutput() As String Call makeFileList(strFilePath, arrOutput) For i = 0 To UBound(arrOutput) If isFileExists(arrOutput(i)) Then Kill arrOutput(i) End If Next i deleteAllFiles = True End Function
相关推荐
### Excel VBA 操作文件四大方法之二:利用 VBA 文件处理语句处理文件 在 Excel VBA(Visual Basic for Applications)中,处理文件是一项常见且重要的任务。VBA 提供了丰富的内置语句和函数,使用户能够高效地执行...
#### 二、利用VBA文件处理语句来处理文件 除了利用Excel对象来处理文件之外,还可以通过VBA内置的一些文件处理语句来实现文件操作,例如使用`Open`语句读取或写入文件。这种方法适用于处理各种类型的文件,不仅仅是...
在“VBA批量处理csv或其他excel文件数据”的场景下,我们可以通过编写VBA宏实现以下功能: 1. **遍历文件夹**:VBA可以使用`MkDir`和`ChDir`函数改变当前工作目录,然后使用`Dir`函数来获取指定目录下的所有文件。...
2. 利用VBA文件处理语句来处理文件: - VBA提供了内置的FileOpen、FileClose等语句,用于读写文本文件。例如,`Open "C:\data.txt" For Input As #1`会打开名为data.txt的文件用于输入,`#1`是文件号,用于后续的...
Excel对象适合简单快速地处理Excel文件,VBA文件处理语句适合基础的文本文件操作,FileSystemObject适用于更广泛的文件和目录操作,而API函数则适用于需要底层控制的情况。在实际应用中,开发者可以根据任务的复杂性...
#### 二、利用VBA文件处理语句来处理文件 **(一)文件处理** **1、Name语句** 用于重命名文件或文件夹: ```vba Name "C:\Path\To\OldFile.txt" As "C:\Path\To\NewFile.txt" ``` **2、FileCopy语句** 用于...
讲述了VBA中操作 window 系统的文件的四种方法 分别是 1、利用Excel对象来处理文件;...2、利用VBA文件处理语句来处理文件; 3、利用FileSystemObject对象来处理文件; 4、利用API函数来处理文件。
在这个主题“使用VBA操作文件及对象应用”中,我们将深入探讨如何使用VBA来处理文件和文件对象。 一、VBA与文件操作 1. 打开和读取文件:在VBA中,我们可以使用`Open`语句打开一个文件,并使用`Input`或`Line ...
这些文件是VBA帮助文件的集合,主要用于解决2013版及以上版本中无法直接查阅VBA帮助文档的问题。 在这些压缩文件中,我们可以看到不同类型的文件,它们各自具有特定的功能: 1. `.HXC` 文件:这是VBA帮助索引文件...
本压缩包文件"excel VBA帮助文件.rar"包含了一个名为"excel VBA帮助文件.CHM"的CHM(Compiled Help Manual)格式的帮助文档,这是一个Windows系统的离线帮助文件,用于提供Excel VBA的详细教程和参考信息。...
在这个“VBA文件操作 自动创建超链接”的主题中,我们将深入探讨如何利用VBA进行文件操作,如打开、写入和创建文件,以及如何自动创建超链接。 首先,我们要了解VBA的基础语法和结构。在VBA中,我们可以编写Sub过程...
"excel VBA帮助文件.rar"是一个包含VBA相关帮助文档的压缩包,特别是针对Excel应用的VBA编程。这个压缩包中的"excel VBA帮助文件.CHM"是一个离线版的MSDN帮助文件,对于那些想要深入学习和开发Excel VBA解决方案的人...
### Excel VBA 文件合并知识点详解 #### 一、概述 在日常工作中,我们经常会遇到需要将多个Excel文件合并成一个文件的情况。...希望这些知识点能够帮助大家更好地理解和运用VBA进行Excel文件的处理。
### VBA读写文件知识点详解 #### 一、概述 VBA(Visual Basic for Applications)是一种广泛应用于Microsoft Office等应用程序中的编程语言。在VBA中,读写文件是一项非常重要的功能,它允许用户通过脚本操作本地...
在Excel VBA中,我们可以利用内置的自动化功能与外部应用程序进行交互,比如创建、打开或操作PDF文件。...通过这些技术,开发者可以在Excel环境中实现与PDF文件的深度交互,提高工作效率,自动化处理大量数据或文档。
在VBA中,对文件夹和文件进行操作是常见的需求,特别是在处理大量数据或者实现批量自动化处理时。本篇文章将详细阐述VBA中关于文件夹和文件操作的相关知识点。 1. **打开和关闭文件** - `Open` 函数用于打开一个...
### VBA列出文件知识点 #### 一、VBA概述与应用场景 VBA(Visual Basic for Applications)是一种基于...通过以上分析可以看出,VBA为处理文件提供了丰富的功能和灵活的编程方式,能够满足各种文件操作需求。
7. **错误处理与日志记录**:为了确保系统的稳定运行,VBA代码会包含错误处理机制,当遇到问题时,能提供错误信息并记录到日志文件,方便排查问题。 8. **界面友好**:VBA文档管理系统通常会设计成易于使用的界面,...