数字だけで時刻を入力する(時分のみでいい場合)

FileMakerで時刻タイプのフィールドに時刻を入力する場合、
「10:15」というように、間に ":" (コロン) をいれなければなりません。
10時ちょうどの場合は「10」と入力すれば「10:00」となるのですが、
"ちょうどの時間"を入れることばかりではないでしょうから、
コロンの入力が必要になることが多く、ちょっと面倒です。

FileMakerでも「数字だけで時刻入力させたい」というご要望をお聞きすることが多かったので、
以下のカスタム関数を作って対応することにしました。

関数名:HN_Time
関数の引数:Number
関数は以下の通り。

/* 目的:時刻フィールドに入力した数字を時刻に変更する。
12:34:56のように : (コロン)を2回入力した場合や
時刻が入力された後の複製時はその値を利用する。
  関数:HN_Time ( Number )
-------------------------------------------------------------------------------------------*/

Let (
[
Input = Number ;

str=Filter ( Number ; 1234567890 ) ;
time=Case (
Length ( str ) = 1 ; "0" & str & "00" ;
Length ( str ) = 2 ; str & "00" ;
Length ( str ) = 3 ; "0" & str ;
str
) ;
Replace=Case (
Length ( time ) = 4 ; Left ( time ; 2 ) & ":" & Right ( time ; 2 ) ;
Left ( time ; Length ( time ) - 2 ) & ":" & Right ( time ; 2 )
)

] ;

Case (
PatternCount ( Input ; ":" ) = 2 and Minute ( Input ) ≤ 59 and Seconds ( Input ) ≤ 59 ; Input ;
Replace
)

)

/*----------------------------------------------------------------------------------------
Modify Hifumi Nakaoka 2013.01.18
Create Hifumi Nakaoka 2010.08.13*/

上記のカスタム関数は、

1 と入力すると 1:00:00
12 と入力すると 12:00:00
123 と入力すると 1:23:00
1234 と入力すると 12:34:00
12345 と入力すると 123:45:00

となるようにしています。

123 の場合は1:23になる方が(私には)便利なのでこうしていますが、
12:30 にしたいという場合はご自身で改良してくださいませ。

カスタム関数ができたら、数字で時刻を入力させたい時刻フィールドへの設定です。

数字で時刻を入力させたい時刻フィールドのオプション、
「入力値の自動化」の「計算値」にチェックをつけ、
HN_Time ( Self )
という計算式を記載します。
「フィールドに既存の値が存在する場合は置き換えない」のチェックは外しておきます。

以上で数字で時刻が入力できるようになると思います。

他にもいろいろ、
同じことを目的にした関数などを公開してくださっているサイトもあるようです。
ご自身のお好みでお使いになっていただければと思います。

皆様のお役に立てるようでしたら、ご自由にお使いくださいませ。
なお、今回も
ご紹介した計算式の使い方、ご質問などはお受けしておりません。
また、ご利用になる場合はご自身の責任でお使いくださいますようお願いいたします<(_ _)>

それと、相変わらず打たれ弱いので、ツッコミなどはこっそりメールでお願いします。

//---追記---//
この記事は、旧ブログに掲載した記事なのですが、
思ったよりも使えると思ってくださる方が多かったので、
こちらのブログにも計算式や使い方などを掲載させていただくことにしました。