Outlook Today ページを本当にカスタマイズする方法を理解する - TechRepublic

Outlook Today ページを本当にカスタマイズする方法を理解する - TechRepublic

ほとんどのMicrosoft Outlookユーザーと同じように、このアプリケーションを起動するとすぐに受信トレイフォルダにアクセスするように設定しているのではないでしょうか。「Outlook Today」は、Outlookのフォルダ一覧の一番上にあるフォルダの名前に過ぎません。Outlook Todayページにアクセスすることはあっても、実際に使うことはあまりないでしょう。

Outlookを使い始めた頃、Outlook Todayページにアクセスした際に、Outlookの機能に関する簡潔な概要、受信トレイへのアクセス方法、予定表の1週間表示、タスク一覧など、Outlookの機能に関する情報がわかりやすくまとめられていることに気づいたことがあるのではないでしょうか。興味をそそられ、このページをもっと便利にできないかと思い、「Outlook Todayをカスタマイズ」ボタンをクリックしたのではないでしょうか。しかし、「Outlook Todayをカスタマイズ」ページで利用可能なオプションを試してみたところ、選択肢が非常に限られていることに気づき、がっかりしたのではないでしょうか。そこで、「起動時にOutlook Todayに直接アクセスする」チェックボックスをオフにして、別のページに移動したのではないでしょうか。

ただし、「Outlook Today のカスタマイズ」ページは、Outlook Today をより便利にするための唯一の方法ではありません。Outlook Today ページの基盤となるテクノロジーの仕組みを理解すれば、デフォルトのオプションを使わずに、真にカスタマイズされた Outlook Today ページを構築できます。

Outlook Today ページの基盤となるテクノロジーを検証し、その仕組みを説明します。ここでは Outlook 2002 を例に挙げますが、この記事で説明するテクニックは Outlook 2000 にも適用できることにご留意ください。


これは Outlook 2003 にも適用されますか?

この記事で説明する手法は Outlook 2003 にも適用されますが、Outlook 2003 ではテストされていません。Outlook 2003 を使用していて、これらの手法が有効かどうかがわかった場合は、この記事の下のディスカッション領域を使用してお知らせください。


背景
ご想像のとおり、Microsoft はオペレーティング システムとアプリケーションの隅々まで Internet Explorer ブラウザ エンジンを組み込んでいるため、Outlook Today ページは HTML コードに基づいており、Outlook の Internet Explorer ブラウザ エンジンへのアクセスを介して表示されます。

より具体的には、Outlook Today はデータバインディングと呼ばれる Internet Explorer の機能を活用します。これは、ページ上の HTML テーブルをActiveX データソース コントロールを使用してデータソースにリンクできるように設計されています。この場合、データソースは Outlook 自体です。

ご存知のとおり、Outlook Today ページには「予定表」、「メッセージ」、「タスク」の 3 つのセクションがあります。これらのセクションはそれぞれ、いわゆる「データバインディング テーブル」に基づいています。このテーブルには、データソース コントロールが Outlook から情報を収集し、適切なデータバインディング テーブルに表示できるようにするコードが含まれています。これらのテーブルは、Outlook で新しい情報が追加または変更されるたびに動的に更新されます。

Outlook Today ページが HTML でレンダリングされることがわかったので、Windows エクスプローラーを開いて、ハードディスクのどこかの隠しフォルダに隠された Outlook Today HTML ファイルを探し始めたくなるかもしれません。しかし、その方法では見つかりません。Outlook Today ページの HTML コードは、Outlwvw.dllという DLL ファイル内に埋め込まれたリソースファイルです。

Outlook 2000 をご利用の場合、この DLL ファイルは C:\Program Files\Microsoft Office\Office\1033 フォルダにあります。Outlook 2002 をご利用の場合、このファイルは C:\Program Files\Microsoft Office\Office10\1033 フォルダにあります。Outlook 2003 をご利用の場合、このファイルは C:\Program Files\Microsoft Office\Office11\1033 フォルダにあります。

