AMOコンテンツの自動化

[OS] ALL
[リリース] SAS 9.3
[キーワード] SAS Add-In for Microsoft Office 4.305

[質問]

SAS Add-In for Microsoft Office 4.305を使用して、SASコンテンツを含むExcelファイルをエンドユーザーへ配布しています。

そのExcelファイルの中で煩雑な共通の操作があるのですが、自動化することは可能でしょうか?

[回答]

ExcelのVBA機能でAMOの操作を自動化する方法が考えられます。

SAS Add-In for Microsoft Office 4.3以前のバージョンでは、VBAによりSASコンテンツのリフレッシュは可能でしたが、データを開く、Stored Processを実行する等の細かい制御はできませんでした。

SAS Add-In for Microsoft Office 4.305より、Stored Process、レポート、データビュー、ピボットテーブルをMicrosoft Officeドキュメントに挿入したり、更新することが可能となりました。

例えば、A1セルを基点としてSASHELP.CLASSのデータから、変数Sexの値が女子のデータを表示する場合、SAS Add-In for Microsoft Office 4.3以前のバージョンでは次の手順が必要です。

  1. 「SASデータソース」をクリックします。
  2. 「参照」ボタンを押し、SASHELP.CLASSを選択します。
  3. 「フィルタと並び替え」ボタンを押し、「フィルタ」タブを選択後にフィルタ情報入力

上記の操作をExcelのフォームボタンをクリックして自動化する場合、SAS Add-In for Microsoft Office 4.305以降のバージョンでは、次のようになります。

例)

Sub CLASSボタン()
    Dim sas As SASExcelAddIn
    Set sas = Application.COMAddIns.Item("SAS.ExcelAddIn").Object
    
    Dim data As SASDataView
    Set data = sas.InsertDataFromLibrary("SASApp", "SASHELP", "CLASS", Sheet1.Range("A1"), 10, "Sex='女子'", "Age DESC")
End Sub

詳細につきましては、SAS Add-In for Microsoft Officeのヘルプをご確認く ださい。

  1. SAS -> ヘルプ -> SAS Add-In for Microsoft Office ヘルプを選択します。
  2. 目次タブにある Visual BasicコードによるSAS Add-Inの自動化