お世話になります。
以下の問題の探し方を教えてください。
自分で作成したものでない(作成者は社内にいない)
30前後のシートが入っているエクセルファイルがあります。
そういうファイル(群)を解析しています。
あるマクロのメソッド「商品検索」というものが書かれているとします。
ぱっと見では使われていないような感じもします。
しかし厳密にしたいので、そのメソッドがどこで(どのシート、どのボタン等)呼ばれているか、
を調べたいのですが、うまい方法はありませんでしょうか。
このエクセルファイル群は、初めに使えそうなエクセルファイルから
始まり、様々な方がその基本となったエクセルを元にして、
いろいろ修正、追加、削除しながら分派、育っていったファイルらしく、
数年の経てそれぞれ目的が違うファイルに仕上がってます。
その数が数だけにモジュールの中にあるメソッドが「使われているか」を手早く知りたいのです。
ですので、一つ一つ右クリックで調べる以外の方法を探しています。
手段でもツールの使用でもかまいません。
どなたか教えていただけませんでしょうか。
No.1ベストアンサー
- 回答日時:
こういうのはどうでしょうか?
各シートに配置されたボタン等のオブジェクトを検索し、それにマクロが登録されていればシート名、オブジェクト名およびマクロ名を新しいワークシート(一番右端に生成します)にリストアップするマクロです。(マクロが登録されていないオブジェクトはリストに入れません。)
Sub test01()
Set ns = Sheets.Add(After:=Sheets(Sheets.Count))
For Each st In Worksheets
st.Activate
For Each obj In ActiveSheet.DrawingObjects
If obj.OnAction <> "" Then
i = i + 1
With ns
.Cells(i, "A") = ActiveSheet.Name
.Cells(i, "B") = obj.Name
.Cells(i, "C") = obj.OnAction
End With
End If
Next
Next
Set ns = Nothing
End Sub
merlionXXさんありがとうございます。
早速試してみました。
すばらしいです。
私がほしい情報そのものです。
ありがとうございました。
使わせていただきます。
No.3
- 回答日時:
うっはNo1さんともろかぶりな内容。
しかもコード短くて結果も集計しやすいかも。
No1さんのを使ってやってください。
kenpon24さん、ありがとうございます。
merlionXXさんもですが、なるほどそうですね、というもので
わかりやすくて、これを参考・基本にして他もできそうです。
全シート、全セルでオブジェクトを引っ掛けて中身を取るんですね。
本当に「なるほど・・・」という気持ちでいっぱいです。
ありがとうございました。
No.2
- 回答日時:
シート内のオブジェクトから呼び出しているものを知りたいという前提で書きます。
全シートのオブジェクトに登録されているマクロを集計シートに書き出すマクロを書いてみました。
集計するにはあまりよくない書き出し方かも。
Sub 全シートのマクロ書き出し()
Dim shape As Object
Dim ws As Worksheet
Dim i As Long
Const temp As String = "呼び出し元集計"
i = 1
On Error GoTo SheetNothing
with Worksheets(temp)
.Activate
.Cells.ClearContents '初期化。もしtempと同じ名前のシートがある場合は注意
end with
'全シート調査
For Each ws In ActiveWorkbook.Worksheets
Worksheets(temp).Cells(i, 1) = ws.Name 'シート名書き出し
i = i + 1
'全図形調査
For Each shape In ws.Shapes
'マクロが登録されているとき
If shape.OnAction <> "" Then
'マクロ名を書き出す
Worksheets(temp).Cells(i, 1) = shape.OnAction
i = i + 1
End If
Next
i = i + 1
Next
Worksheets(temp).Activate
Set shape = Nothing
Set ws = Nothing
Exit Sub
SheetNothing:
'シートがないときは作成する
Worksheets.Add
Worksheets(Worksheets.Count).Name = temp
Resume
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
或るプロシージャの呼び出し元判定
その他(Microsoft Office)
-
Excel VBA でFunctionプロシジャがどのセルから呼び出されたか知る方法
Visual Basic(VBA)
-
VB6で呼び出し元の情報を取得する方法について
Visual Basic(VBA)
-
-
4
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
5
プロシージャを呼び出したプロシージャ名を知る方法は?
Visual Basic(VBA)
-
6
excelファイルに使われているVBAやマクロを調べるには
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
9
EXCEL VBAでテキストファイルの特定の場所にデータを書き込む方法
Visual Basic(VBA)
-
10
エクセルのマクロボタンが編集できません
Excel(エクセル)
-
11
Excel VBAからAccessマクロを実行したい
Visual Basic(VBA)
-
12
Excelのシート上のShapeにイベントは設定できる?
Excel(エクセル)
-
13
エクセル・VBA CheckBoxのオブジェクト名に変数を使うことは可能でしょうか?
Excel(エクセル)
-
14
プロシージャ名の取得
Visual Basic(VBA)
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
マクロでバーコードのリンクセルを指定したい
Excel(エクセル)
-
17
VBA プロシージャの名前の取得
その他(Microsoft Office)
-
18
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
19
VBA 1次元配列を2次元に追加する
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
EXCELの起動時に常に同じ...
-
エクセルでシートの並び替えで...
-
エクセル・複数のシートを一度...
-
エクセルのチェックボックス
-
エクセルVBAでcmbBoxのプロパテ...
-
マクロで複数シートに条件付き...
-
マクロを複数シートに実行する...
-
エクセル2013でマクロのボタン...
-
VBAで条件によってシート見出し...
-
エクセルを開いたとき常に同じ...
-
VBA シート名を先月の名前に...
-
Excelのマクロの呼び出し元を知...
-
EXCELでワークシートを開いたら...
-
VBAでユーザーに別ファイルのシ...
-
マクロでの全シート内検索
-
エクセルのマクロを使った出席...
-
シートを保護した時でも並べ替...
-
Excel:複数シートから条件に合...
-
マクロを特定の複数シートで実...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
マクロを複数シートに実行する...
-
【 Excel】シートの見出しに自...
-
エクセルを開いたとき常に同じ...
-
エクセルでシートの並び替えで...
-
EXCELでマクロを使わずに図形の...
-
EXCELでワークシートを開いたら...
-
マクロを特定の複数シートで実...
-
EXCELの起動時に常に同じ...
-
VBA シート名を先月の名前に...
-
マクロ 各シートの決められた位...
-
EXCELのエラー
-
VBAで条件によってシート見出し...
-
エクセル・複数のシートを一度...
-
Excelのマクロの呼び出し元を知...
-
エクセルで回数をカウントする...
-
エクセルで複数のSheetを一括フ...
-
シートを保護した時でも並べ替...
-
メッセージボックスでシート名...
-
エクセルで、マクロボタンの表...
おすすめ情報