RSSユーザー
エクセルの特定セル値でマクロを実行させる方法についてです。
お世話になっております。VBA初心者です。エクセル2016で、表示→マクロ記録でMacro1を作ったのですが、これをシート名「買注文」のセルA1=1になったら実行させるには、どうすればよいかお教えください。
2020年10月22日
アップロードされたファイルにはウイルスチェックを行っておりますが、未知のウイルス等に感染されている場合がありますので、アップロードされたファイルのご利用はご注意ください。
また、取引パスワード等の重要な情報を投稿内容に含めないようご注意ください。
なお、アップロードされたファイルの利用や投稿内容によって、投稿者自身や他の利用者が被った損害に対して当社は一切責任を負いません。
また、セキュリティの関係上、一部コマンド等を含む内容を送信するとエラー画面が表示され、投稿ができない場合がございます。何卒ご了承ください。
岡三RSS集いの広場では、複数の単語による検索が可能です。
例)関数 and サンプル
→AND検索となり、「関数」および「サンプル」を含む検索結果が表示されます。
例)関数 or サンプル
→OR検索となり、「関数」または「サンプル」を含む検索結果が表示されます。
例)関数 not サンプル
→NOT検索となり、「関数」を含むが「サンプル」は含まない検索結果が表示されます。
※and、or、notの前後は半角スペースで区切ってください。
※単語の間を半角スペースで区切るだけだと、OR検索となります。
大野 了
こんにちは!!
A1セルをどのように更新されてるのかわかりませんが、
手打ちやVBAでセルの値を直接変更するのであれば、
「買注文」シートのChangeイベント以下のように記述すればマクロを動かすことができます!!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 1 Then
If Target.Value = 1 Then Call Application.Run("Macro1")
End If
End Sub
もし、A1セルに計算式などが入っているのであれば、
「買注文」シートのCalculateイベント以下のように記述すればマクロを動かすことができます!!
しかし、この場合、A1セルは変化せずとも(ずーと1のまま)、
ほかのセルの再計算がかかった場合でも、マクロが動いてしまうのでご注意ください!!
もしマクロが動いてしまうことを避けたい場合は、
再計算の度に、A1セルを退避するなどして繰り返し動かないようにしてください!!
Private Sub Worksheet_Calculate()
If Range("A1") = 1 Then Call Application.Run("Macro1")
End Sub
2020年10月22日
RSSユーザー
Book1.xlsx (9.5KB)
すみません。セルA1は計算式です、いろいろ探して添付ファイルの文章を探したのですが、これをどうにかして、A1セルの退避など出来ないでしょうか、お教えください。
2020年10月22日
大野 了
A1は計算式なんですねー
なら、Calculateイベントでやるしかないですねー
Excelを拝見したのですが、このやり方でも大丈夫な気がしますが、
RSSユーザさんの環境ではうまくいかないという事でしょうかー?
2020年10月22日
RSSユーザー
すみません。これらのコードをどこに貼り付けてよいかわかりません。標準モジュールとか。
2020年10月22日
大野 了
マクロ実行.xlsx (15.9KB)
なるほどー
説明するよりサンプルを作った方が早かったので、サンプルを作りましたー!!
やり方は上げて頂いたやり方とは全く違うのですが、同じことはできます。
マクロ付きファイルがアップロードできないので、拡張子を変えてあります。
ダウンロード後、拡張子をxlsmに変更して開いてください!!
2020年10月22日
RSSユーザー
これで、となりでQUOTE関数の値がバンバン変わっていてもシート「買注文」のA1=1にならなければMacro1は実行されないわけですね!ほんとにありがとうございました。
2020年10月22日
大野 了
はい、他のセルが更新されて再計算が動いても、
大丈夫と思いまーす!!
このやり方で、RSSユーザさんのシートで、
うまくいくことを祈ります!!
2020年10月22日