エクセルのユーザーフォームでご教授ください
マクロの知識はほぼなく、調べながらエクセルの入力用のユーザーフォームを作りましたが、うまく作動しません。
UserForm1
~~~~~~~~~~~~~~~~~~~~~~~~~
Option Explicit
Private Declare Function ReleaseCapture Lib "user32" _
() As Long
Private Sub UserForm_Initialize()
Me.Show
End Sub
Private Sub Button_cxl_Click()
Me.Hide
End Sub
Private Sub ok_Click()
Dim RowNum As Long
Dim Ctrl As Control
RowNum = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(RowNum, 1).Value = Me.txt_date
Cells(RowNum, 2).Value = Me.txt_guest
Cells(RowNum, 3).Value = Me.txt_person
Cells(RowNum, 4).Value = Me.txt_begin
Cells(RowNum, 5).Value = Me.txt_finish
For Each Ctrl In Me.Controls
If Ctrl.Name Like "txt*" Then
Ctrl.Value = ""
RowNum = 0
End If
Next Ctrl
Me.Hide
ReleaseCapture
UserForm2.Show vbModal
End Sub
~~~~~~~~~~~~~~~~~~~~~~~~~
UserForm2
~~~~~~~~~~~~~~~~~~~~~~~~~
Option Explicit
Private Declare Function ReleaseCapture Lib "user32" _
() As Long
Private Sub UserForm_Initialize()
End Sub
Private Sub ButtonEnd_Click()
Unload Me
UserForm1.Hide
End Sub
Private Sub ButtonNext_Click()
Unload Me
ReleaseCapture
UserForm1.Show vbModal
End Sub
~~~~~~~~~~~~~~~~~~~~~~~~~
Module1
~~~~~~~~~~~~~~~~~~~~~~~~~
Sub ユーザーフォーム()
UserForm1.Show
End Sub
~~~~~~~~~~~~~~~~~~~~~~~~~
UserForm1を開き、Button_cxlで閉じず、もう一度Button_cxlをクリックで閉じる。
UserForm1を開き、Button_okでUserForm2を出し、ButtonEndをクリックでUserForm1にもどる(1と2を数度行き来しても同じ)
UserForm1を開き、Button_okでUserForm2を出しButtonNextをクリックでUserForm1にもどりButton_cxlをクリックで閉じず、もう一度クリックしても閉じず、三回目で閉じる。
現状、エクセルを開いた直後のみで発生してます。
一度ユーザーフォームを出し、閉じたあとは意図通り動き、再度エクセルを開くまで発生しません。
ちなみにUserForm2の
Private Sub ButtonEnd_Click()
Unload Me
UserForm1.Hide
End Sub
部分の、UserForm1.HideをUnload UserForm1にすると、「オブジェクト変数または With ブロック変数が設定されていません」と出てデバックでModule1の
UserForm1.Show
が黄色になります。
どこが悪いか教えてください。
お礼
ありがとうございます! なんとかできたようです!!