実行時エラー 9 サブスクリプションが範囲外です: 修正方法
Microsoft Excel の Visual Basic の特定のシナリオで、エラー メッセージ「実行時エラー 9 」が表示されます。このエラーの主な理由はメインの基本コードの範囲の問題ですが、特定のシナリオではこのジレンマに直面する可能性があります。このガイドでは、このエラーが発生する可能性があるすべての解決策と、これをトラブルシューティングする方法について説明しました。
解決策 1 – コードに記載されている範囲を確認する
「実行時エラー 9」は、コード内でアサートされた範囲が正しく構成されていない場合に発生します。したがって、その場合は、コード内で言及されている変数の範囲を確認してください。
例–
Sub Newfunction()
バリアントとしての Dim Array()
配列(1) = “ゼロ”
エンドサブ
コードでわかるように、配列はバリアントとして宣言されていますが、適切な範囲はありません。そのため、このコードを VB エディターで実行すると、添字エラーが発生します。
コード内の範囲を変更するだけで、準備は完了です。
解決策 2 – ワークシートの名前を調整する
複数のワークシートを同時に操作している場合、コード内で指定されているワークシートの名前が間違っている可能性があります。
例–
Sub CommandButton1_Click()
Worksheets(“シート”).Range(“A1:D5”).Select
選択範囲.コピー
Worksheets(“Sheet1”).Activate
Worksheets(“Sheet1”).Range(“A1:D5”).Select
ActiveSheet.Paste
Application.CutCopyMode = False
エンドサブ
ご覧のとおり、上記の VBA コードを実行すると、Excel は範囲外のエラー コード 9 の下付き文字を表示します。この理由は、言及されているワークブックの範囲が Sheet であり、操作がSheet 2ではなく Sheet 1 に対して行われるためです。
さて、あなたはこれを行うことができます –
ステップ 1 –ワークシートを右クリックし、「名前の変更」をタップしてワークシートの名前を変更します。
ステップ 2 – ワークブックの名前を修正します。
または、
この方法でコードを再調整できます –
Sub CommandButton1_Click()
Worksheets(“シート”).Range(“A1:D5”).Select
選択範囲.コピー
ワークシート(“Sheet2”).Activate
Worksheets(“Sheet2”).Range(“A1:D5”).Select
ActiveSheet.Paste
Application.CutCopyMode = False
エンドサブ
このコードを実行すると、添字範囲の問題はもう発生しなくなります。
解決策 3 – マクロを有効にする
VBA スクリプトがマクロ モジュールを使用していて、それを有効にしていない場合は、マクロを有効にすることで問題を解決できるはずです。
ステップ 1 – Excelワークブックに移動し、「ファイル」メニューをクリックします。
ステップ 2 –今度は、左側のリボンから「オプション」メニューをクリックします。
ステップ 3 – 「セキュリティ センター」タブを見つけて開く必要があります。
ステップ 4 –右側のペインで、「セキュリティ センターの設定」オプションをクリックして開きます。
ステップ 5 –ここには多くのオプションがあります。 「マクロ」タブを選択して開きます。
ステップ 6 –ここで、コード内のマクロ設定に応じて、これらのオプションのいずれかをオンにします –
Disable all macros except digitally signed macros
すべてのマクロを有効にする (推奨されません: 潜在的に危険なコードが実行される可能性があります)
ステップ 7 –「OK」をタップして変更を Excel に保存します。
これらの変更を Excel に保存した後、VB コードをもう一度実行できます。
解決策 4 – コードを段階的にデバッグする
他の端末と同様に、Visual Basic モジュールにはデバッグ ツールがあります。これらを使用してコードのトラブルシューティングを行います。
ステップ 1 – MS Excelページを開いた後、「開発者」タブに移動します。
ステップ 2 –次に、最初のオプション「Visual Basic」をタップします。
ステップ 3 – Visual Basic コンソールを開いたら、疑わしい値を持つステップを選択します。
ステップ 4 –この後、「デバッグ」メニューを開き、そこにあるツールを使用して、この添字エラーの原因となっているバグを見つけます。
これで、コードを自分でテストできるようになりました。
解決策 5 – Excel ファイルを開いて修復する
スプレッドシート自体が破損している可能性があります。したがって、Excel ファイルを修復して開く必要があります。
ステップ 1 – MS Excel アプリに変更を保存します。
ステップ 2 – Microsoft Excelアプリケーションを個別に起動します。
ステップ 3 –今度は、最初のメニュー「ファイル」をタップします。
ステップ 4 –次はこちらへ –
Open > Browse
ステップ 5 –次のステップは、Excel ファイルの場所に手動で移動することです。
ステップ 6 –次に、そこにあるファイルを選択します。
ステップ 7 –最後に、リストの一番下のオプションを「開いて修復」に切り替えます。
Excel ファイルをロードした後、問題なく Visual Basic コードを実行できるようになります。
コメントを残す