VBScriptを作るのにいきなりエディタで書き始めてもよいですが、あまり効率がよくありません。
そこでわたしはExcel 2000をエディタ代わりに使っています。 ExcelにはVBE(Visual Basic Editor)という機能があり、本来はVBAを作成するものですが、色々と便利なため、そこで作成したものをVBScript用に変更するということを行っています。
まずはExcelを立ち上げます。立ち上げたらVBEを開きます。

次に参照設定を開いて必要なコンポーネントにチェックを入れます。

わたしの知っているコンポーネントは以下の通りです。
| InDesign 2.0 | Adobe InDesign 2.0J Type Library |
| InDesign CS(3.0) | Adobe InDesign CS Type Library |
| InDesign CS2(4.0) | Adobe InDesign CS2 Type Library (1つだけチェックを入れればよい) |
| InDesign CS3(5.0) | Adobe InDesign CS3 Type Library |
| InDesign CS4(6.0) | Adobe InDesign CS4 Type Library |
| InDesign CS5(7.0) | Adobe InDesign CS5 Type Library (注)表示されない場合があります。最下部を参照。 |
| InDesign CS5.5(7.5) | Adobe InDesign CS5.5 Type Library (注)表示されない場合があります。最下部を参照。 |
| Illustrator 10.0 | Adobe Illustrator 10.0 Type Library |
| Illustrator CS(11.0) | Adobe Illustrator 11.0 Type Library |
| Illustrator CS2(12.0) | Adobe Illustrator CS2 Type Library |
| Illustrator CS3(13.0) | Adobe Illustrator CS3 Type Library (注)エラーがでる場合があります。最下部を参照。 |
| Illustrator CS4(14.0) | Adobe Illustrator CS4 Type Library |
| Illustrator CS5(15.0) | Adobe Illustrator CS5 Type Library |
| Photoshop CS2(9.0) | Adobe Photoshop 9.0 Object Library |
| Photoshop CS3(10.0) | Adobe Photoshop CS3 Object Library |
| Photoshop CS5(12.0) | Adobe Photoshop CS5 Object Library |
以上で準備は完了です。
わたしの場合、この後新しくモジュールを作成して、その中に記述していますが、特に必要というわけではありません。 また、オブジェクトブラウザとローカルウィンドウは必ず開いています。ローカルウィンドウはあとで説明します。


オブジェクトブラウザはコンポーネントの持っているプロパティなどを表示してくれます。検索もできます。
あとはひたすら記述していくのみです。
ただし、VBAで使用できてもVBScriptでは使用できないものがあるので注意が必要です。定数も10進数で記述しておく癖を付けた方がよいと思います。下はVBAではFormat(i,"00")としたいところですが、Format関数が使えないため、keta2という関数を自作した例です。
|
アプリケーションを動かすためには必ず各コンポーネントを呼び出す必要があります。 呼び出すためにはCreateObjectを使います。それぞれのアプリケーションの記述は以下の通りです。
| InDesign 2.0 | InDesign.Application.2 |
| InDesign CS(3.0) | InDesign.Application.CS |
| InDesign CS2(4.0) | InDesign.Application.CS2_J |
| InDesign CS3(5.0) | InDesign.Application.CS3_J |
| InDesign CS4(6.0) | InDesign.Application.CS4_J |
| InDesign CS5(7.0) | InDesign.Application.CS5_J |
| InDesign CS5.5(7.5) | InDesign.Application.CS5.5_J |
| Illustrator 10.0 | Illustrator.Application.1 |
| Illustrator CS(11.0) | Illustrator.Application.2 |
| Illustrator CS2(12.0) | Illustrator.Application.3 |
| Illustrator CS3(13.0) | Illustrator.Application.4 |
| Illustrator CS4(14.0) | Illustrator.Application.CS4 |
| Illustrator CS5(15.0) | Illustrator.Application.CS5 |
| Photoshop CS2(9.0) | Photoshop.Application.9 |
| Photoshop CS3(10.0) | Photoshop.Application.10 |
| Photoshop CS5(12.0) | Photoshop.Application.12 Photoshop.Application.12.1 |
記述が完了したらデバッグを行います。エラーがあれば教えてくれます。また、このときローカルウィンドウでは生成されたオブジェクトの各プロパティの値を教えてくれるので、どういう状況なのか知ることができます。


