昨日の「アンドゥ(Undo)を記録するマクロ (Word 2010専用)
」では、コードの取得が難しくて失礼いたしました。
テンプレートにしてお渡ししないと実施が難しいと思っていましたが、通常通りにNormalテンプレートに保存しても実行が可能です。
Word2010でツールバーにボタンを作成する方法も記載されています。
▼マクロ
Private ur As Word.UndoRecord
Private Const CBAR_NAME As String = "アンドゥ・一気"
Sub AutoExec()
Dim myCbar As CommandBar
Dim myCbarCtl As CommandBarControl
If CInt(Application.Version) < 14 Then Exit Sub
On Error Resume Next
Application.CommandBars(CBAR_NAME).Delete
On Error GoTo 0
Set myCbar = CommandBars.Add(Name:=CBAR_NAME, Position:=msoBarLeft, MenuBar:=False, Temporary:=True)
myCbar.Visible = True
Set myCbarCtl = CommandBars(CBAR_NAME).Controls.Add(Type:=msoControlButton, Temporary:=True, Before:=1)
With myCbarCtl
.Caption = "[アンドゥ・一気]"
.TooltipText = "アンドゥを記録します。"
.OnAction = "MWM_Undo_Ikki"
.Style = 2
End With
Set myCbarCtl = Nothing
Set myCbar = Nothing
End Sub
Sub MWM_Undo_Ikki()
If Not ur Is Nothing Then
Call EndUR
Else
Call StartUR
End If
End Sub
Private Sub StartUR()
'アンドゥの記録開始
Application.CommandBars(CBAR_NAME).Controls("[アンドゥ・一気]").State = msoButtonDown
Set ur = Application.UndoRecord
If ur.IsRecordingCustomRecord = False Then
ur.StartCustomRecord "アンドゥ・一気"
End If
End Sub
Private Sub EndUR()
'アンドゥの記録終了
Application.CommandBars(CBAR_NAME).Controls("[アンドゥ・一気]").State = msoButtonUp
If ur.IsRecordingCustomRecord = True Then
ur.EndCustomRecord
Set ur = Nothing
End If
End Sub
▼解説
上記には4つのマクロが含まれています。
Sub マクロ名()
...
End Sub
や
Private Sub マクロ名()
...
End Sub
が1つのマクロの単位です。
上記では、他章記載が異なりますが、4つのくくりがあることがわかると思います。
一番上のSub AutoExec() で、ボタン作成をしています。
アドインタブに表示される[アンドゥ・一気]です。
マクロ名を AutoExec とすると、Word起動時に自動で実行されます。
なので、このマクロでは、上記のボタンをWord 起動時に毎回作成しているのです。
▼関連記事
「元に戻す(Undo)」の新機能 目次
アンドゥ(Undo)を記録するマクロ (Word 2010専用)
マクロコードの登録方法