• ベストアンサー

エクセルVBAでお奨めの参考書は?

エクセルVBAのテクニックの辞典のようなものでお奨めのものはないでしょうか? VBAのマニュアルというより、その時に必要な機能やプログラム例が載っているものを探しています。 初心者向けでなくエキスパート向けのものを探しています。 よろしくお願い申し上げます。 既に所有している参考書は以下のものです。 Excel2002VBA辞典 翔泳社 Excel2002VBA即効サンプル集 翔泳社 仕事に役立つExcelVBA実用サンプルコレクション ソフトバンククリエイティブ 開発者のためのExcel2000VBAプログラミングガイド エーアイ出版 私のスキルは以下の通りです。 エクセルVBAの基本知識は既に持っています。(と思っています) メインフレームのアセンブラ、PL/Iなどの開発経験があり、プログラム構造やアルゴリズムの知識はあります。 昔マッキントッシュのハイパーカード言語をかなり作ったことがあり、オブジェクト指向のプログラミング経験はあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 どうも、ご事情、説明くださって、ありがとうございました。 お仕事は、分かるようなつもりでいたいのですが、実際は分かりません。今までの質問の中に、その片鱗があったようですが。 >ここ半年間で作ったマクロを印刷するとA4で10センチ位になりました。 これを、テキストファイル化できていたら、もう少し違うのだろうなって思いました。 以前も書いたことがありますが、私は、印刷していたのは最初だけです。テキストファイル化が許されない環境でしょうか?Excelを使ってファイル化もアリとは思うけれど、検索しにくいですからね。 >職場でエクセルの一般的な操作ができるのは基本ですが、VBAのスキルは求められてはいません。 どう言ってよいのか分かりませんが、世の中、そんなところでしょうね。 Access と違って、Excel VBAでは、ほとんどは、潰しも利かないと思うのです。反論ある人もいるとは思いますが、プロジェクトAの某氏のように、月にExcelの開発で何百万も取れるという人は、日本でも数人だと思います。それに匹敵するというなら別ですが、みんな、それをメインにする人はいません。 私が最初から書いていた、Excelの上級レベル(エキスパート)の内容というのは、いずれにしても、かなり狭い範囲の分野で、特別な会社にしか必要のないスキルなのです。それ以外の人は、記録マクロを加工して動かせれば、VBAとしては十分なのですね。『Excelでお仕事』の井上氏は、ここの掲示板にも現れているようで、あまりうかつなことは書けませんが、彼の「お仕事」というのも、私からすると、一定レベル以上の分岐点からは、かなり特殊だなって思うのです。企業でやっている仕事は、必ずしも、一般の人たちのVBAの助力にはならないように思っています。 つまり、Excel VBAは、ある程度のところまでで、後は、達観(または、諦め)してしまうのが良いのかもしれません。上級になるためには、無駄な時間が多すぎます。現実に、エキスパートというか、Excel 上級レベルというのは、大変なだけです。趣味なら別ですが。その上、いずれ、またMSに裏切られます。 「メディアテックのExcelVBA徹底活用テクニック」 本日、本屋さんで確認してきました。正直なところは、新しいというだけで、もうひとつ、と思いました(私の立場と、believe_meさんとの立場は違いますが)。新しい2007対応の本を購入するなら、もう少し他のものが出てから比較してもよいかと思います。 それと、例えば、『Excel VBA実践ワザ&上級技大全』ナツメ社(内容は、上級技ではありません)も、たぶん新しいものが出るかもしれませんが、これは、即効性があって、なかなか面白いです。

believe_me
質問者

お礼

