0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FileSystemObjectを使ってテキストファイルを開く

Last updated at Posted at 2022-01-16

参照設定

メニューから「ツール」→「参照設定」で参照設定のウインドウが開くので、
「Microsoft Script Runtime」を選択して、「OK」ボタンでウインドウを閉じる。
キャプチャ.PNG

宣言

以下のように、宣言する。

    Dim FSO as New FileSystemObject
    ' または
    Dim FSO as FileSystemObject
    Set FSO = New FileSystemObject
    '参照設定をしない場合は、
    Dim FSO as Object
    Set FSO = CreateObject("Scripting.FileSystemObject")

テキストファイルを開く

OpenTextFile関数を使ってテキストファイルを開く

    dim TS as TextStream
    'テキストファイルを読む
    Set TS = FSO.OpenTextFile(filename, [iomode], [create], [format])

引数について

引数名 省略可否 説明
filename 必須 読み込むファイルパスを文字列形式で指定する。
iomode 省略可 入力/出力モード。 ForReading、ForWriting、または ForAppending のいずれかの定数を指定する。
create 省略可 filenameで指定したファイルが存在しない場合に新しいファイルを作成するかどうかをBool値で指定する。 新しいファイルを作成する場合は True、作成しない場合は False を指定する。 既定値は False。
format 省略可 開くファイルの形式を示す Tristate の 3 つの値のいずれかを指定する。 省略すると、ASCII 形式でファイルを開く。

TextStream

TextStreamを使って、テキストファイルを読んだり、書き込んだりできる。

    ' 5文字読む
    TS.Read 5
    ' 1行読む
    TS.ReadLine
    ' 全体を読む
    TS.ReadAll
    ' 3文字スキップする
    TS.Skip 3
    ' 次の行をスキップする
    TS.SkipLine 
    ' 「test」という文字列を書き込む
    TS.Write "test" 
    ' 空行を4行書き込む(改行文字を4個追加する)
    TS.WriteBlankLine 4
    ' 「text」と改行を書き込む
    TS.WriteLine "text"

後始末

FileSystemObjectの破棄

通常は、プログラムの終了時にオブジェクトは破棄されるので、
下記のコードは不要だが、破棄することを明示したい場合や心配な人はおまじない的にでも書いておけばよい。

    Set FSO = Nothing

ファイルを閉じる

テキストファイルを読むだけでも、編集した場合でも、TextStreamに保存するなどのメソッドはないので、Closeメソッドで自動的に保存される。Closeメソッドを使わなくても、プログラムの終了時に閉じるので、なくても大丈夫。

    TS.Close
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?