FileSystemObjectクラスはファイルシステムへのアクセスをするためのクラスです。
つまり、VBAからファイルシステムである「ドライブフォルダ」「ファイル」を操作するための入り口の役割、もしくは直接的に操作するメンバーも多数提供されています。
FileSystemObjectの使い方
参照設定がされている場合は「New」キーワードを使って、下のようにFileSystemObjectのインスタンスを生成するところから始めます。
逆に参照設定をしていない場合は「CreateObject」関数を使って下のように記述します。
使い方としては、FileSystemObjectをインスタンス化した後に、このクラスのプロパティ・メソッドを記述していく感じになります。
※詳しくは下の参考コードを確認ください。
参照設定とはパソコンにインストールされているライブラリを、VBAで使えるようにする仕組みです。
1.「開発タブ」→「Visual Basic」
2.「ツール」「参照設定」
FileSystemObjectの参考コード
ここで使うデータは下の「テキストファイル(data.txt)」になります。
全5行(空白も含めて)のデータをFileSystemObjectクラスを使って読み込む処理コードを紹介します。
FileSystemObjectの参考コード
下は「対象ファイルのデータ(文字列)を全て取得し、取得したデータをイミディエイトに出力」するコードになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub sample() Dim fso As Object Dim ts As Object Dim str As String Set fso = CreateObject("Scripting.FileSystemObject") ' インスタンス化 Set ts = fso.OpenTextFile("C:\Users\username\Desktop\Data.txt", 1) ' 対象ファイルを開く str = ts.ReadAll ' ファイル内の全てのデータを取得 ts.Close ' ファイルを閉じる ' 一応、オブジェクト参照を外しておく Set ts = Nothing Set fso = Nothing Debug.Print (str) '確認用 End Sub |
FileSystemObjectクラスを用いている場所は7行目~10行目になります。
7行目:インスタンス化して変数fsoに入れる。
8行目:FileSystemObjectクラスのOpenTextFileメソッドを使って、指定した場所のファイルを開く。
9行目:FileSystemObjectクラスのReadAllメソッドでファイル内の全ての文字を読み込む。
10行目:8行目で開いたファイルを閉じる。
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク