Getの概要
ファイルからバイナリデータやレコードを読み取る VBAの予約語 | ||
Get 概要 Get ステートメントは、VBAでファイルからデータを取得するために使用されます。主にバイナリファイルや固定長レコードの読み取りに利用され、 わかりやすく説明 ファイルからデータを読み取るための命令。 |
||
|
Getを使った基本的なファイルの読み取り
以下の例では、ファイルから整数データを取得します。
Sub ReadIntegerFromFile()
Dim fileNum As Integer
Dim myNumber As Integer
' ファイルを開く
fileNum = FreeFile
Open "C:\temp\data.dat" For Binary As #fileNum
' ファイルからデータを読み取る
Get #fileNum, 1, myNumber
' ファイルを閉じる
Close #fileNum
' 読み取ったデータを表示
MsgBox "読み取った数値: " & myNumber
End Sub
解説:
Open "C:\temp\data.dat" For Binary As #fileNum
: ファイルをバイナリモードで開く。Get #fileNum, 1, myNumber
: ファイルの先頭(1バイト目)から整数データを取得。Close #fileNum
: ファイルを閉じる。
固定長レコードを読み取る
以下の例では、レコードデータを取得する方法を示します。
Type Employee
ID As Integer
Name As String * 20
Age As Integer
End Type
Sub ReadRecord()
Dim fileNum As Integer
Dim emp As Employee
' ファイルを開く
fileNum = FreeFile
Open "C:\temp\employees.dat" For Random As #fileNum Len = Len(emp)
' 2番目のレコードを取得
Get #fileNum, 2, emp
' ファイルを閉じる
Close #fileNum
' 結果を表示
MsgBox "社員ID: " & emp.ID & vbCrLf & "名前: " & emp.Name & vbCrLf & "年齢: " & emp.Age
End Sub
解説:
Type Employee
: 固定長のレコードを定義。Open "C:\temp\employees.dat" For Random
: レコード単位でファイルを開く。Get #fileNum, 2, emp
: 2番目のレコードを取得。
Excel VBAでのGetの活用
以下の例では、バイナリファイルから文字列データを取得し、Excelに書き込む方法を示します。
Sub ReadBinaryToExcel()
Dim fileNum As Integer
Dim myText As String * 50
Dim rng As Range
' ファイルを開く
fileNum = FreeFile
Open "C:\temp\textdata.dat" For Binary As #fileNum
' ファイルからデータを取得
Get #fileNum, 1, myText
' ファイルを閉じる
Close #fileNum
' Excelのセルに書き込む
Set rng = Range("A1")
rng.Value = Trim(myText)
End Sub
解説:
- ファイルから 50 文字のデータを取得。
- Excel のセルに取得したデータを書き込む。
Getの注意事項
- ファイルは適切に閉じる:
Close
を忘れると、ファイルがロックされる可能性がある。 - データの型に注意: 読み取るデータの型と変数の型が一致していることを確認する。
- バイナリデータの解析が必要な場合もある: ファイルのフォーマットを事前に理解しておく。
よくある質問
- Q: Get を使用する前にファイルを開く必要がありますか?
- A: はい。
Open
ステートメントでファイルを開いてからGet
を使用してください。 - Q: テキストファイルにも Get を使えますか?
- A: 可能ですが、通常は
Input
やLine Input
を使用したほうが適しています。 - Q: ファイルのどの位置から読み取るのですか?
- A: 2 番目の引数で指定した位置からデータを取得します(デフォルトはファイルの先頭)。
まとめ
- Get ステートメントは、ファイルからデータを読み取るために使用される。
- バイナリデータや固定長レコードを扱うのに適している。
- Excel VBAでファイルのデータをセルに取り込むのに活用できる。
- 適切なデータ型を指定し、ファイルを開いた後は必ず閉じることが重要。