Macintosh Developer Online (MDOnline)


2001年12月7日発行号 - TomcatとExcelのマクロ



日経ビジネスの2001/12/3号の表紙は、いきなり、Mac OSの爆弾ダイアログです(笑)。あと、ゴミ箱やらFinderやら、とにかくMac OSのデスクトップをあしらって、「暴走する不良債権」という特集のイメージを作っています。(12ページでアメリオ本が引用されていますね…。)システムエラーで爆弾が出るというのは、やはりユーザインタフェースやデザインといった面において、極めて優れたインパクトのあるものだと思います。もっとも、どの時代でも、爆弾が出ればまだまし、普通は何も出ないでフリーズするってのが通説になっていましたけど、確かにダイアログ出せるだけの余裕がシステムにあるから、こうした画面メッセージが可能になるのでしょう。もっとも、個人的には、MacsBugを入れていたので、全然見る機会は少なかったですね。それから、80年代のMacRecorderのアプリケーションのアバウト表示が爆弾だったことも印象に残っています。最初にいきなり爆弾ダイアログが出るのですけど、導火線に火がついてしゅわしゅわと燃え、ドッカーン!と爆発音とアニメーションが出てきて、MacRecorderなんて出てくるわけですね。一瞬ビビりますが、その後大受け。QuickTime以前の時代だったから、アニメやサウンド自体が珍しいくらいでしたから。
ただ、Mac OS Xで、爆弾ダイアログがなくなったのはある意味では寂しいものです。もっとも、爆弾はまず出ないという話もありますけど、カーネルパニックで爆弾ウインドウがでたらそれはそれでマックらしいと思うところです。だけど、それは技術的には無理なんだろうでしょうね。こうして一般誌にまで出てくる爆弾ダイアログなのですが、読者の方々がマックであることをどれくらい分かってくれるのでしょうか。日経ビジネスの読者だったら、何のことか分かってくれない人も多いかもしれませんね。
(新居雅行 msyk@mdonline.jp


大津真=XはUNIXでサーバで》Tomcat4のインストール(1)

―――先月の補足:BIND9.2登場
先月は、Mac OS XにBINDをインストールしてDNSサーバを立ち上げる方法について説明しました。BINDには9.1.2を使用しましたが、記事の配信直後、BINDのサイトにバージョン9.2が登場していました。このバージョンはバグフィックスのためのメインテナンスリリースということで特に新機能の追加はありません。筆者も早速アップデートしてみました。

◇BIND
 http://www.isc.org/products/BIND

うれしいことにBIND 9.2では、configureスクリプトにdarwinが完全に取り込まれていますので、/usr/libexecディレクトリのconfig.guessとconfig.subをコピーする必要はありません。またconfigureには特にオプションを指定する必要もありません。ソースを展開したら単に

./configure; make; make install

とすればインストール可能です。

―――今月のお題は「TomcatでサーバサイドJava」
Sun Microsystems社のJavaで世界を制覇するという野望はもろくも崩れ去ったかに見えます。たしかにJava発表当初はいろいろなWebサイトを飾っていたJavaアプレットは最近あまり見かけなくなりました。ただしEJBやServlet、JSPといったサーバサイドJavaに関してはオンラインショッピングやグループウエアなどの各種Webアプリケーションの分野で急速に普及してきています。今月は、代表的なServletコンテナであるTomcatをMac OS Xにインストールする方法を紹介しましょう。なお、Mac OS X Serverには最初からTomcatがインストールされていますので、ここでの解説はOS Xユーザを対象にしています。

―――Tomcatの簡単な説明
Tomcatは、Jakartaプロジェクトが開発・保守しているServletコンテナ(Servletの実行環境)です。

◇Jakartaプロジェクト
 http://jakarta.apache.org/
◇Tomcat
 http://jakarta.apache.org/tomcat/index.html

現在Tomcatにはバージョン3.x系とバージョン4.x系があり、開発が平行して進められてきました。Tomcat 3.x系のインストール方法は、これまでも雑誌やWebで広く取り上げられているため、ここでは、Tomcat 4.xをインストールする方法について説明します。Tomcat 4.xでは、新たなアーキテクチャを元に開発されたサーブレットコンテナ「Catalina」が採用され、Sevlet 2.3およびJSP 1.2の仕様を満たしています。4.x系の本稿執筆時点の最新バージョンは4.01になります。
なお、Tomcatの実行にはJava 2 SDKが必要ですが、Mac OS X 10.1にはJDK1.3が含まれているので別途ダウンロードする必要はありません。

―――Tomcatインストール
まず、JakartaプロジェクトのTomcatのダウンロードページよりtgz形式で圧縮されたバイナリ「jakarta-tomcat-4.0.1.tar.gz」をダウンロードします。

◇Tomcatのダウンロードページ
 http://jakarta.apache.org/site/binindex.html

次にtarコマンドで圧縮ファイルを展開して適当なディレクトリにインストールします。Tomcatのインストール先はどこでもかまいませんが、筆者の場合/usr/localディレクトリにインストールしました。OS X用の通常のアプリケーションと同じく/Applicationsディレクトリの下でもいいでしょう。

% su -〈return〉 ←スーパーユーザになる
Password: ←スーパーユーザのパスワードを入力
# cd /usr/local 〈return〉
# tar xvzf /Users/o2/Documents/Download/Tomcat/jakarta-tomcat-4.0.1.tar.gz 〈return〉
jakarta-tomcat-4.0.1/bin/shutdown.sh
jakarta-tomcat-4.0.1/bin/startup.sh
jakarta-tomcat-4.0.1/bin/jasper.sh
jakarta-tomcat-4.0.1/bin/catalina.sh
jakarta-tomcat-4.0.1/bin/jspc.sh
jakarta-tomcat-4.0.1/bin/digest.sh
jakarta-tomcat-4.0.1/
〈以下略〉

以上でTomcatが/usr/local/jakarta-tomcat-4.0.1ディレクトリにインストールされます。

―――Tomcatの設定
Tomcatの設定に移ります。Tomcatは実行時に環境変数JAVA_HOMEを参照しますが、Javaのコマンド群は$JAVA_HOME/binディレクトリにあることを想定しています。OS XではCommandsディレクトリにJavaコマンドが置かれていますので、次のようにしてシンボリックリンクを張っておきます。

% cd /System/Library/Frameworks/JavaVM.framework 〈return〉
% sudo ln -s Commands bin 〈return〉
Password: ←パスワードを入力

次に「JAVA_HOME」と「CATALINA_HOME」「JAVA_HOME」という3つの環境変数を設定しましょう。ここではシェルとしてOS X標準のtcshを使用しているものとして話を進めます。~/.tcshrcに次の3行を追加してください(~/.tcshrcがない場合には作成してください)。なお、実際にはCLASSPATHはTomcatの実行には無関係ですが、servletプログラムをコンパイルする場合に必要になりますので、追加しています。

〈リスト〉 ~/.tcshrcへの追加
setenv CATALINA_HOME /usr/local/jakarta-tomcat-4.0.1
setenv JAVA_HOME /System/Library/Frameworks/JavaVM.framework
setenv CLASSPATH ${CATALINA_HOME}/common/lib/tools.jar:${CATALINA_HOME}/common/lib/servlet.jar

~/.tcshrcを修正したら次のようにしてsourceコマンドを使って読み込んだ後に、echoコマンドでそれぞれの環境変数が正しく設定されているかを確認します。

% source ~/.tcshrc 〈return〉
% echo $CATALINA_HOME 〈return〉
/usr/local/jakarta-tomcat-4.0.1
% echo $JAVA_HOME 〈return〉
/System/Library/Frameworks/JavaVM.framework

―――Tomcatをスタンドアローンモードで動かす
TomcatはApacheと連携して動かすこともできますが、Tomcat内にも簡易Webサーバ機能が用意されているためスタンドアローンで動作させることも可能です。Apacheとの連携は後ほど説明することにして、まずは、Tomcatをスタンドアローンモードで起動してみましょう。起動には$CATALINA_HOME/bnディレクトリのstartup.shスクリプトを使用します。/usr/localディレクトリにインストールした場合にはroot権限が必要になるのでsudoコマンド経由で実行してください。

% sudo $CATALINA_HOME/bin/startup.sh 〈return〉
Password: ←パスワードを入力
Using CLASSPATH: /Users/o2/java/jakarta-tomcat-4.0.1/bin/bootstrap.jar
Using CATALINA_BASE: /Users/o2/java/jakarta-tomcat-4.0.1
Using CATALINA_HOME: /Users/o2/java/jakarta-tomcat-4.0.1
Using JAVA_HOME: /System/Library/Frameworks/JavaVM.framework/

上の実行結果のように、使用している環境変数が表示されプロンプトが戻れば準備OKです。TomcatのWebサーバは8080番ポートで動作しています。Internet ExplorerなどのWebブラウザを立ち上げ、「アドレス」に

http://localhost:8080

を指定します。これでTomcatのインデックスページ($CATALINA_HOME/webapps/ROOT/index.html)が表示されます。

◇Tomcatのインデックスページ
 

ページ左上の「JSP Examples」および「Servlet Examples」のリンクをたどることで、それぞれJSP、Servletのサンプルページにアクセスできます。サンプルが動作するかどうかを確認してみましょう。最初に試すのはお約束の「Hello World」ですね。

◇Servletの「Hello World」サンプル
 

なお、「Source」リンクをクリックすることでサンプルプログラムのソースを確認することができます。

Tomcatを終了させるにはshutdown.shスクリプトを使用します。

% sudo $CATALINA_HOME/bin/shutdown.sh 〈return〉
Password: ←パスワードを入力
Using CLASSPATH: /usr/local/jakarta-tomcat-4.0.1/bin/bootstrap.jar
Using CATALINA_BASE: /usr/local/jakarta-tomcat-4.0.1
Using CATALINA_HOME: /usr/local/jakarta-tomcat-4.0.1
Using JAVA_HOME: /System/Library/Frameworks/JavaVM.framework

(続く)
[大津真]

関連リンク:大津真Web Site
カテゴリ:サーバー製品, Java, 大津真=XはUNIXでサーバで


大津真=XはUNIXでサーバで》Tomcat4のインストール(2)

――――Apacheと連携させる
次にTomcatをApacheと連携させてみましょう。つまりWebサーバ機能はApacheが担当しTomcatはServletコンテナとして動作します。

――――――――コネクタのインストール
この場合、ApacheとTomcatを接続するためのコネクタと呼ばれるApacheのモジュールが必要になります。コネクタはソースから作成することもできますが、前出のTomcatのダウンロードページにOS X用のコネクタのバイナリ(webapp-module-1.0-tc40-macosx.tar.gz)が用意されていたので、ここではそれをそのまま使用しました。
なお、Internet Explorerを使ってダウンロードすると、長いファイル名の最後の部分(「ar.gz」など)が切れてしまう場合があります。その場合、FinderもしくはTerminal上で補正してください。

圧縮ファイルをダウンロードしたら、次に示す手順でコネクタ(mod_webapp)をインストールします。

1. ダウンロードした圧縮ファイルを適当なディレクトリで展開します。
% tar xvzf webapp-module-1.0-tc40-macosx.tar.gz 〈return〉
webapp-module-1.0-tc40/
webapp-module-1.0-tc40/docs/
webapp-module-1.0-tc40/docs/api-c/
webapp-module-1.0-tc40/docs/api-c/allclasses-frame.html

2. mod_webapp.soをApacheのモジュールディレクトリ( /usr/libexec/httpd/)にコピーします。
% sudo cp webapp-module-1.0-tc40/mod_webapp.so /usr/libexec/httpd/ 〈return〉
Password: ←パスワードを入力

――――Apache側の設定
次に、Apacheの設定ファイル/etc/httpd/httpd.confを修正します。httpd.confの編集にはroot権限が必要ですので「sudo vi /etc/httpd/httpd.conf」のようにして、エディタをsudo経由で立ち上げてください。

――――――――mod_webappモジュールの読み込み
まずは、次のようにしてApacheがコネクタmod_webapp.soをモジュールとして読み込むように設定します。

1. httpd.confのサーバ名を指定する「ServerName」というパラメータを検索しホスト名を設定します。
初期状態では先頭に「#」が付いてコメントになっています。「#」を外して正しいホスト名を指定します。

ServerName g3mac.xxxxxxxx.com

2. モジュールを読み込むための設定を追加します。
httpd.confの途中に「LoadModule」行が並んでいますが、その最後に次の行を追加します。

LoadModule webapp_module libexec/httpd/mod_webapp.so

「AddModules」行の最後に次の行を追加します。

AddModule mod_webapp.c

3. Apacheが受け取ったWebアプリケーションに対する要求をTomcatに振り分けるようにします。
ここではTomcatに用意されているServleとJSPのサンプルにアクセスするための設定例を示します。httpd.confの最後に次のような行を加えてください。

〈リスト〉httpd.confの追加分

WebAppConnection warpConnection warp localhost:8008 ←(1)
WebAppDeploy examples warpConnection /examples ←(2)


(1)では、「warpConnection」という名前のコネクションを宣言し、サーブレットコンテナがローカルホストの8008番ポートで要求を受け付けるように設定しています。このポート番号は$CATALINA_HOME/conf/server.xmlで設定されています。
(2)では、「warpConnection」コネクションに対して、「httpd://ホスト名/examples」を、examplesディレクトリ($CATALINA_HOME/webapps/examples)にワープさせるように関連付けています。書式は次のようになるので必要に応じてURLパスやWebアプリケーション名を変更してください。

WebAppDeploy <コネクション名>

なお、Webアプリケーション名は、デフォルトのserver.xmlの設定では$CATALINA_HOME/webappsの下のディレクトリ名になります。

――――――――ApacheとTomcatの連携を確認する
httpd.confを修正したらApacheの制御コマンドapachectlをconfigtestを引数に実行し、設定ファイルにミスがないかを調べます。

% apachectl configtest〈return〉
Processing config directory: /private/etc/httpd/users
Processing config file: /private/etc/httpd/users/hind.conf
Processing config file: /private/etc/httpd/users/naoko.conf
Processing config file: /private/etc/httpd/users/o2.conf
Processing config file: /private/etc/httpd/users/pub.conf
Syntax OK

このように「Syntax OK」と表示されれば設定ファイルにミスはありません。

Apacheを再起動して設定を反映させる前に、あらかじめTomcatを起動する必要があります。このときすでにTomcatを立ち上げていた場合には、念のためいったん停止してから再起動します。

% sudo $CATALINA_HOME/bin/shutdown.sh 〈return〉 ←Tomcatの停止
Password:
Using CLASSPATH: /Users/o2/java/jakarta-tomcat-4.0.1/bin/bootstrap.jar
Using CATALINA_BASE: /Users/o2/java/jakarta-tomcat-4.0.1
Using CATALINA_HOME: /Users/o2/java/jakarta-tomcat-4.0.1
Using JAVA_HOME: /System/Library/Frameworks/JavaVM.framework
% sudo $CATALINA_HOME/bin/startup.sh ←Tomcatの開始
Using CLASSPATH: /Users/o2/java/jakarta-tomcat-4.0.1/bin/bootstrap.jar
Using CATALINA_BASE: /Users/o2/java/jakarta-tomcat-4.0.1
Using CATALINA_HOME: /Users/o2/java/jakarta-tomcat-4.0.1
Using JAVA_HOME: /System/Library/Frameworks/JavaVM.framework

次にacpahectlコマンドにrestartを引数に渡してApacheを再起動します。

% sudo apachectl restart 〈return〉
/usr/sbin/apachectl restart: httpd restarted

以上で準備は完了です。Webブラウザで「http://localhost/examples/」にアクセスしてみましょう(スタンドアローンモードと異なりポート番号は指定する必要はありません)。次のように表示されればApacheとTomcatの連携はうまくいっています。

 

スタンドアローンモードと同じようにServletとJSPのサンプルが実行できるかどうかを確かめましょう。うまく動かない場合には、$CATALINA_HOME/logsディレクトリに作成されるログファイルを確認してください。
(続く)
[大津真]

関連リンク:大津真Web Site
カテゴリ:サーバー製品, Java, 大津真=XはUNIXでサーバで


大津真=XはUNIXでサーバで》Tomcat4のインストール(3)

―――付録 〈UNIX基礎知識〉

――――――シェル変数
シェルはユーザインターフェースであるとともに、プログラミング環境でもあるのでシェル変数と呼ばれる変数が使用できる。シェル変数の取り扱いはシェルの種類によって異なるので注意が必要だ。ここではOS X標準のtcshでのシェル変数の取り扱いについて説明する。
シェル変数に値を設定するにはsetコマンドを使用する。

set 変数名=値

取り出す場合には変数名の先頭に「$」を付ける。たとえば変数greetingに「Hello」という文字列を設定してechoコマンドで表示するには次のようにする。

% set greeting=Hello 〈return〉
% echo $greeting 〈return〉
Hello

現在設定されているシェル変数の一覧はsetコマンドを引数なしで実行すると表示される。

% set 〈return〉
_
addsuffix
argv ()
autocorrect
autoexpand
autolist
cdpath /Users/o2
correct cmd
cwd /Users/o2
default_tcsh_initdir /usr/share/init/tcsh
dextract
dir /Users/o2/Library/Frameworks
dirstack /Users/o2
dunique
echo_style bsd
edit
fignore (~ .bak .o .bin RCS CVS)
framework_path (/System/Library/Frameworks /Users/o2/Library/Frameworks)
gid 20
group staff
histfile /Users/o2/.tcsh_history
history 150
home /Users/o2
host g3mac.o2.dyndns.org
inputmode insert
interactive
listjobs long
loginsh
matchbeep notunique
nokanji
nostat (/afs /net /Net /Network/Servers)
owd
path (/sw/bin /sw/sbin /Users/o2/myLocal/bin /Users/o2/bin/powerpc-apple-darwin /Users/o2/bin /usr/local/bin /usr/bin /bin /usr/local/sbin /usr/sbin /sbin /Developer/Tools /usr/X11R6/bin)
prompt [%m:%c3] %n%#
prompt2 %R ->
prompt3 OK? %R?
promptchars %#
recexact
savehist 150
shell /bin/tcsh
shlvl 1
status 0
symlinks ignore
tcsh 6.10.00
tcsh_initdir /usr/share/init/tcsh
term vt100
tty ttyp2
uid 501
user o2
user_tcsh_initdir /Users/o2/Library/init/tcsh
version tcsh 6.10.00 (Astron) 2000-11-19 (powerpc-apple-darwin) options 8b,nls,dl,al,sm,rh,color

―――組み込みシェル変数
シェル変数の中でシェル自身の動作を設定する変数を「組み込みシェル変数」と呼ぶ。代表的なシェル変数を2つ示そう。

――――――path
UNIXのコマンドは、シェル自身に組み込まれているシェルの組み込みコマンドと、実行可能形式のファイルであるその他のコマンドに分類される。組み込みシェル変数pathはコマンドの置かれているディレクトリのリストを保持する。このリストはコマンド検索パスと呼ばれる。コマンド検索パスに含まれるディレクトリ内のコマンド名はファイル名だけで実行可能だ。
たとえばlsコマンドの実体は/bin/lsというファイルだが、コマンド検索パスに/binディレクトリが含まれるため、

/bin/ls 〈return〉

としなくても

ls 〈return〉

だけで実行できるわけだ。シェル変数に値を追加するにはsetコマンドを次のような書式で実行する。

set 変数名=($変数名 値)

たとえば、ホームディレクトリの下のmybinディレクトリをコマンド検索パスに加えるには次のようにする。

% set path=($path ~/mybin) 〈return〉

――――――prompt
promptにはコマンドプロンプトが格納されている。たとえばプロンプトを

[ホスト名 時刻] %

のような形式で表示したければ次のようにすればよい。

% set prompt="[%m %t] %" 〈return〉
[ibook 5:24pm] %

ここで、「%m」はホスト名、「%t」は時刻を表す特殊変数だ。

(この項、以上)
[大津真]

関連リンク:大津真Web Site
カテゴリ:サーバー製品, Java, 大津真=XはUNIXでサーバで


【MacWIRE配信予定】Microsoft Office v.X for MacのVisual Basicの機能は前バージョンと変わらず(1)

Mac OS Xネイティブ対応し、2002年1月25日に発売される「Microsoft Office v.X for Mac」(以下、Officeないしは「X版Office」と参照)であるが、業務などでの利用者には、まずはマクロ、特にExcelのマクロをチェックしたいと思うところかもしれない。従来のOffice 2001でも、マクロ作成機能については、Windows版との機能差が目立つところでもあったが、X版Officeでも残念ながら、そのあたりは同様である。X版のOfficeは、Visual BasicとREALbasicのいずれも使えるという大きな特徴があり、特にREALbasic利用は注目に値するが、とりあえずは過去の資産もある方も多いこともあるだろうし、Visual Basicの部分をチェックしてみたい。

――――マクロから言語による開発へ
Officeでのプログラミングの機能を振り返ってみよう。プログラミングの機能はVisual Basicというより、「マクロ」という機能の方が通りがいいかもしれない。今でも、メニュー名は「マクロ」だ。基本的には、ユーザが行う操作を記録し、それを再現するという意味でのマクロであったが、繰り返しや条件判断をともなう機能などが初期の頃からマクロプログラムで利用できた。初期のExcelは、セルに式を書き並べるタイプのプログラミングが可能であった。「マクロシート」なとど言えば、一部のユーザは懐かしさが込み上げてくるかもしれない。Excel Ver.5からVisual Basic言語によるプログラミングが可能になり、テキストエディタで、いわゆるプログラミング言語によるプログラムができるようになった。WindowsのOfficeシリーズでは、それ以来、Visual Basicが各アプリケーションでのプログラミングを行う場合の基本言語となっている。また、開発環境としても順次バージョンをアップしてきており、たとえばデータベースのAccessは単なるデータベースソフトではなく、本格的な開発環境と言っても過言ではないという状況になった。
いずれにしても、Officeシリーズは、汎用的なアプリケーションの中ではプログラミング環境として利用される度合いが高いものとなっている。特にExcelは顕著だろう。事務作業での効率化を計るため、定型的な作業や手順化された作業をプログラムでこなすという図式が成り立っているのである。業務を実際に行う人が、自分のためにプログラミングを行うということもあるかもしれないが、あるいは別途開発を社内あるいは社外で行うこともありえる。いずれにしても、オフィスのパソコンにほぼ必ず入っていると言っていいExcelを動作環境にすることでのさまざまなメリットがあるわけだ。特に、Windowsではデータベースや基幹システムへのアクセスまでもExcelからできてしまうだけに、定型処理はもちろん、経営判断や計画などでは非定型な処理も行いたい。そうした用途に、Excelはマッチするし、プログラムを作り込むことも可能となる。

――――X版のOfficeのデバッグ機能は進化せず
マクロプログラムは、Windowsでは、Excelと別に動いているように見えるVisual Basic Editorという1つのアプリケーションウインドウで動く統合開発環境で作成する。プログラムのソース作成やデバッグはもちろん、カスタムダイアログボックスなどもVisual Basic Editorで設計が行える。なお、X版Officeは、みかけの上ではExcelの中で、Visual Basic Editorが動くような形態となっている。
Windows版ではさまざまなウインドウがアプリケーションウインドウにドッキングするのであるが、X版Officeでは個別のウインドウとなる。このあたりは見かけの違いである。両方の環境でプログラミングしている人は、ウインドウの操作で戸惑うところかもしれない。

◇X版OfficeのExcel Xから呼び出したVisual Basic Editor
 

◇Office XPにあるExcel XPのVisual Basic Editor
 

もちろん、両者には共通点が多いことは事実で、プログラムの互換性も比較的高い。アプリケーションの中のデータを操作する上ではほとんど変更することなく、両方のプラットフォームで稼働できると言えるのだが、ここでは、X版Officeで利用できない機能を見ておくことにしよう。
まず、いちばん大きな違いとして言えるのは、デバッグ作業の違いだ。図を見てもらえば分かるのだが、Office XP(Windows版の最新のOffice)は、「ローカル」「ウォッチ」というウインドウがあり、デバッグでブレークしたときには、少なくとも何もしなくて、ローカルウインドウで変数が確認できる。ウォッチは、変数から計算した式を設定してその値を確認したり、あるいは条件が成り立つとブレークするといったことが可能だ。もちろん、X版Officeでもブレークなどのデバッグ作業はできるのだが、止まったところで変数の値を確認するには、イミディエイトウインドウを出して、そこで「print 変数名」などのステートメントをキータイプする必要がある。また、デバッグしているときには、マウスポインタで変数の文字がかかれた部分をポイントすると、変数名がチップヒントで表示されるという機能がOffice XPでは利用できる。しかしながら、X版のOfficeではそうした機能は利用できない。
プログラミング作業の上では、Office XPだと、たとえば「Application.」とキータイプすると、Applicationクラスで定義されたプロパティやメソッドなどがポップアップして表示され、選択して入力するなどの入力援助の機能が利用できる。これもX版のOfficeには組み込まれていない。

関連リンク:Microsoft Office v.X for Mac
カテゴリ:文書作成アプリケーション


【MacWIRE配信予定】Microsoft Office v.X for MacのVisual Basicの機能は前バージョンと変わらず(2)

――――署名マクロの機能もX版Officeには組み込まれていない
Windows版のOfficeだと、既定の設定では、マクロ自体が簡単には動かせないようになっていると言っても過言ではない。もちろん、マクロウィルスの影響で、自由に動かせないようにすることでのセキュリティ対策ではある。Excelでのセキュリティ設定は高中低の3段階に設定できるようにしてある。デフォルトでは「高」となっていて、署名されたマクロに対して、実行時に許可をしないとマクロを実行できない状態でブックを開くことになる。ちゃんと署名してあるウィルスってやっぱり存在しないだろうし、きちんとした署名のウィルスってのも考えにくいから、歯止めになるというわけだ。
だが、個人的に使うものに署名をするのも面倒だという場合には、セキュリティを「中」にして使うことが多いだろう。これだと、マクロを含むブックを開くときに、警告が出るが、そこでOKとすれば、開いてマクロも実行できる。自分で作った意外のファイルを開くときに注意をしていれば、多くの場合は問題ないパターンである。
一方、X版のOfficeの場合は、こうしたマクロのセキュリティという設定は存在しない。また、署名という機能もVisual Basic Editorには含まれないので、電子署名による認証についても組み込まれていないようだ。では、どういう動作になるかというと、Windows版での「中」レベルに近いものとと言って良い。マクロを含むブックを開くときに次のようなダイアログボックスが開かれる。

◇マクロを含むブックを開くときに出てくるダイアログボックス
 

ここで、開くこともできるが、開かないという選択肢もある。なお、今後このダイアログボックスを開かないということにすると、Windows版での「低」レベルのセキュリティと同じになってしまい、マクロがあってもブックを開けてしまうことになる。
いずれにしても、Windowsではウィルスにさらされることが多いが、Macintoshではそれほどでもないでしょう…ということだろう。Windowsの場合は、たとえば、WebブラウザでExcelのワークシートを開くようなことができるので、比較的手軽に「実行させてしまう」ことは可能である。Mac OSでは基本的にはダウンロードとなるので、その意味では環境的な違いもあって、マクロのセキュリティ面では違いがあるのだろう。

――――ユーザーフォームの文字化けのバグも直らず
Visual Basicのダイアログボックス(「ユーザフォーム」というのがVisual Basicでの呼び名)設計についてもバグと思われる機能が存在する。これは、MDOnline読者の佐藤健さんが指摘してくれたことであるが、X版のOfficeで直っていることが期待されていたものの、まだ修正されていないということである。この問題は、Office 98からあり、バグ報告をしているそうであるが、残念ながら製品には反映されていない。
その症状は、以下のようなものだ。X版のExcelでユーザフォームにラベルを配置する。そのラベルの見える文字(つまりCaptionプロパティ)に日本語を設定したとする。そのファイルを、Windows版のExcel XPで開くと、ラベルの文字列が文字化けしているのである。Captionプロパティを見れば分かるように、フォントの問題といったことではなさそうで、文字コードの扱いについての根本的な問題があるかのように思われる。

◇X版のExcelで、ユーザーフォームにラベルを設定した
 

◇Windows版のExcelで開くと文字化けしている
 

細かいバグと言えばそれまでだが、これは、実質的には「X版Officeで作成したユーザーフォームはWindowsでは使えない」ということを意味する。プラットフォームをまたいで使うプログラムでのユーザーフォーム作成は、Windows版のOfficeを使うしかなさそうである。

――――開発者は違いを認識して作業にかかろう
以上、やはり…というか、Macintosh版でのVisual Basicの機能は期待を裏切るものかもしれない。Auqaしているとは言え、実質的にはOffice 2001と変わりがないのである。一方のWindows版ではOffice 97から実現しているようなローカルウインドウなどの機能はいまだにMacintosh版には反映されていない。
もっとも、マイクロソフト側としても言い分はあるだろう。Macintosh版は個人ユーザ向けであり、マクロを使う率がWindows版に比べて低いということはあり得る。それならば、限られた開発リソースを注ぐ機能ではないということも十分に理由としては成り立つだろう。また、それだからこそ、REALbasicを使えるようにしたのであるということも言えるのかもしれない。
MacintoshのOfficeでのプログラミングを行う人は、ある意味ではWindowsでもプログラミングをしている人も多いだろう。いずれにしても、Macintosh版の制約をよくチェックしておいて、実際の開発に当たる必要があるということは言えるだろう。

関連リンク:Microsoft Office v.X for Mac
カテゴリ:文書作成アプリケーション


TIL》Mac OS Xは起動時にDNSの逆引きを行う

ダイアルアップルータを使ってインターネット接続している場合に、Mac OS Xを起動するとルータがネットワーク接続を行ってしまう点について、Tech Info Libraryに文書が掲載された。Mac OS Xは、起動時にDNSの逆引きを行うためのリクエストが送信されるため、それがもとでインターネットに接続する。それを避けたいのなら、ダイアルアップルータ側に、設定しているホスト名とIPアドレスのセットを記憶させて、インターネットに名前解決の処理に行かなくてもいいようにしておくとよい。

関連リンク:Mac OS X 10.1: 起動時にダイアルアップルータが自動接続する
カテゴリ:Tech Info Library-J, インターネット全般, ネットワーク


KBase》Authoring Support 1.1.5がリリース、ソニー製ドライブのサポートを追加

Mac OS 9でのCD-RWドライブを使った書き込みをサポートするAuthoring SupportのVer.1.1.5の英語版が公開された。ISOフォーマットでの書き込みに加えて、ソニー製のドライブに対するサポートが増えている。利用可能なドライブのリストなどは、以下のKBase文書に含まれている。

関連リンク:Authoring Support 1.1.5: Information and Download
カテゴリ:Knowledge Base(旧TIL), メディア制作, 周辺機器