今日を乗り切るExcel研究所

Excel に働かされていませんか

Windows で今日の日付をサクッと取得したい

今回は Excel から少し離れますが、関連する話題として、今日の日付をテキストで簡単に取得する方法を調べます。 ファイル名に日付を追加するときなど、思い立ったらサクッと入力できるようになりたいです。

YYYYMMDD 形式の復活

最近、ファイル名に YYYYMMDD なんか付けたりしていますか。

YYYYMMDD 形式というのは、日付を使った番号の付け方の一つで、YYYYは西暦、MMは月、DDは日から来ています。 たとえば「2019年1月23日」なら「20190123」となります。 昔はよくこれをファイル名に追加して、ファイルのやり取りやバージョン(版)管理をしていたものです。 さらに時刻まで細かく表した YYYYMMDDHHMMSS 形式なんてのもあります。

クラウドやファイル管理が便利になった現在、とっくに廃れた習慣のはずでしたが、なにか最近、また復活してきているような気がします。

どうも、「チャットワーク」や「Slack」といったビジネスチャットツールが一般的になって、チャネルにファイルなんかも気兼ねなくバンバン投げ合うようになったのが一因ではないか思います。

そうだとしても、ファイル名に手打ちで日付を入力するというのは、そのスピード時代にそぐわない非効率な作業です。 特にテンキーのないノートパソコンなどでは数字を素早く打ち込めずにイライラします。

日付ぐらいサクッと取得する方法はないものでしょうか。

今日の日付をサクッと取得するには

Windows 自体にそういう機能あってほしいところなのですが、調べてみても存在しないようです。

Windows になくても、今開いているアプリケーションからサクッと日付を取得できるかもしれまん。

日頃よく使っているであろうアプリケーションで、今日の日付をとる方法をいろいろ調べてみました。

これらを試す前に、まず今、手打ちで日付を素早くタイプしてみてください。 それにかかった時間と徒労感で比べて、効率的になったかどうかが評価のキモになります。 今日の日付というだけではなく、YYYYMMDD 形式がワンアクションで取得できればベストです。

日本語入力で日付に変換する

日本語入力システム(IME)には、かな漢字変換だけでなく、郵便番号から住所へなど便利な変換機能もあることはご存じかもしれません。

IME の予測入力を使うと、現在の日付や時刻を取得することもできます。 今日の日付は「きょう」、現在時刻は「いま」で変換します。

ファイル名の後ろなどで「きょう」とタイプすると、表示される予測入力の一覧中に日付や時刻がいくつかの形式でリストアップされますので、TAB(スペースではなく)や、上下矢印キー(↑↓)で選択後、Enter で入力できます。

f:id:shego:20190103215909g:plain
Microsoft IME による日付の入力

機能 入力 日付形式
今日の日付 きょう 2019年1月3日
平成31年1月3日
1月3日(木)
2019/01/03
平成31年1月3日(木)
2019年1月3日(木)
1月3日
木曜日
現在の時刻 いま 20時56分
午後8時56分
20:56

ほかにも、「あした」とか「らいねん」といったバリエーションがあるようです。

残念ながら変換候補に YYYYMMDD 形式の日付はありませんので、他の形式からの修正が必要です。そこまでの手間を考えると、始めから手打ちした方が早いかもしれません。

ただ上記はあくまで Windows に標準で付属している「Microsoft IME」で調べた内容です。

IME には「ATOK」や「Google 日本語入力」といった他社製品がありますが、これらにも同様に日付を変換する機能があります。

もし ATOK や Google 日本語入力を導入されているなら、もっと便利な変換形式があるかもしれませので試してみてください。ATOK なら YYYYMMDD 形式にも一発で変換できるようです。

Excel で日付を取得する

Excel が開いているなら(ますよね?)、日付のショートカットで今日の日付を取得できます。

空いているセルで「Ctrl + ;」をタイプすると今日の日付が入力されますので、あとはそれをコピー&ペーストします。

機能 ショートカット 日付形式
今日の日付 Ctrl + ; 2019/1/23
現在の時刻 Ctrl + : 12:34:56

YYYYMMDD 形式にしたければコピペ後にテキスト編集する必要があります。セルの書式設定で作ることもできるのですが、それはちょっと手間です。

それでも、もし、いつも常に開きっぱなしのシートがあるのなら、その隅にあらかじめ YYYYMMDD 形式に書式設定したセルを用意しておくのもいいかもしれません。

セルの書式は「セルの書式設定」(Ctrl + 1)の「表示形式」で行いますが、その「日付」を探しても YYYYMMDD 形式は用意されていないので、「ユーザー定義」のほうで設定する必要があります。 YYYYMMDD 形式にするには「種類」欄に小文字で「yyyymmdd」と設定します。

