• ベストアンサー

プロシージャが実行されたかの有無の判断

Sub test() ・・・・・ IF ・・・・ then Call マクロ1 End If ・・・・・ ・・・・・ If testと言う名のプロシージャーの中でマクロ1と言うプロシージャーが実行されたなら Then MsgBox "マクロ1は実行されました" End If End Sub ということを実行したいのですがどうすればいいのでしょうか? マクロ1の実行条件自体が複雑でIf ~Thenの中に書ききれないので 実行の有無を値で返したりすることは不可能でしょうか? よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

下記が可能のようなので使えないかな。 条件を満たしたステップでFunctionProcedureの値をある値にセットする。 満たしてないことが決定したステップで他の値をセットする。 Function test01() If Cells(1, "A") = 1 Then test01 = 1 Else test01 = 2 End If End Function Sub test02() MsgBox test01 If test01 = 1 Then MsgBox "test01実行" Else MsgBox "test01実行せず" End If End Sub

sdfdfadgh
質問者

お礼

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

その他の回答 (2)

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.3

>マクロ1の実行条件自体が複雑でIf ~Thenの中に書ききれないので いくら実行条件が複雑だとしてもその条件で実行させなければいけないのですよね? なら上記文言は意味不明では? ま、それは置いといて Sub test() ・・・・・ IF ・・・・ then Call マクロ1 MsgBox "マクロ1は実行されました"  '●ここに入れたらいいのでは? End If ・・・・・ ・・・・・   以上。  

sdfdfadgh
質問者

お礼

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

noname#140971
noname#140971
回答No.1

Private Sub CommandButton1_Click()   Dim isTest2DO As Balloon   Dim Q    AS Integer   Q = 0   If Q = 0 Then     Test2     isTest2DO = True   End If   If isTest2DO Then     MsgBox "マクロ1は実行されました"   End If End Sub Public Sub Test2()   MsgBox "Test2" End Sub しかし、普通は次のように書くでしょう。 Private Sub CommandButton1_Click()   Dim Q    AS Integer   Q = 0   If Q = 0 Then     Test2     MsgBox "マクロ1は実行されました"   End If End Sub

sdfdfadgh
質問者

お礼

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