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









