- VBAなんでも質問スレ
721 :デフォルトの名無しさん[sage]:2014/07/08(火) 09:12:52.62 ID:2n5wMRln - >>720
そういう言葉での説明じゃなくて 実際のコードを晒せってことだと思うよ
|
- Excel VBA 質問スレ Part34
108 :デフォルトの名無しさん[sage]:2014/07/08(火) 10:12:36.38 ID:2n5wMRln - >>104
Range("A4").Value + Range("C4").Value = Range("E4").Value は文法的に間違ってる Range("E4").Value = Range("A4").Value + Range("C4").Value という書き方ならIf関係無しに書ける。(というかこれは当たり前の書き方) これは端的に言って「そういうルール(文法)だから」としか言いようが無い。 「代入は常にイコールの右からイコールの左の方向で行う」という決まりだから、 イコールの左側には一個の変数(あるいはオブジェクト)しか置けない。 (そうじゃないと右辺の演算結果(あるいは評価結果)が代入出来ないでしょ。) つまり、あなたの言う算数的な書き方(A+B=Cの書き方)はVBAのルール上認められていない。
|
- Excel VBA 質問スレ Part34
111 :108[sage]:2014/07/08(火) 12:01:55.31 ID:2n5wMRln - >>110
あ、ごめん安価ミスってた。 >>108は>>105宛でした。
|
- Excel VBA 質問スレ Part34
115 :デフォルトの名無しさん[sage]:2014/07/08(火) 14:58:05.12 ID:2n5wMRln - >>114
>ここの部分がわかりません。 > >If Range("E4").Value = Range("A4").Value + Range("C4").Value Then > >の場合の"="も代入になると言ってる訳ですよね? 違うよ>>101はそんな事言ってない >>101は >例えば > 変数1 = 変数2 = 変数3 >だと、後者の=が比較演算で、変数2と変数3が同一値ならTrue、違えばFalseを変数1に代入する という部分で言及してるけれど、 この二つのイコールが入った文は最初の(変数1 = の)イコールは代入だけど、 次のイコールは比較になってるの。 だから、Ifの中にも代入のイコールがあるということではなくて、 Ifが無い比較演算子のイコールも存在するといってるんだよ。 IfのなかでThenの前には比較演算子としてのイコールしかないと思うよ。 (Then以降には代入のイコールが入る) というか君自身はあっさりスルーしてるけれど 一連の質問の中で一番間違ってた部分は A + B = C という書き方自体なわけで まずそこが間違ってることを理解することが一番肝心だと思うよ。
|