
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.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の中級から上級の知識を要求されることが多いと思います。
No.7
- 回答日時:
マクロを勉強する時間があったらVBAを勉強なさった方が
有効だと思います。
マクロの方が簡単にできると思われるでしょうが、VBAに慣れて
しまえば、圧倒的にVBAの方がラクだと思います。
また、1つのMDBファイルの中にマクロとVBAが混在している場合、
後で不具合を改修したり、機能を追加変更する際に、とても煩雑に
なることが多いです。マクロとVBAの処理基準を明確にしていれば
比較的ラクですが、作成前に曖昧にしていると、特に障害対応等の
時には、VBAだけにしておいた方が絶対にラクです。
また、Ofiiceでは他のアプリケーションでもVBAが搭載されているので、
他のOfficeアプリ(特にExcel)の自動化をする事になった時に、応用が
ききます。ちなみに、どなたかがAccessのマクロとVBAの関係をExcelの
関数とVBAに例えていますが、Excelで言うならばVer.4.0までのマクロ関数とVBAでしょうね。
No.6
- 回答日時:
基本的にはVBAもマクロも同じではないでしょうか?
マクロで組んでるものはVBAで組めますし
VBAを分かりやすくしたものがマクロかなと思ってます。
双方ともOffice環境でしか動かないものですし、
マクロで出来ない・複雑なものはVBAで組むしかないのですから
極論ですが最終的にはVBAを勉強した方がいいと思います。
もちろん本格的なプログラミングになると#4さんや他の方が言う通り
奥が深いものでなかなかマスターできないです(自分含めて)^^;
なのでマクロ/VBAって線引きしないでAccessを動かす上で必要な時に
必要な方を勉強していくのがいいと思います。
No.5
- 回答日時:
こんにちは。
ご質問のご様子から推測すると、
1.基本はマクロで処理する
2.マクロで出来ないことをVBAで補う
という方向で、学習されると良いと思います。
VBAが必須と思われるのは、バックエンドのDBに
アクセスしたい場合が多いと思います。
VBA全体ではその学習に膨大な時間がかかります。
Excelのような記録機能はありません。
いきなりVBAでは、途中で挫折してしまうこともありえます。
開発内容が明確になっているのならともかく、そうでない場合は
第1ステップ:マクロのマスター
第2ステップ:VBAの必要な機能の学習
をおすすめします。
No.4
- 回答日時:
マクロ>VBAの順番で良いと思います。
VBAは勉強しても良いと思いますが、#3氏の意見のように底なしです。
マクロで出来ないことや効率が悪いことをVBAで達成するように持っていっては如何でしょう。そうするとVBAの知識も自然と付いてくるもんです。
私の場合、そうして自然とVBAも習得していきましたが、最近では、いかにVBAを使わないかを先に考えます。
あと、VBAの次にはAPIの世界が待っています。^^;)
No.3
- 回答日時:
こんにちは。
私も、他の方のご意見と変わらないですが、私は、Office VBAを主に使う立場から言うと、Accessは、VBAがメインとはいえないと思います。
全体的な把握が大事で、とりわけマクロでも、VBAでもないと思います。全体的な組み立ての中で、個々の技術が必要になるわけで、Excelのように、ひとつを取り出してパーツで学習ということが出来ません。つまり、VBA自体を勉強するなら、ExcelのVBEditor で基本的なことも勉強できます。
Access VBAの入門編レベルですと、AccessのVBAって、こんな程度だと思うに違いないし、そんな難しい内容は出てきません。しかし、また、AccessのVBAって、底なしなんですね。私は一通りVBAは勉強しましたが、Access のVBAを書く人のコードは、半端ではないものがあります。おそらくは、もう、.Net の時代では、書ける人がいなくなるのではないかと思いますし、ある意味では、次の世代では、今のスタイルは続かないような内容のものもあります。
Accessを本格的にしていけば、また、VBAを専門的に勉強しなければならない時が来るかもしれませんから、仮に、VBAを勉強するにしても、今は、基本的なことだけで済ませられれば、それ以上にはする必要はないと思います。

