マクロを組んでいて少し悩んだのでメモ
テキストファイルを読み書きする際には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