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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) excelのマクロ実行でブロックされます。 2 2022/06/08 09:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(実行時エラー5852)Excelデータ...
-
Access2010マクロ メッセージ...
-
Wordのマクロを有効にする方法
-
Excelのシートを印刷不可(禁止...
-
Excelのマクロは管理者でないと...
-
Word文書に必須入力項目を設けたい
-
Excelのマクロのショートカット...
-
今まで実行できていたマクロが...
-
いつもお世話になります。 Web...
-
EXCEL マクロで「標準モジュー...
-
Word 2007 マクロ
-
Word2000で原稿用紙を使いたい...
-
ワードを開くたびに「このプロ...
-
WORDのマクロでNG文字がある場...
-
CtrlCができません。
-
マクロのアイコンを消したい
-
ワードを立ち上げると画面が小...
-
ロータス1,2,3がエクセルに駆逐...
-
Windows10で小規模LANの構築は...
-
wordの差し込み印刷で困ってい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(実行時エラー5852)Excelデータ...
-
Access2010マクロ メッセージ...
-
Word文書に必須入力項目を設けたい
-
Excelのマクロは管理者でないと...
-
Excelのシートを印刷不可(禁止...
-
VBAを禁止している会社って...
-
Excelのマクロのショートカット...
-
画像判定の出来るマクロツール
-
Wordのマクロを有効にする方法
-
フリーソフト(電子印鑑)をイ...
-
今まで実行できていたマクロが...
-
エクセルのVBAで自動的にVBE画...
-
ThisWorkbook Moduleとは??
-
Excel2003 GET.CELL関数を使う...
-
KingsoftのOffice2013でExcelの...
-
EXCELのマクロを有効にする
-
WORDのマクロでNG文字がある場...
-
texの数式番号の形式の変更の仕...
-
マクロのアイコンを消したい
-
MS-Projectの使い方(マクロを...
おすすめ情報