
最近ExcelVBAを多用する部署に配属になり、現在勉強中の初心者です。
基本的な部分は何とか理解できるのですが、以下の部分がよくわかりません。
やっていることは、(FNAME)という名前のファイルにある数百万個の数値を、
R()という配列に格納しているらしいのですが、
"FreeFile"と"Get"の使い方がよく分かりません。
漠然とした質問で申し訳ありませんが、詳しい方教えてください。
Dim i As Integer, N As Integer
Dim R(1 To 1000000) As Single
Dim FNAME As String
N = FreeFile
Open FNAME For Binary As N
For i = 1 To 10000
Get N, , R
Next i
No.1ベストアンサー
- 回答日時:
ファイルからデータを読み込む際、openステートメントを使用した方法では
・openステートメントでファイルを開く(アクセス可能状態にする)
・getステートメントでデータを読み込む
を別々に行う必要があります。無論、ファイルを開いてからでないと読み込みはできません。
また、複数のファイルを同時に開いた場合などのときのため、データを読み込む毎にどのファイルから読み込むのか指定しなくてはいけません。
そのためopenステートメントでは開いたファイルに必ず目印となるファイル番号を指定し、getステートメントではその番号を指示することで目的のファイルから正しく読み込むわけです。その番号がここでの変数Nです。
このファイル番号は1~511の整数のどれかを指定する必要があるのですが、すでに使用している番号を使ってしまうと重複してしまいます。
freefile関数は今まで使用していないファイル番号を自動で選択して選んでくれる関数で、これを使うことで番号の重複を防ぐことができます。
N = FreeFile
は変数Nに現在使用可能なファイル番号を格納し、
Open FNAME For Binary As N
はFNAMEファイルをバイナリ処理向けに開き、そのファイルのファイル番号と変数Nの値と決めて、
Get N, , R
はファイル番号Nのファイルからデータを読みそのデータを変数Rに格納する。
という動作となります。
Nはファイルの目印を表しているにすぎない、と思って読むと
ぐっと分かりやすくなりました。
大変参考になりました!
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) ExcelVBAで質問です。離れた二次元配列を一つにしたい 4 2022/07/26 19:06
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Visual Basic(VBA) このマクロの説明文を教えてほしいです。 1 2023/01/12 09:17
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
共有フォルダに誰が何にアクセ...
-
excelを共有ファイルにすると行...
-
JSONファイルの置き場所について
-
Batch: フォルダ内の特定のファ...
-
AccessVBAで作成したExcelファ...
-
拡張子が「cda」のファイルを聞...
-
EXCELで列単位でスクロールさせ...
-
事務の派遣で働いています。多...
-
ファイルに書かれているテキス...
-
共有フォルダのアクセスログに...
-
特定のエクセルファイルを起動...
-
XMLデータを変換し印刷する方法
-
オープンオフィスを更新したら...
-
(Excelマクロ)datファイルをエ...
-
社内Excel共有ブックでの保存ト...
-
VBを使ってIndesign作業を効率化?
-
Accessデータベースの最適化をE...
-
accessでexcelデータを一部変換...
-
SQLPLUSで結果を画面に表示しない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
共有フォルダに誰が何にアクセ...
-
Batch: フォルダ内の特定のファ...
-
特定のエクセルファイルを起動...
-
VBAでCSVファイルが使用中かど...
-
社内Excel共有ブックでの保存ト...
-
Access VBA を利用して、フォル...
-
(Excelマクロ)datファイルをエ...
-
AccessVBAで作成したExcelファ...
-
事務の派遣で働いています。多...
-
excelを共有ファイルにすると行...
-
【アクセス】「ほかのユーザー...
-
拡張子が「cda」のファイルを聞...
-
月が変わったら自動でシートが...
-
Excel VBA 処理後データが重た...
-
WEBクエリが使えない場合のHPデ...
-
access関数を説明できる方いま...
-
ファイルの途中に文字列を挿入
-
特定のフォルダに入れたファイ...
-
tmpファイル なぜできる?削除...
おすすめ情報