No.2
- 回答日時:
アクセスのマクロとVBAの関係って、
エクセルの関数とVBAの関係に似ていると個人的には思います。
私なんかこらえ性が無い人格なので、すぐにプログラムを書いてしまうのですが、
このコミュニティで、様々な関数を駆使している回答を見ると、
「ほえ~」と感心してしまいます。
確かに関数で処理できるならその方がいいに決まってます。
ですが関数自体もプログラムの一つ、という見方もあります。
自分で関数を作ることは出来るからです。
「表裏一体」ってやつですね。
これをアクセスで言えば、VBAにて「テーブルを開く」等のものは作れるけれど、
だったらマクロをそのまま使うよね、ってことです。
マクロで出来るのはここまで、ここから先はプログラム。
それを判断するためには、まずマクロを理解していないといけない。
私はそう思います。
アクセスは「クエリ」「フォーム」「レポート」「マクロ」のどれもが、
一筋縄ではいかないくせ者です。
じっくりいきましょう。
No.1
- 回答日時:
マクロのほうが取り組みやすいし、VBAに比べると簡単なので、
まずは、マクロから始めてみるのがいいと思いますよ。
マクロで出来ないことで、付け加えたい機能とかが出てきた時にVBAを勉強すれば良いでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン パソコンのマクロを勉強したいと思っています。 前職で職場の方ですごく詳しい方がおられて勉強しようと思 6 2022/04/12 12:57
- Excel(エクセル) ランダムで四択の問題を作る場合にvbaで何を学べばいいでしょうか。 1 2022/04/14 16:45
- その他(コンピューター・テクノロジー) VBA初心者です。 仕事の残業を少しでも減らしたく 最近勉強を始めたのですが フィルターを一気にかけ 4 2022/08/15 20:58
- Excel(エクセル) ExcelのFSO(ファイルシステムオブジェクト)について学びたいのですが。。。 5 2022/12/15 18:06
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Visual Basic(VBA) VBAとマクロについての質問です。 2 2023/08/01 23:04
- Excel(エクセル) エクセル 多数のファイルから値を抜き出したい 4 2022/12/12 16:49
- Excel(エクセル) エクセルのセル値に対応してマクロを実行する方法を教えてください セルA1が「1」の時にマクロ名「マク 2 2022/06/19 18:45
- Access(アクセス) スキルシートのエクセルの項目に 2 2023/04/04 22:41
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
メッセージボックスのOKボタ...
-
特定のPCだけ動作しないVBAマク...
-
一つのTeratermのマクロで複数...
-
エクセルマクロでワードの一ペ...
-
Excel・Word リサーチ機能を無...
-
Excel_マクロ_現在開いているシ...
-
ExcelのVBA。public変数の値が...
-
特定文字のある行の前に空白行...
-
エクセルに張り付けた写真のフ...
-
エクセルで縦に並んだデータを...
-
【EXCEL VBA】オートシェイプを...
-
マクロの連続印刷が突然不可能...
-
Excel マクロでShearePoint先の...
-
ソース内の行末に\\
-
マクロ実行時、ユーザーフォー...
-
Excel マクロ VBA プロシー...
-
EXCELのマクロの重複起動...
-
Excelのセル値に基づいて図形の...
-
エクセルのマクロをセルの値に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
Excel_マクロ_現在開いているシ...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
ExcelのVBA。public変数の値が...
-
エクセルで別のセルにあるふり...
-
エクセルに張り付けた写真のフ...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
Excelのセル値に基づいて図形の...
-
Excel VBAからAccessマクロを実...
-
ExcelVBAでPDFを閉じるソース
-
マクロ実行時、ユーザーフォー...
-
オートフィルターとExcelマクロ...
-
wordを起動した際に特定のペー...
-
特定文字のある行の前に空白行...
-
エクセルで縦に並んだデータを...
おすすめ情報