仕事で使っているWebやシステム開発関連の情報を掲載しています。開発に使用するソフトウェアの使用方法やシステム開発に必要な技術的情報。トラブル解決方法等を掲載してるサイトです。VB(VisualBasic)の変数・定数の宣言や使用方法、スコープ(有効範囲)や値型・参照型について解説風に記録しておく。変数名のネーミングに困ったら変数プログラム内で使用するデータを一時的に格納したり、値の受け渡しに使用します。変数を定義し値を代入するとメモリ上に領域を確保して保存されます。変数を使用するには、まず変数名とデータ型から構成される宣言という行為を行います。Dimは、変数用のメモリー領域を確保します。変数宣言時には、データ型を決める必要があります。データ型は変数という箱にどのような形式の値を保存するかで決定します。数字を格納するであればInteger、文字列を格納するのであれば、Stringを選択するのがよいでしょう。その他のデータ型については、「VBが扱えるデータ型」に記載している。値VBの初期値の代入によるデータ型の判別機能により、データ型を判別できます。'Integer型になります。'String型になります。意味が分かる英単語にしましょう。価格であればprice、合計金額を計算するために、一時的に保存する場合は、totalAmountなどにすると良いだろう。変数名の命名規則について変数に代入してみる。変数に、任意の値を格納することを代入といいます。代入には=等の代入演算子を使用します。price.ToString)値型と参照型VBで扱う変数では、メモリ上に直接割り当てられる領域に格納する値型と、データの参照情報が格納されている参照型があります。値型となり、変数の宣言により確保されたメモリ領域に、直接そのデータが記録されます。値型データを扱う宣言すると、データを入れるためのメモリ領域が確保されます。値型は、メモリー上のスタック領域に格納されます。参照型には、String型、Object型(Object型から派生するクラスも含みます。)があり、変数宣言により確保されたメモリ領域にデータが存在するヒープメモリに参照情報(アドレス)が記録されます。参照型データを扱う宣言すると、アドレスを格納するためのメモリ領域が確保されます。定数の宣言プログラムの実行中に変化しない値を定義したい場合使用します。プログラム中に何度も使用するような、消費税率や商品コード等を定数にしておくとよい。変数の初期値にセットしておくことでも同じことができますが、プログラムに書き換えが行われる可能性があるので、読み取り専用の定数を使用したほうが書き換わるリスクがありません。メンテナンスも向上します。変更したい場合は、プログラム中に散在する変数の値を変更するのではなく、定数に設定している値を変更するだけで変更することができます。一般的には、定数の変数名はすべて大文字で定義します。これは他の変数と視覚的に分かりやすくするためです。消費税率が変わるとき定数に定義している値を変更するだけ済む。Sub変数や定数の有効範囲(スコープ)変数や定数は、宣言された場所やアクセス属性(Pvivate、Public、Protected、Friend)の指定によりアクセスできる有効範囲が決まっています。Next、Doようなループ構造やif...thenのような条件判断構造のブロック内で宣言された変数や定数のスコープは宣言されたブロック内になります。プロシージャ(メソッド)内で宣言された変数や定数は、プロシージャ内でのみ有効で、プロシージャの終了とともにメモリから解放されます。'ブロックスコープの変数定義。iモジュールスコープDimまたは、Privateを使って宣言した変数、そのモジュール内のすべてのプロシージャで共通で使用できる。クラスや構造体、モジュール内部のスコープをモジュールスコープと呼びます。プロシージャの外で宣言した変数や定数のスコープは、宣言されたクラスや構造内部で有効なモジュールスコープとなり、内部のすべてのプロシージャ(メソッド)から利用できます。Moduleプロジェクトスコープ(グローバルスコープ)Publicキーワードを使って宣言した変数や定数のスコープは、宣言されたモジュールが含まれるプロジェクト内になり、同一のプロジェクト内のすべてのモジュールから利用できます。このような変数をグローバル変数、または、パブリック変数と呼びます。Moduleプロジェクトに標準モジュール(Module1)を追加し、パブリック変数を定義。ProgramモジュールからModule1の変数Priceにアクセス。アクセス属性プロシージャ、クラス、構造体ではキーワードを付けることでスコープを指定することができます。Public無条件で、あらゆる場所からアクセスができる。Friend同じプロジェクト内からアクセスすることができます。Friendクラス内部。クラスから派生したクラスに同じプロジェクト内からアクセスすることができる。Protectedクラス内部、または浦須から派生したクラスからのみアクセスすることができます。Privateアクセスできるのは、同じプロシージャ、クラスや構造体、標準モジュール内部だけです。変数名のネーミングに困ったら変数名やクラス名、メソッド名、プロパティ名、プロシージャ名、テーブル名、カラム名codicというネーミングがサービスがあるので、活用してみよう。日本語で単語や文章を入力するだけで適切な変数名やクラス名、メソッド名等のネーミング候補を教えてくれます。拡張プラグインを各IDEに組み込むことで、ネーミングエンジンを使用することができます。