高度なポリシーの処理

Office XP リソース キット/メンテナンス/システム ポリシーの使用

ポリシーに必要な入力パラメータとデータを理解していなければ、システム ポリシーの設定作業は困難です。ポリシーの中には、設定が複雑なものもあります。システム ポリシーを設定するには、そのポリシーで制御される機能、変更可能な設定値、アプリケーションや機能に対する影響などを十分に理解しておく必要があります。ここでは、複雑なポリシーのいくつかについて説明します。

単純なポリシーの設定

複雑なポリシーの設定方法を理解する前に、単純なポリシーの設定方法を確認しておきましょう。ここでは、Word と PowerPoint のポリシーを設定します。

表記を簡潔にするために、レジストリの  

HKEY_LOCAL_MACHINE を HKLM、

HKEY_CURRENT_USER を HKCU 

と略します。

   Windows 2000 でポリシーを設定して適用する方法については、[グループ ポリシー] スナップインのヘルプを参照してください。[グループ ポリシー] スナップインでポリシーを設定して適用する方法は、システム ポリシー エディタを使用する方法と似ています。ただし、ポリシー ファイルを実際に使用するために配置する方法が違います。Registry.pol ファイルを使用可能にする方法については、[グループ ポリシー] スナップインのヘルプで「Active Directory」を検索してください。

Word のバックグラウンド保存

Word では、ユーザーの作業中にバックグラウンドで (自動的に) ファイルを保存するかどうかを設定できます。ポリシーを使用してこの機能を有効にするには、[Allow Background saves] ポリシーを適用します。

Word のバックグラウンド保存機能を有効にするようポリシーを設定するには
  1. システム ポリシー エディタを起動します。
  2. 新しいポリシー ファイルを作成するか、既存のファイルを開きます。
  3. [既定のユーザー] アイコンをダブルクリックします。
  4. [Microsoft Word 2002] ノードを展開します。
  5. [Tools | Option] ノードを展開します。
  6. [Save] ノードを展開します。
  7. [Allow background saves] チェック ボックスをオンにします。
  8. [Allow background saves の設定] の [Check to enforce setting on; uncheck to enforce setting off] チェック ボックスをオンにします。

このポリシーを作成してドメイン コントローラ上に配置すると、ユーザーがネットワークにログオンした時点で、ポリシー ファイルの設定内容が自動的にユーザーのコンピュータに適用されます。ポリシー ファイルの情報を使用することにより、ユーザーのコンピュータに次のレジストリ エントリが作成されます。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Word¥Options

値の名前 :BackgroundSave

データ型 : REG_SZ(文字列)

値のデータ : 0または 1

Word の起動時には、このレジストリ設定が調べられ、値が指定されているかどうかが確認されます。このエントリが 1 であれば、バックグラウンド保存機能がオンになります。

ポリシー設定に変更が加えられた場合、それが永続的なもの、またはテンプレートに保存されているアプリケーションの設定に関係するものであれば、Normal.dot テンプレートが更新されます。

PowerPoint で [最近使用したファイルの一覧] を制御する

PowerPoint では、[ファイル] メニューに最近使用したファイルの一覧を表示するかどうかと、その一覧に表示するファイルの数を制御できます。この一覧は、技術的には「 MRU (Most Recently Used) リスト」と呼ばれます。次に示す手順は、すべてのユーザーについて、最近使用した 5 つのファイルをリストに表示するようにシステム ポリシーを設定する方法を示しています。

PowerPoint の最近使用したファイルの一覧のポリシーを設定するには
  1. システム ポリシー エディタを起動します。

  2. 新しいポリシー ファイルを作成するか、既存のファイルを開きます。

  3. [既定のユーザー] アイコンをダブルクリックします。

  4. [Microsoft PowerPoint 2002] ノードを展開します。

  5. [Tools | Option] ノードを展開します。

  6. [General] ノードを展開します。

  7. [Recently used file list] チェック ボックスをオンにします。

  8. [Recently used file list の設定] の [Enable recently used file list] チェック ボックスをオンにします。

  9. [Size of recently used file list] ボックスで 5 を選択します。

    このポリシーを保存して配布すると、すべての PowerPoint ユーザーについて、[ファイル] メニューの最近使用したファイルのリストに 5 つのファイルが表示されるようになります。