随分時間が経ってしまいましたが、回答ありがとうございました。 メディアテック出版のExcelVBA徹底テクニックを購入しようと思っています。 現在、図書館から1ヶ月以上借りています。 ちゃんと2週間毎に返却に行ってますが、(有り難いことに?)あまり人気が無いようで予約が入っておらず、何度でも借りられるようです。 借りられなくなったら購入しようと思っています。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 個人的な興味もあったので、もう少し書かせてください。 私はコンピュータ自体は専門ではありませんし、今更、コンピュータの開発の世界に入れる年齢でもありませんが、本物のプロの人たちは、本もヘルプも見ずに、そのまま、日本語のスピードよりも速い入力で、コードが書けるようですね。私個人は、何度かそういうものをみて、あまりの違いに唖然とした経験があります。VBAの世界では、そんな人はいないと思います。 believe_meさんのところは、なかなか、難しい環境ですね。通常、最近の言語開発では、Helpが、IEにつながれているのが最低条件になってしまっているようですが、LANなどですと、未だにそうは行きませんね。 私個人の現在の話をさせていただきます。あまり参考にはならないかもしれません。 私は、Tip集は、いくつか持っていますが、今は、ほとんどTip集は見ません。私は、Tip集もインターネット検索もしているわけではありません。他人のコードを引用するのが好きではないということもあります。ヘルプを使うだけです。VBAの場合は、検索に手間取ってMSライブラリはあまり役に立たないようです。また、最近は、Win APIはほとんど使わないようにしています。 現在の私が、ExcelのVBAを書くときに使っているものですが、 技術評論社の ポケットリフェレンス『VBScript』(←適当なものを探しています)、同社『正規表現』(←めったに使わない)、秀和システム『Access VBA辞典』(ADO,DAO関連-めったに使わない)、エクスメディアの『Excel 2000関数』(←本当は秀和システムの本がほしいのですが、買うほどではない) 技術評論社『Excel VBA 実践プログラミング』の巻末の一部を、そのまま、Excelのブックに移したので、現在は使っていません。ASCIIコード表と制御コード表を使います。(なぜか使います)アイコンの一覧表は、HTMLになっています。 後は、believe_me さんの開発には使わないとは思いますが、Excel Ver.5 Helpを今でも使っています。今のHelpよりも優れています。Ver.4やVer.5のMSのマクロ関数やVBAのガイドの本もあるのですが、本は、少し邪魔です。 自分で収録したテキストファイルは何かというと、掲示板で、結構、同じ発言や内容を繰り返しているから、それを引用するときに、自分のものを使うことにしているだけです。ただ、その都度、なるべく修正するようにしてはいます。 Excel VBAでは、際立ったアルゴリズムを使うわけではありませんが、時々、バブル-ソートを使う程度で、それを必要とされるのはめったにありません。一度、コードを入手し参照すれば、その後は、それを使っていけます。 それ以外のものは、今は、めったに使わないですね。 アドインやツールの環境としては、今回は関係ありませんが、API Viewer やSPI++やOLE Viewer なんていうものは、VBAと直接関係ありませんしね。アドインも必要性が高いわけではありません。確かに、有償のアドインは良いのかなって思いますが、程度問題です。 本来は、Visual SourceSafe(Developerのツール) があると、便利だろうなって思うことがありますが、今更、どうしようもないですし、必要もなくなってしまいました。 これが、私の全ての周辺環境です。 話を戻させていただくと、結局のところ、自分の段階的な知識を挙げていけば、それで応用が利くのだと思うのです。ただ、人間、半年も経つときれいに物事を忘れてしまうので、その記録だけが必要かなって思います。 >テキストファイルをエディタで開くのは不可能です。 開発する際には、メモ帳やワードパッドは使えないですか? なるべく、自分のやったことの記録を残しておかないと、結構、細かいところでつまづくことがあります。複数のブックのモジュールの中をすべて検索できるわけではありませんし、テキストのほうが検索は楽です。

believe_me
質問者

お礼

詳しいお話、ありがとうございます。 職場の環境は、PDFファイル以外すべての書類、設計文書はエクセルです。 職場でエクセルの一般的な操作ができるのは基本ですが、VBAのスキルは求められてはいません。 メインフレームのエキスパートは沢山いますが、VBAを操れる人間はほとんどいません。 VBAは仕事で使うというより、自分の仕事を効率良くする為に使っています。 ここ半年間で作ったマクロを印刷するとA4で10センチ位になりました。 主なマクロは以下のようなものです。 PL/I(メインフレーム言語)のINCLUDE文(外部参照)を自動的に全展開。 展開したPL/Iのデータ記述部からファイル構造書を作成。 ファイルダンプをエクセルに取り込み、構造書でデータ解析。 構造書から簡易言語プログラムソース、ジョブ制御言語の生成。 設計書作成用ショートカットを多数。 勤務管理ソフト。 開発工数集計ツール。 などなどです。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 >メディアテックのExcelVBA徹底活用テクニック 新しい内容の本ですね。今回のその書籍は、まだ見ていませんので、後で本屋さんで確認してみます。今、目次を見ただけですが、今までの、believe_meさんの過去のご質問の流れからすると、ご要望には一番、即効性が高いかもしれません。ただし、半分以上は無駄になってしまうだろうけれど、アイデアブックとしては損はないと思います。 Tip集をお求めなら、秀和システムの『Excel VBAプログラミング 逆引き大全』などは重宝するようです。全体的にはレベルは低いようです。技術評論社の『Excel VBA 実践プログラミング』の巻末の付録は、かなり使えます。こちらは、プロの技とか書いていますが、だいたい、中級レベルぐらいです。それより上級は、VB系の書籍を求めたほうが早いですね。 ただ、あるレベルに達したら、Tip集は、あまり追わないほうがよいかもしれません。当たり障りのない内容にはなっているけれども、運用面になると、もう少し周到な書き方を要求されることがあります。掲示板の回答例も同じです。 それで、一般的に上級に行くに従って、いろんなことが要求されます。 #2で紹介した内容のように、プロレベルでは、Excel VBAを使いこなすというのは、Excelだけをしていればよい、というものではないわけです。それだけに難しいものがあります。 ところで、この質問とは直接関係のないアドバイス(にならないかも)ですが、今までの、believe_meさんのご質問を振り返って思うことですが、おそらく、本当は、お仕事でIE検索など可能なら、そんなに聞かなくても済んでいるような気もします。 せめて、ご自身で、テキストファイルで、自宅からでも、自分でいろんなコードを集めたり書いたりした、コード集を作っておいて、開発には、それをエディタなどで閲覧して使うなどすれば、そんなに仕事では困らないような気がします。

