Excelからエージェントを起動する方法

当ページのリンクには広告が含まれています。

ちょっと怪しいノーツの小部屋にようこそ。今回は,Excelのコマンドボタンを押下して,Notesのエージェントを実行する方法をご紹介します。動作検証で何度もエージェントを実行したい場合に重宝するかと思います。

免責事項

本Webサイトの手順を実行することでデータやお使いの環境が破壊される可能性があります。本Webサイトは,読者諸兄姉ご自身の責任と判断でご使用ください。本Webサイトの手順を実行したことに起因する直接的又は間接的な損害に関して一切の責任を負うものではありません。また,記事の内容等の安全性,妥当性,正確性,最新性などに対する保証行為を一切しておりません。

目次

やりたいこと

Domino Designer が導入されていないユーザにエージェントのテストを依頼したい。Excelに,サーバ名,DBパス,エージェント名の入力欄を設け,ボタンを押下するだけでタイムスケジュールエージェントを実行したい。

前提条件

サーバ上でエージェントを実行できる権限が付与されたIDで,Notesクライアントを起動していることが条件となります。Notesクライアントが起動していない場合や,サーバ上でエージェントを実行できる権限がない場合は,エージェントを起動することができません。

サンプル

Private Sub CommandButton1_Click()
    Dim ss          As Object ' NotesSession
    Dim db          As Object ' NotesDatabase
    Dim agent       As Object ' NotesAgent
    
    Dim srvName     As String
    Dim dbPath      As String
    Dim agentName   As String

    ' -- 初期設定    
    srvName$        = TextBox1.Value
    dbPath$         = TextBox2.Value
    agentName$      = TextBox3.Value

    ' -- 入力CHK    
    If (srvName$ = "") Then
        MsgBox "サーバ名を入力してください"
        Exit Sub
    End If
    
    If (dbPath$ = "") Then
        MsgBox "DBパスを入力してください"
        Exit Sub
    End If
    
    If (agentName$ = "") Then
        MsgBox "エージェント名を入力してください"
        Exit Sub
    End If

    ' -- NotesDBの取得
    Set ss          = CreateObject("Notes.NotesSession")
    Set db          = ss.GETDATABASE(srvName$, dbPath$)
    Set agent       = db.GetAgent(agentName$)
    
    ' -- エージェントの実行
    If (agent.RunOnServer = 0) Then
        MsgBox "Agent ran", , "Success"
    Else
        MsgBox "Agent did not run", , "Failure"
    End If
End Sub
Excelのシートに,テキストボックスとコマンドボタンを配置した例。

上のサンプルコードをExcelのコマンドボタンに実装してください。サンプルコードではシート上に配置したテキストボックスから、必要な情報を取得しています。実行するエージェントが1つしかない場合は,サーバ名やDB名,エージェント名をオンコードで設定してもよいでしょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次