下付き文字が有効範囲にありません (エラー 9)

配列の要素およびコレクションのメンバーは、定義されている範囲内でのみアクセスできます。 このエラーの原因と解決策は次のとおりです。

  • 存在しない配列の要素を参照しました。 添字が使用可能な添字の範囲外であるか、またはこの時点でアプリケーション内で配列に次元が割り当てられていません。 配列の宣言で、配列の上限と下限を確認します。 次元が変更された配列を使用する場合は、UBound 関数および LBound 関数を使用して、配列へのアクセスを調整します。 インデックスが 変数として指定されている場合は、変数名のスペルを確認します。

  • 配列を宣言しましたが、要素数を指定していません。 たとえば、次のコードではこのエラーが発生します。

      Dim MyArray() As Integer 
      MyArray(8) = 234 ' Causes Error 9. 
    

    Visual Basic では、配列の範囲が指定されていない場合に、0 ~ 10 のように暗黙的に次元が設定されることはありません。 代わりに、Dim または ReDim を使用して、配列の要素数を明示的に指定する必要があります。

  • 存在しないコレクション番号を参照しました。 インデックス要素を指定する代わりに、For Each...Next 構造を使用します。

  • 間違った要素を暗黙的に指定する、下付き文字の省略形を使用しました。 たとえば、コレクションで ! 演算子を使用した場合、! は暗黙的にキーを指定します。 たとえば、 object!keyname. value は object. item (keyname) 値と同じです。 この場合、keyname がコレクション内の無効なキーを表していると、エラーが発生します。 このエラーを修正するには、コレクションの有効なキー名またはインデックスを使用します。

詳細については、該当する項目を選択し、F1 キー (Windows の場合) または HELP (Macintosh の場合) を押してください。

注:

複数のプラットフォーム間で Office エクスペリエンスを拡張するソリューションを開発することに関心がありますか? 新しい Office アドイン モデルを参照してください。 Office アドインは、VSTO アドインやソリューションに比べてフットプリントが小さく、HTML5、JavaScript、CSS3、XML などのほぼすべてのWeb プログラミング テクノロジーを使用して構築できます。

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。