【Wordマクロ】選択範囲のスタイルを変更する

これまで、単調なテキストを扱うようなタスクをしたことが殆どなかったので、Wordマクロの必要性を感じることはなかったのですが、最近、取り組んでいる作業で、「ここもう少し簡単になったら楽なのに」と思うことがあったので、重い腰を上げて、マクロを組むことにしました。

業務の背景と概要

新しい会社でも海外拠点の取りまとめサポートをしています。国内の新型コロナ動向の確認に加え、拠点のある国々の動向にもアンテナを張っておく必要があります。

会社でニュースサイトの契約をしているので、部内のメンバーはいつでもニュースにアクセスできます。普段ならば、ご自分でどーぞー、というスタンスですが、状況が状況ということもあり、読む読まないは別として、対象国の新型コロナ関連ニュースをピックアップして、見出しと最初の段落をまとめ、同じ部署のメンバーにメール配信することにしました。

作業手順

ニュースのピックアップ作業自体は、シンプルです。

  1. 契約しているサイトにログイン。
  2. ドロップダウンリストから対象国を選択。
  3. 表示されたニュースの中から、新型コロナ関連の重要なものを2つピックアップ。
  4. 記事のタイトル、1段落目、ページアドレスをコピー。
  5. Wordに4.でコピーした情報3つを貼り付ける。
  6. 2.に戻り、対象国すべてにたいして5.までのステップを繰り返す。
  7. Wordのスタイルを整える。
  8. PDFに変換。
  9. メールに添付して送信。

シンプルですが、面倒くさい感じがしますね。

ペーストのショートカットは【Windows + V】で

ちなみに、ステップ4.と5.ですが、Windowsキーを使うとラクです。ステップ4.では、通常どおり、【Ctrl + C】のキーボードショートカットを使い、一つずつコピーしていきます。その後、Wordに貼り付ける際には、【Ctrl + V】は使いません。【Windows + V】でコピー履歴を貼り付けていくのです。

選択した範囲のスタイルを整えるマクロだけでも十分時短

普通にコピペすると、ウェブ上のスタイルがWordに適用されて、驚くほど汚い文書が出来上がります。(ニュースはYahoo!ニュースから)

2020-05-05 22.17.29

そこで、Wordの標準機能であるスタイルを使って整形していきます。私が作ったルールは以下のとおり。

  • 最初に対象国名。(見出し1のスタイルを適用)
  • 記事タイトル。(見出し2のスタイルを適用+最初に「●」を追加)
  • 記事の1段落目。(行間詰め+インデント)
  • 記事のアドレス。(行間詰め+インデント、「<>」で囲む)

それほど多くはないものの、同じことを繰り返すのは面倒くさいです。そこで、作ったのが以下のマクロ。一番初めの対象国の部分は、毎回は必要ないのですが、とりあえず入れておきました。

Sub newsFormat()
With Selection
.Paragraphs(1).Style = "見出し 1"
.Sentences(1).Bold = True
.Paragraphs(2).Range.InsertBefore Text:="●"
.Paragraphs(2).Style = "見出し 2"
.Sentences(2).Bold = True
.Paragraphs(3).Style = "行間詰め"
.Paragraphs(3).LeftIndent = MillimetersToPoints(millimeters:=5)
.Paragraphs(4).Style = "行間詰め"
.Paragraphs(4).LeftIndent = MillimetersToPoints(millimeters:=5)
.Paragraphs(4).Range.InsertBefore Text:="<"
ActiveDocument.Range(Start:=.Paragraphs(4).Range.End - 1).InsertBefore Text:=">"
End With
End Sub

国によっては毎日ニュースがあるわけでもなく、本数もまばらなので、文書全体を一気に整形するマクロが上手く作れませんでした。それでも、これだけやってくれるだけでラクチンです。(長く使うマクロでもないですしね。)

2020-05-05 22.35.33

 

PDF化のマクロも

PDF化の部分については、以下のページを参考にすれば完成します。 https://www.wordvbalab.com/code/3838/

私の場合、対象国名などを予め入力したテンプレートを作成し、マクロを登録しました(.dotm)。そのため、PDF化の前に、Wordファイル(.docx)の保存するコードを追加しています。ここでの注意点は、テンプレートになっているため、ファイルパスがいつものようには動いてくれないことです。今回、業務用では、パスをベタ打ちして対応しています。

この2つのマクロを「クイックアクセスツールバー」に登録するわけですが、設定の際には、適用範囲をすべての文書にせず、当該文書にしておくことがポイントです。

手順のおさらい(マクロ活用バージョン)

下図のようなワードテンプレートを作り、マクロを登録しておきます。

2020-05-06 15.27.22

日付は、フィールドコードを挿入。自動的に更新させるようにしておきます。(.docx形式で保存する際に確定させる(更新しないようにする)。)

2020-05-06 15.23.58

フィールドコードは覚えるとかなり便利です。さて、ここまでが事前準備。それでは、日々の作業手順です。

  1. テンプレートファイルをダブルクリックして開く。
  2. ニュースサイトにアクセスし、データを取得。
  3. コピーしたニュースをテンプレートに貼り付けていく。
  4. 整形のマクロを使って、データを整形する。
  5. 保存とPDF書き出しのマクロを使って、.docx形式、.pdf形式で保存する。

この後は、PhraseExpressを使って、ファイル添付済みメールを自動作成してもらっています。

Wordのマクロの使い方って、今ひとつピンとこないのですが、こんな風に使ってみるのも一案かと。いかがでしょうか。

 

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.