'***************************************************************************************************
' 2つのフォームを排他表示させるサンプル① ThisWorkbook(Class)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev 変更履歴内容------------------------------------------------------------------------>
'04/02/13(1.00)新規作成
'05/12/04(1.01)初回修正
'20/02/25(1.10)*.xlsm化、他
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
' ■■■ ワークブックイベント ■■■
'***************************************************************************************************
'* 処理名 :Workbook_Open
'* 機能 :起動プロシージャ
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2004年02月13日
'* 作成者 :井上 治
'* 更新日 :2020年02月25日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub Workbook_Open()
'-----------------------------------------------------------------------------------------------
' フォーム1の表示
UserForm1.Show
' 終了メッセージ
MsgBox "終了です。"
End Sub
'----------------------------------------<< End of Source >>----------------------------------------
'***************************************************************************************************
' 2つのフォームを排他表示させるサンプル① UserForm1(Class)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev 変更履歴内容------------------------------------------------------------------------>
'04/02/13(1.00)新規作成
'05/12/04(1.01)初回修正
'20/02/25(1.10)*.xlsm化、他
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
' ■■■ コントロールイベント ■■■
'***************************************************************************************************
'* 処理名 :CommandButton1_Click
'* 機能 :ボタンクリックイベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2004年02月13日
'* 作成者 :井上 治
'* 更新日 :2020年02月25日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub CommandButton1_Click()
'-----------------------------------------------------------------------------------------------
' 自フォームをHide
Me.Hide
' フォーム2を表示
UserForm2.Show
' フォーム2のHide後のメッセージ
MsgBox "フォーム2が閉じられました。"
End Sub
'----------------------------------------<< End of Source >>----------------------------------------
'***************************************************************************************************
' 2つのフォームを排他表示させるサンプル① UserForm2(Class)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev 変更履歴内容------------------------------------------------------------------------>
'04/02/13(1.00)新規作成
'05/12/04(1.01)初回修正
'20/02/25(1.10)*.xlsm化、他
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
' ■■■ コントロールイベント ■■■
'***************************************************************************************************
'* 処理名 :CommandButton1_Click
'* 機能 :ボタンクリックイベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2004年02月13日
'* 作成者 :井上 治
'* 更新日 :2020年02月25日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub CommandButton1_Click()
'-----------------------------------------------------------------------------------------------
' 自フォームをHide
Me.Hide
' フォーム1を表示
UserForm1.Show
' フォーム1のHide後のメッセージ
MsgBox "フォーム1が閉じられました。"
End Sub
'----------------------------------------<< End of Source >>----------------------------------------
'***************************************************************************************************
' 2つのフォームを排他表示させるサンプル② UserForm1(Class)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev 変更履歴内容------------------------------------------------------------------------>
'04/02/13(1.00)新規作成
'05/12/04(1.01)初回修正
'20/02/25(1.10)*.xlsm化、他
'***************************************************************************************************
Option Explicit
'===================================================================================================
' 位置、大きさを保持(退避)する変数
Private g_lngHeightSV As Long ' フォームの高さ
Private g_lngWidthSV As Long ' フォームの幅
Private g_lngTopSV As Long ' フォームの縦位置
Private g_lngLeftSV As Long ' フォームの横位置
'***************************************************************************************************
' ■■■ コントロールイベント ■■■
'***************************************************************************************************
'* 処理名 :CommandButton1_Click
'* 機能 :ボタンクリックイベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2004年02月13日
'* 作成者 :井上 治
'* 更新日 :2020年02月25日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub CommandButton1_Click()
'-----------------------------------------------------------------------------------------------
' 現在状態を退避
g_lngHeightSV = Me.Height
g_lngWidthSV = Me.Width
g_lngTopSV = Me.Top
g_lngLeftSV = Me.Left
' フォーム1をフォーム2の後ろに隠すため同じ大きさにする
Me.Height = UserForm2.Height
Me.Width = UserForm2.Width
' フォーム2を表示
UserForm2.Show
' フォーム1を元の位置、大きさを再現
Me.Height = g_lngHeightSV
Me.Width = g_lngWidthSV
Me.Top = g_lngTopSV
Me.Left = g_lngLeftSV
' フォーム2のHide後のメッセージ
MsgBox "フォーム2が閉じられました。"
End Sub
'----------------------------------------<< End of Source >>----------------------------------------
'***************************************************************************************************
' 2つのフォームを排他表示させるサンプル② UserForm2(Class)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev 変更履歴内容------------------------------------------------------------------------>
'04/02/13(1.00)新規作成
'05/12/04(1.01)初回修正
'20/02/25(1.10)*.xlsm化、他
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
' ■■■ フォームイベント ■■■
'***************************************************************************************************
'* 処理名 :UserForm_Activate
'* 機能 :フォーム初期表示イベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2004年02月13日
'* 作成者 :井上 治
'* 更新日 :2020年02月25日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub UserForm_Activate()
'-----------------------------------------------------------------------------------------------
' フォームの移動イベントのプロシージャを呼ぶ
Call UserForm_Layout
End Sub
'***************************************************************************************************
'* 処理名 :UserForm_Layout
'* 機能 :フォームの移動イベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2004年02月13日
'* 作成者 :井上 治
'* 更新日 :2020年02月25日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub UserForm_Layout()
'-----------------------------------------------------------------------------------------------
On Error GoTo Layout_End
' UserForm1をUserForm2の後ろへ移動
With UserForm1
.Top = Me.Top
.Left = Me.Left
End With
'===================================================================================================
' 終了(エラー処理含む)
Layout_End:
On Error GoTo 0
End Sub
'***************************************************************************************************
' ■■■ コントロールイベント ■■■
'***************************************************************************************************
'* 処理名 :CommandButton1_Click
'* 機能 :ボタンクリックイベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2004年02月13日
'* 作成者 :井上 治
'* 更新日 :2020年02月25日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub CommandButton1_Click()
'-----------------------------------------------------------------------------------------------
' フォーム2を閉じる
Me.Hide
End Sub
'----------------------------------------<< End of Source >>----------------------------------------
'***************************************************************************************************
' 2つのフォームを排他表示させるサンプル③ Module1(Module)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev 変更履歴内容------------------------------------------------------------------------>
'04/02/13(1.00)新規作成
'05/12/04(1.01)初回修正
'20/02/25(1.10)*.xlsm化、他
'***************************************************************************************************
Option Explicit
'===================================================================================================
Public swEnd As Boolean ' 終了フラグ
'***************************************************************************************************
' ■■■ ワークシート側からの呼び出し処理 ■■■
'***************************************************************************************************
'* 処理名 :TEST
'* 機能 :ユーザーフォームの表示コントロール
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2004年02月13日
'* 作成者 :井上 治
'* 更新日 :2020年02月25日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Sub TEST()
'-----------------------------------------------------------------------------------------------
Dim intIx As Integer ' フォーム種別判定(1 or 2)
' 初回はUserForm1を表示
intIx = 1
' 終了フラグがTrueになるまで繰り返す
Do Until swEnd
' フォーム種別判定
If intIx <> 2 Then
' UserForm1の表示
UserForm1.Show
' 次回はUserForm2が表示されるようにintIxをセット
intIx = 2
Else
' UserForm2の表示
UserForm2.Show
' 次回はUserForm1が表示されるようにintIxをセット
intIx = 1
End If
Loop
' 終了メッセージ
MsgBox "終了です。"
swEnd = False
End Sub
'----------------------------------------<< End of Source >>----------------------------------------
'***************************************************************************************************
' 2つのフォームを排他表示させるサンプル③ UserForm1(Class)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev 変更履歴内容------------------------------------------------------------------------>
'04/02/13(1.00)新規作成
'05/12/04(1.01)初回修正
'20/02/25(1.10)*.xlsm化、他
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
' ■■■ フォームイベント ■■■
'***************************************************************************************************
'* 処理名 :UserForm_QueryClose
'* 機能 :フォーム閉鎖動作
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(既定)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2004年02月13日
'* 作成者 :井上 治
'* 更新日 :2020年02月25日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'-----------------------------------------------------------------------------------------------
' ユーザー操作等での終了か
If CloseMode <> vbFormCode Then
swEnd = True
End If
End Sub
'***************************************************************************************************
' ■■■ コントロールイベント ■■■
'***************************************************************************************************
'* 処理名 :CommandButton1_Click
'* 機能 :「もうひとつのフォームに移る」ボタンクリックイベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2004年02月13日
'* 作成者 :井上 治
'* 更新日 :2020年02月25日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub CommandButton1_Click()
'-----------------------------------------------------------------------------------------------
Me.Hide
End Sub
'***************************************************************************************************
'* 処理名 :CommandButton2_Click
'* 機能 :「終了する」ボタンクリックイベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2004年02月13日
'* 作成者 :井上 治
'* 更新日 :2020年02月25日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub CommandButton2_Click()
'-----------------------------------------------------------------------------------------------
swEnd = True
Me.Hide
End Sub
'----------------------------------------<< End of Source >>----------------------------------------