Excel VBA でExecuteExcel4Macro("GET.OBJECT(48,
エクセル2000です。
以前、ワークシートに配置したフォームツールのラベルの参照元を取得するマクロをご教示いただき、以下のTest01は問題なく作動しています。
Sub test01()
Dim obj As Object
Dim i As Integer
Dim obj_n As String 'オブジェクトの名前
With ActiveSheet
For Each obj In .Labels
i = i + 1
.Cells(i, 2) = obj.Name: obj_n = obj.Name
.Cells(i, 3) = obj.TopLeftCell.Address
'GET.OBJECT で、リンクがないものを取ると、False になる
.Cells(i, 5) = ExecuteExcel4Macro("GET.OBJECT(48,""" & obj_n & """)")
.Cells(i, 6) = obj.OnAction
Next
End With
End Sub
今回、同一シートではなく別シートに表示させようと以下のTest02を書いたのですが、やってみると .Cells(i, 5) はすべて#VALUE!エラーになってしまいました。
ExecuteExcel4Macro("GET.OBJECT(48~がどのようなものかわからずやっているので応用がききません。(そもそも48って?)
どのようになおしたらよいのかご教示いただければ幸いです。
Sub test02()
Dim obj As Object
Dim i As Integer
Dim obj_n As String
Dim ws As Worksheet, ns As Worksheet
Set ws = ActiveSheet
Set ns = Worksheets.Add
With ns
For Each obj In ws.Labels
i = i + 1
.Cells(i, 2) = obj.Name: obj_n = obj.Name
.Cells(i, 3) = obj.TopLeftCell.Address
.Cells(i, 5) = ExecuteExcel4Macro("GET.OBJECT(48,""" & obj_n & """)")
.Cells(i, 6) = obj.OnAction
Next
End With
End Sub