DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要
Excel VBA からInDesign を動かす
お～まち自己紹介
世界で唯一の自動組版インストラクター
職業訓練校の Web インストラクター
活動拠点：https://cs5.xyz『イチからわかる ! InDesign JavaScript 指南書』

https://cs5.booth.pm/

DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要／ Excel VBA から InDesign を動かす

2

VBScriptの概要★
★
★
★

DTPer のスクリプトもくもく会スピンオフ！

言語仕様
実行環境

COM とは注意点

VBScript の概要3

VBScriptとは★
★
★
★
★

言語仕様

Windows のスクリプト言語

Microsoft Visual Basic Scripting Editionの略
Visual Basic の構文を真似てつくられた
Windows 98 から搭載

テキストエディタ等で作成

DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要4

言語の特徴★

言語仕様

VB（Visual Basic）や VBA（Visual Basic forApplication）と基本的な構文はほぼ同じ★
★

VB・VBA より簡素（未装備の関数などあり）
変数に型はない（全て Variant 型）

DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要5

JavaScript言語と比べると
★
★
★
★
★

言語仕様

命令や関数に大文字／小文字の区別はない
原則として改行が命令文の終わり

if, else, while, for など基本の命令文は同じ
演算子は同じだったり違ったり添え字は 1 から始まる

違いさえ覚えれば書き換えは容易
DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要6

Windowsで使用します

実行環境① Internet Explorer 3 ～10① ’ HTML Applications（拡張子 hta）

② Active Server Pages（拡張子 asp）

③ Windows Script Host（拡張子 vbs）
単に VBScript というと、言語ではなく③のスクリプトファイルを指します。
DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要

7

解説その１

実行環境① Internet Explorer 3 ～10

JavaScript に対抗しようとして敗れた。

① ’ HTML Applications（拡張子 hta）

IE（5 以降）のエンジンで動作する、html ベースのデスクトップアプリケーション。

マルウェアに利用（起動時に自動実行）されたため、普通の企業では使用禁止となっている。
DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要

8

解説その2実行環境② Active Server Pages（拡張子 asp）

IIS( インターネット・インフォメーション・サーバー ) で使用されるサーバーサイドスクリプト。
（Apache における php のようなもの）

ASP.NET に置き換えられたが、今でも使用可能。

③ Windows Script Host（拡張子 vbs）
次で詳しく！

DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要9

Windows Script HostとはWindows の管理や COM

※1

実行環境

を利用するためのスクリプト実行環境。WSH と略される。
VBScript または JScript※2

スクリプトを実行する。
※１※２

で記述されたあとで説明
MS が開発した ECMAScript3 準拠のスクリプト言語

DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要10

VBScriptの実行

実行環境

スクリプトファイルをダブルクリックするとwscript.exe が起動し、解析・実行される。
起動時に引数（配列）を利用できるため、ドロップレットの作成も可能。

If WScript.Arguments.Count = 0 ThenDTPer のスクリプトもくもく会スピンオフ！

VBScript の概要11

年賀状システムのデモ
html・css
JavaScript（JQuery）

Web ブラウザ
営業担当者

実行環境

Internet Information Server
Active Server Pages
Access DB

VBScript（常駐監視）

入力・指示

組版命令

PDF

PDF

DTPer のスクリプトもくもく会スピンオフ！

Web サービス
データベース

VBScript の概要12

Component Object Model

COM とはソフトウェアの機能を部品化して、外部から呼び出して利用する仕組み。

OLE、ActiveX を統合・発展させたもの。
アプリケーションがインターフェイスを用意する必要がある。
DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要13

COM対応アプリケーション

COM とはWindows の各コンポーネント、Internet Explorer、Microsoft Office、InDesign、Illustrator、Photoshop、Acrobat、EDICOLOR、etc.

DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要14

VBScriptでのCOM利用

COM とはCreateObject 関数を使う
Set obj = CreateObject("Excel.Application.16")

Adobe の COM コンポーネント

InDesign.Application.CC.2017_J,Illustrator.Application.CC.2019,
Photoshop.Application.130.1
DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要15

InDesignのVBScript

COM とはスクリプトパネル内の vbs ファイルは実行時に wscript.exe に引き渡される。

そのため WSH の機能がそのまま利用できる。
ちょっと見てみますか
DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要16

注意点①開発終了済

注意点

Windows の管理ツールとしては後継に Windows PowerShell がある。

そのため開発は終了しバグフィックスのみ。
ただし提供終了のアナウンスはない。

DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要17

注意点②標準入出力はシフトJIS

注意点

コマンドラインの実行に制限がある。

ファイルの読み書きを Unicode で行うにはADODB を使用する。

Set ado = CreateObject("ADODB.Stream")

他にも最新の環境に対応していない可能性も。
DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要18

注意点③危険な命令に注意

注意点

