451:Property Letプロシージャが定義されておらず、Property Getプロシージャからオブジェクトが返されませんでした
CreateObject(“Scripting.Dictionary”)でDictionaryを実行するとエラーが発生する場合があります。
ユーザー定義型変数はDictionaryに格納不可のサンプルコード
下記コードを実行するとコンパイルエラーが発生します。
実行時エラー451:
Property Letプロシージャが定義されておらず、Property Getプロシージャからオブジェクトが返されませんでした
Public Sub sample() Dim dic As Object Set dic = CreateObject("Scripting.Dictionary") dic.Add "test", 1 Dim sKey As Variant '■実行時エラー451:Property Let プロシージャが定義されておらず、Property Get プロシージャからオブジェクトが返されませんでした。 sKey = dic.Keys(0) End Sub
Microsoft Scripting.Runtimeを事前に参照設定で回避可能です
'要事前設定 Microsoft Scripting Runtime Public Sub sample() Dim dic As Dictionary Set dic = New Dictionary dic.Add "test", 1 Debug.Print dic.Keys(0) End Sub
コメント