このポリシーを作成してドメイン コントローラ上に配置すると、ユーザーがネットワークにログオンした時点で、ポリシー ファイルの設定内容が自動的にユーザーのコンピュータに適用されます。ポリシー ファイルの情報を使用することにより、ユーザーのコンピュータに次の 2 つのレジストリ エントリが作成されます。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥PowerPoint¥Options

値の名前 : MRUListActive

データ型 : REG_DWORD (DWORD) 

値のデータ : 0または 1

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥PowerPoint¥Options

値の名前 : SizeOfMRUList

データ型 : REG_DWORD(DWORD) 

値のデータ : 0 ~ 9

PowerPoint の起動時には、これらのレジストリ設定が調べられ、値が指定されているかどうかが確認されます。MRUListActive レジストリ エントリが 1の場合、PowerPoint はSizeOfMRUListレジストリ エントリを使用します。SizeOfMRUListの値は 9以下です。

複雑なポリシーの設定

ポリシーの中には、入手しにくい情報が必要であるために設定が困難なものもあります。たとえば、メニューまたはツールバーの中の組み込み項目やカスタム項目の設定などです。ポリシー設定により、メニュー項目とそれに対応するツールバー ボタンを同時に無効にすることができます。Office アプリケーションの出荷時の組み込みツールバー項目やメニュー項目は、定義済み (Predefined) と見なされます。Office インストール後に追加するメニューやコマンドは、カスタム (Custom) と見なされます。

定義済みメニュー項目およびツールバー ボタンを無効にする

定義済みのメニュー項目とツールバー ボタンは、Office アプリケーションの ADM テンプレートの [Predefined] カテゴリで設定できます。定義済みのメニュー項目やツールバー ボタンとは、各アプリケーションの出荷時に存在するものです。ユーザーや開発者が作成し、[ツール] - [ユーザー設定] ダイアログ ボックスによって Office アプリケーションのユーザー インターフェイスに追加したメニュー項目やツールバー ボタンは、カスタムになります。

定義済みのメニュー項目とツールバー ボタンをポリシーによって無効にするには
  1. システム ポリシー エディタを起動します。

  2. 新しいポリシー ファイルを作成するか、既存のファイルを開きます。

  3. [既定のユーザー] アイコンをダブルクリックします。

  4. 無効にする項目が属する Office アプリケーション ノードを展開します。

  5. [Disable items in user interface] ノードを展開します。

  6. [Predefined] ノードを展開します。

  7. [Disable command bar buttons and menu items] チェック ボックスをオンにします。

  8. [Disable command bar buttons and menu items の設定] で、ポリシー設定を適用するメニュー項目のチェック ボックスをオンにします。

    たとえば、Excel の [挿入] メニューの [ハイパーリンク] コマンドと、[標準] ツールバーの [ハイパーリンクの挿入] ボタンを無効にするには、[Insert | Hyperlink] チェック ボックスをオンにします。

このポリシーを作成してドメイン コントローラ上に配置すると、ユーザーがネットワークにログオンした時点で、ポリシー ファイルの設定内容が自動的にユーザーのコンピュータに適用されます。ポリシー ファイルの情報を使用することにより、ユーザーのコンピュータに次のレジストリ エントリが作成されます。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Excel¥DisabledCmdBarItemsCheckBoxes

値の名前 : InsertHyperlink

データ型 : REG_SZ(文字列)

値のデータ : "< コントロール ID>"

Excel の起動時には、このレジストリ設定が調べられ、値が指定されているかどうかが確認されます。このエントリが 1576なら、[ハイパーリンク] メニュー項目が無効になります。この値が 0に変更されると、メニュー項目は再び有効になります。実際には、このレジストリ キーにはどのような値の名前を使用しても構いません。適切なコントロール ID さえ指定すれば、そのメニュー項目を無効にすることができます。

カスタム メニュー項目およびツールバー ボタンを無効にする

メニュー項目やツールバー ボタンを無効にするには、そのコントロール ID を知っておく必要があります。コントロール ID を説明しているドキュメントを入手できない場合は、このトピックの後半に掲載されているサンプル プログラムを実行してください。このプログラムを Word か Excel で実行すると、コントロール ID を見つけることができます。ほとんどの場合、定義済みのメニュー項目は Office アプリケーション間で同じコントロール ID を使用しています。したがって、このトピックの後半に掲載されているサンプル プログラムを使用できないアプリケーションでも、別のアプリケーションでサンプル プログラムを実行して調べたコントロール ID を使用してメニュー項目を無効にできる場合があります。

