次の方法で共有


New キーワードの使い方が正しくありません

New キーワードは、作成可能のオブジェクト (クラスまたは Automation オブジェクトのインスタンス) にのみ適用できます。 このエラーの原因と解決策を次に示します。

  • 1 つのインスタンスしか持てないものを、インスタンス化しようとしました。 たとえば、次のようなステートメントで を指定Module1して、モジュールの新しいインスタンスを作成しようとしました。

      Dim MyMod As New Module1 
    

    モジュールは 1 つのインスタンスしか持てないことにより、新しいインスタンスは作成できません。

  • Automation オブジェクトをインスタンス化しようとしましたが、これは作成可能のオブジェクトではありません。 たとえば、次のようなステートメントで ListBox を指定して、リスト ボックスの新しいインスタンスを作成しようとしました。

        ' Valid syntax to create the variable. 
      Dim MyListBox As ListBox     
      Dim MyFormInst As Form 
      ' Invalid syntax to instantiate the object. 
      Set MyFormInst = New Form 
      Set MyListBox = New ListBox 
    

ListBoxForm はクラス名であり、特定のオブジェクト名ではありません。 これらを使用して、上記の有効な Dim ステートメントと同様に、変数が特定のオブジェクト型への参照であることを指定します。 しかし、これらを使用して、 Set ステートメントでオブジェクト自体をインスタンス化することはできません。 Set ステートメントでは、汎用のクラス名の代わりに、特定のオブジェクトを指定する必要があります。

    ' Valid syntax to create new instance of a form or list box. 
  Set MyFormInst = New Form1 
  Set MyListBox = New List1 

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

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

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