エラー発生を考慮したプロパティの取得
Public Function GetPropertySafely(Target As Object, Properties As String, Optional ReturnValueOnError) On Error GoTo ERROR_LINE Dim Retval, Names, Name As String, TmpObj As Object, i As Long Set TmpObj = Target Names = Split(Properties, ".") For i = LBound(Names) To UBound(Names) - 1 Step 1 Name = Names(i) Set TmpObj = CallByName(TmpObj, Name, VbGet) Next Name = Names(UBound(Names)) Retval = CallByName(TmpObj, Name, VbGet) ERROR_LINE: If Err.Number <> 0 Then If IsMissing(ReturnValueOnError) Then Retval = "[ERR-" & Err.Number & "]" & Err.Description & "プロパティ: " & Name Else Retval = ReturnValueOnError End If End If GetPropertySafely = Retval End Function
0 件のコメント:
コメントを投稿