ポリシー テンプレートに定義されていないカスタムのメニュー項目やツールバー ボタンも無効にすることができます。コントロール ID さえ知っていれば、アプリケーションのどのメニュー項目やツールバーでも削除できます。

カスタム メニュー項目およびツールバー ボタンをポリシーによって無効にするには
  1. システム ポリシー エディタを起動します。
  2. 新しいポリシー ファイルを作成するか、既存のファイルを開きます。
  3. [既定のユーザー] アイコンをダブルクリックします。
  4. ポリシーを設定する項目の属する Office アプリケーション ノードを展開します。
  5. [Disable items in user interface] ノードを展開します。
  6. [Custom] ノードを展開します。
  7. [Disable command bar buttons and menu items] チェック ボックスをオンにします。
  8. [Disable command bar buttons and menu items の設定] で、[表示] ボタンをクリックします。
  9. [内容の表示] ボックスで、[追加] ボタンをクリックします。
  10. [アイテムの追加] ダイアログ ボックスのボックスに、メニュー項目およびツールバー項目のコントロール ID を入力します。

このポリシーを作成してドメイン コントローラ上に配置すると、ユーザーがネットワークにログオンした時点で、ポリシー ファイルの設定内容が自動的にユーザーのコンピュータに適用されます。ポリシー ファイルの情報を使用することにより、ユーザーのコンピュータに次のレジストリ エントリが作成されます。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Excel¥DisabledCmdBarItemsList

値の名前 :TCIDx

データ型 : REG_SZ(文字列)

値のデータ : "< コントロール ID>"

アプリケーションの起動時には、このレジストリ設定が調べられ、値が指定されているかどうかが確認されます。このエントリが 3なら、[上書き保存] メニュー項目が無効になります。後でこの値が削除されると、[上書き保存] メニュー項目が再び有効になります。

この TCDIx リストは一意のレジストリ エントリです。x は、リストにエントリが追加されるごとに 1 ずつ増えていきます。たとえば、レジストリには次のように TCIDx エントリが設定されます。

TCID1="3"
TCID2="748"
TCID3="20"
TCID4="21"

メニュー項目およびツールバー ボタンのコントロール ID

Office XP アプリケーションでは、VBA でCommandBars コレクションを使用することによって、メニューやツールバーのすべての項目についてコントロール ID を検索できます。個々のポリシー エントリにコントロール ID を指定すれば、そのメニュー項目とツールバー ボタンを無効にすることができます。

    メニュー項目とそれに対応するツールバー ボタンのコントロール ID は同じです。たとえば、Word の [ファイル] メニューの [上書き保存] コマンドと [標準] ツールバーの [上書き保存] ボタンのコントロール ID はどちらも 3です。

コントロール ID を検索する

項目のコマンドバー名、コントロール名、さらに必要に応じてサブコントロール名 (存在する場合) がわかっていれば、VBA の [イミディエイト] ウィンドウを使用して、メニューの項目のコントロール ID を 1 つずつ検索できます。たとえば、次のコマンドを入力して実行すると、[ファイル] メニューの [名前を付けて保存] コマンドのコントロール ID が [イミディエイト] ウィンドウに出力されます。Word を起動して [ツール] - [マクロ] - [Visual Basic Editor] を選択し、[イミディエイト] ウィンドウに次のコマンドを入力して、Enter キーを押してください。

サンプルコード 1
  ? CommandBars("Menu Bar").Controls(" ファイル (&F)").Controls(" 名前を付けて保存 (&A)...").ID

   Excel では、上記のコマンドで「Menu Bar」の代わりに「Worksheet Menu Bar」を使用します。

サンプルコード 2

次のコードを記述したマクロを実行すると、Office アプリケーションのすべてのコマンドバーの名前を検索できます ([MsgBox] を [Print] に置き換えると名前の一覧を取得できます)。

  For Each cbar In Application.CommandBars
MsgBox cbar.Name
Next
サンプルコード 3

次のコードを記述したマクロを実行すると、Word のメニューバーにあるすべてのコントロールオプションとコントロール ID を検索できます。「Menu Bar」は、サンプルコード 2 で取得した CommandBar の名前のいずれかに置き換えてください。

  For Each ccntrl In Application.CommandBars("Menu Bar").Controls
MsgBox ccntrl.Caption & " = "& ccntrl.ID
Next
サンプルコード 4

