以前質問しました、年月日と時間の上書きについてと内容が似ていますが
コードの形式を変えたので再度質問致します。
前回とは異なり、今回はリストボックスを使うことにしました。
・一つのリストボックスで複数のシートを選択するのは可能なのか
・編集フォームのテキストボックスで時間が小数点表記になってしまう
以上の二点が問題点、疑問点として挙がっています。
発生している問題・エラーメッセージ
該当のソースコード
Private Sub cb_touroku_Click() '日付出勤登録ボタン Dim tgtRow As Long tgtRow = Cells(32, 1).End(xlUp).Row tgtRow = tgtRow + 1 For i = 2 To 32 For Each SH In ActiveWorkbook.Worksheets With ActiveSheet .Cells(tgtRow, 1).Value = DateSerial(Me.cb1.Value, Me.cb2.Value, Me.cb3.Value) .Cells(tgtRow, 2).Value = TimeSerial(Me.TextBox1.Value, Me.TextBox2.Value, 0) '出勤時刻 End With Next Next i MsgBox "登録しました" End Sub Private Sub cb_touroku2_Click() '退勤・休憩登録ボタン Dim tgtRow As Long tgtRow = Cells(32, 1).End(xlUp).Row For r = 2 To 32 For Each SH In ActiveWorkbook.Worksheets With ActiveSheet .Cells(tgtRow, 3).Value = TimeSerial(Me.TextBox3.Value, Me.TextBox4.Value, 0) '退勤時刻 .Cells(tgtRow, 4).Value = TimeSerial(Me.TextBox5.Value, Me.TextBox6.Value, 0) '休憩開始時刻 .Cells(tgtRow, 5).Value = TimeSerial(Me.TextBox7.Value, Me.TextBox8.Value, 0) '休憩終了時刻 End With Next Next r MsgBox "登録しました" End Sub Private Sub UserForm_Initialize() '年月日選択プルダウン With cb1 .AddItem "2021" End With With cb2 .AddItem "1" .AddItem "2" .AddItem "3" .AddItem "4" .AddItem "5" .AddItem "6" .AddItem "7" .AddItem "8" .AddItem "9" .AddItem "10" .AddItem "11" .AddItem "12" End With With cb3 .AddItem "1" .AddItem "2" .AddItem "3" .AddItem "4" .AddItem "5" .AddItem "6" .AddItem "7" .AddItem "8" .AddItem "9" .AddItem "10" .AddItem "11" .AddItem "12" .AddItem "13" .AddItem "14" .AddItem "15" .AddItem "16" .AddItem "17" .AddItem "18" .AddItem "19" .AddItem "20" .AddItem "21" .AddItem "22" .AddItem "23" .AddItem "24" .AddItem "25" .AddItem "26" .AddItem "27" .AddItem "28" .AddItem "29" .AddItem "30" .AddItem "31" End With End Sub Private Sub UserForm_Initialize() 'リストボックスのユーザーフォーム Dim lastrow As Long Sheets("10", "11", "12").Select With ListBox1 .ColumnHeads = True .ColumnCount = 5 .ColumnWidths = "70;50;50" .RowSource = "10!" & Range("A2", "E2" & lastrow).Address End With Private Sub cbform5go_Click() '修正ボタン Dim tgtRow As Long tgtRow = With Sheet2 .Cells(tgtRow, 2).Value = Me.tx2.Value '出勤時間 .Cells(tgtRow, 3).Value = Me.tx3.Value '退勤時間 End With End Sub Private Sub UserForm_Initialize() 'テキストボックスで修正するユーザーフォーム Dim tgtRow As Long tgtRow = With Sheet2 Me.tx2.Value = .Cells(tgtRow, 2).Value '出勤時間 Me.tx3.Value = .Cells(tgtRow, 3).Value '退勤時間 End With
試したこと
DATE型を使用。
補足情報(FW/ツールのバージョンなど)
シートの「出勤時間」と「退勤時間」のセルは「10:00」のような時間表記になるように設定
回答3件
あなたの回答
tips
プレビュー