日記

日記 < etc

MicrosoftのVBA for Mac復活に思うこと

MacBU

MacBU

Microsoftが「マイクロソフト、Office 2008 for Mac 向け Service Pack 1 の提供を開始: よりシンプルな作業環境を提供」の中で、次期 Office for Mac で「VBA を再び搭載」すると発表した。

このリリースの中でも説明があるけれど、Office 2008 for Macでは、AutomatorAppleScript などのスクリプト ツールによるサポートが強化されてる。

日本語訳が無いのが残念だけど、2007年4月にMacTechから「Moving from Microsoft Office VBA to AppleScript:MacTech's Guide to Making the Transition」が公開されてる。

つまるところ、Microsoftは、VBAと同様のスクリプトがAppleScriptで実現出来ると考えていたと予想出来る。


じゃあ、なぜわざわざ、サポートしていたVBAをやめて、AppleScriptに移行することを選んだのか?そもそもシフトする必要があったのか?と考えると疑問に感じる。

Microsoftを突き動かしたのは、おそらく、Mac OS X Leopardの開発チームが、AppleScriptでVBAと同等の機能を実装すると口にしたからだと思う。

MicrosoftのMacBUチームとしては、開発期間が短縮できるだけでなく、OSレベルで同等の機能が実装されるのなら、Macの普及が進むと喜んだはず。

それほど、MacBUチームはMac好きの集まりだから。

ところが、フタを開けてみれば、Mac OS X LeopardのAppleScriptは、それらがサポートされた事実は無かった。

対応すると言いながら、結局はされなかった事が明白となり、MacBUは、発売予定日を2007年後半から2008年1月へと延期し、なんとか自力で行う事に決めたと思われる。

だが、結局は、AppleScriptでVBAと同等の機能は実現出来ないことが明らかとなり、一旦止めたVBAのサポートを復活させる事になったと予想される。

Microsoftは、Appleとパートナーシップを結んでいる。だが、取り立てて手厚い支援が受けられてわけではなく、普通の一デベロッパ扱いでしかない。

そのため、Mac OS X Leopardの情報開示も通常のシードデベロッパと同じとなる。

Mac OS Xは、細かいbuildで仕様が変わる事で知られ、また、何が変わったのか?事前に説明がない事は、Appleと付き合ってるデベロッパの多くには理解出来る話しだとは思うが、Office 2008 for Macが発売される前にリリースされた「Mac OS X 10.5.1 Update」の環境下で、Carbon上で動作する「Office 2004 for Mac」よりも起動時間が遅い状態となり、「Mac OS X 10.5.2 Update」では、Core Imageの仕様が変わった事で、PowerPoint 2008 for Macがさらに遅くなってしまった。

それから3ヶ月が経過して、膨大な検証作業の後、ようやくMicrosoft Office 2008 for Mac Service Pack 1 (12.1.0)がリリース出来たのだと思う。

もう一つ、足枷になっているのは、Mac OS X v10.4 "Tiger."(10.4.9以降)も動作対象としてることだろう。

主要アプリケーションを開発してるデベロッパーに話しを聞くと、なるべくならシステムコアに依存することなく、自前でエンジンを作りたいと話す人が多い。つまるところ、OSのバージョンが変わる事で、引きずられることが嫌でしょうがないのだと思う。

MacBUチームは、Appleと友好的な関係でいたいのだろうから、文句を口にすることはないだろう。

ただ、全てが、Microsoftだけのせいにするのは可哀想な話しだと思った。


この記事をシェアする

おすすめ記事

この記事のハッシュタグ から関連する記事を表示しています。

500 Internal Server Error.

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '145')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '145')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')