ハイパーカードオフィスへの招待

高機能なビジネスソフトは多数あるが、実際のオフィス情報の多くはこれらではうまく処理できない。ハイパーカードという強力で柔軟な(しかも無料の)ツールを使って、新しい視点のオフィスシステムを構築していく。

今なぜハイパーカードか

ハイパーカードでオフィスシステム? エクセルやファイルメーカーProのような高機能ビジネスソフトが花盛りの時代に、9インチのモノクロ画面を標準とする古典的ソフトを持ち出されるとびっくりする方も多いかと思う。人によってはハイパーカードを単なるおまけとしか見ていないかもしれない。ある程度使い物になる作品を作るには、簡単とはいえプログラミングも必要である。エクセルのマクロを書くのも億劫なのに、どうしてそんな面倒なことができるものか。

疑問はごもっともだが、ちょっと待ってください。筆者は食品メーカーの広報部で、マスコミの取材などに対応するための部内情報システムを5年かけて構築してきた。その間いろいろな手法を試みてみたが、現在の所ハイパーカードを用いたシステムが最も柔軟で効果的だと考えている。やり方次第では、普通のビジネスアプリでは考えられないような強力なオフィスシステムも夢ではない。この連載では、いかにしてハイパーカードの可能性を引き出すかを、実践的なレベルで検討していこうと思う。

ハイパーカードが優れているという理由は、とりあえず3つあげることができる。

  1. 優れたテキスト処理能力
  2. 自動操作と高度なカスタマイズ
  3. バンドルされる無料ソフト

これらについて、オフィスの現状を頭に描きながら、少し詳しく考察してみよう。

テキストデータの処理

机を眺めればすぐ分かるように、大半のオフィス情報はメモや報告書のような文字情報である。経理などの部署は別として、ほとんどの場合は文字を中心とした仕事をしている。それらは住所録のようにうまくデータベース化できるとは限らず、それぞれが独立した文書であることが多い。つい最近まで、オフィスでは専用ワープロのほうが幅を利かせていたのもこういう事情からだ。

表計算やデータベースは、特定のデータを扱うときは強力であるが、不定形の文字情報を柔軟に処理するのには向いていない。ワープロも見栄えの良い文書を作成する以上の機能は期待できない。つまり、これらのソフトだけではオフィス情報の大半が十分活用できず、本当に有効なサポートシステムは構築できないのである。

ハイパーカードの強力なテキスト処理機能を使えば、これまで手つかずだった宝の山を自分たちの武器に変えることができるはずだ。

自動操作とカスタマイズ機能

オフィスでの毎日を振り返ってみると、仕事の多くは同じ手順の繰り返しであることが分かる。MS-DOSでもバッチファイルという仕組みで単純な作業は半自動化できるようになっていた。マッキントッシュはビジネスには向かないといわれてきたが、標準マクロ言語の不在がその理由の一つであったと言える(アップルスクリプトが普及すると状況は少し変わるだろうが、まだまだ敷居が高く自由に使えるとは言い難い)。

一方、カスタマイズはマッキントッシュの特徴のように思われているが、実用的な面では意外に融通がきかないという経験をしたことはないだろうか。多くのソフトがマクロやボタンを用意するようになり、カスタムアプリケーションが以前よりは作りやすくなったとはいえ、望むことが自在にできる環境とは言えないのが実状だと思う。

ハイパーカードには、これらの弱点を克服するための機能が最初から備わっている。スクリプトで定型業務をこなすことはもちろん、決まった時刻に特定の仕事を自動運転させることも簡単だ。ユーザーとの接点である画面も(基本的にはモノクロだが)自由にデザインできるし、何度でもスクリプトを書き換えて、痒いところに手が届くシステムを気楽に作ることができる。

無料でバンドルされている

限られた予算でシステムを構築するとなると、最新のアプリケーションを全てのマシンにインストールするのはかなり苦しい。しかもこれらは最新のハードや大きなメモリを要求することが多く、手持ちの機種では利用できないことがある(*注1)。

