質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

717閲覧

『=』の意味合いを教えて頂けませんか。

ta-

総合スコア12

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/08/09 13:24

VBA初級者です。回答よろしくお願い致します。

####(1)コードの説明
range("A1").value=1
このコードは、右辺『1』を 、 左辺『range("A1").value』に代入するという意味です。

####(2)コードの説明
If range("A1").value=1 then



このコードは
もし左辺『range("A1").value』が 、 右辺『1』と同じならばという意味です。

####(3)別の解釈
しかし、(1)より(2)のコードは、以下のように解釈できると思います。

右辺『1』を 、 左辺『range("A1").value』に代入できるならば

####(4)質問
どうして、こういった考え方ではないのでしょうか。

####(5)質問の意図
実作業では、(2)の考えで何も問題ありません。
しかし、こういった点を追求していくと新しい発見があり、理解が深まり、色々な応用がきくのではないかと思い、ご質問致しました。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

どうして、こういった考え方ではないのでしょうか。

VBの場合、range("A1").value=1という文は、Let range("A1").value=1という文の省略形とみなされています。=はそれ単体で意味を持つのではなく、Letステートメントの構文の一部です。

If range("A1").value=1のような他の文の一部で=が登場する場合、Let文でないことは明らかですので、=は比較演算子として解釈されます。


なお、このように=を代入と比較の両方に使う言語は少数派で、C言語系など多くの言語では=は代入専用となっています。

投稿2021/08/09 13:33

maisumakun

総合スコア145208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ta-

2021/08/09 13:45

ありがとうございます。 しっくり致しました。また成長できたと思います!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問