Outlookサポートナビ!  ≫≫≫ Outlookフォーム作成/VBSプログラミング

 

日付/時刻を操作する

 

 

 

 

 

 

 

 

 

 

 

 

ここではOutlookオブジェクトモデルや関数(VBS)を使用した日付/時刻の操作についてご紹介します。

 

▼ 日付/時刻を表す関数一覧

関数

意味

Date

現在の日付を取得します。(例 2012/1/27)

Time 現在の時刻を取得します。(例  16:25:15
Now 現在の日時(日付&時刻)を取得します。(例 2012/1/27  16:25:15

 

Year 日付から「」を取り出します。(例 Year(Date) → 2012
Month 日付から「」を取り出します。(例 Month(Date) → 1
Day 日付から「」を取り出します。(例 Day(Date) → 27

 

Hour 時刻から「」を取り出します。(例 Hour(Time) → 16)
Minute 時刻から「」を取り出します。(例 Minute(Time) → 25
Second 時刻から「」を取り出します。(例 Second(Time) → 15
DateSerial を指定し、日付型のデータを取得します。

: DateSerial(年,月,日)

 

DateSerial(2012, 1,27) → 2012/1/27

DetaSerial(Year(Date),Month(Date)+1,Day(Date)) → 1か月後の日付を返します。

DateDiff 日付・時刻の間隔を返します。

:DateDiff(”表示形式" , 始日時, 終日時)

 

表示形式は以下のように指定します。

yyyy(年) m(月) d(日) ww(週) h(時)
n(分) s(秒) q(四半期) y(年間通算日) w(週日) 満何週か

 

例:年齢を出す

DateDiff ("yyyy" , 生年月日 , Date)

 

例:

   
Weekday 日付から「曜日」を返します。既定では、曜日は日曜日(1)土曜日(7)の数値で返されます。

例:1/27(金曜)の場合

Weekday(#2012/1/27#) → 6

スタートしたい曜日の数値を指定することもできます。月曜を「1」にしたい場合はWeekday(日付,2)とします。すると月曜日(1)〜日曜日(7)の数値が返されます。

例:1/27(金曜)の場合

Weekday(#2012/1/27#, 2 ) → 5

 

上記のように戻り値を既定から変更することによって、条件式が記述しやすくなります。

例:配送希望日が土日の場合はエラーを表示

If Weekday(UserProperties("希望配送日").value,2) >= 6 then Msgbox "土日は配送できません"

(土=6、日=7となるので「土日なら」=「6以上なら〜」の条件式を記述できます。)

 

http://msdn.microsoft.com/ja-jp/library/cc392347.aspx

WeekdayName 数値から「〇曜日」を返します。既定では数値は日曜日(1)〜土曜日(7)から指定します。

例:WeekdayName(1)日曜日

例:WeekdayName(2) 月曜日

 

例:1/27(金)の場合

WeekdayName(Weekday(#2012/1/27#)) → 金曜日

 

例:今日の曜日を返す場合

WeekdayName(Weekday(Date)) → 〇曜日

 

※Weekday関数と同様にスタートしたい曜日の数値を引数に指定できます。月曜を「1」にしたい場合は、WeekdayName(2, 2)とします。

http://msdn.microsoft.com/ja-jp/library/cc392348.aspx

   

 

 

表示形式について:


★ 日付や日時の表示形式は、格納されるOutlookのフィールドに指定されていればこれが最優先されます。

▼ フィールドに指定されている表示形式

★ 表示形式が指定されていないフィールドの場合、日付はPCの「地域と言語」に設定されている「短い形式」で表示され、時刻「長い形式」で表示されます。VBSの日時表示形式の既定値です。(例:日付の短い形式:yyyy/mm/dd  時刻の長い形式:H:mm:ss など)

 

★ 表示形式の「短い形式」「長い形式」を指定したい場合はFormatDateTime関数を使います。

 

★日付・時刻の表示形式は、表示するPCの「地域と言語」によって異なります。統一したい場合はDateSerial関数・Year関数・Month関数・Day関数などを組み合わせて記述します。


 

 

 

 

記述例:


記号

現在の日付をTextBox1に表示します。

Sub item_open()

Set MyPage = Item.GetInspector.ModifiedFormpages("登録")

MyPage.TextBox1.Value = Date()

★アイテムオープン時に発生するイベント

★現在のページを取得

★TextBox1に現在の日付を格納する

 

※ 表示形式を指定していない場合「地域と言語」の短い形式で日付が表示されます。


記号

現在の日付をTextBox1に表示します。

Sub item_open()

Set MyPage = Item.GetInspector.ModifiedFormpages("登録")

MyPage.TextBox1.Value = Date()

★アイテムオープン時に発生するイベント

★現在のページを取得

★TextBox1に現在の日付を格納する

 

※ 表示形式を指定していない場合「地域と言語」の短い形式で日付が表示されます。

 

 

 

定数 内容
vbGeneralDate 0 日付か時刻、又は両方表示します。PCの「地域と言語」に応じて日付→短い形式で表示し、時刻→長い形式で表示します。
vbLongDate 1 「地域と言語」に応じて長い形式で日付を表示します。
vbShortDate 2 「地域と言語」に応じて短い形式で日付を表示します。
vbLongTime 3 「地域と言語」に応じて形式で時刻を表示します。
vbShortTime 4 24 時間形式 (hh:mm) で時刻を表示します。

 

 

名前 説明
olFormatDateTimeBestFit 17 列に格納されているデータに最も合った形式を使用して、日付/時刻の値を表示します。
olFormatDateTimeLongDate 6 「地域と言語」に応じて、曜日なしの長い日付を表示します。
olFormatDateTimeLongDateReversed 7 「地域と言語」に応じて、日付の数字と月の名前を反転させて長い日付を表示します。
OlFormatDateTimeLongDayDate 5 「地域と言語」に応じて、曜日付きの長い日付を表示します。
olFormatDateTimeLongDayDateTime 1 「地域と言語」に応じて、長い日付と長い時刻を表示します。
olFormatDateTimeLongTime 15 「地域と言語」に応じて、長い時刻を表示します。
olFormatDateTimeShortDate 8 「地域と言語」に応じて、短い日付を表示します。
olFormatDateTimeShortDateNumOnly 9 「地域と言語」に応じて、日/月/年の数値表現を使用して短い日付を表示します。
olFormatDateTimeShortDateTime 2 「地域と言語」に応じて、短い日付と短い時刻を表示します。
olFormatDateTimeShortDayDate 13 「地域と言語」に応じて、曜日の省略名を使用して短い日付を表示します。
olFormatDateTimeShortDayDateTime 3 「地域と言語」に応じて、曜日の省略名、短い日付、および短い時刻を表示します。
olFormatDateTimeShortDayMonth 10 「地域と言語」に応じて、曜日の省略名を使用して月と曜日を表示します。
olFormatDateTimeShortDayMonthDateTime 4 「地域と言語」に応じて、曜日の省略名、日付の数字、月の数字および短い時刻を表示します。
olFormatDateTimeShortMonthYear 11 「地域と言語」に応じて、当日の月/年を表示します。
olFormatDateTimeShortMonthYearNumOnly 12 「地域と言語」に応じて、月/年の数値表現を使用して当日の月/年を表示します。
olFormatDateTimeShortTime 16 「地域と言語」に応じて、短い時刻を表示します。

 

 

≫≫  Outlookフォーム作成/開発/VBSプログラミング  ≫≫ プログラミングサンプル編