• 締切済み

VBAとマクロについての質問です。

VBAとマクロについての質問です。 VBAで記述された事によって生まれた,ある機能の事を「マクロ」と言う。 で合っていますか?

みんなの回答

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.4

マクロとは「ソースプログラムを生成する言語系」のことで、 本来のプログラムを指す言葉ではありません。 従って、VBAのプログラムを「マクロ」と呼ぶことに抵抗が あります。 マクロアセンブラでは以下のような使い方をします。 【マクロ定義】 @SAVE MACRO ARG ←マクロの定義の開始    PUSH ARG    ENDM     ←マクロの定義の終了 【ソース】    MOV  EAX,870    @SAVE ECX  ←マクロ文    @SAVE EAX  ←マクロ文 【マクロ展開後】    MOV  EAX,870    PUSH  ECX  ←マクロにより展開されたソース    PUSH  EAX  ←マクロにより展開されたソース ※"@"は英数字と共に識別名として使用できる文字であって、  「マクロだから”@”で始める」という規約ではありません。 C言語では以下のように使います。 #define MC 4 + 5  ←マクロの定義 【ソース】    if ( code == MC ) ←マクロの使用 "MC"は単に"4 + 5"という文字列に置き換えられるだけです。 MC=9ではありません。従って、x = MC * 3; と記述すると、 xには19が代入されます。9 * 3 ではなく 4 + 5 * 3 だからです。 つまり、書式が合っていれば、単に置き換えるだけで、 プログラムの文法に適うかどうかはマクロの関与する ところではありません。 先のマクロアセンブラで、以下のように間違えたとします。 @SAVE MACRO ARG    SUSH  ARG    ENDM SUSHという命令はありませんが、定義自体は正しく、 マクロは正常に展開されます。その後のアセンブルで エラーになります。 要約するとマクロ≠プログラムです。 個人としてはVBAプログラムをマクロとは呼びたく ないのですが、世間一般ではVBAプログラムのことを マクロと呼んでいます。

  • heyboy
  • ベストアンサー率21% (1852/8730)
回答No.3

間違っていますが、 一応、合ってもいます。 マクロとは例えば 「AUTO.EXE」などの 実行する順番などを 書いたプログラムと 思って良いです。 VBAでなくても 開発タブを表示させて マクロを登録させれますよ。

  • f272
  • ベストアンサー率46% (8469/18132)
回答No.2

マクロとはアプリケーションソフトの操作を記録して自動実行させるための機能のことです。エクセルとかのMS社のソフトの場合にはVBAという言語でマクロを書くことになっていますが、他のソフトではまた別の言語を使います。 エクセルの場合もVBAという言語ができる前は、別の言語でマクロが書かれていました。

  • FattyBear
  • ベストアンサー率33% (1532/4617)
回答No.1

合っていると思います。下記記述がありました。 VBAはプログラミング言語であるのに対して、マクロは機能です。 マクロを作成するためには、アプリケーションごとに異なるプログラミング言語を用います。 そしてOfficeアプリケーションであるExcelのマクロ機能を使うために、必要になるプログラミング言語というのがVBAなのです。 あと、マクロについては下記説明がありました。 プログラミングの分野では、ソースコード中に繰り返し登場する特定の記述を、別の(短い)記述に置き換えることができる機能をマクロという。 複数の命令をまとめて一つの命令のように記述したり、複数の箇所で参照される定数の値を後からまとめて変更できるようシンボル名で記述するのに使われる。 -------------------------------------------------------------------------------- いわゆるサブルーチン的な小さなプログラムだと私は認識しています。

関連するQ&A