|
▼カウボーイズ さん:
ご返信まことにありがとうございます。
私は初級者なのにあれこれやりたくなるたちで、皆さまにいろいろご面倒をおかけしています。
目標は自力解決ですが道のりは遠いです。
さて【55978】にしたがい修正してみました所、成功しました。
次に、アドバイスに従って無駄な部分を修正しました。
下記部分については、シートに設けられたボタンを押してユーザーフォームをShowさせるときのプロシージャに移動しました。
If Not Application.Intersect(Range("C3:C104"), ActiveCell) Is Nothing Then
UserForm1.Show
Else
MsgBox "Programのいずれかを選択してください。"
End If
全体の実行結果はOKでした。
記述も大変スリムになりました。
このたびは本当にありがとうございました。
深く感謝申し上げます。
(標準モジュール)
Sub Sample()
If Not Application.Intersect(Range("C3:C104"), ActiveCell) Is Nothing Then
UserForm1.Show
Else
MsgBox "Programのいずれかを選択してください。"
End If
End Sub
-------------------------------------------------
(ユーザーフォーム)
Option Explicit
Public i As Long
Public ws1 As Worksheet
Public MyCount As Integer
Public n As Long
Private Sub UserForm_Initialize()
Calendar1.Value = Date
' カレンダーの日付をセルにセットする
Dim i As Integer
Me.ListBox1.RowSource = Worksheets("member").Range("a2:b51").Address(external:=True)
Me.TextBox1.Value = Date
With Me.ComboBox1
For i = 1 To 24
.AddItem i
Next
End With
'
' With Me.ComboBox2
' For i = 0 To 45 Step 15
' .AddItem i
' Next
' End With
' With Me.ComboBox3
' For i = 1 To 24
' .AddItem i
' Next
' End With
' With Me.ComboBox4
' For i = 0 To 45 Step 15
' .AddItem i
' Next
' End With
End Sub
Private Sub Calendar1_Click()
TextBox1.Value = Calendar1.Value
' カレンダーの日付をセルにセットする
End Sub
Private Sub CommandButton1_Click()
Dim From_Str As String
Dim To_Str As String
Dim Hours As Double
Set ws1 = Worksheets("history")
i = ws1.Range("B65536").End(xlUp).Row + 1
If i < 5 Then
i = 5
End If
For n = 0 To Me.ListBox1.ListCount - 1
If (Me.ListBox1.Selected(n) = True) Then
With ActiveCell
ws1.Cells(i, 2).Resize(, 3).Value = Array(.Offset(, -1).Value, .Value, .Offset(, 3).Value)
ws1.Cells(i, 2).Offset(, 7).Value = .Offset(, 5).Value
'
' If Me.ComboBox1.Value <> "" And Me.ComboBox2.Value <> "" Then
' From_Str = Me.ComboBox1.Value & ":" & Me.ComboBox2.Value
' End If
' If Me.ComboBox3.Value <> "" And Me.ComboBox4.Value <> "" Then
' To_Str = Me.ComboBox3.Value & ":" & Me.ComboBox4.Value
' End If
'
' If From_Str <> "" And To_Str <> "" Then
' Hours = (CDate(To_Str) - CDate(From_Str)) * 24
' 'Date
' ws1.Cells(i, 5).Value = Me.TextBox1.Value
' 'Time(From)
' ws1.Cells(i, 6).Value = CDate(From_Str)
' 'Time(To)
' ws1.Cells(i, 7).Value = CDate(To_Str)
' 'Hours
' ws1.Cells(i, 8).Value = (CDate(To_Str) - CDate(From_Str)) * 24
' 'Place
' ws1.Cells(i, 10).Value = Me.TextBox2.Value
' 'Notes
' ws1.Cells(i, 11).Value = Me.TextBox3.Value
'Id
ws1.Cells(i, 12).Value = Me.ListBox1.List(n, 1)
'Name
ws1.Cells(i, 13).Value = Me.ListBox1.List(n, 0)
i = i + 1
' End If
End With
End If
Next n
Unload UserForm1
End Sub
Private Sub UserForm_Deactivate()
Unload UserForm1
End Sub
|
|