製品メンテナンス : マイクロソフトは、西暦2000年問題とは関係なく、お客様に最新のサービス パック/リリースをインストールされることお勧めしていますが、様々な理由 により不可能な場合もあることは理解しております。お客様
前提条件 : 2 桁年形式を含むテキスト ファイルをインポートまたはエクスポートすると、誤った世紀の年に指定される可能性があります。この問題の詳細について、または、097dtfix アップデートのダウンロードする場合は、Q197237 をご覧ください。 Microsoft Access 97 を使用して、QBEグリッド、またはオブジェクトのプロ パティ シートの基準として、2桁日付を指定している場合、クエリーを実行す る際のコンピューターのシステム セッティングの日付と一致しないという不 具合が発見された。詳細については、次のアップグレードをダウンロードして ください。 http://support.microsoft.com/support/kb/articles/Q172/7/33.asp Office 97 サービス バック (SR) 2 パッチを次のURLからダウンロードしてください。 http://www.microsoft.com/japan/Office/documents/servicerelese/sr2/ 西暦2000年問題を含む、Office 97 の SR-2 での変更点についても、上記 URL をご覧ください。 もともとの Office 97 と SR-1 で存在し、SR-2 で修正されたすべての西暦2000年 問題が記載されています。このアップグレードで対象となった問題は、SR-1 およ び もともとの Office 97 を含む、すべての Office 97 リリースに存在しています。 注意:Office 97 SR-2 をインストールするには、Office 97 SR-1 が必要です。 西暦2000年ソフトウェア アップグレードは、Office 97 SR-1 をインストール していないお客様のために用意されたものです。 次のサイトからこのソフトウェア アップグレードをダウンロードすることができます。 http://www.microsoft.com/japan/ofice/OfficeFreeStuff/Office/O97y2k/default.htm このアップグレード ソフトウェアは、Office 97 SR-2 の西暦2000年ソフトウェア アップ グレードと同じものです。 データの対応期間: システムに依存します* メモ: 以下の内容は、Microsoft Office 97 ドキュメント間で共有するコードが対象です。製品の詳細情報については、各アプリケーションを参照してください。日付の処理ユーザーが表示または問い合わせを行える日付と時刻は、オペレーティング システムの日付と時刻から取得します。日付と時刻は完全に指定された 4 桁の西暦で保存され、オペレーティング システムのユーザー設定に従って表示されます。セットアップは日付に依存しません (ファイル削除用の DLL は例外)。テストについては、以下を参照してください。VBA と Microsoft Office 97 共有オブジェクト モデルの場合すべてのアプリケーションが 1 つの共通プログラミング言語 (VBA Version 5) を使用するので、VBA の組み込みコマンドをテストすることによって、すべてのアプリケーションの日付処理を検証できます。日付処理用として、以下の組み込み関数があります。
データの対応期間: システムに依存します* メモ: 以下の内容は、Microsoft Office 97 ドキュメント間で共有するコードが対象です。製品の詳細情報については、各アプリケーションを参照してください。日付の処理ユーザーが表示または問い合わせを行える日付と時刻は、オペレーティング システムの日付と時刻から取得します。日付と時刻は完全に指定された 4 桁の西暦で保存され、オペレーティング システムのユーザー設定に従って表示されます。セットアップは日付に依存しません (ファイル削除用の DLL は例外)。テストについては、以下を参照してください。VBA と Microsoft Office 97 共有オブジェクト モデルの場合すべてのアプリケーションが 1 つの共通プログラミング言語 (VBA Version 5) を使用するので、VBA の組み込みコマンドをテストすることによって、すべてのアプリケーションの日付処理を検証できます。日付処理用として、以下の組み込み関数があります。
CDate()
CVDate()
DateValue()
Date()
Date$()
Format()
DateAdd()
DateDiff()
DatePart()
IsDate()
Day()
Month()
Weekday()
Year()
表示されるすべての日付と時刻が、オペレーティング システムのクロックから取得されます。日付はすべて長い形式で保存されます。日付の表示には下 2 桁の西暦も使用できますが、値は必ず長い値で保持されます。短い形式で表示するには、Excel ワークシートでセルを書式化するか、または VBA の Format 関数などを使用します。西暦下 2 桁だけを指定すると、年の最初の 2 桁が以下の「下 2 桁の西暦の処理」の規則に従って判定されます。Microsoft Office 97 アプリケーションで作成したファイルは日付情報を持っています (DateCreated、DateModified など)。この情報にはプログラムからアクセスできます。通常のファイル コマンドで作成したファイルはすべて 4 桁の西暦が付与されています。これらの属性として西暦下 2 桁の日付を指定した場合も、「下 2 桁の西暦の処理」の規則に従って西暦の上 2 桁が判定されます。共有オブジェクト モデルのメソッドとプロパティMicrosoft Office 97 の形式 (.xls、.doc、.ppt など) で保存したファイルは、日付プロパティが関連付けられます。これらのプロパティは VBA のメソッドで操作できます。2000 年への対応は、2000 年問題対応テストによって確認されています。2000 年問題の影響が予想されるオブジェクト、メソッド、プロパティ、およびコレクションMicrosoft Office ランゲージ リファレンス
Document Properties オブジェクト - プロパティの型を msoPropertyTypeDate などの日付型にできます。CreationDate プロパティ LastPrintDate プロパティ LastSaveTime プロパティ PropertyTests コレクション - プロパティのテスト条件として、msoConditionNextMonth などの日付があります。Add メソッドCondition プロパティFileSearch オブジェクトLastModified プロパティ
下 2 桁の西暦の処理Microsoft Office 97 の共有機能のシステムの表示オプションについては説明します。そのほかについては、各アプリケーションを参照してください。[詳細な条件を使用した検索] 機能は 10 年の範囲で、現在の日付に基づき、1900 年代か 2000 年代かを特定します。ファイル作成日付として遠い未来の日付はありえないからです。Microsoft Office 97 内のアプリケーションのロジックは、各アプリケーションに合わせて設計されいます。各製品ガイドを参照してください。VBA と Microsoft Office 97 共有オブジェクト モデルの場合下 2 桁の西暦だけを指定すると、次の規則に従って西暦上 2 桁が判定されます。
00 ~ 29 の 2 桁は 2000 年代 (2000 ~ 2029) と見なされます。30 ~ 99 の 2 桁は 1900 年代 (1930 ~ 1999) と見なされます。
この規則に従って、すべての日付が解釈されます。日付を組み込み関数で使用した場合でも、日付を Microsoft Office 97 プログラムに直接入力した場合でも、VBA を使用して日付情報をファイル属性に割り当てた場合でも同じです。詳細については、VBA 5.0 の製品ガイドを参照してください。日付に関する注意事項Microsoft Office 97 アプリケーション間でデータを交換するときは、単純なテキスト データを使用しないでください。テキスト データでの交換が必要な場合は、テキスト データを 4 桁の西暦で保存し、操作してください。VBA と ODBC は Microsoft Office 97 の日付型データを正しく処理します。テキスト値に日付データを含める場合は、必ず 4 桁の西暦を使用します。データを Microsoft Word や PowerPoint などの Microsoft Office 97 アプリケーションに入力またはインポートすると、単純なテキストとして扱われます。計算のベースにする日付をこれらのアプリケーションで保存しないでください。これらのアプリケーションのドキュメント形式には、データの型指定がないからです。ただし、ドキュメントのプロパティのインスタンスには保存してもかまいません。ドキュメントの標準プロパティの問い合わせおよび使用時の手順は、日付の問い合わせおよび計算機能があるすべての Microsoft Office 97 アプリケーションで同じです。プログラムまたはユーザー インターフェイスから行えます。ただし、ユーザー定義のカスタム プロパティについては、アプリケーション間で異なることがあります。VBA と Microsoft Office 97 共有オブジェクト モデルの場合ユーザー定義関数は、日付処理で起こる問題の最大要因です。関数が正しく定義されていないと、問題を引き起こすことがあります。 日付を文字列で保存した場合も、情報に誤りがあると、問題を引き起こします。「年/月/日」の順番を変更しても有効な日付形式になる場合は、VBA 言語が文字列を日付として解釈します。たとえば、「年/月/日」の順番を変更しても、3/30/98 (1998 年 3 月 30 日) と 187/3/1 (187 年 3 月 1 日) は日付として有効です。ガイドラインと推奨事項原則として、実作業を行っている環境ではテストを行わないでください。ほかの非対応製品からの影響を予測できないからです。ほかの Microsoft Office 97 製品との日付データのやり取りは問題 なくテストできます。 OFFCLEAN.DLL は Microsoft Office 97 セットアップの中で日付に依存する唯一の製品です。この DLL は数か月以内にインストールされたテンプレート以外のテンプレートをすべて削除します。西暦 2000 年への対応には影響しませんが、2000 年問題対応テストに影響します。テスト時にシステム クロックを進めると、削除されるテンプレートの数が増えることがあります。
小項目
マイクロソフトが実施したテストの概要
ファイル
ダイアログ ドキュメントのオープン/保存用のプロパティ
ドキュメント管理機能として、ファイルのオープン/保存があります。日付/時刻を変更してからファイルを保存しようとすると、これらの機能によって適切な [上書きしますか?] 確認ダイアログ ボックスが表示されます。また、ダイアログ ボックスの結果ペインに日付が表示され、ファイルのオープン/保存ダイアログ ボックスの結果ペインで日付が並べ替えられます。
Find Fast
インデックスの作成日付
2000 年代の日付でインデックスを作成します。[インデックス] をクリックし、インデックスを作成します。そのインデックスを選択し、[情報] をクリックします。[地域] の設定に応じて西暦 2000 年または 00 年になっていることを確認します。
インデックスの最終変更日付
Find Fast が 3 分間隔で更新されるように設定します。システムの日付を 1999 年 12 月 31 日に設定し、2000 年に移行します。Find Fast の更新機構が影響を受けないことを確認します。
ファイルの作成日付
ファイルを 2000 年 1 月 1 日に作成します。1999 年 12 月 30 日より後に作成されたファイルを Microsoft Office 97 アプリケーションで検索し、ファイルが見つかることを確認します。
Find Fast (続き)
ファイルの最終更新日付
ファイルを作成し、最終更新日付を 2000 年 1 月 1 日にします。最終更新日付が 1999 年 12 月 30 日より後のファイルを Microsoft Office 97 アプリケーションで検索し、ファイルが見つかることを確認します。
ファイルの最終出力日付
ファイルを作成し、最終更新日付を 2000 年 1 月 1 日にします。最終更新日付が 1999 年 12 月 30 日より後のファイルを Microsoft Office 97 アプリケーションで検索し、ファイルが見つかることを確認します
カスタム日付プロパティ
カスタム日付プロパティを 2000 年 1 月 1 日にして、ファイルを作成します。カスタム日付プロパティが 1999 年 12 月 30 日より後に設定されているファイルを Microsoft Office 97 アプリケーションで検索し、ファイルが見つかることを確認します。
うるう年のテスト
上のテストを 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 97 共有オブジェクト モデルの場合VBA で記述されたアプリケーションをテストする場合は、特に次の 3 つの問題要因に注意してください。
ユーザー定義関数: 多くのアプリケーションで、日付をさまざまな方法で操作するために VBA で記述されたユーザー定義関数が使われています。これらの関数の多くは、日付値を文字列で保存します。これらの値の操作が不適切であると、マイクロソフトが実施した 2000 年問題対応テストの範囲を越える日付処理上の問題が発生することがあります。日付の不正入力を捕捉するエラー処理ルーチンがあると、上の日付操作上の問題を引き起こすことがあります。文字列形式の日付が入力されても VBA はほとんどエラーを生成しないので、エラー処理ルーチンが呼び出されることはほとんどありません。このような場合は、不正な日付であることを通知する手段として、エラーではなく、コードを使用してデータを検証するためのプログラミングが必要になります。 Access の TransferText メソッドを使用するアプリケーションをテストして、1999 年より後の日付の処理方法を調べてください。日付の転送が、テキストではなく、日付型で行われるように、このメソッドを含むコードを書き直すことをお勧めします。
コード例
Dim MyDate As DateMyDate = "00/1/1"Format MyDate, "yyyy/mm/dd"MsgBox MyDate
End Sub
予想される表示内容
00/1/1 1/1/1 9/1/1 2000/1/1 98/4/1 29/10/24 30/7/4 00/2/29 1900/2/29
2000/1/1 2001/1/1 2009/1/1 2000/1/1 1998/4/1 2029/10/24 1930/7/4 2000/2/29 エラー - 型の不一致 (1900 はうるう年ではない)
MyDate の値を設定するときに二重引用符を省略すると、VBA は自動的に 4 桁の西暦で日付が入力されたものと解釈します。
製品ガイドに戻る
# マイクロソフトの対応基準に対して許容範囲の差異がある製品。製品の主要な機能 (データ保全性など) や安定性 (信頼性など) に影響を与えない程度に限られます。
+ 頒布予定の修正プログラムで対応できる製品。修正プログラムが公開された時点で、できるだけ早期の対応が必要です。
注意:上記の対応状況分類では、必要な対応操作が行われることを前提としています。
マイクロソフトおよび西暦 2000 年問題に関する情報(本書記載の情報の他、西暦 2000 年テスト、評価、対応情況、対応スケジュール、目標、その他に関する、過去、現在および将来の全ての情報を含みますが、これらに限られません。 以下、これらを総称して「マイクロソフト西暦 2000 年ステートメント」といいます。)の送信または伝達は全て、ここに米国の「西暦 2000 年問題に関する情報および対応開示に関する法律」に定義されているところの「西暦 2000 年対応情報開示」として提供されます。 また、かかる情報は、http://www.microsoft.com/japan/year2k/ のマイクロソフトの西暦 2000 年Webサイト(以下「Y2K Webサイト」といいます。)にて参照可能です。 「マイクロソフト西暦 2000 年ステートメント」は、それぞれ、この使用条件、Y2K Webサイト記載の条件並びに「西暦 2000 年問題に関する情報および対応開示に関する法律」の条項に従い、お客様の西暦 2000 年問題に対応するための技術計画を支援させていただく目的でのみ提供されています。 各「マイクロソフト西暦 2000 年ステートメント」には、入手可能な最新情報が含まれますが、それらは逐次更新されます。 従って、マイクロソフトは、お客様が定期的に、Y2K Webサイトを確認して、「マイクロソフト西暦 2000 年ステートメント」の変更を確認されることをお勧めします。 「マイクロソフト西暦 2000 年ステートメント」は、全て、“現状ベース”で提供されるものであり、いかなる保証も伴うものではありません。 従って、マイクロソフトは、商品性の保証および特定目的への適合性を含めて、明示的にも黙示的にもいかなる保証もいたしません。 さらに、マイクロソフトは、いかなる「マイクロソフト西暦 2000 年ステートメント」の使用またはその使用結果についても、その正確性、真実性、信頼性等、いかなる保証もしくは表明も行いません。 マイクロソフトまたはその権限ある代理人による、口頭もしくは書面による一切の情報もしくはアドバイスは、何らの保証を意味するものでもなく、かつ上記の保証の拒絶の範囲を狭めるものではありません。 マイクロソフトおよびその供給者は、いかなる場合においても、「マイクロソフト西暦 2000 年ステートメント」に関連して生じた、直接損害、間接損害、偶発損害、派生損害、事業利益の逸失、懲罰的損害、または特別損害を含むすべての損害について、たとえかかる損害の発生の可能性を知らされていた場合であっても、一切責任を負いません。 派生損害または偶発損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。 各「マイクロソフト西暦 2000 年ステートメント」に含まれる情報は、Y2K Webサイトで参照可能であり、マイクロソフト西暦 2000 年対応状況(YEAR 2000 COMPLIANCE STATEMENT)、マイクロソフトが、その西暦 2000 年製品ガイドにおいて、製品の分類に使用している対応基準に関する説明(DESCRIPTION OF THE CATEGORIES OF COMPLIANCE)およびテスト基準(THE MICROSOFT YEAR 2000 TEST CRITERIA)等、と併せてお読みいただくことを意図して提供されているものです。
マイクロソフトが、西暦 2000 年問題関連の修正版、西暦 2000 年診断ツールまたは修正サービスの提供において、お客様に提供することのある、すべての「マイクロソフト西暦 2000 年ステートメント」は、米国の「西暦 2000 年問題に関する情報及び対応開示に関する法律(112 STAT.2386)」の適用を条件として提供されるものです。 何らかの争いが生じた場合には、かかるステートメントの使用に関するお客様の権利は、お客様との契約書または料金表において、別段の合意がなされていない限り、この法律により制限されます。