VBScript:VBScriptで日付用のFormat関数を作成するサンプルプログラム

VBScript:VBScriptで日付用のFormat関数を作成するサンプルプログラム

VBScriptには、日付などの表示書式を変更することができるFormat関数がありません。

今回日付の書式を操作する必要があったため、日付の書式変更に限定したFormat関数をVBScriptで作成したので覚書きしておきます。

記事概要

Format関数のような処理を実現するためには、スクリプト中に文字列操作関数などを使用して求めるフォーマットに変換する処理をロジックに直接含めるか、Format関数と同じような機能を持つ関数を自作し、その関数に値を渡して結果を戻り値として受け取る仕組みにするかのどちらかになります。

今回は、何回も書式変換を実行する必要があるのでFormat関数を自作しました。

VBScriptで作成したFormat関数のサンプルプログラム

以下にVBScriptで作成したFormat関数のサンプルプログラム記載します。

VBScriptで作成したFormat関数の説明と使い方

作成した関数は、引数として書式を変更したい日付時刻型の値「data」、変更する書式を指定する「f」、年、月、日の間に区切り文字("/"や"-"など)「separator」を受け取ります。

対応している書式は、「yyyymmdd」、「yymmdd」、「yyyy年m月d日」、「yyyy年mm月dd日」、和暦(例えば、平成21年1月15日など)の5種類です。

区切り文字を指定できるので、「yyyy/mm/dd」などの指定もできます。

使い方の例を以下に記載します。

使い方

上記Format関数のサンプルプログラムをVBScriptファイルにコピペします。

関数を使う時は、以下のように3つの引数を指定して呼び出します。

区切り文字を指定しない場合は、""を指定してください。

以下のコードを実行してみればわかりやすいと思います。

このFormat関数のコード自体がかなり長いので必要ない書式を生成している部分を削除してしまえば短くすることもできます。

別のVBScriptファイルにインクルードして使う方法

Format関数を記述したVBScriptを別ファイルにして、Format関数を使用したいVBScriptにインクルードして使うこともできます。

例えば、Format関数をformat.vbsという独立した1つのファイルにして、呼び出す側のVBScriptファイルの先頭部分に以下のコードを記述します。

上記記述以降にFormat関数を使用したいコードを書いていけばそれほど行数は増えなですし、見ばえも多少はよくなるかと思います。

外部ファイルのインクルード方法については、以下のページを参考にさせていただきました。

また、和暦に関して1912年7月30日は、明治でも大正でもどちらでも正しいそうだが、プログラム上明確な区切りが必要なため29日までを明治としました。