マクロを使用してスクリプトを実行するには、Visual Basic for Applications (VBA) でマクロを作成します。
- 実行するスクリプトに関連付けられているデータ ファイルを開きます。
マクロが有効なファイル、つまり .xlsm ファイルを使用していることを確認してください。
- Alt+F11 を押下します。
- VBA エディターの[Microsoft Excel オブジェクト]で、実行するデータが含まれているシートをダブルクリックします。
- 以下のコードをコピーしてウィンドウに貼り付けます。
- 以下のデータ ファイル パス、スクリプト ファイル パス、シート名、自動ログオン名を、ファイルの情報と自動ログオン名に置き換えてください。
- [保存]をクリックして、VBA エディターを閉じます。
- Excel で、[ビュー]タブをクリックしてから、[マクロ]をクリックします。
- 実行するマクロをクリックしてから、[実行]をクリックします。
Excel アドインがアクティブになっていないこと。(Connect にログ オンしていないこと) を確認してください。
非同期マクロ実行がサポートされています。
Query マクロ
公開されたスクリプトを実行する
- アドイン オブジェクトを定義します。
Dim StudioMacrosAddin, StudioMacros
- Excel からアドイン オブジェクトを取得します。
Set StudioMacrosAddin = Application.COMAddIns.Item ("WinshuttleStudioMacros.AddinModule")
- アドイン オブジェクトから COM オブジェクトを取得します。
Set StudioMacros = StudioMacrosAddin.Object.Macros
- 実行する公開ファイルを選択し、他の実行プロパティを定義します (Query アドイン オブジェクトのプロパティを参照)。
Dim StudioMacros.PublishedFile = "Table_20150113_150602"
- 公開されたスクリプト ファイルを開きます。
StudioMacros.OpenPublishedScript
- アドイン オブジェクトを実行して、Query スクリプトを実行します。
StudioMacros.RunScript
既存の Query スクリプトを実行する
- アドイン オブジェクトを定義します。
Dim StudioMacrosAddin, StudioMacros
- Excel からアドイン オブジェクトを取得します。
Set StudioMacrosAddin = Application.COMAddIns.Item ("WinshuttleStudioMacros.AddinModule")
- アドイン オブジェクトから COM オブジェクトを取得します。
Set StudioMacros = StudioMacrosAddin.Object.Macros
- 実行する Query スクリプトを選択し、他の実行プロパティを定義します (Query アドイン オブジェクトのプロパティを参照)。
以下は、スクリプトをローカルで実行するためのものです: Dim strShuttleFile = "C:\Table_20140930_143519.qsq" 以下は、スクリプトを Evolve から実行するためのものです: StudioMacros.LibraryName = "Query"
Evolve から送信されたファイルのソリューション名に設定します。ローカル ファイルの場合、strShuttleFile をローカル ファイル パスに設定します。strShuttleFile = "Table_MARA"
- スクリプトを開いて実行します。
StudioMacros.OpenScript (strShuttleFile)
- アドイン オブジェクトを実行して、Query スクリプトを実行します。
StudioMacros.RunScript
Query アドイン オブジェクトのプロパティ
スクリプトで設定された実行設定または高度な実行オプションは、マクロの実行中に尊重されません。これらは、アドイン オブジェクトに対して公開されているさまざまなプロパティを使用して設定する必要があります。
プロパティ/機能 | 値/パラメータ | 説明 |
---|---|---|
公開ファイル |
公開ファイルの説明 |
実行する公開ファイルを選択する |
OpenScript() |
スクリプト ファイルのパス |
実行するスクリプトを選択 |
OpenPublishedScript |
NA |
公開スクリプトを開く |
StartRow |
行番号 |
ダウンロードしたレコードを書き込む Excel の行 |
RecordsToFetch |
レコード数 |
Query の実行によって返されるレコードの数 |
WriteHeader |
True/False |
ダウンロードしたデータのマッピング ヘッダーを書き込む |
ExtractAllRecords |
True/False |
RecordsToFetch を上書きして、すべてのレコードを抽出する |
RunReason |
実行理由文字列 |
この実行の理由を指定する |
LogCell |
セル |
実行ログを書き込むセル |
SheetName |
シート名 |
実行に使用されるシート名 |
ConnName |
SAP 接続名 |
SAP 接続名 |
RunType |
実行のタイプ |
0 – 設定に従って実行してレコードをフェッチする 1 – RecordsToFetch を上書きし、最初の 50 レコードのみをダウンロードする |
RunScript |
NA |
スクリプトを実行します |
SyncCall |
NA |
True – スクリプトを同期的に実行する |
サンプルコード: 公開された Query スクリプトを実行する
|
サンプルコード: 既存の Query スクリプトを実行する
|
既知の問題
- マクロを使用している間は、Winshuttle アドインをロードしないでください (Evolve にログ オンしないでください)。Winshuttle アドインを有効にすることができます。
- ExtractAllRecords は、レコード数がダウンロード可能な最大レコード数を超えている場合でも、すべてのレコードをフェッチします。
- 別の行を指定しない限り、開始行は常に 2 です。
- データ ファイルは、Evolve モードでマクロを使用して実行されるデータ レビュー ワークフローを使用してはなりません。
- マクロを使用してデータ ファイルを Evolve モードで実行すると、[ライブラリに保存]は機能しません。