そのほかの Excel で使える日付書式指定は、以下の一覧で使っているものを参考にしてください。

テキストエディタで日付を取得する

テキストエディタをいつも開いているなら、日付を挿入するコマンドが使えるかもしれません。「メモ帳」なら F5 キーです。

有名どころのテキストエディタの日付挿入機能を調べてみました。

テキストエディタ ショートカット 日付形式 書式設定
メモ帳 F5 1:02 2019/01/02 Windows
秀丸エディタ なし
サクラエディタ Alt + ;(日付挿入)
Alt + :(時刻挿入)
2019年1月2日
1:02:34
カスタム
EmEditor Shift + F5 2019/01/02 1:02 Windows
Mery Shift + F5 2019/01/02 1:02 Windows
Terapad なし

書式設定に「Windows」とあるエディタでは、表示形式が上記一覧と微妙に異なっているかもしれません。 それらのエディタでは、Windows で設定されている日付形式が使われているためで、「日付(短い形式)」と「時刻(短い形式)」を組み合わせています。

Windows の日付形式を変更したければ、「日付と時刻」設定の「日付と時刻の形式を変更する」で、用意された日付形式の選択肢から指定できます。 「日付と時刻の形式を変更する」を開くには、コルタナ(ここに入力して検索)にそのまま入力して検索するのが速いでしょう。

f:id:shego:20190104135319p:plain
Windows 10 日付と時刻の形式を変更する

一方、「サクラエディタ」なら設定で好きな書式に変更できます。「設定」>「共通設定」>「書式」タブの「日付書式」で「カスタム」を選択し、「yyyyMMdd」と入力します。指定できる日付や時刻の書式はサクラエディタのヘルプを参照してください。

人気の高い「秀丸エディタ」には日付挿入コマンドが用意されていませんが、マクロを作成すれば実現出来るようです。マクロなら、日付の形式も自由にできそうですが、一般ユーザにはちょっと敷居が高いので本記事では扱いません。

上記一覧以外のテキストエディタをお使いでも、便利な日付挿入コマンドがあるかもしれないのでチェックしてみてください。

Outlook の下書きメッセージから日付を取得する

ほかにも、開きっぱなしのアプリケーションといえば、Eメールを送受信するメーラーもそのひとつでしょう。

会社メールなどで、もし「Office Outlook」をメーラーに使っているなら、今日の日付取得用のメッセージを「下書き」として用意しておくことができます。

Outlook メッセージには「Alt + Shift + D」で今日の日付を挿入することができます。 この挿入された日付は、ただのテキストではなく「フィールド」です。フィールドとは Excel の数式のようなもので、自動更新や書式設定をすることができます。

日付フィールドは、メッセージを開くたび更新されます。今日の日付コピペ用のメッセージを「下書き」に常備しておけば、素早く今日の日付を得ることができます。

【手順例】

  1. 新規メッセージを作成します
    • ショートカット: Ctrl + N
    • 件名に「今日の日付」などわかりやすい名前を入力します
    • 宛先は、間違って送信されないように、空のままにしておきます
  2. 下書きの本文に今日の日付を挿入します
    • 日付ショートカット:Alt + Shift + D
    • 時刻ショートカット:Alt + Shift + T
    • 今日の日付が日付フィールドとして表示されます
  3. フィールド編集ダイアログで日付の書式を編集します
    1. 挿入した日付を右クリックしてメニューから「フィールドの編集」を実行します
      f:id:shego:20190104153158p:plain
      Outlook フィールドの編集
      f:id:shego:20190104153329p:plain
      Outlook フィールドダイアログ
      • Dateフィールドが選択状態になっています
    2. フィールドプロパティで「日付の書式」を yyyyMMdd などに編集します
    3. 「OK」ボタンを押します
      • 日付の書式が変更されています
  4. メッセージを閉じ、下書きとして保存します

この下書きメッセージを開くと、常にその時の今日の日付や現在時刻で表示されます。 必要なときに、これをぱっと開いてコピぺできれば OK です。 YYYYMMDD 形式以外にも、たとえば日報メールの件名のような日付入りの定型文言をいろいろ用意しておけば、なにかと便利かもしれません。

f:id:shego:20190104153412p:plain

 



Wordファイルのプレビューから日付を取得する

日付フィールドは Word でも使えます。ショートカットも同じ Alt + Shift + D です。

