- ベストアンサー
Excel VBA
ExcelのVBAを勉強してますが、なかなか難しくて頭に入りません。どうしたらいいですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
失礼な表現、記載、誤記等ありましたらご容赦ください。 小生は、学校でFORTRAN、社会人になってBASIC(昔のです)や簡単な数ステップのアセンブラ、WINDOWS時代になってVisual C++やVisual Basic(Windows用),ExcelのVisual Basicなどでプログラムを作ったことがあります。 はっきり言って関数は全部は覚えていません。 ただ、こんな処理は何かの関数で出来たはずと思って調べてその関数をコーディングする。その繰り返しです。 おおまかに、どんなふうにすればいいか理解できたら習うより慣れろ一本プログラムを作ってみてください。 小生も当初の戸惑いで同じ思いをしましたが一つ作ることで自信が付きます。 それとデータ型は詳しく頭に入れといた方がいいかと思います。 EXCELでお仕事(変数のデータ型:リンク1) ↓↓ http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_050_06.html >ExcelのVBAを勉強してますが、なかなか難しくて頭に入りません。どうしたらいいですか? どれ位、何で(本、ウェブ?)勉強されましたか? ある程度勉強されたら関数なんて覚えなくてもいいです。 ただし、関数でどのような操作が出来るか頭に入れてください。 必要な時に引き出せれば探し出せれば結構です。 操作していけば分かりますがVisualになってから探し出せる構造になっています。 昔は本を片手に関数を探したものです。 ANo.1さんと同じリンクですが(リンク2) ↓↓ http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/index.html ここにある「日付の関数」「時間の関数」「文字列の操作関数」「データ型変換関数」は全部覚えなくてもいいです。 ただし、どのような事が出来るのかは頭に入れます。 その上で、習うより慣れろ (1)最初はANo.1さんの言われる通りマクロでもいいですからとにかくコーディングして実行してみます。 このなか(リンク2)にあるカレンダーを作るでも結構、サンプルプログラムをコーディングしてそのまま作成して実行してみてください。 (2)(1)で感覚がつかめたらオリジナルのプログラムを一つ作ってください。 こんな関数あったけとか?こんな処理のできる関数やステートメントがないか最初は試行錯誤するとは思いますが一つ作れば自信が持てます。 アドレス帳のデータをEXCELデータに移植できるならオリジナルのはがきの宛名書き印刷ソフトとか? わからなかったらマクロでやってみて必要な部分を拝借すればいい。
その他の回答 (1)
- kagakusuki
- ベストアンサー率51% (2610/5101)
まずは、「マクロの自動記録」機能を利用して、簡単な操作をVBA化してみて下さい。 尚、マクロの自動記録のやり方は以下の参考URLのページ等を参考になさって下さい。 【参考URL】 よねさんのWordとExcelの小部屋 > Excel総目次 > VBA入門 > 1.マクロの自動記録と実行 > マクロの自動記録と実行(Excel2007編) http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_01_2007.html よねさんのWordとExcelの小部屋 > Excel総目次 > VBA入門 > 1.マクロの自動記録と実行 http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_01.html よねさんのWordとExcelの小部屋 > Excel総目次 > VBA入門 > [Excel VBA入門:目次] http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/index.html そして、Visual Basic Editor (以下VBEと表記します)を開いて、出来上がったVBAの内容を確認し、VBEの画面に表示されている内容と、自分が行った操作を比較してみる事で、VBAの記述内容のどの部分が、どの操作に該当しているのかを考えてみて下さい。 そうしますと、VBAの記述のどの部分が、どの様な意味を持っているのかという事が、うっすらと推測出来る様になるかと思います。 そうしましたら、次の段階として、「こんな操作をVBAで行わせてみたい」と自分で簡単な例題を考えて、簡単なVBAを試しに作ってみて、実際に予定通りの動作するのかどうかを試して下さい。 勿論、最初から上手く行くとは限りませんが、上手く行かなかった箇所は簡単に判るかと思いますので、どの様に工夫すれば上手く行くのかを試行錯誤しながら改良を繰り返しながら、半分体で覚えて行かれると良いと思います。 当然ながら、工夫する際に必要となるVBA関数やその記述の仕方に関して、判らない点出て来るかと思いますが、その様な時は、インターネットで検索してみられると良いと思います。 例えば、DateAdd(の働きが解らない場合には、「DateAdd( VBA Excel」をキーワードに検索したり、 又、範囲コピーのやり方が解らない場合には、「範囲コピー VBA Excel」をキーワードに検索されては如何でしょうか?