Excel VBA 実行時エラー '424' オブジェクトが必要です 質問する

Excel VBA 実行時エラー '424' オブジェクトが必要です 質問する

私は VBA とコーディング全般についてまったくの初心者ですが、同じワークブックのセルからデータを取得 (フレームワーク パスを取得...) し、アプリケーション (QTP) を起動してテストを実行しようとしています。

Excel セルに入力された値を取得しようとすると、次のエラーが発生します。

Run Time Error '424' object required

基本的なルールがいくつか抜けていると思いますが、ご協力いただければ幸いです。問題となっているコード部分を下記に示します。

Option Explicit

Private Sub RunTest_Click()

    Dim envFrmwrkPath As Range
    Dim ApplicationName As Range
    Dim TestIterationName As Range
    'Dim wb As Workbook
    'Dim Batch1 As Worksheets
    Dim objEnvVarXML, objfso, app As Object
    Dim i, Msgarea

    Set envFrmwrkPath = ActiveSheet.Range("D6").Value ' error displayed here
    Set ApplicationName = ActiveSheet.Range("D4").Value
    Set TestIterationName = ActiveSheet.Range("D8").Value

ベストアンサー1

最初のコード行は、Option Explicit(簡単に言えば)すべての変数が明示的に宣言されたbyDimステートメント。オブジェクト、整数、文字列、バリアントなど、任意の型にすることができます。

この行: は、型のDim envFrmwrkPath As Range変数を宣言しています。つまり、範囲にのみ設定できます。envFrmwrkPathRange

この行: は、セル内の特定の値に型変数Set envFrmwrkPath = ActiveSheet.Range("D6").Valueを設定しようとしています。これは、たとえば整数または文字列 (そのセルに何があるかによって異なります) である可能性がありますが、範囲ではありません。RangeD6

値を変数に格納したいと仮定します。次のように試してください。

Dim MyVariableName As Integer
MyVariableName = ActiveSheet.Range("D6").Value

これは、セル D6 に数字 (5 など) があることを前提としています。これで、変数に値が設定されます。

学習を簡単にするために、このOption Explicit行を削除するかコメントアウトすると、VBA は実行時に変数の型を判別しようとします。


コードのこの部分を理解するにはこれを試してください

Dim envFrmwrkPath As String
Dim ApplicationName As String
Dim TestIterationName As String

おすすめ記事