WordのRange.TextプロパティとVBAのDate関数を使った、今日の日付を入力するWordマクロをご紹介しました。
2024年2月時点で、このようなRange.TextプロパティとDate関数を使う方法は、少数派のようです。
CopilotはSelection.InsertDateTimeを使ったコードを生成
Copilot in Bingで「Wordマクロで今日の日付を入力するには?」と私が質問したところ、以下のようなコードを生成してくれました。
Selection.InsertDateTime DateTimeFormat:="yyyy年 M月 d日", InsertAsField:=False
これに近いコードがネット上などに大量に存在するからこそ、生成AIはこのコードを提示してきたのでしょう。
このコードを2024年2月13日に実行すれば、アクティブなWord文書でカーソルのあった位置に、
2024年 2月 13日
と入力されます。
コードとしては間違っていませんが、私はこのコードがAIで生成される状況に疑問を感じます。
Selection.InsertDateTimeメソッドは、今日の日付を入力することしかできないコードだからです。
汎用性の高い方法をまず覚えるべきでしょう
Wordマクロを使って、今日の日付入力だけを行いたいというのであれば、Selection.InsertDateTimeメソッドで全く問題ないと思います。
しかし現実的には、そうではないはずです。
Wordマクロで今日の日付を入力できることを知れば、人は、他のこともVBAで行いたくなるものだと思うのです。
Word VBAには、
TMTOWTDI(There's More Than One Way To Do It./やり方は一つじゃない)
といった設計思想があるかのように、さまざまなメソッドが用意されています。
Word VBAを熟知した後であれば、Selection.InsertDateTime的なメソッドを知ることは悪いことだと思いませんが、最初に知るべきメソッドかと問われると、私は違うと思うのです。
オブジェクトブラウザーを見ればわかるとおり、InsertDateTimeの他にInsert○○といった名前のメソッドがたくさん用意されています。
「○○を入力したい」といった要望があったときに、これらのメソッドを次から次へと覚えるのでしょうか。
このようなメソッドをたくさん覚えるよりも、Range.Textプロパティを経由する代入文のような、汎用性の高い方法を最初に知るべきだと私は思うのです。
最終更新日時:2024-02-14 08:56
Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAではSelection.InsertDateTimeで今日の日付を入力できるけど……