- Excel VBA 質問スレ Part34
98 :88[sage]:2014/07/08(火) 00:13:12.93 ID:Ik2S5C3q - ご回答ありがとうございます。
>>90 とりあえずはIfステートメント内で"="を使うと比較になるが、それ以外は代入になるという理解でよろしいのでしょうか? >>91 If Range("A4").Value + Range("C4").Value = Range("E4").Value Then は、比較演算子として"="を使用できたので、頂いたご回答の内容は間違えているような... 俺が間違えてたらすみません。
|
- Excel VBA 質問スレ Part34
100 :88[sage]:2014/07/08(火) 00:37:52.22 ID:Ik2S5C3q - >>91
よく読んでみたら、多分俺が間違えてますね。 すみません。 よくわからないのですが、例えば2+7=9だとしたら、7=9になるためには7は+2足りないので-2となり、 2+(-2)は0でこれは真になり、それ以外は偽ということでしょうか? バカで初心者な俺は>>98で書いたような理解で割り切っておいた方がよさそうですが...
|
- Excel VBA 質問スレ Part34
102 :88[sage]:2014/07/08(火) 00:41:13.02 ID:Ik2S5C3q - 完全に私が馬鹿でした。
汚い言葉を吐いてしまい、申し訳ありませんでした。
|
- Excel VBA 質問スレ Part34
103 :88[sage]:2014/07/08(火) 01:46:50.13 ID:Ik2S5C3q - 俺が書き込んでいる最中に他の方が回答してくださり、変なタイミングで書き込んでしまいました。
>>101 「変数やプロパティ = 〜〜〜 の場合が代入であり、それ以外はIfに限らず比較演算 」 なるほど、ありがとうございます。 Sub チェック() Range("A4").Value + Range("C4").Value = Range("E4").Value End Sub で"+"が消えてしまうのは、Ifステートメント以外で変数やプロパティ等の直後に算術演算子は使えないということでしょうか? 他の算術演算子は消えてしまうのではなく、エラーでしたが。 Debug.printはまだ勉強してないのですが、実行してもなんの反応もありませんでした。
|
- Excel VBA 質問スレ Part34
105 :88[sage]:2014/07/08(火) 03:23:55.36 ID:Ik2S5C3q - >>104
説明が下手で申し訳ないのですが、要は、Ifステートメント内だと算数のように記述できるのに、Ifステートメントがないと、どうして算術演算子をはじめにもってこれないのか、というのがわからないのです。
|
- Excel VBA 質問スレ Part34
114 :88[sage]:2014/07/08(火) 14:32:04.31 ID:Ik2S5C3q - いろいろ答えてくださりありがとうございます。
結局条件分岐以外で「=」を使うと代入になり、VBAではそういうルールになっていると。 引数はまだわからないですが、条件分岐以外ではじめに「+」を持ってくると消えてしまう理由は>>107と>>109の説明がわかりやすかったです。 >>101 「> とりあえずはIfステートメント内で"="を使うと比較になるが、それ以外は代入になるという理解でよろしいのでしょうか? いいえ 変数やプロパティ = 〜〜〜 の場合が代入であり、それ以外はIfに限らず比較演算 」 ここの部分がわかりません。 If Range("E4").Value = Range("A4").Value + Range("C4").Value Then の場合の"="も代入になると言ってる訳ですよね? この"="は比較ではないのですか? ちなみに今読んでいる入門書には「条件分岐の中で使われている「=」は比較演算子であり、 それ以外の場所で使われている「=」は代入演算子であると見分けるとよいでしょう」とありました。 とりあえず参考書の説明で理解していこうと思います。 学習を始めたばかりで人によって違う事を言われたり、まだ習っていない内容で答えてもらっても非効率だと思うので、そろそろこの質問も終わりにしたいと思います。
|
- Excel VBA 質問スレ Part34
116 :88[sage]:2014/07/08(火) 15:37:35.95 ID:Ik2S5C3q - >>105
ありがとうございます。 条件分岐なしの場合だと代入と比較を使えるが、条件分岐ありだと比較しか使えないということですね。 よくよく考えてみれば後者条件分岐なのだから比較なのは当たり前ですが。 C = A + Bという順番にしなければいけないのは、VBAは文法的に、Cについての説明はCの後に持ってこなければいけないということですよね? このCについて説明するというのが代入で、左辺と右辺が同じかを判断するのが条件分岐の比較だと。
|
- Excel VBA 質問スレ Part34
124 :88[sage]:2014/07/08(火) 23:14:32.01 ID:Ik2S5C3q - >>117
>>107で説明してもらってますが、いきなりRange("A4").Value + Range("C4").Valueと書くと、 + Range("C4").ValueがただのRange("C4").Valueと判定されて+が消えてしまうのですね。 Valueはメソッドとしても使えるのですね。 今勉強している本は『Excel VBAのツボとコツがゼッタイにわかる本』というものです。 この本はamazonで随分人気が高いようですが、初心者に「VBAとはこういうもの」とサラッとわからせるのが目的みたいで、 「初心者のみなさんは、このような理解でいいでしょう」という言葉が結構あります。 深く理解するのは他の本でやってくださいって感じですね。 >>113 知恵袋の話ですけど、パソコン教室でVBAを習う人の中で、なんとか使えるようになる人が1割で、バリバリ使えるようになるのはさらにその中の1割らしいです。 私もそうですが、世の中理解力の乏しい人間がほとんどなのだと思います。 頑張って「なんとかVBAを使える1割」に入りたいものです。 ちょっと自信を失いかけてますが... 正直まだ疑問に思う部分はあるのですが、お陰様でとりあえず最初の疑問は解決できました。 勉強を進めていって、それでも理解できなければまた質問させていただきます。 ありがとうございました。
|