オフィスのコンピュータは、1人1台に近い規模になって初めて本当の力を発揮する。筆者の考えでは、ソフトに多大な予算を注ぐよりも、まずマシンの台数を増やしてネットワークを構築するのが先決である。SE/30程度でも十分実用になり、なおかつ無料というハイパーカードはこの点でも大変魅力的だと言えよう。

論より証拠

コンピュータを導入して幾つかのビジネスソフトを入れてみたが、なかなかそこから先に進めないということはないだろうか。ハイパーカードは無料だし、気軽に自分でスタックを作ってトライしてみることができる。大がかりなアプリケーションを使わないと不可能と思っていたことが、意外と簡単にできてしまうこともある。

これからこの連載で、ハイパーカードを使ったテキストデータベース、簡易電子メール、様々な自動処理などの手法を紹介していく。いずれも簡単なプログラミングで基本的な働きを実現でき、しかも少し手を加えれば相当高度な処理まで可能な、汎用性のある実例を用意するつもりだ。

今回は手始めに、ちょっとしたドキュメントローンチャと、簡易電子掲示板を作ってみることにする。

ハイパーローンチャ

画面 ローンチャとは、ファインダ上でファイルの所在を覚えていなくても良いように、ファイルをまとめて登録して簡単に起動できるようにするものである。コンピュータに特に馴染みのないユーザも抵抗なく使えるようにするには重要な機能だ。フリーウェアでも多数出回っているし、システム7.5では標準で添付された。

ならばわざわざハイパーカードで作るまでもないと思うかもしれないが、普通のローンチャは単にファイルを起動するだけなのに対し、ハイパーローンチャはそこに様々な機能を付加できる。たとえばヘルプや統計機能を持つローンチャなどいかがだろうか(図1)。

ファイルを起動するためにボタンにopen命令を埋め込むことはすぐ思いつくが、ここではもう少し細工をして、shiftキーでヘルプを表示するようにしてみよう。基本はこんな具合だ。

if the shiftKey is DOWN then go cd <help cd name>
else open <document path> with <application path>

実際に使うときは、リスト1のように少し手を加えるとよい。ヘルプカードに更に詳しい説明にジャンプするボタンを追加していけば、一種の電子マニュアルとしても使える(図2)。こういう小技が使えるのがカスタマイズ可能なシステムの強みだ。付属のサンプルスタックでは、登録を自動化するボタンも用意してみた。

ついでながら、ローンチャはハイパーカードを常に立ち上げておくことになるから、「遅さ」を感じずに済む(遅いと言われるのは起動に時間がかかるせいで、現在の機種ならスクリプトの実行は十分速い)。こうしておけば様々な作業をボタンに登録して機動的に利用することが可能だ。

利用状況を確認する

ファイルの利用統計も簡単なスクリプトで実現できる。いろいろな方法が考えられるが、手軽なのは、ボタンのpartNumberプロパティを利用する手だ(リスト2。HC2.1以前の場合はnumberプロパティで代用する)。スタックに統計用カードを作り、利用状況を記録するフィールド"MyCounter"を作っておく(*注2)。そこのpartNumberに相当する行に情報を記録するという仕掛けだ(図3)。

用意したファイルのうち、どれが頻繁に使われ、また使われないかということを把握するのは、システムの見直しのために大変重要である。システムがうまく運用できないと言う場合、ユーザーの欲しいものと設計者の用意したものが一致していないことが多い。ユーザーの利用状況を把握し、適宜システムを改良していくことが大切だ。

電子掲示板

机の上は回覧の書類で埋まっていませんか? 電子メールが活用されていればともかく、現実のオフィスでは非効率なメモのやりとりがまだまだ多い。

朝、電源を入れるとメッセージが表示されるような機能があれば、効率の良い情報共有ができる。簡単な電子掲示板機能EMsgBoardを先ほどのローンチャにつけ加えてみよう(図4)。

ここでは日付をファイル名にすることで、表示すべき情報を見分けるようにする。there is a file演算子を使って、今日のお知らせがあるかどうかを調べ、ファイルが見つかったらその内容を掲示板カードに書き込むという仕組みだ(リスト3)。

