5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
受講生さんの投稿
(投稿ID: 3593)
正解と異なる点は、1項目のカウントが終了した時点で
合計値を書き込むタイミングです。
endIfで個別の行の判別を終えた後、nextで次の行へ移る前に
カウント値を書き込んでいます。
こうすると、1行ごとのカウント値が「見える化」し、
上書きを繰り返すことによって、最終的には正しいカウントが
書き込まれますね。
これは確信犯的にそうしたわけではなく、
「どこでカウント値を書き出すか」のタイミングにまだ迷いがあったため
nextで戻る前に置いてみただけなのです。
どこでgokeiを初期化するかで迷うのと似ていますね。
入れ子のnextから抜けるときにgokeiを記入し、初期化し、
それから次の行の項目に移動する、が正しい流れですね。
でも、1行ごとの結果をそのたびに書き出し、上書きする仕組みは
それ自体面白いし、使える局面があるかもと思ったので、
ご紹介しました。
gooska
小川 慶一さんのコメント
(コメントID: 5077)
おはようございます。
>フォローアップで一番悩み、記憶に刻まれていたのがこの問題です。
複数の変数を扱うの、ここが最初ですからね。
戸惑いもあるかもしれません。
そこを乗り越えると簡単なのですが。
というか、実は、エクセルマクロって、要は、以下の3つがすべてです。
[1] 調査対象を変数を使って指定する
[2] 出力先を変数を使って指定する
[3] 条件に一致するか?を調べる
あとは、[1], [2], [3]それぞれについて引き出しを増やしていくだけです。
> でも、1行ごとの結果をそのたびに書き出し、上書きする仕組みは
> それ自体面白いし、使える局面があるかもと思ったので、
> ご紹介しました。
いただいたプログラムだと、結果の出力回数が見本より多いですね。
「条件に該当するデータが10万行あるデータだったとしたらどうだろか?」とか考えてみてください。
見本で示した書き方だと出力は1回だけです。
都度出力すると、出力は10万回です。
受講生さんのコメント
(コメントID: 5078)
おはようございます。
早朝からご返信ありがとうございます。
確かに、処理行数が10万業務だった場合の事を考えると、無駄な出力が10万回行われることになり、不適切であったことがはっきり分かりました。(実際、次の職場では、10万件以上のデータを扱うことになり、マクロを組まないと手作業では無理な量です。)
同じ結果が得られれば良いのではなく、工程に無駄がなく、負荷のかからないプログラムを書かなくてはいけないことがよく分かりました。
gooska