|
▼こぼらー さん:
こんばんは。
>質問させていただきます。
>
>あるシートをDeactivateになった際に入力内容をチェックするVBAを作成しています。
>
>【処理】
>1.sheet1内のセル内容を編集します。
>2.sheet2を選択します。
>3.sheet1内の入力内容をチェックします。
>
>【困ってること】
>2.を実行した時点でsheet2が表示され、sheet2を表示したままエラーメッセージボックスが表示されます。チェック処理が終了した時点でsheet2へ遷移するのが、ベストなのですがよい方法はあるでしょうか?
新規ブックの
Thisworkbookのモジュールに
'============================================
Private oldsht As Object
'======================================================
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim retcode As Long
If oldsht.Name = "Sheet1" Then
Application.EnableEvents = False
oldsht.Activate
retcoide = 0
For idx = 1 To 3
If Cells(idx, 1).Value <> idx Then
retcode = 1
MsgBox "入力が未完です"
Exit For
End If
Next
If retcode = 0 Then Sh.Activate
Application.EnableEvents = True
End If
End Sub
'===============================================================
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Set oldsht = Sh
End Sub
として下さい。
上記のコードは、
シートSheet1のセルA1,A2,A3にそれぞれ1,2,3と入力されていないと
シートの切り替えができない仕様です。
試してみて下さい。
|
|