オブジェクトが必要です (エラー 424)

多くの場合、プロパティメソッドを参照するときは、明示的なオブジェクト修飾子が必要です。 このエラーの原因と解決策を次に示します。

  • オブジェクトのプロパティまたはメソッドを参照しましたが、有効なオブジェクト修飾子を指定していません。 オブジェクト修飾子を指定していない場合は、オブジェクト修飾子を指定します。 たとえば、フォーム自体のモジュール内からフォームのプロパティを参照する場合はオブジェクト修飾子を省略できますが、標準モジュールからフォームのプロパティを参照する場合は、修飾子を明示的に指定する必要があります。

  • オブジェクト修飾子が指定されていますが、オブジェクトとして認識されません。 オブジェクト修飾子のスペルを確認して、プログラムの参照元の部分からオブジェクトが参照可能であることを確認します。 Collection オブジェクトの場合は、Add メソッドを使用しているすべての個所で、すべての要素の構文とスペルが正しいことを確認します。

  • 有効なオブジェクト修飾子を指定しましたが、呼び出しの他の部分にエラーが含まれています。 ホスト アプリケーションFile Open コマンドの引数としてのパスが正しくないと、エラーが発生する可能性があります。 引数を確認してください。

  • オブジェクト参照の割り当てにおいて、Set ステートメントを使用していません。 CreateObject 呼び出しの戻り値を Variant 変数に割り当てる場合は、 Set ステートメントを省略しても必ずエラーが発生するわけではありません。 次のコード例では、Microsoft Excel の暗黙的なインスタンスが作成され、既定のプロパティ ("Microsoft Excel" という文字列) が返され、 バリアント型 (VariantRetVal) に割り当てられます。 その後、オブジェクト参照としてを使用 RetVal しようとすると、次のエラーが発生します。

      Dim RetVal ' Implicitly a Variant. 
      ' Default property is assigned to Type 8 Variant RetVal. 
      RetVal = CreateObject("Excel.Application") 
      RetVal.Visible = True ' Error occurs here. 
    

    オブジェクト参照を割り当てる場合は、Set ステートメントを使用します。

  • まれに、有効なオブジェクトを使用していても、そのオブジェクトに対して無効なアクションの実行を試みた場合にこのエラーが発生することがあります。 たとえば、読み取り専用プロパティに値を割り当てようとすると、このエラーが発生します。 オブジェクトのドキュメントを確認して、実行するアクションが有効であることを確認してください。

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

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

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