次のコードを記述したマクロを実行すると、Word のメニューバーの [ファイル] のサブコントロールについて、すべてのコントロールの表示名とコントロール ID を検索できます。「Menu Bar」は、サンプルコード 2 で取得したコマンドバーの名前、またはサンプルコード 3 で取得した関連するコントロールの表示名のいずれかに置き換えてください。

  For Each csubcntrl In Application.CommandBars("Menu Bar") _
.Controls(" ファイル (&F)").Controls
msgbox csubcntrl.Caption & " = "& csubcntrl.ID
Next
サンプルコード 5

マクロを使用して、メニューやツールバーのすべての項目についてコントロール ID を検索できます。たとえば、次に示すマクロは、Office XP アプリケーションの [ファイル] メニュー上にある項目ごとに、コマンドとそれに対応するコントロール ID をメッセージボックスに表示します。

  Sub EnumerateControls()
  Dim icbc As Integer
  Dim cbcs As CommandBarControls

  Set cbcs =Application.CommandBars("Menu bar") _
  Controls(" ファイル (&F)").Controls
  For icbc = 1 To cbcs.Count
   MsgBox cbcs(icbc).Caption & " =" & cbcs(icbc).ID
  Next icbc
End Sub
サンプルコード 6

次のコードは、これまでのすべてのサンプルコードに基づくものであり、Word のコマンドバー名、コマンドバー内のコントロール、サブコントロールとそのコントロール ID すべてを、Word ドキュメントに出力します。

  Sub ListControls()
  For Each cb In Application.CommandBars
    Selection.TypeText Text:=cb.Name
    Selection.TypeParagraph
  For Each cntl In Application.CommandBars(cb.Name).Controls
    Selection.TypeText Text:=vbTab &cntl.Caption
    Selection.TypeParagraph
    On Error GoTo ErrJump1:
    For Each subcntl In Application.CommandBars(cb.Name) _
    .Controls(cntl.Caption).Controls
        Selection.TypeText Text:=vbTab &vbTab & subcntl.Caption & _ 
        " = " & subcntl.ID
    Selection.TypeParagraph
  Next
PastError:
  Next
Next

GoTo bypass:
ErrJump1:
  Selection.TypeBackspace
  Selection.TypeText Text:=" = " & cntl.ID
  Selection.TypeParagraph
  Resume PastError:
bypass:
End Sub
サンプルコード 7

次に示すコードは、サンプルコード 6 を Excel で実行できるように修正したものです。

  Sub ListControls()
Dim icbs As Integer
icbs = 1

   Columns("A:A").ColumnWidth = 18
   Columns("B:B").ColumnWidth = 21
   Columns("C:C").ColumnWidth = 23

   Range("A1").Select
   ActiveCell.FormulaR1C1 = "Command Bar"
   Range("B1").Select
   ActiveCell.FormulaR1C1 = "Control caption"
   Range("C1").Select
   ActiveCell.FormulaR1C1 = "Control caption or ID"
   Range("D1").Select
   ActiveCell.FormulaR1C1 = "Control ID"

   Rows("2:2").Select
   ActiveWindow.FreezePanes = True

   For Each cb In Application.CommandBars
      icbs = icbs + 1
      Range("A"& icbs).Select
      ActiveCell.FormulaR1C1 = cb.Name
      For Each cntl In Application.CommandBars(cb.Name).Controls
         icbs = icbs + 1
         Range("B"& icbs).Select
         ActiveCell.FormulaR1C1 = cntl.Caption
         On Error GoTo ErrJump1:
         For Each subcntl In Application.CommandBars(cb.Name) _
         .Controls(cntl.Caption).Controls
            icbs = icbs + 1

         Range("C"&icbs).Select
         ActiveCell.FormulaR1C1 = subcntl.Caption
         Range("D"& icbs).Select
         ActiveCell.FormulaR1C1 = subcntl.ID
      Next

PastError:

   Next

   Next
GoTo bypass:
ErrJump1:
      Range("C"& icbs).Select
      ActiveCell.FormulaR1C1 = cntl.ID
Resume PastError:
bypass:
End Sub

ショートカット キーを無効にする

Office XP のコマンドの定義済みショートカット キーやカスタム ショートカット キーを無効にするには、システム ポリシー エディタでショートカット キー ID を指定します。

定義済みショートカット キーを無効にする

ほとんどのアプリケーションの組み込みショートカット キーは、ポリシー テンプレートの [Predefined] カテゴリに含まれています。

