例: 現在の文書にアクセスする

  1. 次の例は、ユーザーが編集モードでフィールドに入力したときに実行されます。このスクリプトはフィールドと文書についての情報を示します。
    Sub Entering(Source As Field)
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Set uidoc = workspace.CurrentDocument
      If uidoc.EditMode Then
        If uidoc.IsNewDoc Then
          Messagebox _
          ("This is the " & _
          uidoc.CurrentField & " field")
        Else
          Messagebox _
          ("This is the " & uidoc.CurrentField & _
          " field of " & uidoc.WindowTitle)
        End If
      End If
    End Sub
  2. 次の例では、現在の文書が編集モードでない場合は編集モードにして、ルーラーの表示を切り替えます。
    Sub Click(Source As Button)
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Set uidoc = workspace.CurrentDocument
      If Not uidoc.EditMode Then
        uidoc.EditMode = True
      End If
      uidoc.Ruler = NOT uidoc.Ruler
    End Sub
  3. 次の例では、現在の UI 文書に対応するデータベースの文書を取得し、親のデータベース (現在のデータベース) を取得します。
    Sub Click(Source As Button)
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Dim doc As NotesDocument
      Dim db As NotesDatabase
      Set uidoc = workspace.CurrentDocument
      Set doc = uidoc.Document
      Set db = doc.ParentDatabase
      Messagebox "Parent database: " & db.Title
    End Sub
  4. 次の例では、現在の文書で選択された文字列を取得します。
    Sub Click(Source As Button)
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Dim text As String
      Set uidoc = workspace.CurrentDocument   
      text = uidoc.GetSelectedText(body$)
    End Sub
  5. 次のスクリプトでは、文書を変更したユーザーの名前を最初に表示してから文書を開きます。
    Sub Queryopendocument(Source As Notesuiview, Continue As Variant)
      Dim docs As NotesDocumentCollection
      Dim doc As NotesDocument
      Dim alist As String
      Set docs = Source.Documents
      Set doc = docs.GetFirstDocument()
      Forall a In doc.Authors
        alist = alist & a & Chr(10)
      End Forall
      Messagebox alist  , , "Document author(s)"
    End Sub
  6. 次の例では、NotesDocument オブジェクトを使用して Categories テキストアイテムに値を入力します。NotesDocument オブジェクトを保存するときに、ワークスペースオブジェクトはリアルタイムに更新されます。次のコードはリッチテキストアイテムでは動作しません。
    Sub Click(Source As Button)
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Dim doc As NotesDocument
      Set uidoc = workspace.CurrentDocument
      Set doc = uidoc.Document
      If Not uidoc.EditMode Then uidoc.EditMode = True
      categories = doc.Categories
      categories(0) = "Main category"
      doc.Categories = categories
      Call doc.Save(True, False)
    End Sub
  7. 次の例では、[Person] フォームに基づいて新規文書を作成し、ユーザーからの情報を得るために、[Person Dialog Box] フォームに基づいてダイアログボックスを表示します。[Person Dialog Box] フォームのレイアウト領域には、[Person] フォームのフィールドと同じ名前を持つフィールドが含まれます。ユーザーがダイアログボックスで [OK] をクリックすると、ダイアログボックスのデータは新規文書の同じ名前のフィールドに転送されます。
    Sub Click(Source As Button)
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Set uidoc = workspace.ComposeDocument("","", "Person")
      Call workspace.DialogBox _
      ("Person Dialog Box", True, True)
    End Sub
  8. 次の例では、ビューの現在の文書を編集モードで開き、ユーザーからの情報を情報を得るために、[Person Dialog Box] フォームに基づいてダイアログボックスを表示します。[Person Dialog Box] フォームのレイアウト領域には、現在の文書のフィールドと同じ名前を持つフィールドが含まれます。ユーザーがダイアログボックスで [OK] をクリックすると、ダイアログボックスのデータは文書の同じ名前のフィールドに転送されます。
    Sub Click(Source As Button)
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Set uidoc = workspace.EditDocument(True)
      Call workspace.DialogBox _
      ("Person Dialog Box", True, True)
    End Sub
  9. 次の例は前の例と同様ですが、DialogBox メソッドに対してすべての引数を使用します。引数 4 (True) は [OK] ボタンだけを表示します。引数 5 (True) は基になるフォームに新規フィールドを追加することを拒否します。引数 6 (False) は基のフォームに編集内容を渡せるようにします。引数 7 (False) はダイアログボックスを編集できるようにします。最後の引数はダイアログボックスのタイトルを指定します。
    Sub Click(Source As Button)
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Set uidoc = workspace.EditDocument(True)
      Call workspace.DialogBox _
      ("Person Dialog Box", _
      True, True, True, True, False, False, _
      "Fill in this box and click Enter")
    End Sub
  10. 次の例は、指定された文字列を現在の UI 文書で検索します。
    Sub Click(Source As Button)
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Set uidoc = workspace.CurrentDocument
      Call uidoc.FindString("Get this string.")
    End Sub
  11. 次の例では、現在の UI 文書の本文部分にテキスト文書を呼び出します。
    Sub Click(Source As Button)  
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Set uidoc = workspace.CurrentDocument
      Call uidoc.Import
    End Sub
  12. 次の例では現在の文書を編集モードにし、スペルミスを調べます。SpellCheck メソッドを呼び出す前に、文書が編集モードでなければなりません。
    Sub Click(Source As Button)  
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Set uidoc = workspace.EditDocument(True)
      Call uidoc.SpellCheck
    End Sub
  13. 次の例では [空き時間の検索] ボックスを表示し、[SendTo] フィールドにリストされたユーザーの空いている時間を検索します。検索は [StartDateTime] と [EndDateTime] フィールドで定義された範囲に限定されます。
    Sub Click(Source As Button)  
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Set uidoc = workspace.CurrentDocument
      Call uidoc.Refresh
      Call uidoc.FindFreeTimeDialogEx _
      ("SendTo", "", "", "", "", "", "", "StartDateTime", _
      "EndDateTime")
    End Sub