• ベストアンサー

Excel VBAでできること

仕事でExcelの関数は比較的よく使っていますが、 VBAを使うと、関数の利用に比べて何が便利なのでしょう? また、みなさん通常どうやってVBAを学ばれていますか? 教えてください。宜しくお願い致します。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.5

No3です。 マクロの記録も結構便利な機能ですが ここまででは 定型的な業務の効率アップになりますが 記録されたVBAに手を加えることで更に便利に出来ます。 次は Do Loopの使い方 Select Caseの使い方を学ばれてはいかがでしょうか? マクロの記録では出来ない様な機能を追加できます。 更には ユーザーフォーム の作成に進むとVBAの実力を知るところになります。入力作業が大幅に改善できるでしょう。 次は ファイルの操作、ほかアプリケーションとの連携について学んでみます。 データベースはAccessで 集計、グラフはExcelで VBAでメールを送る などできる様になります。 定型的な業務から Excelに自分の希望する機能を追加できる といった具合になると思います。

その他の回答 (4)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

ANo.1です。 >VBAは個別データを重視したデータベース関係を扱うのが得意ということでしょうか? >逆に、データの一覧性を重視するシートであれば、関数でも十分な感じですか? 私は入力用シートとデータ蓄積用シートを作成し、入力では常に新しい データを打ち込んでボタンを押して別シートに蓄積し、入力シートを クリアするというものです。 ユーザーフォームを用いた方はAccessのmdbファイルからデータを 読み込んで、表示させるという方法を取りました。 入力はAccessで行なっていました。 (社内での共有の手段として、Excelで表示のみを目的に作りました)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

ここは ためになりますよ。 http://www.asahi-net.or.jp/~ef2o-inue/menu/menu04.html 最初にマクロって何 について説明して有ります。

noname#66823
質問者

お礼

ご回答ありがとうございます。 マクロの自動記録機能(動作の記録)は何度か使ったことがあるのですが、定期的に同じ動作を繰り返すという作業そのものは少ないので、利用頻度自体はそれほど高くない状況です。 マクロの自動記録機能の限界を調整するのがVBAと考えてもよいのでしょうか?

  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.2

現状で困っていないのなら、特に気にされなくてもいいとは思います。 何が便利か?は説明がつかないほど便利です。必要な人にとっては。 仮にですが、顧客情報リスト.Xlsがあったとします。 顧客名/住所/電話番号/メールアドレス/親密度という項目を持っています。 これを親密度によって文章・送信者を変え、メールアドレスがある場合はメールで、メールアドレスがない場合は住所にハガキで、暑中見舞いをだすことになりました。(どちらも情報がないところはそれをリストアップする、、、) せっかくなので、これを機にそのリストをACCESSを使ってデータベース化もやりたいです。 この一連の処理のうち、メールを送信する/葉書をプリントアウトする/対象外のリストアップしたテキストファイルを作成する/ACCESSにデータベース登録/までをVBAでやれと言われれば比較的簡単にできます。今回は外部との連携を紹介しましたが、内部的なことも当然VBAを使うのと使わないのでは相当利便性がことなります。 (エクセルのスプレッドシートで通常使用する)関数ではどうでしょう?? VBAならばそこまで(というかもっとすごいことまで)できます。 中にはゲームを作られる方もいます。私もエクセルで数独の問題を解くプログラムを作ったことがあります。 VBAは私の場合はACCESSで覚え始めたのですが、最初は「AccessVBA によるデータベース作成」みたいな初心者本+「AccessVBA2000リファレンス」という分厚い本+ヘルプでいろいろ試しながらやりました。必要に迫られると覚えるのも早いようです。 VBAがわかるとVBSとかVBも比較的習得が楽です。

noname#66823
質問者

お礼

ご回答ありがとうございます。 VBAが得意とするのは「定期的に発生する動作の記録」ということでしょうか?

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

過去には、 ・数式では参照元が変更されると値が変更されるが、VBAでは値を代入することで変更を防げる。 (例:データベースの作成) ・ユーザーフォームを用いてデータをシートではなく任意の状態で表示できる。 (例:データベースの検索結果の表示) >通常どうやってVBAを学ばれていますか? ・参考書の購入 ・こちらを含め色んなQ&Aでの他の方の回答をテキスト等でファイリング ・参考となるサイトの検索&お気に入り登録 と言った感じです。

noname#66823
質問者

お礼

ご回答ありがとうございます。 VBAは個別データを重視したデータベース関係を扱うのが得意ということでしょうか? 逆に、データの一覧性を重視するシートであれば、関数でも十分な感じですか?

関連するQ&A