Word の日付フィールドは、ファイルを開くたびに今日の日付や現在時刻で自動更新されます。 YYYYMMDD 形式などの日付フィールドを書き込んだ Word ファイルを用意してもいいのですが、Word はそんなに常に開いているものでもないので、このためだけにわざわざ起ち上げるのも実用的ではありません。

今回紹介したいのは Windows のフォルダの「プレビュー」経由で開く方法です。

Word の新規文書の始めに日付フィールドを挿入して、分かりやすいファイル名(たとえば「今日の日付.docx」)をつけて普通に保存します。

この日付用 Word ファイルを保存したフォルダを開き、エクスプローラの「表示」タブの「ペイン」にある「プレビューウィンドウ」をクリックしてプレビュー表示状態にした上で「今日の日付.docx」を選択します。

f:id:shego:20190104164417p:plain

すると、右側のプレビューにファイルの中身が表示され、挿入した日付が出てきます。 プレビューの日付は自動更新されるので、プレビューを開くたびに、その時点の今日の日付や現在時刻が表示され、しかもここからテキストとして普通にコピーすることができます。

文書ファイルの置き場所になっているフォルダに日付用 Word ファイルを常備しておけば、ファイル名に日付を付けたくなったときに、プレビューをぱっと開いてサクッとコピぺするといった使い方ができます。

f:id:shego:20190104164449p:plain

プレビューを非表示に戻すには、もう一度「プレビューウィンドウ」をクリックします。

Web ブラウザのブックマークレットで日付を取得する

常に開きっぱなしのアプリケーションといえば、やっぱりダントツで Web ブラウザですよね。

Google で「日付」を検索すれば直ぐに今日の日付が出てきます。

f:id:shego:20190105022719p:plain

ここから日付をコピーできるのですが、日付形式を選べないのが残念です。 「フィードバック」というリンクから要望を聞いてくれるようなので、日付形式のカスタマイズ機能の提案を送っておけば、 いつか対応してもらえるかもしれません。

それは待っていられないので、代わりに、今日の日付を YYYYMMDD 形式で取得するという「ブックマークレット(Bookmarklet)」を作成してみました。

上記リンクをブラウザのブックマークバー(お気に入りバー)にドラッグ&ドロップするとブックマークとして登録できます。 あとは、いつでもそのブックマークをクリックすれば、ダイアログが開いて今日の日付が YYYYMMDD 形式で得られます。

f:id:shego:20190105224148g:plain

ダイアログを閉じるには「OK」か「キャンセル」のどちらかを押します。

これは「ブックマークレット」と呼ばれる仕掛けを利用していて、リンクの代わりに小さなプログラムを実行するようなブックマークになっています。 ブックマークレットは技術的に最近あまり使われなくなっているようです。

Winodows10 上の「Chrome」、「Firefox」、「IE 11」で動作確認が取れていますが、「Edge」では動作しませんでした。 Edge はブックマークレット自体をサポートしなくなったためです。

ブックマークレットのドラッグ&ドロップに抵抗感のある方や、日付形式をカスタマイズしたい方は、新規ブックマークを作成して以下のスクリプトをブックマークのURL欄に直接コピー&ペーストしてご使用ください。

javascript:(function(){var f='yyyyMMdd',d=new Date(),a=new Date(d.getTime()-d.getTimezoneOffset()*60000).toISOString().split(/\D/);prompt(f,f.replace(/([yMdHms])\1*/g,function(m,c){var p=a['yMdHms'.indexOf(c)];return m[1]?p.slice(-m.length):1*p;}));})();

日付の形式をカスタマイズするには、上記スクリプトの最初の方の 'yyyyMMdd' となっているところを編集します。 西暦年月日時分秒のみサポートしています(yyyy,yy,MM,M,dd,d,HH,H,mm,m,ss,s)。

ファイル名に YYYYMMDD を追加するバッチ

この記事の元々の課題は、日付の取得方法ではなく、ファイル名に日付を YYYYMMDD 形式で入れる方法でした。

ファイル名に日付を入れるバッチを作成したかったのですが、だいぶ長文となってしまったので、それはまた別の記事の話題にしたいと思います。

まとめ

ファイル名に日付を挿入するときなど、今日の日付を取得したい状況で、お手軽に日付を得られる方法を探りました。 Windows 自体に日付を取得するコマンドはありませんが、今開いているアプリケーションによってサクッと今日の日付を得られる引き出しの在りかを知っておけば、少しはストレスが軽減するかもしれません。

ほかにもっと簡単に日付を取得するワザがありましたら、ぜひ教えください。

動作を検証した Excel、Word、Outlook のバージョンはどれも Office 2013 です。最新バージョンとは操作が異なるかもしれません。 Windows のバージョンは Windows 10 で検証しました。