50の手習い~人生実験室

人生100年時代。50歳から人生を開拓出来るのか?自分の身体を使って実験中

VBA習得への道(1月29日)

1月29日 水曜日
 

再びVBA学習に戻りつつ、Progateの道場破りにもチャレンジしてみたいと思います。
今回のお勉強は、三太郎式マクロ勉強法ゴールドディスクのレッスン。レッスン221~223を行いました。

★レッスン221
作業時間が一目でわかるようなマクロの作成です。
新規シートを作成してシート名や作業時間の入力や、合計の作業時間を計算するなど、シートの数が多いと意外と工数のかかりそうな作業をマクロで行います。
全部のシートを対象に行います。
こちらもシート間の移動が激しいのでどのシートを選択するか、どのセルを選択するかを間違えないように指定してあげる必要があります。
こういう、出力用のシートが別途存在して、それ以外のシートの集計を出力用のシートに表示させるようなケースは出力用のシートと元データのシートを明確に分けて考えなければならないので、特にシートを増やしたりする作業が発生する場合は複雑でごちゃごちゃになりがちです。
以前はこの辺りの考え方がとても苦手だったのですが、最近は大分理解出来るようになってきました。
以前ワークシート関数の3D集計を応用して作ったマクロがあったのですが、このやり方をアレンジすれば全部マクロで集計が出来るかも~
改めてチャレンジしてみようと思います!

★レッスン222
前回のレッスンも今回のレッスンも生徒の方がこの講座で勉強して「こんなマクロを組んでこんなに楽になりました!」という感謝のお便りを元に、同じ内容のマクロをレッスン内で作成してみる~といった企画になっています。
今回は領収書と控えを名分を1枚として差し込み印刷と行うという、なんとも難しそうな(私が苦手そうな)内容となっております・・・(苦笑)
ただ、アレンジをすると色々と使えそうなマクロなので中身を理解したいと思います。

★レッスン223
前回の課題後半レッスンです。
領収書とその控えを2名分→1枚に合体させます。
これがまためちゃくちゃ複雑です。今回ループでどのように変化していくのかを(面倒だけど)紙に書き出してみたところよく理解出来ました。
やはり面倒だけれどループが複雑な場合は紙に書き出しながら確実に把握するのが一番でしょうね。
ついつい面倒で横着したくなっちゃうのですが、そういう手間を惜しんでは技術は身に付かないという事なのでしょう(耳が痛いです(笑))
ワークシート関数を勉強していた頃にMod関数はいつ使うんだ?と思っていたのですが、エクセルで行置きに配色したい場合に条件付き書式で使ったりしていたので必ずしも計算して数値を出すためだけにこういう関数を使うわけではないんですよね。(ていうか日常の業務で「余り」を算出する機会ってあまり無い気がする。大抵は切り捨て切り上げ四捨五入しちゃうでしょ?)
何らかの条件分岐を行いたい場合にMod関数は活躍してくれます。ちなみにVBAではModは演算子です。

 

www.start-macro.com