2007年07月29日 23:28

No.003 第1章〜ExcelVBAでの開発に慣れてみよう

ExcelとはMicrosoft社のOffice製品群のアプリケーションです。この位の説明で大丈夫でしょう。InDesignを使用している所では、十中八九所有しているかと思われます。もしお持ちでない場合には、本講座の内容が実際に体験できないと思います。その際には大変心苦しいのですが、導入して頂くか、デバッグ作業やコーディング効率が落ちてしまいますがScriptのマニュアルを片手に頑張るか、JScriptのデバッガを頼りにJScriptで頑張ってみるという方法もございます。私は現時点でJScriptには疎く、コードを読んで概略を掴む程度のスキルしか持ち合わせていませんのでご質問などには完全に対応できないと思います。ご了承くださいませ。
さて皆さんは「マクロ」という言葉をお聞きになったことはありますでしょうか? この「マクロ」というのは、アプリケーションを内部または外部からコントロールするための方法なのですが、今回はそのマクロを使ってInDesignを外部コントロールしようという企画です。
始めてInDesignをコントロールするので、できれば開発環境を用意した方が便利です。そういう意味からも本講座ではOffice製品群のVBEを使ってInDesignをコントロールしていくというアプローチをしています。
ではExcelを起動してください。さらにマクロを書くためにVBEを起動します。
001
◆ダウンメニュー【ツール(T)→マクロ(M)→Visual Basic Editor(V)】と選択します。デフォルトのショートカットでは『Alt+F11』ですから、そのショートカットで覚えて頂ければ大丈夫です。
002
画面が切り替わって「Microsoft Visual Basic」というウィンドウが開いたと思います。
では「プロジェクトウィンドウ」ですが、Book1というxlsファイルに標準で3つのシートを作る環境設定の場合、画像のようにSheet1からSheet3までが用意されます。そしてThisWorkbookというものも用意されます。
今回はThisWorkbookにマクロを書くことにしますので、このThisWorkbookをダブルクリックしておいてください。
003
さて、今度は「参照設定」をします。
◆ダウンメニュー【ツール(T)→参照設定(R)】と選択します。
次の画面が表示されます。
004
参照設定についてですが、InDesignのScriptを書くときにコード補完(インテリセンスと呼ばれています。)させると便利なので、Scriptを書く前に設定しておきましょう。
005
画面では「Adobe InDesign CS Type Library」にチェックをしましたが、お手持ちのInDesignのVersionによっては画面の表示が違いますので、対象となるInDesignのVersionを選んでください。
チェックしたらOKボタンを押して設定は完了です。
006
先程ThisWorkbookをダブルクリックしておいてもらいましたが、ダブルクリックすると新しいウィンドウが開いてカーソルが立ちます。その部分に以下のように入力してみてください。
Sub InDesignで新規文書を作成する
ここまで入力したら『Enter』キーを押して下さい。
自動的に()がSubの行末に付加され、さらにEnd Subという行が下に生成されます。
このSubからEnd SubまでをSubプロシジャーと呼びます。
この間に実際のコードを書いていきます。
画面では途中まで入力している状態になっていますので、同じように次の行を入力してください。(IMEをOffにしておくと良いです)
Dim MyInDesign AS InDesign
と入力したら『.』キーを押して下さい。画面が変化します。これがインテリセンスしている所です。そのまま続けて『App』と入力するとその部分まで移動してくれます。Applicationがハイライトしたら、『Enter』キーを押して下さい。
次の行にカーソルが移動しますので、次のように入力してください。
Set MyInDesign = CreateObject("InDesign.Application.CS")
ここはお手持ちのInDesignのVersionによって書き換えて下さい。
まだ古い環境の方がいらっしゃるかもしれませんので、Version2の宣言も書いておきます。
Set MyInDesign = CreateObject("InDesign.Application.2.0J")
InDesignCSならSet MyInDesign = CreateObject("InDesign.Application.CS")
InDesignCS2ならSet MyInDesign = CreateObject("InDesign.Application.CS2_J")
InDesignCS3ならSet MyInDesign = CreateObject("InDesign.Application.CS3_J")
でOKです。1つのVersionしかインストールしていないのであれば、次のように書くこともできます。
Set MyInDesign = CreateObject("InDesign.Application")
最新のVersionのInDesignが自動起動します。これまで書いてきたInDesignをコントロールする技術をActiveX/Comと呼びます。オートメーションまたはキック起動などとも呼びます。
さて、SubプロシジャーにDim文とSet文の2行を入力しましたが、これがInDesignをコントロールする最低限の宣言です。これは基本ですので、コピペした方は、煩わしくても打ち込んで覚えて下さいね。では早速、肉付けをしていきましょう。3行目に次のように入力します。
MyInDesign.Documents.Add
4行目に次のように入力します。
Set MyInDesign = Nothing
007
画面では入力し終わった状態を示しています。
以上でScriptが完成しました。早速実行してテストしてみることにしましょう。
008
画面のように右三角のアイコンをクリックするか、プロシジャー内にカーソルを置いたまま『F5』キーを押してマクロの実行をしてください。上手くInDesignが起動して新規文書が作成されていれば成功です。

トラックバックURL

コメント一覧

1. Posted by ミニカーです!   2007年07月31日 10:09
5 ブックマークしました!
がんばってくださいね!
こちらも勉強いたします!

コメントする

名前
 
  絵文字
 
 
訪問者数
  • 今日:
  • 昨日:
  • 累計: