• ベストアンサー

VBAとマクロの違い

こんばんは。エクセル初心者です。 VBAとマクロの違いについて教えてください。 VBAというのは、プログラミング言語のことで よろしいのでしょうか? そのVBAで記述されたものをマクロとよぶ といったイメージでよろしいのでしょうか? たとえば、あるエクセルにはいってるマクロを 実行する、ということを作業マニュアルに記述 する場合 「○○マクロを実行する」というのが 正しいのでしょうか?それとも 「VBAを実行する」というのが正しいのでしょうか? まったく見当違いのご質問だったら申し訳ありません。 教えてください。

noname#53775
noname#53775

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

  • ベストアンサー
  • sakuuuuu
  • ベストアンサー率32% (67/209)
回答No.1

「○○マクロを実行する」というほうが正しいです。 VBAは言語のことです。 マクロとは特定の操作手順をプログラムとして記述して自動化することです。 今回の場合、特定の処理なので「マクロ」という表現を使いましょう。

noname#53775
質問者

お礼

こんばんは。お礼が遅くなり申し訳ありませんでした。 的確なアドバイスありがとうございます。 マクロと表現することにします。 ありがとうございました。

その他の回答 (5)

  • kawajisan
  • ベストアンサー率30% (53/171)
回答No.6

この2007年秋の時点でのEXCEL界での一般解。 操作仕様として、「マクロを記録する」操作をおこなうと「VBA」で記述された「マクロ」ができる。実行するのも「マクロ名」を指定する。 >作業マニュアルに記述する場合 「マクロ」これがMS仕様。 個人的経験からはあんなものマクロとはいわない。MSの押し付け名称。

noname#53775
質問者

お礼

こんばんは。 ご回答ありがとうございました。 マクロを実行する、という記述にしようと思います。 ありがとうございました。

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

こんにちは。 >「○○マクロを実行する」というのが >正しいのでしょうか?それとも #4のimogasiさんが書かれているのが、実際の実情で、ベテランの方でも曖昧だと思います。別に、私は、人に指導できるような立場ではありませんし、人の口を捕らえて、厳密な定義をのたまったところで、その人が、理解するとは限らないです。 まあ、「○○マクロを実行する」でもよいし、VBAというなら、「VBAの○○を実行する」ぐらいでどうでしょう? どちらでもよいと思いますね。人に正しく伝わればそれでよいと思います。 一応、Microsoft では、VBAを公開する時点で、VBAにおける「マクロ(macro)」の定義をしています。しかし、それは、それほどに、定義は流通しなかったように思います。 ただし、プログラミングするしないは別として、その方面にいる立場なら、一度は、定義づけぐらいは頭には入れておかなくてはならないし、まして、この種の日本語がアテにならない世界で、英語を読まなければならないとなると、あまりいい加減なのままですと、思わぬミスをしかねません。 Microsoft では、以下のように解説しています。(Microsoft Office 97 プログラマーズガイドより) --引用開始-- #マクロは、より意味の限定された用語で、引数を持たないパブリックなSub プロシージャのことだけを指します。すべてのマクロはプロシージャですが、すべてのプロシージャがマクロであるとは限りません。マクロの記録機能を使って生成されるプロシージャとOffice アプリケーションの[マクロ]ダイアログボックスから実行できるプロシージャは、すべてマクロです。 --引用終了-- (補注:パブリックなSub プロシージャというのは、どこからでも呼び出せるVBAプロシージャのことで、ローカルで呼び出せないものは、これから外れるということです。) この考え方から、Accessでは、VBAは、ほとんどマクロとして用いることがありません。主に関数型にして、組み込ませます。VBAは、Visual Basic for Application という Visual Basic のアプリケーション用に特化させた言語ということですが、ほぼ、Visual Basic と同じです。 それと、Ver.4マクロ言語は、マクロ関数を使ったもので、VBAとは種類の違う言語です。直接、Excelアプリケーションから、値を取得する関数型の言語ですから、スピードが速いという利点はあるものの、応用性がないので、そのアプリケーション単体にのみにしか使えないということと、構造化ができないという欠点があります。ただ、VBA自体も、メモリの関係で、構造化というほど、たいしたものはできません。それに、オブジェクト指向は、まだ先です。