いよいよ最終段階。完成したスクリプトを、エディタにコピー&ペーストして、VBScript用に変更します。 このときVBAとVBScriptの違いを理解していないと、この作業はできませんので注意が必要です。
|
この場合、赤字のところが変更箇所。
変更が完了したら適当なファイル名をつけて、適当な場所に保存します。拡張子はvbsにする必要があります。
Illustrator CS3で参照設定を行おうとすると次のようなエラーがでます。

これは参照設定で指定されたファイルが見つからないということを意味しています。原因はIllustratorのインストール時にレジストリに書き込まれたコンポーネントの参照先が間違っていることによるものです。
これは以下のように、レジストリを2箇所書き換えることで解消されます。
また、レジストリに関してはここでは詳しくは触れません。市販のパソコン書籍等を参考にしてください。間違って書き換えた場合、最悪パソコンが起動しなくなる可能性がありますので、注意が必要です。
その1
[HKEY_CLASSES_ROOT\TypeLib\{743F09D0-5A60-472F-93A4-4C761F332103}\1.0\0\win32]
(既定)のところ
元の文字列 C:\Program Files\Adobe\Adobe Illustrator CS3\Plug-ins\Extensions\ScriptingSupport.aip
新しい文字列 C:\Program Files\Adobe\Adobe Illustrator CS3\プラグイン\機能拡張\スクリプトサポート.aip
その2
[HKEY_CLASSES_ROOT\TypeLib\{743F09D0-5A60-472F-93A4-4C761F332103}\1.0\HELPDIR]
(既定)のところ
元の文字列 C:\Program Files\Adobe\Adobe Illustrator CS3\Plug-ins\Extensions
新しい文字列 C:\Program Files\Adobe\Adobe Illustrator CS3\プラグイン\機能拡張
この問題に関して、アドビのサポートデータベースにサポート文書が出されましたので合わせて確認してください。
文書番号:233473
Visual Basic でエラーメッセージ「DLL 読み込み時のエラーです」が表示される(Illustrator CS3)
InDesign CS5/5.5でVBScriptが実行されない場合があります。これはWindows XPでは発生せず、Windows 7で発生します。(Windows Vistaでは確認できていませんがおそらく発生すると思われます。
原因はInDesignのインストール時にレジストリに書き込まれたコンポーネントの参照先が間違っていることによるものです。
これは以下のように、レジストリを書き換えることで解消されます。
また、レジストリに関してはここでは詳しくは触れません。市販のパソコン書籍等を参考にしてください。間違って書き換えた場合、最悪パソコンが起動しなくなる可能性がありますので、注意が必要です。
CS5の場合 その1
[HKEY_CLASSES_ROOT\TypeLib\{0EAE2841-EABD-4550-BC0B-2C5097031493}\1.0\0\win32]
(既定)のところ
元の文字列 C:\ProgramDataAdobe\InDesign\Version 7.0\ja_JP\Scripting Support\7.0\Resources for Visual Basic.tlb
新しい文字列 C:\ProgramData\Adobe\InDesign\Version 7.0-J\ja_JP\Scripting Support\7.0\Resources for Visual Basic.tlb
CS5の場合 その2
[HKEY_CLASSES_ROOT\TypeLib\{0EAE2841-EABD-4550-BC0B-2C5097031493}\1.0]
(既定)のところ
元の文字列 (空欄)
新しい文字列 Adobe InDesign CS5 Type Library
CS5.5については確認が取れ次第記載します。
アドビに報告しましたのでそのうちサポート文書が出るか、アップデートで解消されると思います。