15
VB 2005 VB 2005 応用Ⅰ noa】 -1- データ型・変数 VB 2005 基本用語 FormControlObjectPropertyEventMethodModuleProject コントロール ・ツールボックスに標準表示されるコントロール ・ツールボックスのカスタマイズ スコープ(有効範囲) Public スコープ、Protected スコープ、Friend スコープ、Private スコープ データ型 BooleanByteCharDateTimeShortIntegerLongDecimal SingleDoubleStringObject 変数 ・変数の概要 ・変数の名前(命名規則) ・変数の宣言、変数の初期化 ・変数の有効範囲、変数の有効期間 ・変数の内部表現 ・変数への値の代入 ・変数の名前を変更する方法 今回の課題項目 スコープ(有効範囲) データ型(値の種類、値の範囲、直値型、参照型) 変数(命名規則、宣言、初期化、適用範囲、種類、型) 今回の重点項目

データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-1-

データ型・変数

VB 2005 ①

□ 基本用語

・Form、Control、Object、Property、Event、Method、Module、Project 等

□ コントロール

・ツールボックスに標準表示されるコントロール

・ツールボックスのカスタマイズ

□ スコープ(有効範囲)

・Public スコープ、Protected スコープ、Friend スコープ、Private スコープ

□ データ型

・Boolean、Byte、Char、DateTime、Short、Integer、Long、Decimal

・Single、Double、String、Object

□ 変数

・変数の概要

・変数の名前(命名規則)

・変数の宣言、変数の初期化

・変数の有効範囲、変数の有効期間

・変数の内部表現

・変数への値の代入

・変数の名前を変更する方法

今回の課題項目

□ スコープ(有効範囲)

□ データ型(値の種類、値の範囲、直値型、参照型)

□ 変数(命名規則、宣言、初期化、適用範囲、種類、型)

今回の重点項目

Page 2: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-2-

フフォォーームム Visual Basic アプリケーションのウィンドウ註1、又は、ダイアログボック

ス註2と成るウィンドウの事をフォームと謂う。フォームには、コントロー

ルを配置したり、フォームとコントロールに関連したプロパティを設定し

たり、コードを記述したりする。

厳密には、フォームはウィンドウのテンプレート註3と仕て機能し、ウィン

ドウはフォームから作成される。従って、1個のフォームから複数のウィ

ンドウのインスタンス註4を作成する事が出来る。

亦、アプリケーションのウィンドウ、又は、ダイアログボックスと仕て使

用するモジュールをフォームモジュールと謂い、拡張子は frm と成る。

(Form)

ココンントトロローールル フォームに配置して利用出来るソフトウェアコンポーネント註5の事をコン

トロールと謂う。従来の様に、標準コントロールとカスタムコントロール

は、特に区別されず、共に、.NET Frameworks が提供するクラスで有る。

(Control)

オオブブジジェェククトト 物の事を謂い、広義には、様々な物総てが、或る意味ではオブジェクトで

有るが、プログラミングでは、一般に、フォームやコントロール、特定の

アプリケーションのデータ、クラス註6のインスタンスで有るコード註7とデ

ータの集合、値の集合を保持する識別可能な記憶領域等を指す。

Visual Basic のオブジェクトには、フォーム、コントロール等が有り、各オ

ブジェクトは、プロパティ(データ)、メソッド(コード)、イベント(コ

ードを実行する仕組み)を持つ。亦、Visual Basic のオブジェクトは、クラ

スから作られるインスタンスで有る。

(Object)

ププロロパパテティィ オブジェクトが持つ属性の事をプロパティと謂う。プロパティは常にオブ

ジェクトと関連して居り、単独では存在し無い。猶、プロパティは実行コ

ードでも変更出来るが、予め初期値を設定するには、デザイン画面のプロ

パティウィンドウで行う。

(Property)

イイベベンントト Windows のシステムが検知出来る状態変化をイベントと謂う。例えば、マ

ウスのボタンがクリックされたり、キーボードのキーが押されると謂う様

な出来事を謂う。猶、イベントは Windows システムや他のプログラムが生

成(発生)する事も有る。

(Event)

メメソソッッドド オブジェクトに属して居るプログラム部分をメソッドと謂う。従来の Basic

の命令語は戻り値の無いステートメントと戻り値の有る関数に大別される

が、Visual Basic では特定のオブジェクトに作用する命令語をメソッドと仕

て区別する。従って、メソッドの動作は常に特定のオブジェクトに関連し

て居り、此れに反して、ステートメントや関数はオブジェクトに関係無く

機能する。

(Method)

ププロロジジェェククトト 広義には特定の作業全体の事を謂うが、プログラミングでは、開発して居

るプログラム全体の事をプロジェクトと謂う。従って、プロジェクトのフ

