文書番号: 201095 - 最終更新日: 2003年8月21日 - リビジョン: 1.0

[OL] Outlook ソリューションで CommandBars を使用する方法

お知らせお使いのオペレーティング システムには適用しない情報が含まれている場合があります。

目次

すべて展開する | すべて折りたたむ

概要

Microsoft Outlook は他の Microsoft Office アプリケーションが使用するのと同じ CommandBars を使用しますが、Outlook では CommandBars は異なる手法で実装されます。この資料では、CommandBar の実装における違いについて説明します。これにより、開発者が Outlook ソリューションを設計するときに CommandBars を使用して作業する方法をより深く理解できるようにします。

この資料の「詳細」には、以下のトピックが含まれています。

詳細

Office では、各 Office アプリケーションのメニューやツール バーは CommandBars オブジェクト モデルによって表されます。CommandBars は Office の共有コンポーネントで、オブジェクト モデルは Microsoft Office 10.0 Object Library で提供されます。CommandBars オブジェクト モデルは Outlook オブジェクト モデルに含まれていません。代わりに、Outlook オブジェクトは Microsoft Office 10.0 Object Library からこの機能を利用します。

Outlook CommandBar アーキテクチャ

Outlook 以外の Office アプリケーションは 1 セットの CommandBars をサポートしますが、Outlook は 2 セットの CommandBars をサポートします。メイン アプリケーション ウィンドウで 1 セットと、各個別のアイテムで 1 セットです。

開発者は、Outlook のメイン ウィンドウ (アプリケーション ウィンドウ) を "エクスプローラ" と呼んでいます。

重要 : これらのウィンドウは、フォルダを右クリックして [新しいウィンドウで開く] をクリックすることで、別のウィンドウを開いて、別のフォルダで作業できます。そのため、これらのウィンドウはフォルダ レベルのウィンドウとも見なされます。

これらのエクスプローラ ウィンドウに以外に、各 Outlook アイテムは "インスペクタ" と呼ばれるフォーム ウィンドウを所持しています。これらのアイテムにはメニューおよびツール バーがあるため、これらのインスペクタ ウィンドウも 1 セットの CommandBars を持っています。

以下のようにオブジェクトを使い分けます。
  • Outlook のメイン アプリケーション ウィンドウを参照するには、エクスプローラ オブジェクト (ActiveExplorer/GetExplorer) を使用します。
  • Outlook アイテムのウィンドウを参照するには、インスペクタ オブジェクト (ActiveInspector/GetInspector) を使用します。
                             |  "アクティブ" なウィンドウ       |  フォルダまたはアイテムの
   ウィンドウの種類           |  を参照する方法                  |  ウィンドウを参照する方法
   ---------------------------------------------------------------------------------
   アプリケーション       |  ActiveExplorer メソッドを使用。   |  GetExplorer メソッドを使用。
                         |                                  |
   アイテムまたはフォーム  |  ActiveInspector メソッドを使用。  |  GetInspector メソッドを使用。
				

Microsoft Word を電子メール エディタとして使用する際の考慮事項

メール アイテムの Outlook CommandBar ソリューションを設計する場合、Microsoft Word を電子メール エディタとして設定すると異なる CommandBars が使用されることを理解しておく必要があります。Word を電子メール エディタとして使用するときに考慮すべきいくつかの主要な点は以下のとおりです。
  • CommandBars は Word の一部であり、Outlook の一部ではない。
  • 使用できる CommandBar は、メッセージのエディタと形式によって異なる。
  • メッセージ エディタまたは書式を変更すると、ユーザー設定ボタンが非表示になる場合がある。
  • Envelope CommandBar は設計上の扱いが特殊であり、ユーザー設定できない。
  • Word を電子メール エディタとして設定している場合、Office 2000 では HTML 形式とテキスト形式のインスペクタ オブジェクトが存在しない。
