SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

データをExcelブック形式で保存する.NETアプリケーションの作成

PowerTools XLS for .NETのC1XLBookコントロール、Ribbon for Windows FormsのC1StatusBarコントロールを使ったアプリケーションの作成

  • このエントリーをはてなブックマークに追加

フォームの作成

 では、フォームを作成します。このプログラムでは、計測機器から読み込んだデータをExcelのブック形式で保存します。ただし、実際に計測機器を接続したプログラムにしてしまうとハードウェアに依存してしまい、サンプルアプリケーションとしてふさわしくないため、ここでは乱数を利用してプログラム側で擬似的にデータを作成し表示する方法を使いました。

 作成した乱数の表示にはLabelコントロールを使います。また、ステータスバーには、ラベル、プログレスバー、ボタンの3つのコントロールを組み込みます。プログラムでは、1秒ごとに1つのデータを作成するため、TimerコントロールのTickイベントを利用します。

GUIのデザイン

 Labelコントロールは全部で21個使用します。データを表示するLabelコントロールでは3Dの枠線を設定し、Label2,4,6...と偶数のコントロール名になるように作成します。これは、コードからループ処理を利用して乱数を表示させるためです。

 Timerコントロールは[計測開始]ボタンをクリックすると始動するようにします(C1XLBook、C1StatusBarの設定については後述します)。

フォームのレイアウト
フォームのレイアウト

コントロールの配置

 コントロールの配置手順は、以下のような流れになります。

  1. このプログラムのポイントの1つは、データ表示処理を自動化するためにLabelコントロールの名前を揃える点です。前述したように、21個のLabelコントロールのうち、データ表示用は偶数の名前になるよう設定しています。
  2. Buttonコントロールには、Timerコントロールの動作を制御するのに使用するため、Clickイベントハンドラを作成します。
  3. Timerコントロールでは、1秒おきにデータ表示処理を行うため、Intervalプロパティを「1000」ミリ秒に設定します。EnabledプロパティをFalseのままにし、Tickイベントハンドラを作成します。
  4. C1XLBookコントロールは、処理をすべてコードから行うため、プロパティ設定などはありません。
  5. フォームは、FormBordeStyleプロパティを「Fixed3D」にします。

C1StatusBarコントロールの設定

 C1StatusBarコントロールは、左側のペインにラベルを、右のペインにプログレスバーとボタンを設定します。

 まず、ツールボックスからC1StatusBarコントロールをフォーム下部にドラッグ&ドロップします。左ペインから、フローティングツールバーの[アクション]ボタンをクリックするとアイテム一覧のリストが表示されるので、[ラベルの追加]をクリックします。これで、左ペインにラベル(RibbonLabelコントロール)が組み込まれます。

アイテム一覧のリストから「ラベルの追加」をクリック
アイテム一覧のリストから「ラベルの追加」をクリック

 組み込まれたラベルをクリックすると、プロパティウィンドウがRibbonLabelコントロールのプロパティに切り替わるため、Textプロパティを「ボタンを押すと計測を開始します」に変更します。

 次に、C1StatusBarコントロールの右ペインをクリックし、フローティングツールバーの[アクション]ボタンをクリックします。左ペインと同じようにアイテム一覧のリストが表示されたら、「プログレスバーの追加」をクリックして、右ペインにプログレスバー(RibbonProgressBarコントロール)を組み込みます。

アイテム一覧のリストから「プログレスバーの追加」をクリック
アイテム一覧のリストから「プログレスバーの追加」をクリック

 組み込まれたプログレスバーをクリックしてプロパティウィンドウをRibbonProgressBarコントロールに切り替え、次のプロパティを設定します。

プロパティ 設定値
Maximum 10
Minimum 0
Step 1
Width 150

 プログレスバーは、MaximumプロパティとMinimumプロパティの範囲で動作します。Stepプロパティはバーの進行の増加分を設定するプロパティです。ここでは、0から10の範囲で1ずつ増えていくようプログレスバーを設定します。

 ここで、右ペインがプログレスバーで一杯になったので、右ペインの幅を広げます。C1StatusBarコントロール全体をクリックして、プロパティウィンドウをC1StatusBarに切り替えます。そして、RightPaneWidthプロパティを「300」に設定します。これで、右ペインの幅が広がりプログレスバーの横に他のアイテムを挿入するスペースができます。

RightPaneWidthプロパティを「300」に設定
RightPaneWidthプロパティを「300」に設定

 再度右ペインから、フローティングツールバーの[アクション]ボタンをクリックします。アイテム一覧のリストから[ボタンの追加]をクリックし、右ペインにボタン(RibbonButtonコントロール)を追加します。

アイテム一覧のリストから[ボタンの追加]をクリック
アイテム一覧のリストから[ボタンの追加]をクリック

 追加したボタンをクリックし、フローティングツールバーから「テキストの設定」を選びます。そして、テキストを「データをExcelで表示」に変更します。

テキストを「データをExcelで表示」に変更
テキストを「データをExcelで表示」に変更

 もう一度フローティングツールバーを表示し、「画像の変更」を選びます。そして「小画像」の「画像の選択」リストから「Table」を選びます。これで、アイコン付きのボタンができあがります。

「小画像」の「画像の選択」リストから「Table」を選ぶ
「小画像」の「画像の選択」リストから「Table」を選ぶ

 RibbonButtonコントロールをクリックしてプロパティウィンドウをRibbonButtonコントロールに切り替え、VisibleプロパティをFalseに設定し、ボタンを非表示にしておきます。プロパティ表示をイベント表示に変更し、[Click]をダブルクリックしてイベントハンドラを作成します。

RibbonButtonコントロールのClickイベントハンドラを作成する
RibbonButtonコントロールのClickイベントハンドラを作成する

次のページ
コードの作成

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6743 2012/09/11 15:10

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング