- 締切済み
IEよりExcelを開いた場合にファイル名に括弧がついてしまう
Webアプリケーションで、ブラウザ(IE6)よりExcel(マクロあり)を開く際に ダイアログ「開く/保存/キャンセル」が表示され、「開く」を選択した場合の マクロの動作に関する質問です。 「開く」を選択した場合、もとのExcelのファイル名がsample.xlsであれば ファイルがsample[1].xlsのように”[1]”が自動的に付与されます。 (参考:http://support.microsoft.com/kb/325630/ja) ところが、マクロをVisual Basic Editorで参照するとウィンドウに sample(1).xlsのように”(1)”が表示されており、ActiveWorkbookの 名称もMsgBox(ActiveWorkbook)では”sample(1).xls”として取得されるため、 ブック名を取得してシートやセルを指定する処理ができずにVBがエラーと なってしまいます。(ThisWorkbookとしても同様) Excelファイルそのものの[1]とVBAの解釈の(1)の相違により、VB側で ファイルを見つけられないことによるエラーではないかと考えております。 ファイルをIEから「保存」すれば問題はないのですが、「開く」とする 場合の対応方法をご存知であればご教授願います。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- fly_moon
- ベストアンサー率20% (213/1046)
こんにちは。 状況がいまいち解らないのですが…私がバカなのかもしれませんが… ASPでExcelファイルをダウンロードさせて、クライアントでそのExcelファイルを開き、そのファイルに含まれるマクロを走らせて処理をするってことですか?そのファイル名がsample.xlsじゃなくてsample.doc.xlsみたいな形ってことですか? >名称もMsgBox(ActiveWorkbook)では”sample(1).xls”として取得されるため、 なら、ThisWorkbookじゃなくてActiveWorkbookじゃダメなんですか?
補足
ご回答を頂き、ありがとうございます。 説明が不十分で申し訳ありません。 WebアプリケーションはJavaなのですが、画面上のリンククリックで マクロ付きのExcelファイルをダウンロードできるものになっております。 なお、ブラウザにExcelを表示するものではなく、Excelを起動するものになっております。 クリック時に表示される「このファイルを開くか、または保存しますか?」の ダイアログで、「開く/保存/キャンセル」を選択することができます。 このとき、以下の現象が生じます。 (1)「保存」を選択した場合 sample.xlsというファイルがローカルに保存されるため、VBAに記述している ブック名(ファイル名)、シート名&セルを取得する際にActiveWorkbookを sample.xlsと解釈できるため、ローカルに保存されたファイルsample.xlsを見つける ことができ、VBAが正常に実行される (2)「開く」を選択した場合 sample.xlsというファイルではなく、ファイルがローカルキャッシュ (\Temporary Internet Files配下)に入り、ファイル名に"[1]"が追加され、 sample[1].xlsという名前でキャッシュされるようです。ところが、このファイルの VisualBasicEditorを開くとウィンドウのヘッダがsample(1).xlsと表記されており、実際、 ActiveWorkbookでもMsgboxを出してみたところsample(1).xlsと解釈されており、 ファイル(sample(1).xls)を見つけることができず、VBAが正常に実行されない 「開く」とした場合に、ファイルに修飾子"[1]"が追加されるのは仕様の ようなのですが、このときVBAではActiveWorkbookと記述してもThisWorkbookと 記述しても探しに行くファイルが"(1)"付きのsample(1).xlsとなるため、BVAが 正しく動作しないのではないかと考えており、これを解消する術をご教授頂きたいのです。