プロが教える店舗&オフィスのセキュリティ対策術

初心者です。愚問かもしれませんが、よろしくお願いします。
さて、質問です。あるセルに入力された値に応じて、特定のマクロを起動したり、しなかったり、というような関数はないでしょうか? つまりシート内の関数によってマクロを起動できないでしょうか?

A 回答 (3件)

A1に1が入力されたときにMacro1を実行したいのあれば、次の手順で出来ます。



マクロの定義の Sub Macro1() を Function Macro1()に変更。
A1以外のセルに =if(A1=1,Macro1(),0) と入力する。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=511760
    • good
    • 1
この回答へのお礼

ありがとうございました。
何とか解決しました。

お礼日時:2003/05/04 22:08

こんにちは。

maruru01です。

関数でマクロを操作することは出来ません。
セルに入力された値に応じてマクロを起動させたり、させなかったりする簡単な方法は、マクロの一番最初に条件分岐を入れる方法です。


Sub Macro()

  If Range("A1").Value <> "実行" Then
    Exit Sub
  End If

  'ここからマクロの内容を記述

End Sub


この場合は、マクロを実行すると、最初にセル(上記だとA1)の値を確認して、条件に合わなければExitでマクロを終了します。
もし、セル入力後すぐにマクロを起動したいなら、そのシートのChangeイベントにマクロの内容を記述します。
    • good
    • 2

関数では思いつかないのですが、下記のようにマクロで制御することは可能です。

これはファイルを開いた時に、Sheet1のA1セルの値によって実行するマクロが変化します。

Sub Auto_Open()
  Select Case Sheets("Sheet1").Range("A1").Value
    Case 1: Call Macro1 'Macro1を実行
    Case 2: Call Macro2 'Macro2を実行
    Case 3: Exit Sub 'マクロを実行しない
End Select
End Sub
Sub Macro1()
  MsgBox "Macro1を実行します"
  'Macro1の処理
End Sub
Sub Macro2()
  MsgBox "Macro2を実行します"
  'Macro2の処理
End Sub
    • good
    • 0

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

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


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