FileSystemObjectオブジェクトの使い方
VBScriptやJScript
でファイルやフォルダ(ディレクトリ)を扱う場合の基本です。テキストファイルの読み込みやフォルダ作成・削除、ファイルのパスを編集する機能など、FileSystemObjectにはテキストファイルやフォルダを操作するためのさまざまな機能が含まれています。
サンプルダウンロード
FileSystemObjectの使い方
ファイルシステムオブジェクトを使うには、CreateObject関数でScripting.FileSystemObjectのインスタンス作成し、その後はインスタンスを保存した変数を使ってファイルやフォルダの操作を行います。
図 1
FileSystemObjectの書式
Set
変数
= CreateObject("
Scripting.FileSystemObject
")
[VBS][VBA] Scripting.FileSystemObjectオブジェクトを作成します。
var
変数
= new ActiveXObject("
Scripting.FileSystemObject
")
[JS] Scripting.FileSystemObjectオブジェクトを作成します
※
。
・
変数
オブジェクトを保存するための変数です。ファイルやフォルダを操作するための各機能は、インスタンスを保存した変数を経由して利用します。また、オブジェクトを使い終わったら、変数にNothingを保存し必ずオブジェクトを解放(クリア)しましょう。
【記述例】
Scripting.FileSystemObjectオブジェクトを作成します。
Set objFileSys = CreateObject("
Scripting.FileSystemObject
")
※JScriptの書式は、変数の宣言とオブジェクトの作成を同時に行う例です。
FileSystemObjectの使用例
FileSystemObject
の使用例です。
Set
ステートメントと
CreateObject
関数を使い、変数
objFileSys
にScripting.FileSystemObjectのインスタンスを保存します。その後は、変数「
objFileSys
」を使ってファイルやフォルダの操作が行えます。サンプルでは、実行スクリプトの作成日を表示する処理を行っています。
リスト 1
Scripting.FileSystemObjectオブジェクトを作成する(VBScript版)
1
2
3
4
5
6
7
8
9
10
VBS
Option Explicit
Dim objFileSys
Set objFileSys =
CreateObject("Scripting.FileSystemObject")
WScript.Echo WScript.ScriptName & " の作成日"
WScript.Echo objFileSys.GetFile(WScript.ScriptFullname).DateCreated
Set objFileSys = Nothing
リスト 2
Scripting.FileSystemObjectオブジェクトを作成する(JScript版)
1
2
3
4
5
6
JS
var objFileSys = new
ActiveXObject("Scripting.FileSystemObject")
WScript.Echo(WScript.ScriptName + " の作成日");
WScript.Echo(objFileSys.GetFile(WScript.ScriptFullname).DateCreated);
objFileSys = null;
リスト 3
Scripting.FileSystemObjectオブジェクトを作成する(Excel/Access/VBA版)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
VBA
Option Explicit
Sub Sample()
Dim objFileSys As Object
Set objFileSys =
CreateObject("Scripting.FileSystemObject")
Debug.Print "このサンプルの作成日"
Debug.Print objFileSys.GetFile(ThisWorkbook.FullName).DateCreated
Set objFileSys = Nothing
End Sub
注:Accessで実行するときは ThisWorkbook.FullName の部分を CurrentProject.FullName に変更してください。
◆実行例
サンプルスクリプトを実行すると、実行したスクリプト ファイル(自分自身のファイル)の作成日が表示されます。
図 2
サンプルスクリプトの実行結果(VBScript/JScript)
図 3
サンプルスクリプトの実行結果(Excel/Access/VBA)
VBScript Tips & サンプル
〜 Excel/Access/VBAにも対応 〜
■ファイル・フォルダ操作編
◆ファイル・フォルダ操作
[Scripting.FileSystemObject]
FileSystemObjectオブジェクトの使い方
パスを編集する/BuildPath
新しいフォルダを作成する/CreateFolder
新しいテキストファイルを作成する/CreateTextFile
テキストファイルの行単位の読み込み/WriteLine
テキストファイルの一括読み込み/ReadAll
テキストファイルへの書きこみ/WriteLine
ファイルをコピーする/CopyFile
ファイルを移動する/MoveFile
ファイルを削除する/DeleteFile
ファイルの有無を調べる/FileExists
ファイルを取得する/GetFile
フォルダを取得する/GetFolder
テキストファイルを開く/OpenTextFile
フォルダをコピーする/CopyFolder
フォルダを移動する/MoveFolder
フォルダを削除する/DeleteFolder
フォルダの有無を調べる/FolderExists
ドライブの有無を調べる/DriveExists
ドライブを取得する/GetDrive
ファイルが作成されているフォルダのパスを取得する
/GetParentFolderName
システム用のフォルダを取得する/GetSpecialFolder
相対パスから絶対パスを求める
/GetAbsolutePathName
ファイルのパスからファイル名を取得する/GetFileName
ファイル名からベース名を取得する/GetBaseName
ファイル名から拡張子を取得する/GetExtensionName
パスからドライブ名を取得する/GetDriveName
一時的に使うファイル名やフォルダ名を取得する
/GetTempName
実行ファイルのバージョン情報を取得する
/GetFileVersion
ドライブの一覧を取得する/Drives
◆テキストファイル操作[Scripting.TextStream]
TextStreamオブジェクトとは
テキストファイルを1行ずつ読み込む/ReadLine
テキストファイルから任意の文字数を読み込む/Read
テキストファイルの全ての内容を読み込む/ReadAll
次の行を読み飛ばす/SkipLine
任意の文字数を読み飛ばす/Skip
現在の行内での文字位置を調べる/Column
現在の行数を調べる/Line
最終行かどうかを判断する/AtEndOfLine
読み込みが終了したかどうかを調べる/AtEndOfStream
テキストファイルに1行ずつ書き込む/WriteLine
ファイルに任意の文字列を書き込む/Write
ファイルに改行を書き込む/WriteBlankLines
テキストファイルを閉じる/Close
◆Shell.Application
1.シェルアプリケーションオブジェクト
2.フォルダの中を探る
・他にファイルかフォルダかの判定
3.フォルダの中を下の階層まで探る
・フォルダ容量やファイル数を取得
・プロシジャの再帰呼び出し
4.フォルダをコピー・移動する (CopyHere, MoveHere)
■基本編
■ファイル・フォルダ操作編
■ファイル・フォルダ・ドライブのオブジェクト
■Excel & Access操作編
■インターネットエクスプローラ操作編
■データアクセス編
■正規表現編
■Tipsとその他のサンプル
■サイト内を検索
Happy! Happy! Islandその他のコンテンツ
■
VBAプログラミング系
Access VBAのTipsとサンプル
Excel VBA(エクセルマクロ)のTipsとサンプル
VBScript/JScriptのTipsとサンプル
プログラミング基礎・入門
■
入門と使い方
Access入門と使い方講座97~2003/2007/2010/2013
Access VBAプログラミング入門 2013/2010/2007/2003
Excel入門と使い方講座2013/2010/2007
■
ダウンロードコーナー
AccessとExcelのフリーソフト
■
その他
質問受け付けコーナー「管理人に聞いてみよう♪」
BBS過去ログ広場
HTMLの書き方
管理人プロフィール
┗
twitter(外部サイト)
管理人へメール
■
別館(海外向けサイト)
Excel Games and Access Games
VBAプログラミング&Tips集の
"Happy! Happy! Island"トップページへ
[PR]管理人が心を込めて書いた本
■
最速攻略 AccessVBAサンプル大全集
Access 2013/2010/2007対応版
■
速効!ビジネスPC Accessマクロ&VBA
Access2013/2010/2007対応
■
最速攻略Accessクエリ テクニック大全集
Access2013/2010/2007対応
■
AccessVBAマクロ超入門講座 Access2010/2007対応
■
ExcelVBA超入門講座 Excel2010/2007対応
■
ExcelVBAでできる RPGゲーム作成入門
■
[改訂新版]実践COBOLプログラミング入門
■
最速攻略 VBScriptサンプル大全集
Windows7/Vista/XP/2000対応
(
アマゾン
へジャンプします)
[PR]注目の情報
転職成功の秘訣はサイトに公開されない求人にあった
採用人数が少ない・専門性が高い・競合他社に知られたくないなど、魅力的な求人情報ほど一般には公開できないのです。
株デビューするなら SBI証券!
業界屈指の格安手数料と業界最高水準のサービスで口座数はネット証券 No.1!口座開設料・管理料は無料。
GDOゴルフショップ
ゴルフ用品のオンラインメガストア。品揃え10万点!
アスタリフトコラーゲンドリンク
毎日続けるものだから・・まとめ買いで最大10%OFF!集中コラーゲンケアで、ハリと潤いの溢れる毎日へ。
[リンク]IT関連情報サイトなど
gihyo.jp
技術評論社提供のIT関連コンテンツサイト
Copyright(C) 1999-2015
結城圭介
(Ver.3.51) All rights reserved