
以下のマクロをご覧ください
-Excel-Excel-Excel が答えとなります
B = B & "-" & "Excel" ←この処理を3回
実施した結果かとは思います
B & の部分が分かりません。
●B=Bなら分かりますが、B = B & "-" & "Excel"
がなぜ、イコールになるのか?
●B & の部分を削除すれば良いですが、-Excel-Excel-Excel
の結果は出ません
コードの意味が分かるかた教えて下さい
宜しくお願いします
【コード】
Sub B()
Dim i As Long, B As String
For i = 1 To 3
B = B & "-" & "Excel"
Next i
MsgBox B
End Sub
No.8
- 回答日時:
1回目のBには何も入っていない。
Bという変数を使うという宣言がされただけで、中には何もない状態です。
・・・
同様に、変数の i も空の状態から始まります。
i は、For文で
i に1を格納し中の値を3まで(1つずつ増やしながら)ループする。
と宣言しています。
※ 「2つずつ増やす」とか「3つずつ増やす」という宣言もできます。
増やす量の宣言を省略する場合「1つずつ増やす」として扱われます。
変数は、最初は何も入っていないのですね
私は、変数は、こちらで何かを定義するものかと
思っていました
↓最初は、何も入っていないという前提なのですね
Bという変数を使うという宣言がされただけで、中には何もない状態です。
No.6
- 回答日時:
(。
´・ω・)ん?1回目
Bの値は空。
B = B & "-" & "Excel"
↓
B = "" & "-" & "Excel"
↓
Bの値は ”-Excel”
2回目
Bの値は ”-Excel”。
B = B & "-" & "Excel"
↓
B = "-Excel" & "-" & "Excel"
↓
Bの値は ”-Excel-Excel”
3回目
Bの値は ”-Excel-Excel”。
B = B & "-" & "Excel"
↓
B = "-Excel-Excel" & "-" & "Excel"
↓
Bの値は ”-Excel-Excel-Excel”
・・・これで分からない場合、
CPUの内部では次の手順で演算されているので
理解するようにしてください・・・
1回目の演算の手順を示してみます。
演算はCPUのアキュムレータと呼ばれる場所に入れられて行われます。
Bの値をアキュムレータと呼ばれる演算する場所に格納する。
├─────┤
│ 空 │
├─────┤
│ 空 │
├─────┤
→ 空(値) │
┴─────┴
アキュムレータを一つ押し上げ空ける。
├─────┤
│ 空 │
├─────┤
│ 空(値) │
├──↑──┤
│ 空 │
┴─────┴
空いたアキュムレータに ”-” を入れる。
├─────┤
│ 空 │
├─────┤
│ 空(値) │
├─────┤
→ ”-” │
┴─────┴
押し上げたアキュムレータの値と、今入れた ”-” を結合する。
├─────┤
│ 空 │
├─────┤
│ 空 │
├──↓──┤
│ ”-” │
┴─────┴
アキュムレータには ”-” が入る。
├─────┤
│ 空 │
├─────┤
│ 空 │
├─────┤
│ ”-” │
┴─────┴
アキュムレータを一つ押し上げ空ける。
├─────┤
│ 空 │
├─────┤
│ ”-” │
├──↑──┤
│ 空 │
┴─────┴
空いたアキュムレータに ”Excel” を入れる。
├─────┤
│ 空 │
├─────┤
│ ”-” |
├─────┤
→ ”Excel” |
┴─────┴
押し上げたアキュムレータの値と、今入れた ”Excel” を結合する。
├─────┤
│ 空 │
├─────┤
│ 空 |
├──↓──┤
│ ”-Excel” |
┴─────┴
アキュムレータに入っている ”-Excel” をBに格納する。
├─────┤
│ 空 │
├─────┤
│ 空 |
├─────┤
← ”-Excel” |
┴─────┴
2回目は ”空(値)” ではなく ”-Excel” の値を入れるところから
3回目は ”空(値)” ではなく ”-Excel-Excel” の値を入れるところから
始まる。
お返事ありがとうございます
Bの値は空。 という決め事?が分かりません。
何か、最初、Bは空 という定義があればわかるのですが
突然、Bは空と言われた感じがします。
もちろん、銀鱗 様の解説が正当なのはわかってはいます
決め事であれば、理解はできます。
他、解説あればお願いします
No.5
- 回答日時:
●B=Bなら分かりますが、B = B & "-" & "Excel"
がなぜ、イコールになるのか?
ifがないので比較ではなく、右の結果を左へ代入です。
●B & の部分を削除すれば良いですが、-Excel-Excel-Excel
の結果は出ません
B&のBの中身を先頭に使い、&で後ろを連結してBに入れなおすです
No.3
- 回答日時:
VBA(←マクロに使う構文)では、比較演算子(=,>,<など)と代入演算子が同じなのでこうなってしまします。
ここでは代入演算子として使用していますので、
>B = B & "-" & "Excel"
は、元々あったB(の文字列)に、「-」と「 Excel」を付けたしなさい!という処理をしているのです。
最初Bの中身は空白ですから、1回目の処理で"-Excel”という文字列になり、それを3回繰り返すことにより、”-Excel-Excel-Excel”となるのです。
>●B & の部分を削除すれば良いですが、
とすると、Bに"-Excel"という文字を代入しなさい!という処理を3回行っているだけですので、結果は前述のようにはなりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「この2式の辺々を掛けて」とあ...
-
5x+7y=1の整数解を全て求めよ ...
-
数列について
-
高校数学
-
状態方程式 p=pRT ①a=bcdをb...
-
急ぎ目でお願いしますm(_ _)m ...
-
複素数の2次方程式がわかりません
-
マクローリン展開
-
数学の関数 f(-x)=2x^2 + 3x -4...
-
X=√3+2、Y=√3-2のと...
-
一次不定方程式の整数解のうち...
-
ローラン展開の問題がわかりません
-
√2=1.414として、次の値を求め...
-
裏技数学、部分分数分解
-
画像の計算はエクセルで行うこ...
-
数値代入法による恒等式の解説...
-
ド忘れしたんですけど、2分の1...
-
2.5みたいな数字を分数になおす...
-
計算技術検定2級の方程式と不等...
-
SQL文のwhere条件文で使う <> ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「この2式の辺々を掛けて」とあ...
-
逆元の計算方法
-
整式P(x)をx²+x+1で割ると余...
-
【等式 x+2y+3y=12を満たす自然...
-
arctanxをf(x)とし、そのn回微...
-
5x+7y=1の整数解を全て求めよ ...
-
数学の恒等式について質問です...
-
急ぎ目でお願いしますm(_ _)m ...
-
数値代入法による恒等式の解説...
-
数式の変形について(過程が分...
-
数学の公式に値を当てはめると...
-
複素関数 sin(x+iy)について
-
代入法なのに、逆の確認をしな...
-
(高3)4元2次方程式がとけません。
-
数列について
-
中3数学平方根その2
-
高校の数学についてです。 写真...
-
数1・A 条件つき最大最小問題
-
微分方程式の問題 回答の確認
-
2次方程式
おすすめ情報