ァイルと謂う場合、或るアプリケーションの為のプロジェクトファイルや

プログラムファイルに加えて、データファイルや関連ドキュメントファイ

ル等も含まれる。

(Project)

基基本本用用語語

Page 3: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-3-

モモジジュューールル 独立して独自の機能を果たす様に設計されたプログラムの部分単位をモジ

ュールと謂う。プロジェクトは複数のモジュールから成り立つ。

モジュールには、フォームウィンドウを持つフォームモジュールと、フォ

ームウィンドウを持た無いコードモジュールが有る。イベントプロシージ

ャはフォームモジュール丈が担当し、コードモジュールはユーザーの入出

力と直接関係を持た無い処理丈を扱うモジュールで有る。

(Module)

ププロロシシーージジャャ 独立して機能する一纏まりのコードの事をプロシージャと謂う。Visual

Basic ではサブルーチン註8や関数註9を纏めてプロシージャと呼ぶ。

サブルーチン(Sub プロシージャ)は戻り値の無いプロシージャで有り、

関数(Function プロシージャ)は戻り値の有るプロシージャで有る。

(Procedure)

イイベベンントトドドリリブブンン イベントに対して応答する事をイベントドリブン(イベント駆動)と謂う。

イベントドリブン型プログラミングとは、システムで発生した出来事(イ

ベント)に対して処理を記述するプログラミングの方法で有り、此れに対

して、手順に従い進行する従来の方法を、手順型(手続型)プログラミン

グと謂う。

(Event Driven)

イイベベンントトププロロシシーージジャャ プログラムに関連してWindows上で発生したイベントを処理するプロシー

ジャ(サブルーチン)をイベントプロシージャと謂う。 (Event Procedure)

註1:Window-アプリケーションに於いてユーザーインターフェイスと成る画面の事を謂う。Windows のプログラムは

画面にウィンドウを開いて、様々な作業を行う。C/C++等の言語では、ウィンドウを開く処からプログラムを記述

する必要が有るが、Visual Basic では、ウィンドウを開くプログラムは不要で、エディタを起動すると、自動的に

プログラム用のウィンドウが開く。

註2:Dialog Box-ユーザーに対して情報を表示し、必要に応じてユーザーに選択させたり入力させるウィンドウの事を

謂う。

註3:Template-文書やプログラム等を作成する時の雛型の事を謂う。Visual Basic では、フォームや其他のオブジェク

トをテンプレートと仕て登録し、フォームやコードを再利用する事が出来る。

註4:Instance-同じ物が存在出来る可能性が有る物で、其の時に実際に存在する物をインスタンスと謂う。例えば、同

じ Windows システム上で Visual Basic は幾つでもプログラムを起動出来るが、起動した夫々れが1つのインスタ

ンスで有る。亦、1つのクラスからは幾つものオブジェクトを作成出来るが、夫々れのオブジェクトは互いに関係

無く存在出来るので、夫々れがクラスのインスタンスで有る。

註5:Component-構成要素の事をコンポーネントと謂う。最近は一般的にアプリケーションの規模が大きく成る傾向が

有り、其の為、再利用可能なソフトウェアコンポーネントを利用して目的のソフトウェアを作成するのが普通で有

る。ソフトウェアコンポーネントを略して単にコンポーネントと謂う。

註6:Class-プロパティやメソッド等、オブジェクトの様々な特性を定義する物を謂う。オブジェクトはクラスを一種の

テンプレートと仕て作成する。

註7:Code-プログラムコードの事を謂う。プログラムを作動させる為の記述部分の事で有る。Visual Basic では、コー

ドの編集やデバッグを、コードウィンドウ(コードエディタ、コードエディタウィンドウとも謂う)で行う。

註8:Subroutine-独立して機能するコードブロックの事を謂う。Visual Basic では Sub で始まり End Sub で終わる一

連のコードを指す。但し、広い意味では、関数もサブルーチンと看做す事が有る。

註9:Function-独立して機能するコードブロックの事を謂う。Visual Basic では Function で始まり End Function で終

わる一連のコードを指す。API 関数はC言語の関数の概念に一致して居るので、値を返さ無い関数が有るが、関

数は、元々y=f(x)で表す事の出来る物で有り、変数 x の値の変化に関連して、変数 y が従属的に変化する関係を表

す。プログラミングでは、上記の関係式で、f を関数名、x を引数、y を戻り値と謂う。

Page 4: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-4-

下記の表は、Windowsフォームコントロールをツールボックスの表示に基づいて分類した一覧で有る。

コモン コントロール

Pointer ポインタはコントロールでは無く、フォームや配置して在るコントロールの移動

やサイズ変更を行う物で有る。コントロールを複数選択する事も出来る。

