
インターネット上にあった 下記のVBプログラムをエクセルで使用しているのですが、
セルの変化を数値入力後、「エンター」を押さなければ認識しません。
『 ='Sheet2'!N13 』のように他のシートから数値を取り、その変化で、
メッセージボックスを起動させたいのですが、上手くいかないのです。
何方か、対処方法、宜しく御願いします。
:
次のサンプルは、値を変更したセルがセルA1~B5に含まれる場合にのみ、
メッセージボックスを表示します。
対象とするワークシートのシートモジュールに記述してください。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:B5")) Is Nothing Then
Exit Sub
Else
MsgBox "セルの値が変更されました"
End If
End Sub
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんばんは。
少し、質問に疑問があります。
>『 ='Sheet2'!N13 』のように他のシートから数値を取り、その変化で、
>メッセージボックスを起動させたいのですが、上手くいかないのです。
>セルの変化を数値入力後、「エンター」を押さなければ認識しません。
これって、Sheet2のN13が自動的に、値が変動するのでしょうか?
言い換えると、Enterなしで、イベントを感知するものではありませんか?
私の勘違いでなければ、かなり、昔からある質問です。Microsoft にも載っていた質問です。昔ですと、DDEから入ってくる値を監視するという類のものです。
今は、ActiveX コントロールにそういうものがありますね。
そういう場合は、Class 側から、新しいイベントを作ってあげ、APIタイマーで常に、セルを監視するそうです。しかし、古い方法(2000以降)の方法としては、=Now()を見えない所に置き、Worksheet_Calculateイベントを取ります。2000より以前ですと、OnCalculate メソッドを使っていました。
どういうものか、もう少し詳しく教えてください。
もし、私の書いている内容が的外れなら、無視して構いません。
DDE、ActiveX コントロール、まだ、不勉強な未知の領域のものなので、
セルや値の変化をどのように処理しているのか、申し訳ない状態なのですが、
今回の事で、計算式によって起動するものと、セルの変化によって起動する
ものがあることを理解しました・・・
現状は、Worksheet_Change をWorksheet_Calculate に変化させ、
無事、起動しております。画面の左下の準備完了の表示が繰り返し、点滅するため、
プログラムが絶えずセル、計算式の変化の監視状態にあるのかもしれませんが、
この件に関しての不具合、負荷などがなければ何とかなりそうです。
コメントありがとうございました。
No.2
- 回答日時:
シート2のN13の値変更でシート1にメッセージを表示したいというのであれば下記方法で可能です。
sheet2のシートモジュールに下記をコピペで可能です。
シートモジュールと標準モジュールの違いを理解して下さい。
http://vbae.odyssey-com.co.jp/column/no15_1.html
上記サイトに記載していますが、VBAprojectのsheet2をWクリックするとsheet2のシートモジュールが表示さます。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("N13")) Is Nothing Then
Exit Sub
Else
Worksheets("sheet1").Activate
MsgBox "セルの値が変更されました"
End If
End Sub
オブジェクト、フォーム、モジュール、それぞれの知識に曖昧な部分があり、いざ、プログラムを走らせるとデバックを必要とされることが多々あるのですが、参考となりました。このまま使用出来そうなので、助かりました。ありがとうございます。
No.1
- 回答日時:
Private Sub Worksheet_Changeで取得するTargetは実際に変更したセルになります
質問の内容であれば'Sheet2'!N13がTargetセルになります
参照元と参照先の関係はややこしいのですが
http://veaba.keemoosoft.com/2012/12/233/
↑
これが参考になれば
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
病院側から早く来てくださいと...
-
Excel 数値の前の「 ' 」を一括...
-
彼女のことが好きすぎて彼女の...
-
血液検査の結果が悪くefgrの値...
-
風俗店へ行く前のご飯
-
リンク先のファイルを開かなく...
-
VLOOKUP関数を使用時、検索する...
-
2つの数値のうち、数値が小さい...
-
小数点以下を繰り上げたものを...
-
EXCELで条件付き書式で空白セル...
-
値が入っているときだけ計算結...
-
腕を見たら黄色くなってる部分...
-
アクエリアスが苦く感じる
-
Excel 0目標に対して数字があ...
-
Excelグラフのラベルオプション...
-
MIN関数で空白セルを無視したい...
-
化合物のモル吸光係数データベ...
-
勃起する時って痛いんですか? ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
血小板増加について
-
彼女のことが好きすぎて彼女の...
-
Excel 数値の前の「 ' 」を一括...
-
病院側から早く来てくださいと...
-
VLOOKUP関数を使用時、検索する...
-
腕を見たら黄色くなってる部分...
-
値が入っているときだけ計算結...
-
リンク先のファイルを開かなく...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
小数点以下を繰り上げたものを...
-
一番多く表示のある値(文字列...
-
MIN関数で空白セルを無視したい...
-
勃起する時って痛いんですか? ...
-
エクセルで空白セルを含む列の...
-
増減表のプラスマイナスの符号...
-
【Excelで「正弦波」のグラフを...
-
エクセルで数式の答えを数値と...
おすすめ情報