Microsoft Officeのマクロ開発のリスク

Windows PC

こんにちは、ふみです。みなさんはMicrosoft Officeのアプリケーションに搭載されている「マクロ」を使ったことはありますか?

私はMicrosoft Officeの「Excel」、「Access」には必ずといっていいほど「マクロ」を使っています。
この記事で紹介する「マクロ」とは「マクロの記録」や「Visual Basic Editor」で直接コードを書き込んで作成したプログラム「Visual Basic Application」(以下、VBA)の事です。

先日、「Microsoft Office」において、更新プログラムの不具合がありました。
Accessの更新クエリを実行すると「クエリ〇〇が破損しています」というエラーメッセージが表示されて動作が停止する不具合です。

私の場合はAccessのVBAに更新クエリを組み込んでいて、更新クエリを実行するタイミングでエラーメッセージと共にプログラムが停止しました。現在は復旧しています。

そこで、今回はMicrosoft Officeのマクロプログラムを作成するリスクについてまとめました。

Access エラー: 「クエリは破損しています」

最終更新日: 2019 年 11 月 22 日
問題
更新クエリを実行しようとすると、実行されず、エラーが表示される場合があります。「’ クエリ名 ‘ のクエリが破損しています。」

これは、次の更新クエリで発生します。

・単一のテーブルを更新する (例: 選択クエリまたは結合の出力ではなく、テーブルを更新する)

・WHERE 句を指定する (例: クエリ デザイナーの [条件] 行にエントリがある)

この問題は、サポートされているすべての Access ビルドに影響します。

この問題は、2019 年 11 月 12 日に MSI ビルド用の次のパッチ更新によって導入されました。

Office 2010:Office 2010 セキュリティ更新プログラムについて:2019 年 11 月 12 日 (KB4484127)
Office 2013: Office 2013 セキュリティ更新プログラムについて:2019 年 11 月 12 日 (KB4484119)
Office 2016: Office 2016 セキュリティ更新プログラムについて:2019 年 11 月 12 日 (KB4484113)
Office 2016: 2019 年 11 月 12 日、Office 2016 更新プログラム (KB3085368)

状態: 修正済み
(以下略)

出典: support.office.com  Access エラー: 「クエリは破損しています」

私の場合、この不具合による影響で毎日のデータベース更新ができなくなってしまいました。

Officeのバージョンアップで今まで使えていたコードが使えなくなった事

過去には今まで使えていたVBAのコードがMicrosoft Officeのバージョンアップの影響で突然使えなくなった事が多々あります。
私にとって一番影響があった事は、Excel2003まで使えていた「Application.FileSearch」というファイルを探すコードがExcel2007以降使えなくなってしまったことです。
他のファイルと連動させるマクロプログラムはすべて使えなくなり、代替(だいたい)プログラムを作成してすべてのマクロファイルを更新しなければなりませんでした。
今まで作ったプログラムの種類が多いと、その分だけプログラムを修正する手間が増えます。

マクロファイルを大人数に配布するのはリスクが大きい

Microsoft Officeの更新不具合や、Microsoft Officeのバージョン更新により今まで正常に動いていたプログラムが使えなくなることがあります。
マクロファイルの配布先が多いとそれに比例して不具合の苦情も増え、Microsoft Officeが原因なのに事情のわからないユーザーからはマクロプログラムを作った人のせいにされてしまいます。

リスクを減らすには

ユーザーにマクロプログラムを提供しないで、管理する側だけでマクロを使う仕組みにするとMicrosoftによる不具合の際のリスクを減らせます。
また、重要度の高いデータベースはMicrosoft Accessを使わないようにするとMicrosoftのアップデート不具合やOfficeのバージョンアップの影響で動かなくなるリスクを減らせます。

まとめ

  • Microsoftのアップデートプログラムの不具合でマクロが動かなくなることがある
  • Officeのバージョンアップでマクロが動かなくなることがある
  • マクロファイルを大人数に配布しない仕組みを考える
  • 重要度の高いデータベースはMicrosoft Accessを使わない

ありがとうございました。

コメント

タイトルとURLをコピーしました