• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA インデックスが有効範囲にありません)

エクセルVBAでのインデックスが有効範囲エラーの原因と解決方法

このQ&Aのポイント
  • エクセルVBA初心者が共有サーバー上のエクセルファイルを開く際に、インデックスが有効範囲にないエラーが発生します。このエラーの原因は、データ保存用エクセルファイルが見つからないか、開いた後に見つからなくなっていることです。
  • エラーが発生する箇所は、Windows("データ保存.xls").Activateです。この行でエラーが起こり、次の行のSheets("データ貼り付け").Selectでも同様のエラーが発生することがあります。
  • エラーの解決方法としては、以下の点に注意する必要があります。まず、共有サーバー上のファイルパスが正しいか確認しましょう。また、データ保存用エクセルファイルが開かれた状態であることを確認し、開いた後に見つからなくなっていないかも確認してください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Workbooks.Open Filename:= Thisworkbook.path & "\データ保存.xls" Sheets("データ貼り付け").Select でいいのでは。 データ保存.xlsを明示的に表現したいのであれば、 Sheets("データ貼り付け").Selectの前に Workbooks("データ保存.xls").Activate を追加

T-KW
質問者

お礼

回答ありがとうございます。 とりあえず解決しました! このコードは、ThisWorkbookモジュールの「Workbook_Open」に記述していたのですが、新たに標準モジュールに記述し、ThisWorkbookモジュールの「Workbook_Open」にはApplication.Runで標準モジュールを走らせるようにしたらうまくいきました。 ThisWorkbookモジュールで何故エラーになるのかは理解していませんが、とりあえずよかったです。もっと勉強します。 教えて頂いた方法も試してみます。 ありがとうございます。

その他の回答 (1)

  • ppyama
  • ベストアンサー率12% (48/399)
回答No.1

データ保存.xlsが開く前に次のコードが走っているとか ウエイトを入れてみては? Application.Wait Now() + TimeValue("00:00:05") ’5秒待つ

T-KW
質問者

お礼

回答ありがとうございます。 とりあえず解決しました! このコードは、ThisWorkbookモジュールの「Workbook_Open」に記述していたのですが、新たに標準モジュールに記述し、ThisWorkbookモジュールの「Workbook_Open」にはApplication.Runで標準モジュールを走らせるようにしたらうまくいきました。 ThisWorkbookモジュールで何故エラーになるのかは理解していませんが、とりあえずよかったです。もっと勉強します。 教えて頂いた方法も試してみます。 ありがとうございます。

関連するQ&A