計算の練習・完成例と手順.xlsm
お楽しみの時間 足し算練習問題 を作ってみよう
とあったので、いやな予感がしたんです。
お楽しみどころか、あれ、So-net ブログ の、
マクロ・VBA 勉強会 番外編 に書いてますが、
昨年の講座のあと、復習していて、
途中まではマネして打ち込んでいました。
ところが、私、IF関数の入れ子とかわからなくて、
途中で投げ出していたんです。
今回は、ちゃんとやらないとマズいと思って・・・
計算の練習・完成例と手順.xlsm をまねして、計算の練習サンプルを作成。
ここに、手順通り作っていくのですが、
まず、エクセルにこんな風に打ち込んだSheet1 をコピーして、
コピーした方は、VBAなし という名前にします。
セルH3に入れる関数
F3が空欄の場合は、空白表示する。
と、手順に書いてありました。
=B3+D3 と、=IF(F3=””,””) はわかるんだけど、
このふたつを組み合わせるには、
どう入力したらいいかさっぱり???
計算の練習・完成例と手順.xlsm のセルで確認しました。
なるほど、=IF(F3=””,””,B3+D3) でいいのかと思いました。
セルG3に入れる関数
G3に入れる関数は、F3=H3 ならば、○、違う場合は× と、
F3が空欄の場合は、G3も空白( “” )。
計算の練習・完成例と手順.xlsm のセルを見た方が早いですね。
=IF(F3=””,””,IF(F3=H3,”○”,”×”))
IF関数の中に、IF関数が入るので、
これをネスト(入れ子)というそうです。
ネスト(入れ子) を使う場合の、
関数の挿入ボタンからの入力の仕方がいまいちわからなくて、
ここまで入力したら、
あとは、手入力でいくかなと、, を入力したところで、
左上のIF のところの↓をクリックして、
IF を選択してみました。
なんか、これでうまく入力できてしまいました。
関数の入力ボタンがうまく使えたとほっとしていたら、
こんな記事↓ を見つけてしまいました。
Excel 「関数の挿入」ボタンなんて使わないように。
https://excel-excellent-technics.com/excel-function-insert-button-2765
まだ関数の挿入ボタンから始めているのですか?:エクセル2013基本講座
http://www4.synapse.ne.jp/yone/excel2013/excel2013_susiki_sakusei.html
セルG14に入れる関数
G14には、G3 からG12 の正解(○)の数を入れるので、
COUNTIF を使うとよい。と書いてありました。
=COUNTIF(G3:G12,”○”) これは、すぐわかりました。
エクセルだけで作ったVBAなしと、VBAを使ったのの違い
VBA を使わない方
VBAなし の方は、新しい問題を作るために、
エクセルで、関数を使って、B列とD列に、
0 ~ 100 までの数字がランダムに入るように作ってあります。
INT関数を使うそうです。
=INT(RAND()*100)
ところが、セルF3に答えを入れた瞬間に、
セルB3とD3にランダムな数字が入ってしまいました。
計算問題が 20 + 21 ではなくなってしまうので、
とうぜん答え 41 は、× になってしまいます。
これでは、計算の練習用ファイルとしては、使えません。
昨年の講座で、
「プロシージャを使ってない方は、エラーになる」
と言ってたのは、このことだったのかと、
やっと、納得しました。
VBAを使うと
プロシージャを使っている方は、
同じように新しい問題を作るために、
B列とD列に、0 ~ 100 までの数字をランダムに入れるのに、
RandBetween(0, 100) を使ってます。
↓ は、計算の練習・完成例と手順.xlsm から。
Sub keisan()
Dim i As Integer
For i = 3 To 12
Cells(i, 2) = WorksheetFunction.RandBetween(0, 100)
Cells(i, 4) = WorksheetFunction.RandBetween(0, 100)
Cells(i, 6) .ClearContents
Next
End Sub
プロシージャでのRandBetween 関数の使い方ですが、
WorksheetFunction.RandBetween と入れてあるので、
RandBetween は、ワークシート関数 というものなんですね。
VBAなしのと、違う部分は、
セルF3 ~ F12 のところを空欄にする 命令も、入れてあること。
昨年もらった、計算の練習.xlsm では、Cells(i, 6) のところは、
Cells(i, 6) = “”
となっていましたが、
計算の練習・完成例と手順.xlsm では、
Cells(i, 6) .ClearContents に変えてありました。
ということで、全部打ち込んでみました。
やっと、昨年からの課題、全部理解できた感じです。