えびすい@ALPHA公式ブログ

Googleマイビジネス&Webマーケティングと高田馬場に関して綴る雑記ブログです。

確かなかったと思う、Excel VBAの体系を詳説した技術書は

パーフェクト Excel VBA

お世話になります。えびすい@ALPHAです。

さきに結論というか要旨を述べておくと、タイトルそのまんまです。

がっつりの情報システムやソフトウェアを担う言語でないばっかりに、でも便利だから手軽だから、もやっとしたままでもなんとなく実装できるから、Excel VBAに関して出版されている書籍は数多くあるけど、どういう仕様に基づいてあるのか説明している本は無いと思うんですよ。

なので、「パーフェクト Excel VBA」はうわべの小手先テクニック紹介本が物足りなく感じたら手に取るべき技術書だと思うんです。

さて、このレビューを書こうと思い立ったのは僕が入っている「ギガ盛りブログ飯」

lounge.dmm.com

というオンラインサロンのfacebookグループに著者の高橋宣成さんが、書籍をプレゼントするから書評書きませんかという投稿が流れてきたからです(高橋さん、ご恵贈ありがとうございます)。

そして、なぜ僕がこの書籍に興味を持って、書評を書こうと思い立ったのか、一言で説明しがたいので箇条書きにしてみます。

  • Visual Basic(いわゆるVB)は僕が20代に出会ったいくつかのプログラミング言語のうちの1つ。VBに似たVBScriptを利用したASP(Active Server Pages)で業務システムを開発していました。

  • 時を経て、現在とあるパソコン教室でExcel VBAを教えているんです。

  • マクロを記録してざっくりとプログラミングコードにおとした後、ネットでググるとサンプルプログラムが沢山あるので、それらを組み合わせてなんとか意図する機能は実装できる、でいつも終わらせているのだけどなんか中途半端感。

  • とはいっても、マイクロソフトが用意しているヘルプやリファレンスはわかりにくい(という記憶で見もしない)。

そんなバックボーンをもつ僕が、高橋さんのこういうツイートを目にして、あ、面白そう、読んでみたいと思ったいからなのです。

なんせ、「VBAの構造と体系を一気通貫して学べる本格解説書」ですよ。

めっちゃ強そうじゃないですか。

それでは、本書のポイントをいくつかあげていきます。

Part1(とくに1-3-1)はVBA使いはグッとくるはず

VBA使いと書きましたが、Excel VBAでプログラミングする人はシステム開発会社でエンジニア職をしている人ではなくて、毎日Excelを使ってるんだけどこれ、自動化したいなどうしたらいいんだろな、VBAでできるんじゃないか、頑張ってみよっかと思う普通の事業会社の人が大多数じゃないかと思います。 とくに昨今は、自動化・省力化せざるを得ない状況が多いのか、Excel VBAを使わなきゃならなくなったプログラマーじゃない職業の方が増えているように感じます。

では、そんな方がExcel VBAのコードを書き出して最初につまづくのは、本書がいうように書き方の選択肢が多いことなんじゃないかな。

本文で例としてあげてる、『 Excel VBA で「Sheet1」の「A1」セルに文字列”Hoge”を入力する』ときのコードのパターン、これだけあるんですよ。

リスト1-3 セルへ文字列を入力するコードのパターン

Range.( “A1” ) = “Hoge”

Range.( “A1” ).Value = “Hoge”

Range.( “A” & 1 ).Value = “Hoge”

Cells.( 1 , 1 ).Value = “hoge”

Sheet1. Range.( “A1” ).Value = “Hoge”

ActiveSheet. Range.( “A1” ).Value = “Hoge”

Sheets( “Sheet1” ). Range.( “A1” ).Value = “Hoge”

なぜ同じ操作をするのにこれだけのバリエーションが存在するか説明できますか? おそらく大多数の方は、とりあえずその場で思いついた書き方から試していって、動けばOK、でも、もやもやするなあ、でやりすごしているんじゃなかろうか。

本書は、大抵のExcel VBA本が踏み込んでいないこのあたりをスッキリさせる方向性で書かれています。

付け加えると、コードを書いて動いたけど、ちょっともやもやするなあ、こう書いたけどこれがベストなんだろうか、と思わない方はまだ本書を読むまでにもう少し実際にコードを書いて経験を積んだ方がよいと思います。

Excelライブラリをどれだけ使いこなせるかがポイント

先に紹介したコードのパターン例で、RangeやCellsという単語がでてきましたが、これはそれぞれExcelのワークシート(Worksheetオブジェクト)に紐付く「プロパティ」です。

このあたりが恐らく、Excel VBAで1番よく使うプロパティだと思います。そしてこれは、Excelならではの「プロパティ」です。

よく見かけるChromeやSafariなどのWebブラウザを通じて操作するサービスはブラウザで表示されるように結果をWebブラウザに送信しますが、Excel VBAの場合結果はExcelのシート上のセルに表示します。 Webブラウザに結果を表示するサービスは、プログラミング言語が違っても表示する部分の指示の仕方はそんなに違いはありませんが、Excel VBAはExcelのシートなだけに、全く違った体系になります。

そして、その体系をExcel VBAから使えるようにするのが「Excelライブラリ」という「ライブラリ」です。(ちなみに、Wordを立ち上げて「Wordライブラリ」を有効化したらWord VBAです。)

f:id:ebyan:20191207232748p:plain
ライブラリの設定

当然、Part1の前振りがあるので、この「Excelライブラリ」のところにかなり注力されて書かれたのだと思います。

この書評を書くために実際のサンプルコードを逐一試したり、プロパティを一つ一つ確認しているわけではないのですが、サンプルコードやRangeやCellsでどういう操作ができるか、設定できる値にはどういうものがあるか、はかなり細かく書かれています。

体系を上層部から書き起こしているため網羅性はありますが、「こういった処理の時につかえそうなプロパティはどれだろう」と逆引きするにはつらいかも知れません。

とはいっても、このパートが1番よく参照することになるのではないかと思います。

そしてやはり体系をまとめた書籍のありがたさ(まとめとして)

いままで、Excel VBAのテクニック本、入門書的なものはいくつか見た(読んだ)ことはありますが、それ止まりでした。

この書評を書くにあたって、amazonで検索しましたが、ほんとにないんですよ。

O'Reilly(オライリー)という大抵のプログラミング言語の書籍を出している出版社のサイトをみてもExcelに関する簡単な書籍が数点あるのみ、amazon.comでもめぼしいのがすぐ見つかりませんでしたね。

なので、この本が出版されたことでVBA使いが今後だいぶ楽にプログラミング(というか、プロパティを指定するコーディング)が出来るようになるのではないかと思います。

VBAそのものが枯れているけどまだまだ利用されるプログラミング言語なので、今後本書がバイブルになるのだと思います。

後書きにありますが、企画に8ヶ月、執筆に1年かかったそうです。

お疲れ様でした&ありがとうございました(と言いたくなる内容とボリューム、575ページです)。

パーフェクトExcel VBA (PERFECT SERIES)

パーフェクトExcel VBA (PERFECT SERIES)

  • 作者:高橋 宣成
  • 出版社/メーカー: 技術評論社
  • 発売日: 2019/11/25
  • メディア: 単行本(ソフトカバー)