このスタックを起動項目に登録し、openStackやstartUpハンドラにEMsgBoardを加えておくだけで、ネットワークにつながった全てのコンピュータに朝のメッセージを送れるようになる。

ハイパーカード・オフィス

ローンチャも電子掲示板も、これだけのことを市販のアプリケーションで行おうとすると、それなりに大がかりなことになるのではないか。ここで紹介した仕組みは単純なものだから、誰でも気楽に試してみることができる。そして、意欲があればいくらでもスクリプトを加工して、自分のオフィス事情にあったシステムを開発することもできるのだ。

ローンチャのような形でハイパーカードをプラットフォームにしておくと、ここを中心にして様々な作業を統合することが可能になる。市販ソフトの得意な分野はそちらに任せ、全体をハイパーカードでコントロールすると、相互に関連する業務がスムーズに連携され、加えて有益な副産物を生み出すことができるはずだ。今回の電子掲示板のように、特別なアプリケーション無しで実現できることも多い。

次回はテキスト処理の手法を紹介しながら、ハイパーカードを中心に据えたオフィスシステムを検討していく。

*注1

多くのオフィスはコンピュータをリースしており、従って法定耐用年数の4年間は同じ機種を使い続けることになる。つまり、まだSE/30やIIciが現役として働いているということで、これを無視してオフィスシステムを構築することは非現実的と言わざるを得ない。

*注2

コンピュータをネットワークでつないで各人のマシンからローンチャを利用する場合には、カードではなく統計用のファイルを用意して結果を書き込む。ネットワークの活用は稿を改めて述べる予定。

リスト

リスト1

-- ボタンには簡単なスクリプトを記述して、バックグラウンドの
-- ハンドラに処理を任せるほうが後で変更を加えるためにも便利
-- ボタンの名前をファイルの名前と同じにしておく

on mouseUp
  doMyJob
end mouseUp

-- バックグラウンドに置くハンドラ
-- クリックされたボタンの名前をファイル名(myName)として処理する
on doMyJob
  put short name of the target into myName
  if the shiftKey is DOWN then
    visual iris open
    push cd
    go cd myName -- ヘルプカードの名前も同じにしておくと分かり易い
  else
    open myName with <application path> -- *
  end if
end doMyJob

-- *ここではファイルは常に同じアプリケーションで開くという前提に
-- しているが実際はそうとは限らないので、アプリケーションごとに
-- ハンドラを用意するか、アプリケーションを調べる仕組みが必要となる

リスト2

-- ファイルの利用統計を取るためのハンドラ。doMyJobから呼び出す
-- ボタンのpartNumberを使って、統計フィールドの行を指定し、
-- 利用回数(item 2)を1ずつ増加させていく

on getStat myName
  put (partNumber of the target) into myID
  get line MyID of cd fld "MyCounter" of cd "Statistics"
  put myName into item 1 of it
  add 1 to item 2 of it
  put it into line MyID of cd fld "MyCounter" of cd "Statistics"
end getStat

-- 同じ要領で日時をitem 3に記入すれば、最終利用日時を記録できる
-- 以下、同様に様々な情報を記録可

リスト3

-- 電子掲示板機能のハンドラはスタックスクリプトに置いて
-- on startUp、on openStack等から呼び出すとよい。
-- 日付をファイル名にするところがポイント

on EMsgBoard
  put <message folder> into msgPath -- サーバー上の適当なフォルダを定める
  put msgPath & the date into msgFile -- 日付をファイル名にする
  if there is a file msgFile then
    open file msgFile
    read from file msgFile until EOF -- *
    close file msgFile
    put "MsgBoard" into cdName
    put it into cd fld "MsgText" of cd cdName
    put the long date & "のメッセージ" into cd fld "Title" of cd cdName
    visual iris open
    push cd
    go cd cdName
  end if
end EMsgBoard

-- *HC2.1以前ではfor 30000などにしておく

(MacUser Japan, June 1995)