Outlook Today ページは HTML コードに基づいているため、カスタマイズは比較的簡単なプロセスだと想像できるでしょう。もちろん、スクリプトと HTML に精通していればの話ですが。しかし、まずは Outlook Today ページの HTML コードにアクセスする必要があります。幸いなことに、Outlwvw.dll ファイルから Outlook Today ページを HTML 形式で抽出する方法があります。では、その手順を詳しく見ていきましょう。

Outlook Today HTML ページの抽出
前述の通り、Outlook Today ページは Outlwvw.dll という DLL ファイルにリソースとして埋め込まれています。Internet Explorer、Resという特殊な URL プロトコル、そしてメモ帳を使えば、Outlwvw.dll ファイルから Outlook Today ページを HTML 形式で抽出できます。

まず、Outlookを閉じてください。Outlookを閉じたら、Internet Explorerを起動し、アドレスボックスに次のRes URLプロトコルを入力してください:
Res://C:\Program Files\Microsoft Office\Office10\1033\Outlwvw.dll/outlook.htm

この Res URL プロトコルを入力するときは、最後のスラッシュ マークが DLL ファイル名の直後にあり、前方に傾いていることに注意してください。


Res URLプロトコル

Res URLプロトコルは、ブラウザが埋め込まれたHTMLページを特別なカスタムリソースとしてアクセスできるようにするために設計されました。Res URLプロトコルの詳細については、MicrosoftのMSDNサイトをご覧ください。


「実行」ボタンをクリック(またはEnterキーを押す)すると、Internet ExplorerはOutlwvw.dllファイルにアクセスし、Res URLプロトコルを使用してOutlook Todayページを読み込みます。その際、エラーダイアログボックスが表示される場合があります。

たとえば、Internet Explorer 6 を使用しており、[インターネット オプション] ダイアログ ボックスの [詳細設定] タブで [スクリプト エラーごとに通知を表示する] 閲覧設定が選択されている場合は、図 Aに示すエラー ダイアログ ボックスが表示されます。

図A
Internet Explorer 6 は、すべてのスクリプト エラーを監視するように構成されている場合、このエラーを表示します。

このエラーは一見不吉に見えるので、念のためお知らせしておきます。抽出処理にはまったく影響しません。ダイアログボックスを閉じるには、「ページにエラーがある場合は常にこのメッセージを表示する」チェックボックスをオフにして、「OK」をクリックしてください。

これで、Internet Explorer で Outlook Today ページが表示されます。この例で使用した Res URL プロトコルでは、標準表示スタイルが生成されることに注意してください。他の Outlook Today ページスタイルを抽出したい場合は、埋め込まれたリソースファイルの名前を変更する必要があります。埋め込まれたリソースファイルの全リストは表 Aに示されています。

表A

ファイル名 スタイル
Outlook.htm 標準
Outlook1.htm 標準(2列)
Outlook2.htm 標準(1列)
Outlook3.htm
Outlook4.htm

抽出手順を開始するには、「表示」メニューをプルダウンし、「ソース」コマンドを選択します。すると、図Bに示すように、メモ帳にOutlook TodayページのHTMLコードが読み込まれます。

図B
メモ帳は Outlook Today ページの HTML コードを読み込みます。

その後、ファイルをハードディスク上の新しいフォルダに保存します。Outlook Today ページをカスタマイズする予定がある場合は、HTML ファイルと関連サポートファイル用の永続的なフォルダを作成する必要があります。例えば、ファイルを Outlook.htm という名前で、マイドキュメント内の Outlook Today という新しいフォルダに保存します。

この時点で、新しく抽出した Outlook.htm ファイルのコードにいくつか小さな変更を加える必要があります。幸いなことに、これらの変更はメモ帳の置換機能を使えば簡単に行えます。

