Excel VBA 質問スレッド №1963 (解決済)
カレンダーを使用してテキストボックスへの入力について
投稿者 : スズキ 投稿日時 : 2024/07/11(Thu) 15:13:37 OS : Windows 11 EXCEL : Office 365
はじめまして
現在使用しているカレンダーを使用しての入力なのですが
テキストボックス名を変更したら使えなくなってしまいました。
その他データと連動のためTextbox1 Textbox2での使用が不可となります。
どのように変更したら良いのか教えていただけますでしょうか
よろしくお願いいたします。
□□□□□ Textbox
▼ CommandButton
---------------------------
これからはこちらのテキストボックス名に変更したい。
□□□□□▼
Textbox名 Syukkobi
CommandButton名 CommandButton1
□□□□□▼
Textbox名 Nonyubi
CommandButton名 CommandButton2
----------------------------
今までは Textbox1 Textbox2 で使用していました。
----------------------------
モジュール
'---カレンダー用変数
Public clndr_date As Date 'テキストボックスの値を格納する変数
Public clndr_flg As Boolean 'カレンダーがクリックされたか判定するフラグ
はじめまして
現在使用しているカレンダーを使用しての入力なのですが
テキストボックス名を変更したら使えなくなってしまいました。
その他データと連動のためTextbox1 Textbox2での使用が不可となります。
どのように変更したら良いのか教えていただけますでしょうか
よろしくお願いいたします。
□□□□□ Textbox
▼ CommandButton
---------------------------
これからはこちらのテキストボックス名に変更したい。
□□□□□▼
Textbox名 Syukkobi
CommandButton名 CommandButton1
□□□□□▼
Textbox名 Nonyubi
CommandButton名 CommandButton2
----------------------------
今までは Textbox1 Textbox2 で使用していました。
Private Sub CommandButton1_Click() Call ShowCalender(1) End Sub----------------------------
Private Sub CommandButton2_Click() Call ShowCalender(2) End Sub----------------------------
Private Sub ShowCalender(i As Integer) clndr_flg = False 'フラグリセット If IsDate(Me("TextBox" & i).Value) = False Then '日付が入ってなければ clndr_date = Date '今日の日付を格納 Else clndr_date = Me("TextBox" & i).Value 'テキストボックスの日付を格納 End If CalenderForm.Show 'カレンダーを開く If clndr_flg = True Then Me("TextBox" & i).Value = Format(clndr_date, "m月d日(aaa)") 'クリックされた日付を上書き yyyy/mm/dd End Sub
----------------------------
モジュール
'---カレンダー用変数
Public clndr_date As Date 'テキストボックスの値を格納する変数
Public clndr_flg As Boolean 'カレンダーがクリックされたか判定するフラグ
スポンサーリンク
[返信 1] Re : カレンダーを使用してテキストボックスへの入力について
投稿者 : hatena 投稿日時 : 2024/07/11(Thu) 16:08:24
ShowCalenderの引数をTextbox名にすればいいでしょう。
あるいはテキストボックスオブジェクトを渡してもいいでしょう。
ShowCalenderの引数をTextbox名にすればいいでしょう。
Private Sub CommandButton1_Click() Call ShowCalender("Syukkobi") End Sub Private Sub CommandButton2_Click() Call ShowCalender("Nonyubi") End Sub Private Sub ShowCalender(TxtBoxName As String) clndr_flg = False 'フラグリセット If IsDate(Me(TxtBoxName).Value) = False Then '日付が入ってなければ clndr_date = Date '今日の日付を格納 Else clndr_date = Me(TxtBoxName).Value 'テキストボックスの日付を格納 End If CalenderForm.Show 'カレンダーを開く If clndr_flg = True Then Me(TxtBoxName).Value = Format(clndr_date, "m月d日(aaa)") 'クリックされた日付を上書き yyyy/mm/dd End Sub
あるいはテキストボックスオブジェクトを渡してもいいでしょう。
Private Sub CommandButton1_Click() Call ShowCalender(Me.Syukkobi) End Sub Private Sub CommandButton2_Click() Call ShowCalender(Me.Nonyubi) End Sub Private Sub ShowCalender(TxtBox As Control) clndr_flg = False 'フラグリセット If IsDate(TxtBox.Value) = False Then '日付が入ってなければ clndr_date = Date '今日の日付を格納 Else clndr_date = TxtBox.Value 'テキストボックスの日付を格納 End If CalenderForm.Show 'カレンダーを開く If clndr_flg = True Then TxtBox.Value = Format(clndr_date, "m月d日(aaa)") 'クリックされた日付を上書き yyyy/mm/dd End Sub
[返信 2] Re : カレンダーを使用してテキストボックスへの入力について
投稿者 : スズキ 投稿日時 : 2024/07/12(Fri) 09:09:43
hatena様
ご返信ありがとうございます。
早速使用させていただきました!
色々な方法がありとても勉強になりました。
この度は教えていただきありがとうございました。
スズキ
■[返信 1] hatenaさん(2024-07-11 16:08:24)の記事
> ShowCalenderの引数をTextbox名にすればいいでしょう。
>
>
> Private Sub CommandButton1_Click()
> Call ShowCalender("Syukkobi")
> End Sub
>
>
> Private Sub CommandButton2_Click()
> Call ShowCalender("Nonyubi")
> End Sub
>
>
> Private Sub ShowCalender(TxtBoxName As String)
> clndr_flg = False 'フラグリセット
> If IsDate(Me(TxtBoxName).Value) = False Then '日付が入ってなければ
> clndr_date = Date '今日の日付を格納
> Else
> clndr_date = Me(TxtBoxName).Value 'テキストボックスの日付を格納
> End If
> CalenderForm.Show 'カレンダーを開く
> If clndr_flg = True Then Me(TxtBoxName).Value = Format(clndr_date, "m月d日(aaa)") 'クリックされた日付を上書き yyyy/mm/dd
> End Sub
>
> あるいはテキストボックスオブジェクトを渡してもいいでしょう。
>
> Private Sub CommandButton1_Click()
> Call ShowCalender(Me.Syukkobi)
> End Sub
>
>
> Private Sub CommandButton2_Click()
> Call ShowCalender(Me.Nonyubi)
> End Sub
>
>
> Private Sub ShowCalender(TxtBox As Control)
> clndr_flg = False 'フラグリセット
> If IsDate(TxtBox.Value) = False Then '日付が入ってなければ
> clndr_date = Date '今日の日付を格納
> Else
> clndr_date = TxtBox.Value 'テキストボックスの日付を格納
> End If
> CalenderForm.Show 'カレンダーを開く
> If clndr_flg = True Then TxtBox.Value = Format(clndr_date, "m月d日(aaa)") 'クリックされた日付を上書き yyyy/mm/dd
> End Sub
>
>
hatena様
ご返信ありがとうございます。
早速使用させていただきました!
色々な方法がありとても勉強になりました。
この度は教えていただきありがとうございました。
スズキ
■[返信 1] hatenaさん(2024-07-11 16:08:24)の記事
> ShowCalenderの引数をTextbox名にすればいいでしょう。
>
>
> Private Sub CommandButton1_Click()
> Call ShowCalender("Syukkobi")
> End Sub
>
>
> Private Sub CommandButton2_Click()
> Call ShowCalender("Nonyubi")
> End Sub
>
>
> Private Sub ShowCalender(TxtBoxName As String)
> clndr_flg = False 'フラグリセット
> If IsDate(Me(TxtBoxName).Value) = False Then '日付が入ってなければ
> clndr_date = Date '今日の日付を格納
> Else
> clndr_date = Me(TxtBoxName).Value 'テキストボックスの日付を格納
> End If
> CalenderForm.Show 'カレンダーを開く
> If clndr_flg = True Then Me(TxtBoxName).Value = Format(clndr_date, "m月d日(aaa)") 'クリックされた日付を上書き yyyy/mm/dd
> End Sub
>
> あるいはテキストボックスオブジェクトを渡してもいいでしょう。
>
> Private Sub CommandButton1_Click()
> Call ShowCalender(Me.Syukkobi)
> End Sub
>
>
> Private Sub CommandButton2_Click()
> Call ShowCalender(Me.Nonyubi)
> End Sub
>
>
> Private Sub ShowCalender(TxtBox As Control)
> clndr_flg = False 'フラグリセット
> If IsDate(TxtBox.Value) = False Then '日付が入ってなければ
> clndr_date = Date '今日の日付を格納
> Else
> clndr_date = TxtBox.Value 'テキストボックスの日付を格納
> End If
> CalenderForm.Show 'カレンダーを開く
> If clndr_flg = True Then TxtBox.Value = Format(clndr_date, "m月d日(aaa)") 'クリックされた日付を上書き yyyy/mm/dd
> End Sub
>
>
[返信 3] Re : カレンダーを使用してテキストボックスへの入力について
投稿者 : スズキ 投稿日時 : 2024/07/12(Fri) 09:11:31
解決済みにさせていただきます。
ありがとうございました。
解決済みにさせていただきます。
ありがとうございました。
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-03 16:48:29 )