定義済みショートカット キーをポリシーによって無効にするには
  1. システム ポリシー エディタを起動します。
  2. 該当するポリシー プロファイルをダブルクリックします。
  3. 無効にする組み込みショートカット キーの属する Office アプリケーション ノードを展開します。
  4. [Disable items in user interface] ノードを展開します。
  5. [Predefined] ノードを展開します。
  6. [Disable shortcut keys] チェック ボックスをオンにします。
  7. [Disable shortcut keys の設定] で、無効にするショートカット キーのチェック ボックスをオンにします。

たとえば、Word の [Ctrl+K (Insert | Hyperlink)] をオンにすると、[ハイパーリンク] コマンド ([挿入] メニュー) のショートカット キーが無効になります。

このポリシーを作成してドメイン コントローラ上に配置すると、ユーザーがネットワークにログオンした時点で、ポリシー ファイルの設定内容が自動的にユーザーのコンピュータに適用されます。ポリシーファイルの情報を使用することにより、ユーザーのコンピュータに次のレジストリ エントリが作成されます。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Excel¥DisabledShortcutKeysCheckBoxes

値の名前:InsertHyperlink

データ型:REG_SZ(文字列) 

値のデータ: "<仮想キー コード,<補助キー コード"

アプリケーションの起動時には、このレジストリ設定が調べられ、値が指定されているかどうかが確認されます。このエントリが 75,8なら、[ハイパーリンク] ショートカット キーは無効になります。この値が 0に変更されると、ショートカット キーは再び有効になります。実際には、このレジストリ キーにはどのような値の名前を使用しても構いません。適切なキー コードの組み合わせさえ指定すれば、そのショートカット キーを無効にすることができます。仮想キー コードについては、この後の「ショートカット キーのキー コード」を参照してください。

カスタム ショートカット キーを無効にする

システム ポリシー エディタを使用して、ポリシー テンプレートに記述されていないカスタム ショートカット キーも無効にすることができます。

    カスタム ショートカット キーを無効にするには、ショートカット キーのキー コードを知っている必要があります。

カスタム ショートカット キーをポリシーによって無効にするには
  1. システム ポリシー エディタを起動します。

  2. 該当するポリシー プロファイルをダブルクリックします。

  3. 無効にするカスタム ショートカット キーの属する Office アプリケーション ノードを展開します。

  4. [Disable items in user interface] ノードを展開します。

  5. [Custom] ノードを展開します。

  6. [Disable shortcut keys] チェック ボックスをオンにします。

  7. [Disable shortcut keys の設定] で、[表示] ボタンをクリックします。

  8. [内容の表示] ボックスで、[追加] ボタンをクリックします。

  9. [アイテムの追加] ダイアログ ボックスのボックスで、ショートカット キーのキーと補助キー (Ctrl、Alt、Shift キー) の値を、次の構文で入力します。

    "< キー コード >,< 補助キー コード >"

    たとえば、ALT+Kというショートカット キーを無効にするには、75,16と入力します。

このポリシーを作成してドメイン コントローラ上に配置すると、ユーザーがネットワークにログオンした時点で、ポリシー ファイルの設定内容が自動的にユーザーのコンピュータに適用されます。ポリシー ファイルの情報を使用することにより、ユーザーのコンピュータに次のレジストリ エントリが作成されます。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Excel¥DisabledShortcutKeysList

値の名前 :KeyModx

データ型 :REG_SZ(文字列)

値のデータ : "<キー コード>,<補助キー コード>"

Excel の起動時には、このレジストリ設定が調べられ、値が指定されているかどうかが確認されます。このエントリが77,12 なら、そのカスタム ショートカット キー (Ctrl+Shift+M) は無効になります。この値が0 に変更されると、ショートカット キーは再び有効になります。実際には、このレジストリ キーにはどのような値の名前を使用しても構いません。適切なキー コードの組み合わせを指定すれば、そのショートカット キーを無効にすることができます。

このKeyModxリストは一意のレジストリ エントリです。xは、リストにエントリが追加されるごとに 1 ずつ増えていきます。たとえば、レジストリには次のようにKeyModxエントリが設定されます。

KeyMod1="72,0"
KeyMod2="74,4"
KeyMod3="81,8"
KeyMod4="69,12"
KeyMod5 = "70,16"
KeyMod6 = "73,20"
KeyMod7 = "78,24"
KeyMod8 = "88,28"

ショートカット キーのキー コード

キーボードの補助キーや英数字キーには、それぞれ対応するキー コードがあります。これらのコードを使用することにより、制御するキーを一意に識別できます。

