Excel VBAの逆引パーフェクトの通読
Excel VBA逆引き辞典パーフェクト(田中亨先生)をコンビニで買った本の次に購入いたしました。逆引きだからなんか即効的に使えるかも、と安易に考えて手にとらせていただきました。
すぐには使うことはできない自分の状態でしたが、Excelでこんなこともあんなこともできるんだ。今までの自分のExcelの知っている範囲は一体なんだったんだろう・・・とも思うと同時にその可能性にワクワクしました。
後のことになりますが、先生のYouTubeはじめWebサイトは非常に分かり易く何度も拝見いたしました。
年齢を重ねられても尽きないExcel愛を強く感じます。軽妙な口調で楽しく学ばせていただきました。ありがとうございます。
この本も版を重ね今は白い本になっているようです。
Amazonのリンクを付しましたのでご興味をもった方は是非手にとってみてください。
「VBAができる事務職は重宝される」という言葉
この言葉はブログを読んでいて見つけた言葉です。
どの方のブログだったかもう覚えていませんが強く僕を後押しした言葉のひとつでもありました。
オデッセイVBAエキスパートへの挑戦
Excel VBAの公式テキストはExcel VBA逆引き辞典パーフェクトの著者の田中亨先生が書いたテキストでした。
会社の電車の行き帰りで夢中になって読みました。資格試験に受かりたい、というだけでなく体系的に学べて面白いと感じたからです。
VBAエキスパートのテキストはひとつ前の試験バージョンの時のものです。
夢中になってやったかいがあってか、ベーシック試験にもスタンダード試験にも1ヵ月の勉強期間で合格することができました(ただAccessにあまり馴染がないからだからだと思いますが。Access VBAにはかなり苦戦しました)。
こちらは田中亨先生によるテキスト
(新しいリニューアル試験に対応したテキストが出ております。ご注意ください)
こちらは武藤玄先生のテキスト
(新しいリニューアル試験に対応したテキストが出ております。ご注意ください)
「自分が開発した同僚」ができた感覚
オデッセイのExcel VBAベーシック・Excel VBAスタンダードに合格する頃には、VBAが大好きになっていました。次々と自分の業務(その頃は大量の個人の売上のある商品の集計をする担当だった)に次々と自分の業務に応用し、業務を自動化していきました。
大量の業務が一気に正確に、自分にとって楽になって行きました。まさしく「自分が開発した同僚」ができた感覚で、本当に嬉しかった記憶があります。
自分だけでなく、他の方の業務を自動化していくことにも夢中になりました。
・たくさんある応接室を予約するExcelファイル
・一部の部署(といっても200人~300人ぐらいでしょうか)の名簿Excelファイル(新規・更新・削除をユーザー側で出来るようなもの)
・データベースに基づいて、大量の請求書のような書類を出力するファイル
などなど大きいもの小さいものたくさんのファイルを作らせて頂きました。
他の方々が「楽になった」「間違えなくなった」と言って頂けたのが更に自分のやる気にも繋がっていきました。
Java/C#にも触れて感じたこと
その頃、あるVBAブログを見ていて「エンジニアの方からVBAはおもちゃみたいと言われた」との記述を見ました。
「VBAができる事務職は重宝される」の言葉とは真逆でした。VBAに感動していた僕は「え!?。おもちゃは言い過ぎじゃない」と思いました。そこで本当にそうなんだろうか、と思い汎用性が高い言語と聞いていたJavaに関する本とC#に関する本を1冊ずつ通読しました。
「なんだ、VBAとかなり似ている」
If~else文・for文・変数・定数・イベント処理・エラー処理などなど内容がVBAと同じことにかえって驚きました。少しの構文の違い(Select case👉switch文とか)があったりしますが、基本的に同じ。
たしかに何千行といったコードの塊を複雑に絡み合わせていく大規模プログラミングから見ると「おもちゃみたい」なのかもしれませんが、少なくとも事務の世界で堂々と役に立っていて20年ぐらい基礎的な部分に変化なく重宝されている言語。少し安心さえしました。このまま勉強していこう、と。
VBAを深く広く学んで良かったことと限界
パーフェクトVBA(クラスモジュール・高橋宣成先生の本)
良かったこと
この本の最初の方にしっかりと書いてある言葉には本当に納得させられます。
「VBAは初心者には、やさしいが、中級者から難易度が急速に上がる、そんな特性をもっていることがわかる」「入口は楽ですが、進めば進むほど険しい道になる」。僕の当時の感覚をダイレクトに表現した言葉に感動しました。そして自分も成長してきたことも実感しました。
いかに普遍性のあるコードをしっかりと書くか、自由度が高いVBAに一定の指針を示された価値の高い深い本だと思いました。
限界
そんなことから「Excelレガシー問題(現場主導で作成・肥大化したExcelファイルやマクロ(VBA)が、業務の属人化やデータ管理のブラックボックス化を招き、経営やセキュリティ上の重大なリスクとなる現象)」を回避するためにはどうすればいいのかもその頃には大きく意識するようになっていました。
Excel VBA実践のための技術(沢内晴彦先生の本)
良かったこと
パーフェクトVBAと併せて主にクラスモジュールの理解のために読み始めましたが、それぞれの章の内容の汎用性と深さに感銘し4~5回読ませて頂きました。
限界
オブジェクト指向における三大要素
・カプセル化 (encapsulation) :
クラスモジュールを活用してカプセル化することについては「オブジェクト指向プログラミング」の一端として難解だなぁと思いつつ大まかにつかむことが出来ました。プログラムの「設計図」を創り、それをいろいろな場面でインスタンスすることで多様な場面で「実体化」させるものにするというものだと思いました。と同時にクラスモジュールじゃないと絶対実現できないVBAはない、といった内容にもホッとさせられるものがありました。
他に
・継承 (inheritance)・多態性 (polymorphism)
がVBA以外ではあるそうですが、VBAは厳密にはオブジェクト指向言語ではなく、継承も多態性も疑似的(形を変えての実装ー言語的には備わってない)にしか使えないそうです。今でも継承と多態性については、完全に理解できているとは言えません。
「全てはALT+F11からはじまる」(VBAのエディターであるVBEが開きます)という印象的な言葉から序章が始まるこの本ではExcel VBAの広がりを学びました。
Windows APIを使ってSendkeys でマウスの動きの自動化。SQL liteとの接続可能性。
Webサイトから必要な情報(例えば今日の日経平均株価や為替レートの自動取得をしてExcelに自動代入・計算・自分の考えに沿った答えと方向性を瞬時に出すなどと言ったことはできます(クローリングとスクレイピング)。
特にInternet Explorer時代には専門書もたくさん出ていましたし、僕も購入して読んだりしました。
クジラ飛行机さんの本は更にSeleniumBasicというものを使ってGoogle chromeも操作できることを教えてくださいました。
大村あつし先生のWindows APIの本はクジラ飛行机先生から得た知識を更に広めてくださいました。
限界
クジラ飛行机先生はPythonの本も本当に多く書かれており、本当のプログラマーだなぁといつ読んでも思います。拡張性についてはVBAに限界が最後にはあるのだな、と感じさせて頂きました。
VBAを学んで 良かったこと と 限界
良かったこと
VBAをはじめプログラミングを始めて本当に良かったことはやっぱり自分で創ったものが人に喜んでもらえる点でした。ミスのない仕事が求められがちで、ミスなくして「当たり前」。マイナスをゼロにする仕事が多い中、ゼロから1を生み出す仕事に出会えて本当に良かったと思っています。
この点が未だに僕のITに対する興味を尽きさせない原点のひとつになっています。
限界
クジラ飛行机先生がおっしゃっているように「VBAを捨てることもない」と同時に「Excelの方が便利な場面もたくさんあります」と思います。ただPythonは便利で、その拡張性やAIとの相性の側面からもVBAだけに固執することは決して良くないな、と思っております。
コメント