Word MVPの新田さんが書かれた以下の記事を見て思いついたマクロです。
・ユーザー登録をしたキーボードのショートカットを書き出すマクロ
・ユーザー登録をしたキーボードのショートカットを書き出すマクロ(その2)
・ユーザー登録をしたキーボードのショートカットを印刷する方法
下記「OutPutKeyBindings」を実行すると、標準テンプレート含めたテンプレートファイル(有効になっているもののみ)に登録されているキー定義一覧をCSVファイルとしてデスクトップに出力します。
Option Explicit
Public Sub OutPutKeyBindings()
'キー定義出力
Dim OutputFilePath As String
Dim tp As Word.Template
Dim tmp As Word.Template
Dim kb As Word.KeyBinding
Dim ff As Integer
'出力先ファイル準備(デスクトップにCSVファイルとして出力)
OutputFilePath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & _
Application.PathSeparator & "WordKeyBindings.csv"
ff = FreeFile
Open OutputFilePath For Output As #ff
Print #ff, "テンプレート名,テンプレートのパス,コマンド,キーコード,キーの組み合わせ"
Set tmp = Application.CustomizationContext '現在の保存先テンプレート取得
'標準テンプレート
Application.CustomizationContext = NormalTemplate
For Each kb In Application.KeyBindings
Print #ff, "標準テンプレート(" & NormalTemplate.Name & ")," & _
NormalTemplate.FullName & "," & _
kb.Command & "," & _
kb.KeyCode & "," & _
kb.KeyString
Next
'標準テンプレート以外
For Each tp In Application.Templates
If tp.FullName <> NormalTemplate.FullName Then
If IsInstalledTemplate(tp) = True Then
Application.CustomizationContext = tp
For Each kb In Application.KeyBindings
Print #ff, tp.Name & "," & _
tp.FullName & "," & _
kb.Command & "," & _
kb.KeyCode & "," & _
kb.KeyString
Next
End If
End If
Next
Application.CustomizationContext = tmp '保存先テンプレートを元に戻す
Set tmp = Nothing
Close #ff
MsgBox "処理が終了しました。" & vbCrLf & vbCrLf & _
"[" & OutputFilePath & "]" & vbCrLf & vbCrLf & _
"にキー定義一覧が出力されました。", vbInformation + vbSystemModal
End Sub
Private Function IsInstalledTemplate(ByVal tp As Word.Template) As Boolean
'テンプレートが有効になっているかどうかを判断
Dim ad As Word.AddIn
Dim ret As Boolean
ret = False '初期化
'標準テンプレートであればTrue
If tp.FullName = NormalTemplate.FullName Then
ret = True
Else
On Error Resume Next
Set ad = Application.AddIns(tp.FullName)
On Error GoTo 0
If Not ad Is Nothing Then
'Wordアドインライブラリ(WLL)ではない = テンプレートの場合のみ処理
If ad.Compiled = False Then
If ad.Installed = True Then
ret = True
End If
End If
Set ad = Nothing
End If
End If
IsInstalledTemplate = ret
End Function
CSVファイルとして出力しておけば、Excelやテキストエディタで自分の好きな形に加工することが容易にできます。




















この記事へのコメントはありません。