アクセス小僧:テキストボックスに日時を表示 [コンピューター]
アクセスのフォームに設置したテキストボックスに日時(和暦年、曜日含む)を
表示させたいと思い、VBAマクロを作りました。
1.和暦年を表示
VBAで和暦年を取得する
http://www.relief.jp/docs/vba-japanese-calendar-year.html
によると「平成30」と表示させたいときは、Format関数の第2引数に「ggge」と指定するようです。
2.曜日を表示
WeekDay関数
http://officetanaka.net/excel/vba/function/WeekDay.htm
によると、WeekDay関数が、曜日に従って1, 2 --- 7の整数を返してくるので、"日"、"月" --- "土"の文字列に変換すれば、いいようです。そこで、日付(yyyy/mm/dd)を"日"、"月" --- "土"の文字列に変換する関数を作りました。
Function UFWeekday1(myDate1 As String)
'【機能】日付を曜日に変換
'【引数】
' myDate1 : 日付(yyyy/mm/dd)
'【変数】
'【実行コード】
Select Case Weekday(myDate1)
Case vbSunday
UFWeekday1 = "日"
Case vbMonday
UFWeekday1 = "月"
Case vbTuesday
UFWeekday1 = "火"
Case vbWednesday
UFWeekday1 = "水"
Case vbThursday
UFWeekday1 = "木"
Case vbFriday
UFWeekday1 = "金"
Case vbSaturday
UFWeekday1 = "土"
End Select
End Function
3.テキストボックスに西暦年、和暦年、月日、曜日、時間を表示
Format関数とUFWeekday1関数を使って、テキストボックスに西暦年、和暦年、月日、曜日、時間を表示するマクロを作ります。
Private Sub Form_Current()
'【イベント】レコード移動
' レコードをロードした日時を更新
[テキスト_ロード日時] = Format(Now(), "yyyy\[ggge""]年""mm\月dd""日[") _
& UFWeekday1(Now()) _
& Format(Now(), "\] hh\:nn\:ss")
End Sub
日時データはNow関数で、現在の日時とします。
Format関数の第二引数の書式のエスケープ処理が良く分かりません。。
まあ、良く分かってないのですが、上記マクロにて、テキストボックスに日時を表示すると、こうなります。
表示させたいと思い、VBAマクロを作りました。
1.和暦年を表示
VBAで和暦年を取得する
http://www.relief.jp/docs/vba-japanese-calendar-year.html
によると「平成30」と表示させたいときは、Format関数の第2引数に「ggge」と指定するようです。
2.曜日を表示
WeekDay関数
http://officetanaka.net/excel/vba/function/WeekDay.htm
によると、WeekDay関数が、曜日に従って1, 2 --- 7の整数を返してくるので、"日"、"月" --- "土"の文字列に変換すれば、いいようです。そこで、日付(yyyy/mm/dd)を"日"、"月" --- "土"の文字列に変換する関数を作りました。
Function UFWeekday1(myDate1 As String)
'【機能】日付を曜日に変換
'【引数】
' myDate1 : 日付(yyyy/mm/dd)
'【変数】
'【実行コード】
Select Case Weekday(myDate1)
Case vbSunday
UFWeekday1 = "日"
Case vbMonday
UFWeekday1 = "月"
Case vbTuesday
UFWeekday1 = "火"
Case vbWednesday
UFWeekday1 = "水"
Case vbThursday
UFWeekday1 = "木"
Case vbFriday
UFWeekday1 = "金"
Case vbSaturday
UFWeekday1 = "土"
End Select
End Function
3.テキストボックスに西暦年、和暦年、月日、曜日、時間を表示
Format関数とUFWeekday1関数を使って、テキストボックスに西暦年、和暦年、月日、曜日、時間を表示するマクロを作ります。
Private Sub Form_Current()
'【イベント】レコード移動
' レコードをロードした日時を更新
[テキスト_ロード日時] = Format(Now(), "yyyy\[ggge""]年""mm\月dd""日[") _
& UFWeekday1(Now()) _
& Format(Now(), "\] hh\:nn\:ss")
End Sub
日時データはNow関数で、現在の日時とします。
Format関数の第二引数の書式のエスケープ処理が良く分かりません。。
\[ | [を文字として表示するため |
""]年"" | ]年を文字として表示するため(?) |
\月dd""日[" | 解読不能 |
\: | :を文字として表示するため(?) |
まあ、良く分かってないのですが、上記マクロにて、テキストボックスに日時を表示すると、こうなります。
ヤバイぜ! ありがとうございます[__猫]
by cheese999 (2018-02-03 19:58)