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

解決済みの質問

エクセルとVBAの関係記述言語

エクセルとVBAの関係について教えて下さい。マクロを組むとその行程がVBAで記述されるということは知っています。ですがマクロ=VBAなのでしょうか?そもそもこれはマイクロソフトの企業秘密かもしれませんが、エクセルを作成した記述言語は何なのでしょう?VBAでない事は確からしいので、VBAはエクセル本体とマクロというプログラミングの仲立ちの様なものでしょうか。

投稿日時 - 2008-03-25 23:08:52

QNo.3894766

困ってます

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

こんばんは。

なぜ、お聞きになるのかな?
カスタマイズ?それは、やめたほうがよいですね。それは、ハッキングで、かなり難しいと思います。それ以外は、アドインを勉強するのがよいのですが、なかなか本格的には難しいです。

>マクロ=VBAなのでしょうか?

それは、Microsoft 社の選択肢の一つだったに過ぎないのですが、半面、どうも、Office にVBAを搭載させてしまったことが、後々後悔しているのかもしれません。その証拠に、あまり意味のないセキュリティが後から後から上乗せしてくるというのは、どうにもいただけません。根本的な、VBA拒否というオプションを、はっきりとつければよかったと思います。もちろん、セキュリティ・ポリシーというオプションはありますが、あまりユーザー側には知られていません。

また、VBAは、VB6 のOffice 用に装備したものです。Microsoft社内でも、賛否両論があったともウワサされました。今後、これが、VB.Net や C# になるというそうですが、今までのユーザーは、おそらく足きりさせられるということになると思います。かなりややこしいくなってしまいます。もう、VB6は、過去の言語になってしまったわけですし、やむをえないのだと思います。

>VBAはエクセル本体とマクロというプログラミングの仲立ちの様なものでしょうか。

マクロという意味はご存知だとは思いますが、その取り扱い言語とは関係ありません。ひとつの作業(タスク)の自動実行を目的とする機能のことです。逆にいうと、ひとつの作業を実行できないものは、マクロとは呼びません。それが、Ver.4マクロの関数型言語であっても、VBAであっても、タスクをするものは、すべてマクロと呼ぶというのが、Microsoft 側の定義です。

そして、Application 側とVBAとの間には、インターフェイスがあって、仲立ちをしていますが、完全に一致しているわけではありません。ですから、Excelの場合は、Applicationに依存した、Ver.4マクロ言語は、それをなくせというユーザー側のリクエストに答えるだけの、VBAは機能が今も完全ではありません。

また、VBAは、「基本的にはインタプリタ型の言語であるため、コンパイル(ビルド)の作業はない。」というのは、みなさんの誤解で、実行前にコンパイルして中間言語として存在しています。

>エクセルを作成した記述言語は何なのでしょう?

それは、ワークシートを使っていれば、気がつくはずですが、C言語です。つまり、Excelの上級レベルでは、C++の知識が必須になります。もちろん、Excelが、C言語で作られていなければ、とても使えたものではありませんが。ただし、コントロールのActive X コントロールは、これとは違う範疇です。

投稿日時 - 2008-03-26 02:56:38

お礼

ご丁寧に有難う御座います。もっともMS製品には独自に開発された色々な仕様があるのでしょうし、素直にマニュアルとかを参照しながらやってみようと思います。

投稿日時 - 2008-03-26 15:21:57

ANo.3

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

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

回答(4)

ANo.4

マクロとVBAは、基本違うもので最初は導入されましたが・・・今は、ほぼ同意です

マクロは、元々Excelの前身である

Microsoft Multiplan - Wikipedia
http://ja.wikipedia.org/wiki/Microsoft_Multiplan

と、互換を取るためのシート上に構成されるVBAと別物の手続き命令だったんですよ

Accessの場合、この名残が残って、マクロとモジュールと言う呼び名で、別物と化してますけどね
もう、15年以上前の仕様ですので、型遅れは仕方ないでしょうね

投稿日時 - 2008-03-26 11:25:00

ANo.2

「エクセル自体が何で書かれているのか」
というご質問なら、私は知りません。
また、知りたいとも思いませんし、知る必要もないと思っています。

投稿日時 - 2008-03-26 00:34:21

ANo.1

昔のエクセルは、マクロというと自動実行手順を記録しておくスクリプトでした。
しかし、現在のエクセルでは「マクロ=VBA」です。
マクロという呼び名はふさわしくないとは思いますが、しかたないです。
AccessではマクロとVBAは別物となっています。

投稿日時 - 2008-03-25 23:17:59

お礼

有難う御座います。VBAで記述されていると考えてよろしいのでしょうか?ヘタにカスタマイズする気もないのですが、出来ると仕事の幅が広がる気がします。

投稿日時 - 2008-03-25 23:54:32

あなたにオススメの質問