記述内容だけ記しても原因はわからないかもしれませんが、相談させてください。
実行すると、nが512までは上手くいくのですが、513以降が「エラー52」が出てダメです。何が問題でしょうか?
※汚い記述でごめんなさい。ド素人です。
※コメントも活用ください。
Sub test()
Worksheets("sheet").Select
Range("A1").Select
Dim 最終行 As Integer
Dim n As Integer
Dim m As Integer
パス = Worksheets("窓口").Range("B12").Value
最終行 = Worksheets("sheet").Range("B3").Value
m = Worksheets("sheet").Range("D2").Value
For n = 1 To m
ファイル名 = Worksheets("sheet").Range("B4").Value
Worksheets("sheet").Range("B2").Value = n
Dim File_OUT As String
File_OUT = "C:\Documents and Settings\TM\" & ファイル名
Open File_OUT For Output As #n
For i = 2 To 最終行
Print #n, Trim(Range("A" & i).Value)
Next
Close #n
Next
End Sub
ファイル番号に n を適用する理由が見あたりません。
逐次クローズしているので、下記のように、#n の代わりに #1 を指定すればよいと思います。
Open File_OUT For Output As #1 For i = 2 To 最終行 Print #1, Trim(Range("A" & i).Value) Next Close #1
ちなみに、Excel VBA で指定できるファイル番号の範囲は 1~511 で、1~255のファイル番号を割り当てると、そのファイルは他のアプリケーションからアクセスできません。
コメント(2件)
miku1973さんのコーディング中の#nを#1に変更すればOKです。
なしかしらの理由でヘルプをインストールしても支障がある状態であれば申し訳ないです。