連載:VB 6ユーザーのための
これならマスターできるVB 2005超入門

第10回 今月は部品化月間 〜 ユーザー・コントロールを作成する

羽山 博
2007/07/17
Page1 Page2 Page3 Page4

家の中をピカピカにする方法?!

Back Issue
1 VB 6の皆さん、これはもうVB 2005使うしかないでしょ
2 コントロール配列がなくても大丈夫!
3 VB 2005の“My”の便利さに脱帽!
4 トラブルは水際で防げ〜入力時のチェックとエラー処理
5 データベースはじめの一歩
6 配列ってこんなに便利だったの!?
7 リソースを使ったマルチ・リンガルなVBアプリケーション
8 ファイル入出力をマスターしよう
9 そろそろまじめにクラスに取り組んでみようか

 毎日家の中を掃除しているのに、気が付いてみると一向にきれいになっていない、ということはないだろうか。まさにわが家がそうなのだが、その理由は明らか。毎日、同じ所しか掃除しないからだ。丸く掃いた所はきれいになるが、部屋の隅や普段目にしない所にはどんどんホコリがたまる。年末の大掃除のときに開けてびっくり玉手箱! となるのもムリはない。

 だが、少しの工夫で家の中をピカピカにしておく秘訣(ひけつ)はある。それは、家の中を10のブロックに分割し、月ごとに重点掃除個所を決めるという方法。12月は全体の大掃除をするので除外。1月はサボっていいものとしよう。残りの10カ月で、月ごとにそれぞれの個所を磨き上げるというわけだ。これならさほど労力はかからないし、一周するころには目に見えて家の中が美しくなっている(はず)。

 さて、プログラムの開発においても、放っておけばいつの間にかホコリがたまっていて、気が付いたときには大掃除のために大変な労力を割かなければならないことがある。設計段階でコードの効率性や保守性まで徹底して検討できればいいのだが、予想外の対応であちこちつぎはぎになることも多いし、やむなくそのコードを継続して利用しなければならないことも多い。そういう個所が増えてくると、保守やその後の開発に大きな支障をきたすことになる。だが、早い段階で点検をしておけば、後の苦労が減る可能性は極めて高い。

 そんなわけで、今月は、私が勝手に「部品化月間」と決めた(ほかにも「コメント強化月間」とか「コーディング規約徹底月間」「文書化月間」など、月ごとに決めておくといいかもしれない)。先ほども述べたように、設計段階できちんと部品化を検討するのはもちろんのことだが、これを機に、これまでのコードの中に部品化できるものはないか、と洗い出してみるのもいいだろう、というわけだ。

 同じようなユーザー・インターフェイスや同じようなコードを使っているプログラムがいくつもあるなら、部品化を検討してみよう。そのために、今回は特にユーザー・インターフェイスを含む部品、つまりユーザー・コントロールの作成について見ていくこととする。いうまでもなく、ユーザー・コントロールとは、ラベルやテキスト・ボックスなどの出来合いのコントロールではなく、それらを組み合わせたり、独自の機能を追加したりしてユーザーが作成するコントロールのことである。

 現実には、これまでのプログラムを書き換えて、新しく作ったユーザー・コントロールを適用するのはリスクが高いし、1回限りのコードを部品化してもあまりメリットはない。しかし今後新しく作るプログラムでも、そのユーザー・コントロールを利用する可能性が高いのであれば、部品化のメリットは大きいはずだ。

 では、サンプル・プログラムを見てみよう。簡単な例で、ユーザー・コントロールを作成する手順と、それを利用するプログラムの作成手順を見ていく。

