アプリ版:「スタンプのみでお礼する」機能のリリースについて

セルに「ある条件」を満たしたら登録したマクロが実行されるようにしたいのですが可能でしょうか?

「ある条件」→たとえばIF関数の結果が真だったら

すみません、エクセル初心者なのでどなたか教えて下さい。

A 回答 (3件)

こんにちは。

KenKen_SP です。


1.【シートモジュールで条件判定し、マクロを起動する】

通常はこちらの方法が使われます。

Private Sub Worksheet_Change(ByVal Target As Range)

  '変化のあったセルがA1セルか?
  If Target.Address = "$A$1" Then
    
    '条件判定:A1セルの値は 1 か?
    If Target.Value = 1 Then
      MsgBox "A1セルは条件を満たしました"
    End If
  
  End If

End Sub


2.【ワークシート上で条件判定し、マクロを起動する】

処理内容にもよっては不向きな場合もありますが、こんな方法も
あります。

マクロを Sub ではなく、Function 、、つまり関数にしてしまいます。

Function TestMacro() '<-- Sub を Function に替える

  MsgBox "A1セルは条件を満たしました"
  TestMacro = "" '戻り値はなし

End Function

そして、ワークシートの B1 セルに次の式を入力します。()は必須
です。

 =IF(A1=1,TestMacro(),"")

これで、A1 に 1 を入力するとマクロが起動します。

しかし、、、計算式をユーザーに消される恐れが、、、
    • good
    • 2
この回答へのお礼

丁寧にご説明いただいてありがとうございます。
エクセルをさわりだして間が無いので分からないことばかりです。奥深いですね~。
NO.1の方も同じ方法で教えてくださっていますので、チャレンジしてみます。
まずVBA勉強しなくっちゃ!

また分からないことがあったらお願いいたします。

お礼日時:2005/07/01 11:32

No1です。



失礼しました。

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A2") = True Then Call 実行するマクロ
End Sub

です。
    • good
    • 1
この回答へのお礼

早々に回答いただいてすみません。ありがとうございました。頑張ってトライしてみますね。
エクセル初心者なので、わからないことだらけです。
おしえていただいたのって、VBAっていうんですよね。
チョッとそこから勉強してみます。

また教えてくださいネ。

お礼日時:2005/07/01 11:38

仮にA2セルに


=IF(A1>0,TRUE)という式がある場合

そのシートのチェンジイベントで

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A2") = True Then Call 実行するマクロ
End Sub

にしておけば、A1セルに入力した際、値をA2が判断してTRUEであれば「実行するマクロ」が作動します。
    • good
    • 3

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A