以前から日付の変換用のマクロをいくつか紹介してきました。
今回は、セミナーの受講生の方(日英翻訳者)からの要望にお応えするマクロを紹介します。
和暦の表示で日が書かれていない場合があります。年と月だけを訳したいとのことでした。確かにそういうケースはありますね。
<目次>
このマクロでできること
(マクロの実行前)
(マクロの実行後)
日付が入っていない場合に限り書き換えます。
マクロの解説
おなじみのワイルドカードを使って和暦を検索します。以下の表記は日付を探すのに便利なのでぜひコピペで使ってみてください。
[明大昭平][治正和成][0-90-9元]{1,2}年[0-90-9]{1,2}月[0-90-9]{1,2}日
今回は、年と月だけの表記を探しますので、以下のようにします。赤文字の通り、月の直後に数字が書かれていない箇所を探します。
[明大昭平][治正和成][0-90-9元]{1,2}年[0-90-9]{1,2}月[!0-90-9]
これをワイルドカードの検索に使い、Do... Loopステートメント にて処理をします。
マクロ
Sub 和暦を西暦で英訳する() Dim myRange As Range Set myRange = ActiveDocument.Range(0, 0) With myRange.Find .Text = "[明大昭平][治正和成][0-90-9元]{1,2}年[0-90-9]{1,2}月[!0-90-9]" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchFuzzy = False .MatchWildcards = True Do While .Execute = True With myRange .End = .End - 1 .Text = Format(.Text, "mmmm, yyyy") .HighlightColorIndex = wdBrightGreen .Collapse wdCollapseEnd End With Loop End With Set myRange = Nothing End Sub