金宏 和實(かねひろ かずみ)

 富山県高岡市在住 株式会社イーザー副社長。富山県は例年,1月にどっぷりと雪が降り,2月は凍みて道路がアイスバーンになるのですが,今回は本当に雪の少ない冬でした。11月,12月の季候がそのまま続いて,申しわけ程度に2月初旬に雪が降り,2日ほど凍って,もう春になっちゃったという妙な季候です。雪かきや車がスリップする心配が少なくてよかったのですが,積雪量が少ないと地下の水脈の量が減り,井戸水が涸れるのではないかと心配になります。

 今回の記事は,いわゆる軟派な内容です。ジェネリックスや正規化といった硬派な内容はもう少し後の回にとっておくことにして,今回は軟派な内容でお送りしたいと思います。

 軟派にとって大事なことは見てくれの良さです。おっと,変な話になりそうなので著者が思う『硬派なアプリ(アプリケーション)』『軟派なアプリ』について整理しておきます。

硬派なアプリ
 見た目に派手さはないが,アルゴリズムがしっかりしていて,たくさんのデータを高速に処理できる。また,通常は見えないところの機能が充実している。例えば,入力エラーや例外に対する処理が充実しており,的確である。

軟派なアプリ
 機能はあまり充実していない。パッと見はいいのだが,使いこなしていくうちに不満が出てくる。でも,見た目が整っており,ユーザーに使ってみようという気を起こさせる魅力がある。

 もちろん,見た目も見えない機能も充実しているほうが良いに決まっていますが,今回はVisual Basic(VB)2005なら,少ないコードで見栄えのするアプリを作成できるということをお伝えしたいと思います。

 今回作成するアプリはテキスト・エディタです。と言っても,高機能なテキスト・エディタを作るのは大変です。ここでは,テキスト・ファイルをStreamReaderクラスを使って,テキストボックスに読み込み,編集した後,StreamWriterでファイルに書き出すプログラムを作ります。でも,今回の目的はテキスト・ファイルの扱い方を説明することではありません。アプリの外観をいかにアプリらしく見せるかがテーマです。

<b>図1</b>●今回作成するテキスト・エディタ
図1●今回作成するテキスト・エディタ

 まず,実行イメージから見てください。メニューバーの下にはツールバーがあります。フォームいっぱいに広げたテキストボックス上で,右クリックするとショートカット・メニューを表示します。また,テキストボックスの下にステータスバーを配置して,アプリの状況を通知します。簡単な作りですが,Microsoft Word 2003の外観をまねています。

 プログラマとして「独自で,かつもっと使いやすいユーザー・インタフェースを作るのだ」という気概を持つのは良いことですが,広く普及しているスタイル,一般的と言われているユーザー・インターフェイスをまねて,勉強することも大切です。それを踏まえたうえで,オリジナリティを発揮することができたらすばらしいですね。

 VB 2005を使うとOffice 2003ライクな外観を持つアプリを作成できます。フォームに配置する部品の一覧と特徴にざっと目を通してください(表1)。

表1●使用する部品の一覧
使用する部品 備考
MenuStrip 読み込み/書き出しのためのファイル・メニューとバージョン情報を表示するヘルプメニューを作成
ToolStrip 新規作成,開く,上書き保存のボタンを持つ
TextBox DockプロパティをFillにし,全体に広げる。MultilineプロパティをTrueにし,複数行対応にする
ContextMenuStrip TextBoxに関連付けた「切り取り」「コピー」「貼り付け」のメニュー項目を持つ。右クリックで開く
StatusStrip Labelを持ち,「読込中」「書込中」といった状態を表示
OpenFileDialog ユーザーに開くファイルを指定させる
SaveFileDialog ユーザーに保存するファイル名を指定させる

 MenuStrip,ToolStrip,ContextMenuStrip,StatusStripと,Strip(ストリップ)と名前に付くコントロールが並びました。私を含めた男性諸氏はストリップという言葉につい「エヘヘ」とにやけてしまいそうですが,これも誤解のないように言葉の意味を整理しておきましょう。

 stripには「裸にする」や「脱衣する」という意味がありますが,その他に「細長い切れ」や「間口の狭い様々な店が並ぶ街路」という意味があります(ネットで海外旅行の紹介ページなどを見ていると“ストリップモール”という言葉によく出くわすことがありますね)。Strip系コントロールのstripも,そんなイメージでとらえていただければよいかと思います。

 それでは,フォーム作成の要点を画像とともに説明していきましょう。