利用できる CommandBars は、エディタ (Outlook と Word) とメッセージ形式 (リッチ テキスト形式、HTML、およびテキスト形式) の組み合わせによって異なることがあります。そのため、各構成についてソリューション全体をテストすることが重要です。構成によって利用できる CommandBars が異なるため、ある構成で追加したボタンが、別の構成に変更した後で表示されなくなることがよくあります。Word を電子メール エディタとして設定した状態では、Word アプリケーションがアイテム レベル (インスペクタ) の CommandBars を提供します。Microsoft Office 2002 を使用する場合は、インスペクタ オブジェクトを使用してこれらの Word CommandBars の一部にアクセスできますが、Microsoft Office 2000 を使用している場合はアクセスできません。Office 2000 で Word を電子メール エディタとして使用する場合、HTML メッセージおよびテキスト形式のメッセージにはインスペクタ オブジェクトが含まれないため、Word オブジェクト モデルを使用して CommandBars にアクセスする必要があります。また、CommandBar のユーザー設定情報の格納場所も、CommandBars を提供するアプリケーションによって異なります。標準の Outlook CommandBars に対するユーザー設定情報は Outcmd.dat ファイルに格納されますが、Word CommandBar に対するユーザー設定情報は Word の Normal.dot グローバル テンプレートに格納されます。

また、Word のバージョンと電子メール メッセージ形式によって、異なる 2 種類の CommandBar テクノロジ セットが提供されています。Office 2002 では、すべてのメッセージ形式がデフォルトで特殊な Envelope CommandBar を使用しますが、Office 2000 では、HTML メッセージとテキスト形式のメッセージのみがデフォルトで Envelope CommandBar を使用します。Envelope CommandBar には、[送信] ボタンやメッセージ フィールド ("宛先"、"CC"、"件名") など、電子メール固有の機能が含まれています。Envelope CommandBar は Word のツール バーの一覧に表示されず、ユーザー設定できるように設計されていないため、他の CommandBars にもすべて変更を加える必要があります。Office 2000 はリッチ テキスト形式のメッセージを個別に処理し、メッセージの作成と読み取りに [Outlook メールの送信] と [Outlook メールの開封] CommandBars を使用します。Office 2002 のメッセージ形式はデフォルトでは [Outlook メールの送信] と [Outlook メールの開封] CommandBars を使用しませんが、これらの CommandBars を使用するユーザー設定の Outlook フォームを設計できます。Word を電子メール エディタとして使用するようにユーザー設定のフォームを構成するには、フォーム デザイン モードでフォームの [(プロパティ)] タブをクリックし、[Microsoft Word を電子メール エディタとして使用する] をオンにします。

Outlook におけるユーザー設定可能なメニューとツール バーのサポートの変遷

CommandBars は本来 Word や Microsoft Excel などのドキュメント中心のアプリケーション用に設計されました。ドキュメント中心のアプリケーションは、1 セットのアプリケーション レベルの CommandBars をサポートします。他のアプリケーションについては、CommandBars デザインのすべての機能が完全にサポートされており、Microsoft Office 97 以降では、CommandBars のユーザー設定機能はさまざまな方法で完全にサポートされています。ただし、Outlook の CommandBar については、以下のようなさまざまな方法でサポートを継続しています。
  • Microsoft Outlook 97 では、Outlook ユーザー インターフェイスを使用してツール バーとメニューをユーザー設定できません。Outlook 97 は CommandBars への変更を保存するように設計されていません。CommandBars オブジェクト モデルは Outlook オブジェクト モデルに公開されますが、メニューやツール バーが "読み取り専用" 状態であるため、メニューやツール バーの変更に CommandBars オブジェクト モデルを使用できません。ただし、Excecute メソッドを使用して組み込みの Outlook コマンドをプログラム上で実行できます。Outlook 97 で追加のツール バー ボタンやメニュー コマンドを作成する唯一の方法は、C または C++ で Microsoft Exchange クライアント拡張機能を作成することです。
  • Microsoft Outlook 98 では、CommandBars オブジェクト モデルへの変更をプログラム上で行わないことをお勧めします。ツール バーとメニューは Outlook ユーザー インターフェイスでユーザー設定でき、ユーザー設定情報は、Outcmd.dat と呼ばれるファイルに保存されます。ただし、CommandBars オブジェクト モデルは Outlook オブジェクト モデルに公開されており、プログラムを使用して新しいツール バー ボタンやメニュー コマンドを追加できますが、この機能は実際の作業用に設計またはテストされませんでした。このため、Outlook 98 で CommandBars オブジェクト モデルを使用すると問題が発生することがあります。Outlook 98 は Microsoft Visual Basic for Applications (VBA) もアプリケーション レベルのコードもサポートしません。そのため、アプリケーション レベルのウィンドウまたはエクスプローラにユーザー設定コマンドをプログラムを使用して追加する場合、ボタンにユーザー設定コードを添付する方法がありません。プログラムを使用してユーザー設定ボタンをアイテム レベルのウィンドウまたはインスペクタに追加する場合、ユーザー設定の Microsoft Visual Basic Scripting Edition (VBScript) スクリプトを実行するボタンをフォーム内に追加できます。しかし、他の種類のアイテム上にボタンが表示されるという問題が発生し、新しいアイテムと既存のアイテムを開く動作が異なる場合があります。
  • Outlook 2000 は、プログラム上でユーザー設定できるツール バーとメニューをサポートするように設計されている Outlook の最初のバージョンです。Outlook 2000 では、VBA と COM (Component Object Model) アドインのサポートが同時に追加されています。

