日本語関数で 今の日時や今日の日付を 求めて表示しよう

Pocket

日本語関数で 今の日時や今日の日付を 求めて表示しよう
日本語関数で今の日時や今日の日付を求めて表示しよう

序文

はい。

皆さんは腕時計を持っていますか?

最近はスマホがあるので、持たれていない方もいらっしゃるかもしれませんね。

自分は、「チープカシオ」というカシオ製で激安のチープな時計を持っています。

時計を持つと、「今」の日時がスグにわかりますね。

今日は、日本語VBAで、「今」の日時「今日」の日付を取得する日本語関数の使い方を解説します。

VBAでも、今の日時や今日の日時を取得しプログラムに組み込めたら、色々と便利ですね。

例えば、ログを書き込む際のログを書いた日時も記入する、などの応用も可能です。

何かと便利な、今の日時や今日の日付を1発で取得する日本語関数

なお、今回の記事の内容を実行するには、「エクセルVBA日本語化」Ver0.17.0-alpha1以上のバージョンが必要です。

以下のURLよりダウンロードされてください。

それでは、行ってみましょう!

今の日時を求める関数

サブルーチンの大枠
サブルーチンの大枠

まずは、日本語関数を呼び出すテストを行うサブルーチンの大枠を作りましょう。

以下のコードをコピペしてください。

「g_道具」を補完して、「表示」メソッドを選択
「g_道具」を補完して、「表示」メソッドを選択

そして、「g_」まで入力し、「CTRL」+スペースキーを同時に押下し、

「g_道具」まで補完します。

その後、「.(ピリオド)」を入力し、出てくる補完候補の中から「表示」メソッドを選択し、TABキーを押して補完を確定させます。

「F_今()」日本語関数で、現在の日時を取得し、「表示」メソッドで画面に表示する
「F_今()」日本語関数で、現在の日時を取得し、「表示」メソッドで画面に表示する

「g_道具.表示」の後に、半角スペースを一つ入れて、「F_今()」と入力します。

ここで、「F_」から始まる関数は、日本語名の関数です。

「F_」まで入力し「CTRL」+スペースキーを押下して日本語関数の補完候補のリストを出すこともできます。

しかし、日本語関数は100関数ほどありますので、補完候補の数が多すぎて選ぶのが大変です。

そこで、ここは面倒ですが「F_今()」と入力してください。

また、以下のコードをコピペされてもかまいません。

サブルーチンの実行には、カーソルをサブルーチン内に置いて、「マクロの実行」ボタンをクリック
サブルーチンの実行には、カーソルをサブルーチン内に置いて、「マクロの実行」ボタンをクリック

それでは、今の日時を取得できているか「表示」メソッドで確認してみましょう。

先ほどのサブルーチン内に、カーソルを置き、VBA編集画面のツールバーの「マクロの実行」ボタンをクリックします。

現在の日時が表示された
現在の日時が表示された

無事。今の日時が表示されました。

今日の日付を求める関数など

まとめて表示
まとめて表示

それでは、「F_今」、「F_今日」、「F_今の日付」「F_今日の日付」を一気に実行してみましょう。

そして、上記サブルーチン内にカーソルを置いて、VBA編集画面のツールバーの「マクロの実行」ボタンをクリックします。

F_今()
F_今()

F_今()関数が返す値は、本当は、整数部を日付の連番、小数部を時刻の連番にした数値です。

この数値は、他のプログラムや関数でも使用できるようになっています。

例えば、日時の差を、”2019/01/15 11:20:30” と”2019/02/05 12:10:20” の文字列から求めるのは難しいと思います。

しかし、整数部を日付の連番、小数部を時刻の連番にした数値なら足し算や引き算で計算可能です。

値は数値なのですが、最近のエクセル365で表示させると、自動的に日時の文字列に変換して表示してくれるようです。

F_今日()
F_今日()

F_今日()関数の返す値も本当は、整数部を日付の連番にした数値です。

この数値は、他のプログラムや関数でも使用できるようになっています。

例えば、日時の差を、”2019/01/15” と”2019/02/05” の文字列から求めるのは難しいと思います。

しかし、整数部を日付の連番にした数値なら足し算や引き算で計算可能です。

この値も、エクセル365では表示する際に日付の文字列形式に変換して表示してくれるようです。

F_今の日付()
F_今の日付()

F_今日の日付()関数では、関数内で、整数部を日付の連番、小数部を時刻の連番にした数値から、日時形式の文字列への変換を行っています。

そのため、日時形式の文字列として値が返ってきています。

F_今日の日付()
F_今日の日付()

F_今日の日付()関数も、整数部を日付の連番にした数値から、日付の文字列への変換を行っています。

そのため、日付形式の文字列として値が返ってきています。

まとめ

皆さん、お疲れ様でした。

ここまで読んで頂いて、誠にありがとうございました。

今日の学びを以下にまとめます。

  • F_今()関数が返す値は、本当は、整数部を日付の連番、小数部を時刻の連番にした数値です。
    日時の数値は、プログラムで日時を扱う際、便利です。
  • F_今日()関数の返す値も本当は、整数部を日付の連番にした数値です。
    日付の数値は、プログラムで日付を扱う際、便利です。
  • F_今日の日付()関数では、数値から、日時形式の文字列への変換を行っています。
    そのため、日時形式の文字列として値が返ってきています。
  • F_今日の日付()関数では、数値から、日付の文字列への変換を行っています。
    そのため、日付形式の文字列として値が返ってきています。

以上となります。

日時や日付が数値形式であるということに、少し戸惑いがあられる方もいらっしゃるかもしれません。

しかし、例えば、開始日2.0とします)と終了日6.0とします)の日付数値があった場合、期間の日数を求めるには、6.0 – 2.0 = 4.0 と、4日の日数であると簡単に求まります。

このような応用性があるため、エクセルでは日時や日付を数値として持ってるのですね。

このことを、ぜひ、応用されてください。

それではー またー (^_^)/

The following two tabs change content below.
KaBA@フリーランス修行中

KaBA@フリーランス修行中

こんにちは!IT業界で勤めて17年くらい務めています。プログラミング大好きやろーです。 自分も独学でC言語を覚えIT会社に就職しました。その後紆余曲折を経て、VB6.0、VBA、Perl、C#、HTML、CSS、JavaScript、PHPなどを覚えていきました。全部C言語の独学時の経験がベースとなって、学習曲線が良いカーブを描いていました。 情報工学科を出ていなくても、独学でエンジニアは育つことができると思います! このブログで皆さんがプログラミングに興味を持たれるのを心待ちにしています! 頑張って覚えられてください!よろしくお願いします。 趣味は読書で、小宮一慶さんや松下幸之助さんなど著名人の本を読んでいる他、赤川次郎さんの三毛猫ホームズシリーズ司馬遼太郎吉川英治さんの三国志などが好きです。