noname#53775
質問者

お礼

こんばんは。ご回答ありがとうございました。 奥が深いのですね。。。 とりあえずマニュアルには「マクロを実行する」に しようと思います。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

VBAが言語、マクロは操作手順という使い方だけではなく、混合してますね。 (1)手順 「マクロの記録」の「マクロ」はどちらかというとこの意味か?ただ操作手順に重きを置いてこういったと考えにくい。 操作を行ってマクロで記録という意味ではないか。 http://office.microsoft.com/en-us/excel/HA010548371033.aspx >You can use a macro to record the sequence of commands you use to perform a certain task. macroがuseの目的語になっている点参照 (2)出来上がったプログラム マクロの実行 http://kiyopon.sakura.ne.jp/vba/index.htm (3)その背後にある言語体系  http://www.bekkoame.ne.jp/~poetlabo/COMP/Excel/VBALEC/start.htm マクロ言語と使っている http://www8.plala.or.jp/pezs/study/excel/vba/ex-vba02.html の「マクロを勉強する」はやや(3)か? アクセスの「マクロ」は独特でその世界がありますが、 エクセルではあいまいに使われていると思います。 ーー 現状はそうでも、厳密に使うのは良いと思う。 (3)はVBAが正しいと思う。(2)はマクロの記録でできたプログラムやそれを多少修正したものもあるので、どちらかにするのも難しい。 勉強してない人向けだとVBAとかかれると、マクロと別物と思われかねない。公判する書籍などでなければ、読む相手次第で使い分けるのが良いと思う。 もともとエクセル初期のマクロはVBA言語でなかったが、そこにVBAで記述することに中身が変わった。そういう歴史的な沿革があるので、米国でも「macro recording」というようになったと思う。 ーー なお マクロはエクセルなどオフィス AUTOCAD 一太郎 エディタ オフィス互換ソフト ロータス123 ソフト作成会社があるソフトをつくり、それ用にスクリプト形式で作ったもの アセンブラのマクロ命令、やマクロアセンブラ などで使われるようである。 アセンブラのマクロ命令の「マクロ」が、コンピュタ界でマクロが使われた最初ではないかな(機械語に直すと複数命令の寄せ集めに分解される命令)。

noname#53775
質問者

お礼

こんばんは。ご回答ありがとうございました。 勉強不足だったため、私もVBAとマクロで混乱してしまいました。 あくまで、社内的に使うものなのと、誰にでもわかるマニュアル という意味で「マクロを実行する」にしようと思います。 URLもありがとうございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

以前も同じ質問があり、その質問を探したのですがうまく見つけられませんでした。 まず「マクロ」は「マクロセット命令」の短縮形だと思われます。複数の命令(≒処理)が集まったものという意味です。ですから「○○マクロを実行する」はExcelではSub~End Subでくくられた「ひとかたまりの処理」を実行するというふうに解釈してよいと思います。 次に少し歴史をひもとくと、EXCEL4まではマクロは「マクロ言語」で書かれていました。(構文はVBライクでしたが、オブジェクト指向の考え方が中途半端でした)。VBAになったのはEXCEL5以降(EXCEL97→2000→2003→2007)です。 ですからEXCEL4の時代まではマクロは「処理のかたまり」でもあり、「言語の名前」でもあったわけです。EXCEL5以降ではマクロは「処理のかたまり」、VBAが「言語名」になりました。 >作業マニュアルに記述する場合 マニュアルにはどんな処理を、どのようなタイミング、順番で実行するかを書かなければなりませんね。「○○マクロを実行する」が操作者には理解されやすいのではないでしょうか。

noname#53775
質問者

お礼

こんばんは。お礼が遅くなり申し訳ありませんでした。 マクロを実行する、にします。 細かいご説明ありがとうございました。

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.2

はじめまして 「マクロ」はコンピュータ(アプリケーション)に作業を指示するための「操作手順書」です。 「VBA」はエクセルのマクロを作るための「言葉(言語)」です。 エクセルの“操作手順”が“日本語”で書かれている と照らし合わせると、 操作手順…マクロ 日本語…VBA となります。 ですから、 >「○○マクロを実行する」というのが >正しいのでしょうか?それとも >「VBAを実行する」というのが正しいのでしょうか? 「○○マクロを実行する」が正しい表現です。

