Excelでテキストファイルをはきだすマクロを作りました。

記述内容だけ記しても原因はわからないかもしれませんが、相談させてください。
実行すると、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

回答の条件
  • 1人1回まで
  • 登録:2009/05/15 23:54:35
  • 終了:2009/05/16 18:45:49

回答(5件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/05/16 00:04:15

ポイント10pt

ファイル番号に 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のファイル番号を割り当てると、そのファイルは他のアプリケーションからアクセスできません。

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 TONTON3 212 187 4 2009-05-16 00:08:21
2 airplant 220 200 49 2009-05-16 01:06:17
3 jccrh1 111 94 19 2009-05-16 06:27:17
4 fester 124 118 20 2009-05-16 09:38:39
  • id:airplant
    すみません、コメントに書いたと思ったのが、間違って回答に書いてしまっていました。
    miku1973さんのコーディング中の#nを#1に変更すればOKです。
  • id:harasima
    厳しく受け取られたら申し訳ないのですが、VBAのヘルプをインストールされた方がよいかと。

    なしかしらの理由でヘルプをインストールしても支障がある状態であれば申し訳ないです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません