
超初心者です。
セルの値が変化したときにマクロが実行されるようなものを作りたいです。
セルに入力されているのは、”関数”です。
なので、関数の”戻り値”が変化したときにマクロを実行したいのです。
今は、戻り値が変化しても式自体が変わっていないため
マクロが実行されません。
(セルの式を切り取ってもう一度貼りなおせば、マクロは実行される)
ちなみに今は
Private Sub Worksheet_Change(ByVal Target As Range)
で書いています。
まずVBAの勉強をしろと言われてしまいそうですが><;
何卒アドバイスのほどよろしくお願いいたします!
No.2ベストアンサー
- 回答日時:
セルの数式が計算された時に実行されるイベントプロシージャとして
Worksheet_Calculate イベントがあります。
これを活用されると良いでしょう。
監視対象セル以外のセル範囲に数式が設定されていると、その再計算時にもイベントが発生しますので
別に作業用シートを用意したほうが無難。
例えば Sheet1 の X10 セルの関数の戻り値を監視したい場合。
1)新規シートを追加して、監視用シートとする。
2)追加した監視用シートの A1 セルに 数式で =Sheet1!X10 ..などのように監視対象のセルを参照。
3)監視用シートのシートモジュールに以下のプロシージャを置く。
Private Sub Worksheet_Calculate()
If Range("A1").Value <> Range("B1").Value Then
Range("B1").Value = Range("A1").Value
MsgBox "change"
End If
End Sub
基本的に、Sheet1 の X10 セルの数式が計算されて値が変化した時にCalculateイベントが発生しますが、
数式の内容によっては、値が変わらなくてもCalculateイベントが発生するケースもあります。
また、Sheet1の行削除や挿入時などでもCalculateイベントは反応します。
なので前回計算時の値を別セルに記憶させておいて、値を比較する必要があります。
前述の例では、A1に参照数式があるとして、B1セルを記憶用セルとして使うようにしています。
ご回答いただきありがとうございます。
Worksheet_Calculate イベントですか!
最近イベントプロシージャについて勉強をはじめたばかりで
calculateイベントについて知りませんでした。
ためしたところ、ばっちりです!できました^^
要領を得ない質問にも関わらず、丁寧なご回答を
ありがとうございました。
大変勉強になりました。
No.3
- 回答日時:
こんばんは。
>関数の”戻り値”が変化したときにマクロを実行したいのです。
何がイベントの信号となるのか、書かれていませんので、私も#1さんと同様、はっきりとこれが良いとは言えません。
>Private Sub Worksheet_Change(ByVal Target As Range)
このイベントは、入力のEnter キーに対して反応するものです。
#2さんとは重複しますが、
Private Sub Worksheet_Calculate()
は、まさしく、Calculate の信号が発せられた時です。
リアルタイムスプレッドシート(RSS)は、この範疇に入ります。Calculateイベントは、私の記憶では、=Now()関数を、同じシートのどこかに置いておくと、値の変化に対してイベントが発生します。これは、OnDataイベントの代わりの役目があります。
OnDataイベントとは、DDEやOLEが入ってくるのを監視する役目を持っています。
'ローカルモジュールに入れる
Worksheets("Sheet1").OnData = "ValidateData" '←反応するマクロ名を入れます。
もう少し、詳しいお話があると、直接の回答に結びつくはずです。
ご回答いただきありがとうございます。
リアルタイムスプレッドシート…
はじめて聞きました。
なにぶん初心者なもので、かなり難しいですが
今からいろいろ調べてみたいと思います。
大変勉強になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/04 10:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/07/05 09:30
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/03 16:07
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/10/03 09:55
このQ&Aを見た人はこんなQ&Aも見ています
-
Calculateイベントでセルを指定したい
Word(ワード)
-
Private Sub Worksheet_Calculate()のことでお聞きします
Excel(エクセル)
-
他のシートの特定のセルが変わると、自動実行されるマクロについて
Excel(エクセル)
-
-
4
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
5
【Excel VBA】セルの値が変更されたらマクロを実行
その他(Microsoft Office)
-
6
EXCELでセルの値が変化したときだけにマクロ実行
Excel(エクセル)
-
7
VBA Private Sub Worksheet_Calculate()
Access(アクセス)
-
8
エクセル マクロの実行について
Excel(エクセル)
-
9
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
10
セルの値が変ると自動でマクロが実行される。
その他(Microsoft Office)
-
11
Worksheet.Change イベントを他のシートにも反映させる方法?
Visual Basic(VBA)
-
12
エクセルのマクロをセルの値に応じて自動起動したい
Visual Basic(VBA)
-
13
IF関数を使ってマクロを実行させるには?
Excel(エクセル)
-
14
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
15
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
16
エクセル Worksheet_Calculate
Visual Basic(VBA)
-
17
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
18
Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる
Visual Basic(VBA)
-
19
動的配列が存在(要素が有る)か否かを判定できますか?
Visual Basic(VBA)
-
20
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
任意フォルダから画像をすべて...
-
エクセルvbaで、別シートの最下...
-
i=cells(Rows.Count, 1)とi=cel...
-
ExcelVBAを使って、値...
-
Excelで指定した日付から過去の...
-
【VBA】シート上の複数のチェッ...
-
任意フォルダから画像をすべて...
-
エクセルvbaのワークシート関数...
-
【Excel】指定したセルの名前で...
-
特定のセルが空白だったら、そ...
-
EXCELのVBA-フィルタ抽出後の...
-
Word版VBで表の任意の箇所を...
-
Application.Matchで特定行の検索
-
Excel VBA、 別ブックの最終行...
-
VBAでセルをクリックする回...
-
【Excel VBA】指定行以降をクリ...
-
DataGridViewでコードで値を入...
-
EXCELで変数をペーストしたい
-
VBA初心者です。結合セルを保持...
-
Excelに保存されているユーザー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
特定のセルが空白だったら、そ...
-
VBA実行後に元のセルに戻りたい
-
【Excel VBA】指定行以降をクリ...
-
任意フォルダから画像をすべて...
-
【Excel】指定したセルの名前で...
-
VBAでセルをクリックする回...
-
【VBA】シート上の複数のチェッ...
-
Excelのプルダウンで2列分の情...
-
EXCELのVBA-フィルタ抽出後の...
-
Excel vbaで特定の文字以外が入...
-
”戻り値”が変化したときに、マ...
-
TODAY()で設定したセルの日付...
-
ExcelのVBAで数字と文字列をマ...
-
VBA ユーザーフォーム ボタンク...
-
Excel VBA マクロ ある列の最終...
-
Excel VBA、 別ブックの最終行...
おすすめ情報