アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2016で入力フォームを作っています。
 日時を入れるテキストボックスがあるのですが、yyyy/mm/dd h:m などの書式設定をしたいです。

 調べてみたところ、Format や inputMaskの情報があったのですが、アクセスのようで・・・

 入力フォームで日時を入れる事ってまあまああると思うんですが、みなさんどのようにされているのでしょうか?

A 回答 (6件)

こんな感じでいかがですか。



Private Sub CommandButton1_Click()
Dim n As Long '行の変数
n = 2
Do While Cells(n, 8) <> ""
n = n + 1
Loop

Cells(n, 1) = TextBox1.Text '入力日
Cells(n, 2) = TextBox2.Text 'カタカナ
Cells(n, 3) = TextBox3.Text '氏名

TextBox1.Text = Format(Date, "yyyy/mm/dd")
TextBox2.Text = ""
TextBox3.Text = ""


TextBox2.SetFocus
End Sub
    • good
    • 0
この回答へのお礼

ボタンを押したら今の日付が yyyy/mm/dd で入るというコードですね!
ありがとうございます。

今日の日付ではなくて、
「フォームのテキストボックスに手打ちで日時を入れる」場合に、テキストボックスに日付形式の入力規制が出来ないものかという話でして・・・

お礼日時:2020/08/04 18:21

カレンダーコントロールにお願いしています。

    • good
    • 0
この回答へのお礼

ありがとうございます。
 カレンダーコントロール、最近のエクセルのバージョンではライセンスの関係で使えないと書かれてあったのです。

 カレンダーが使えれば一番良いのですが

お礼日時:2020/08/04 18:22

No.1 です


それならtextboxに直接、yyyy/m/d と入れた方がよいのでは。
    • good
    • 0

こんばんは、


テキストボックスの入力設定ですか、すんなりいかないようですね。
>みなさんどのようにされているのでしょうか?
私の場合は、TextBoxでやるならエラー処理と入力制限を入れて入力形式を促すくらいかな。
入力制限の例( /位置、桁数などのチェックも追加が必要ですね)
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 47 Or KeyAscii > 57 Then '/0~9まで
KeyAscii = 0
End If
End Sub
少し不便になっても限定した値が欲しい場合は、TextBoxを諦めComboBoxで選択して貰うとかですかね
ComboBoxへの登録例
UserForm_Initialize()に
For i = Year(Date) - 2 To Year(Date)
ComboBox1.AddItem i
Next
For i = 1 To 12 '月
ComboBox2.AddItem i
Next
ComboBox1.Value = Year(Date)
ComboBox2.Value = Month(Date)
ddに関しては条件設定で登録する必要がありますね。
隠しシートにマトリックス組んどけば簡単かもしれませんね。
あと、簡易的なカレンダーを作るとかですかね。
    • good
    • 0
この回答へのお礼

ベースにさせていただき、作成出来ました。
本職さんて凄いですね
ありがとうございます

お礼日時:2020/08/12 17:40

わたしの場合ですがヒントになりませんか。



ComboBox1.RowSource = "Sheet1!N2:N9" 'コンボボックス1にSheet1のH13:H20の値を入れます
ComboBox1.Value = Worksheets("Sheet1").Range("N2").Value 'コンボボックス1の値をSheet1のH13にします
ListBox1.RowSource = "Sheet1!N2:N9" 'リストボックス1にSheet1のH2:H9の値を入れます
「エクセルVBAのフォームで日時を入力しや」の回答画像5
    • good
    • 0

No.5でミスがあり下記の様に訂正してください。



ComboBox1.RowSource = "Sheet1!N2:N9" 'コンボボックス1にSheet1のN2:N9の値を入れます
ComboBox1.Value = Worksheets("Sheet1").Range("N2").Value 'コンボボックス1の値をSheet1のN2にします
ListBox1.RowSource = "Sheet1!N2:N9" 'リストボックス1にSheet1のN2:N9の値を入れます
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A