Sub aリスト段落を標準書式に変換改修() ' '「リスト」段落が、本来は「見出し」段落となるのがふさわしい場合 '「標準」段落にした文字列をひとつ前に段落挿入する ' Const pStd As String = "標準" Const pSpc As String = " " Dim pTxt As String Selection.Paragraphs(1).range.Select If Selection.range.ListParagraphs.Count = 1 Then pTxt = Selection.range.ListFormat.ListString & pSpc & Selection.Text Selection.InsertBefore (vbCr) Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.Paragraphs(1).range.Select Selection.range.Text = pTxt Selection.range.ParagraphFormat.Style = pStd End If Selection.Collapse End Sub
Wordの段落書式に関係するVBA作成の途中経過です。
本来、見出しとなるべき文字列が、リストとして段落書式が設定されている場合があります。一見、項目番号が整序していて便利なのですが、PDF「しおり」作成に反映されない「リスト」であるため、二次利用に不便です。合わせて、Wordの目次作成機能でもデフォルト設定では「リスト」が反映されません。
この問題を解決するのにVBAを使おう、というのが今回の妄想です。なお、リストは「●」「・」などではなく、数字、アルファベット、カナなど順番が付定されているものを前提に考えました。
大まかには、リスト段落(リスト番号とリスト文字列)をコピーし、一段落上に「標準」書式の段落として書き出す、という作業です。
↑作業前:最上行が、本来「見出し」なのですが、「リスト」として段落書式設定してある。カーソルを最上行に置いてVBAスタート
↓VBA動かしたあと:最上行に1段落追加され、リスト数字とリスト文字が合体され、「標準」書式で表示されている。
ちなみに、このVBAは、目視で変換対象のリスト段落を選択(カーソルを置く)し、VBAを走らせる、ということで、連続して勝手に全部VBAがやってくれ、不要となったリスト段落を自動的に削除してくれる、などという「理想」には程遠い状態ですので悪しからず…すみませぬ。