マクロを使用してスクリプトを実行するには、Visual Basic for Applications (VBA) でマクロを作成します。
- 実行するスクリプトに関連付けられているデータ ファイルを開きます。注:
マクロが有効なファイル、つまり .xlsm ファイルを使用していることを確認してください。
- Alt+F11 を押下します。
- VBA エディターの[Microsoft Excel オブジェクト]で、実行するデータが含まれているシートをダブルクリックします。
- 以下のコードをコピーしてウィンドウに貼り付けます。
- 以下のデータ ファイル パス、スクリプト ファイル パス、シート名、自動ログオン名を、ファイルの情報と自動ログオン名に置き換えてください。
- [保存]をクリックして、VBA エディターを閉じます。
- Excel で、[ビュー]タブをクリックしてから、[マクロ]をクリックします。
- 実行するマクロをクリックしてから、[実行]をクリックします。
注: Excel アドインがアクティブになっていないこと(Connect にログ オンしていないこと) を確認してください。
非同期マクロ実行がサポートされています。
Transaction マクロ
公開されたスクリプトを実行する
- アドイン オブジェクトを定義します。
Dim StudioMacrosAddin, StudioMacros
- Excel からアドイン オブジェクトを取得します。
Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule")
- アドイン オブジェクトから COM オブジェクトを取得します。
Set StudioMacros = StudioMacrosAddin.Object.Macros
- 実行する公開ファイルを選択し、他の実行プロパティを定義します (Transaction アドイン オブジェクトのプロパティを参照)。
Dim StudioMacros.PublishedFile = "MM02_MacroTest"
- 公開スクリプトを開きます。
StudioMacros.OpenPublishedScript
- アドイン オブジェクトを実行してスクリプトを実行します。
StudioMacros.RunScript
既存の Transaction スクリプトを実行する
- アドイン オブジェクトを定義します。
Dim StudioMacrosAddin, StudioMacros
- Excel からアドイン オブジェクトを取得します。
Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule")
- アドイン オブジェクトから COM オブジェクトを取得します。
Set StudioMacros = StudioMacrosAddin.Object.Macros
- 実行する Transaction スクリプトを選択し、他の実行プロパティを定義します (Transaction アドイン オブジェクトのプロパティを参照)。
以下は、ソリューションを ローカルで実行するためのものです: Dim strShuttleFile= "C:\Users\Normal_Tx_Macro.txr" 以下は 、Evolve からソリューションを実行するためのものです: StudioMacros.LibraryName = "Transaction" ソリューション名を Evolve から提出されたソリューションに設定します。strShuttleFile = "MM02"
- スクリプトを開いて実行します。
StudioMacros.OpenScript (strShuttleFile)
- アドイン オブジェクトを実行してスクリプトを実行します。
StudioMacros.RunScript
「個別からすべて」設定のチェーン スクリプトの場合、ユーザーがマクロを使用して SAP Trust タイプの SAP サーバーでスクリプトを実行すると、スクリプトごとに SAP ログオン ダイアログが表示されます。これは、マクロ コードパラメータ「StudioMacros.UseSameSAPServerForChain」を使用し、最初のスクリプトの SAP セッションが後続のすべてのチェーン スクリプトに使用されるようにすることで処理できます。
Transaction アドイン オブジェクトのプロパティ
スクリプトで設定された実行設定または高度な実行オプションは、マクロの実行中に尊重されません。これらは、アドイン オブジェクトに対して公開されているさまざまなプロパティを介して設定する必要があります。
プロパティ/機能 | 値/パラメータ | 説明 |
---|---|---|
公開ファイル |
公開スクリプトの説明 |
実行する公開ファイルを選択する |
OpenPublishedScript |
NA |
公開スクリプトを開く |
OpenScript() |
スクリプト ファイルのパス |
スクリプトを開いて実行する |
LibraryName | ライブラリ名 | ソリューションを含むライブラリを開きます |
StartRow |
行番号 |
データのアップロードを開始する Excel の行 |
EndRow |
行番号 |
データをアップロードする最後の Excel の行 |
WriteHeader |
NA |
実行中にヘッダーを書き込む |
LogColumn |
列/セル |
実行ログが書き込まれる列またはセル |
SheetName |
シート名 |
実行に使用されるシート名 |
ConnectionName |
SAP 接続名 |
SAP 接続名 例 StudioMacros.ConnectionName = "w6r" Evolve および Studio Manager の場合に使用されます |
RunReason |
実行理由文字列 |
この実行の理由を指定する |
RunSelectedRows |
NA |
True – Excel で選択された行のみを実行する |
RunFilteredRows |
NA |
True – Excelで表示されている行のみを実行する |
RunType |
0 – 指定された範囲を実行 1 - 実行してエラー時に停止 2 – 最初の 5 行を実行 3 – エラー行のみを実行 4 - 未処理の行のみを実行 5 – 指定された範囲をデバッグ 6 – 最初の行のみをデバッグ 7 – 指定された範囲を検証 8 – 最初の 5 行を検証 9 – エラー行のみを検証 10 – 未処理の行のみを検証 11 - 指定された範囲をシミュレーション 12 - 最初の 5 行をシミュレーション 13 - エラー行のみをシミュレーション 14 - 未処理の行のみをシミュレーション 15 – 未処理の行とエラー行を実行 16 - 未処理の行とエラー行を検証 17 - 未処理の行とエラー行をシミュレーション |
可能な値から実行のタイプを選択します
|
RunScript |
NA |
スクリプトを実行します |
SyncCall |
NA |
True – スクリプトを同期的に実行する |
サンプル コード: 公開された Transaction スクリプトを実行する
このサンプル コードは、「エラー行と未処理の行を実行」実行タイプで更新されます。
Sub RunPublishedTXRfile() '---------------------------------------------- ' Macro to use WinshuttleStudioMacros addin with code '---------------------------------------------- ' ' RunPublishedfile Macro ' ' Dim StudioMacrosAddin, StudioMacros On Error GoTo ErrHandler ' GET ADDIN OBJECT FROM EXCEL Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule") If StudioMacrosAddin Is Nothing Then MsgBox "Unable to initialize object of WinshuttleStudioMacros.AddinModule addin" Exit Sub End If ' Get com object from addin object Set StudioMacros = StudioMacrosAddin.Object.Macros If StudioMacros Is Nothing Then MsgBox "Unable to initialize com object of Macros" Exit Sub End If ' Select the published file to Run StudioMacros.PublishedFile = "MM02_MacroTest" StudioMacros.StartRow = 2 StudioMacros.EndRow = 6 ' Set True to write headers while Run StudioMacros.WriteHeader = True 'StudioMacros.LogColumn = "H" 'StudioMacros.SheetName = "Sheet2" 'StudioMacros.ConnectionName = "w6r-800" ' Set RunReason to provide reason for run. StudioMacros.RunReason = "Run Reason" 'StudioMacros.RunSelectedRows = True 'StudioMacros.RunFilteredRows = True ' RunSpecifiedRange = 0, ' RunAndStopOnErrors = 1, ' RunFirstFiveRows = 2, ' RunOnlyErrorRows = 3, ' RunOnlyUnProcessedRows = 4, ' DebugSpecifiedRange = 5, ' DebugFirstRowOnly = 6, ' ValidateSpecifiedRange = 7, ' ValidateFirstFiveRows = 8, ' ValidateOnlyErrorRows = 9, ' ValidateOnlyUnProcessedRows = 10, ' SimulateSpecifiedRange = 11, ' SimulateFirstFiveRows=12, ' SimulateOnlyErrorRows=13, ' SimulateOnlyUnprocessedRows=14, ' RunUnProcessedAndErrorRows=15, ' ValidateUnProcessedAndErrorRows=16, ' SimulateUnProcessedAndErrorRows=17 StudioMacros.RunType = 0 ' Call the Run Function to open published script StudioMacros.OpenPublishedScript ' Call the Run Function to run script StudioMacros.RunScript Exit Sub ErrHandler: MsgBox Err.Description End Sub
サンプル コード: 既存の Transaction スクリプトを実行する
Sub RunNormalTXRfile() '---------------------------------------------- ' Macro to use WinshuttleStudioMacros addin with code '---------------------------------------------- ' ' RunPublishedfile Macro ' Dim StudioMacrosAddin, StudioMacros On Error GoTo ErrHandler ' GET ADDIN OBJECT FROM EXCEL Set StudioMacrosAddin = Application.COMAddIns.Item("WinshuttleStudioMacros.AddinModule") If StudioMacrosAddin Is Nothing Then MsgBox "Unable to initialize object of WinshuttleStudioMacros.AddinModule addin" Exit Sub End If ' Get com object from addin object Set StudioMacros = StudioMacrosAddin.Object.Macros If StudioMacros Is Nothing Then MsgBox "Unable to initialize com object of Macros" Exit Sub End If
StudioMacros.StartRow = 2 StudioMacros.EndRow = 0 ' Set True to write headers while Run StudioMacros.WriteHeader = True 'StudioMacros.LogColumn = "H" 'StudioMacros.SheetName = "Sheet2" 'StudioMacros.ConnectionName = "w6r-800" ' Set RunReason to provide reason for run. StudioMacros.RunReason = "Run Reason" 'StudioMacros.RunSelectedRows = True 'StudioMacros.RunFilteredRows = True ' RunSpecifiedRange = 0, ' RunAndStopOnErrors = 1, ' RunFirstFiveRows = 2, ' RunOnlyErrorRows = 3, ' RunOnlyUnProcessedRows = 4, ' DebugSpecifiedRange = 5, ' DebugFirstRowOnly = 6, ' ValidateSpecifiedRange = 7, ' ValidateFirstFiveRows = 8, ' ValidateOnlyErrorRows = 9, ' ValidateOnlyUnProcessedRows = 10, ' SimulateSpecifiedRange = 11, ' SimulateFirstFiveRows=12, ' SimulateOnlyErrorRows=13, ' SimulateOnlyUnprocessedRows=14, ' RunUnProcessedAndErrorRows=15, ' ValidateUnProcessedAndErrorRows=16, ' SimulateUnProcessedAndErrorRows=17 StudioMacros.RunType = 0 ' Set in case of evolve subitted file StudioMacros.LibraryName = "Transaction" ' Set it to Solution Name in case of evolve submitted file ' For local File,set strShuttleFile to local file path strShuttleFile = "MM02" ' Call the Run Function to open specified script StudioMacros.OpenScript (strShuttleFile) ' Call the Run Function to run script StudioMacros.RunScript Exit Sub ErrHandler: MsgBox Err.Description End Sub
既知の問題
- Transaction または Query v10.x で作成されたマクロは、Studio 20.3 形式に自動的に変換されません。Studio 20.3 形式のマクロは、v10.x と互換性がありません。実行するには、マクロを手動で変換する必要があります。
- マクロを使用している間は、Winshuttle アドインをロードしないでください (Evolve/Studio Manager にログ オンしないでください)。Winshuttle アドインを有効にすることができます。
- 別の行を指定しない限り、開始行は常に 2 です。
- RunSelectedRows と RunFilteredRows は相互に排他的なオプションです。スクリプトは最後に設定されたものを使用します。
- データ ファイルは、Evolve/Studio Manager モードでマクロを使用して実行されるデータ レビュー ワークフローを使用してはなりません。
- マクロを使用してデータ ファイルを Evolve/Studio Manager モードで実行すると、[Evolve/Studio Manager に保存]は機能しません。