CommandBars および Outlook オブジェクト モデル

他の Office アプリケーションのオブジェクト モデルでは、アプリケーション レベルの CommandBars を 1 セットのみサポートするため、CommandBars コレクションはアプリケーション オブジェクトの外にあります。ただし、Outlook オブジェクト モデルは Outlook がサポートする 2 セットの CommandBars (インスペクタとエクスプローラ) をサポートするように設計されています。

Outlook オブジェクト モデルでは、CommandBars コレクションが Outlook アプリケーション オブジェクトの外ではなく、エクスプローラ オブジェクトとインスペクト オブジェクトの外にあります。プログラムを使用して CommandBars への変更を行う方法を例示するためのコード例は多数あります。ただし、それらの例の大部分は他の Office アプリケーション用に設計されています。Outlook でそれらの例を使用するには、コードを適切に変更して、Outlook オブジェクト モデルの相違点を反映する必要があります。

ユーザー設定フォームのソリューション

VBScript を使用するユーザー設定フォーム ソリューションでは、通常は次のようなコードを使用してフォーム レベルの CommandBars にアクセスします。
Set objCBs = Item.GetInspector.CommandBars
				

Outlook コマンドを実行する VBScript サンプル

連絡先フォーム上のコマンド ボタン コントロールで次のサンプル コードを使用することにより、連絡先の新しいレターを簡単に作成できます。
Sub CommandButton1_Click()
   Set MyCB = Item.GetInspector.CommandBars.Item("Menu Bar")
   Set MyMenu = MyCB.Controls("Actions")
   Set MyMenuItem = MyMenu.Controls("New Letter to Contact")
   MyMenuItem.Execute()
End Sub
				

FindControl メソッドを使用する VBScript サンプル

Outlook が各コマンドに割り当てている内部の値を知っている場合、FindControl メソッドを使用して Outlook コマンド (または CommandBars オブジェクト モデルに関連するコントロール) を参照できます。内部 ID を使用すると、CommandBar コマンドの実行時に、より正確な構文を使用でき、メニューやツール バーに表示されていないコマンドにアクセスできます。

たとえば、ユーザー設定のコマンド ボタンを使用してフォームを印刷するユーザー設定 Outlook フォームを例にとります。コマンド ボタンが cmdPrint という名前であると仮定すると、以下の 2 つの VBScript コード例のいずれかを使用することにより [印刷] ダイアログ ボックスを表示します。
Sub cmdPrint_Click()
   Item.GetInspector.CommandBars.FindControl(,4).Execute
End Sub

Sub cmdPrint_Click()
   Item.GetInspector.CommandBars.Item("Menu Bar").Controls("File") _
      .Controls("Print...").Execute
End Sub
				
Outlook CommandBar コントロール ID の一覧を生成する方法の例については、この資料の「Excel ユーティリティを使用して Outlook CommandBar ID の一覧を生成する」で Excel の例を参照してください。

