[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Private Sub 複数』(落ち葉マーク)
皆様に教えていただきたい事がございます。
ぜひお力をお貸し願えますでしょうか。
VBAと言うのでしょうか、ある英文がございます。
それが
Private Sub Worksheet_Calculate()
If Range("O1").Value < 0 Then MsgBox "マイナスです" End If End Sub
Private Sub Worksheet_Calculate()
If Range("P1").Value < 0 Then MsgBox "プラスです" End If End Sub なのですがうまく作動してくれません。 解決策などありますでしょうか? エクセルはもとよりパソコン自体も得意ではないため 文面の意味もよくわかってません。 ただ該当のセル番地がマイナスならマイナスと 言ってくれるみたいなのですが、 私にはどうにも手を加えることが出来ません。 厚かましいお願いですが、どなたか修正していただけませんでしょうか? 何卒よろしくお願いしたいます。
< 使用 Excel:Excel2007、使用 OS:Windows10 >
> If Range("P1").Value < 0 Then > MsgBox "プラスです"
それ本当に正しい英文ですか?
普通、そういうケースでは、P1の値はマイナスなんですけど・・
(半平太) 2018/12/14(金) 19:31
Calculateイベントは、ろくに動かないから、ほとんど使ったことがない。
場所も特定できないし。
因みに、2007だとF9を押しても反応しない。
どこかに
=1+1
と入れてやればその時だけ反応するけど。
=1+1を入れたセルを編集状態にしてEntすれば、また反応はします。
なんか、再計算だと反応しない感じ??
(BJ) 2018/12/14(金) 19:40
P1セルの方は、プラスかどうかのチェックでいいなら・・
Private Sub Worksheet_Calculate() Dim Result
Result = [REPT("O1はマイナス ",O1<0)&REPT("P1はプラス",P1>0)] If Result <> "" Then MsgBox Result End If End Sub
(半平太) 2018/12/14(金) 19:48
Calculateイベントが使いづらいのは同感ですが、ろくに動かないと感じるのは再計算の考え方が違うからです。
そもそもF9「再計算」コマンドは(手動計算で一つでも計算元の値が変わっているなどして)実際に再計算が必要ないセルは再計算しません。
つまり「再計算」コマンドを実行しても、実際には再計算が必要なセルが一つもないならばExcelは再計算しませんからイベントも発生しません。
例外として揮発性関数がシート上に存在すると無条件で発生するようになります。
RANDとかNOWとか
再計算が必要なくても強制的に再計算を行いたい時は、Application.CalculateFullRebuildメソッドあるいはCtrl+Shift+F9を押す必要があります。
(名無し) 2018/12/14(金) 20:44
> VBAと言うのでしょうか、ある英文がございます。 英文ですか。コードとかプログラムとかいいますね。
最近、複数のイベントプロシージャを巡る質問が多いですが、不思議です。
さて、 (1) >なのですがうまく作動してくれません。 エラーが出るならエラーメッセージを正確に示してください。
(2)まず、そのコードをどこに書いていますか? 動かしたいシートに対応したシートモジュールに書いていますか?
(3)ひとつのシートモジュールの中に複数の同名のプロシージャを書くことはできません。 ひとつにまとめます。 Private Sub Worksheet_Calculate() If Range("O1").Value < 0 Then MsgBox "マイナスです" End If If Range("P1").Value < 0 Then MsgBox "プラスです" End If End Sub といった風にです。(内容は感知しません)
(γ) 2018/12/14(金) 21:11
(落ち葉マーク) 2018/12/14(金) 21:36
(γ) 2018/12/14(金) 21:39
End Sub
と言うコードというようなものが書いてあります。
この合計と言うのは以前勤めてた方に設定していただきました。
これを使う時も同様のエラーが表示されます。
質問の回答になってますでしょうか?
ご指摘お願い致します。
(落ち葉マーク) 2018/12/15(土) 01:35
>そもそもF9「再計算」コマンドは(手動計算で一つでも計算元の値が変わっているなどして)実際に再計算が必要ないセルは再計算しません。 つまり「再計算」コマンドを実行しても、実際には再計算が必要なセルが一つもないならばExcelは再計算しませんからイベントも発生しません。
有無を言わさず再計算するものと思ってました。 だから、15年以上使おうとも思ってなかった。 揮発性関数だけだったのか・・・。
>再計算が必要なくても強制的に再計算を行いたい時は、Application.CalculateFullRebuildメソッドあるいはCtrl+Shift+F9を押す必要があります。
単純な数式 =1+1 だと反応してくれなかった。
Calculateイベントへの認識が少し変わりました。 ありがとうございました。 (BJ) 2018/12/15(土) 01:57
> 質問の1ですがこのようなエラーがでます。 > 「実行時エラー 13 型が一致しません」 ということは、 同じプロシージャ名のものをひとつに統合されたあとの話ですね?
> If Range("P1").Value < 0 Then > の部分が黄色になってました。 そのときのP1セルには何が入っていますか?説明をお願いします。
合計プロシージャがエラーになる件についても、 エラーになった際に黄色くなっている箇所の具体的コードと 関係するセルの値を確認して示して下さい。
こちらからは貴方のPCは見えませんので、説明頂かなければ原因はわかりません。 (γ) 2018/12/15(土) 08:05
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.