[[20091015134805]] 『文字と計算式の違い』(フク) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字と計算式の違い』(フク)

 こんにちは!いつもお世話になっております。

 以前のものなのですが・・・
[[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.