マクロ言語

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

マクロ言語(まくろげんご)は、マクロ (コンピュータ用語) を記述するコンピュータ言語である(キー操作をそのまま記録・再現する、いわゆるキーマクロ等のように、言語を持たないマクロ機能もある)。プログラミング言語的な機能を持つものもあれば、持たないものもある。また他に、テキスト変換などを記述する変換言語もマクロと呼ばれることが多い。

この記事とマクロ (コンピュータ用語) の記事は、それぞれに書くべき内容と書かれている内容が混乱している。

テキストエディタにおけるマクロ

多くのテキストエディタにキーボードマクロやマクロ言語などのマクロ機能がついている。マクロ機能と正規表現を駆使すれば、高度なテキスト処理を少ない手間で行うことが可能になる。

Emacsのマクロ

Emacs[1]およびEmacs系のMeadowなどではマクロ言語にLisp系のEmacs Lispを採用している。Emacsには長年の歴史があり、またフリーソフトウェア運動と深く関わっていることから、非常に多くのマクロプログラムが作成・公開されている。中には、たとえば電子メールクライアントウェブブラウザなど高度で複雑な機能を持つものもあることが示すように、非常に充実したマクロ機能を持っている。

秀丸エディタのマクロ

秀丸エディタでは、キーボードマクロ機能とともに、C言語に似た文法を持つマクロ言語を採用している。

EmEditorのマクロ

EmEditorでは、Windows Script Host (WSH)エンジンを利用し、JScriptおよびVBScriptでの記述が可能になっている。COMオブジェクトを利用して、例えばEmEditorからMicrosoft Excel等を操作することができる。rubyやPythonなどの言語でも記述が可能。

サクラエディタのマクロ

サクラエディタではキー入力などを自動記録するキーマクロやWSHへの対応のほか、ppa.dll(Poor-Pascal for Application)を導入すればPascal風のマクロが記述でき、ActivePerl,ActiveRubyなどを導入することでPerlやRubyなどでもマクロを作成できる。

Sublime Textのマクロ

ソースコードエディタであるテンプレート:仮リンクPythonの処理系を持っており、これを用いてマクロを記述することができる。実際、CとのAPIを用いて日本語IMEに対応させるマクロが記述されている[2]

バッチ処理を行うマクロ

Mac OSのマクロ

Mac OSMac OS Xでは、アプリケーションに汎用的なマクロ言語としてAppleScriptが採用されている。OSを開発しているアップルのソフトウェアだけではなく、Microsoft Officeなどのサードパーティー製のソフトウェアも対応しているため、アプリケーション毎に言語の基礎的な部分から学習する必要がない。

シェルスクリプト

Unix系ではコマンドライン上の操作に限られるが、Unixシェルスクリプトで一定の操作を自動化することができる。Bourne Shell系とC Shell系で文法が異なる。

Windowsのマクロ

Windowsコマンドプロンプト(cmd.exe)は機能が貧弱であるためMac OSやシェルスクリプトと比べると見劣りする。後継としてWindows PowerShellが登場したものの標準搭載されたのはWindows 7以降であり、コマンドプロンプトのバッチファイルと文法の体系が大きく異なるため学習のコストが高い。PowerShellはCOMオブジェクトを呼び出せるため[3]COMに対応しているアプリケーション(例えばiTunes)であれば操作可能。

オフィススイートにおけるマクロ

Microsoft Officeのマクロ

Microsoft Officeでは共通のマクロ言語としてVisual Basic for Applications (VBA)が使える。VBAの文法は、Visual Basicとほぼ同じである。コードはアドイン形式でも作成できるが、Office用ファイルの中に埋め込む形で保存することが多い。

マクロウイルス

Microsoft Officeのマクロ機能を悪用したコンピュータウイルスが数多く作られており、セキュリティ上の大きな脅威になっている。

OpenOffice.orgのマクロ

OpenOffice.orgでは、マクロ言語としてOpenOffice.org Basic, JavaScript, Python, BeanShell (Java)が利用できる。OpenOffice.org Basicは、VBAに似たマクロ言語である。

IBMのロータスブランド製品のマクロ

IBM社のSuperOfficeではマクロ言語としてLotus Scriptが使える。同様にロータスブランドのグループウェアであるNotes/DominoでもLotus Scriptを使用出来る。

ジャストシステム社製品のマクロ

ジャストシステム社の一太郎 (ワープロソフト)・花子 (グラフィックソフト)三四郎 (表計算ソフト)ではマクロ言語としてSuperPlayRiteが使える。

TeraTermのマクロ

寺西高およびTeraTerm ProjectによるターミナルエミュレータTeraTermは、マクロ言語としてTera Term Language(TTL)が利用できる。コードは、拡張子として ttl を付与したテキストファイルとして保存する。 メニューからマクロを呼び出して使うほか、起動時にオプションとして指定することもできる。

脚注

テンプレート:Reflistテンプレート:Asbox
  1. 「Emacs」という名前の由来は「Editor MACroS」である。「エディタのマクロ」を意味する。
  2. https://github.com/chikatoike/IMESupport
  3. テンプレート:Cite web