• 締切済み

excelで新規作成を選択すると、インデックスが有効範囲にありません、と表示されます

excelにvbaを埋め込んだものを作成中ですが、 そのファイルを開いた状態で、新しいexcelファイルを開くと、 「インデックスが有効範囲にありません」というエラーが発生します。 With Sheets("区分") i = 2 'セル指定用 j = 0 'リスト指定用 Do Until .Cells(i, 1) = "" 区分.AddItem .Cells(i, 区分コード_col).Value 区分.List(j, 1) = .Cells(i, 区分_col).Value i = i + 1 j = j + 1 Loop End With 発生場所は、上記のWith Sheets("区分")の箇所です。 おそらく、上記のシート指定に、 さらにbookを指定すれば解決するような気もしているのですが、 かなり、作りこんでしまっているので、 今から、すべての該当箇所に追加するのは、難しい状況です。 私の考えている解決策が正しいのかも含めて、 この問題について、お分かりになる方がみえましたら、 ぜひともご教授いただきたいです。 解決の糸口も良くわからないので、 情報不足かとは思われますが、お分かりになる方がみえましたら、 ぜひともご教授いただきたいです。 よろしくお願いします。

みんなの回答

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.1

>さらにbookを指定すれば解決するような気もしているのですが そうするか、元のブックをアクティブにしてもいいわけですが、 他の部分にどんなコードを書いているか分からないので、 Bookオブジェクトの付加がベターでしょう。 VBEのメニューから置換をすれば簡単にできます。 「編集」メニュー > 「置換」 で置換ダイアログ表示 検索する文字列: Sheets("区分")  置換する文字列: ThisWorkbook.Sheets("区分") 対_____象: カレントプロジェクト ●最重要● 以上を設定した後、「次を検索」ボタン > 「置換」ボタン を繰り返す。 「全て置換」ボタンで一発で全部の置換ができるが、危ないので確認しながらの方がいいでしょう。 ●「対象」は今回は必ず「カレントプロジェクト」を選択すること。 ●置換する文字列: ThisWorkbook.Sheets("区分") の ThisWworkbookは、WorkBooks("該当ブック名") でもOK。 それから、一言。 >かなり、作りこんでしまっているので、 今から、すべての該当箇所に追加するのは、難しい状況です 当方なら、先ず、全てのコードみていき手動で修正した後、確認のために置換、検索を使います。 なぜなら、そうすることで改めてコードのチェックが出来るからです。 よりよいコードを書くためには面倒がってはいけません。(^^;;;; 以上。

ferc
質問者

お礼

返信遅くなりました。申し訳ありません。 ご回答ありがとうございます。 対応方法も詳しく教えていただき、ありがとうございます。

関連するQ&A

専門家に質問してみよう