• ベストアンサー

エクセルのマクロをセルの値に応じて自動起動したい

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

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

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

A1に1が入力されたときにMacro1を実行したいのあれば、次の手順で出来ます。 マクロの定義の Sub Macro1() を Function Macro1()に変更。 A1以外のセルに =if(A1=1,Macro1(),0) と入力する。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=511760
hkom007
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 関数でマクロを操作することは出来ません。 セルに入力された値に応じてマクロを起動させたり、させなかったりする簡単な方法は、マクロの一番最初に条件分岐を入れる方法です。 Sub Macro()   If Range("A1").Value <> "実行" Then     Exit Sub   End If   'ここからマクロの内容を記述 End Sub この場合は、マクロを実行すると、最初にセル(上記だとA1)の値を確認して、条件に合わなければExitでマクロを終了します。 もし、セル入力後すぐにマクロを起動したいなら、そのシートのChangeイベントにマクロの内容を記述します。

全文を見る
すると、全ての回答が全文表示されます。
  • wildcard
  • ベストアンサー率54% (54/100)
回答No.1

関数では思いつかないのですが、下記のようにマクロで制御することは可能です。これはファイルを開いた時に、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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELでワークシートを検索して値を返したい。

    こんばんは。 いろいろ調べてみたのですが、わからなかったので質問させていただきます。 EXCELで「111」「222」「333」「444」「555」という五つのワークシート名を持つブックがあります。 「111」のシートのセル"A1"に,"222"と入力すると、隣のセル"A2"にシート「222」の特定のセルの値(例えばC20のセルの値)を返し、セル"A1"に「555」と入力するとセル"A2"にシート「555」の特定のセルの値を返すといったものを作るには、どうしたらいいんでしょうか? できれば関数だけで作りたいのですが、もしむりならマクロではどういうコードになるのでしょうか? よろしくお願いします。

  • セルの値変更でマクロ実行

    セルに値を入力すると、他のシートで演算され結果がセル"A1"にTRUE、FALSEと表示される関数式ができています。 セル"A1"の変化によりマクロ実行させたいと思います。プログラムの案をお願いします。

  • セルの値が変ると自動でマクロが実行される。

    セルの値が変ると自動でマクロが実行されるVBAを教えて下さいm(_ _ )m 例えば、シート1のA1の値が変ると、マクロAが実行される。 シート1のA2の値が変ると、マクロBが実行される。 と一つのシート内に複数のイベントを設置したのですが、イマイチわかりません。 知恵をお貸し下さい。

  • Excelのマクロでシートを表示させる方法を教えて下さい

    初心者ですみません。 エクセルでsheet1の特定のセルに入力した値と同じ名前のシートを表示させるマクロを作成したいのですが、どうすればいいか教えて下さい。

  • エクセルのマクロについて

    QNo.3421130で質問させて頂いた件の続きなのですが 入力シート(1)のA1に入力された値を、シート2のB1に表示(つまりB列の同じ行数のセルに表示)するというマクロをお教え頂き、早速実践してみましたが、入力シートA1に入っている値が入力シートA10から算出された値(例:A11に日付の2007/10/18と入っていて、A10にはMONTH関数で10だけを抽出している。そのA10の値10をA1が参照している状態やIF関数で反映された値等)がシート2に表示されません。 また本マクロは入力シート(1)とシート2の同じ行列のセルの表示しか出来ませんが、たとえば入力シート(1)のA2セルの値をシート2のB4に表示(任意で表示位置を変更する方法、シート2の反映セルを下へずらす等)が分りません。 以下、お教え頂いたマクロです。 Private Sub Worksheet_Change(ByVal Target As Range)  If Target.Column = 1 Then    Sheets("Sheet2").Cells(Target.Row, "B").Value = Target.Value  End If End Sub 続きの質問であることと、説明が分りにくく大変申し訳ありません。 非常に困っております。よろしくお願いします。

  • セルの値が●ならば▲のマクロを自動で実行

    エクセルで、セルの値が●ならば▲のマクロを自動で実行するということはできるのでしょうか? セルの値が●月(TODAY関数)なら、自動的に置換をするように設定したいのです。

  • エクセルのマクロで任意のセルに他のシートのセルの内容を入力したい。

    初心者のhaasan99と申します。 エクセルのマクロを利用して、任意のセルに特定のセルに入力している内容を入力したいのです。 任意のセルと特定のセル(たとえばA1)が同じシートの場合は、下記のマクロで実行できました。 ActiveCell.Value = "=$A$1" 特定のセルが他のワークシートの場合でもできる方法があるでしょうか。(たとえば、任意のセルがワークシート1で特定のセルがワークシート2) 参考書を調べていろいろやってみましたが、うまくいきませんでした。 どうぞよろしくお願いします。

  • エクセルのマクロで、セルの値を参照してジャンプ

    エクセルのマクロで、セルの値を参照して、 別シートにジャンプして貼り付けたいと思っています。 <Sheet1>  |  A  B  C ------------------------------------ 1|  A1  あ  100 2|  B5  い  50 3|  C7  う  80 4|  D3  え  20 5|  E9  お  40 <Sheet2>  |  A  B  C  D  E ------------------------------------ 1|  あ 2|  100 3|         え 4|         20 5|    い 6|    50 7|       う 8|       80 9|            お 10|            40 といったイメージです。(お分かり頂けますか?) Sheets1!B1:C1を選択し、A1のセルの値を参照して、Sheets2!A1にジャンプして、 行列入れ替えて貼り付ける、といったマクロを組みたいのですが、 セルの値を参照する部分が分かりません。 実際はSheets2の様なシートは複数あり、1つのリストから複数の形式を変えた表を 作りたいと思っています。 Sheets2以降のシートに見出し行を加え、VLOOK関数を組み込んだ表を作っておき、 結果を貼り付けて見出し行を削除する、といったマクロは組めるのですが、 セルを参照してジャンプして貼り付けてくれると便利だと思い質問させて頂きました。 どなたかお知恵を拝借できましたら嬉しいです。 宜しくお願い致しますm(_ _)m

  • エクセル マクロを使用してのセル内の値消去

    win2000 officeXpです。 現在、マクロを使用して複数のシートの特定セル内の値を消去するマクロを Sub データ消去() Worksheets("A").Range("B5:AF9").ClearContents Worksheets("B").Range("B5:AF9").ClearContents End Sub のようにしていますが、これではセルに挿入していたコメントが消去されません。 コメントも消去する方法はあるのでしょうか。  また、この方法があればもっと便利なんですが、このマクロにあるセル(B5:AF9)はロックがはずされていますので、それぞれのシート内のロックがはずされているセルを探し出し、そのセルの値とコメントを削除できるようなマクロはあるのでしょうか? よろしくお願いします。

  • EXCEL のマクロを作りたいんですが・・・

    マクロはあまり詳しくありません。マクロの記憶で設定し、多少内容の変更をする程度です。 マスターのBOOKがあり、月ごとにデータを入力し、その都度名前を付けて保存します。 (データの量はまちまちです) Sheet1にデータを入力し、Sheet2には関数が入っております。 使いたいのはSheet2にあるデータなのですが、データが無い欄は関数が入っていますので、そのままではデータとして使うのが面倒です。 CSVで出力するにしても、空の関数の欄が,,,,と出ます。 データが入っているセルだけを範囲指定して、値の貼り付けをし、使用していない空のセルの関数を消すというマクロが出来るでしょうか?