
最近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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
特定のエクセルファイルを起動...
-
共有フォルダに誰が何にアクセ...
-
Batch: フォルダ内の特定のファ...
-
AccessVBAで作成したExcelファ...
-
【アクセス】「ほかのユーザー...
-
Access VBA を利用して、フォル...
-
社内Excel共有ブックでの保存ト...
-
ファイルの途中に文字列を挿入
-
VBAでCSVファイルが使用中かど...
-
excelを共有ファイルにすると行...
-
0バイトのファイルを検知したい。
-
特定のフォルダに入れたファイ...
-
VB6.0でファイルの一行だけ削除...
-
複数のcsvをVBAでマージする方...
-
IUSR_MACHINEでMDBアクセスがで...
-
mdbファイル フォームを開くと...
-
大量のCSVデータを行列の変換を...
-
バックアップファイルの作り方(...
-
【VBA】異なる行だけを抜き出す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
特定のエクセルファイルを起動...
-
共有フォルダに誰が何にアクセ...
-
Batch: フォルダ内の特定のファ...
-
VBAでCSVファイルが使用中かど...
-
月が変わったら自動でシートが...
-
excelを共有ファイルにすると行...
-
(Excelマクロ)datファイルをエ...
-
AccessVBAで作成したExcelファ...
-
XMLデータを変換し印刷する方法
-
Access VBA を利用して、フォル...
-
【アクセス】「ほかのユーザー...
-
社内Excel共有ブックでの保存ト...
-
Excel VBA 処理後データが重た...
-
ファイルの途中に文字列を挿入
-
mdbファイル フォームを開くと...
-
tmpファイル なぜできる?削除...
-
拡張子が「cda」のファイルを聞...
-
access関数を説明できる方いま...
-
相手のPCにVBAからメッセ...
おすすめ情報