[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文字と計算式の違い』(フク)
こんにちは!いつもお世話になっております。
以前のものなのですが・・・ [[20050115131721]]『条件式書式を6つやりたいんですが・・・』(sirouto)
で実際に試みたところ セルに文字で入力すると、すぐに反映されるのですが セルに計算式で文字を表示させる場合、文字が一致していても反映されません。 対象セル(計算式入り)にF2→Enterすると反映されるのですが、、、 これはどういう現象なのでしょうか?? どうすればすぐに反映されるのでしょうか
Changeイベントは、Valueプロパティの設定値を変更した時に発生するとされていますが、 数式の結果でValueが変わった時は「設定値の変更」とはみなされない様です。
ところで、 (1)それはどんな数式ですか? (2)どこに入力されているのですか?
(半平太) 2009/10/15 15:23
なるほど。やはりダメですか。。
マクロはそのまま引用させて頂いております。
Private Sub Worksheet_Change(ByVal Target As Range) '変数宣言 Dim colr As Integer Dim c As Variant If Target.Count > 1 Then Exit Sub If Target.Column <> 1 Then Exit Sub For Each c In Target Select Case c.Value Case "さる" colr = 3 'ここの色番号をお好きなように Case "くま" colr = 5 '々 Case "とり" colr = 6 '々 Case "いぬ" colr = 4 '々 Case "ねこ" colr = 8 '々 Case "あゆ" colr = 7 '々 Case Else colr = xlNone End Select c.Interior.ColorIndex = colr Next c End Sub
で、Sheet1のA1に簡単な計算式を =IF(ISERROR(VLOOKUP($B1,$D$1:$E$6,2,FALSE)),"",VLOOKUP($B1,$D$1:$E$6,2,FALSE))
VLOOKUP範囲は D1に 1 E1に さる D2に 2 E2に くま D3に 3 E3に とり D4に 4 E4に いぬ D5に 5 E5に ねこ D6に 6 E6に あゆ
B1に1〜6を打ち込むことでA1がE1〜E6のどれかに該当。 としております。
(フク)
TargetセルはB1なのでは?・・・If Target.Column <> 1 Then Exit Sub を変えれば・・・
・・・・。 ハッ! たしかにこれだとそうなってしまいますね、、 例えばなのでB列は考えないで欲しいです(^-^; 私の誤りでございます。スイマセン。。
あくまでA列に計算式があった場合の処理の仕方についてが疑問なのです。はい。。
(フク)
A列に =IF(ISERROR(VLOOKUP($B1,$D$1:$E$6,2,FALSE)),"",VLOOKUP($B1,$D$1:$E$6,2,FALSE)) の数式があるとしてB1,$D$1:$E$6の値が変化した時にA列の値も変化するので TargetセルはB1($D$1:$E$6)なのでは? >あくまでA列に計算式があった場合の処理の仕方についてが疑問なのです。はい。。 Calculateイベントでも良いのかな・・・?
「とにかく動けばよい」って事なら 特に申し上げる事はありませんが そうでないなら、たとえ話ではなく 現状をしっかり説明されるのが良いと思います。
(HANA)
なんとお呼びすれば宜しいか悩みますが・・・
あまり詳しくは無いので間違っていましたら申し訳ございません。 Calculateイベントでも何でも構わないのですが F9を押しても再計算はされないので・・・ ご教授宜しくお願い致します。
HANA様フォローありがとうございます。 とにかく動けばよい・・・・。平たく言えばそうなのですが、、(=_=;
たとえ話はしていないつもりですが、誤解があるようなので訂正させていただきます。 私が上記で転記致しましたマクロを活用させて頂いた所 文字入力ですと反映されるのですが計算式で結果を出力させると反映されません。 1.これは何故でしょうか? 2.計算式でも反映させる為にはどうすれば宜しいのでしょうか?
これが元々の質問内容になります。
(フク)
>・・・・ >で、Sheet1のA1に簡単な計算式を >=IF(ISERROR(VLOOKUP($B1,$D$1:$E$6,2,FALSE)),"",VLOOKUP($B1,$D$1:$E$6,2,FALSE)) >・・・・ >例えばなのでB列は考えないで欲しいです(^-^;
たとえ話ではなく、実際はどうなっているのですか?
>1.これは何故でしょうか? 半平太さんが書いて居られますが そう言うコードだからです。
>2.計算式でも反映させる為にはどうすれば宜しいのでしょうか? どうするのが良いのかは、どうなっているかによって変わってくると思います。
(HANA)
えっと。 A1セルのvalueがかわったときに動くマクロがあり得るなら ほかのセルのvalueがかわったときに動くマクロがあってもイイと思いませんか?
A1セルの値はいつ変わるんだろうと考えると、、、なにもしなければ変わらないはずだから、、、 数式が参照しているセルのvalueを手入力で変えたとき と思いつきます。 =IF(ISERROR(VLOOKUP($B1,$D$1:$E$6,2,FALSE)),"",VLOOKUP($B1,$D$1:$E$6,2,FALSE)) この式だと B1や D1〜E6 を変えたときですね。
> 2.計算式でも反映させる為にはどうすれば宜しいのでしょうか? B1やD1〜E6のvalueがかわったときにA1の背景色を変更するコードを書けば宜しいかと。
−佳−
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.