
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から「保存」すれば問題はないのですが、「開く」とする
場合の対応方法をご存知であればご教授願います。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは。
状況がいまいち解らないのですが…私がバカなのかもしれませんが…
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が
正しく動作しないのではないかと考えており、これを解消する術をご教授頂きたいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
データ参照先が別ファイルの場...
-
フォルダ内のexcelファイルを順...
-
【Excel VBA】ファイル名が一...
-
【マクロ】変数に入れるコード...
-
エクセルVBAで送る操作
-
エクセルマクロで不特定なファ...
-
エクセルマクロ 異なるファイ...
-
Excelのマクロでファイルを開く...
-
【マクロ】名前を保存する際に...
-
EXCELマクロを無効にして開く方法
-
ファイルの保存場所を変えたら...
-
vlookup関数の引数を変数で指定...
-
vba初心者です。 質問です。 毎...
-
VBAでワークブックの名前を変数...
-
【マクロ】EXCELで読込したCSV...
-
Excel VBA seleniumのedge操作...
-
エクセルVBA 上書き保存禁止と...
-
accessフォルダを移動したらフ...
-
ACCESSのマクロを自動で実行さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】変数に入れるコード...
-
【マクロ】EXCELで読込したCSV...
-
EXCEL VBA 指定したファイルが...
-
【マクロ】名前を保存する際に...
-
フォルダ内のexcelファイルを順...
-
エクセルマクロで不特定なファ...
-
【Excel VBA】ファイル名が一...
-
ファイルを開かずにマクロを実行
-
エクセル 複数ファイルの一括...
-
accessフォルダを移動したらフ...
-
ファイルの保存場所を変えたら...
-
データ参照先が別ファイルの場...
-
EXCELマクロを無効にして開く方法
-
VBAでワークブックの名前を変数...
-
フォルダ内のブック全部にパス...
-
エクセル(マクロ)のファイル...
-
エクセルファイルを開く時、関...
-
秀丸:あらかじめ設定した複数...
-
Excelのマクロでファイルを開く...
-
EXCEL VBAで作成した ファイル...
おすすめ情報