VBAの「メソッドまたはデータ メンバが見つかりません」の原因と対処法
目次
スポンサードリンク
Excel VBAでコードを書いていると「メソッドまたはデータ メンバが見つかりません」というエラーメッセージに遭遇することがあります。この記事では、このエラーの原因として考えられる内容と対処方法をいくつか紹介します。
エラーの意味
このエラーは、VBAが指定されたメソッド(処理)やプロパティ(データ)を認識できない場合に発生します。主にオブジェクトの指定ミスや参照設定の不足が原因で発生します。
たとえば次のようなケースです。
Sheets("Sheet1").Rnage("A1").Value = "テスト"
このコードでは、Range のスペルが誤って Rnage になっているため、VBAは「そんなメソッド(またはプロパティ)は知らない」と判断し、「メソッドまたはデータ メンバが見つかりません」というエラーを表示します。
主な原因と対処法
スペルミス(最も多い原因)
プロパティ名・メソッド名の綴りが1文字でも間違っていると、 VBAはその要素を認識できず、エラーになります。
悪い例:
TextBox1.Vaule = "OK"
正しい例:
TextBox1.Value = "OK"
オブジェクトの型が違う
例えば、以下の例では、wb は Worksheet 型として宣言されていますが、.Save メソッドは Workbook 型でないと使えません。
悪い例:
Dim wb As Worksheet
wb.Save
正しい例:
‘適切なオブジェクト型に変更するか、正しいプロパティ・メソッドを使う。
Dim wb As Workbook
Set wb = ThisWorkbook
wb.Save
フォームやコントロールの参照が間違っている
以下例では、TextBox の Caption プロパティを参照していますが、そもそもテキストボックスにCaptionプロパティは存在しません。(ラベルなどにはありますが、テキストボックスにはありません)コントロールごとに使えるプロパティを確認しましょう。
悪い例:
UserForm1.TextBox1.Caption = "入力してください"
正しい例:
TextBox1.Value や TextBox1.Text のように正しいプロパティを指定。
参照設定(ライブラリ)の不足
外部オブジェクトを扱う場合、参照設定がないとエラーになります。以下の例では、Outlookライブラリが参照設定されていない場合にエラーが発生します。
悪い例:
Dim olApp As Outlook.Application
Set olApp = New Outlook.Application
対処法: 上記の場合は、VBAエディタを開き、メニューの [ツール] → [参照設定] を選択 「Microsoft Outlook xx.x Object Library」にチェックを入れます。同様に使用したいライブラリの参照設定が設定されていなければ対応が必要です。
まとめ
「メソッドまたはデータ メンバが見つかりません」というエラーはよく遭遇するエラーです。この記事で紹介した代表的なエラー原因や対象方法を参考に確認していけば、エラー解消できるはずです。
Excel VBAのテクニックを幅広く学べるおすすめ書籍
基本の定番ネタから応用的なテクニックまで、網羅的にテクニックを学べる書籍です。Microsoft365/Office2024対応。手元に置いておきたい一冊です。
中級者以上におすすめの書籍
VBAというプログラミング言語を本格的に学びたい人におすすめの書籍です。VBAの言語としての仕組みをしっかり理解したい人に。