> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ABBYY Scanning Station のスクリプト

> JScript、VBScript、または .NET 言語のカスタム スクリプトを使用して ABBYY Scanning Station を自動化する方法について、コレクション、レジストリ オプション、グローバル モジュールを含めて説明します。

カスタム スクリプトを使用すると、ABBYY Scanning Station で独自の運用シナリオを作成できます。代表的なシナリオは次のとおりです。

* 両面スキャン後に、スキャンしたページを正しい順序に並べ替える
* スキャン後に大判ページを自動分割する
* 新しく作成されたバッチとドキュメントの登録パラメーターを自動入力する
* 外部コンポーネントを使用してページの品質をチェックする
* ページを 2 つの出力先に同時に保存し、そのうちの 1 つをバックアップ用に使用する

スクリプトは、自動的に (特定のイベントに応じて) 実行することも、ユーザーコマンドで明示的に実行することもできます。

<div id="supported-scripting-languages">
  ## 対応しているスクリプト言語
</div>

* **JScript®**
* **VBScript**
* **C#.NET**
* **VisualBasic.NET**
* **JScript.NET**

<div id="keywords-for-the-current-object">
  ## 現在のオブジェクトのキーワード
</div>

VBScript では、現在のオブジェクトのメソッドや field を参照する場合、キーワード `Me` を使用する必要があります (JScript の `this`、VisualBasic.NET の `Workspace` に相当) 。エクスポートスクリプトでは、キーワード `Me` (VBScript) 、`this` (JScript、C#.NET) 、または `Workspace` (VisualBasic.NET) は [IExportBatch](/ja/flexi-capture/scanning-station/shared/scripts/export-batch) インターフェイスを実装します。イベントスクリプトでは、キーワード `Me`、`this`、または `Workspace` は [IWorkSpace](/ja/flexi-capture/scanning-station/shared/scripts/workspace) インターフェイスを実装します。

<h2 id="collections">
  コレクションの操作
</h2>

すべてのコレクションは、以下のプロパティとメソッドをサポートしています。

| **Name**            | **Type**      | **Access** | **Description**                                     |
| ------------------- | ------------- | ---------- | --------------------------------------------------- |
| Count               | int           | 読み取り専用     | コレクション内のアイテム数                                       |
| Item( index : int ) | ItemInterface | 読み取り専用     | 指定したインデックスにあるコレクションのアイテムを取得します。インデックスは `0` から始まります。 |

`Item` メソッドを使用する代わりに、丸かっこを使ってコレクションのアイテムを参照することもできます。

例:

```text theme={null}
Items( 1 ).Text = "Hello"
```

C#.NET を使用する場合、index は角括弧で指定します。

```csharp theme={null}
Items[1].Text = "Hello"
```

すべてのコレクションは、`for each` などの構文で使用できます。

<div id="registry-key-options">
  ## レジストリ キーのオプション
</div>

ABBYY Scanning Station で起動されるスクリプトでは、レジストリ内の次の値を変更できます。

```text theme={null}
HKEY_CURRENT_USER\Software\ABBYY\ScanStationFC\4.0\Shell\Script\DisableDebugging
HKEY_CURRENT_USER\Software\ABBYY\ScanStationFC\4.0\Shell\Script\DisableEventScripts
```

既定では、どちらの値も **false** に設定されています。

**DisableEventScripts** の値を **true** に変更すると、新しいスクリプトを起動できなくなります。すでに実行中のスクリプトは、このコマンドでは無効化されません。

<div id="custom-functions">
  ## カスタム関数
</div>

スクリプト エディターでは、独自の関数やプロシージャを作成し、それらをイベント スクリプトや送信スクリプトから呼び出すことができます。

カスタム関数は、グローバル モジュールのいずれか (イベントのグローバル モジュールまたはエクスポートのグローバル モジュール) に作成できます。カスタム関数を追加するには、[スクリプト エディター](/ja/flexi-capture/scanning-station/shared/interface/script-editor) でスクリプト名の横にある矢印をクリックし、**GlobalModule** を選択します。

1 つのモジュール内のすべての関数は、同じ言語で記述する必要があります。送信スクリプトまたはイベント ハンドラーの本体コードは、対応するグローバル モジュールで使用されている言語とは別の言語で記述できます。

たとえば、VBScript で記述されたイベント スクリプトから、JScript で記述されたグローバル モジュール内の関数を呼び出すことができます。

関数を呼び出せるのは、「対応する」モジュールからのみです。つまり、イベント スクリプトから呼び出せるのはグローバル イベント モジュール内の関数だけであり、送信スクリプトのコードから呼び出せるのはグローバル エクスポート モジュール内の関数だけです。そうでない場合、実行時にエラーが発生します。
