マクロの知識はほぼなく、調べながらエクセルの入力用のユーザーフォームを作りましたが、うまく作動しません。
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
が黄色になります。
どこが悪いか教えてください。
No.1ベストアンサー
- 回答日時:
詳しい解説をしようとする当方のボキャブラリー不足の為自分が混乱してしまいそうなので(^-^;)、とりあえず解決策の提案のみですが・・・
(1)UserForm1内の
Private Sub UserForm_Initialize()
Me.Show
End Sub
の三行を削除
(2)UserForm2のButtonEnd_Click内の
UserForm1.Hide を
Unload UserForm1 に変更
(※質問文内ではエラーになったと記載がありましたが、(1)の修正を行うことによってエラーは解消されるかと思います)
完璧に不具合解消されるかは分かりませんが、とりあえず上記2点の修正でどうでしょうか。。
完璧に意図通り動きました。
ありがとうございます。
どこかからかコピペし、動作には関係ないと思っていた構文だったので、完全に無視してました。
よく見ればInitializeって書いてありますよね(汗
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
昔のテレビっておっぱいが出て...
-
【バッチファイル】ホスト名を...
-
TextBoxコントロールを引数とし...
-
複数のテキストファイルをエク...
-
参照設定は2.8と6.0 6.1とどち...
-
韓流女と別れたい
-
VBAで○○:○○と表示させたいのに...
-
バンタンのDOPEの最初って ラプ...
-
デスクチェア―のガスシリンダー...
-
Accessのレポートで重複データ...
-
韓流好き妻の行動に怒り…私は狭...
-
減少率の計算方法
-
imac2012ってまだ使えますか?...
-
latestの対義語
-
複数条件のDLOOKUP文が上手く使...
-
OneNote2016で過去のデータを読...
-
galaxy sのギャラリーについて
-
水に映った月明かりを表す言葉
-
twiceの ツウィて そんなに美人...
-
btsの呪いの、動画って何? 見...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
昔のテレビっておっぱいが出て...
-
複数のテキストファイルをエク...
-
【バッチファイル】ホスト名を...
-
Adobe Acrobat と Adobe Reader...
-
参照設定は2.8と6.0 6.1とどち...
-
TextBoxコントロールを引数とし...
-
バンタンのDOPEの最初って ラプ...
-
デスクチェア―のガスシリンダー...
-
VBAで○○:○○と表示させたいのに...
-
水に映った月明かりを表す言葉
-
韓流女と別れたい
-
韓流好き妻の行動に怒り…私は狭...
-
ジェームス・ブラウンのマント...
-
画面が突然真っ暗になり、すぐ...
-
imac2012ってまだ使えますか?...
-
latestの対義語
-
twiceのツウィちゃんの、この卒...
-
TWICEのライブについてです 母...
-
PCの不具合について
-
40代の方に質問をしたいんですが
おすすめ情報