• ベストアンサー

なぜ「マクロの記録」はaccessにはないのでしょうか?

私はオフィス2003を使用していますが エクセル、ワード、パワーポイントには「マクロの記録」と言う機能があるのに accessにはないのでしょうか? この機能のおかげでものすごくVBAの学習ができてると思うのです。 もし理由を知っているからがいらっしゃったら教えてください。 よろしくお願いします。

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

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

アクセスは未経験ですけど、ようは”自動記録をするような作業がない”からでは? 実際に”マクロ化されているもの”を組み立てるか、或いは”VBA化”するかでしょうし、 その作業を”記録”する事と”構築”する事は同じ意味を持ってしまうからではないかと。 素人考えなので違っている場合はスル~して下さい。

lkhjlkhjlk
質問者

お礼

なるほど。 ご回答ありがとうございます。

その他の回答 (5)

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

面白い質問なので、私も一言(全て勝手な解釈です) MSは、ACCESSを難しいVBAを勉強しなくても、簡単にシステムが作成できるシステム開発支援ツール集として完成させたい。 VBAでシステム開発する人は、VBでもSQLserverなどほかを使えばよい。・・という発想? エクセルのシートに似ているといえば、テーブルとクエリで直接入力するとき位ですが、ここにマクロボタン配置して使用する事はないですし ACCESSには、フォーム、レポート、マクロというカテゴリーで充実を図ってあるので、フォーム上にボタンを作成するとウィザードに従っていけば一般的な機能を設定できます。 エクセルでは、VBエディターでフォームは作成できますが、フォーム上では、マクロの記録は出来ないです。 ACCESSではVBAとマクロを分けてあり、マクロにてシステムを完成できる程です。 マクロで出来ないことにLoopがありますが、クエリを応用すればLoopを必要とする事もなくなります。(エクセルではLoopは頻繁に使用しますが) ACCESSのVBAは他のデータベースやApplicationと連携するために必要と考えたので、VBA(ADO)を理解した人が使用する事を前提とした。 安価なACCESSを利用してVBA(ADO)が習得されると、エクセルなどを利用してデータベースを利用する人が増える。 一旦、ACCESSを使ってシステムを開発すると、ネットワークでテーブルを共有する場合にACCESSを更に購入することになる。 だからマクロの記録の機能はついていない。 以上、私の勝手な憶測です。

lkhjlkhjlk
質問者

お礼

なるほど! ご回答ありがとうございます。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.5

>エクセル、ワード、パワーポイント とAccessの違いは前者は文房具、Accessはシステム構築ツールだという点でしょう 文房具の方は繰り返し行う操作を記録して自動化すると言うことに意味がありますが システム作成においては繰り返し行う操作ということ自体ありません 作品としてのデータベースでの繰り返し操作を自動化する場合でも 実際にその操作を行い記録してコードを書くというようなことをしようとは思わないですね 自動記録でできあがった無駄の多いコードを手直しするより 最初から自分で書く方を選びます

lkhjlkhjlk
質問者

お礼

アクセスに関しては他と用途が違うのですね。 ご回答ありがとうございます。

  • noah7150
  • ベストアンサー率46% (116/251)
回答No.4

私もなぜ付けてくれないのか知りたい人の一人です。 でも・・・(これも憶測です) WORDやEXCELってドキュメント作成ツールですよね なのでデザインなど同じ事を繰り返す事が良くあるのでマクロ記録は有効ですが ACCESSはデータ作成ツールです VBAは実行時にイベントから起動されます。 実行時は基本的に画面デザインは終了してますよね それじゃぁ記録開始をどのタイミングで何のイベントに対応するかの判断をどうします?。 これが最大の自動記録が無い理由じゃないでしょうか? VBA学習の手助けなら、ANO.3で書かれているように マクロで色々書いて 保存しファイル(F) -> 名前を付けて保存(A) 若しくは該当メンバーを右クリックして 貼り付ける形式をモジュールを選択すればVBAに変換してくれます。 でも、モジュールではなくてマクロを上手に使えばAccessってコントロールのイベントにマクロを割り当てるとVBA記述しなくてもかなりの事が出来るように考えられてます。 参考書等はマクロ記述だけで実行させる例が多くあります でも、私の場合はマクロを殆ど使いません やっぱりVBAを使うとどうしてもマクロより一覧性のあるVBAの方が見やすいし デバッグ実行で問題点を探す時に楽なもので 私はVBAモジュールを作成しツールバーに新規ボタンを取りデザイン時、プロパティー変更のサブを作って実行させてますので、デザイン時のマクロ自動記録が欲しい一人なのですが。

