|
▼ぴ〜こ さん:
うーん、まだはっきり分かっていませんが・・・・。
私の想像がかなり入った例です。
まず、シート1のシートモジュールでは、
'=====================================================
Private Sub Worksheet_Activate()
With UserForm1
If .Visible = False Then .Show vbModeless
End With
End Sub
'==============================================================
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With UserForm1
If .Visible = False Then .Show vbModeless
End With
End Sub
↑このコードでシート1がアクティブになったり、セルを選択したりした動作で
フォームが表示されます。
次にシート2では、
'===============================================================
Private Sub Worksheet_Activate()
Dim rng As Range
Set rng = Selection
If TypeName(rng) = "Range" Then
Call rng_chk_and_form_show(rng)
End If
End Sub
'===========================================================
Private Sub Worksheet_Deactivate()
UserForm1.Hide
End Sub
'===========================================================
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call rng_chk_and_form_show(Target)
End Sub
Sub rng_chk_and_form_show(rng As Range)
If rng.Column = 1 And rng.Columns.Count = 1 Then
UserForm1.Show vbModeless
Else
UserForm1.Hide
End If
End Sub
↑これらのコードでA列を選択したときのみフォームが表示されます。
最後にユーザーフォームのモジュールに今まで私が投稿したコードに追加として、
'================================================================
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
UserForm1.Hide
Cancel = True
End Sub
↑これで、シート1で選択したコンボボックスの内容が保持されます。
コマンドボタンのクリックで動作する仕様は変えていません。
こんな仕様では?
|
|