Macでも使えるよ、Excelマクロ。開発タブから始めてみて

WindowsからMacに変えたら、マクロが動かなくて焦った


会社でMacBookに変えてから、Excelのマクロが動かなくて本当に困ったんだよね。Windowsではボタン一つで自動化してた作業が、Macでは実行すらできなくて。


最初はMac版Excelにはマクロ機能がないのかと思ってた。でも調べてみたら、MacでもVBA(Visual Basic for Applications)使えるんだって。ただ基本設定が隠れてて見つけにくいだけだった。


特に繰り返しのデータ整理とか、レポートのフォーマット自動化とかは、マクロなしじゃ時間がもったいなくて。毎回手動でやると、ミスも増えるし効率も悪いから、どうしても解決したかったんだ。


ノートパソコンでExcelのデータとグラフを確認しながら作業する手元


開発タブの表示から一つずつ設定してみた


MacのExcelでマクロを使うには、まず開発タブを表示させる必要があるよ。Excel上部メニューから「Excel > 環境設定」に入って、「リボンとツールバー」を選択。右側に「開発」っていうチェックボックスがあるから、チェックして保存すればリボンメニューに開発タブが現れる。


次はマクロのセキュリティ設定を確認。「Excel > 環境設定 > セキュリティとプライバシー」から、マクロの設定を調整できる。私は「警告を表示してすべてのマクロを無効にする」にしてる。これならマクロ付きファイルを開くたびに許可を聞いてくれるから安心。


開発タブの「Visual Basic」ボタンをクリックすると、VBAエディタが開く。ショートカットならOption + F11でもOK。WindowsだとAlt + F11だったけど、MacではOptionキーを使うんだね。


新しいモジュールを追加するには、左のプロジェクトウィンドウでファイル名を右クリックして「挿入 > 標準モジュール」を選択。そうするとコードを入力できる画面が開くよ。


簡単なサンプルコードを一つ紹介するね。メッセージボックスを表示する基本的なマクロ。


Sub MyFirstMacro()
    MsgBox "こんにちは!Macでもマクロが動いてるよ!"
End Sub


このコードをモジュールに貼り付けてF5を押せば、すぐ実行される。Excelに戻って開発タブのマクロメニューからも実行できるよ。


ファイルを開くたびに自動実行させたいなら、ThisWorkbookにこんなコードを入れればいい。


Private Sub Workbook_Open()
    MsgBox "ファイルが開きました。自動マクロが実行されました!"
    ' ここに自動実行したい他のコードを追加
End Sub


ショートカットキーでマクロを実行したい場合は、マクロダイアログでオプションをクリックして設定できる。MacではOption + Command + 英字の組み合わせになるよ。例えばOption + Command + Zみたいな感じで。


Windowsとの違いも知っておくといいかも


Mac版ExcelではActiveXとか外部DLLみたいなWindows専用機能は使えない。だからWindowsで作った複雑なマクロは、Macで完全に動作しないこともあるんだ。特に外部プログラムと連携するマクロはほとんどダメ。


マクロ入りのファイルは必ず.xlsm形式で保存しないといけない。普通の.xlsxで保存すると、マクロが全部消えちゃう。私も最初これ知らなくて、せっかく作ったマクロを消しちゃったことがある。


特定のセルやシートが変わったときに自動実行させたいなら、Worksheet_ActivateとかWorksheet_Changeみたいなイベントを使えばいい。こういうコードはシートモジュールに入れないと動かないよ。


Private Sub Worksheet_Activate()
    Range("A1").Value = "このシートがアクティブになりました!"
End Sub

Macでも十分に業務の自動化はできる。基本的な繰り返し作業とか、データ整理、書式設定とかは全部可能。ただWindowsより機能が少し制限されてるってことだけ知っておけばOK。


今はMacでもマクロをうまく使えてるよ。特に毎月作るレポートのフォーマットとか、データ整理作業はマクロで自動化したら、時間がすごく節約できてる。最初の設定はちょっと面倒だけど、一度やっておけばずっと使えるから試してみて。


iMacが重くて、自分でメモリ増設したら別物になった話