![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
以下のマクロをご覧ください
-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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) 3つのマクロを連続実行の中で、1つ目のマクロ要件を満たさなかったら、マクロ2・3を実行しない為には 1 2023/10/15 13:42
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) VBA 1 2024/02/03 22:51
- Visual Basic(VBA) 【VBA】エクセルで最後の不要な改行コードを削除するコードについて 3 2023/09/08 18:41
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
職場の人から聞かれており、こんなことができるか教えて下さい。 vbaとかはできません。。 下記リスト
Excel(エクセル)
-
エクセルでバーコード作成し使用しているんですが、違うパソコンで同じエクセルファイルを使用したらバーコ
Excel(エクセル)
-
自動入力で今月はMONTH(TODAY())で良いのですが、翌月はどのようにすれば良いでしょうか。
Excel(エクセル)
-
-
4
【関数】スペースがいくつ入った後の文字列を取り出したい
Excel(エクセル)
-
5
エクセルで上位バイトのセルと下位バイトのセルを1つのセルにして16進数を作る方法
Excel(エクセル)
-
6
Excelで、10000,20000,30000と表示されているのですが、時々10000,20000
Excel(エクセル)
-
7
西暦や和暦の表示をyyyymmdd表示へ変更をしたい
Excel(エクセル)
-
8
エクセルを使っていて2024/5/15と入力したのに令和元年とかででるのでしょうか?何か設定分かる方
Excel(エクセル)
-
9
CSVファイルについて質問です。
Excel(エクセル)
-
10
エクセルで日付の入ったセルの月別の個数が知りたい
Excel(エクセル)
-
11
エクセルで不等号記号(≠)が上にずれて表示される
Excel(エクセル)
-
12
Excelについて教えてください
Excel(エクセル)
-
13
【Excel】数字を3倍にし、なおかつ、千の位を繰り上げて8にしたい。
Excel(エクセル)
-
14
エクセルの空欄をつめて、次の列に表示する方法
Excel(エクセル)
-
15
【マクロ】顧客番号にて一致させ、情報を表へ上書きする為には
Excel(エクセル)
-
16
西暦和暦
Excel(エクセル)
-
17
在庫管理表に使うエクセルの関数が分かりません
Excel(エクセル)
-
18
エクセルで表
Excel(エクセル)
-
19
VBA(えくせる)ってなんでメンテできない人が多いんですか?
Excel(エクセル)
-
20
FormulaR1C1の 相対参照式のコピー
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「この2式の辺々を掛けて」とあ...
-
逆元の計算方法
-
マルコフ過程の定常状態を利用...
-
2乗の入っている連立方程式の...
-
高校数学
-
3つの数で割るとそれぞれ違うあ...
-
恒等式における数値代入法について
-
【マクロ】for next構文について
-
【等式 x+2y+3y=12を満たす自然...
-
数学について
-
数列について
-
n^n +1が3で割り切れるもの
-
連立方程式の解き方教えてくだ...
-
次のような連立方程式がある。
-
(高3)4元2次方程式がとけません。
-
一次不定方程式について質問で...
-
極限値が存在するための定数a,b...
-
(x-3y)(x-2y)=11などのとき
-
至急です 3点を通る二次関数で ...
-
絶対値
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
逆元の計算方法
-
必要条件 十分条件について
-
「この2式の辺々を掛けて」とあ...
-
arctanxをf(x)とし、そのn回微...
-
整式P(x)をx²+x+1で割ると余...
-
数値代入法による恒等式の解説...
-
数列について
-
微分 極値
-
【等式 x+2y+3y=12を満たす自然...
-
代入法なのに、逆の確認をしな...
-
極限値が存在するための定数a,b...
-
量子力学の交換関係について
-
y=2x-1/x+1の逆関数を求めるも...
-
一次不定方程式の整数解のうち...
-
急ぎ目でお願いしますm(_ _)m ...
-
証明です
-
複素数の2次方程式がわかりません
-
複素関数 sin(x+iy)について
-
xの整式a=ax^4bx^3+abx^2-(a+3b...
-
数学の公式に値を当てはめると...
おすすめ情報