Mac Excel VBEのサポートされていないオートメーション問題

Mac Excel VBEのオートメーション問題

Excel for MacでVisual Basic Editor(VBE)を使用して、コードウィンドウの上部にあるドロップダウンメニューで(General) からWorkbookを選択すると「Visual Basic でサポートされていないオートメーションが変数で使用されています。」というエラーが発生する。

WindowsのExcelだとWorkbookを選択後に(Declarations)からOpenなどのイベントプロシージャーを以下のようにコード内に挿入することができる。

Private Sub Workbook_Open()

End Sub

しかし、MacのExcelはWorkbookをドロップダウンメニューで選択するとエラーになる。

Windowsだと選択すれば問題なく挿入されるのでMacのExcelを初めて使用する人だとなぜエラーが発生したのかわからず戸惑うことが多い。

Officeサポートページの回避策

結論から言うと、この問題はExcel for Macのバグなので必ず発生する。

MicrosoftのOfficeのサポートページに詳細が書かれており、回避策が3つ掲載されている。

回避策1

Excel for Windows を実行しているコンピューターと同様の手順を実行して、コードを Excel for Mac へコピーすることができます。

回避策2

MSDN にアクセスして使用するイベントの構文を検索し、VBA プロジェクトに手動でコードを入力することができます。 この記事では、Microsoft Excel の "workbook" イベントについて説明しています -
Workbook イベント」。

回避策3

次のサンプルから適切なイベント コードをコピーし、VBA プロジェクトに貼り付けます。 イベントごとに、"Private Sub…" から "End Sub" までを含めてコピーするようにしてください。

回避策1は日本語がおかしいが、要するにMacではエラーになるのでWindowsのExcelで作成してMacのExcelで開いてくださいという意味。

回避策2はリンク先の内容を参照して手動で入力してくださいということだが、検索しづらく、そもそもVBAのコードがほとんど掲載されていないので回避策になっていない。

回避策3はOfficeのサポートページの下の方にイベントプロシージャーのコードを用意したので、これをコピーして貼り付けてくださいということ。

残念ながらまともな回避策は存在ない(手動以外の選択肢がない)

この機能をExcel for Macで使用したいのであれば2021年後半にリリース予定であるMicrosoft Office 2021で修正されていることを祈るしかない。🙏