VBA100本ノック5本目を動画で解説してみました。Excelの神髄さんの模範解答はコチラ
問題
VBA100本ノック 5本目
画像のように、B2から始まる表があります。
B列×C列を計算した値をD列に入れ、
通貨\のカンマ編集で表示してください。
ただしB列またはC列が空欄の場合は、
空欄表示にしてください。
例.D3にはB3×C3の計算結果の値を「\234,099」で表示、D5は空欄
※ブック・シートは任意

解答
※動画内での回答
Sub ノック5本目()
Dim i As Long
For i = 3 To 12
If Cells(i, 2).Value = "" Or Cells(i, 3).Value = "" Then
Cells(i, 4).Value = ""
Else
Cells(i, 4).Value = Cells(i, 2).Value * Cells(i, 3).Value
End If
Next i
Columns("D").NumberFormatLocal = "\#,##0"
End Sub
※神髄さんの解答(これ以外の方法も紹介してくれてます)
Sub 模範解答()
Dim i As Long
For i = 3 To Range("B2").CurrentRegion.Rows.Count + 1
If Cells(i, 2) = "" Or Cells(i, 3) = "" Then
Cells(i, 4) = ""
Else
Cells(i, 4) = Cells(i, 2) * Cells(i, 3)
End If
Next
Columns("D").NumberFormatLocal = "\#,##0"
End Sub
今回は初めての”ループ”だったので、そこをメインに解説してみました。
最終行の取得や、表範囲のRows.Countという考え方は一旦保留。
“i”は3 to 12という書き方をしています。

今回は”ループ”や”条件分岐”を
ある程度イメージしてくれると
嬉しいっす!

?
一気に全部教えたほうが
手っ取り早くない?

初心者さんには
無理だっつーの・・・
“ループ”について

ループが5本目のメインです。
セルD3~D12までを1セルずつループ処理する方法について解説。


崩した言い回しにしてます。
もちろん”型”の話とかはしてません。
動画時間も少し短かったので、触れるぐらいならよかったかも?
条件分岐

しれっと初めての「IF~ELSE」を使ってますね。あと「OR」も。
詳しくは解説してないですが、順番に進めたので
動作はイメージはできたかな?



B列かC列が空白だった場合、
D列も空白にできたね!

そうっスね!

これがなんだっけ?
じょうけ…無条件の愛?だっけ?

条件分岐っす…
あとがたり
おはこんばんちは。uぷ主です。
VBA100本ノック、5本目の解説となります。
ループ、条件分岐、最終行の取得等…、
必要な知識が多すぎる問題でしたね。w
最終行の求め方は一旦さておき、”ループ”と”条件分岐”についての解説を中心にしてみました。
正直、これさえあれば大体なんとかなりますよね。
実は昔、uぷ主は会社で表彰されたことがあったんですが…(業務自動化ツール!みたいなん作った)、
その時はこのレベルの知識しかありませんでした。
けどなんとかなりました。
(今見たらコードは酷すぎますが…)
最終行の求め方も今後の問題で必須なので、いつか解説入れます~!
次回も楽しみにしていてください~!
最後までご視聴、ブログ閲覧いただきありがとうございました!!
コメント