believe_me
質問者

お礼

回答ありがとうございます。 やはり自分でTipsを集めるのが一番のようですね。 でも市販の書籍が必要です。理由は下記の通りです。 職場は個人のPCの持ち込みは厳禁ですし、FDD、USBメモリ、CDも使用できません。 管理ソフトが導入されており、厳重に監視されています。 そんな訳でテキストファイルをエディタで開くのは不可能です。 また最近は書類の持ち込みもうるさくなっており、問題なく持ち込めるのは市販の本ぐらいです。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 VBAからのアプローチはかなり大変だと思います。一番よいのは、Visual Basic ですが、もう、VB6自体が手に入りませんし、書籍だけを購入して、それを、VBAで表現しようとしても、違いが分からないので無理に近いものがあるかと思います。 エキスパート向けの書籍といえば、以下になります。 http://www.moug.net/shop/17.htm VBA Professional Office 2003 学習資料 「連携」 VBA Professional Office 2003 学習資料 「仕様・設計・コーディング」 また、非常に手に入りにくいのですが、『Excel2000 Vsiual Basic プログラマーズガイド』はプロ用になります。(Excel97用の同名の書籍とは内容がまったく違います)『Microsoft Excel 97 デベロッパーズキット』は、現在のExcel2003 までのファイル構造 Biffに触れていたりします。なかなか高価なものです。日本では、アスキー社が販売していたのですが、今は、絶版ですが、日本語は、年に数回、前者のほうは、オークションなどに登場することがあります。後者は発売期間が短かったせいと絶対数が少ないのでもう不可能な気がします。なお、Amazon.Com の英文のほうが安価で手に入りやすいです。慣れれば読めないことはありません。また、Ver.5 の独特のテクニックは、Excelでは、運用面で必須の部分があるのですが、なかなか資料が手に入りません。 しかし、既に、それらが発売されて10年も経ち、今、アプリケーション言語が変わろうとしていますから、今からでしたら、VBAは諦めて、VSTA の関連からアプローチしていったほうがよいかもしれません。 また、技術的なレベルとは別に、運用性の高さを求めるとなると、かなり事情が違ってくると思います。それは、書籍では得られません。 高度なスキルや違った言語を勉強すると、VBAの発想や表現は豊かにはなるのですが、運用性や実用度のレベルをあげるには、毎日、いろんな専門掲示板の質問をROMして、自分なりの解答を作ることです。そして、そこの回答者と解答を比べてみることです。実際に、VBEditor で書いて、実行してみて始めて分かることがあります。 年間で、数百のプロシージャを書き上げ、約500個を超える頃から、自分なりのスタイルと自信に変わると思います。上達しないと思っている人の多くは、実際に、プロシージャを自分で書いて実行した数が少なすぎるからです。 特に、スキルだけでは解決しないのは、ご自分でシステムを作ってみると良く分かります。一度、掲示板ではなく、実際にシステムとして書いているプロレベルの人のコードを参考にしてみるとよいです。決して、難しいコードを書いているわけではありません。私は、あまりテクニックを追うことが好きではありません。VBAは、あくまでも運用を目的としたものですから。出来れば、基本的なことを、初心に戻って、もう一度おさらいしてみるのもよいとは思います。 今までの、believe_meさんのご質問の内容からすると、例えば、技術評論社『かんたんプログラミング Excel VBA 応用編』は、今回のご質問の意図からは反しますが、適しているように思います。 お分かりになっていることだとは思いますが、VBAなどのプログラミング言語を習得するには、段階的な積み重ねが必要だと思います。関数とは違って、基本的なことを、まったく考慮しないで先に進めると、思わぬことで支障をきたすことがあります。

believe_me
質問者

お礼

回答ありがとうございます。 VB6(正規版)は持っています。 以前DAO及びADOを使ったAccessDBの更新・検索アプリケーションを作ったことはあります。 Window2000を使っていた頃やってましたが、PCをXPに替えてからはインストールしていません。 技術評論社『かんたんプログラミング Excel VBA 応用編』検討してみます。 今日図書館で見たメディアテックのExcelVBA徹底活用テクニックが比較的良いような気がしますが、いかがでしょうか。

すると、全ての回答が全文表示されます。
  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

過去ログから http://pcsoft.okwave.jp/qa3267257.html を見てください。 スキルアップ講座をお勧めです。 参考書の紹介もあります。

believe_me
質問者

補足

回答ありがとうございます。 自分のスキルアップをしようとするのが今回の目的ではありません。 技術辞典的に必要なプログラミング例がのっている書籍を探しています。 職場がネットに接続できる環境ならば、ネットで検索したり聞けば解決すると思いますが、私の職場はセキュリティ上の理由でインターネットに接続が一切できません。外部とのメールのやりとりも一切できません。 自宅に帰ってから聞くことはできますが、職場でその場で調べたいのが今回の質問の趣旨です。 (最初からそう書いておけばよかったですね。スイマセン)

すると、全ての回答が全文表示されます。

専門家に質問してみよう