ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

テキストファイル(Open ステートメント・Close ステートメント)

      2016/01/12

新規ブックを開かずにテキストファイルを開く

OpenText ステートメント を使用する場合、テキストファイルを開くたびに新規ブックが作成されます。新規ブックを開かずにテキストファイルを開きたい場合は、Open ステートメント を使用します。開いたテキストファイルは、Open ステートメント の引数で指定した ファイル番号 を使用して参照することができます。テキストファイルを閉じるときは、Close ステートメント を使用します。



Open ステートメント


【書式】

Open pathname For mode [ Access access lock ] As #filenumber [ Len = reclength ]


引数・戻り値

  • pathname  ・・・  開きたいテキストファイルを文字列式でしてします(必須)。ディレクトリまたはフォルダ、およびドライブを含むことができます。
  • mode  ・・・  ファイルを開く時のモードを以下のキーワードで指定します(必須)。
    キーワード 内容
    Append 追加モード
    Binary バイナリモード
    Input シーケンシャル入力モード(ファイルの先頭から順に読み込む)
    Output シーケンシャル出力モード(ファイルの先頭から順に書き込む)※上書き
    Random ランダムアクセスモード(既定値)

  • access  ・・・  開かれたファイルに対して許可される操作を以下のキーワードで指定します(省略可)。
    キーワード 内容
    Read 開いたファイルに対して読み込みのみ行います
    Wright 開いたファイルに対して書き込みのみ行います
    Read Wright 開いたファイルに対して読み書きの両方を行います

  • lock  ・・・  開かれたファイルに対する他のプロセスからの操作の制限を以下のキーワードで指定します(省略可)。
    キーワード 内容
    Shared 他のプロセスからの読み書きの操作を許可します(既定値)
    Lock Read 他のプロセスからの読み込みをロックします
    Lock Wright 他のプロセスからの書き込みをロックします
    Lock Read Wright 他のプロセスからの読み書きの両方をロックします

  • filenumber  ・・・  開いたファイルに番号を割り当てます。1 以上 511 以下の整数値を指定します。
  • reclength  ・・・  32,767(バイト)以下の数値を指定します。ランダムアクセス用に開かれたファイルでは、この値はレコード長です。シーケンシャル ファイルでは、この値はバッファリングされる文字数です(省略可能)。

引数 filenumber に、すでに使用している番号を指定するとエラーが発生します。まだ使用されていないファイル番号を取得するには、FreeFile 関数 を使用します。

引数 mode に、OutputAppend を指定している場合、開いているファイルを異なるファイル番号で同時に開こうとするとエラーが発生するので注意が必要です。なお、InputBinaryRandom を指定している場合は、開いているファイルを異なるファイル番号で開くことができます。



Close ステートメント


【書式】

Close [ #filenumber ]


引数・戻り値

  • filenumber  ・・・  Open ステートメント で、割り当てられたファイル番号を指定します。複数指定することもできます。その場合は、カンマ(,)で区切ります。省略すると開いているすべてのファイルを閉じます。

引数 filenumber に開いていないファイル番号を指定してもエラーは発生しません。この場合、閉じようとしたファイルが閉じられず、再度そのファイルを開こうとした時にエラーが発生してしまうということが起こる可能性があるので注意が必要です。



Open ステートメント で開かれたファイルを処理するステートメント

Open ステートメント で開いたファイルを読み込んだり、書き込んだりするときに使用するステートメントの一覧です。


ステートメント 内容
Input # ステートメント データをカンマで区切られた単位ごとに読み込みます。
Line Input # ステートメント データを1行ごとに読み込みます。
Write # ステートメント カンマ区切りでテキストファイルに書き込みます。
Print # ステートメント 行単位でテキストファイルに書き込みます。
Seek ステートメント テキストファイルの読み取りまたは書き込み位置を設定します。
Put ステートメント テキストファイルにデータを書き込みます。
Get ステートメント テキストファイルのデータを読み込みます。
Width # ステートメント 開いたテキストファイルに、出力行幅を割り当てます。



Open ステートメント で開かれたファイルを処理する関数

Open ステートメント で、ファイルを開いた時などに使用する関数の一覧です。


関数 内容
Input 関数 Input モード・Binary モードで開かれたファイルから読み取ったすべての文字を文字列型(String)で返します。
Seek 関数 開いているファイルの現在の読み取り位置または書き込み位置を示す長整数型(Long)の値を返します。
EOF 関数 Random モード・Input モードで開かれたファイルの末尾に到達するまでは False 、末尾に到達すると True を返します。
Loc 関数 開いているファイルの現在の読み取り位置または書き込み位置を示す長整数型(Long)の値を返します。
LOF 関数 開いているファイルのファイルサイズ(バイト単位)を表す長整数型(Long)の値を返します。
FreeFile 関数 Open ステートメントで使用できるファイル番号を返します。



Open ステートメント 使用例

サンプルVBAソース


実行結果

Open ステートメント・Close ステートメント



 - Excel・ファイルの操作 , , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

Put ステートメント Binary モード 01
テキストファイル:データを書き込む(Put ステートメント)

Put ステートメント Open ステートメント をランダムアクセスモード(Ra …

Dir 関数 01
ファイルの検索・フォルダ内のファイル一覧を取得(Dir 関数)

Dir 関数 Dir 関数で、ファイルの存在を確認したり、指定したフォルダ内のフ …

ファイルを削除(Kill ステートメント)

ファイルを削除する ファイルを削除するには、Kill ステートメント を使用しま …

FileLen 関数
ファイルサイズを取得(FileLen 関数)

ファイルサイズを取得 ファイルのサイズ(バイト数)を取得するには、FileLen …

テキストファイル:データを書き込む(Print # ステートメント)

Print # ステートメント Open ステートメント をシーケンシャル出力モ …

FileDialog オブジェクトを取得する(FileDialog プロパティ)

FileDialog プロパティ FileDialog オブジェクト を取得しま …

Excel を終了する(Quit メソッド)

Excel を終了する(Quit メソッド) Quit メソッドを実行すると、E …

Width # ステートメント
テキストファイル:出力する 1 行の幅を設定(Width # ステートメント)

Width # ステートメント Open ステートメント をシーケンシャル出力モ …

特殊フォルダ
特殊フォルダを取得(wsh.SpecialFolders)

CreateObject 関数:特殊フォルダを取得(WSH.SpecialFol …

開いているファイルの現在の読み取り位置または書き込み位置を取得(Seek 関数)

Seek 関数 Open ステートメント で開いたファイル内の現在の読み取り位置 …