私は理解できないものに取り組んできましたが、それはかなり簡単かもしれません。VBAはオブジェクト変数を使用してサブルーチンにword.tableを渡します
Sub GetWobjectAttributes(ByRef WObject As Object)
If TypeOf WObject Is Word.Table Then
'grab table attributes
ElseIf TypeOf WObject Is Word.Range Then
'grab range attributes
...
End If
End Sub
残念ながら、一般的なオブジェクト型を使用してオブジェクトを渡すと、渡されたの種類を変更するようだ:私は、などの範囲、表、テキストボックスなどのオブジェクトここでアイデアを行く典型的な単語の属性を収集するために、いくつかの汎用ルーチンを試してみてくださいオブジェクト。例えば、サブテストを実行する:
Sub test()
GetWobjectAttributes (ThisDocument.Tables(1))
'MsgBox (TypeName(ThisDocument.Range.Tables(1)))
End Sub
Public Sub GetWobjectAttributes(ByRef WObject As Variant)
MsgBox (TypeName(WObject))
End Sub
表示メッセージ:
範囲の代わりに "表"(ただし、実行メッセージボックス(型名(ThisDocument.Range.Tables(1)))を直接テストサブにおける(すべてのアイデアは、型変更せずにサブルーチンに未知の型のオブジェクトを渡す方法
表を
おかげで、今では明らかです。私はいくつかの脳が衰退していた:/ソリューションは完璧に動作します。 – jareckii