こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ACCESSのマクロかVBAを勉強するかで迷ってます

ACCESSのVBAを勉強するよりもマクロを勉強するほうがよいのでしょうか?非常に迷ってます。
マクロやVBAを勉強する目的としては、仕事でアクセスを使っています。アクセスを扱っている以上、マクロかVBAはマスターしたいと思っているからです。
どなたか、勉強方法を教えてください

投稿日時 - 2007-03-22 23:48:54

QNo.2857025

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(8)

ANo.8

ちょっと一言。

ExcelのマクロとVBAの関係と、Access のマクロとVBAの関係は違います。

ExcelのVer4 マクロは、れっきとした別の手続き型のプログラミング言語です。Excel Applicationに直結した互換性のない言語です。一行ごとに数式を書いて処理をしますので、かつてのBASIC言語と同じ処理方法を持ち、豊富なマクロ関数を持っています。VBAでは、プロパティを取得したり変更する場合には、オブジェクトからとりますが、マクロは、すべて関数で行います。

しかし、ExcelのVer4 マクロは、VBAとの互換性を保たれていませんので、VBAでは、時々、不足やうまくいかない部分に、いまだに、Ver4マクロ関数に頼らざるを得ないのです。

Accessの場合は、マクロはVBAの切り替えが可能ですし、マクロでは出来ない部分で、VBAで細かな表現が可能にさせます。#6 さんの考え方のとおりですが、また、Accessだけでは、なかなか、VBAの深い部分までは、行き着かないのが現状ではないでしょうか?教本も少ないように思います。ExcelのVBAやVBなどの経験があれば、そんなに難しくありませんが、いきなりVBAでは歯が立ちません。

私が、最初に実際のAccess VBAを使いながら感じたのは、全体的には、Excel VBAよりも、VB(6)に似ているという印象を持ちました。それは、いきなりFormのイベントから入っていくからです。イベント自体は、Excel VBAで言えば、中級に入りますから、もう少し基礎的な知識がほしいと思います。Access VBAは、Excel VBAの中級から上級の知識を要求されることが多いと思います。

投稿日時 - 2007-03-24 10:08:03

ANo.7

マクロを勉強する時間があったらVBAを勉強なさった方が
有効だと思います。

マクロの方が簡単にできると思われるでしょうが、VBAに慣れて
しまえば、圧倒的にVBAの方がラクだと思います。

また、1つのMDBファイルの中にマクロとVBAが混在している場合、
後で不具合を改修したり、機能を追加変更する際に、とても煩雑に
なることが多いです。マクロとVBAの処理基準を明確にしていれば
比較的ラクですが、作成前に曖昧にしていると、特に障害対応等の
時には、VBAだけにしておいた方が絶対にラクです。

また、Ofiiceでは他のアプリケーションでもVBAが搭載されているので、
他のOfficeアプリ(特にExcel)の自動化をする事になった時に、応用が
ききます。ちなみに、どなたかがAccessのマクロとVBAの関係をExcelの
関数とVBAに例えていますが、Excelで言うならばVer.4.0までのマクロ関数とVBAでしょうね。

投稿日時 - 2007-03-23 21:51:28

ANo.6

基本的にはVBAもマクロも同じではないでしょうか?
マクロで組んでるものはVBAで組めますし
VBAを分かりやすくしたものがマクロかなと思ってます。
双方ともOffice環境でしか動かないものですし、
マクロで出来ない・複雑なものはVBAで組むしかないのですから
極論ですが最終的にはVBAを勉強した方がいいと思います。
もちろん本格的なプログラミングになると#4さんや他の方が言う通り
奥が深いものでなかなかマスターできないです(自分含めて)^^;

なのでマクロ/VBAって線引きしないでAccessを動かす上で必要な時に
必要な方を勉強していくのがいいと思います。

投稿日時 - 2007-03-23 18:50:05

ANo.5

こんにちは。

ご質問のご様子から推測すると、
1.基本はマクロで処理する
2.マクロで出来ないことをVBAで補う
という方向で、学習されると良いと思います。

VBAが必須と思われるのは、バックエンドのDBに
アクセスしたい場合が多いと思います。

VBA全体ではその学習に膨大な時間がかかります。
Excelのような記録機能はありません。
いきなりVBAでは、途中で挫折してしまうこともありえます。

開発内容が明確になっているのならともかく、そうでない場合は
第1ステップ:マクロのマスター
第2ステップ:VBAの必要な機能の学習
をおすすめします。

投稿日時 - 2007-03-23 11:53:35

ANo.4

マクロ>VBAの順番で良いと思います。
VBAは勉強しても良いと思いますが、#3氏の意見のように底なしです。

マクロで出来ないことや効率が悪いことをVBAで達成するように持っていっては如何でしょう。そうするとVBAの知識も自然と付いてくるもんです。
私の場合、そうして自然とVBAも習得していきましたが、最近では、いかにVBAを使わないかを先に考えます。

あと、VBAの次にはAPIの世界が待っています。^^;)

投稿日時 - 2007-03-23 10:47:21

ANo.3

こんにちは。

私も、他の方のご意見と変わらないですが、私は、Office VBAを主に使う立場から言うと、Accessは、VBAがメインとはいえないと思います。

全体的な把握が大事で、とりわけマクロでも、VBAでもないと思います。全体的な組み立ての中で、個々の技術が必要になるわけで、Excelのように、ひとつを取り出してパーツで学習ということが出来ません。つまり、VBA自体を勉強するなら、ExcelのVBEditor で基本的なことも勉強できます。

Access VBAの入門編レベルですと、AccessのVBAって、こんな程度だと思うに違いないし、そんな難しい内容は出てきません。しかし、また、AccessのVBAって、底なしなんですね。私は一通りVBAは勉強しましたが、Access のVBAを書く人のコードは、半端ではないものがあります。おそらくは、もう、.Net の時代では、書ける人がいなくなるのではないかと思いますし、ある意味では、次の世代では、今のスタイルは続かないような内容のものもあります。

Accessを本格的にしていけば、また、VBAを専門的に勉強しなければならない時が来るかもしれませんから、仮に、VBAを勉強するにしても、今は、基本的なことだけで済ませられれば、それ以上にはする必要はないと思います。

投稿日時 - 2007-03-23 09:22:21

ANo.2

アクセスのマクロとVBAの関係って、
エクセルの関数とVBAの関係に似ていると個人的には思います。
私なんかこらえ性が無い人格なので、すぐにプログラムを書いてしまうのですが、
このコミュニティで、様々な関数を駆使している回答を見ると、
「ほえ~」と感心してしまいます。
確かに関数で処理できるならその方がいいに決まってます。
ですが関数自体もプログラムの一つ、という見方もあります。
自分で関数を作ることは出来るからです。
「表裏一体」ってやつですね。
これをアクセスで言えば、VBAにて「テーブルを開く」等のものは作れるけれど、
だったらマクロをそのまま使うよね、ってことです。
マクロで出来るのはここまで、ここから先はプログラム。
それを判断するためには、まずマクロを理解していないといけない。
私はそう思います。

アクセスは「クエリ」「フォーム」「レポート」「マクロ」のどれもが、
一筋縄ではいかないくせ者です。
じっくりいきましょう。

投稿日時 - 2007-03-23 07:34:04

ANo.1

マクロのほうが取り組みやすいし、VBAに比べると簡単なので、
まずは、マクロから始めてみるのがいいと思いますよ。
マクロで出来ないことで、付け加えたい機能とかが出てきた時にVBAを勉強すれば良いでしょう。

投稿日時 - 2007-03-23 00:03:10

あなたにオススメの質問