- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA インデックスが有効範囲にありません)
エクセルVBAでのインデックスが有効範囲エラーの原因と解決方法
このQ&Aのポイント
- エクセルVBA初心者が共有サーバー上のエクセルファイルを開く際に、インデックスが有効範囲にないエラーが発生します。このエラーの原因は、データ保存用エクセルファイルが見つからないか、開いた後に見つからなくなっていることです。
- エラーが発生する箇所は、Windows("データ保存.xls").Activateです。この行でエラーが起こり、次の行のSheets("データ貼り付け").Selectでも同様のエラーが発生することがあります。
- エラーの解決方法としては、以下の点に注意する必要があります。まず、共有サーバー上のファイルパスが正しいか確認しましょう。また、データ保存用エクセルファイルが開かれた状態であることを確認し、開いた後に見つからなくなっていないかも確認してください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Workbooks.Open Filename:= Thisworkbook.path & "\データ保存.xls" Sheets("データ貼り付け").Select でいいのでは。 データ保存.xlsを明示的に表現したいのであれば、 Sheets("データ貼り付け").Selectの前に Workbooks("データ保存.xls").Activate を追加
その他の回答 (1)
- ppyama
- ベストアンサー率12% (48/399)
回答No.1
データ保存.xlsが開く前に次のコードが走っているとか ウエイトを入れてみては? Application.Wait Now() + TimeValue("00:00:05") ’5秒待つ
質問者
お礼
回答ありがとうございます。 とりあえず解決しました! このコードは、ThisWorkbookモジュールの「Workbook_Open」に記述していたのですが、新たに標準モジュールに記述し、ThisWorkbookモジュールの「Workbook_Open」にはApplication.Runで標準モジュールを走らせるようにしたらうまくいきました。 ThisWorkbookモジュールで何故エラーになるのかは理解していませんが、とりあえずよかったです。もっと勉強します。 教えて頂いた方法も試してみます。 ありがとうございます。
お礼
回答ありがとうございます。 とりあえず解決しました! このコードは、ThisWorkbookモジュールの「Workbook_Open」に記述していたのですが、新たに標準モジュールに記述し、ThisWorkbookモジュールの「Workbook_Open」にはApplication.Runで標準モジュールを走らせるようにしたらうまくいきました。 ThisWorkbookモジュールで何故エラーになるのかは理解していませんが、とりあえずよかったです。もっと勉強します。 教えて頂いた方法も試してみます。 ありがとうございます。