Open ステートメント

ファイルへの入出力 (I/O) を有効にします。

構文

pathnameFormode [ Accessaccess ] [ lock ] As [ # ] filenumber [ Len = reclength ] を開く

Open ステートメントの構文には、次の指定項目があります。

指定項目 説明
pathname 必須。 ファイル名を指定する文字列式です。ディレクトリまたはフォルダーとドライブを含めることもできます。
mode 必須。 ファイル モードを指定するキーワード (AppendBinaryInputOutput、または Random) です。 指定していない場合、ファイルは Random アクセス用に開かれます。
access 省略可能。 開いたファイルに対して許可される操作を指定するキーワード (ReadWrite、または Read Write) です。
lock 省略可能。 開いたファイルに対する他のプロセスからの操作の制限を指定するキーワード (SharedLock ReadLock Write、および Lock Read Write) です。
filenumber 必須。 範囲が 1 以上 511 以下の有効なファイル番号です。 次に使用可能なファイル番号を取得するには、FreeFile 関数を使用します。
reclength 省略可能。 32,767 (バイト) 以下の数値です。 ランダム アクセス用に開いたファイルの場合、この値がレコード長になります。 シーケンシャル ファイルの場合、この値はバッファーされる文字数になります。

解説

ファイルに対する I/O 操作を実行する場合は、その前にファイルを開いておく必要があります。 Open により、ファイルへの I/O のためのバッファーが割り当てられて、そのバッファーで使用するアクセス モードが決まります。

pathname で指定したファイルが存在しない場合に、AppendBinaryOutput、または Random モードでファイルを開くと、そのファイルが作成されます。

ファイルが別のプロセスで開かれていて、指定した種類のアクセスが許可されていない場合は、Open 操作が失敗してエラーが発生します。

modeBinary の場合、Len 句は無視されます。

重要

BinaryInput、および Random モードでは、別のファイル番号を使用することで、先にファイルを閉じていなくてもファイルを開くことができます。 Append および Output モードでは、別のファイル番号でファイルを開く前に、そのファイルを閉じておく必要があります。

この例では、ファイルへの入出力を有効にする Open ステートメントの使用方法を示します。

次のコードでは、シーケンシャル入力モードでファイルを開きます。

Open "TESTFILE" For Input As #1 
' Close before reopening in another mode. 
Close #1 

この例では、書き込み操作のためにのみ Binary モードでファイルを開きます。

Open "TESTFILE" For Binary Access Write As #1 
' Close before reopening in another mode. 
Close #1 

次の例では、Random モードでファイルを開きます。 ファイルには、ユーザー定義型のレコードが格納されています。

Type Record ' Define user-defined type. 
 ID As Integer 
 Name As String * 20 
End Type 
 
Dim MyRecord As Record ' Declare variable. 
Open "TESTFILE" For Random As #1 Len = Len(MyRecord) 
' Close before reopening in another mode. 
Close #1 

このコード例では、シーケンシャル出力のためにファイルを開きます。どのプロセスからでもファイルの読み取りまたは書き込みを実行できます。

Open "TESTFILE" For Output Shared As #1 
' Close before reopening in another mode. 
Close #1 

このコード例では、読み取りのために Binary モードでファイルを開きます。このファイルは別のプロセスから読み取ることができなくなります。

Open "TESTFILE" For Binary Access Read Lock Read As #1 

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。