lkhjlkhjlk
質問者

お礼

私もマクロではなくvbaを使います。 細かい作業が好きなので。 ご回答ありがとうございます。

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.3

私も知りたいです(^^) 以下、推測ばかりになってしまいますが、マイクロソフトに聞いてみないと本当のところはわからないと思いますが、「ツール→マクロ→マクロをVisualBasicに変換」、という機能があるから、自動記録は要らないと考えたのかもしれませんね。 また、Accessはクエリ、モジュール、フォーム、レポート、その他を「作る」作業が多いですが、それらは「設計」してから「作る」ことがほとんどなので、「マクロの自動記録」では「設計」まではできません。 そのほか、ADO、DAO、SQLの操作もマクロの自動記録ではなんともできないです。 また、Excelのようにセル番地が無いので、そして、特に行の特定が難しいというか面倒ですから、自動記録には向かないのかもしれません。 例えば、WordやPowerpointなどだと「○行目」ということをVBAに書けますけど、Accessだと、○行目がいつも同じデータとは限らないです(主キーはユーザーが決めるわけだから)。 厳密には番地のようなものもあるのですが、そこにいつも同じデータがくるとは限らない(次回にファイルを開いただけでレコードの位置が変わるときもある)ので、そういうことも自動記録には向かないと考えられているのかもしれません。 また、マクロの自動記録でなんとかなる部分といえば、検索、抽出、置換、並べ替え、フォームからフォーム・レポート・その他の呼び出し、最大化、最小化、などくらいで、Accessの機能から言えばほんの少しなので、そういった部分的なことだけを自動記録できるようにしても、あまり意味が無いと考えられたのかもしれません。(私はそうは思わないのですが) あと、下手にマクロの自動記録機能を付けると、エンドユーザーが好き勝手にデータベースをいじる可能性があって危険だから、あえて、自動記録機能をつけていない、という意味もあるのかもしれません。 データベースですから簡単に作れ過ぎると業務を停止させかねないのでそういった配慮もあるのかもしれません。 すべて想像ですみませんが、このようなことがあるのかもしれません。 Accessにも「マクロ」がありますので、「アクション」の各ドロップダウンの中から自動記録できそうなメニューがいくつあるかをチェックしてみてはどうでしょうか? 「アクション」の「コマンドの実行」の中にも色々とメニューがありますのでそちらもご覧になってみては?

lkhjlkhjlk
質問者

お礼

>「ツール→マクロ→マクロをVisualBasicに変換 この機能については知りませんでした。 早速試してみたいと思います。 ご回答ありがとうございます。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 Access は、Excelから比較しても、VBA自体が後付けの存在だったということで、「記録マクロ」というものの必要性が、Access にはなかったということだと思います。もちろん、元の製作者側(非MS)側が、「記録マクロ機能」を付けなかったというのが、最終的な結論であるのは、他社製のもので、「記録マクロ機能」を持っているものもあるからです。ただし、その記録が、プログラミングのVB系ということではありません。 >この機能のおかげでものすごくVBAの学習ができてると思うのです。 私が使った範囲では、Access は、VBAというより、VBAを含めた周辺知識は常識的に知って使うことが前提とされているのではないでしょうか。その中で、Access VBAは、ほんの一部にしか過ぎませんし、それを知っていて使えるというものでもありません。 実務上のAccess VBAは、かなりレベルが高く、VB6の知識を要求されることがあります。私自身は、Access VBAから、逆に、Excel VBAの利用法を覚えた部分が少なからずあります。最終的には、VB6 に移行しないと、まとまった知識は得られませんでしたが。 ですから、VBAの初心者・入門者が、Access を利用するのは、少し敷居の高いものになってしまいます。 なお、Excelの「記録マクロ」機能は、あくまでも、特殊なコードや単発のワークシートのメソッドが披露されるだけで、それ自体で、VBAのプログラミングを覚えるということはないと思います。Wordに至っては、記録マクロがうまく再現されない、ということもあります。単に、ワークシートの操作をコード化しただけであり、それを以て、学習するというのは、入門レベルまでぐらいしかありません。

lkhjlkhjlk
質問者

お礼

大変参考になりました。ご回答ありがとうございます。

関連するQ&A