FSOを使用してフォルダ作成とテキストファイルを作成する方法 今回は、FSOオブジェクト(読み:「ファイルシステムオブジェクトオブジェクト」)を使用して ややこしいなぁ…いやだなぁ… ※※参考※※ 以下の流れで挑戦 以下の記事の「事前バインディング」の項を参照 Accessファイルが存在している場所にフォルダ名「tama-shi」というフォルダを作成 メソッドの実行箇所ではカッコを使わず、参照のときには引数内に記載するのだね…?
作成したフォルダ「tama-shi」の中に「tamashi.txt」というテキストファイルを新規作成
(バッチファイルでやればいいんではないかね…)
「FSO」と「FSOオブジェクト」
フォルダとファイルを作成する例を記事にした
その1の記事でもお伝えしたが
たま氏は、「FSO」と「FSOオブジェクト」は言葉として別ものだと捉えることで頭を整理した(合っているのだろうか…)
つまり、「FSOオブジェクト」とはFSOの8つのオブジェクトのうちの最初のひとつ
8つのオブジェクトとは何を指すのか、また、FSOオブジェクトの主なメソッドとプロパティについては記事「その1」にて紹介している
▼AccessVBA_FileSystemObjectその1_【FileSystemObject(FSO)】とは▼
tama-shi.hatenadiary.com
フォルダとファイルの作成は、当記事の例のようにFSOオブジェクトを使用することでも可能だが
FSOオブジェクトのメソッド「GetFolder」を使用してFolderオブジェクトを、「GetFile」を使用してFileオブジェクトを、それぞれ取得する方法もある
当記事でのFSOオブジェクトにおける記述と、後日投稿予定のFolderオブジェクト・Fileオブジェクトでの記述を比較するとよいかも【実践】フォルダとファイルの作成
オブジェクト変数にオブジェクトの参照を格納
▼外部のライブラリファイルの参照設定と利用方法▼
tama-shi.hatenadiary.com
▼記述例▼ Dim FSO As New FIleSystemObject '外部のオブジェクトの参照を格納しインスタンスを生成
【FolderExists】【CreateFolder】フォルダを作成
▼記述例▼Sub Test_Folder()
Dim FSO As New FIleSystemObject '外部のオブジェクトの参照を格納しインスタンスを生成
Dim FolderPath As String '作成したい場所のパスを格納するための変数を作成
FolderPath = CurrentProject.Path & "\" 'フォルダを作成したい場所のパスを変数に格納
If Not FSO.FolderExists(FolderPath & "tama-shi") Then '「tama-shi」というフォルダがない場合に…
FSO.CreateFolder FolderPath & "tama-shi" 'フォルダ「tama-shi」を生成
End If
Set FSO = Nothing 'いちおう参照を解除
End Sub
【FilerExists】【CreateTextFile】テキストファイルを作成
▼記述例▼Sub Test_TextFile()
Dim FSO As New FIleSystemObject '外部のオブジェクトの参照を格納しインスタンスを生成
Dim FolderPath As String '作成したい場所のパスを格納するための変数を作成
FolderPath = CurrentProject.Path & "\" & "tama-shi" 'テキストファイルを作成したい場所のパスを変数に格納
If Not FSO.FileExists(FolderPath & "tamashi.txt") Then '「tamashi.txt」というファイルがない場合に…
FSO.CreateTextFile FolderPath & "tamashi.txt" 'ファイル「tamashi.txt」を生成
End If
Set FSO = Nothing 'ねんのため参照を解除
End Sub