Button ユーザーが選択したコマンドや操作を実行する。選択したボタンは、ボタンが押

し下げられた様に外観が変わる為、プッシュボタンとも謂う。

CheckBox オン(チェック)とオフ(未チェック)の設定を行う。同時に複数選択する事が

出来る。

CheckedListBox 各項目の横にチェックボックスの付いた項目の一覧を表示する。

ComboBox テキストボックスとリストボックスを組み合わせた物で有る。項目は直接入力、

又は、ドロップダウンリストから設定する。

DateTimePicker 日付や時刻の一覧から 1 つの項目を選択出来る様にする。

Label テキストを表示する。此のテキストは、ユーザーが直接入力したり変更する事は

出来ない。

LinkLabel Windows フォームアプリケーションに Web スタイルのリンクを追加出来る。

ListBox 選択肢の一覧を表示し、其のリストの中から1つ、又は、複数の項目を選択する。

ListView Windows エクスプローラと同じ方法で、項目の一覧をアイコンで表示する。

MaskedTextBox ユーザー入力の形式に制約を適用する。

MonthCalendar 解り易いグラフィカルインターフェイスを使用して、ユーザーが日付情報を表

示・設定出来る様にする。

NotifyIcon 他にユーザーインターフェイスを持たないバックグラウンドで動作するプロセス

の為にアイコンを表示する。

NumericUpDown ユーザーが参照して選択出来る数値の一覧を表示する。

PictureBox 画像を表示する。テキストを表示したり、内部に他のコントロールを配置してコ

ンテナにする事も出来る。

ProgressBar 処理の進行状況をグラフィカルに表示する。

RadioButton 複数の項目から1つを選択する。複数のラジオボタンを1グループと仕て使用す

る。

RichTextBox ユーザーがテキストを書式付きで入力、表示、操作出来る様にする。

TextBox テキストの入力や表示を行う。キャレットの移動や文字の削除等の入力に必要な

機能を備えて居る。

ToolTip ユーザーが他のコントロールをポイントした時にテキストを表示する。

TreeView 展開や折り畳みが可能なノードの階層を表示する。

WebBrowser Web ページをホストし、インターネット Web ブラウズ機能をアプリケーションに

追加する。

コンテナ

FlowLayoutPanel 内容を水平や垂直のフロー方向に配置する。コントロールの内容は、或る行から

次の行、又は、或る列から次の列に折り返す事が出来る。内容を折り返さずにク

リップする事も出来る。

GroupBox 外観を整えたり、他の幾つかのコントロールを識別出来る様グループ化する。

Panel 他の幾つかのコントロールを識別出来る様グループ化し、スクロール出来る様に

する。

ココンントトロローールル

Page 5: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-5-

SplitContainer ドッキングされたコントロールのサイズをユーザーが変更出来る様にする。

TabControl 画像や其他のコントロールを含む事が出来る複数のタブを表示する。

TableLayoutPanel 内容をグリッドに配置する。レイアウトは、デザイン時と実行時の両方に実行さ

れる為、アプリケーション環境の変化に合わせて動的に変更出来る。此れに依り

パネル内のコントロールが適切にサイズ変更出来、親コントロールのサイズ変更

や、ローカリゼーションに伴うテキスト長の変更に対応出来る。

メニューとツールバー

ContextMenuStrip 選択したオブジェクトに関連付けられたコマンドの内、頻繁に使用されるコマン

ドを簡単に実行する為のメニューを提供する。

MenuStrip 実行時にメニューを表示する。

StatusStrip フォームで表示されて居るオブジェクト、其のオブジェクトのコンポーネント、

又は、其のオブジェクトの操作に関連する文脈情報に付いての情報を、アプリケ

ーション内に表示する。

ToolStrip Windows フォームアプリケーションにカスタムツールバーとメニューを作成出来

る。

ToolStripContainer ToolStrip コントロールは、ToolStripContainer を使用する事で、ビルトインラフ

ティング(ドッキング時にツール領域内の水平スペースと垂直スペースを共有す

る事)を実現する。

データ

DataSet データのメモリ内キャッシュを表す。

DataGridView ユーザーインターフェイスを ADO.NET データセットに提供し、データを表形式

で表示して、データソースを更新出来る様にする。

BindingSource フォームのデータソースをカプセル化する。

BindingNavigator フォーム上に有るデータにバインドされたコントロールの移動と操作用ユーザー

インターフェイスを表す。

ReportViewer アプリケーションでレポートを処理、及び、表示する目的で提供されて居る。

コンポーネント

BackgroundWorker アプリケーションのメインの UI スレッドとは別のスレッドを使用して、時間の懸

かる操作をバックグラウンドで実行出来る様にする。

