EXCEL VBAメモ - 複数ファイルを同時オープンする場合のFileNumberの取得
マクロを組んでいて少し悩んだのでメモ
テキストファイルを読み書きする際にはFreeFile関数でFileNumberを取得して、ファイルに割り当てて使用するが、以下の様に事前にFileNumberを取得すると書き込み用ファイルのオープンで「ファイルは既に開かれています」というエラーになった。
原因は、変数 fni および fno に同じ値 1 が割り当てされていた為。
Sub test() Dim fni As Long Dim fno As Long fni = FreeFile fno = FreeFile Open ThisWorkbook.path & "\test1.csv" For Input As #fni Open ThisWorkbook.path & "test2.csv" For Append As #fno '処理 Close #fno Close #fni End Sub
この様な場合は、最初のFileNumberでオープンした後に次のFileNumberを取得する。
fni = FreeFile Open ThisWorkbook.path & "\test1.csv" For Input As #fni fno = FreeFile Open ThisWorkbook.path & "test2.csv" For Append As #fno