システム ポリシー エディタでショートカット キーを無効にするには、英数字キーと補助キーのキー コードを知っておく必要があります。これらのキー コードがわかれば、ポリシーで次のような構文を使用することによって、ショートカット キーを無効にできます。

"< キー コード >,< 補助キー コード >"

< キー コード > は Windows でのキーのキー コード (たとえば G =71) であり、< 補助キー コード > は Windows での補助キーの値 (たとえば ALT =16) または補助キーの組み合わせの値 (たとえば ALT+CTRL=24) です。

ショートカット キーに複数の補助キーが使用されている場合は、それらの補助キーの値を合計したものが実際の補助キー コードとなり、それをシステム ポリシー エディタに入力します (たとえば ALT+SHIFT= 16 + 4 =20)。

システム ポリシー エディタでキーを記述するには、次の値を使用します。

キー

ALT

16

CONTROL

8

SHIFT

4

AZ

6490(A =65、Z =90)。

    システム ポリシー エディタでは、ALTCTRLSHIFT に対応するリテラルの仮想キー コードは使用できません。Office 環境でこれらのキーを参照するには、この表に示されている補助キーの値を使用してください。

キーボードの特定の入力に対応するキー コードがわからない場合は、Visual Basic Editor の [イミディエイト] ウィンドウで次に示すコードを入力してください。

  MsgBox BuildKeyCode(wdKeyA)

wdKeyA を wdKeyB、wdKeyC などに置き換えて、文字ごとにキー コードを調べることができます。

サンプル コード

次に示すサンプル コードは、Word の全ショートカット キーの一覧を作成します。このプログラムは、ショートカット キーに割り当てられているキーと、そのキーの値を調べるのに便利です。

  Function FindTheseKeys()
Dim IsValue As String
Dim IsValue2 As String
Dim I As Integer
Dim NoVal as Integer
 

Selection.TypeText Text:="Single key entries: Modifier value is 0"
Selection.TypeParagraph
For I = 1 To 254
   IsValue =FindKey(I).Command
   IsValue2 = KeyString(I)
   NoVal = PrintKey(IsValue,IsValue2, I)
Next I
Selection.TypeText Text:="Shift key entries: Modifier value is 4"
Selection.TypeParagraph
   For I = 1 To 254
   IsValue =FindKey(wdKeyShift, I).Command
   IsValue2 =KeyString(wdKeyShift, I)
   NoVal = PrintKey(IsValue,IsValue2, I)
Next I
Selection.TypeText Text:="Control key entries: Modifier value is 8"
Selection.TypeParagraph
For I = 1 To 254
   IsValue =FindKey(wdKeyControl, I).Command
   IsValue2 = KeyString(wdKeyControl,I)
   NoVal = PrintKey(IsValue,IsValue2, I)
Next I
Selection.TypeText Text:="Alt key entries:Modifier value is 16"
Selection.TypeParagraph
For I = 1 To 254
   IsValue =FindKey(wdKeyAlt, I).Command
   IsValue2 =KeyString(wdKeyAlt, I)
   NoVal = PrintKey(IsValue,IsValue2, I)
Next I
Selection.TypeText Text:="Shift + Control key entries: Modifier" & _
 value is 12
Selection.TypeParagraph
For I = 1 To 254
   IsValue =FindKey(KeyCode:=BuildKeyCode(wdKeyShift, wdKeyControl, I)).Command
   IsValue2 = KeyString(BuildKeyCode(wdKeyShift,wdKeyControl, I))
   NoVal = PrintKey(IsValue,IsValue2, I)
Next I
Selection.TypeText Text:="Shift + Alt key entries: Modifier value is 20"
Selection.TypeParagraph
For I = 1 To 254
   IsValue =FindKey(KeyCode:=BuildKeyCode(wdKeyShift, wdKeyAlt, I)) _
   .Command
   IsValue2 =KeyString(BuildKeyCode(wdKeyShift, wdKeyAlt, I))
   NoVal = PrintKey(IsValue,IsValue2, I)
Next I
Selection.TypeText Text:="Control + Alt key entries: Modifier value is 24"
Selection.TypeParagraph
For I = 1 To 254
   IsValue =FindKey(KeyCode:=BuildKeyCode(wdKeyControl, wdKeyAlt, I)) _
   .Command
   IsValue2 =KeyString(BuildKeyCode(wdKeyControl, wdKeyAlt, I))
   NoVal = PrintKey(IsValue,IsValue2, I)