サンプル・プログラム14 − アイデア・データベースのためのユーザー・インターフェイス部品

 私は「ネタ帳」という小さなノートをいつも持ち歩いていて、執筆のアイデアや打ち合わせのメモ、素朴な疑問、思いついたダジャレ、短歌や俳句の素材、ちょっとしたスケッチなどを自由に書き込んでいるのだが(月に1冊ぐらいは使う)、せめて文字情報だけでも、キーワードを付けて整理しておけば、関連情報を集約したり整理したりするのに便利だなあ、と思っている。ネタ帳を持ち歩かないにしても、そういうふうに思っている人は多いだろう。

 そこで今回は、そのようなプログラムで使われるユーザー・インターフェイス部品を作ることとしよう。図1に示したのが、今回作成したユーザー・インターフェイス部品を利用したプログラムだ。

 フォーム上にコンボ・ボックスとテキスト・ボックスを配置したのではなく、それらを1つのユーザー・コントロールとしてまとめ、フォーム上に配置しているということに注目してほしい。「京大型カード」を電子化したような、その手のアプリケーションもいくつかあるので、イメージはつかみやすいと思う。

図1 アイデア・データベースのためのユーザー・インターフェイス
コンボ・ボックスからキーワードを選択し、テキスト・ボックスにアイデアの内容を入力する。これらのコントロールをフォーム上に配置しただけのプログラムではなく、これらのコントロールを含むユーザー・コントロールを作成し、そのユーザー・コントロールをフォーム上に配置してある。ユーザー・コントロールのプロパティを変更したり、メソッドを呼び出したりすることもできる。ここでは、フォントを変更してみた。

 このプログラムそのものは後で作成することとして、ユーザー・コントロールを作成する方法から見ていこう。

■ユーザー・コントロールをデザインする

 Visual Studio 2005(以下VS 2005)では、メニュー・バーから[ファイル]−[新しいプロジェクト]を選択してプロジェクトを新規作成するときに、[新しいプロジェクト]ダイアログ・ボックスで[Windowsコントロールライブラリ]を選択すれば、この後に示す図4まで進めるのだが、Visual Basic 2005 Expression Edition(以下VB 2005 Express)には、その選択肢がないので、少しだけ回り道が必要となる。

 といっても、それほど煩雑ではない。VB 2005 Expressでは、まず[新しいプロジェクト]ダイアログ・ボックスで、[クラス・ライブラリ]を選択し、プロジェクトを作成する。ここではプロジェクト名を「SampleClassLibrary」にした(図2)。

図2 [新しいプロジェクト]ダイアログ・ボックスで[クラス・ライブラリ]を選択する
VB 2005 Expressでは[新しいプロジェクト]ダイアログ・ボックスに[Windowsコントロールライブラリ]がないので、代わりに[クラス・ライブラリ]を選択してプロジェクトを作成する。

 プロジェクトが作成されたら、ツール・バーの[新しい項目の追加]ボタンの右にある[▼]をクリックし(図3上)、[ユーザー コントロールの追加]を選択する。図3下のようなダイアログ・ボックスが表示されるので、ファイル名を指定する。ここでは、「IdeaCard」とした。この名前がユーザー・コントロールのコントロール名にもなる。



[ユーザー コントロールの追加]を選択

図3 ユーザー・コントロールを追加する
ツール・バーから[ユーザー コントロールの追加]を選択してこのダイアログ・ボックスを表示するのが簡単。ツール・バーが表示されていなければ、メニュー・バーの[プロジェクト]−[ユーザー コントロールの追加]を選択してもよい。[新しい項目の追加]ダイアログ・ボックスで[ユーザー コントロール]の項目が選択されていることを確認して、ファイル名を指定する。ファイル名には自動的に拡張子「.vb」が付けられる

 ではユーザー・コントロールをデザインしていこう。


 INDEX
  連載:VB 6ユーザーのためのこれならマスターできるVB 2005超入門
  第10回 今月は部品化月間 〜 ユーザー・コントロールを作成する
  1.サンプル・プログラム14 − アイデアDBのためのユーザー・インターフェイス部品
    2.ユーザー・コントロールをデザインする
    3.サンプル・プログラム15 − ユーザー・コントロールを利用するプログラム
    4.サンプル・プログラム14の拡張 − プロパティとメソッドを追加する
 
インデックス・ページヘ  「これならマスターできるVB 2005超入門」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH