製品サポート: 西暦 2000 年問題とは関係なく、マイクロソフトでは、つねに
最新のリリースおよびサービス パックをインストールすることをお客様に
推奨しております。その一方、さまざまな理由で、お客様が最新のリリースに
変更できない場合があることも理解しております。お客様の西暦 2000 年への対応
作業にご協力するため、マイクロソフトでは、Office 95 を西暦 2001 年 1 月 1 日まで
"対応" ソフトウェアとしてサポートする計画です。リリースされる新しいサービス バックも
西暦 2000 年に対応しており、それには 2000 年対応以外の内容も含まれます。
これは、お客様に 2000 年対応のためだけに製品のアップデートをお願いすることを
最小限にするためです。
Office 95 の西暦 2000 年対応のアップデートが 1999 年 5 月にリリースされました。
このアップデートでは、Office95 に含まれるアプリケーションの既知の 2000 年
関連問題が修正される予定です。このアップデートで修正される問題の詳細については、
次のサイトを参照してください。
http://www.asia.microsoft.com/japan/Office/OfficeFreeStuff/Office/O95y2k/
データの対応期間
システムに依存
* 注意: コードに関する以下の情報は、Microsoft Office 95 のドキュメントの一部を抜粋しています。製品に関する詳しい情報については、個々のアプリケーションの説明を参照してください。
日付の処理
ユーザーが表示したり、クエリ可能な日付と時刻はすべて、オペレーティング システムから日付と時刻が取得されます。日付は完全修飾の 4 桁の西暦で保存され、オペレーティング システムでの設定に従って表示されます。セットアップ ファイルを削除する場合を除き、セットアップに日付は影響しません。テスト結果については、以下を参照してください。
VBA と共有 Microsoft Office 95 オブジェクト モデルの場合
表示されるすべての日付と時刻はオペレーティング システム クロックから取得されます。すべての日付は、4 桁の西暦で保存されます。2 桁で表示される日付がある場合でも (Excel ワークシートでセルの書式を変更した場合など) 、値は常に 4 桁の西暦で保存されます。
共通プログラミング言語 (VBA Version 4.0) は、すべてのアプリケーションで使用されているため、VBA の組み込みコマンドを使用してすべてのアプリケーションで日付処理をテストできます。日付処理をテストする組み込み関数は、以下のとおりです。
Now ()
CDate()
CVDate()
DateValue()
Date()
Date$()
Format()
DateAdd()
DateDiff()
DatePart()
IsDate()
Day()
Month()
Weekday()
Year()
共有オブジェクト モデル メソッドとプロパティ
Office のファイル形式 (.xls, .doc, .ppt etc.) で保存されるファイルには、形式と関連付けられる日付プロパティがあります。このプロパティは、VBA メソッドを使用して操作することができます。
オブジェクト、メソッド、プロパティ、およびコレクションに、西暦 2000 年問題が影響する可能性があります。
Microsoft Office 95 ランゲージ リファレンス
ドキュメント プロパティ オブジェクト: プロパティ タイプを、日付にすることができます (たとえば、msoPropertyTypeDate CreationDate)。
CreationDate プロパティ
LastPrintDate プロパティ
LastSaveTime プロパティ
PropertyTests コレクション: PropertyTests の条件を日付にすることができます (たとえば、msoConditionNextMonth Add Method)。次のコレクションがあります。
Condition プロパティ
FileSearch Object LastModified プロパティ
下 2 桁の西暦の処理
[ファイルを開く] の [高度な検索] では、2 桁の日付を入力することができます。ファイルの高度な検索以外は、Office の共有機能は 2 桁の日付をシステム表示オプションとしてのみサポートします。詳しい情報については、個々のアプリケーションの説明を参照してください。
[高度な検索] において遠い将来の日付は、ファイルの作成日に関しては意味がありません。したがって、日付は、現在の年から 90 年を引いた値と、10 年を足した値の範囲と想定されます。 たとえば、1998 年の場合には、1908 年から 2008 年の間が日付範囲になります。下 2 桁の処理に関しては、個々のアプリケーションの説明を参照してください。この処理は、特定のアプリケーションに適用するように設定されています。
[ドキュメントのプロパティ] ダイアログ ボックスの [ファイルの情報] タブは、ファイルの日付情報を Windows コントロール パネルの [地域] で設定される 4 桁の西暦形式と一致させて保存し表示します。ただし、[ユーザー設定] タブで使用される日付形式は、1999 年を過ぎると下 2 桁の日付が正しく認識されなくなります。ユーザー設定のプロパティを使用している企業は、日付を入力するときに 4 桁すべてを入力するようにしてください。
VBA と共有 Office オブジェクト モデルの場合
オリジナルの設定では、2 桁の日付はすべて、システム クロックで設定される 20 世紀であると想定されていました。これを判断するロジックは、oleaut32.dll 共有リソース ファイルに含まれています。
お使いのコンピュータでは、この共有リソース ファイルが更新されている可能性があります。Internet Explorer 3.x 以上のブラウザ、Windows 95 OEM Service Release 2.5、Windows 98、および Windows NT 4 のオペレーティング システム、またはそのほかの Office アプリケーションがインストールされている場合、または最新の oleaut32.dll で更新されている場合には、共有リソース ファイルが更新されています。このような場合には、Office95 アプリケーションは oleaut32.dll のバージョンと一致する下 2 桁の日付処理のロジックを使用します。
ユーザーは、oleaut32.dll v2.20.4122 または最新の oleaut32.dll を、この問題が影響するすべてのコンピュータの c:\Windows\System (Windows 95) または c:\WINNT\System32 (Windows NT) ディレクトリにロードしてください。これにより、下 2 桁の日付処理は、上記の日付ウィンドウによる方法に、すべてのコンピュータで統一できます。
詳しい情報については、
日付に関する注意事項
Microsoft Office 95 間でデータを交換する場合には、プレーン テキストの使用を避けてください。プレーン テキストを使用する必要がある場合には、一旦 4 桁の西暦で保存した後で操作を行ってください。
日付データを含むテキスト値は、4 桁の西暦になっていることを確認してください。
Microsoft Word または Microsoft PowerPoint などの Microsoft Office 95 アプリケーションに入力またはインポートされる日付で、ドキュメント形式のデータ型を持たないものは、テキストとして処理されます。これらのアプリケーションは、計算の基となる日付を保存するのに使用しないでください (ドキュメント プロパティで使用される場合を除く)。
標準のドキュメント プロパティは、問題なくクエリを実施でき、すべての Microsoft Office 95 アプリケーション間で日付の検索や計算に使用することができます。これはプログラムを利用しても、またユーザー インターフェイスからでも実施できます。ユーザーが定義したプロパティの場合には、矛盾が発生します。
VBA と共有 Microsoft Office 95 オブジェクト モデルの場合
ユーザー定義関数は、日付処理で最もエラーが起こりやすい個所です。不完全な関数の記述が問題の原因となります。
文字列で保存された日付も、文字列内に不正な情報がある場合には問題の原因となる可能性があります。VBA 言語は、年/月/日の順に並べ替えて正しい日付になる場合には、文字列を日付として解釈します。たとえば、3/30/98 (1998 年 3 月 30 日) と 187/3/1 (187 年 3 月 1 日) は、年/月/日の順でなくても両方とも正しい日付として解釈されます。
ガイドラインと推奨事項
原則的に、実作業を行っている環境ではテストを行わないでください。ほかの製品の影響を予測できないからです。すべての Microsoft Office 95 製品間でのテストは問題ありません。
ファイルを削除するセットアップ メンテナンス モードは、Microsoft Office 95 のセットアップで唯一日付が影響する部分であり、最近インストールされたテンプレートを除くすべてのテンプレートが削除されます。これは、西暦 2000 年問題の対応には影響しませんが、西暦 2000 年のテストには影響します。テストのためにクロックが進められるため、本来削除されないテンプレートまで削除されるからです。
項目 |
小項目 |
マイクロソフトが実施したテストの概要 |
ファイル |
ダイアログ ドキュメントのオープン/保存用のプロパティ |
ドキュメント管理機能として、ファイルのオープン/保存があります。日付/時刻を変更してからファイルを保存しようとすると、これらの機能によって適切な [上書きしますか?] 確認ダイアログ ボックスが表示されます。また、ダイアログ ボックスの結果ペインに日付が表示され、ファイルのオープン/保存ダイアログ ボックスの結果ペインで日付が並べ替えられます。 |
Find Fast |
インデックスの作成日付 |
2000 年代の日付でインデックスを作成します。[インデックス] をクリックし、インデックスを作成します。そのインデックスを選択し、[情報] をクリックします。[地域] の設定に応じて西暦 2000 年または 00 年になっていることを確認します。 |
|
インデックスの最終変更日付 |
Find Fast が 3 分間隔で更新されるように設定します。システムの日付を 1999 年 12 月 31 日に設定し、2000 年に移行します。Find Fast の更新機構が影響を受けないことを確認します。 |
|
ファイルの作成日付 |
ファイルを 2000 年 1 月 1 日に作成します。1999 年 12 月 30 日より後に作成されたファイルを Office アプリケーションで検索し、ファイルが見つかることを確認します。 |
Find Fast (続き) |
ファイルの最終更新日付 |
ファイルを作成し、最終更新日付を 2000 年 1 月 1 日にします。最終更新日付が 1999 年 12 月 30 日より後のファイルを Office アプリケーションで検索し、ファイルが見つかることを確認します。 |
|
ファイルの最終出力日付 |
ファイルを作成し、最終更新日付を 2000 年 1 月 1 日にします。最終更新日付が 1999 年 12 月 30 日より後のファイルを Office アプリケーションで検索し、ファイルが見つかることを確認します |
|
カスタム日付プロパティ |
カスタム日付プロパティを 2000 年 1 月 1 日にして、ファイルを作成します。カスタム日付プロパティが 1999 年 12 月 30 日より後に設定されているファイルを Office アプリケーションで検索し、ファイルが見つかることを確認します。 |
|
うるう年のテスト |
上のテストを 5 回繰り返します。日付は 2000 年、2001 年、および 2004 年の 2 月 28 日と 29 日に設定します。 |
|
ログ ファイル |
[地域] で日付形式を西暦下 2 桁に設定すると、ログ ファイルに西暦 2000 年のログが 00 年としてとして記録されることを確認します。また、[地域] で日付形式を 4 桁の西暦に設定すると、2000 年として記録されることを確認します。 |
|
表示日付 |
[地域] で日付形式を西暦下 2 桁に設定すると、インデックスの作成/最終更新日付として、西暦 2000 年の下 2 桁 00 が表示されることを確認します。また、日付形式を 4 桁の西暦にすると、2000 が表示されることを確認します。 |
セットアップ |
フル インストール |
フル インストールはほかのオプション群から成るスーパーセットです。フル インストールは、ほかのソフトウェアがまだインストールされていないマシンで行うか、または Microsoft Office 95 がインストールされ、2000 年代への移行に完全に対応するように設定されているマシンで行ってください。 |
|
追加/削除 |
|
|
すべて削除 |
|
VBA と共有 Microsoft Office 95 オブジェクト モデルの場合
VBA で作成されたユーザーのテスト アプリケーションを使用して主プログラムをテストする場合には、特に注意が必要です。
ユーザー定義関数: 多くのアプリケーションで、日付をさまざまな方法で操作するために VBA で記述されたユーザー定義関数が使われています。これらの関数の多くは、日付値を文字列で保存します。これらの値の操作が不適切であると、マイクロソフトが実施した 2000 年問題対応テストの範囲を越える日付処理上の問題が発生することがあります。
日付の不正入力を捕捉するエラー処理ルーチンがあると、上の日付操作上の問題を引き起こすことがあります。文字列形式の日付が入力されても VBA はほとんどエラーを生成しないので、エラー処理ルーチンが呼び出されることはほとんどありません。このような場合は、不正な日付であることを通知する手段として、エラーではなく、コードを使用してデータを検証するためのプログラミングが必要になります。
異なるバージョンの oleaut32.dll がインストールされたコンピュータの間で相互作用をテストし、下 2 桁の処理で想定されているロジックが問題を発生しないことを確認します。
コード例
以下に示す例は、入力した日付によって、日付ウィンドウがどのように動作するかを示しています。インストールされている oleaut32.dll ファイルのバージョンにより、結果が異なる場合があります。
Sub TestDate()
Dim MyDate As Date
MyDate = "00/1/1"
Format MyDate, "yyyy/mm/dd"
MsgBox MyDate
End Sub
MyDate の入力値 |
Oleaut32.dll v2.1 以下 |
Oleaut32.dll v2.2 以上 |
00/1/1 1/1/1 9/1/1 2000/1/1 98/4/1 29/10/24 30/7/4 |
1900/1/1 1901/1/1 1909/1/1 2000/1/1 1998/4/1 2029/10/24 1930/7/4 |
2000/1/1 2001/1/1 2009/1/1 2000/1/1 1998/4/1 2029/10/24 1930/7/4 |
注意: MyDate の値の設定でダブル クォーテーションを省略すると、VBA は入力されているデータを自動的に 4 桁の西暦で入力したものと解釈します。