50の手習い~人生実験室

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

VBA習得への道(12月11日)

12月11日 水曜日

勉強は、三太郎式マクロ勉強法ゴールドディスクのレッスン。レッスン139~141を行いました。

今回は「一番最小の値」を見付けてその値のセルを塗りつぶすマクロです。
最初に課題を見てどういうコードになるのかなと想像はするんですが、全く分かりませんでした(笑)

塗りつぶすのはわかるんです。単純にマクロの記録でセルを塗りつぶしてそのコードをコピーするなりCallで呼び出すなりすれば良いわけですが、
この「最小値を求める」っていうのが・・・・
それぞれの数値を変数に代入して比較演算子で比較していく?もしくは便利な関数があるのかな?程度しか思い浮かびませんでした。

実際はやはり数値同士を比較してより小さい値を生かしていくような内容でした。
解説を見ると納得するんですけど、最初に自発的にパっとその構造が思い浮かばないんですよね~。
ただそれでも、1回目にコードを読んで「なるほどね、こういう理屈ね」っていうのはわかるようになったんです。
最初は読んでも全く意味不明だったんですが、「なんでこうなるの??」みたいな。
でも今はちゃんとそのコードが何を意味してどういう動きをするためにその文言を書いているのか、そのセルを指定しているのか、その値を変数に代入しているのか・・・
といった諸々が大分理解出来るようになってきました。
そうなると学習がとっても楽しくなるんですよね。

この最小値を求める作業は仕入れなどで一番元値の安い業者をピックアップするとかそういう必要がある時に役立ちそうです。
昔小売業者で働いていた時期があったので、その頃からマクロの勉強をしておけば良かったななんて後悔することしきりです。

最小値(最大値)を求める場合は全部をマクロで計算しなくても、ワークシート関数のMIN関数とかMAX関数を使って、どこかダミーのセル上で計算を行って、その結果を
反映させてセルの色付けをするという方法もあります。
どちらかと言うと私はワークシート関数の方が抵抗感が少ないのでそっちの方がいいのかも?

しかしまた大きな問題に気付いてしまったんですが、R1C1形式のセルの指定の仕方が分からない!!最初の理屈から理解出来ていない!
ようするに絶対参照じゃないと目的のセルを突き止められないんです。相対参照だと途端に分からなくなります。これはVBAを操る上で大問題です!!
ちょっとこれは時間をかけて学習する必要があります。
ああ、こういう頭をひねる内容苦手なんですよね・・・

学習時間は40分程度でした。

www.start-macro.com