- ベストアンサー
相対パスでExcel Bookのオープン
こんにちわ。 相対パスでブックをオープンしようとすると、 「オブジェクト変数、またはwithブロック変数が設定されていません。」というエラーが表示されてしまいます。 絶対パス指定だと、正常にオープンできますし、同じ相対パス指定で、ブックのコピー&ペーストもできています。 なぜなのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
カレントディレクトリが正しくないとか? CurDir関数?で確認してみてはいかがでしょうか。 最初に起動したときは開いたファイルのディレクトリがカレントになっていない気がします。 ChDirステートメントを使って変更するとうまくと思います。 (それだと絶対パス指定と同じになりますが。。。) 見当違いでしたらすみません。
その他の回答 (2)
- ARC
- ベストアンサー率46% (643/1383)
回答No.3
Workbooks("Book1.xls").Path で、開いてるワークブックのパスが取得できるので、 Workbooks.open Workbooks("Book1.xls").Path & "\Book2.xls" などとしてみてはいかがでしょうか。 親フォルダ上のファイルを開くなら、 Workbooks.open Workbooks("Book1.xls").Path & "\..\Book3.xls" でOKだと思います。
- koutaka
- ベストアンサー率47% (18/38)
回答No.1
>質問:相対パスでExcel Bookのオープン >相対パスでブックをオープンしようとすると、 >「オブジェクト変数、またはwithブロック変数が設定されていません。」 >というエラーが表示されてしまいます。 なにで、相対パスでExcel BookをOpen使用としているのですか? VBAそれとも・・・
お礼
ご回答ありがとうございます。 そのとおり、相対パスで開こうとすると、excel.exeが格納されているパスが デフォルトパスになっていた為、上記のエラーが出ていました。 そこで、デフォルトパスの指定を行ってから、相対パス指定でファイルのオープンをしてみたところ、上手くできました。 ありがとうございました。