+++++++ も く じ ++++++++
1.マクロバイザーの使い方
2.簡単な文字列関数
3.数字や日付の関数
4.関数の応用
+++++++++++++++++++++
一太郎11の表作成機能、いろいろ試して、あらためてビックリです。 10万円以上もするDTPソフトでできないことが、 いとも簡単にできてしまいます。 MS-OFFICEの次期バージョンもかなりの機能強化がされるようですが、 それは主に言語の面でのもののようです。 日本語での使用においてかゆいところに手の届く一太郎とは、 棲み分けがなされるのかな、とも感じました。
今回は、五郎で関数を使った置換の話です。 難しい話は、今回が最後です。もうしばらく辛抱を。 では、「住所録データベース」→「住所録台帳」と開いてください。
関数は、式を作ることになるのですが、式の書式(書き方)は、はじめから知っているものではなく、そのつど、マニュアルを見ながらつくるものです。もっとも、よく使う式は、覚えてしまっていることも多いのですが。
関数のマニュアルの見方を、先に説明します。「編集」→「置換」→「式」を実行すると、「式による置換」ダイアログが開きます。ここまでは前回やりましたね。
「置換式」の枠の中にカーソルを持っていくと、枠の右端に小さなグレーの四角形が表示されます。これをクリックすると、「式入力」ダイアログが新たに開きます。「式」という枠の中に直接関数式を書くのですが、そのためのマニュアルは、「式」編集領域の右上にあるアイコンをクリックすると、でてきます。
「マクロバイザー」がそのマニュアルです。マクロバイザーは、関数だけでなく、一太郎Office上で動くプログラムを書くためのいっさいのマニュアルも収められています。
こういった部分の話は横に置いて、「関数」というタブをクリックしてください。たとえば、文字列に関する関数なら、「分類」で「文字列操作」を選択すると、「関数名」の欄に文字列に関する関数が一覧表示されます。
「関数名」で選択されている関数の名前と概要が、下に表示されています。その関数について詳しく知りたいときは、「マクロヘルプ」のボタンを押します。
関数1つずつではなく、まとめていろんな関数を知りたいときは、適当な関数のマクロヘルプを実行して、「関連項目」→「標準関数」と順にクリックします。
マクロバイザー上で、いま使いたい関数を見つけたら、「関数名」でその関数を選択しておいて、「式の挿入」ボタンをクリックします。
では、実際に関数を使ってみましょう。「フリガナ」には半角で入力されていると思います。これを、全角のカタカナに変えてみましょう。
上に書いた手順を進め、「式による置換」ダイアログを開きます。「対象項目」で「フリガナ」を選択します。続いて「式入力」ダイアログを開き、「マクロバイザー」を立ち上げます。
「関数」の「文字列操作」で、「関数名」一覧の一番下に、「Zen」という関数があります。概要に「半角文字を全角文字に変換します。」とありますね。これを使いましょう。
「式の挿入」ボタンを押します。マクロバイザーを移動させるか閉じるかして、「式入力」ダイアログをカレントにします。
「式」という枠の中に
Zen( 文字列 )
と入力されていますね。
全角に変換するべき文字列は、「フリガナ」という項目ですから、
Zen(
の次にカーソルをおいて、その上の「項目名」の欄から「フリガナ」を選んでダブルクリックします。
すると、
Zen( [フリガナ] 文字列 )
となりました。
文字列
という文字を消すと、
Zen( [フリガナ] )
となりましたね。
OKを押して、「式入力」ダイアログを閉じます。作った関数が、「式による置換」ダイアログの「置換式」にセットされています。
OKを押してみましょう。トランザクションを反映します。フリガナが全部全角になりましたね。
では、同じ手順でフリガナを半角に戻します。Hanという関数を使います。あとは、まったく同じ手順です。
住所録は、おもに文字列データを扱うことが多いので、関数の例も、文字列操作の関数をあげました。一般に使われる関数は、文字列操作の他に、算術演算、日付時刻、財務あたりでしょう。
ひとつひとつを解説することはやめておきますが、ぜひ、マクロバイザーをのぞいてみてください。役に立ちそうな関数がいっぱいあります。
関数を組み合わせて使う方法を最後に書いておきます。
電話番号から市外局番を取り出すケースを考えます。
市外局番を書き出すための項目を新たに作ります。「TEL」という項目ラベルの上で右クリックし、「項目定義」→「項目追加」を実行。項目名を「市外局番」とし、固定長、6字でOK。
電話番号は、000-000-0000というふうに、ハイフンで区切られているとします。1つ目のハイフンの前までが市外局番ですね。
以下、関数の式だけを説明しますが、関数の使い方は、上に書いた手順の通りです。そして、使う関数は、「文字列操作」にあります。
まず、1つ目のハイフンの位置を調べます。
Find( 文字列1, 文字列2, <文字位置> )
を使います。
Find( "-", [TEL] , 1 )
と書き換えます。
この関数の値(答え)は、最初のハイフンがみつかった位置までの文字数(数字)です。TELの左から(この値-1)の文字数の文字を抜きます。
Left( 文字列, 文字数 )
を使います。
Left( [TEL], Find( "-", [TEL] , 1 )-1 )
と書き換えます。ふたつの関数を入れ子にして使っているのです。
式としてはこれでいいのですが、もしも、TELの項目に空欄など、ハイフンを含まないものがあったら、ハイフンの位置は0となり、左から-1文字を取得するということになり、エラーが出ます。
これを回避するには、条件式をかますといいでしょう。
Left( [TEL],
if(Find( "-", [TEL] , 1 ),
Find( "-", [TEL] , 1 )-1,
0
)
)
これでOKを押すと、「式による置換」ダイアログの「置換式」に式がセットされました。「対象項目」は「市外局番」にします。すると、「TEL」の項目は変更されず、元のままです。置換を実行してみましょう。
* * *
最後の応用は、難しかったかも知れませんね。でも、三四郎では、関数の入れ子はぜひ使いたいところなので、五郎でも少しふれておくことにしました。
次回から、五郎の仕上げとして、テンプレートを利用し、住所録以外のデータベースを作ってみます。