50の手習い~人生実験室

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

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

1月14日 火曜日

 

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

★レッスン187
ある区切りでデータを二つに分けるマクロ
これは使う機会が多そうなマクロです。
例えば一つのセルの中に氏名が入っていて、それを氏と名に分けるとか、住所の入っているセルを都道府県とそれ以外に分けるとか、日常の業務でもそんな必要のある機会が割と頻繁にあるような気がします。
ちなみに、これはエクセルに搭載されている「フラッシュフィル」という機能を使えばVBAではなくても可能らしいです。
フラッシュフィルなんて知りませんでした。そんな名称すら聞いたこと無いし(笑)
いつか、「エクセルの機能にはあまり詳しくないからマクロ作っちゃうわ」な~~んて言ってみたいものです。
このレッスンは前半部分で、まずは2つのセルに入っている情報を合わせて1つのセルに反映させる内容です。
後半で逆の1つのセルから2つに分けるレッスンを行います。

★レッスン188
本題の一つのセルに入っている氏と名を分けるマクロです。
エクセルの機能をうまく使ってその機能をマクロ記録して組み合わせながら目的を達成します。
レッスン14~15あたりで勉強した、MIDとかLEFT関数などを使って文字を1文字ずつ抜き出してその文字数の分だけループを回すような方法でも良いのでしょうけれど、
よくよく考えてみたら、「ある目的があって、その目的を達成するためにこういう手法がある」という観点で考えたら、より簡単で間違いにくい方がいいし、
特に「業務内で」と考えたら、完成さえきちんと出来ていればそこに至るまでの過程なんかどうでもいいというか、
乱暴な言い方をすると全部人力でコピーペーストして何百時間かけても残業代を支払わないような企業だったらスタッフが個人の馬力で完成させればそれでいい。みたいなところあるでしょ。
今はVBAの勉強をしているからエクセルの機能を使うよりも何でもかんでもマクロを使って作業をしたいって思っちゃうけれど、
日常の業務をいかに効率良く間違いなく行うかと考えたら、わざわざ複雑なコードを書くよりも、バージョンアップで搭載されたマイクロソフトの機能を駆使した方がいいんでしょうね。
これからももっとどんどん便利な機能は増えていくだろうし、将来的にはひょっとしたらVBAではなくてエクセルの機能だけで簡単に繰り返しや条件分岐で作業を簡潔に出来てしまうかもしれない。
VBAだけにこだわるのではなくてエクセルの標準装備機能の勉強もやった方がいいなあと思いました。
今のエクセルは「セル」の概念ではないとかいう話もschoの授業でやっていたような記憶があります。セルの話じゃなかったかもしれないけれど。
まだまだ勉強しなければならない事がたくさんあります。嬉しい事ですね。

★レッスン189
レッスン187~188のおまけ
イントロで、レッスン188で私が感じたような気持ちを後押ししてくれるような先生からのコメントがありました。
最初から100点満点のマクロを組めなくてもいいんですよね。
初心者には初心者の勉強があると、改めて知りました。
おまけのレッスンでは、1つのセル内の情報を3分割、2分割するマクロ。
すごく複雑で難しそうな気がしますが、果たして・・・
と思ったのですが、単純な内容でした。やっぱり発想の転換が出来ればマクロの記録と基本的なステートメントを組み合わせて操作が出来るのですね。
如何にその発想をうまく浮かべるか、
マクロは難しいコードが書けたり関数の知識があればいいというわけではなくて(もちろんそれも重要なんだけど)
日常的な業務やルーティン化している業務で少しでも負荷を軽くしたいという目的ならば簡単な内容で最短距離を目指すべきなんだと思います。
難しいマクロを組むのもいいんだけど、開発そのものに長時間を費やしてたら本末転倒だもの。

 

www.start-macro.com