他の人のコードでたまに目にする「#」の記号は「ファイル番号」を意味します。
今回は「#」の意味について徹底的に説明していきます。
「#」はファイル番号の意味
「#」は、シャープではなく正しくは「ナンバー記号」と呼び、「ファイル番号」を意味します。
ちなみに、音楽で使われるシャープ記号は、五線譜の横線と見間違わないように「♯」と横棒が斜めです。
ファイル番号とは?
ファイル番号とは、マイクロソフトによると
ファイル番号
ファイルを開くために Open ステートメントで使用される番号。他のアプリケーションからアクセスできないファイルに対しては、1 ~ 255 の範囲のファイル番号を使用します。他のアプリケーションからアクセスできるファイルには、256 ~ 511 の範囲のファイル番号を使用します。
マイクロソフト
VBAで「テキストファイルなどのファイル」をOpenステートメントを使って開くということは、OS(Windows)側でそのファイルを一時的に管理することになります。
その際に、ファイルを番号で管理するために「ファイル番号」と呼ばれるものを付します。
ファイル番号は他のファイルと重複しないようにします。
通常は「#1」のように任意のファイル番号を指定しますが、複数のファイルを扱う場合には「FreeFile関数」で空いているファイル番号を取得する必要があります。
※ここで説明しているOpenステートメントは、ブックを開くときに使う、WorkbooksコレクションのOpenメソッドは異なりますので、混同しないように注意してください。
ファイル番号の使い方
構文: Open ファイル名 For 開き方 As #ファイル番号
「ファイル名」は一般的にフルパスで指定します。
「ファイル番号」は「#1」のように数字を指定するか、FreeFile関数を取得した変数を指定します。
「開き方」は、開くファイルに対して、何を行うかを指定します。
開き方 | 処理 |
Input | テキストファイルからデータをエクセルに読み込む |
Output | テキストファイルにデータを書き込む |
Append | テキストファイルにデータを追記する |
Random | データベースのファイルにアクセスする |
Binary | 画像ファイルなどのバイナリデータを扱う |
テキストファイルにデータを書き込むサンプルコード:
Sub テキストファイルにデータを書き込む()
Dim FileNumber As Long
FileNumber = FreeFile
Open ThisWorkbook.Path & "\テスト.txt" _
For Output As #FileNumber 'FreeFileで空きファイル番号を取得
Print #FileNumber, "こんにちは" 'テキストに「こんにちは」と書き込む
Print #FileNumber, "123", "ABC" 'テキストに「123」「ABC」と書き込む
Close #FileNumber
End Sub
実行結果:
テキストファイルを開いた以降は、「#」をつけたファイル番号を指定することによって処理できることに注目してください。
「#」はファイル操作の際に必要な記号なので、今回の記事をぜひ役立ててくださいね。
コメント
[…] 参考:シャープ(#)の意味は何? […]