』という旨のことを正直に、ご自分のサイトで告白されています。「ExcelVBAのレジェンド」さんたちの本で、この本を超える「初心者本」を書いている人は、私は見たことがありません。「ExcelVBAのレジェンド」さんたちは、「初心者向けだから」と逃げてばっかりいて「教えない」部分が多いですので。前述の「Variant」もそうです。結局それが「本人のためにならない」のです。いくら、「プログラマになるわけじゃない」としても、もちろん「ビジネスパーソン」が全部できるわけじゃないから全部はやらないにしても、「多少手抜きはするにしても」、でも、「最低限という話で」「やらねばならないことはやらねばならない」「通らねばならないことは通らねばならない」のです。2冊目の本には、本書よりも詳しいプログラムコードの「訳」が「全編」載っています。オブジェクトはセルとシートのみですけど、コンパクトにしっかりとまとまっています。コレクションだけでなく配列にも使えることが事例付きで載っています。文でやる方法と2つあることもわかります。縦も合わせて全部のセルに対してループできることもわかります。文でのループ処理の範囲の対象にできることもわかります。(もちろん大きな表では速度が出ないかもしれませんが、でもそんな巨大な表ばかり扱う仕事ばっかりではないはずです。1つの目的に対してまずはできるだけいろんな方法を学び、そしてそれは、組織内全体のExcel習熟度・メンテ・TPOの変化によって、都度、使い分ければいい・機能のコーディネートバランスを変えればいい・ウェイトを変えればいい、のです。Excel自動化の教科書」には書かれていません。オブジェクトの構造がわかればわかるほど、この2冊のシンプルさやすごさがわかってくると思います。その順番で書かれいているのかとか・・・。(愚かな人は、文法重視しすぎ、とか、この本の評価が低いです。ExcelVBAの場合、文法を理解するとは、階層構造やオブジェクトの基本を理解することと同義です。それがわかってないと文法自体が理解できませんから、エラーなんて絶対に自分で解決できませんし、Q&Aサイトで聞いたところで、回答者の言っていることが理解できません。「文法重視しすぎ」とか言う人は、「階層構造をまず最初に理解することが、どれだけ重要なことか。AccessVBAよりも、ExcelVBAではそれが重要であるか。」、それが、わかってないのです。)いい先生かどうかは30秒で判断できます。「私のようなド素人にでも、ヘルプとオブジェクトブラウザの使い方をわかりやすく教えてもらえますか?」と聞くだけです。「もちろん!いますぐやる?」と、最低限何を、何から理解しないといけないか、全体像・目次だけでもすぐに語ってくれる先生ならいい先生だと思います。Excel2000の階層構造一覧図をさっと出してくれる先生なら「当たり」だと思います。階層構造の重要性を理解できないうちはヘルプもオブジェクトブラウザも絶対に読みこなしたり活用したりができませんので。VBAを「階層構造一覧図ありき」でそれを見ながら入るのと、全くナシで入るのとでは、やはり理解度がかなり変わります。Excel2000の階層構造一覧図は古いしすべてのオブジェクトが網羅されているわけではありませんが、でも、オブジェクトやその階層構造を学ぶときにすごく役立ちます。それに、そもそもオブジェクト変数を使ってコードを書く時も、オブジェクト式(いわばオブジェクトの生データ)を書く時も、階層構造どおりに書かないとエラーになってしまいますし。階層構造やプロパティの省略がエラーになるケースとならないケースの違いもわかりません。上位の階層のオブジェクトを知るにはParentプロパティ+TypeName関数、あるいはオブジェクトブラウザ+F1ヘルプ、下位のオブジェクトを知るには、ローカルウィンドウやTypeName関数、あるいはここでもオブジェクトブラウザ+F1ヘルプなどが便利です。(一覧図は、Microsoftのサイトにあるものと、Excel2000~2003のヘルプに入っているものがありますが、後者のほうが、オブジェクト式を書くときに迷いにくいと思います。Webのほうのは、コレクションが上位に記されているので間違って理解しがちです。オブジェクト式=生オブジェクトを書くときにすごく惑わされます。)でもって、この2冊で、基本が理解できたら、次は、DAO、ADO、SQL、MicrosoftQuery(QueryTableオブジェクト)、ピボット、グラフ、をVBAで動かすこと、あと、COMオートメーション(2つのバインディング、New、Add、CreateObject関数、GetObject関数の違いなど)と、MicrosoftAccesのフォーム作成、のことを学ばないといけないと思います。(DAO、ADO、SQL、QueryTableオブジェクトを学ぶと、閉じたExcelファイルを、閉じたままの読み書きやループを使わずに何百行も一括書き換え、といったことが可能となります。列名で扱えるので列が増えようが移動しようが関係ないため、再設定も何もいらず便利なので結構やりたくなる処理です。ネットワーク越しのファイルサーバのExcelファイルに対しても行えます。やりすぎはよくないかもしれませんが。DAOやADOのオブジェクト・コレクション・プロパティ・メソッドが使えますので、表に対してだけは、クラスモジュールでオブジェクト化する必要性もだいぶ減ることもわかります。絶対ではないのはもちろんですが。)話が逸れましたが、特に「クエリをソースにしたAccessフォーム」は経験しておかないと、無駄なプログラミングが10倍は増えます。逆に経験しておけば、機能追加やエラー対策・メンテも含めて、プログラムの管理コストがかなり・多分10倍は小さくなります。AccesssとExcelをCOMなどで連携して使うのが私を含めてド素人レベルでは一番コストが低いので。(Accessの数万をケチってExcelで「全部」頑張るなんて、なんという時間コストと金額コストのムダか!というくらいムダが増えます。)ちなみに、AccessVBAのほうがExcelVBAよりも、構造的に簡単ではないか?と思います。(「ユーザーフォーム」のオブジェクトモデル全図と似てて、階層がExcelよりも多くない。)なので、ExcelVBAがちゃんと分かる人なら、AccessVBAは絶対に理解しやすいと思います。ExcelでMicrosoftQueryが扱えれば、「Accessクエリ」の勉強もしなくていいですし。同じと言っていいほど操作が似ているので、すっと入れると思います。SQLもMicrosoftQueryで学べますからなおさら困らないと思います。そこまでわかったら初めて「中級の下」です。(ExcelVBAで使える機能をさらっとやっただけなので)ですし、また、「機能のコーディネイトバランス」「本当のコスト削減とメンテの関係」「本当のデータ管理のムリムダムラの低減(エクセル管理ではなくデータ管理)」の意味も分かりはじめると思います。そこまでいけたら、他人のファイルや会社のファイルをVBAで触ってもいいと思います・・・、というくらいのこころづもりのほうが危険度が下がって良いと思います。現実的には、そこまでやらなくても触ってしまうこともやむをえないとは思いますが・・・。そのへんまでやって、「ExcelVBA自体」の意味・構造がちゃんとわかってくればくるほど、先ほどの2冊のすごさがわかってくると思います。Excel自動化の教科書:の本当の意味:レベル:思想の過ち」もわかってくると思います。いう著者の方の想いを、ちゃんとくみ取っておられないのでは?とも感じました。SEなどではない、ビジネスパーソンの方々(プログラミングを営業などと兼任でされている方がた)においては、本当に「信じすぎないように」「よくよく」ご注意ください。買ってそれなりに役立てるのは良いですが。僕の後輩がこの本を読んでいたら、「データ管理の基礎の話も無いからビジネスの多角的な集計やリストアップになんの役にも立たないし、無駄なプログラミングが増えるだけだよ?この本。悪いことは言わないからやめといたほうがいいよ。お客様に対してもそういう目で見るようになっちゃうしね。決めつけたがるんだよね。練習したくない・追求したくない・手っ取り早く苦労せずに覚えたいから。