質問: sheets(1).range("a1").value '同じ階層に保存 thisworkbook.saveas filename:=thisworkbook.path & "\" & myfname if myfname0 <> myfname & ".xls" then '前の名前のファイルを削除する場合は下の一行を有効にしてください 'kill thisworkbook.path & "\" & myfname0 end if exit sub errh: end sub この処理はcsvファイルの読み込み先のエクセルファイルから、行いたいと考えております。 よろしくお願致します。
回答: 本来、wscript で十分だと思います。それをデスクトップに置けばよいのですが、わざわざ、vbaにしたところで、どこかのブックに置かなくてはなりません。以下のマクロの登録先は、personal.xls や一般のブックに登録することになります。 kill thisworkbook.path & "\" & myfname0 もとのマクロですが、thisworkbookというのは変ですね。 以下は、log数字.csv なら通るようにしてあります。 '// sub csvconvertfile() dim fname as string dim ofname as string dim ofullname as string dim oname as string dim spath as string dim sext as string dim i as long sext = iif(val(application.version) > 11, ".xlsx", ".xls") 'デフォルトパス spath = application.defaultfilepath ofname = activeworkbook.name ofullname = activeworkbook.fullname if not strconv(ofname, vblowercase) like "log###*" then msgbox "logファイルではありません。", 16: exit sub if instrrev(ofname, ".csv", , 1) = 0 then msgbox "csvファイルではありません。", 16: exit sub if activesheet.range("a1").value = "" then msgbox "a1に文字がありません。", vbcritical exit sub end if fname = activesheet.range("a1").value '同名ファイルがあった場合に名前を変更 oname = fname do if dir(spath & fname & sext) <> "" then i = i + 1 fname = oname & format(i, "(0)") '重複があった時のファイル名 end if loop until dir(spath & fname & sext) = "" activeworkbook.saveas spath & fname, fileformat:=xlworkbooknormal if msgbox(ofname & "を削除してよろしいですか?", vbokcancel) = vbok then kill ofullname end if end sub