【Word VBA】和暦を西暦に英訳するWordマクロ

以前から日付の変換用のマクロをいくつか紹介してきました。

今回は、セミナーの受講生の方(日英翻訳者)からの要望にお応えするマクロを紹介します。

和暦の表示で日が書かれていない場合があります。年と月だけを訳したいとのことでした。確かにそういうケースはありますね。

このマクロでできること

(マクロの実行前)

(マクロの実行後)

日付が入っていない場合に限り書き換えます。

マクロの解説

おなじみのワイルドカードを使って和暦を検索します。以下の表記は日付を探すのに便利なのでぜひコピペで使ってみてください。

[明大昭平][治正和成][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

関連記事

トップへ戻る