DirectoryEntry ディレクトリ階層のノードやオブジェクトをカプセル化する。

DirectorySearcher アクティブなディレクトリに対してクエリを実行する。

ErrorProvider 処理を中断せずに、ユーザーにエラー情報を表示する。

EventLog Windows のイベントログとの対話を実現する。

FileSystemWatcher システム上やネットワークアクセス可能な任意のコンピュータ上のディレクトリ

内やファイル内で発生するアクションを簡単に監視出来る。

HelpProvider HTML ヘルプファイルを Windows ベースのアプリケーションに関連付ける。

ImageList 他のコントロール上にイメージを表示する。

MessageQueue 極く僅かなコードを記述する丈で、既存のキューに接続し、メッセージを送受信

し、アプリケーションに通信サービスを追加する事が出来る。

PerformanceCounter アプリケーション、サービス、及び、ドライバに依り提供されるパフォーマンス

データを、アプリケーションやコンポーネントから発行したり、取り込んだり、

分析したりする事が出来る。

Process 殆どの Windows プロセスタスクを表示して管理出来る。此等のタスクには、プロ

セスの開始と停止、及び、プロセスのプロパティ情報(メモリやスレッドの使用

状況)の取得が含まれる。

SerialPort シリアルポートのリソースを表す。

ServiceController 既存サービスに接続したり、既存サービスの動作を制御出来る。

Page 6: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-6-

Timer 一定の時間間隔毎にイベントを発生させる。此のコントロールは、実行時に表示

され無い為、バックグラウンド処理を実行する時に役立つ。

印刷

PageSetupDialog 定義済みのダイアログボックスを使用してページ設定を行う。

PrintDialog プリンタを選択し、印刷するページを指定し、其他の印刷設定を行う。

PrintDocument Windows ベースのアプリケーションの中で、印刷対象を定義するプロパティを設

定してから印刷を行う。

PrintPreviewControl 定義済みのバージョンの代わりに、独自の PrintPreview コンポーネントやダイア

ログボックスを作成出来る様する。

PrintPreviewDialog 印刷された時の状態でドキュメントを表示する。

ダイアログ

ColorDialog ユーザーは、定義済みダイアログボックスのパレットで色を選択したり、パレッ

トに色を追加したり出来る。

FolderBrowserDialog ユーザーがディレクトリを参照して選択したり新規ディレクトリを作成したり出

来るインターフェイスを表示する。

FontDialog システムに現在インストールされているフォントを公開する。

OpenFileDialog ユーザーが定義済みダイアログボックスでファイルを開く事が出来る様にする。

SaveFileDialog 保存するファイルと其の保存先を選択する。

Crystal Report

CrystalReportViewer レポートのバインドや表示に使用する。

ReportDocument レポートを表す。レポートを定義、書式設定、ロード、エクスポート、及び、印

刷するプロパティとメソッドが含まれる。

Visual Basic Power Packs 2.0

PrintForm 実行時に Windows フォームのイメージを印刷出来る。

LineShape フォーム内で直線を引く時に使用する。デザイン時にレイアウト等を確認出来る

利点が有る。

OvalShape フォーム内で楕円、円を描画する時に使用する。デザイン時にレイアウト等を確

認出来る利点が有る。

RectangleShape フォーム内で長方形、正方形を描画する時に使用する。デザイン時にレイアウト

等を確認出来る利点が有る。

其他

DomainUpDown ユーザーが参照して選択出来るテキスト文字列の一覧を表示する。

HScrollBar 水平方向のスクロールバーを表示する。項目数の多いリストや大量の情報を表示

する場合に、現在の位置の表示や設定をする為に使用する。

VScrollBar 垂直方向のスクロールバーを表示する。項目数の多いリストや大量の情報を表示

する場合に、現在の位置の表示や設定をする為に使用する。

TrackBar 大量の情報内を移動する場合や、数値設定を視覚的に調整する場合等に使用する。

スライダコントロールとも呼ばれる。

以前のバージョンとの下位互換性の為のコントロール

MainMenu フォームのメニュー構造を表す。

StatusBar フォーカスを持つコントロールに関連するステータス情報を表示する。

ToolBar コマンドをアクティブにするメニューとビットマップ付きボタンを表示する。

ContextMenu 選択したオブジェクトに関連付けられたコマンドの内、頻繁に使用されるコマン

ドを簡単に実行する為のメニューを提供する。

DataGrid データセット内のデータを表形式で表示し、データソースを更新出来る様にする。

※ 上記以外にも、.NET Frameworks には、色々なWindows フォームコントロールが用意されて居る。

Page 7: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-7-

■ ツールボックスのカスタマイズ ■

既定で、ツールボックスに、多くのコントロールが表示されるが、個々のコントロールの表示・非表示

