• ベストアンサー

セルに入力するたびにマクロを実行する

タイトルにある通りなのですが、 今作っているエクセルファイルで、if文などを使いたかったため、VBAを使用しました。 プログラム自体は問題ないのですが、できれば入力するたびにマクロが実行されるように設定したいと考えています。 簡単なやり方があればお願いします!

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

言っている意味がよくわかりませんが、ワークシート上のセルに入力があった場合にマクロが実行されればいいのですね? ならば、そうしたいワークシートのタブを右クリックし、出てきたシートのモジュールに Private Sub Worksheet_Change(ByVal Target As Range) Call 実行したいマクロ名 End Sub としてみてください。

その他の回答 (2)

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

初心者でも、発想は、頭の中で、「何何したら、何々してほしい」と発想します。これは自然なんですが、コンピュタが扱うとなると、非常に精緻な仕組みを整え、ユーザーに使えるようにしてくれないと実現しません。パソコンのハード・ソフトが進化し、15年ぐらい前からウンドウズ3.1ごろになって、イベントという形で使えるようになりました。 ワークシートでは値のChangeやセルの選択変更などの機会に知らせて、ユーザーにプログラム実行制御権を渡してくれます、などです。 前者が Private Sub Worksheet_Change(ByVal Target As Range) 処理するコード End Sub です。 がしかし、ユーザーはキーボードやマウスで色々な操作をしますので なかなか、仕組みの深いところを知らないと、使うのは危険だと思います。 先日も、DELETEキーを押したことを捉えるにはどうするか、などの質問など出ています。 自分が自身で操作する業務あたりに(イベントプロシージュアーの)使用を限定するか、VBAを超えて、クラス化やAPI関数という分野まで勉強するかになるのですが、プロを目指すか、判った指導者でもいないと後者は難しいと思う。一部のイベントはそういう心配が不要なのもありますが。 小生の自戒の意味でもそう思う。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

シートのChangeイベントで作成したマクロを呼び出せばいいと思います Private Sub Worksheet_Change(Target as Range)   Macro1 End Sub といった具合です

関連するQ&A