たま氏の覚え書き

KNIME・AccessVBA・Swift等、学習したことを覚え書き

AccessVBA_FileSystemObjectその2_【FileSystemObjectオブジェクト】フォルダとテキストファイルの作成

FSOを使用してフォルダ作成とテキストファイルを作成する方法
(バッチファイルでやればいいんではないかね…)

「FSO」と「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】フォルダを作成

Accessファイルが存在している場所にフォルダ名「tama-shi」というフォルダを作成

▼記述例▼

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】テキストファイルを作成

作成したフォルダ「tama-shi」の中に「tamashi.txt」というテキストファイルを新規作成

▼記述例▼

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