は、カスタマイズする事が出来る。ツールボックスに表示されて居ないコントロールを使用する場合、

下記の手順で、ツールボックスにコントロールを追加する。

1.ツールボックスの任意のセクションで右クリックして、表示されるポップアップメニューで『アイ

テムの選択』をクリックする。

2.表示される『ツールボックスアイテムの選択』ダイアログボックスで、ツールボックスに追加する

コントロールにチェックを付けて、『OK』ボタンをクリックする。猶、コントロールをツールボッ

クスから削除するには、チェックを外し、『OK』ボタンをクリックすると良い。

猶、ActiveX コントロールは、COM コンポーネントと仕て、従来通り使用する事が出来るが、機能は

必ずしも同一では無いので、注意を要する。

Page 8: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-8-

スコープ(Scope)とは、有効範囲の事を謂い、アクセス可能な範囲を示す。プロシージャや変数には

必ずスコープと謂う概念が付帯する。スコープには、キーワードに依り宣言したスコープと、記述され

た場所に依り発生するスコープとが有る。

■ キーワードに依るスコープ ■

■ Public キーワード

Public キーワードで宣言されたプロシージャや変数は、アクセス制限が無い。

■ Protected キーワード

Protected キーワードで宣言されたプロシージャや変数は、宣言されたクラス内からアクセスする事

が出来る(Protected 宣言はクラス内で而巳有効)。

■ Friend キーワード

Friend キーワードで宣言されたプロシージャや変数は、宣言されたプログラム内からアクセスする

事が出来る。

■ Private キーワード

Private キーワードで宣言されたプロシージャや変数は、宣言されたクラスやモジュール内からアク

セスする事が出来る。

■ 記述された場所に依り発生するスコープ ■

■ プロシージャ内のブロック内で宣言

プロシージャ内のブロック(With、If、For 等のステートメントブロック)内で宣言された変数は、

宣言されたブロック内からアクセスする事が出来る。

■ プロシージャ内で宣言

プロシージャ(Sub、Function 等のプロシージャ)内で宣言された変数は、宣言されたプロシージ

ャ内からアクセスする事が出来る。

■ プロシージャ外で宣言

プロシージャ外(General の Declaration 部分)で宣言された変数は、宣言されたモジュールやクラ

ス内からアクセスする事が出来る。

ススココーーププ

Page 9: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-9-

データ型(Data Type)とは、コンピュータで扱うデータの形式を謂う。コンピュータでデータと仕て

扱う数値や文字列の様な情報には、其の性質上、画一的に扱う事が出来ない物が有る為、コンピュータ

では、此の様な性質が異なるデータを幾つかの型に分類して、論理的に扱う。

■ データ型の種類 ■

■ Boolean 型(ブール型)

真偽値を格納(2 バイト) 真(True)または偽(False) ■ Byte 型(バイト型)… 符号有りの型は SByte 型

バイナリデータを格納(1 バイト) 0~255 ■ Char 型(キャラクタ型)

文字データを格納(2 バイト) 0~65,535 ■ DateTime 型(日付型)

日付や時刻を格納(8 バイト) 西暦 1 年 1 月 1 日~9999 年 12 月 31 日 ■ Short 型(短整数型)… 型文字 S、符号無しの型は UShort 型

符号付き整数を格納(2 バイト) -32,768~32,767 ■ Integer 型(整数型)… 型文字 I( % )、符号無しの型は UInteger 型

符号付き整数を格納(4 バイト) -2,147,483,648~2,147,483,647 ■ Long 型(長整数型)… 型文字 L( & )、符号無しの型は ULong 型

符号付き整数を格納(8 バイト) -9,223,372,036,854,775,808~9,223,372,036,854,775,807 ■ Decimal 型(10進型)… 型文字 D

符号付き整数を格納(16 バイト) -7.9E+28~7.9E+28(概数) ■ Single 型(単精度浮動小数点数型)… 型文字 F( ! )

