Wordの表中で、最初の文字を大文字にするマクロ | みんなのワードマクロ

みんなのワードマクロ

ワードマクロで、文書作成とオフィス事務を効率化!!

いきなり脈略もなくお役立ちマクロです。

今手がけている翻訳の仕事で、表のセルの中にある英語フレーズの最初の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文字にたいして処理をしています。
最初の文字だけサイズを変えたり、色を変えたり、様々な処理ができますね。


▼関連記事
見出しマップの目次  (段落に対して処理をしているので、同じような構文がありますよ)