執筆:EugeneAmnis
Excel for Mac VBAでの小技集
Excel2003、 Mac版はExcel2011 for MacのVBAから使い続けて20年、Excelも2021版が発売され早2年近くが経とうとしています。使いづらいと定評のあるExcel for Macを使い続けて(Windows版も利用していますが。)行く中で身につけた筆者の小技を備忘録として記録したいと思います。(尚、筆者の環境はExcel2019です。2021は買い替える程の魅力を感じなかった。)
小技集
日本語入力は最小限かつ削除は選択状態で行う
いくらわかりやすいからと言って基本的に関数に日本語を使うべきではありません。最悪譲ってローマ字です。
VBE内のキャレットズレ問題に関してはこちらで)解決法を紹介しています。
ダイアログのメッセージ等で日本語を入力する際に文字を削除する場合はWコロン内を選択状態にします。こうすることで誤入力で文字を削除した際にカーソルズレで余計なところ消す心配が格段と減ります。長文入力はうざったらしいですが、長文を入力するとわかっている場合は、メッセージ専用のFunctionを作りましょう。カーソルズレを一箇所に収めるだけでなく、メッセージを変えるときの手間が減ります。
Excel2011時代と比べると大変マシになりました。
Excel用スクリプトフォルダを開く用のスクリプトを準備しておく
初めてAppleScriptTask関数を使用する人はExcel用スクリプトフォルダを開く用のスクリプトを練習がてら書いてみましょう。AppleScriptTask関数を利用する程なら、何度もスクリプトフォルダを開くことになるので、手間が減ります。Hyperlinkでも開けない事はないですが、警告ダイアログが面倒なのでAppleScriptで実装することをお勧めします。
FormeStudioには準備してあります。
ユーザーフォームは諦める
機能がついていないので仕方ありません。動的に作成する方法もあるようですが気が遠くなりそうです。 筆者もVBAを覚えたてのときはユーザーフォームを作成し、システム保全の為に自由度を下げる手段として利用していましたが、今では「Excelは色んな人が自由に使うべきだ。」という考えに至ったのでユーザーフォームを否定はしませんが基本的にシートやリボンでなんとかすべきだと考えています。 フォーカスを変えたい場合のみダイアログを利用すれば良いと今は考えています。
私もそうでしたがExcelを使いこなすことは副次的なもので本業をが主体であることを考えると必要以上に枠や流儀を押し付けるのはいかがかなとも思っています。もちろんデータ構造の事を考えた上でですが。
できればWindows版も使う
じゃあWindows買えと言われそうですが、成り行き上Macユーザーになって長くMacを使っているともうWindowsには戻れません。
ここで言いたいのは古くてもいいので一度Windows版のExcelでデバックするという事です。あくまで個人談で他では無いのかもしれませんが、Mac専用の関数を使っていると急にWindows版のVBEから「未定義のオブジェクトです。」と冷たく言い放たれることがあります。多くの場合OSの条件分岐が不適切であったり、プロシージャが長くなってくるとこう言い放たれる事がありました。
両方のOSが存在する環境でVBAを組むなら両方の環境でテストするのは当たり前ですし、少数派であるExcel for Macが原因で不具合が起きたと言われたくないので注意書きをするなりが必要だと思っています。
諦めも必要。周囲の見渡しも忘れずに。
Excelの歴史はMacから始まったのは有名な話ですが、今やお鉢はWindowsに奪われてしまっています。操作性やOS依存の機能などでは太刀打ちできません。だからこそ、トリッキーな方法や作り込みには「本当に必要?」の精神で向き合う必要があります。Excel以外の方法があればそれを活用すべきですし、私のように人柱になっている先人の失敗談やコードを活用するのも有りでしょう。
Excel for Mac VBA使いは常に達観した心で向き合う必要があるようです。