プロが教えるわが家の防犯対策術!

同じシートにそれぞれ違うコードを2つ設定するとこは可能ででしょうか、
詳しい方、教えてください。

よろしくお願いします。

質問者からの補足コメント

  • 回答ありがとうございます。
    一つ目のコードが
    Private Sub Worksheet_Calculate()
    Dim cell As Range
    Dim result As Integer
    For Each cell In Range("F2:F12")
    If cell.Value = "確認必要" Then
    result = MsgBox("べんり帳が更新されております。" & vbCrLf & "差分を行いブック内の便利帳の修正をお願いします。", vbYesNo + vbExclamation)

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/04/23 13:44
  • If result = vbYes Then
    Call 便利帳差分
    Else
    End If
    Exit Sub
    End If
    Next cell
    End Sub

      補足日時:2023/04/23 13:44
  • 2つ目のコードが
    Private Sub Worksheet_Calculate()
    Dim cell As Range
    Dim result As Integer
    For Each cell In Range("K2:K12")
    If cell.Value = "確認必要" Then
    result = MsgBox("条例が更新されております。" & vbCrLf & "対象条例の「確認必要」をクリックし"& vbCrLf & "各条例を確認し、"& vbCrLf & "ブック内の条例を修正してください。", vbOKOnly + vbExclamation)


    Exit Sub
    End If
    Next cell
    End Sub

      補足日時:2023/04/23 13:45
  • うーん・・・

    回答ありがとうございます。
    私の補足を確認して頂き、解決方法を教えて頂けますでしょうか。
    よろしくお願いします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2023/04/23 14:01

A 回答 (5件)

2つのセル範囲において、それぞれ指定した語句が存在するかCOUNTIF関数で【1以上か否か】で判断し、その後の処理を各々で分岐すれ

ば宜しいのでは?
    • good
    • 0
この回答へのお礼

回答ありがとうございます

お礼日時:2023/04/23 14:41

Private Sub Worksheet_Calculateの機能を1シートに2個記述しても動きません。



複数個書けるのは、異なる機能の場合です。
    • good
    • 0

こんにちは



補足を見ると、イベント処理のコードのようですが、同じイベントに対する処理を複数記述すると、実行時に「同じ名前のプロシージャがある」としてエラーになります。

実行のタイミングは同じなのでしょうから、一つにまとめて記述してください。
まとめるのが嫌なら、それぞれを普通の異なる名称にしておいて、イベント処理のコードからそれぞれを呼び出すようにしてください。

※ 異なるイベントに対する処理であれば、当然ながら、複数記述することは可能です。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
参考にさせて頂きます。

お礼日時:2023/04/23 14:09

あるブックの特定のシートでいくつかの異なる作業をさせるコード(VBA)を設定することは可能です。

シートに設定されるイベント(シートを開く、セルを選ぶ、値を変更するなどなど)ごとの動作を書くことができますし、そのシートを含めたブック全体で動作するコードを書くことも可能です。
特定のシートのイベントに複数の動作を設定するときはイベントの内容を条件分岐させることで条件に合った動作コードを書くことが出来ます。例えば値を変更したとき何かをさせる場合は変更されたセルにより動作を分ければそれぞれの決められた動作を行うことが出来ます。
この回答への補足あり
    • good
    • 0

Private Subは機能毎に用意されてるので、複数機能を実装したい処理ではPrivate Subを複数書きます。



下図の様に、複数が並びます。

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!