pagetaka

写真、PC、ネット、岡山、旅の話題をお届けします

WordVBA:リスト段落を標準書式の段落に変更する(手がかり)

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を使おう、というのが今回の妄想です。なお、リストは「●」「・」などではなく、数字、アルファベット、カナなど順番が付定されているものを前提に考えました。

大まかには、リスト段落(リスト番号とリスト文字列)をコピーし、一段落上に「標準」書式の段落として書き出す、という作業です。
f:id:PageTAKA:20130808202543j:plain
↑作業前:最上行が、本来「見出し」なのですが、「リスト」として段落書式設定してある。カーソルを最上行に置いてVBAスタート
↓VBA動かしたあと:最上行に1段落追加され、リスト数字とリスト文字が合体され、「標準」書式で表示されている。
f:id:PageTAKA:20130808201953j:plain
ちなみに、このVBAは、目視で変換対象のリスト段落を選択(カーソルを置く)し、VBAを走らせる、ということで、連続して勝手に全部VBAがやってくれ、不要となったリスト段落を自動的に削除してくれる、などという「理想」には程遠い状態ですので悪しからず…すみませぬ。