2005-07-09 Excel VBA―その後―
先週「Excel VBAで何か作ってます」というお話をしました。途中経過を少々。
諸問題はほぼ解決
週末から検証用の試作品を作っています。最初は,VBAとVBA外の境界線をどこで引けばいいのかさっぱり分かりませんでしたが,だいたいの目処がつきました。
VBA外の問題として,ピボットテーブルの挙動を調査するのが難問なのではないかと想像していたのですが,メーカー提供のチュートリアルをこなしてみたらそうでもありませんでした。数が多く出ているソフトには良い情報がたくさんあるのですね。
BASICの文法に違和感
VBAはVisual Basic for Applicationsという名前のとおりBASIC処理系です(かなり特殊なBASICなのですが,簡単のためひと括りにBASICと言うことにします)。私,BASICを使うのって16年ぶりくらいなものでかなり違和感があります。ついつい文末に;(セミコロン)を付けてしまうのです。余談ですが当時,使っていたのはF-BASIC(富士通FM-77)でした。
VBAでまだよく調べていないのが例外処理です。ON ERRORなんとかを使うのですね。
Excel for Macの扱い
Mac版のExcelでもVBAは動きます。ちょっと試してみると,Windows版と遜色のない動作をするのでびっくりします。でもMac対応は難問だらけです。
Mac版のExcelではコントロール(ボタンやコンボボックスなど)の外観がWindowsと違うのと,フォントも違うのでGUI周りの調節が必要です。致命的なのは,当たり前なんですけどMacではActiveXが使えないのです。ActiveXオブジェクトを生成しようとするとエラーが発生します。
よく言われているように,車輪の再発明は避けなければなりません。もっとも,まだMacのVBAはほとんど調査していないので,意外と簡単に互換性を維持する方法がある,なんて可能性はゼロではありません。何か発見したらお知らせしようと思います。