Visual Basic for Applications(VBA)の添え字の範囲外エラーを修正



更新された4月2024:エラーメッセージの表示を停止し、最適化ツールを使用してシステムの速度を低下させます。 今すぐ入手 このリンク
  1. ダウンロードしてインストール こちらの修理ツール。
  2. コンピュータをスキャンしてみましょう。
  3. その後、ツールは あなたのコンピューターを修理する.

アクセスしたいオブジェクトが存在しないため、VBA添え字の範囲外エラーが発生します。 これは、VBAコーディングの一種のエラーであり、「ランタイムエラー9」です。 効果的なコードを作成するには、概念を理解することが重要です。また、コードを効果的にデバッグするには、VBAコードのエラーを理解することがさらに重要です。

あなたとあなたのコーディングエラーは、あなたが不在のときにこのエラーが何であるかを知らない場合。

医者は病気を知らずに患者に薬を与えることはできません。 医師と患者は病気(エラー)があることを知っていますが、病気(エラー)を投薬することで理解することが重要です。 エラーを完全に理解していれば、解決策を見つけるのははるかに簡単です。

もう1つの理由は、コンピューターに標準プリンターがないことです。 これを解決するいくつかの解決策があります ランタイムエラー9の問題、すべて正しい順序で試してください。

デフォルトのプリンターを追加する

  1. プリンターをコンピューターに接続し、電源コードを接続して電源を入れます。
  2. 「スタート」>「コントロールパネル」>「プリンタとファックス機」に移動します。
  3. 「プリンタの追加」をクリックし、画面の指示に従ってデフォルトのプリンタを追加します。

配列を確認する

配列要素に誤った値を設定した可能性があります。 したがって、配列要素に定義した値を再確認し、正しいことを確認することをお勧めします。 また、テーブル宣言を確認し、上限と下限を確認してください。 テーブルのサイズが変更されている場合は、LBoundおよびUBound関数を使用してアクセスを条件付けしてください。 インデックスが変数の場合、変数名のスペルを確認してください。

要素の数を定義する

場合によっては、エラーを引き起こすコード内の要素の数を定義していない場合があります。 DimまたはReDim関数を使用して、テーブル内の要素の数を指定することをお勧めします。

VBAの「範囲外エラー添え字」エラーを回避する方法

Excelに統合された関数ActiveWorkbook、ActiveSheet、およびSelectionの使用を避けます。戻り値を入力し、修飾された式を優先します。



2024 年 XNUMX 月の更新:

ファイルの損失やマルウェアからの保護など、このツールを使用してPCの問題を防ぐことができるようになりました。 さらに、最大のパフォーマンスを得るためにコンピューターを最適化するための優れた方法です。 このプログラムは、Windowsシステムで発生する可能性のある一般的なエラーを簡単に修正します。完璧なソリューションが手元にある場合は、何時間ものトラブルシューティングを行う必要はありません。

  • ステップ1: PC Repair&Optimizer Toolをダウンロード (Windows 10、8、7、XP、Vista - マイクロソフトゴールド認定)。
  • ステップ2:“スキャンの開始PCの問題の原因である可能性があるWindowsレジストリ問題を見つけるため。
  • ステップ3:“全て直すすべての問題を解決します。

ダウンロード



統合された1回だけを使用し、最も外部のマクロ(サブ)でのみ使用し、マクロの起動時にキャプチャします。たとえば、

set wkb = ActiveWorkbook
set wks = ActiveSheet
塩のセット=選択
マクロ中およびマクロでは、これらの統合された名前は信頼できませんが、戻り値は記録されます。例えば

戻り値を入力せずに、Workbooks.addの代わりにwkb = Workbooks.add 'を設定します。
Activeworkbook.Activateの代わりにwkb.Activate '
また、修飾された式を使用するようにしてください

Sheets( "Sheet3")。name = "foo"の代わりにwkb.Sheets( "Sheet3")。name = "foo" '。
or

newWks = wkb.Sheets.Addを設定します。
ActiveSheet.name =“ bar”の代わりにnewWks.name =“ bar” '。
修飾表現を使用します。例えば

`xyz.Select 'の代わりにnewWks.name =“ bar”'の後にSelection.name =“ bar”が続きます。
これらのメソッドは通常、よりよく機能し、混乱の少ない結果を生成し、リファクタリング(たとえば、メソッド内およびメソッド間でのコード行の移動)に対してより堅牢であり、Excelのすべてのバージョンでよりよく機能します。 たとえば、マクロの実行中に、Excelのあるバージョンから別のバージョンに選択が変更されます。

また、より修飾された式を使用しても、ほぼ同じ数の関数をアクティブにする必要がないことに気付くでしょう。 (これは、ユーザーにとって画面のフラッシュが少なくなることを意味する場合があります。)したがって、Windows(expression)行全体。 アクティブ化は、wkbに置き換えるのではなく、単に削除できます。 まったく有効にします。

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/subscript-out-of-range-error-9



専門家のヒント: この修復ツールはリポジトリをスキャンし、これらの方法のいずれも機能しなかった場合、破損したファイルまたは欠落しているファイルを置き換えます。 問題がシステムの破損に起因するほとんどの場合にうまく機能します。 このツールは、パフォーマンスを最大化するためにシステムも最適化します。 それはによってダウンロードすることができます ここをクリック