- ベストアンサー
エクセル マクロ 時間
1)フォームにて時間を表示する。コンボボックス2つ作る。コマンドボタン(記録)を1つ作る。 2)1つのコンボボックスには時を選択させる。リストはリストはSheet2に01・02・03・・・とA列に00まで作る。 3)もう1つのコンボボックスには分を選択させる。リストはSheet2に01・02・03・・・とB列に00まで作る。 4)フォームの記録ボタンを押すと、sheet1のA2に(例 23:34)と表示させたい。 マクロの記述を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
時刻の数字って定数なんだから2と3は不要でしょう。 動的に変化する値ならそうやってシートに書き出してくというのも一つの手ですが。 1.フォームがLoadされる時にcomboboxに値をセットする。 Me.ComboBox1.AddItem ("01") Me.ComboBox1.AddItem ("02") Me.ComboBox1.AddItem ("03") ... Me.ComboBox2.AddItem ("01") Me.ComboBox2.AddItem ("02") Me.ComboBox2.AddItem ("03") ... 2.ボタンをおしたら下記コード ActiveSheet.Range("A2").Value = ComboBox1.Value & ":" & ComboBox2.Value
その他の回答 (1)
- papayuka
- ベストアンサー率45% (1388/3066)
個人的見解では、数字は入力が容易なのでいちいち ComboBox で選択するのは使い勝手が悪いと思いますが、、、 (特に 後半の数字など) UserForm に ComboBox を2つ、TextBox を1つ、CommandButton を2つ置いてます。 Private Sub UserForm_Initialize() Dim i As Integer Me.CommandButton1.Caption = "ComboBox 記録" Me.CommandButton2.Caption = "TextBox 記録" Me.TextBox1.IMEMode = fmIMEModeDisable For i = 0 To 23 Me.ComboBox1.AddItem Format(i, "00") Next i For i = 0 To 59 Me.ComboBox2.AddItem Format(i, "00") Next i End Sub Private Sub CommandButton1_Click() Dim myTime myTime = Me.ComboBox1.Value & ":" & Me.ComboBox2.Value If IsDate(myTime) Then Worksheets(1).Range("A2").Value = myTime End If End Sub Private Sub CommandButton2_Click() If IsDate(TextBox1.Value) Then Worksheets(1).Range("A3").Value = TextBox1.Value Else MsgBox "入力値を見直して下さい(h:ss)", vbExclamation, "エラー" End If End Sub
お礼
papayukaさんありがとうございます。いつも適確なアドバイスに感謝しています。今回も上手くいきました。
お礼
ありがとうございました。上手く解決しました。本当に感謝しています。