Wordをアウトライナーとして使うことを想定しています。(参考記事:Wordをアウトライナーとして使う!)
アウトライナーでアイディア出しをしたり文章を作成したりする場合、現在の項目の下位概念を挿入したくなることがあります。
「野菜」という項目の場合、具体的な野菜の品目である「レタス」や「トマト」を書き出すということです。
このときに、1段階下位のアウトラインレベルに設定して項目を挿入します。以下のように階層構造ができて整理しやすくなります。
そんなわけで、カーソル位置の段落の下にアウトラインレベルが1段階下位の段落を挿入するマクロを作ってみました。
アウトラインレベルの設定について
カーソル位置の段落のアウトラインレベルの1段階ずつの増減は、以下の部分で設定できます。
ショートカットキーでも設定できます。
レベルを下げる [Tab] レベルを上げる [Tab]+[Shift]
アウトライン表示の場合、[Tab]キーの役割が変わります。通常のように編集記号のタブを挿入する場合には、[Ctrl]+[Tab]を使います。
なお、以下の記事でも紹介されているように、レベルの増減は他のショートカットキー([Alt]+[Shift]+[→]など)もあります。
しかし、私はこのショートカットキーをカーソル移動に割り当てているので使っていません。
また[Tab]キーもつい押し間違えてしまうので、アウトラインレベルの増減のコマンドを別のショートカットキーに設定して実行しています。
(参考)
アウトラインモードでレベルを変更するショートカットキー(インストラクターのネタ帳)
このマクロでできること
カーソルが置かれている段落の下にアウトラインレベルが1段階下位の段落を挿入します。
カーソルが段落の途中にあっても、実行できます。
(実行前)
(実行後)
マクロの解説
前回の記事「【コード】段落の後に同じアウトラインレベルの段落を挿入するWordマクロ」では、カーソル位置と同じ段落スタイルを、挿入した段落に設定しました。
今回の記事では、カーソル位置の段落スタイルよりも下位の段落スタイルを、挿入した段落に設定します。
なので、考え方としては、前回のマクロにアウトラインレベルを1つ下げる処理を追加したものが今回のマクロです。32行目です。
マクロ
Sub 段落を挿入2() Dim myRange As Range Dim myStyle As Style '------------------------------------------- '選択範囲の最終段落をRangeオブジェクトで取得 '------------------------------------------- Set myRange = Selection.Paragraphs.Last.Range '------------------------------------------- '「段落スタイル」を取得 '------------------------------------------- Set myStyle = myRange.Style '------------------------------------------- '選択範囲の段落の後ろに段落を挿入 '------------------------------------------- With myRange .InsertParagraphAfter With .Paragraphs.Last.Range 'スタイルの設定 .Style = myStyle .Collapse wdCollapseStart .Select End With End With '------------------------------------------- '挿入した段落のアウトラインレベルを下げる '------------------------------------------- Selection.Paragraphs.OutlineDemote '------------------------------------------- 'オブジェクト変数の解放 '------------------------------------------- Set myRange = Nothing Set myStyle = Nothing End Sub