今手がけている翻訳の仕事で、表のセルの中にある英語フレーズの最初の1文字を大文字にする必要がありました。
この表は複数ありまして、その表にはたくさんのマス(セル)があります。数は数えていません。
ページ数はA4で100ページ以上で単語数は14000語程度なので、セルの数の多さはご理解いただけるかと思います。
当然、手作業でやっていたら、集中力が続かないし、時間はかかるし、目は疲れるし。
なにしろ、原稿がエクセルの仕事をワードでやっているので、こういう事態になっているのですが、ワードマクロを使って翻訳作業をする私は、このほうが断然速いのでこうやっています。
ちなみに、データの並び替えや抽出は、エクセルマクロが当然得意ですから、これらはエクセルで作りました。
さて、あいまいな前置きを失礼いたしました。
マクロを紹介します。
▼このマクロでできること
こんな感じの表があります(例として全く関係ない金融関連の英語を表示しました)
cash on hand |
current liabilities |
cash in bank - current account |
notes payable |
cash in bank - ordinary deposit |
accounts payable |
cash in bank - time deposit |
short-term loan payable |
notes receivable |
accounts payable - other |
account receivable |
accrued expenses |
short -term loans |
advance received |
prepaid expense |
suspense receipts |
この表中の英単語の最初の単語の1文字目を大文字にします。
Cash on hand |
Current liabilities |
Cash in bank - current account |
Notes payable |
Cash in bank - ordinary deposit |
Accounts payable |
Cash in bank - time deposit |
Short-term loan payable |
Notes receivable |
Accounts payable - other |
Account receivable |
Accrued expenses |
Short -term loans |
Advance received |
Prepaid expense |
Suspense receipts |
▼マクロの解説
最初は表のセルで指定しようかと思ったのですが、文章中の表は行と列の数がすべてばらばらです。
調べて操作するのが面倒だなと思っており、段落として区別するようにしてみました。
実は、セルの中の文字列を、段落で指定することができるのです。
というわけで、すべての段落について、段落の1文字目を大文字にするというマクロにしました。
14000語ほどある原稿に対して処理をしたところ、1分半ほどで処理が完了。
簡単なワードマクロでの効果を時間で伝えるのは難しいと思っていましたが、今回のマクロは時間の削減効果絶大です。
▼マクロ
Sub 段落の先頭文字だけ全て大文字()
Dim myPara As Paragraph
For Each myPara In ActiveDocument.Paragraphs
myPara.Range.Characters.First.Case = wdUpperCase
Next myPara
End Sub
▼応用技
このマクロは、段落の最初の1文字にたいして処理をしています。
最初の文字だけサイズを変えたり、色を変えたり、様々な処理ができますね。
▼関連記事
見出しマップの目次 (段落に対して処理をしているので、同じような構文がありますよ)