noname#53775
質問者

お礼

こんばんは。お礼が遅くなり申し訳ありませんでした。 的確なアドバイスありがとうございます。 マクロを実行する、にします。 ありがとうございました

関連するQ&A

  • VBAとマクロの違い

    VBA初心者です。 会社の人からVBAとマクロの違いについて質問され、ちゃんと説明できませんでした。 なにがちがうんでしょうか? 私は「VBAのプログラミング=マクロを組む」と思ってました。 よろしくお願いします。

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

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

  • エクセルVBAでの呼出操作をマクロ化するには?

    エクセルVBAでの呼出操作をマクロ化するには? エクセル2000です。宜しくお願いします。 VBAで、ファイルを呼び出したいのですが、Workbooks.openの書き方が良く分かりません。 呼び出すファイル名は決まっていなくて、フォルダ名は固定です。 エクセルの操作で言うと、ファイルを開くを押して、フォルダを選ぶとこまでをマクロかしたいのですが。 例えば、ドライブDの「作業用」フォルダを開きたい場合は、どう記述すれば宜しいでしょうか? 基礎的な部分でお恥ずかしいのですが、以下で実行しても動かんのです。 ChDir "D:\作業用" Workbooks.OpenText Filename:= "D:\作業用\*.*"

  • EXCELのマクロとVBAの連続実行について

    EXCELを鋭意勉強中です。 それぞれ独立したマクロとVBAのコードがあるとして これらを組み合わせ自在に連続して実行することは可能でしょうか? マクロの連続実行は Call マクロ() で出来ることは判ったのですが ここにVBAが組み合わさると、どう記述してよいのかさっぱり判りません。 わかる方、よろしくご指導をお願い致します。

  • EXCEL VBAからの転向

    EXCEL VBA初心者ですが、 仕事で必要だったので、EXCELマクロからはじめ、 ある程度の条件分岐やループなどのコーディングを 独学で勉強しました。 参考書を読みながら、やっているうちに プログラミングの面白さにはまっています。 まだまだ初心者なんですが、 今後VBAから、もっと実用的で、主流な言語に転向してみようかと 考えています。 VBAからの転向は、やっぱりVBへ進んだほうが 入り易いのでしょうか? 他に入門しやすい言語があれば、教えてください

  • EXCEL2000 VBA マクロ実行中に他の作業ができないか

    いつもお世話になっております。 EXCEL2000 VBAでマクロ実行中にEXCELで別の作業(表計算したり、別のマクロを実行したり)がやりたいんですが、可能でしょうか。 よろしくお願いいたします。

  • VBAでマクロ付きファイルを開く場合

    こんにちは。 VBA初心者です。 VBA(Workbooks.Open Filename)を使ってマクロ付エクセルファイルを開こうとしたのですが、単体で開く時と違い「マクロを有効にするか無効にするか?」ダイアログが表示されません。 マクロを有効にしてファイルを開きたいのですが、これはダイアログが表示されていないだけで自動的に「マクロを有効」となってファイルが開いているのでしょうか?そうではない場合このダイアログを表示させるにはどうしたら良いでしょうか? 判りつらい説明で申し訳ありませんが、教えて下さい。

  • エクセルのマクロとVBAについて

    まだあまり多用していないのですが、エクセルでは使っていくアイコンを指定することで(それを利用することで)、マクロを組みそれがエクセルのVBAで記述されるということですが、その逆エクセルのVBAで記述したプログラムを動作に対応したアイコン等の流れで示すことは出来るのでしょうか?もしあったらどのような方法でしょう?

  • マクロ VBAについて

    例えばsheet1に試験1、試験2、試験3というマクロが保存されていたとします。 この状態で もし試験1と試験2のマクロが実行されていれば試験3のマクロを実行する。というVBAは可能なのでしょうか。 私は初心者ですがたぶんIFを使うんではないかと思うんですが、詳しい方いましたら宜しくお願いします。

  • Excel VBAでファイルを開くとマクロを実行させるにはどのように記

    Excel VBAでファイルを開くとマクロを実行させるにはどのように記述すればいいのでしょうか? 例えば、ファイルを開くと指定のセルの削除させるような。 よろしくお願いします。

専門家に質問してみよう