Next I
End Function
 
Function PrintKey(IsValue As String, IsValue2 As String, I As Integer)
   If IsValue <> "" Then
      Selection.TypeText Text:=vbTab & "Key value is " & I & _
      " defined as " & IsValue2 & " = " &IsValue
      Selection.TypeParagraph
   End If
End Function

Word のすべてのコマンドに関するリストを取得する

次に示すコードを使用すると、Word の全コマンド一覧を作成できます。このコマンドを Word マクロで実行すると、すべてのコマンド、キー、補助キー、メニューの一覧が作成されます。TrueFalse に置き換えると、Word に追加されたコマンドだけの一覧が作成されます。

  Sub GetCommands()
Application.ListCommands ListAllCommands:=True
End Sub

Outlook の暗号化ポリシーを処理する

セキュリティは、どのアプリケーションにとっても非常に重要な要素です。Outlook のセキュリティでは暗号化機能 (暗号化スキーマ) がサポートされており、Windows 2000 の [グループ ポリシー] スナップインかシステム ポリシー エディタを使用して、対応するポリシーをオンに設定できます。

Outlook は電子メールサーバーを経由した外部とのインターフェイスです。さまざまな業務や政府機関では通信の保護が不可欠であるため、Outlook には他のアプリケーションとは異なる固有のセキュリティ要件があります。それらのセキュリティの要件を満たすため、Outlook には暗号化機能が含まれており、マクロ、ActiveX® コントロール、ドキュメントの証明書の検証機能が用意されています。さらに Outlook には、CRL (Certificate Revocation List :証明取り消し一覧) を確認する機能もあります。これは、Internet Explorer が実行可能プログラムを使用する際に証明書を検査する機能とよく似ています。Outlk10.adm には、これらの機能を設定するポリシーが含まれています。

暗号化機能を設定するポリシーを、次に示します。これらのポリシーは、管理者が理解しておくべき重要な機能であると考えられています。多くの場合、企業が政府機関とやり取りするときには、これらのポリシーを使用する必要があります。

Retrieving CRLs (Certificate Revocation Lists)

CRL を検索するために使用します

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :UseCRLChasing

データ型 :REG_DWORD

値のデータ :[0 | 1 | 2]

次のいずれかに設定します。

0- システムの既定値を使用

1- オンラインでは常に CRL を検索

2- CRL を検索しない

このポリシーを有効にすると CRL チェックが実行されるため、システムの処理速度が低下し、システム パフォーマンスが低下することがあります。

Encrypt all e-mail messages

すべての電子メールメッセージを暗号化します

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :AlwaysEncrypt

データ型 :REG_DWORD

値のデータ :[0 | 1]

AlwaysEncrypt の値を 1 に設定すると、すべての電子メール メッセージで暗号化が有効になります。システム ポリシー エディタでは、プロパティ ダイアログ ボックスの下にある [Check to enforce setting on; uncheck to enforce setting off] オプションを使用してください。

Sign all e-mail messages

すべての電子メール メッセージに署名を挿入します

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :AlwaysSign

データ型 :REG_DWORD

値のデータ :[0 | 1]

AlwaysSign の値を1に設定すると、ユーザーの作成するすべての電子メール メッセージに署名が挿入されるようになります。システム ポリシー エディタでは、ポリシーダイアログの下にある [Check to enforce setting on; uncheck to enforce setting off] オプションを使用してください。

Send all signed messages as clear signed messages

署名されたメッセージを、すべてクリア テキスト署名メッセージとして送信します。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :ClearSign

データ型 :REG_DWORD

値のデータ :[0 | 1]

ClearSign の値1に設定すると、署名されたメッセージはすべてクリア テキスト署名メッセージとして送信されます。システム ポリシー エディタでは、ポリシーダイアログ ボックスの下にある [Check to enforce setting on; uncheck to enforce setting off] オプションを使用してください。

Request a secure receipt for all S/MIME signed messages

すべての S/MIME 署名されたメッセージについて、確認メッセージを要求します。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :RequestSecureReceipt

データ型 :REG_DWORD

値のデータ :[0 | 1]

RequestSecureReceipt の値を1に設定すると、電子メール メッセージの受信者から確認メッセージが送信されるようになります。システム ポリシー エディタでは、ポリシー ダイアログ ボックスの下にある [Check to enforce setting on; uncheck to enforce setting off] オプションを使用してください。