アプリケーション レベルのソリューション

Outlook VBA や COM アドインなど、アプリケーション レベルのソリューションの場合、通常次のようなコードを使用してアプリケーション レベルの CommandBars にアクセスします。
Set objCBs = Application.ActiveExplorer.CommandBars
				

Visual Basic for Applications

Outlook VBA は、個人用開発ツールとして設計されています。このような種類のソリューションを展開するように設計されていません。そのため、通常は Outlook VBA からプログラムを使用して CommandBar をユーザー設定を行わず、代わりに、以下のようにユーザー設定の CommandBar ボタンを手動で作成します。
  1. [ツール] メニューの [ユーザー設定] をクリックします。
  2. [コマンド] タブをクリックし、[分類] の一覧で [マクロ] をクリックします。
  3. マクロをメニューまたはツール バーにドラッグします。
  4. ツール バーまたはメニュー コマンドの外観を変更するには、[ユーザー設定] ウィンドウで [選択したボタンの編集] をクリックし、ユーザー設定のツール バーまたはメニュー コマンドを変更します。
  5. [閉じる] をクリックします。

CommandBar コントロールを追加する VBA サンプル

CommandBar コントロールを追加するには、次の手順を実行します。
  1. サンプルのユーザー設定 Outlook 投稿フォームを作成し、それを受信トレイに発行します。そのフォームに TestFormPost という名前を付けます。
  2. [ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
  3. [プロジェクト - Project1] の下の [Project1]、[Microsoft Outlook Objects] を順に展開し、[ThisOutlookSession] をダブルクリックします。
  4. コード ウィンドウで、以下のコードを入力します。
    Dim WithEvents myControl As CommandBarButton
    
    Private Sub Application_Startup()
    
       Dim oExp As Outlook.Explorer
       Dim oBar As Office.CommandBar
    
       Set oExp = Outlook.ActiveExplorer
       Set oBar = oExp.CommandBars.Item("Standard")
    
       ' See if button already exists based on Tag value
       Set myControl = oBar.FindControl(, , "OpenForm")
    
       ' If not found then create button
       If myControl Is Nothing Then
          Set myControl = oBar.Controls.Add(, , , 2, True)
          With myControl
             .Caption = "Open Form"
             .FaceId = 59
             .Style = msoButtonIconAndCaption
             .Tag = "OpenForm"
             .Visible = True
          End With
       End If
    
    End Sub
    
    Private Sub myControl_Click(ByVal Ctrl As _
          Office.CommandBarButton, CancelDefault As Boolean)
          
       Dim myFolder As MAPIFolder
    
       Set myFolder = Session.GetDefaultFolder(olFolderInbox)
       Set MyItem = myFolder.Items.Add("IPM.Post.TestForm")
       MyItem.Display
    
       Set MyItem = Nothing
       Set myFolder = Nothing
    
    End Sub
    					
  5. Visual Basic Editor を閉じます。
  6. Outlook を閉じます。VBA プロジェクトへの変更を保存するかどうかを確認するダイアログ ボックスが表示されたら、[はい] をクリックします。
  7. Outlook を起動します。

CommandBar コントロールを追加するための COM アドイン サンプル

COM アドインを作成することによってアプリケーション レベルのコードを Outlook ユーザーに配布する方法がサポートされています。以下の COM アドイン コード サンプルは、新しいボタンを標準の Outlook CommandBar の最初の場所に追加する方法を例示しています (COM アドインがまだ読み込まれていない場合は、ボタンの OnAction プロパティを設定して COM アドインを読み込むこともできます)。
Dim OL As Outlook.Application
Dim WithEvents objButton As Office.CommandBarButton

Private Sub AddinInstance_OnConnection(ByVal Application As Object, _
   ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
   ByVal AddInInst As Object, custom() As Variant)

   Dim objBar As Office.CommandBar
   Set OL = Application
   Set objBar = OL.ActiveExplorer.CommandBars.Item("Standard")
   Set objButton = objBar.Controls.Add(, , , 1, True)
   With objButton
      .FaceId = 59
      .Caption = "My Button"
      .Style = msoButtonIconAndCaption

      ' The OnAction property is optional but recommended. 
      ' It should be set to the ProgID of the add-in, such that if
      ' the add-in is not loaded when a user presses the button,
      ' Outlook loads the add-in automatically and then raises
      ' the Click event for the add-in to handle. 

      .OnAction = "!<" & AddInInst.ProgId & ">"
   End With

End Sub

Private Sub objButton_Click(ByVal Ctrl As Office.CommandBarButton, _
   CancelDefault As Boolean)

   MsgBox "Hello World"

End Sub
				
Outlook で使用する COM アドインの作成方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
230225? (http://support.microsoft.com/kb/230225/EN-US/ ) OL2000: How to Create a COM Add-in for Outlook
230225 ? (http://support.microsoft.com/kb/230225/JA/ ) [OL2000] Outlook の COM アドインを作成する方法

Excel ユーティリティを使用して Outlook CommandBar ID の一覧を生成する

以下のような Microsoft Excel VBA サンプル コードを使用して、Outlook コマンドとそれらのコマンドに対応する CommandBar コントロール ID の一覧を含むスプレッドシートを生成できます。このコードを実行することにより Excel AutoFilter がスプレッドシートに追加され、検索中の ID を簡単に検出できるようになります。

このユーティリティを設定するには、次の手順を実行します。
  1. Excel を起動します。新しい Excel ブックが表示されていることを確認します。
  2. [ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
  3. エディタのプロジェクト エクスプローラ ウィンドウで、[ThisWorkbook] をダブルクリックして、コード ウィンドウを開きます。
  4. コード ウィンドウで、以下のコードを入力します。
    Option Explicit
    Dim oOutApp As Outlook.Application
    Dim I As Long
    Dim iRowCount As Long
    Dim oItm As Object ' so it'll handle varying item types
    Dim oSheet As Excel.Worksheet
    Dim oNS As Outlook.NameSpace
    Dim oFld As Outlook.MAPIFolder
    
    Sub GetOutlookCommandBarIDs()
    
    If MsgBox("This will clear the current worksheet, OK to continue?", vbOKCancel) = 1 Then
       
       Cells.Select
       Selection.ClearContents
       
       iRowCount = 0
       Set oSheet = ActiveSheet
       Set oOutApp = New Outlook.Application
       Set oNS = oOutApp.Session
       
       Set oItm = oOutApp.CreateItem(olMailItem)
       GetInspectorIDs oItm, "Mail Message"
       Set oItm = oOutApp.CreateItem(olPostItem)
       GetInspectorIDs oItm, "Post"
       Set oItm = oOutApp.CreateItem(olContactItem)
       GetInspectorIDs oItm, "Contact"
       Set oItm = oOutApp.CreateItem(olDistributionListItem)
       GetInspectorIDs oItm, "Distribution List"
       Set oItm = oOutApp.CreateItem(olAppointmentItem)
       GetInspectorIDs oItm, "Appointment"
       Set oItm = oOutApp.CreateItem(olTaskItem)
       GetInspectorIDs oItm, "Task"
       Set oItm = oOutApp.CreateItem(olJournalItem)
       GetInspectorIDs oItm, "Journal Entry"
       
       Set oFld = oNS.GetDefaultFolder(olFolderInbox)
       GetExplorerIDs oFld, "Mail Folder"
       Set oFld = oNS.GetDefaultFolder(olFolderContacts)
       GetExplorerIDs oFld, "Contact Folder"
       Set oFld = oNS.GetDefaultFolder(olFolderCalendar)
       GetExplorerIDs oFld, "Calendar Folder"
       Set oFld = oNS.GetDefaultFolder(olFolderTasks)
       GetExplorerIDs oFld, "Task Folder"
       Set oFld = oNS.GetDefaultFolder(olFolderJournal)
       GetExplorerIDs oFld, "Journal Folder"
       Set oFld = oNS.GetDefaultFolder(olFolderNotes)
       GetExplorerIDs oFld, "Notes Folder"
       
       Selection.AutoFilter
       Cells.Select
       Cells.EntireColumn.AutoFit
       Range("A1").Select
    
       MsgBox "The spreadsheet is complete."
       
    End If
    
    End Sub
    
    
    Sub GetInspectorIDs(oItm, sType As String)
       Dim oCBs As Office.CommandBars
       Dim oCtl As Office.CommandBarControl
       Set oCBs = oItm.GetInspector.CommandBars
       For I = 1 To 35000
          Set oCtl = oCBs.FindControl(, I)
          If Not (oCtl Is Nothing) Then
             iRowCount = iRowCount + 1
             oSheet.Cells(iRowCount, 1) = "Inspector"
             oSheet.Cells(iRowCount, 2) = sType
             oSheet.Cells(iRowCount, 3) = oCtl.Parent.Name
             oSheet.Cells(iRowCount, 4) = oCtl.Caption
             oSheet.Cells(iRowCount, 5) = CStr(I)
          End If
       Next
    End Sub
    
    
    Sub GetExplorerIDs(oFld As Outlook.MAPIFolder, sType As String)
       Dim oCBs As Office.CommandBars
       Dim sFilter As String
       Dim oCtl As Office.CommandBarControl
       Set oCBs = oFld.GetExplorer.CommandBars
       For I = 1 To 35000
          Set oCtl = oCBs.FindControl(, I)
          If Not (oCtl Is Nothing) Then
             iRowCount = iRowCount + 1
             oSheet.Cells(iRowCount, 1) = "Explorer"
             oSheet.Cells(iRowCount, 2) = sType
             oSheet.Cells(iRowCount, 3) = oCtl.Parent.Name
             oSheet.Cells(iRowCount, 4) = oCtl.Caption
             oSheet.Cells(iRowCount, 5) = CStr(I)
          End If
       Next
    End Sub
    					
  5. [ツール] メニューの [参照設定] をクリックします。参照可能なライブラリ ファイルの一覧で、[Microsoft Outlook 10.0 Object Library] をオンにし、[OK] をクリックします。
  6. Visual Basic Editor を閉じます。
  7. Excel ブックを保存して、後で使用できるようにします。
ID の一覧を生成するには、次の手順を実行します。
  1. Excel のセキュリティ設定がマクロの実行を許可していることを確認します。[ツール] メニューの [マクロ] をポイントして [セキュリティ] をクリックします。設定が [中] または [低] になっていることを確認します。そのように設定されていない場合は、少なくとも一時的に [中] または [低] に設定します。[高] から設定を変更する場合、Excel を再起動する必要があります。
  2. Excel ユーティリティを設定するときに作成したブックを開きます。
  3. [ツール] メニューの [マクロ] をポイントし、[マクロ] をクリックします。[GetOutlookCommandBarIDs] マクロをクリックし、[実行] をクリックします。
  4. スプレッドシートが生成されるまで待機します。この処理には、少なくとも数分かかります。マクロが実行を完了した後で、"The spreadsheet is complete." というメッセージが表示されます。
  5. スプレッドシートの生成後にブックを保存し、マクロを再実行する必要がないようにします。
スプレッドシートを使用するには、最上部でオート フィルタ機能を使用して検索中の CommandBar ID を検出します。たとえば、セル A1 では、エクスプローラ オブジェクトまたはインスペクタ オブジェクトでコマンドを選択できます。セル B1 では、コマンドを含むアイテムまたはフォルダの種類を選択できます。

関連情報

Microsoft Outlook のソリューションに関する利用可能なリソース、および一般的な質問に対する回答を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
146636? (http://support.microsoft.com/kb/146636/EN-US/ ) OL2000: Questions About Custom Forms and Outlook Solutions
287530? (http://support.microsoft.com/kb/287530/EN-US/ ) OL2002: Questions About Custom Forms and Outlook Solutions

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 201095? (http://support.microsoft.com/kb/201095/EN-US/ ) (最終更新日 2002-05-13) を基に作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

この資料は以下の製品について記述したものです。
  • Microsoft Outlook 2000 Standard Edition
  • Microsoft Outlook 2002 Standard Edition
キーワード:?
kbinfo KB201095
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"