Word(ワード)で縦書き文章の数字を一気に縦中横文字に変換するマクロ(VBA) | 滋賀県大津市の小さなパソコン教室「ぱそこんる~む123」

滋賀県大津市の小さなパソコン教室「ぱそこんる~む123」

滋賀県大津市にある小さなパソコン教室「ぱそこんる~む123」を主宰する竹内よしひろが教室のこと、エクセル、ワード、の技、日常を語ります。

こんにちは、滋賀県大津市のちいさなパソコン教室「ぱそこんる~む123」の竹内よしひろです。

3連休です。

午前中は、自治会の役員の方と明日の敬老会の準備をしました。

昨年の敬老会は開催こ出来ましたが、台風18号の襲来で近隣地域でも被害があり大変な日となりましたが、今年は天候には恵まれそうです。


昼からは、娘と本屋さんに行き、戻ると夕方で、2人ともたくさんの本を買ってしまいました。



最近、教室の方には何故か、ExcelのマクロVBAについての受講が立て続けにあります。


で、マクロVBAと言えばExcel(エクセル)が主流の様ですが、Word(ワード)の作業もマクロVBAで自動化すれば結構便利なことに気が付いて試しています。


Word(ワード)では書きの文章を作ることが多いですが、設定を変えれば縦書きにすることも出来ます。







しかし、半角英数字は縦方向にはならず横向きのままです。




これを、縦向きにするには次の方法で一文字ずつ設定する必要があり、数が多いと結構面倒です。


方法



 縦向きに設定する文字を選択します。







  「ホーム」タブをクリックします。



  「段落」グループの「拡張書式」をクリックします。



  「縦中横」をクリックします。




  「縦中横」のダイヤログボックが表示されます。


 「OK」ボタンをクリックします。




 文字が縦方向になります。




 これは一度に出来ないので、複数有る場合はこの操作を繰り替える必要があり結構面倒です。


そこで、マクロ(VBA)で一気に変換してみました。




数字を縦中横文字に変換するマクロ(VBA)




Sub 縦中横文字変換()
Dim moji As Range

'文章中の単語をすべてチェックする
For Each moji In ActiveDocument.Words
 
'半角数字なら
    If IsNumeric(moji) Then
   
'幅を行幅に合わせて縦中横文字に置換する
        moji.HorizontalInVertical = wdHorizontalInVerticalFitInLine
    End If
Next

End Sub



 実行すると変換出来ました。








解説

 For Each moji In ActiveDocument.Words

 DocumentオブジェクトのWordsプロパティで文章中の単語区切りですべて判断します。


 
If IsNumeric(moji) Then

 
半角数字を判断します。


 
moji.HorizontalInVertical = wdHorizontalInVerticalFitInLine


 
半角数字の場合は、「.HorizontalInVertical」で 縦中横文字に置換し、「wdHorizontalInVerticalFitInLine」で縦中横文字全体の幅を行幅に合わせます。

行幅に合わせたくない場合は、
「wdHorizontalInVerticalResizeLine」とします。




簡単なコードになっている分、この方法は全文をしらみつぶしに見ていますので、文章が長いと処理に時間がかかると思います。たぶん。