こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

投稿日時 - 2008-09-05 10:34:53

QNo.4305125

困ってます

質問者が選んだベストアンサー

Set ns = Worksheets.Add
でアクティブシートが変わってしまいますが、
obj_n = obj.Name
はあくまでオブジェクト名のみしか与えません。
従ってワークシート(ns)にオブジェクト(ラベル)がないのでエラーになるのでしょう。

Set ws = ActiveSheet
Set ns = Worksheets.Add
ws.Activate '←追加
もう一度wsをアクティブししてあげたら出来ましたよ。

他に方法があるかも知れませんが、ご参考になれば。

投稿日時 - 2008-09-05 11:01:45

お礼

ExecuteExcel4Macro("GET.OBJECT(48,""" & obj_n & """)") の部分にどうやってシート名をもたせるか悩んでおりました。
ws.Labels(obj_n) とやってもエラーになるし・・・・。

でもws.Activateでとりあえずは解決です。ありがとうございました。
ただ、Activateしないでやる方法はないのでしょうか?

投稿日時 - 2008-09-05 11:35:33

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

ANo.1です。

>ただ、Activateしないでやる方法はないのでしょうか?
試してみたのですが元々【ExecuteExcel4Macro】をよく理解していないので、
どのようにシート名を当てるのかがわかりませんでした。

ExecuteExcel4Macro
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2005-51,GGLG:ja&q=ExecuteExcel4Macro

投稿日時 - 2008-09-05 12:15:44

お礼

ありがとうございました。

投稿日時 - 2008-09-18 10:10:54

あなたにオススメの質問