Excel と Access を連携する方法

Microsoft Excel とAccess を利用し、業務システムをクラウドで運用するための情報・技術などを発信していくサイトです。

VBA プロジェクトを読み取れないため、データベースを開くことができません。Office 2016

突然、「VBA プロジェクトを読み取れないため、データベースを開くことができません。」というエラーメッセージで警告された。(Access 2016 の場合)

f:id:muramoto1041:20170926113631p:plain

「VBA プロジェクトを削除する場合は、[OK]をクリックしてください。」と表示しているので、[キャンセル]をクリックするのですが、何度クリックしても画面は閉じません。

 

仕方なく[OK]をクリックすると VBA プロジェクトが、すべて消去されます。つまり、プログラムが全て削除されるのです。

 

こんな、バグ、ありますか?本当にひどい!

 

Office 2016 バージョン 1708

f:id:muramoto1041:20170926114108p:plain

Excel 2016 と Access 2016 で、昨日と今日、ユーザー様からの連絡で発覚しました。

f:id:muramoto1041:20170926114307p:plain

Excelの場合のメッセージ

例1)'ファイル名' の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?

例2)このブック内の Visual Basic for Applications (VBA) マクロは破損しており、削除されました。 

 

読み取れなかった内容を修復または削除することにより、ファイルを開くことができました。

Excel の場合は、このような画面です。バージョンが 1708 で発生する同様の症状です。

 マクロや VBAプログラムが削除されると、下記のような画面が表示されます。

f:id:muramoto1041:20170928092137p:plain

同様に Office 製品のバージョンは、1708 です。クイック実行では、自動的にプログラムのバージョンが上がっていきます。

f:id:muramoto1041:20170928091906p:plain

マイクロソフトの情報は、下記の通りです。

Office 2016 バージョン 1708 以降で日本語の VBA モジュール名を含むファイルを開くとエラー – Japan Office Developer Support Blog

 

本現象への有効な回避策はありません。

f:id:muramoto1041:20170926114819p:plain

 

プログラムが、動かない。

常に、最新の Office を使うのは、こんなに危険です。

Windows OS のアップデートは、自動で行った方がセキュリティ対策にはよいが、Office のアップデートは、手動で行う方がよさそうです。

 

業務システムが、突然エラーが出始めるなんて恐ろしくて使えません。

 

正式対応が掲載されました。(推奨)

f:id:muramoto1041:20171006103822p:plain

Monthly Channel および Office Insider スローに修正を公開しました。Monthly Channel は 16.0.8431.2094、Insider スローは 16.0.8528.2126 で修正されています。ただし、現時点ではまだ、自動更新ではこのバージョンに更新されないことがあります。[ファイル] タブ - [アカウント] - [更新オプション] - [今すぐ更新] から手動で更新してください。(以下の暫定対応手順で、指定するバージョンを上記の修正されたバージョンに変更して実行することでも更新できます。) 

 

手動で、[今すぐ更新]を行ってください。

f:id:muramoto1041:20171006103953p:plain

 

暫定対応手順が掲載されました(終了)

f:id:muramoto1041:20170929092817p:plain

バージョンを戻す方法をわかりやすく説明しています。コマンドプロンプトの使い方がわかる方なら、簡単にバージョンを戻せます。下記のリンクを参照してください。

Office 2016 バージョン 1708 以降で日本語の VBA モジュール名を含むファイルを開くとエラー – Japan Office Developer Support Blog

 

原因は、日本語(2バイト)文字のようです。 

補足) 本現象は、厳密には、モジュール名やフォーム名の末尾が日本語 (をはじめとする DBCS 文字) の場合に発生します。このため、例えば「フォーム1」(1 は半角数字) のように末尾が半角の場合には、名前に日本語を含んでいても現象は発生しません。 

 

 

 

バージョンを戻す方法 (終了)

f:id:muramoto1041:20171003101523p:plain

下記を参照して、実行してください。 

以前のバージョンの Office 2013 または Office 2016 クイック実行に戻す方法 

 

ユーザー様には、閲覧と検索機能をマクロを使わずに作成して1週間様子を見てもらって、マイクロソフトが対策をしなかったら、バージョンを戻すことにししまた。

 

【対策1】マイクロソフトの最新対策を行う(推奨) 

【対策2】他のバージョン Excel 2013 / Excel 2010 などで使用する。(暫定)

【対策3】前のバージョンに戻す。(コマンドプロンプトの知識が必要です)

 

幸運にも、まだ、このバグにやられていない方は、Office 2016 の[更新を無効にする]ことをお薦めします。下記の手順で自動更新を停止してください。

バージョンを戻した場合は、下記の方法で自動更新を無効にする必要があります。

f:id:muramoto1041:20170928153308p:plain

 

この手順はとても重要です。 修復プロセスを実行すると、自動更新が再び有効になります。 最新バージョンの Office クイック実行が自動的に再インストールされないように、次の手順を実行します。 Outlook等の Office 製品 を起動します。 [ファイル] をクリックし、[Office アカウント] をクリックします。 [製品情報] 列の [更新オプション] をクリックし、[更新を無効にする] をクリックします。 

 

/*ボタンデザイン*/