
No.1ベストアンサー
- 回答日時:
こんばんは。
昔、作ったマクロで、古典的なコードです。現在は、あまり推奨されるようなコードの内容ではありませんが、良かったら試してみてください。
ツール-マクロ-セキュリティを
Visual Basic プロジェクトへのアクセスを信頼する
にチェックしていただいてから、以下のマクロを実行してください。
Debug.Print に出す場合は、該当部分のブロックを外してください。
今後、ショートカットを設ける場合は、Application.OnKey で設定して管理したほうが楽だと思います。
'-------------------------------------------
Sub GetShortCutKeys()
'現在の設定は、自ブックに限る
Dim DefPath As String
Dim FNo As Integer
Dim LineBuf As String
Dim i As Integer
Dim buf() As String
Dim bufName As String
Dim bufKeyName As String
Dim vbc As Object
Const AT1 As String = "Attribute "
Const AT2 As String = "VB_Invoke_Func ="
Const TMPF As String = "Temp1.bas"
DefPath = ThisWorkbook.Path & "\"
With ThisWorkbook.VBProject
For Each vbc In .VBComponents
.VBComponents(vbc.Name).Export Filename:=DefPath & TMPF
FNo = FreeFile()
Open DefPath & TMPF For Input As #FNo
While Not EOF(FNo)
Line Input #FNo, LineBuf
If InStr(1, LineBuf, "Sub", vbTextCompare) = 1 Then
bufName = Mid$(LineBuf, InStr(LineBuf, "Sub") + 4)
End If
If InStr(LineBuf, AT1) = 1 And InStr(LineBuf, AT2) > 0 Then
ReDim Preserve buf(i)
bufKeyName = " : Ctrl + " & Mid$(LineBuf, InStrRev(LineBuf, "=") + 3, 1)
buf(i) = bufName & bufKeyName '配列出力
'Debug.Printへ"
'Debug.Print bufName; bufKeyName
i = i + 1
bufName = ""
End If
LineBuf = ""
Wend
Close #FNo
Kill DefPath & TMPF
Next
End With
MsgBox Join(buf, vbCrLf)
End Sub
返信が遅くなってしまい、すみません。
教えていただいた方法で一覧を取得することができました。
作業時間の短縮になり、助かりました。
ちなみに、「Visual Basic プロジェクトへのアクセスを信頼する」へのチェックを行わずに、教えていただいたマクロを実行したところ、「プログラミングによるVisual Basic プロジェクトへのアクセスは信頼性に欠けます」とのメッセージが出ました。
Wendy02さんがおっしゃられたように、セキュリティ的に気をつける必要があるようです。
今後は、教えていただいたApplication.OnKeyというものを調べて使いたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
Office2021を別のPCにインスト...
-
大学のレポート A4で1枚レポー...
-
Office 2021 Professional Plus...
-
Microsoft365搭載Windows11PCへ...
-
エクセルで質問です。 ハイパー...
-
Microsoft365、ページ設定がで...
-
エクセルやパワポファイルの保...
-
【スプレドシート】IF関数の複...
-
エクセルマクロ(超初心者)
-
【Excel VBA】PDFを作成して,...
-
マクロ自動コピペ 貼り付ける場...
-
エクセル 関数の数値の入れ方を...
-
エクセル:一定間隔で平均値を...
-
エクセルにて横に月の行があり...
-
エクセル マクロVBAについて教...
-
ウィンドウィズ メモ帳で日付だ...
-
エクセルでXLOOKUP関数...
-
Microsoft Formsの「個人情報や...
-
エクセル、ワード、ネット検索...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(実行時エラー5852)Excelデータ...
-
Word文書に必須入力項目を設けたい
-
Access2010マクロ メッセージ...
-
Excelのシートを印刷不可(禁止...
-
Office2007 マクロの警告を表示...
-
Excelのマクロは管理者でないと...
-
Office2007のマクロ実行について
-
エクセルのマクロセキュリティ...
-
ワードを開くといつもセキュリ...
-
Access レポートプレビューのメ...
-
CtrlCができません。
-
ワード2003を使用。マクロ...
-
Excel2003 GET.CELL関数を使う...
-
VBA 自作のマクロの場合は...
-
VBAを禁止している会社って...
-
WORD2003 網掛け濃さの...
-
エクセルーマクロ削除後 メッ...
-
MS-Projectの使い方(マクロを...
-
WORDのマクロでNG文字がある場...
-
UWSCのマクロについて
おすすめ情報