【Word】文章中の日付を自動的に更新する
文書を作成する際に、計算を要する場合はExcelを使い、そうでない場合はWordで作成することは比較的よく聞く話です。
Excelは関数を活用することで、さまざまな設定が可能です。例えば日付け一つにしても、今日や今月末、翌月1日などを計算し、表示することが可能です。
一方、Wordではそれができないのではと思われる方もいますが、「フィールド」機能を使用することで可能になります。とはいえ、Excelほど気軽には使えませんし、さらに使える関数は限られているなどの注意点があります。
それでも、毎月送るような文書の定型的な変更を人の手で変えていては時間がかかりますし、なによりミスが出る可能性がありますので、上手く使えれば効率的です。
そこで、今回はWord文書で月や日にちを自動更新する方法をご紹介します。後半は少し難しいですが、使えるようになると便利です。
下図のようにフィールドのダイアログボックスが開きますので、日にちにする場合は「Date」のフィールドを選択しましょう。
今日の日付けを表示させるには、真ん中にあるフィールドプロパティから希望の表示形式を選択し、そのまま確定すればOKです。
これで毎回Wordを開いたときに、今日の日付が表示されるようになります。
では、今日の日付ではなく今月や翌月の1日にしたいという場合、どうすればいいでしょうか。
作業は単純で、日にちを表す部分の「d」を直接「1」にすればいいだけです。
「y」は年を、「M」は月を表しています。「yy」にすれば西暦の下2桁の年が、「MM」にすれば1~9月は「01月」のように2桁の数字で表示されます。また「aaa」を加えると曜日も表示されるようになります。例えば、
yy年MM月d日(aaa)
と入力すると「24年06月11日(木)」のように、今日の日付が表示されます。直接入力する場合は「’」(シングルクォーテーション)は入力しなくても構いません。
ちなみに画像内では月を表示させる記号だけ大文字の「M」を使っています。これを自分で入力するときに小文字の「m」にしてしまうとminuteの「分」に認識されてしまいますので注意しましょう。
少なくとも先ほどの画像にあったフィールドプロパティの「DATE」の書式は今月を表す「M」があるだけで「翌月」の指定はできませんでした。
勘の良い方は、フィールドコードの書式内にExcelのように「M+1」などと設定すればいいのではと思われるかもしれませんが、その場合は「6+1月」のように「+1」が文字としてそのまま表示されてしまいます。
月に1を足す計算はフィールドの書式ではなく、自分で計算式を作成しなければなりません。そして、単純に今月の数値を「+1」する方法では、12月の場合に13月になってしまいますので、1月に循環するようにしなければなりません。
そこで、ここでは割り算をしたときの余りを返す「MOD」関数を活用します。MOD関数は、MOD(数値,除数)の順に引数を指定します。例えば、
=MOD(6,4)
と設定した場合、6を4で割った余りの「2」が表示されます。これを利用して全ての月を12で割って余りを出します。1~12月を12で割った余りは以下のようになります。
=MOD(1,12) → 1
=MOD(2,12) → 2
=MOD(3,12) → 3
=MOD(4,12) → 4
=MOD(5,12) → 5
=MOD(6,12) → 6
=MOD(7,12) → 7
=MOD(8,12) → 8
=MOD(9,12) → 9
=MOD(10,12) → 10
=MOD(11,12) → 11
=MOD(12,12) → 0
まとめると、12月以外は全て月の数字そのままで、12月だけは割り切れるため余りが「0」になるというわけです。
それらの計算結果に1を加えれば、1~11月は次の月に、12月のみ1月になります。
なお、この関数はExcelでも同様に活用できます。
では、どうやってWordにこの計算をさせられるかということですが、そのまま入力しても機能しないため、「CTRL」+「F9」を使って関数を入力しましょう。
{ = MOD ({ DATE ¥@ M },12) +1 }
※2組ある「{ }」の記号は「CTRL」+「F9」で挿入される記号です。
完成すれば、DATE辺りにカーソルを移動させると「更新」ボタンが出ますのでクリックしましょう。正しく入力されていれば翌月の数字になるはずです。
表示されるのは数字だけですので、式の後ろに「月」を直接入力しておくとよいでしょう。
フィールドを再度表示させたい場合は、数字を選択して右クリックし「フィールドコードの表示/非表示」を選択しましょう。
全てのコードが表示されない場合は、MOD関数のカッコ内の数字を右クリックして、再度「フィールドコードの表示/非表示」を選択しましょう。
これで、自動的に更新されるようになりますが、実際はファイルを開いた直後に更新されてないことがあります。その時は印刷プレビューに切り替えれば更新されます。
最後に、2か月後にしたい場合、「+1」を「+2」にすればいいのではないかと思われがちですが、実際に
{ = MOD ({ DATE ¥@ M },12) +2 }
にしてしまうと、11月の時に「13」と表示されてしまいます。
そうならないように、MOD関数の計算結果を+2するのではなく、現在の月を求める「DATE ¥@ M」の方を+1しましょう。つまり
{ = MOD ({ DATE ¥@ M } +1 , 12) +1 }
のようにしておけば、
11月の場合:MOD(12 , 12) +1 = 1
12月の場合:MOD(13 , 12) +1 = 2
のように都合よく2ヶ月後の数値が表示されるようになります。
Excelは関数を活用することで、さまざまな設定が可能です。例えば日付け一つにしても、今日や今月末、翌月1日などを計算し、表示することが可能です。
一方、Wordではそれができないのではと思われる方もいますが、「フィールド」機能を使用することで可能になります。とはいえ、Excelほど気軽には使えませんし、さらに使える関数は限られているなどの注意点があります。
それでも、毎月送るような文書の定型的な変更を人の手で変えていては時間がかかりますし、なによりミスが出る可能性がありますので、上手く使えれば効率的です。
そこで、今回はWord文書で月や日にちを自動更新する方法をご紹介します。後半は少し難しいですが、使えるようになると便利です。
今月の1日の表示
下の画像を見本に、「挿入タブ」→「クイックパーツ」→「フィールド」をクリックします。下図のようにフィールドのダイアログボックスが開きますので、日にちにする場合は「Date」のフィールドを選択しましょう。
今日の日付けを表示させるには、真ん中にあるフィールドプロパティから希望の表示形式を選択し、そのまま確定すればOKです。
これで毎回Wordを開いたときに、今日の日付が表示されるようになります。
では、今日の日付ではなく今月や翌月の1日にしたいという場合、どうすればいいでしょうか。
作業は単純で、日にちを表す部分の「d」を直接「1」にすればいいだけです。
「y」は年を、「M」は月を表しています。「yy」にすれば西暦の下2桁の年が、「MM」にすれば1~9月は「01月」のように2桁の数字で表示されます。また「aaa」を加えると曜日も表示されるようになります。例えば、
yy年MM月d日(aaa)
と入力すると「24年06月11日(木)」のように、今日の日付が表示されます。直接入力する場合は「’」(シングルクォーテーション)は入力しなくても構いません。
ちなみに画像内では月を表示させる記号だけ大文字の「M」を使っています。これを自分で入力するときに小文字の「m」にしてしまうとminuteの「分」に認識されてしまいますので注意しましょう。
翌月の表示
次に翌月を表示させたい場合どうしたらよいでしょうか。少なくとも先ほどの画像にあったフィールドプロパティの「DATE」の書式は今月を表す「M」があるだけで「翌月」の指定はできませんでした。
勘の良い方は、フィールドコードの書式内にExcelのように「M+1」などと設定すればいいのではと思われるかもしれませんが、その場合は「6+1月」のように「+1」が文字としてそのまま表示されてしまいます。
月に1を足す計算はフィールドの書式ではなく、自分で計算式を作成しなければなりません。そして、単純に今月の数値を「+1」する方法では、12月の場合に13月になってしまいますので、1月に循環するようにしなければなりません。
そこで、ここでは割り算をしたときの余りを返す「MOD」関数を活用します。MOD関数は、MOD(数値,除数)の順に引数を指定します。例えば、
=MOD(6,4)
と設定した場合、6を4で割った余りの「2」が表示されます。これを利用して全ての月を12で割って余りを出します。1~12月を12で割った余りは以下のようになります。
=MOD(1,12) → 1
=MOD(2,12) → 2
=MOD(3,12) → 3
=MOD(4,12) → 4
=MOD(5,12) → 5
=MOD(6,12) → 6
=MOD(7,12) → 7
=MOD(8,12) → 8
=MOD(9,12) → 9
=MOD(10,12) → 10
=MOD(11,12) → 11
=MOD(12,12) → 0
まとめると、12月以外は全て月の数字そのままで、12月だけは割り切れるため余りが「0」になるというわけです。
それらの計算結果に1を加えれば、1~11月は次の月に、12月のみ1月になります。
なお、この関数はExcelでも同様に活用できます。
では、どうやってWordにこの計算をさせられるかということですが、そのまま入力しても機能しないため、「CTRL」+「F9」を使って関数を入力しましょう。
{ = MOD ({ DATE ¥@ M },12) +1 }
※2組ある「{ }」の記号は「CTRL」+「F9」で挿入される記号です。
完成すれば、DATE辺りにカーソルを移動させると「更新」ボタンが出ますのでクリックしましょう。正しく入力されていれば翌月の数字になるはずです。
表示されるのは数字だけですので、式の後ろに「月」を直接入力しておくとよいでしょう。
フィールドを再度表示させたい場合は、数字を選択して右クリックし「フィールドコードの表示/非表示」を選択しましょう。
全てのコードが表示されない場合は、MOD関数のカッコ内の数字を右クリックして、再度「フィールドコードの表示/非表示」を選択しましょう。
これで、自動的に更新されるようになりますが、実際はファイルを開いた直後に更新されてないことがあります。その時は印刷プレビューに切り替えれば更新されます。
最後に、2か月後にしたい場合、「+1」を「+2」にすればいいのではないかと思われがちですが、実際に
{ = MOD ({ DATE ¥@ M },12) +2 }
にしてしまうと、11月の時に「13」と表示されてしまいます。
そうならないように、MOD関数の計算結果を+2するのではなく、現在の月を求める「DATE ¥@ M」の方を+1しましょう。つまり
{ = MOD ({ DATE ¥@ M } +1 , 12) +1 }
のようにしておけば、
11月の場合:MOD(12 , 12) +1 = 1
12月の場合:MOD(13 , 12) +1 = 2
のように都合よく2ヶ月後の数値が表示されるようになります。