まず、[Ctrl]+H を押し、「検索する文字列」テキストボックスに「display:none」と入力し、 「置換後の文字列」テキストボックスに「display:」と入力します(図C)。次に、「すべて置換」ボタンをクリックします。置換操作により、3行が変更されます。置換操作が完了したら、「置換」ダイアログボックスを閉じ、ファイルを再度保存して、メモ帳を閉じます。

図C
メモ帳の置換ツールを使用して、Outlook.htm ファイルに必要な変更を加えることができます。

グラフィックの抽出
この時点で、Outlook Today ページの一部である 2 つのグラフィック画像を抽出します。これにより、Outlook Today ページの標準表示スタイルが正しく表示されるようになります。

最初の画像は一目瞭然です。左上隅にある時計です。画像を抽出するには、画像を右クリックし、ドロップダウンメニューから「名前を付けて画像を保存」を選択します。「画像の保存」ダイアログボックスが表示されたら、Outlook Todayフォルダを探し、 「ファイル名」テキストボックスに「時計」と入力して「保存」をクリックします。

2つ目の画像は実際には隠れており、見えず小さいため、見つけるのが少し難しいです。しかし、この画像の目的は、ページレイアウトを適切にフォーマットするために必要なスペースを追加することです。この画像を見つけるには、カレンダーバーと区切り線の間にポインターを置き、右クリックします。図Dに示すように、ドロップダウンメニューに「名前を付けて画像を保存」コマンドがある場合は、そのコマンドを選択し、ファイル名にgapを使用して画像を保存します。最初の試みで隠れた画像が見つからない場合は、メニューに「名前を付けて画像を保存」コマンドがないため、マウスポインターを少し移動して再試行する必要があります。

図D
非表示の画像を右クリックすると、ドロップダウン メニューに [名前を付けて画像を保存] コマンドが表示されます。

Internet Explorerでは、これらの画像ファイルをBMP形式でのみ保存できますのでご注意ください。また、保存した画像は両方ともファイル名がすべて小文字になっていることにご注意ください。

2つの画像ファイルをBMP形式で保存したら、GIF形式に変換する必要があります。ペイントを使えば、この変換が可能です。ペイントを起動し(スタートメニューのアクセサリフォルダから)、画像を1つ読み込み、「ファイル」→「名前を付けて保存」を選択し、「ファイルの種類」ドロップダウンリストから「GIF」を選択します。これらの画像をGIF形式で保存したら、元のBMPファイルは削除しても構いません。

今後の展開:
この時点で、Outlook.htm ファイルをダブルクリックすると、Internet Explorer の標準表示スタイルを使用して、Outlook Today ページが完全にレンダリングされたコピーが表示されます。ただし、この時点では、スタンドアロンの Outlook Today ページは、データバインディング機能を介して Outlook に接続されていないことに注意してください。また、Outlook は引き続き埋め込みバージョンの Outlook Today ページを使用します。

そのため、カレンダーの予定、メッセージフォルダ、タスクは、スタンドアロンのOutlook Todayページには表示されません。データバインディング機能が有効になっていない場合でも、スタンドアロンのOutlook Todayページでリンクされた見出しのいずれかをクリックすると、別のOutlookインスタンスが起動します。例えば、「カレンダー」リンクをクリックすると、別のOutlookインスタンスが起動し、「カレンダー」ビューに切り替わります。

スタンドアロンの Outlook Today ページが Outlook に接続されていない状態でも、Outlook.htm ファイルをお好みの HTML 編集プログラムに読み込んでレイアウトをカスタマイズできます。スクリプトと HTML に精通している場合は、メモ帳で Outlook.htm ファイルを読み込んで編集し、データバインディング コントロールの調査を開始することもできます。

次の記事では、Outlook.htm ファイルを編集して Outlook Today ページに他の Outlook 機能を追加し、より機能的にする方法をご紹介します。また、データバインディング機能を有効にしてスタンドアロンの Outlook Today ページを Outlook に接続し、Outlook インターフェースの一部として使用できるようにする方法についても説明します。

Tagged: