【Word VBA】段落先頭にチェックボックスを挿入するWordマクロ

2017年2月10日

みなさん、OneNoteを使っていますか?

いろいろなことに使っていますが、その中の1つに「チェックリスト」があります。

たとえば、会社の担当税理士へのデータ提出に必要なタスクを列挙したりしています。

他には、出張の持ち物リスト、アドイン公開時のチェックリスト、オンラインセミナーの手順などいろいろあります。

以下はオンラインセミナー開催のチェックリストです。セミナー当日の動作をリストにしています。

チェックリスト

上記の赤矢印で示したチェックボックス(ノート シール (タスク) )を作るときにショートカットキー(Ctrl + 1)を使います。

これがあまりにも便利で、ついついWordでもCtrl + 1 でチェックボックスを表示したくなってしまいました。

また、チェックボックスが表示されている場合には、Ctrl + 1でチェックボックスのオン・オフができます。

非常に便利です。

そこで、同じようなマクロを作ってみました。

もちろん、ショートカットキーのCtrl + 1に登録をして実行しています。

このマクロでできること

カーソルのある段落の先頭にチェックボックスを挿入します。

チェックボックスがある場合には、チェックボックスの状態をオンかオフに切り替えます。

(実行前)

チェックボックス

(実行1回目)

チェックボックス

(実行2回目)

チェックボックス

(実行3回目)

チェックボックス

マクロの解説

7行目で段落にコンテンツコントロールの有無を確認しています。

コンテンツコントロールある場合には、それがチェックボックスであればその値を変更します。(9行目)

コンテンツコントロールがない場合には、チェックボックスを挿入します。(13行目)

マクロ


Sub チェックボックスを挿入する()

 Dim myRange As Range

 Set myRange = Selection.Paragraphs.First.Range

 With myRange
  If .ContentControls.Count > 0 Then
   If .ContentControls(1).Type = wdContentControlCheckBox Then
    .ContentControls(1).Checked = Not .ContentControls(1).Checked
   End If
  Else
   .Collapse wdCollapseStart
   .ContentControls.Add (wdContentControlCheckBox)
  End If
 End With
 
End Sub

 

-コード
-, ,