Ensure all S/MIME signed messages have a label

すべての S/MIME 署名付きメッセージにラベルを付けます。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :ForceSecurityLabel

データ型 :REG_DWORD

値のデータ :[0 | 1]

ForceSecurityLabel の値を1に設定すると、すべての S/MIME 署名付きメッセージにラベルが付けられるようになります。これは、使用されるラベルの種類を指定するものではなく、単にラベルが付けられることを指定します。システム ポリシー エディタでは、ポリシーダイアログ ボックスの下にある [Check to enforce setting on; uncheck to enforce setting off] オプションを使用してください。

Missing CRLs

CRL の欠落を警告として扱うかエラーとして扱うかを指定します。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :SigStatusNoCRL

データ型 :REG_DWORD

値のデータ :[0 | 1]

SigStatusNoCRL の値を0(警告) または1(エラー) のどちらかに設定することにより、CRL の欠落が警告またはエラーとして報告されるようになります。既定値は、警告として報告するように設定されています。システム ポリシー エディタでは、ポリシー ダイアログ ボックスの下にある [Check to enforce setting on; uncheck to enforce setting off] オプションを使用してください。

Promoting errors as warnings

エラーのレベルを警告と同等にすることにより、ユーザーに対してはエラーが警告として報告されるようにします。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :PromoteErrorsAsWarnings

データ型 :REG_DWORD

値のデータ :[0 | 1]

このポリシーは、レベル2 のエラーがユーザーに対して警告として報告されるかどうかを制御します。PromoteErrorsAsWarnings キー値を1 に設定すると、エラーは警告として扱われます。システム ポリシー エディタでは、ポリシーダイアログ ボックスの下にある [Check to enforce setting on; uncheck to enforce setting off] オプションを使用してください。

レベル 2 のエラーとして考えられる状況は次のとおりです。

Disable 'Publish to GAL' button

[グローバルアドレス一覧に発行] ボタンを使用不可にします。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :PublishToGALDisabled

データ型 :REG_DWORD

値のデータ :[0 | 1]

ユーザー インターフェイスで [グローバルアドレス一覧に発行] ボタンを非表示にします。PublishToGALDisabled の値を1に設定すると、[グローバル アドレス一覧に発行] ボタンが無効になります。システム ポリシー エディタでは、ポリシーダイアログ ボックスの下にある [Check to enforce setting on; uncheck to enforce setting off] オプションを使用してください。

Run in FIPS compliant mode

FIPS 準拠モードで実行します。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :FIPSMode

データ型 :REG_DWORD

値のデータ :[0 | 1]

FIPSMode の値を1に設定すると、この設定が適用されます。システム ポリシー エディタでは、ポリシー ダイアログ ボックスの下にある [Check to enforce setting on; uncheck to enforce setting off] オプションを使用してください。

Signature Warning

無効な署名に対する警告を設定します。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :WarnAboutInvalid

データ型 :REG_DWORD

値のデータ :[0 | 1 | 2]

WarnAboutInvalid の値は次のように設定します。

0- 無効な署名についての警告を受け取るかどうかをユーザーが指定します。

1- 無効な署名について常に警告します。

2- 無効な署名について警告しません。

このポリシーは、無効な署名についての警告をユーザーが受け取るかどうかを、管理者が指定するのに使用します。ユーザーが選択できるようにする、常に警告する、あるいは常に警告しないのいずれかを指定できます。

Secure receipt requests

受信した電子メールに対して確認メッセージを送信します

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :RespondToReceiptRequests

データ型 :REG_DWORD

値のデータ :[0 | 1 | 2 | 3]

次の方法で電子メールメッセージを処理します。

0- 確認メッセージを送信できない場合でもメッセージを開く

1- 確認メッセージを送信する前に常にプロンプトを表示する

2- 確認メッセージを送信しない

3- 確認メッセージを送信できない場合はメッセージを開かない

Message when Outlook cannot find the digital ID to decode a message

Outlook がメッセージ解読のためのデジタル ID を検出できないときに、メッセージを表示します。

HKCU¥Software¥Policies¥Microsoft¥Office¥10.0¥Outlook¥Security

値の名前 :NeedEncryptionString

データ型 :REG_STRING

値のデータ :[< エラーメッセージ >]

Outlook で受け取ったメッセージを解読するためのデジタル ID を検出できないとき、メッセージを表示します。指定する文字列は 254 バイト以下でなければなりません。