【VBScript】空ファイルの作成と文字列の書き込み


この記事はプロモーションを含みます。

VBScript

ホーム > VBScript 逆引きリファレンス

VBScriptでは「FileSystemObject」を使用することで様々なファイル操作を行えます。
ここでは、ファイルの作成(CreateTextFile)方法について解説します。
合わせて、作成したファイルに文字列を書き込んでみます。

書式

まずは、CreateTextFileメソッドの書式になります。

object.CreateTextFile(filename,[overwrite,[unicode]])
ファイルシステムオブジェクト.CreateTextFile(作成するファイル,[上書き可否,[文字コード]])

各引数について解説します。

パーツ和名説明省略
objectオブジェクトファイルシステムオブジェクトを指定する不可
filenameファイル名作成するファイルを指定する不可
overwrite上書き可否作成するファイルが既に存在する場合に上書きするかを指定
True:上書きを許可(既定値)
False:上書きを許可しない
可能
unicode文字コードUnicodeでファイルを作成するかを指定
True:Unicode
False:ASCII(Shift-JIS)(既定値)
可能

ソースコード

サンプルのソースコードと実際に実行した時の動きについて解説します。

引数1[ファイル名]のみを指定

第一引数のファイル名のみを指定した、一番シンプルな構成になります。

Option Explicit

' 作成するファイル
Const CREATE_FILE = "C:\workspace\VBScript\sample\Test.txt"

' 宣言
Dim fso

' ファイルシステムオブジェクトの作成
Set fso = CreateObject("Scripting.FileSystemObject")

' ファイルの作成
Call fso.CreateTextFile(CREATE_FILE)

' ファイルシステムオブジェクトの破棄
Set fso = Nothing

このサンプルを実行する下記の条件で空ファイルが作成されます。
・パス:C:\workspace\VBScript\sample
・ファイル名:Test.txt
・ファイルの内容:0バイト(空ファイル)
・文字コード:Shift-JIS

作成するファイル(サンプルでの「CREATE_FILE」)にパスを含めず、ファイル名のみを指定した場合、実行したVBScriptファイルを格納しているフォルダにファイルが作成されます。

引数2[上書き可否]を指定

第一引数のファイル名に加え、第二引数の上書き可否も指定したサンプルになります。
ここでは、上書き可否の設定を既定値ではない、False(上書きを許可しない)を確認してみます。

Option Explicit

' 作成するファイル
Const CREATE_FILE = "C:\workspace\VBScript\sample\Test.txt"

' 宣言
Dim fso

' ファイルシステムオブジェクトの作成
Set fso = CreateObject("Scripting.FileSystemObject")

' ファイルの作成
Call fso.CreateTextFile(CREATE_FILE, False)

' ファイルシステムオブジェクトの破棄
Set fso = Nothing

上書きを許可しない設定で、既に作成するファイルが存在する状態でスクリプトを実行すると、以下のようなエラー(既に同名のファイルが存在しています。)が表示されます。

引数3[文字コード]を指定

設定可能な全ての引数を設定したサンプルになります。
ここでは、上書き可否は既定値のTrue(上書きを許可する)、文字コードは既定値ではないTrue(Unicode)の組み合わせで確認してみます。

Option Explicit

' 作成するファイル
Const CREATE_FILE = "C:\workspace\VBScript\sample\Test.txt"

' 宣言
Dim fso

' ファイルシステムオブジェクトの作成
Set fso = CreateObject("Scripting.FileSystemObject")

' ファイルの作成
Call fso.CreateTextFile(CREATE_FILE, True, True)

' ファイルシステムオブジェクトの破棄
Set fso = Nothing

このスクリプトを実行すると、下記のように文字コードが「Unicode」のファイルが作成されます。
(Unicodeで作成した場合は、BOMも付与されるようです)

サクラエディタ

ファイルを作成し、内容を書き込む

CreateTextFileメソッドでは、ファイルの作成に加え、文字列を書き込むことも可能です。
ここでは、Shift-JISでファイルを作成しつつ、「書き込みテスト」と出力してみます。

Option Explicit

' 作成するファイル
Const CREATE_FILE = "C:\workspace\VBScript\sample\Test.txt"

' 宣言
Dim fso, data

' ファイルシステムオブジェクトの作成
Set fso = CreateObject("Scripting.FileSystemObject")

' ファイルの作成とオープン
Set data = fso.CreateTextFile(CREATE_FILE)

' 文字列の書き込み
data.WriteLine("書き込みテスト")

' ファイルのクローズ
data.Close

' ファイルシステムオブジェクトの破棄
Set fso = Nothing

このサンプルを実行すると、下記のようにファイルを作成しつつ、文字列を書き込むことが可能です。

サクラエディタ

コメント

タイトルとURLをコピーしました