符号付き実数を格納(4 バイト) -3.4028235E+38~3.4028235E+38(概数) ■ Double 型(倍精度浮動小数点数型)… 型文字 R( # )

符号付き実数を格納(8 バイト) -1.79E+308~1.79E+308(概数) ■ String 型(文字列型)… 型文字$

文字列を格納(0 ~ 2G バイト) 0~65,535(Unicode 文字に対応) ■ Object 型(オブジェクト型)

オブジェクトの参照を格納(4 バイト) 0~&HFFFFFFFF(アドレス)

デデーータタ型型

データ型とは、入れて置くデータの種類に応じて用意する箱の種類と考えると良い。液体を入れる

のにダンボールの箱を用意したり、帽子を入れるのにコンテナを用意したりすると、不都合や無駄

が生じる。其の為に、中に入れる物に合わせた容器を用意する事が必要とされる。

Page 10: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-10-

■ 変数(Variable)の概要 ■

変数とは、プログラムの実行中に変更出来る特定の型のデー

タを入れる名前付きの場所を謂う。通常、適切な名前を付け

て宣言し、数値、文字列、其他のデータを代入(格納)した

り演算に使用する。

コンピュータのメモリ(記憶装置)は、夫々の場所を示すア

ドレス(番地)が割り当てられて居る。アドレスは、実装さ

れたメモリ空間の特定の場所を指し示す数値で有り、メモリ

に記憶(保存)されたデータは、其のアドレスに依り参照さ

れる。

併し、BASIC 等の高級言語では、データの記憶場所と変数名

が自動的に関連付けられる為、データが記憶されたアドレス

を覚えて置く必要は無く、データを、其の内容を連想し易い

名前で参照する事が出来る。

■ 変数の名前 ■

変数名の付け方に特に決まりは無いが、入力間違いの無い様に簡潔で、且つ、内容の解る様な名前が望

ましい。亦、変数名は、下記に示す条件を満たす必要が有る。

・変数名の先頭の文字は、アルファベット、2 バイト文字、アンダースコアで無ければ成らない。

・変数名は、半角で 1023 文字以内で無ければ成らない(完全修飾名の文字列全体にも適用)。

・変数名には、アルファベット、2 バイト文字、10 進数、アンダースコア以外の文字を含まない。

・同じ適用範囲(スコープ)内で、同じ変数名を複数使用出来ない。

変数名の先頭の文字には、アンダースコアを使用する事が出来るが、アンダースコアで始まる名前は 共

通言語仕様(CLS)に準拠しないので、注意され度い。

変数名には、予約キーワードと同じ名前を付ける事が出来る。但し、予約キーワードと区別する為に、

下記の様に、ブラケット([ ])で囲む必要が有る。此れを、エスケープされた名前と謂う。

Dim [String] As String

[String] = "文字列"

変変数数

メモリ空間

00000000

00000001

00000002

00000003

000000004

FFFFFFFB

FFFFFFFC

FFFFFFFD

FFFFFFFE

FFFFFFFF

アドレス

Score

変数名

此の名前でメモリが

参照出来る

変数とは、データを入れて置く為の箱の様な物で、其の箱を区別する為に、内容が解り易い名前(変

数名)を付けて居ると考えると良い。

変数名には、2 バイト文字(日本語等)も使用する事が出来るが、基本的に、1 バイト文字(半角

文字)のアルファベットと数字で構成する事が望ましい。

止むを得ない場合以外、此の様な使用法は、推奨しない!

Page 11: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-11-

■ 変数の宣言 ■

Visual Basic では、必ずしも明示的に変数を宣言する必要は無く、Option Explicit が Off の場合、コー

ド内で未だ使用されて居ない名前の変数を使用すると、新たに其の名前の変数が自動的に作成される。

併し、デバッグ作業を容易にする為にも、変数は明示的に宣言する事が望ましい。

■ Dim ステートメントの構文

スコープ Dim 変数名 As データ型

■ 同一データ型変数の一括宣言

スコープ Dim 変数名, 変数名, 変数名 As データ型

■ 異なるデータ型変数の一括宣言

スコープ Dim 変数名 As データ型, 変数名 As データ型, 変数名 As データ型

■ As 句に依るデータ型指定の省略(Option Strict が Off の場合)

データ型の記述を省略した場合、Object 型を指定した事に成る。オブジェクト型には、数値、文字

列、日付、時刻等、総ての基本データ型を格納する事が出来る。此等の型のデータをオブジェクト

型の変数に代入する時は、データ型の変換を行う必要は無く、自動的に型変換が行われる。併し、

オブジェクト型の変数はデータを格納する為に最低でも 16 バイトの領域を使用する為、変数に格納

するデータの型が事前に判明して居る場合は、変数のデータ型を宣言して置く方が効率の良い処理

が行なわれる。

■ 静的変数の宣言(プロシージャ内で而巳使用可能)

Static 変数名 As データ型[, 変数名 As データ型 …]

■ 変数の初期化 ■

■ 変数の宣言と値の代入を別々に行う(従来の初期化)

スコープ Dim 変数名 As データ型

変数名 = 値

■ 変数の宣言と初期化を同時に行う

スコープ Dim 変数名 As データ型 = 値

スコープキーワードを付けて有効範囲を明示して変数の宣言を行う場合は Dim ステートメントを

省略する事が出来る。此の場合、IDE(Integrated Development Environment:統合開発環境)

で Dim ステートメントを記述しても、自動的に削除される。

変数の宣言の強制 Option Explicit は、従来のバージョンでは Off が初期値とされて居たが、現在

のバージョンでは On が初期値に変更されて居る。其の為、プロジェクトのプロパティで共通・ビ

ルトの項目でコンパイラの規定値を変更しない限り、変数の宣言は必ず行う必要が有る。

Page 12: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-12-

■ 変数の有効範囲 ■

変数の適用範囲(スコープ)は、其の宣言方法に依り異なる。適用範囲が異なる場合、同じ名前の変数

を使用する事も出来る。

■ プロシージャ内のブロック内で宣言

プロシージャ内のブロック(With、If、For 等のステートメントブロック)内で宣言された変数は、宣言されたブロック内で而巳有効と成る。

■ プロシージャ内で宣言

プロシージャ(Sub、Function 等のプロシージャ)内で宣言された変数は、宣言されたプロシージャ内で而巳有効と成る。

■ プロシージャ外で Private キーワードを付けて宣言

プロシージャ外(モジュールブロックやクラスブロックの Declaration 部分)で Private 宣言された変数は、宣言されたモジュールやクラス内で而巳有効と成る。

■ プロシージャ外で Protected キーワードを付けて宣言

プロシージャ外(クラスブロックの Declaration 部分)で Protected 宣言された変数は、宣言されたクラス内で而巳有効と成る。

■ プロシージャ外で Friend キーワードを付けて宣言

プロシージャ外(モジュールブロックやクラスブロックの Declaration 部分)で Friend 宣言された変数は、宣言されたプログラム全体で有効と成る。

■ プロシージャ外で Public キーワードを付けて宣言

プロシージャ外(モジュールブロックやクラスブロックの Declaration 部分)で Public 宣言された変数は、有効範囲に制約が無い(何処からでも参照可能)。

■ 変数の有効期間 ■

■ プロシージャ内のブロック内で宣言

プロシージャ内のブロック(With、If、For 等のステートメントブロック)内で宣言された変数の有効期間は、当該ステートメントブロックの実行が終了する迄で有る。

■ プロシージャ内で宣言

プロシージャ(Sub、Function 等のプロシージャ)内で宣言された変数の有効期間は、当該プロシージャの実行が終了する迄で有る(Static 宣言の場合は、当該プログラムの実行が終了する迄)。

■ モジュールレベルで宣言

モジュールレベル(モジュールブロックの Declaration 部分)で宣言された変数の有効期間は、当該プログラムの実行が終了する迄で有る。

■ クラスレベルで宣言

クラスレベル(クラスブロックの Declaration 部分)で宣言された変数の有効期間は、当該クラスのインスタンスが破棄される迄で有る。

Page 13: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-13-

■ 変数の内部表現 ■

変数の主なデータ型には、文字列型、整数型、浮動小数点数型が有る。此処では、夫々れの内部表現に

付いて説明する。

■ 文字列型

此れは、4 バイトで表現され、順に、文字列長、リロケーションコード、文字列のオフセットアドレス

(下位、上位)と成って居り、文字列は、アスキーコードで格納されて居る。

文字列型変数 "ASCII"

05 00 F047

47F0

41 53 43 49 49 05

A S C I I 長さ

猶、リロケーションコードは、00、02、04H の 3 通りで、夫々れ、下記の様に、格納場所を示す。

リロケーションコード 格納場所

00 シンボルテーブルセグメント

02 テキストセグメント

04 I/O ファイルバッファ

■ 整数型

此れは、Integer 型の場合、32 ビットに依る 2 の補数表現で、-2,147,483,648 ~ 2,147,483,647 の数

を表す。

整数型変数 1000

E8 03 00 00

1000 = 3E8H

■ 浮動小数点数

此れは、単精度の場合 4 バイト、倍精度の場合 8 バイトを使用し、其等は、孰れも最後の 1 バイトで指

数部を、残りのバイトで仮数部の小数部を表す。此れは、仮数部の整数部は、表そうとする数が 0 でな

い限り、常に正規化して 1 に調整出来る為で有る。仮数部は、最後のバイトの最上位ビットを符号ビッ

トとし、下位の方のバイトから上位の方のバイトへと並んで居る。亦、指数部は、実際の値に 81H を

加えた値で記憶され、指数部が 00H の場合は、仮数部の値に関り無く 0 を表す物と看做される。

単精度浮動小数点数型変数 6.3

9A 99 49 83

6.3 ≒ 21 × 1.1001001 10011001 10011010

83H 49H 99H 9AH

10 進数の 0.5 を 2 進数で表す場合、(0.1)2*20、(0.01)2*21

等、幾通りも有る。表し方を統一する為、仮数の整数部が

1 に成る様に桁合わせを行う事を、正規化と謂う。猶、メ

モリ上では、仮数の整数部の 1 を省略して、小数部而巳を

絶対値で表す。

Page 14: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-14-

■ 単精度浮動小数点数表現を 10 進数に変換

メモリ上の単精度浮動小数点数表現を 10 進数に変換する方法は、下記の通りで有る。

1 バイト目 2 バイト目 3 バイト目 4 バイト目

00000000 00000000 11110000 1000000 メモリ上の表現

下位 8 ビット 中位 8 ビット 上位 8 ビット 指数 8 ビット

10000000 1 1110000 00000000 00000000

仮数部の絶対値 = ( 0.11100000000000000000000 + 1.0 )2

= ( 1.111 )2

= 1 * 20 + 1 * 2-1 + 1 * 2-2 + 1 * 2-3

= 1 + 0.5 + 0.25 + 0.125 = 1.875

指数値 = ( 10000000 )2 - 129 = 128 - 129 = -1

符号ビットは 1 なので、仮数部は、負の値と成り、上記の例のメモリ上の値は、下記の様に成る。

- ( 1.111 )2 * 2128 - 129 = -1.875 * 2-1 –1.875 * 0.5 = -0.9375

■ 10 進数を単精度浮動小数点数表現に変換

10 進数をメモリ上の単精度浮動小数点数表現に変換する方法は、下記の通りで有る。

例えば、-0.75 は、2 進数で、下記の様に表現される。

-0.75 = -( 0.5 + 0.25 ) = -( 0.11 )2 * 20 = -( 1.1 )2 * 2-1

従って、仮数部の絶対値と指数値は、下記の様に成る。

仮数部の絶対値 = ( 0.10000000000000000000000 + 1.0 )2

指数値 = -1 + 129 = 128 = ( 10000000 )2

亦、負の値なので、符号ビットは 1 と成り、下記の様に表す事が出来る。

10000000 1 1000000 00000000 00000000

従って、メモリ上の表現は、下記の通りで有る。

1 バイト目 2 バイト目 3 バイト目 4 バイト目

00000000 00000000 11000000 1000000 メモリ上の表現

下位 8 ビット 中位 8 ビット 上位 8 ビット 指数 8 ビット

指数 仮数の絶対値 符号ビット

Page 15: データ型・変数 - xdomainjunko036.html.xdomain.jp/pdf/advance/vb01.pdf · VB 2005 ① 【VB 2005 応用Ⅰ noa】 -2- フォーム Visual Basicアプリケーションのウィンドウ註1、又は、ダイアログボック

VB 2005 ① 【VB 2005 応用Ⅰ noa】

-15-

■ 変数への値の代入 ■

下記の様な式を代入文と呼ぶ。此処で使用して居るイコール( = )は、数学の等号の様に左辺と右辺

が等しいと謂う意味では無く、右辺の計算式の値を左辺の変数等に代入すると謂う意味で有る。

X = 10

= 10

A = X + Y

= +

此の代入文の右辺には数値、変数、式を記述する事が出来るが、右辺には1個の変数、又は、オブジェ

クトのプロパティしか記述する事が出来ない。例えば、X + Y = A と謂う様な記述は出来ない。

■ 変数の名前を変更する方法 ■

Visual Studio 統合開発環境(IDE)では、コードを分析し、スコープ情報を使用して、識別子の名前を

簡単に変更出来る。此れを使用すると、検索と置換に比べて、名前の変更を適切に制御出来る。

例えば、Proc1 と Proc2 と謂う 2 つのプロシージャを定義して居るクラスが有り、各プロシージャで

Value と謂う名前の変数を定義して居るとする。Proc1 の Value 変数の名前を Counter に変更すると

Proc1 のコードの中で Value を参照して居る総ての部分が Counter を参照する様に更新される。一方

Proc2 のコードは変更されない。

■ 変数の任意のインスタンスから名前を変更

1.変数を右クリックする。

2.ショートカットメニューの [名前の変更] をクリックし、[名前の変更]ダイアログボックスを開く。

3.[新しい名前] ボックスの名前を、変数の新しい名前に変更する。

4.[OK] をクリックして、其の変数を参照する総ての名前を変更する。

■ 変数の宣言から名前を変更

1.変数名を宣言して居る部分を選択する(反転状態にする)。

2.変数の名前を変更する(反転状態で入力する)。

3.名前を変更すると、名前の右下にシンボル(茶色の四角形)が表示される。

4.シンボルの上にマウスポインタを置き、スマートタグをアクティブにする。

5.スマートタググリフ(下向き三角形)をクリックし、パネルを開く。

6.[名前の変更] パネル項目を選択し、同じ変数に対する其他の参照の名前を変更する。

10

20

左辺の値(10+20)を代入