- ベストアンサー
Excelエラー9インデックスが有効範囲にありません
- Excel_VBA_ver2000_エラー9_インデックスが有効範囲にありませんが出てしまいます。選択文書数を少なくするとエラーはでません。
- Excelエラー9が出る原因は、文書数が多い場合に発生することがあります。
- エラー9が出た場合、選択文書数を減らすことで解決する可能性があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Dim kk(1 To 8) As String X = .Range("F" & H.Range.Row).Value Holdir = "7.資料\" & kk(X) & "\" Xに、0または9以上の値が入っているためではないですか?
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
こんな長いコードを質問に書いて、読者回答者に読ませるなど、工夫が足りない。他人に頼りすぎ。 そもそもエラー原因の特定は、このコーナーの質問や回答には適さない。 実行したり、色々ながめたり、試行をやってみることも、現実データも使えないのだから。 自分でエラー原因を追究すること。 Googleででも「VBA エラー9 インデックスが有効範囲にありません」ででも照会すれば、文字通りだけのの原因解説は出る。 http://pasofaq.jp/office/excel/error9.htm シートの名前やINDEX番号を使っているコードの前にシート名やインデックス番号をMsgboxで表示し、エラーの出る直前で指定している、シート名やインデックス番号が怪しいとおもう。 モデル的とは 下記コード例の、配列の上限要素を超える要素を指定した場合」とかいったものだ こんなこともやって、エラー原因を抽象化し(この場合は類型といったものはなさそうだが)、質問ないしその他のケースでモデル的にやってみて、そのエラーが起こるか確認すると良い。 INDEXはオブジェクトのコレクションを特定するものだと思うので、シート以外のコレクション(例ブックに)もチェックを広げる必要もあるかも知れない。 ーー また Sub test01() x = Array("x", "y") MsgBox x(1) MsgBox x(2) '<--エラー個所 End Sub のような配列(的)なところでもこのエラーは出るようだ。 これを類型で言うと、 「配列の上限要素を超える要素を指定した場合」は質問と同じエラーになる(これが本質問の原因だと言ってないが)。
お礼
こんにちは。 ご回答有難うございました。 そうですよね。こんなに長いコードを記載するのは,×ですよね。 全体像をご理解いただきたくて記載してしまいました。気をつけます。 >Googleででも「VBA エラー9 インデックスが有効範囲にありません」ででも照会すれば、文字通りだけのの原因解説は出る。 >http://pasofaq.jp/office/excel/error9.htm Google検索して上記urlの内容も読みました。その他も色々。ヘルプも読み,UBound,LBound関数についての例も見て見ましたが,初心者のため?だったのです。配列は難しいです。 記載コードで選択文書数を少なくするとエラーがでないのに,殆ど全文書の選択をする(192?)とエラーがでるのがわからないことでした。 シートもTESTのみしか使用してないので。 >「配列の上限要素を超える要素を指定した場合」は質問と同じエラーになる(これが本質問の原因だと言ってないが)。 この辺りのところが関係しているのでょうか?配列の上限について調べてみます。 有難うございました。
お礼
こんにちは。 ご回答を有難うございました。 Xに格納されるF列の数字をチェックしましたが, 0または9以上の値はありませんでした。 ただ,指定しているF列ですが,空白セルはあります。 関係あるのでしょうか? どうぞ宜しくお願いします。
補足
選択した行の参照先が空白なことが原因でした。 ご回答がヒントになり解決しました。 有難うございました。