高校でexcelマクロ?VBA?を習っています。

Excel | プログラミング85閲覧xmlns="http://www.w3.org/2000/svg">500

ベストアンサー

0

ThanksImg質問者からのお礼コメント

たくさんの回答をありがとうございました!ちんぷんかんぷんでしたが、皆さんのおかげでスレッスレで赤点逃れました!!笑 助かりました!1番分かりやすかった回答をベストアンサーにさせて頂きます!!

お礼日時:2021/12/4 0:22

その他の回答(4件)

0

決勝通過者の人数を、そのまま「決勝通過者の人数」としてもいいけど文字が長いので、仮に「a」と呼ぶことにします。 このaは後から値が変化するので変数と言います。 VBAの「a =0 」のイメージは「a ← 0」。aという変数に0を代入するということ。 これから数えるから最初は0人だねと「a=0」と書き込みます。 For i = 1 to 100 範囲 : 1行目から100行目まで(100人分) if cells(i,1)>=80 Then 条件 : A列が80点超えていた時だけ a=a+1 決勝進出者の人数に1人追加するね。 End if 条件終わり Next i 次の行へ 条件が一致した時に人数が追加されるので「a=a+1 」は 例: (初期値 a=0人) 1人目 70点 条件一致しないから何もしない 2人目 65点 条件一致しないから何もしない 3人目 82点 1人← 2人目までは0人。これに1人追加 4人目 53点 条件一致しないから何もしない 5人目 90点 2人← 4人目までは1人。これに1人追加 . . . 100人目 100点 3人← 99人目までは2人。これに1人追加 こうやってa=a+1で条件に合う人を1人ずつ追加していき、人数を数えます。 最後にCells(1,4)=a 、つまり1行目の4列目(D1セル)に決勝進出者a (3人)を代入します。

0

「a」は引数という仮の箱です、 初期値の「a」は、「0」です、 1行づつ80以上か、セルの値を確認し、 もしそうなら、仮の箱「a」に「1」づつ足していく式が 「a=a+1」です。

0

こんにちは。 >なぜa=0なのですか? 処理を開始する前に、変数を初期化するためです。 電卓で言えばACボタンを押したとき、数値0が表示される動作と同じ a=a+1の意味も分かりません。 電卓なら、0+1= まで押した状態。 電卓は、そのまま、+1+1+1+1と連続して操作できますよね、 vbaのマクロでのa=a+1は、変数aの中身に、1増加させる、という意味です aとは何ですか?1から説明して頂きたいです vbaのコードだと、 Dim a as Variant とか、変数宣言があると、見やすいですね。 cells(1,4)は、シートのD1セルのことですね。 if cells(i,1) >= 80 then は、 if cells(i,1).value >= 80 then と表記するのと、同じです。 セルは、書式属性や、色を設定したり いろんな機能を持っています。 慣れるのが早いですよ。疑問を持ったら、どこをどんな風に調べるか、なども 奥が深いです

0

プログラムの世界では 変数(aなどのデータを入れる箱)を使う時には宣言と初期化と言うことが必要なことが多いです。 今からaっていう箱を使うよ! 数字をいれる箱してつかうよ! 初めは0が入っている箱を使うよ! というようなことです。 自分だけが作っているならまー問題は起きないのですが、 他の人がaの箱を使っていたり、何も考えずにそこら辺の箱を拾うと中にデータが入っている状態なのに気づかずに中に-5などが入っているとプログラムが思うように進まないことがあります。 なのでそのような一般的なプログラムに合わせて初期化がされているのでしょう

a=a+1は 左辺が右辺になるという命令です もし八十点以上であればaはa+1になりますaは初め0なので0+1→1になります。 この命令は何度も繰り返されるためa=1になってからもa=a+1が出てくるたびa=1+1→2のように1つずつ加算されます。 a=a+2とすれば2ずつ加算されるし a=a*2とすれば倍々になっていきます a=a+1に関してはとてもよく使うため a++と書くことでa=a+1と同じ動きをすることも可能です aとa+1がイコールであるという意味ではありません もしそれをいうのであれば a==a+1とすると aはa+1か?という判断を行い、正しくないのでfalseが答えとなります