今回はWindows 10ではなく、Microsoft Officeの更新管理に関係する話です。Windowsの場合、毎月の品質更新プログラムや年に2回の機能更新プログラムで問題が発生すれば、更新プログラムのアンインストールや以前のバージョンへのロールバックで一時的に対処できます。しかし、Officeの更新で問題が発生した場合は、そう簡単にはいきません。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「Microsoft Office」は、Windowsと同様、毎月第2火曜日(日本では時差の関係で翌水曜日)にセキュリティ修正を含む更新プログラム、または更新バージョンがリリースされます。月次チャネルの製品の場合は、もっと頻繁に更新バージョンがリリースされます。
Windowsでは、毎月の品質更新プログラムや年に2回の機能更新プログラムの問題が原因で、正常に起動できなくなったり、特定のアプリやデバイスの利用に影響したりする場合がありますが、Microsoft Officeの更新も同様です。Microsoft Officeを業務アプリのフロントエンドとして利用している場合、問題の影響を受けると、日常の業務が完全にストップしてしまい、ユーザーやIT部門ではしばらく混乱が続くことになるでしょう。
2019年11月12日(米国時間)にリリースされたWindows版Microsoft Officeスイートまたは「Access」アプリの更新では、更新後に一部のクエリ(単一のテーブルに対するWHERE句を用いたUPDATE)が正常に機能しなくなるという問題が発生しました。
この問題はWindows版Accessのサポート期間中の全バージョン(Accessランタイムを含む)に影響するもので、日本語環境でこの問題の影響を受ける場合、クエリを実行すると「クエリ '<クエリ名>' は破損しています。」と表示され、機能しなくなります(画面1)。
この問題の詳細や回避策については、以下のドキュメントで説明されています。2019年11月15日時点でステータスは「修正済み(FIXED)」となっていますが、実際には未修正です。使用中のMicrosoft OfficeスイートやAccessアプリの環境によって違いますが、11月24日ごろ、または12月10日(いずれも米国時間)に修正版のバージョン/ビルドまたは更新プログラムが予定されています。Office 365については、月次チャネルの次期バージョン「1911」で修正される予定となっていますが、半期チャネルや半期チャネル(対象指定)に対する修正版については11月15日時点では示されていません。最新の状況については以下のサイトの更新をチェックしてください。
Windows版Microsoft Officeは、現在、「Office 2010」以降のバージョンがサポート期間中にあり、提供方法や更新チャネルもさまざまです。そのため、Microsoft Officeの更新で問題が発生すると、問題が解決された更新が提供されるまでの間、一時的に回避する方法もまた環境によって異なります。今回のAccessの問題を良い例として、緊急避難的に問題をいち早く解消する方法を一般化してみました。
なお、今回は、Microsoft Officeのコンテンツ配信ネットワーク(CDN)を使用する「クイック実行(Click-to-Run、C2R)」版の更新問題に対処する汎用(はんよう)的な手順を紹介します。「Office Deployment Tool(ODT)」を使用した社内ソースからの更新を行っている場合は、限定された範囲で先行的に更新プログラムを展開して評価し、問題がなければ全社展開するという運用になるでしょう。今回はMicrosoft Officeの更新に、ODTやその他の更新管理ツールを使用しない個人や企業を対象としています。
Windows UpdateやMicrosoft Officeの更新後にOfficeアプリで問題が確認された場合、更新のリリース直後にはなかなか情報が集まりません。Microsoftが重大な問題として認識すると、以下のサイトに問題の詳細や回避策、解決予定などが示されます。英語サイトの方がいち早く最新情報を入手できます。先ほどの「Access error:"Query is corrupt"」のページには、以下の英語サイトの「Windows」の「Access for PC」のページからアクセスできます。
簡単な回避策(Workaround)で問題に対処できる場合は、その実施を検討します。今回のAccessクエリの問題は、クエリを修正することで対処できますが(画面2)、影響を受けるクエリが膨大な場合や、Accessで作成されたアプリケーションの変更に制限がかかっている場合には回避策の実施は難しいでしょう。その場合は、通常、Microsoft Officeを問題のある更新の1つ前の状態にロールバックすることで回避できます。
Officeアプリの問題の原因が更新プログラム(MSI向け)または更新リリース(C2R向け)と判明したら、更新プログラムのKB番号または更新リリースのバージョン情報(ビルド番号)を控えます。なお、Officeアプリの問題が、Microsoft Officeの更新ではなく、Windowsの品質更新プログラムの場合もあることに注意してください。実際、2019年8月のWindowsの品質更新プログラムでは、Visual Basic 6.0(VB 6.0)、Visual Basic for Applications(VBA)、Visual Basic Scripting Edition(VBScript)でエラーが発生するという問題があり、この問題はOffice VBAに影響しました。
その上で、問題の影響を受けるMicrosoft Officeのインストールとそのバージョンを確認します。「Office 2013」以降、Officeアプリの提供方法としては、従来のインストールメディアからインストールするWindowsインストーラー(MSI)版と、オンラインで配信されるクイック実行(C2R)版の2種類が存在します。「Office 2016」以降は、ほとんどの製品がC2R版に移行されました。Office 2010は通常、MSI版です(C2R版は日本市場では提供されていません)。
使用中のMicrosoft OfficeがMSI版であるか、C2R版であるかは、Officeアプリの1つでメニューから「ファイル」→「アカウント」ページを開き、「Office更新プログラム」の項目があるかないかで確認できます。「Office更新プログラム」の項目がある場合はC2R版で、更新は新しい更新ビルドとしてCDN経由で更新されます(画面3)。
「Office更新プログラム」の項目がない場合はMSI版であり、Microsoft Officeの更新はWindows Updateを通じて個別の更新プログラムとして提供されます(画面4)。なお、C2R版の場合は「アカウント」ページでバージョン/ビルド、更新チャネル(月次、半期チャネル、半期チャネル(対象指定)など)を控えておきます。
C2R版にはさらに、「Office 365」「Microsoft 365」「Office Home」などのサブスクリプション版と、リテール製品である「永続版(perpetual)」があります。サブスクリプション版は「アカウント」ページの「バージョン情報」の項目の下に「新機能」の項目があり、新バージョンで提供される新機能の情報にアクセスできます。永続版には新機能は提供されず、「アカウント」ページに「新機能」の項目は存在しません。
MSI版Microsoft Officeの場合は、「プログラムと機能」の「インストールされた更新プログラム」のリストから問題の更新プログラムを選択してアンインストールします(画面5)。通常、これで更新プログラムが原因の問題は解消されるはずです。
ただし、問題のある更新プログラムが再びインストールされないように対処しておく必要があります。「Windows 7」や「Windows 8.1」の場合は、Windows Updateを実行して再び検出される問題のある更新プログラムを非表示にしておきます。「Windows 10」の場合は、「設定」アプリの「Windows Update」にある「更新の一時停止」機能を利用して、WindowsやOfficeの更新プログラムがしばらく自動インストールされるのを防止します。
C2R版Microsoft Officeのロールバックは少々厄介です。C2R版Microsoft Officeには、更新プログラムという形式では更新は提供されません。C2R版Microsoft Officeは、Microsoft Office CDNを通じて、更新されたバージョン/ビルドの最新リリースイメージが提供され、古いリリースイメージが新しいリリースイメージで置き換えられる形で更新されます。特定のバージョン/ビルドを指定しての更新も可能であり、その機能を利用して問題のない過去のバージョン/ビルドに更新するのです。
まず、以下のサイトにアクセスし、現在、使用中のMicrosoft Officeのビルドや更新チャネルに基づいて、1つ前の更新リリースのビルド番号(xxxx.yyyy)を調べます。例えば、月次チャネルのOffice 2016の11月12日のバージョン/ビルドは、バージョン1910、ビルド12130.20344です。その1つ前となると10月30日のバージョン1910、ビルド12130.20272になります(画面6)。
更新対象となる問題のないリリースのビルド番号(xxxx.yyyy)を入手したら、Officeアプリの「アカウント」ページの「更新オプション」で「更新を無効にする」を選択し、自動更新されないようにします。このとき、ユーザーアカウント制御(UAC)の同意が求められます。
次に、コマンドプロンプト(cmd.exe)を開き、Microsoft Officeのバージョンやbit数に応じて、次のいずれかのコマンドラインを実行します。コマンドプロンプトは管理者として開く必要はありません(画面7)。これで指定したビルドへの更新が開始します。
"%ProgramFiles%\Common Files\Microsoft Shared\ClickToRun\OfficeC2RClient.exe" /update user displaylevel=True updatetoversion=16.0.xxxx.yyyy
"%programfiles%\Microsoft Office 15\ClientX86\OfficeC2RClient.exe" /update user displaylevel=True updatetoversion=15.0.xxxx.yyyy
"%programfiles%\Microsoft Office 15\ClientX64\OfficeC2RClient.exe" /update user displaylevel=True updatetoversion=15.0.xxxx.yyyy
更新が完了したら、意図したビルドに更新されていること、アプリの問題が解消されたことを確認します(画面8)。なお、インストールされているC2R版Microsoft Officeが32bit版なのか64bit版なのか(Platform)や、ビルド番号(VersionToReport)は、コマンドプロンプトで以下のコマンドラインを実行することで確認できます。
REG QUERY "HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" /v Platform
REG QUERY "HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" /v VersionToReport
REG QUERY "HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun\Configuration" /v Platform
REG QUERY "HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun\Configuration" /v VersionToReport
Microsoft Officeの更新のロールバックは、修正された更新プログラムや更新バージョン/ビルドが提供されるまでの一時的、緊急避難的な対処方法です。C2R版Microsoft Officeの更新で問題があった場合、将来のバージョン/ビルドで問題が修正されます。公式サイトで問題の解決状況を確認し、修正されたバージョン/ビルドが利用可能になったことを確認できたら、Officeアプリの「アカウント」ページで「更新オプション」を「更新を有効にする」に戻してください。Windows 10でMSI版を利用している場合は、「更新の一時停止」を終了し、通常の更新設定に戻してください。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2019-2020)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.