Visual Basic 2005 ここが便利!

第1回 “My”はクラスの海からVBプログラマを救う!?

株式会社ピーデー 川俣 晶
2005/02/26
Page1 Page2

INIファイル要らず、“My”機能の超便利!

 “My”には、もう1つ強力な機能がある。それは単なる既存クラス・ライブラリへのショートカットではなく、そのアプリケーション専用のオブジェクトを自動的に生成する機能である。その中でも、特に興味深いのがリソース(My.Resources)と設定(My.Settings)だろう。

 リソースは、実行ファイルに付加できる一種の情報であり、Windowsの初期からサポートされてきた機能である。Visual Basicではサポートされない時代も長かったので、VBプログラマの中には存在を意識したことのない人もいるかもしれないが、歴史の長さはVisual Basicをはるかに上回るものである。このリソースが特に活躍するのは、多言語対応、国際化の世界である。

 例えば、ドイツ語版のソフトからフランス語版のソフトを作る際、表示されるメッセージの文字列をすべてリソースに格納し実行時にそこから動的に使用するような構造にしておけば、リソースだけ入れ替えればすべてのメッセージがフランス語で表示されるソフトを作成できるというわけである。メイン・プログラムの再コンパイルという手順を踏むことなく、リソースだけを入れ替えるということが可能なのである。

 Visual Basic 2005でリソースを扱うのは極めて簡単である。リソースを設定するためには、以下のような設定画面が統合開発環境の中にあらかじめ用意されている。

統合開発環境にあるリソース設定画面
この画面でアプリケーションから利用するリソースを管理できる。なお、ここではVisual Basic 2005 Express Editionのベータ版を利用している。

 そして、この画面で書き込んだリソースにアクセスするには、“My”機能を用いると簡単である。IntelliSenseを使うと、「My.Resources.」と入力した後、リソースの名前の一覧が表示されるので、それを選ぶだけでよい。そうすると、リソースに書き込まれた値を参照でき、もしリソースが後から書き換えられれば、それに応じた値をプログラムは取得できるというわけである。

 さて、もう1つの設定(My.Settings)は、リソースと異なり、かなり目新しい機能といえる。この機能は、アプリケーション独自の設定情報を扱うためのもので、大ざっぱにいえば、INIファイルレジストリの後継に当たるものといえるだろう。とはいえ、同列に比較するのは間違いではないかと思うほど強力になっており、かつ、驚くほど手軽になっている。

 設定(My.Settings)を設定するにはリソースと同じような設定画面が統合開発環境内に用意されている。

統合開発環境にあるMy.Settigns情報の設定画面
この画面で設定したデータは「My.Settings」からアクセスできる。それぞれのデータ型として基本的な主要データ型がすべて設定でき、[スコープ]欄によりその情報の範囲(ユーザー単位/アプリケーション単位)を指定可能。

 しかし、リソースよりも設定可能な項目がはるかに細かくなっている。例えば、データ型として、基本的な主要データ型がすべて設定できる。「Price」という設定を書き込めば、My.Settings.Priceという名前でプログラム中で参照できるが、もしPriceをDecimal型に設定したならMy.Settings.PriceもDecimal型になる。文字列から数値に変換するような面倒もなければ、データ型指定のあいまいさに悩まされることもない。

 そして、もう1つ注目すべきは、[スコープ]欄である。ここでは「ユーザー」と「アプリケーション」が指定できるが、それらは設定される情報の範囲(つまり、ユーザー単位か、アプリケーション単位か)を指定するものである。「ユーザー」を指定しておけば、この設定値に関する保存はユーザーごとに行われる。つまり、同じPCを使っているユーザーである田中さんと斉藤さんでは違う設定を保存できるということである。「アプリケーション」はアプリケーション単位であり、ユーザーの区別を行わずに設定が保存される。

 リソース(My.Resources)と設定(My.Settings)を使った簡単なサンプル・コードを以下に示す。

Module Module1
  Sub Main()
    Console.WriteLine("{0} is {1} yen", _
      My.Settings.Name, _
      My.Settings.Price * My.Resources.Tax)
  End Sub
End Modul
リソース(My.Resources)と設定(My.Settings)を使ったサンプル・コード

 これを実行すると以下のような結果を出力する。

地中波デジタル対応テレビ is 13440 yen
上記サンプル・コードの実行結果例

まとめ:手放せない愉悦“My”

 以上のように、ともかく“My”機能は便利である。ショートカットは、IntelliSenseでよく使う機能をリストアップしてくれるので、マニュアルで機能を探し回る頻度が減る。そして、設定(My.Settings)は、レジストリよりもINIファイルよりも手軽な設定保存機能を実現してくれるばかりか、データ型やスコープの指定などの機能も極めて充実している。一度使うと手放せない。これを使うために、Visual Basicへの乗り換えを考えるプログラマも出るのではないかと思うほどである。End of Article


 INDEX
  Visual Basic 2005 ここが便利!
  第1回 “My”はクラスの海からVBプログラマを救う!?
    1.クラスの海でおぼれるな!
  2.INIファイル要らず、“My”機能の超便利!
 
インデックス・ページヘ  「Visual Basic 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