こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ExcelVBAで実行時エラーが出ます

このようなマクロを作りました。
Sub WriteCsv()
Dim myTxtFile As String, myFNo As Integer
Dim myLastRow As Long, i As Long
Dim j As Long
Dim aaa As Worksheet
Set aaa = ActiveSheet
Application.ScreenUpdating = False
j = 0
myTxtFile = ActiveWorkbook.Path & "\Adress List.txt"
Worksheets("List").Activate
myLastRow = Range("A4").End(xlDown).Row
myFNo = FreeFile
Open myTxtFile For Output As #myFNo -----※
For i = 4 To myLastRow
If Cells(i, 3) = 1 Then
Write #myFNo, Cells(i, 5)
j = j + 1
End If
Next
Close #myFNo
  ・・・・
  ・・・・

このExcelをフォルダーから実行するとすると、※で[ランタイムエラー52]が発生しますが、デスクトップから実行すると出ません。
どのように修正すればいいんでしょうか?
よろしくお願いします。

投稿日時 - 2012-07-20 17:52:51

QNo.7601119

困ってます

質問者が選んだベストアンサー

> myTxtFile = ActiveWorkbook.Path & "\Adress List.txt"
この行の次にMsgBoxでもいれて myTxtFile の中身を確認してはどうでしょう?

ActiveWorkbook.Path の末尾が \  で終わってるなら

myTxtFile = ActiveWorkbook.Path & ".\Adress List.txt" と
.を足してください。

投稿日時 - 2012-07-20 21:23:01

お礼

回答ありがとうございました。おかげさまで解決できました。bin-chanさんの言うとおりにMsgBoxを入れてファイル名を確認したところ、フォルダー名に使用していた漢字が文字化けしてました。英語バージョンのExcelを使っていたのでこのようになったと思います。bin-chanさんから指摘されるまではまったく気づきませんでした。ありがとうございました。これからもよろしくお願いします。

投稿日時 - 2012-07-21 10:26:28

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問