• ベストアンサー
  • 困ってます

Excel VBA でExecuteExcel4Macro("GET.OBJECT(48,

  • 質問No.4305125
  • 閲覧数1456
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 93% (1499/1605)

エクセル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

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 33% (959/2868)

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

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

他に方法があるかも知れませんが、ご参考になれば。
お礼コメント
merlionXX

お礼率 93% (1499/1605)

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

でもws.Activateでとりあえずは解決です。ありがとうございました。
ただ、Activateしないでやる方法はないのでしょうか?
投稿日時:2008/09/05 11:35

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 33% (959/2868)

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
お礼コメント
merlionXX

お礼率 93% (1499/1605)

ありがとうございました。
投稿日時:2008/09/18 10:10
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