• ベストアンサー

エクセル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
質問者

補足

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

関連するQ&A

  • Excel VBAについて勉強したい

    Excel2007です。 最近仕事でVBAを使う機会が増えているのですが、まだまだ初歩的なものしか作れません。 例えば、ユーザーフォームがあって、その中のコントロール(テキストボックスとかコンボボックスとか)に「セット品記号」を入れたら下に用意したコントロールにセット内容が自動的に表示されるとか、dictinaryでできる、と言われたのですがまずdictionaryの使い方が理解できていません。 検索して出てきたコードを応用しようにも、ちょっと知らないコードがあるとつまづいてしまいます。 それで、VBAについて勉強できる本を探しています。 特に知りたいのは ・dictionaryの使い方 ・Offset、Resizeの使い方 ・配列、配列変数について ・AdvancedFilterの使い方 このような内容です。 今持っている本は 「ExcelVBAのプログラミングのコツがゼッタイにわかる本」(立山秀利/秀和システム) 「ExcevVBA逆引き辞典パーフェクト」(田中亨/翔泳社) 「すぐわかるExcel マクロ&VBA」(アスキー・メディアワークス) 「エクセルのマクロとVBAがみるみるわかる本」「世界で一番簡単なExcelVBAのe本」(道用大介/秀和システム) 何かおススメの本がありましたらお教えください

  • EXCEL VBAの参考書

    EXCEL・VBAを勉強したいのですが、参考書が多すぎてどれがいいのかわかりません。ただ、仕事で使うので、なんとしても習得しなければなりません。 (1)プログラミングの経験はまったくありません。 (2)VBA以外のEXCEL機能はほぼ大丈夫です。 (3)英語は苦手です(><) 現状はこんな感じです。お勧めの参考書があればお願いします。

  • [VBA] おすすめの参考書

    業務上VBAでExcelのマクロを作成する事が多いのですが、 知識に乏しく煩雑なプログラムしか組めないため、参考書を探しています。 しかし、本屋等を見てみると、如何せん種類が多すぎてどれがいいのか判別がつきません。 よければ皆様のお勧めを教えてください。 現在の自分のスキルは、 ・Cの基礎を1年ほど学習 ・VBAは「マクロの記録」で使用される程度の関数の知識しか持っておらず といった具合で、 現在は「マクロの記録」で作業を記録した後、変数等の処理を編集してマクロを作成しています。 やりたい事は、 ・効率的なプログラムを組みたい ・無駄な行を添削したい ・VBAの関数や仕組みをきちんと理解したい の三つがメインです。 業務作業ではフィルタやピボットを頻繁に使用しています。

  • Excel VBAを使いこなせるようになりたい

    Excel VBAを自由自在に使いこなせるようになりたいと思っています。 プログラミング経験は大学の1単位分のみです。アルゴリズムの基本は学んだことがあります。ITパスポート超え、基本情報技術者未満のIT知識です。 最短で学ぶためにはどのような方法がおすすめですか? 質のよいWeb講座があれば受講したいです。 VBAエキスパートの合格を目指しています。

  • Excel VBAについて

    プログラミング初心者です。 Excelのデータを、VBAをつかって、テキストファイルにおとすよう指示されました。しかし、いまいちやり方がわかりません。 いろいろサイトを調べてみましたがよくわからなかったです。 どういうふうにコード入力していけばいいのでしょうか? ご存知のかた教えてください。 基本的な構文はわかりますのでサンプルを教えていただきたいです。 また、わかりやすい参照URLがあればそれでも結構です。

  • C#で作成したDLLをExcelに内蔵してVBAで実行する方法

    Excel VBAで開発しているのですが制約が多く限界を感じています。C#でDLLを作成してExcelVBAから呼ぶことはできると思いますが、DLLを外付けにするのではなく内蔵することは可能ですか? Excel 2003 .Net Framework 3.5

  • UWSCをエクセルVBAを翻訳して使いたい

    UWSCを勉強して使っているものなのですが、いかんせんエクセルVBAにくらべて普及率の問題かサンプルになるコードが落ちてないです。 たとえば、エクセルのデータベースを自動ソートしたいのですが、「UWSC エクセルソート」と検索してもサンプルになるコードはでてきませんが、「エクセルVBA ソート」と検索するとわんさかでてきます。 どちらのコードも使っているコードにそこまで違いがないように見えます、もし、UWSCとエクセルVBAの違いをまとめてあるサイトや知識のある方がいましたら教えていただけないでしょうか?

  • エクセルVBAでの変数のスコープ

    基本的なことなのですが、教えて下さい。 当方、PHPやjavascriptを中心にプログラムしてきたのですが、 今回、エクセル+VBAでプログラムすることになり、VBAを勉強しているところなのですが、ちょっと戸惑っています。 いままでは、グローバル変数をなるべく使わないように、プログラミングをしてきたのですが、 VBAの勉強で、参考にしている本のコードは、全てグローバル変数を使っています。 そもそも、エクセルのシート・セルがグローバル変数のようなもの(?)なので、変数のスコープにこだわってもあまり意味がないのかな?とも思います。 エクセル+VBAである程度の規模のプログラムを作る際、 変数のスコープはどのように使い分けるのが良いのでしょうか? すみませんが、ご教授の程、よろしくお願いします。

  • Access VBA を習得するまで

     Access VBAを習得された方にお伺いできればと思います。  現在Access基礎を身に着けた程度で、次はVBAを目指して いるのですが、参考書を読みましても今までとは違う一筋縄では いかない感じがあり、時に断念しそうになったり、 プログラム未経験者に独学は無理?という思いが頭をかすめます。  コードを記入するのに1文字でも脱字があるとコマンドエラーに なってどこが原因か探すのにも一苦労です・・・  Accessのときも一筋縄ではいかない感じはありましたが、 VBAはそれ以上です。      今回見習いたいところは見習っていきたいと思い、 お伺いたいことをまとめてみましたので、 ご回答いただけますとさいわいです。 1)スタート時はどの程度のレベルだった? ex 全く初心者、プログラム経験者.etc 2)独学?Or 教室などに通った? 3)学習に当てることができた時間と、学習に要した期間 ex 週2回夜2時間で半年.etc 4)勉強ツール ちなみに、私は『独習Access 翔泳社』 『Accessプログラミング開発工房 ソシム株式会社』 などを読んでいます。  回答は全ての項目ではなくても結構ですので、 よろしくお願いします。

  • エクセルのフルパスをvbaで取得

    当方エクセル2003で、 エクセルのフルパスは C:\Program Files\Microsoft Office\OFFICE11\ EXCEL.EXE です。 それをVBAで取得するにはどうすればいいですか? Sub サンプル() Debug.Print 'オフィスがインストールされているフォルダのパスの取得 End Sub のようにして、 C:\Program Files\Microsoft Office\OFFICE11\ EXCEL.EXE を返したいです。 VBAコードをご教示ください。

専門家に質問してみよう