トップページ > プログラム > 2014年07月08日 > 2n5wMRln

書き込み順位&時間帯一覧

18 位/202 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000001101010000000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
108
VBAなんでも質問スレ
Excel VBA 質問スレ Part34

書き込みレス一覧

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 という書き方自体なわけで
まずそこが間違ってることを理解することが一番肝心だと思うよ。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。