Openメソッドで実行時エラーが表示されてしまうが?

Question 029k 拙著「組み方講座」 Previous Next
100ページ [1-1-20図] ◆ 環境・・ Excel 2002 & Windows XP
詳細は こちら
『リストボックスを利用してファイルを開く』の章で、『リストボックス_索引_準備』ファイルを呼び出し、マクロのコーディングを終え、実際にマクロを動かしてみたのですが、リストボックスをクリックしても、下記のエラーが表示されて動きません。
   実行時エラー'1004''ムツゴロウ.xls'が見つかりません。
   ファイル名およびファイルの保存場所が正しいかどうか確認してください。

VBAのMODULEコードの最終行の、一つ前の行
Workbooks.Open Filename:=ファイル名 & ".xls", ReadOnly:=True
が、黄色に表示されます。
ところが、同じファイルを新たに呼び出して、マクロを実行する前に [ファイル]-[開く]-環境ファイルのエクセルデータ(例:ムツゴロウ) を開いて閉じた後、マクロを実行すると動きます。
最初のマクロ実行で、拡張子の認識がうまくできないのか、黄色に表示された行のファイル名にカーソルをあてると、クリックしたファイル名は表示されます。
拡張子は、フォルダーオプションで『登録されている拡張子は表示させない』という項目はチェックオフにしてあります。
これ以上は、小生ではわかりかねますので、ご教示お願いします。
Answer   Copyright (C) 2004.3.19 永井善王
拙著「ExcelVBAマクロ組み方講座」をご購読、ありがとうございます。

ひょっとしてエラーメッセージは、右図のように表示されなかったでしょうか。
ムツゴロウ
,xls.xls' と、'xls' がダブっていておかしいですね。

そうだとすると見分けしにくいですが、
  1番目の 'xls' の直前は ',' (コンマ)、
  2番目の 'xls' の直前は '.' (ピリオド)
になっているのではないでしょうか?

もう一度、黄色に表示されたコードを確認して
コンマxls になっていないか、ご確認いただけませんか。
Workbooks.Open Filename:=ファイル名 & ",xls", ReadOnly:=True

このほかの原因も考えられなくもないですが、あなたの学習は着実に進んでいるようですので、もし、これが原因でない場合は改めて回答します。 お手数ですが結果をご連絡ください。
ご返事お待ちしています。
ありがとうございました
さっそく、ご返事をいただき、ありがとうございました。
さて、小生が質問した点ですが、結論から申し上げると、『入力ミスにより、マクロがうまく動かなかった』ということでした。 質問部分のマクロですが、以下のとおり MODULEコードを入力するところ、 1-1-14図の
Private Sub 選択されたファイルを開く()
    ChDrive ドライブ
    パス = ドライブ & ":\" & 親フォルダー & "\" & 子フォルダー
    ChDir パス
    Workbooks.Open Filename:=ファイル名 & ".xls", ReadOnly:=True
End Sub
4行目に ChDrive パス と入力していました。
ディレクトリー部分が表示されないので、マクロがエラーになったということでした。 いったん、環境ファイルのWorkbookをなにか読み出しておけば、最終行の
Workbooks.Open Filename:=ファイル名 & ".xls", ReadOnly:=True の、マクロは動くということですね。
間違えて、本当によくわかりました。ありがとうございました。これからも、よろしくおねがいします。
とりいそぎ、お礼・報告まで。

 

Excel VBA Macro