1

すべてのワークブックを個別の CSV ファイルとして保存するための簡単なマクロを作成しました。これは、 * D:\MyFolder*のようなパスのローカル マシン (English Lang) で正常に動作します。

しかし、日本語が有効になっている別の Windows マシンで同じマクロを実行しようとすると、SaveASメソッドに対して 1004 エラーが発生します。

D:\MyFolder\のようなファイル パス

以下は、エラーの原因となっている私のコードです:

pathSeparator = Application.PathSeparator

strPath = InputBox("d:\someDirectoryName, d: のような既存のディレクトリ パスを入力してください", , , 1000)

SaveToDirectory = strPath & pathSeperator & "csv" & pathSeperator
If Dir(strPath & pathSeperator & "csv", vbDirectory) = "" Then

fso.CreateFolder SaveToDirectory
Else

fso.DeleteFolder strPath & pathSeperator & "csv"
fso.CreateFolder SaveToDirectory

End If

For Each WS In ThisWorkbook.Worksheets
    newName = WS.Name & "-" & Format(Date, "yyyy-mm-dd") & "-" & Format(Time, "hhmmss")
    WS.Copy
    ActiveWorkbook.SaveAs SaveToDirectory & newName, xlCSVMSDOS, Local:=True
    ActiveWorkbook.Close Savechanges:=False
Next
4

2 に答える 2

1

日本語機ではビジュアルベーシックエディタのフォントを日本語フォントに変えてみましたか?

これは、ツール -> オプション -> フォーマット タブから実行できます。

編集 22/08/13

少し遠回りですが、ASCII の日本円文字は英語のマシンの / 文字と同じであることを読みました。そのため、Chr(92) を使用すると両方で機能するはずです。英語のマシンでは / whislt のように表示され、日本語のマシンでは円記号が表示されます。簡単なテストは、日本語のマシンで次のマクロを実行し、何が起こるかを確認することです。

Sub TestSeperator()

MsgBox Chr(92)

End Sub

その場合は、以下のような変更を行う必要があります。

SaveToDirectory = strPath & Chr(92) & "csv" & Chr(92)
If Dir(strPath & Chr(92) & "csv", vbDirectory) = "" Then

fso.CreateFolder SaveToDirectory
Else

fso.DeleteFolder strPath & chr(92) & "csv"
fso.CreateFolder SaveToDirectory
于 2013-08-21T00:47:40.853 に答える