Excel VBAリファレンス(VBAのファイル入出力編)
VBA(Visual Basic for Applications)に実装されている入出力関連のステートメントおよび関数について、リファレンスとして利用できるように一覧表を掲載しておきます。
■VBAにおけるファイル入出力の概要
VBAのファイル入出力については、多くの機能が提供されていてわかり難いですが、主なステートメントはOpen/Close、Lock/Unlock、Get/Put、Input/Write、Line Input/Printのように2つの機能が対になっているので、2つずつセットにすると覚え易いです。
また、ファイルのアクセス方式(「シーケンシャル」「バイナリ」「ランダム」の3種類(注))によって使用できる機能が異なりますので、下表のような対応関係を把握しておくと良いです。
(注)Openステートメントのmode引数で指定可能なファイルモードは5種類ありますが、シーケンシャルファイルのモードが「Input(入力モード)」「Output(出力モード)」「Append(追加モード)」に細分化されているだけです。
入出力機能 | ファイルアクセス方式 | ||
---|---|---|---|
シーケンシャル | バイナリ | ランダム | |
Open/Close | ○ | ○ | ○ |
Lock/Unlock | × | ○ | ○ |
Get/Put | × | ○ | ○ |
Input/Write | ○ | × | × |
Line Input/Print | ○ | × | × |
■ファイル入出力関連のステートメント
VBA本体に実装されている入出力関連のステートメントは下表の通りです。
なお、VBAのFileSystemクラスにはファイルやフォルダを取扱う機能が集められており、下表以外にも多くのステートメントや関数が提供されています。
⇒VBAのFileSystemクラスについては、Excel VBAリファレンス(VBA(Visual Basic for Applications)編)を参照して下さい。
Closeステートメント | |||
説明 | 開いたファイルへの入力/出力(I/O)を終了する | ||
構文 | Close [filenumberlist] | ||
引数 | filenumberlist | 1つまたは複数のファイル番号を指定 (省略時は全てのファイルを閉じる)(※)複数のファイル番号を指定する場合は、「#1, #2」のようにカンマ区切りで記述。 |
|
Getステートメント | |||
説明 | 開いたファイルから変数にデータを読み込む | ||
構文 | Get [#]filenumber, [recnumber], varname | ||
引数 | filenumber | ファイル番号を指定 | |
recnumber | 読み取りを開始するレコード番号(Randomモード)またはバイト番号(Binaryモード)を指定 (省略時は次の読み込み位置から読み込む) |
||
varname | 読み込み先変数名を指定 | ||
Inputステートメント | |||
説明 | 開いたシーケンシャルファイルから変数にデータを読み込む | ||
構文 | Input #filenumber, varlist | ||
引数 | filenumber | ファイル番号を指定 | |
varlist | 1つまたは複数の読み込み先変数名を指定
(※)複数の変数名を指定する場合は、「変数1, 変数2」のようにカンマ区切りで記述。 |
||
Line Inputステートメント | |||
説明 | 開いたシーケンシャルファイルから変数に1行分のデータを読み込む | ||
構文 | Line Input #filenumber, varname | ||
引数 | filenumber | ファイル番号を指定 | |
varname | 読み込み先変数名を指定 | ||
Lockステートメント | |||
説明 | 開いたファイルの全てまたは一部をロックする | ||
構文 | Lock [#]filenumber, [recordrange] | ||
引数 | filenumber | ファイル番号を指定 | |
recordrange | ロックするレコードの範囲を指定 (省略時はファイル全体をロックする)(※)指定可能な形式は以下の2パターン。 recnumber:レコード番号(Randomモード)またはバイト 番号(Binaryモード)を指定 [start] To end:ロックする範囲の最初と最後のレコード番号またはバイト番号を指定 (start省略時はファイルの先頭が開始位置) |
||
Nameステートメント | |||
説明 | ファイル、ディレクトリまたはフォルダの名前を変更する | ||
構文 | Name oldpathname As newpathname | ||
引数 | oldpathname | 既存ファイルのパスを指定 | |
newpathname | 新しいファイルのパスを指定 | ||
Openステートメント | |||
説明 | ファイルを開き、ファイルへの入出力(I/O)を有効にする | ||
構文 | Open pathname For mode [Access access] [lock] As [#]filenumber [Len = reclength] | ||
引数 | pathname | ファイルのパスを指定
(※)Inputモード以外でファイルが存在しない場合、指定したファイルを作成。 |
|
mode | ファイルモードを指定
(※)指定可能なキーワードは以下の5つ。 |
||
access | 開いたファイルに許可する操作を指定
(※)指定可能なキーワードは以下の3つ。 |
||
lock | 開いたファイルに対する他のプロセスからの操作の制限を指定
(※)指定可能なキーワードは以下の4つ。 |
||
filenumber | ファイル番号を指定 | ||
reclength | レコード長(Randomモード)またはバッファ長(Inputモード、Outputモード、Appendモード)を指定
(※)Binaryモードの場合はLen句を無視。 |
||
Printステートメント | |||
説明 | 表示形式のデータをシーケンシャルファイルに書き込む | ||
構文 | Print #filenumber, [outputlist] | ||
引数 | filenumber | ファイル番号を指定 | |
outputlist | 出力する式または式のリストを指定
(※)指定可能な形式は以下の通り(Spc関数とTab関数については次項参照)。 |
||
Putステートメント | |||
説明 | 変数のデータをファイルに書き込む | ||
構文 | Put [#]filenumber, [recnumber], varname | ||
引数 | filenumber | ファイル番号を指定 | |
recnumber | 書き込みを開始するレコード番号(Randomモード)またはバイト番号(Binaryモード)を指定 (省略時は次の書き込み位置から読み込む) |
||
varname | 書き込み元変数名を指定 | ||
Unlockステートメント | |||
説明 | 開いたファイルの全てまたは一部をロック解除する | ||
構文 | Unlock [#]filenumber, [recordrange] | ||
引数 | filenumber | ファイル番号を指定 | |
recordrange | ロック解除するレコードの範囲を指定 (省略時はファイル全体をロック解除する)(※)指定可能な形式は以下の2パターン。 recnumber:レコード番号(Randomモード)またはバイト 番号(Binaryモード)を指定 [start] To end:ロック解除する範囲の最初と最後のレコード番号またはバイト番号を指定 (start省略時はファイルの先頭が開始位置) |
||
Widthステートメント | |||
説明 | 開いたファイルに出力行の幅を割り当てる | ||
構文 | Width #filenumber, width | ||
引数 | filenumber | ファイル番号を指定 | |
width | 新しい行を開始するまでに表示する文字数を指定 | ||
Writeステートメント | |||
説明 | シーケンシャルファイルにデータを書き込む | ||
構文 | Write #filenumber, [outputlist] | ||
引数 | filenumber | ファイル番号を指定 | |
outputlist | コンマで区切られた1つ以上の数値式または文字列式を指定 (省略時は空白行を出力) |
■ファイル入出力関連の関数
VBA本体に実装されている入出力関連の関数は下表の通りです。
なお、VBAのStringクラスには文字列を取扱う機能が集められており、下表以外にも多くの関数が提供されています。
⇒VBAのStringクラスについては、Excel VBAリファレンス(VBA(Visual Basic for Applications)編)を参照して下さい。
Format関数 | |||
説明 | 書式指定式に従って書式設定した結果を返す | ||
構文 | Format(Expression, [Format], [FirstDayOfWeek], [FirstWeekOfYear]) | ||
引数 | Expression | 書式設定の対象となる式を指定 | |
Format | 書式指定式を指定(省略時は既定の書式を設定) | ||
FirstDayOfWeek | 週の最初の曜日をVbDayOfWeek列挙体で指定
(※)VbDayOfWeek列挙体の値は以下の通り。 |
||
FirstWeekOfYear | 年の最初の週をVbFirstWeekOfYear列挙体で指定
(※)VbFirstWeekOfYear列挙体の値は、以下の通り。 |
||
Spc関数 | |||
説明 | PrintステートメントまたはPrintメソッドと共に使用し、指定した数のスペースを挿入する | ||
構文 | Spc(n) | ||
引数 | n | 次の式を表示または印刷する前に挿入するスペースの数を指定 | |
Tab関数 | |||
説明 | PrintステートメントまたはPrintメソッドと共に使用し、次の文字の出力位置を移動する | ||
構文 | Tab[(n)] | ||
引数 | n | 次の式を表示または印刷する前に移動する列番号を指定 (省略時は次の印刷領域の最初に挿入ポイントを移動) |
出版社:インプレス
発売日:2022/3/23
単行本(ソフトカバー):A5判/912ページ
出版社:技術評論社
発売日:2021/1/9
単行本(ソフトカバー):A5判/800ページ
出版社:技術評論社
発売日:2019/11/25
単行本(ソフトカバー):B5変形判/576ページ
ディスカッション
コメント一覧
まだ、コメントがありません