レジストリの変更もできるツールのためSet sh = CreateObject("Shell.Application")

マルウェアにもよく利用される。

厳しいところだと禁止されているかも。

DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要19

注意点④InDesign DOMの名称

注意点

ExtendScript とは別に開発されているので、一部のプロパティやメソッドの名称が異なる。
ExtendScript→

COM インターフェイス →print

PrintOut

名称は Excel で確認できます➡

DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要20

Excel VBAからInDesignを動かす★
★
★

DTPer のスクリプトもくもく会スピンオフ！

VBA の概要
作成と実行

InDesign を動かす

Excel VBA から InDesign を動かす

21

マクロとはVBA の概要

アプリケーションを自動化するための機能。
Illustrator/Photoshop のアクションも。

Excel ではマクロの記述に VBA 言語を使う。

DTPer のスクリプトもくもく会スピンオフ！

Excel VBA から InDesign を動かす

22

VBAとはVBA の概要

Visual Basic for Applications の略で、Visual Basic を Office 製品に搭載したもの。
Visual Basic Editor（アプリケーションに付属している）で作成する。

ライセンス供与も行っている。
DTPer のスクリプトもくもく会スピンオフ！

Excel VBA から InDesign を動かす

23

動作環境

VBA の概要

Windows
Microsoft Office

KINGSOFT Office（WPS Office）
AutoCADなど

Mac
2008 を除く Office for Mac
DTPer のスクリプトもくもく会スピンオフ！

Excel VBA から InDesign を動かす

24

VBAでできること★

VBA の概要

アプリケーションの操作（自動化）
各アプリケーションの命令とVBA 共通の命令がある★

OS の機能の呼び出し（限定的）→あとで OS 別に説明

DTPer のスクリプトもくもく会スピンオフ！

Excel VBA から InDesign を動かす

25

VBAの特徴★

VBA の概要

マクロの記録（Excel や Word など）
操作をコードとして記録できるのでそれを利用することで省力化が可能★
★

プログラム言語の中で一番情報量が多い（多分）開発はほぼ終了

DTPer のスクリプトもくもく会スピンオフ！

Excel VBA から InDesign を動かす

26

VBAの注意事項★
★

VBA の概要

標準入出力はシフト JIS

ファイル形式（拡張子）に注意
Excel の場合

旧型式は .xls

新形式（Open XML）は .xlsm（.xlsx で保存するとマクロは失われる）
DTPer のスクリプトもくもく会スピンオフ！

Excel VBA から InDesign を動かす

27

VBAの作成方法

作成と実行『JavaScript ユーザーのための Excel マクロ（VBA）入門（Excel 2016 for Mac 対応）』
https://cs5.booth.pm/items/939203
を買って、読んでください‼

DTPer のスクリプトもくもく会スピンオフ！

Excel VBA から InDesign を動かす

28

VBE の画面を説明しています……

DTPer のスクリプトもくもく会スピンオフ！

Excel VBA から InDesign を動かす

29

Windows

InDesign を動かす

VBA は COM を扱えるため VBScript と同様にCOM 対応のアプリケーションを動かせる。

（Windows 版 php や Windows 版 Python も、COM にアクセスする仕組を持っているので同様のことができる）

システムの変更も行える→マクロウィルス
DTPer のスクリプトもくもく会スピンオフ！

Excel VBA から InDesign を動かす

30

Mac

InDesign を動かす

Office for Mac 2004 以降はAppleScript に対応している。
http://download.microsoft.com/download/6/
C/A/6CA6174A-FF8E-4B24-AD50-45B4AEC988D3/
excel.pdf （2008から更新されていないのだが……）

わざわざ VBA を覚える必要は、ありません。
DTPer のスクリプトもくもく会スピンオフ！

Excel VBA から InDesign を動かす

31

Mac

InDesign を動かす

Mac の VBA には AppleScriptTask 関数がありAppleScript を実行することができる。

https://msdn.microsoft.com/ja-jp/vba/office-mac-vba/applescripttask

これを使えばVBAからInDesignを起動できる。
DTPer のスクリプトもくもく会スピンオフ！

Excel VBA から InDesign を動かす

32

Mac
手順はこれ。

InDesign を動かす

詳しくはブログを見てね。

「InDesign

Mac VBA」

で検索。

DTPer のスクリプトもくもく会スピンオフ！

Excel ブ ッ ク①実行

テキストファイル
④実行

Excel VBA
②実行AppleScript③実行
ExtendScript

InDesign 文 書
Excel VBA から InDesign を動かす33

いかがでしたか？

今回は、VBScript と VBA について、徹底的に調べてみました！

やはり DTP は関連情報が多岐に亘っていて、奥が深いですね！

それでは、ここまで聞いていただきありがとうございました！
DTPer のスクリプトもくもく会スピンオフ！

VBScript の概要／ Excel VBA から InDesign を動かす34