|
転記元シートoverviewのB列の値を、転記先historyの空白行を見つけて転記し(1)、ひきつづいてユーザーフォームのカレンダーから選んだ日付を、同じhistoryの、(1)で作業中の行の別の列へ転記したいのです。
変数は標準モジュール、ユーザーフォームの両方で使えるよう宣言セクションで宣言しました。
下記のような感じてよいでしょうか。
また、ワークシートモジュールでいうところのBeforeDouleClickイベントを、標準モジュールでやるのはどうしたらいいですか。
すみません、基本的なことがわかっていないと思います。
(標準モジュール)
Option Explicit
Dim Cnm As String
Dim Pnm As String
Dim Mnm As String
Dim Tnm As String
Public ws1 As Worksheet
Public i As Long
Sub Test1(ByVal Target As Range, Cancel As Boolean)
Activate.Worksheet("overview")
If Not Application.Intersect(Range("B3:B100"), Target) Is Nothing Then
With Target
Cnm = .Offset(, -1).Value
Pnm = .Offset(0, 0).Value
Mnm = .Offset(, 3).Value
Tnm = .Offset(, 5).Value
End With
Set ws1 = Worksheets("history")
For i = 5 To ws1.Range("B65535").End(xlDown).Row
If IsEmpty(ws1.Cells(i, 2).Value) Then
ws1.Cells(i, 2).Value = Cnm
ws1.Cells(i, 3).Value = Pnm
ws1.Cells(i, 4).Value = Mnm
ws1.Cells(i, 9).Value = Tnm
UserForm1.Show
Exit For
End If
Next i
Cancel = True
End If
End Sub
(ユーザーフォーム)
Option Explicit
Private Sub UserForm_Initialize()
Calendar1.Value = Date
カレンダーの日付をセルにセットする
End Sub
Private Sub Calendar1_Click()
TextBox1.Value = Calendar1.Value
カレンダーの日付をセルにセットする
End Sub
Private Sub カレンダーの日付をセルにセットする()
ws1.Cells(i, 5).Value = Calendar1.Value
End Sub
Private Sub CommandButton1_Click()
Unload UserForm1
End Sub
Private Sub UserForm_Deactivate()
Unload UserForm1
End Sub
|
|