アクション クエリー

データの移動や変更を行うクエリーです。アクション クエリーには、追加クエリー、削除クエリー、テーブル作成クエリー、更新クエリーがあります。削除クエリーと更新クエリーは既存データを変更し、テーブル作成クエリーは既存データを移動させます。これに対し、選択クエリーはデータ レコードを返します。SQL パススルー クエリーも、アクション クエリーのひとつです。


アクション クエリー用の QueryDef オブジェクト

アクション クエリーを定義できるデータ アクセス オブジェクトです。QueryDef オブジェクトに対するアクション クエリーの実行は、Execute メソッドでのみ行えます。このオブジェクトは、行を返すのではなく、データの定義、移動、変更を行います。


集合関数

カウント (Count)、平均 (Avg)、分散 (Var) などの関数です。合計を計算するようなクエリーの作成に使われます。式やプログラムの記述で SQL の集合関数 (上記 3 つの関数を含む) と定義域集合関数を使うと、さまざまな統計結果を取得できます。


エイリアス

Visual Basic では、外部プロシージャに与える別名です。Visual Basic のキーワード、外部変数、定数、標準名前付け規則では認められていない名前とのコンフリクトを避けるために使われます。

SQL では、SELECT ステートメントで (AS 句を使って) フィールド名や式に与えた別名のことをいいます。名前を短くしたい場合、または意味の分かりやすい名前にしたい場合に使います。また、名前を返さない式を使う SQL クエリーの実行や、自己結合を使っているクエリーでコンフリクトを避けるためにも使います。


追加クエリー

既存のテーブルやクエリーの最後に新規レコードを追加するアクション クエリーです。追加クエリーはレコード (列) を返しません。


アスタリスク

SQL の LIKE 式で、任意の文字列を取得するためのワイルドカードとして使う文字 (*) です。たとえば、LIKE "*town*" という式は、"town" という文字列を含むあらゆる名前を取得します。

クエリーの作成または SQL ステートメントの入力を行う場合、基となるテーブルやクエリーにあるすべてのフィールドを表すには、アスタリスクを使ってください。たとえば、SELECT * FROM MyTable と入力すると、このテーブル内のすべてのフィールド (列) を取得できます。


アタッチ テーブル

他のデータベース内にある、Microsoft Jet データベースにリンクしているテーブルです。アタッチ テーブルのデータは、他のアプリケーションで操作されるような外部データベースに置かれたまま使われます。アタッチ テーブルにテーブル タイプの Recordset オブジェクトを使うことはできません。


ベース テーブル

Microsoft Jet データベース内のテーブルです。ベース テーブルの構造は、データ アクセス オブジェクトやデータ定義の SQL ステートメントを使って操作できます。また、ベース テーブルのデータは、Recordset オブジェクトやアクション クエリーを使って変更できます。


ブックマーク

システムが生成する文字列です。Recordset オブジェクトの Bookmark プロパティに格納され、カレント レコードの識別に使われます。Bookmark プロパティの値を文字列変数に代入して別のレコードに移動すると、代入した文字列変数の値を Bookmark プロパティに代入するだけでそのレコードを再びカレント レコードにできます。Bookmark プロパティの設定は、複製された Recordset オブジェクトと複製元の Recordset オブジェクトとの間で共有できます。


ブール型 (Boolean)

真 (True) または偽 (False) の値、つまり yes または no の値です。ブール型の値は通常、Microsoft Jet データベースでは、ビット フィールド (Bit) に保存されます。ただし、このデータ型はデータベースの種類によっては直接サポートされていない場合もあります。


バイト型 (Byte)

0 ～ 255 の範囲の正の整数値を格納する基本データ型です。


連結コントロール

データ (Data) コントロールに連結可能なコントロールです。データ コントロールを介してデータベース内の特定のフィールドにアクセスできます。連結コントロールは、そのコントロールの DataSource プロパティおよび DataField プロパティを設定することでデータ コントロールに連結されます。データ コントロールを使ってレコード間を移動すると、データ コントロールに連結されているすべてのコントロールの表示が、カレント レコードのフィールドから得たデータに変更されます。ユーザーが連結コントロールの中でデータを変更してから別のレコードに移動すると、その変更は自動的にデータベースに保存されます。


直積集合

2 つのリレーショナル テーブルを結合した結果です。1 番めのテーブルの行と 2 番めのテーブルの行のすべての可能な組み合わせを順番に並べて生成されます。

一般的に、直積集合は、SQL の SELECT ステートメントの FROM 句で複数のテーブルへの参照を指定し、WHERE 句や JOIN 句 (テーブルの結合方法を示す) を指定しないで実行すると得られます。


連鎖削除

テーブル間の参照整合性が保たれているリレーションに対して設定できるオプションです。このオプションを設定すると、主テーブルからレコードが削除された場合、外部キー側のテーブルの対応するレコードもすべて自動的に削除されます。このとき、外部キー側のテーブルが複数のこともあります

たとえば、得意先テーブル (主テーブル) と注文テーブル (外部キー側のテーブル) の間に、連鎖削除のオプションを有効にしてリレーションを確立したとします。得意先テーブルのレコードを削除すると、削除した得意先に関するすべての注文が外部の注文テーブルから削除されます。


連鎖更新

テーブル間の参照整合性を有効にしてあるリレーションに対して設定できるオプションです。このオプションを設定すると、主テーブルにあるレコードの主キーを変更した場合、外部キー側のテーブルの対応するレコードの外部キーもすべて自動的に更新されます。このとき、外部キー側のテーブルが複数のこともあります。

たとえば、得意先テーブル (主テーブル) と注文テーブル (外部キー側のテーブル) の間に、連鎖更新のオプションを有効にしてリレーションを確立したとします。得意先テーブルにあるレコードの主キーが変更されると、外部の注文テーブルでその得意先に関するすべての注文も変更されます。


連鎖

1 つの操作が他の操作を誘発するような作用です。たとえば、連鎖更新リレーションが複数のテーブルの間に定義されている場合、主テーブルの主キーを変更すると、外部キー側のテーブルへの変更が自動的に誘発され、連鎖的に更新が行われます。


大文字小文字の区別

アルファベットの大文字と小文字を別の文字と見なします。大文字小文字を区別する検索では、大文字小文字まで厳密に一致するテキストしか検索されません。たとえば、“ZeroLengthStr”と“zerolengthstr”は違うテキストと見なされます。Microsoft Jet データベースの操作では、大文字小文字は区別されません。ただし、その他のデータベース管理システムの中には大文字小文字が区別されるものもあります。


列

リレーショナル データベースでの列は、非リレーショナル データベースでのフィールドと同じ意味です。列は、データの行 (レコード) の 1 つのフィールドのデータ型、サイズ、その他の属性を定義します。すべての列を集めると、データベースでの行 (レコード) の定義の集まりとみなせます。個々の列には、テーブル内全体で使われる型や使用目的などのデータが含まれています。列の定義は行によって変わることはありません。


コミット

ペンディング状態なっているトランザクションの結果を保存することです。トランザクションの処理中に、データにアクセスするトランザクションが開始されると、トランザクションで行われた変更はそのトランザクションをコミットするまで、つまり変更を保存するまでデータベースに書き込まれません。


一貫性

複数のテーブルを基に作成された Recordset オブジェクトに対して、データの一貫性を保持できる変更しか許さない状態を一貫性を保つといいます。たとえば、一対多リレーションで複数のテーブルを結合して作成された Recordset オブジェクトに対して、一貫性を保つクエリーを実行する場合、“多”側のキーの値を“一”側のテーブルにない値に変更することはできません。


コピー バッファ

Microsoft Jet データベース エンジンが作成する領域で、編集するために開かれたレコードの内容が格納されます。Edit メソッドを使うと、カレント レコードがコピー バッファにコピーされます。AddNew メソッドを使うと、コピー バッファの内容は新規レコードを格納するために消去され、既定値が設定されます。Update メソッドを使うと、コピー バッファのデータがデータベースに保存され、カレント レコードに上書きされたり新規レコードとして挿入されたりします。カレント レコードへのポインタの再設定または移動を行うステートメントが実行されると、必ずコピー バッファの内容は廃棄されます。たとえば、MoveNext メソッドを使ったりテーブルの Index プロパティを変更したりすると、コピー バッファの内容は廃棄されます。


カウンタ

フィールドの Attribute プロパティの dbAutoIncrement オプションのビットがオンになっているテーブルが持つ長整数型 (Long) のフィールドです。カウンタ フィールドの値は、テーブルに新規レコードが追加される度に自動的に 1 ずつ増加します。カウンタ フィールドは、ユーザーが更新するフィールドではありません。


接続文字列

外部データベースのデータ ソースの定義に使う文字列です。接続文字列は通常、QueryDef オブジェクトまたはデータ (Data) コントロールの Connect プロパティに代入されたり、引数として OpenDatabase メソッドに渡されたりします。


カウンタ フィールド

順番につながった各レコードの同じフィールドに、順次連続した番号を割り当てるフィールドです。カウンタ フィールドには、必ず長整数型 (Long) が使われます。


抽出条件

条件を制限するための設定です。= "Denmark" (Denmark と等しいという意味) や > 30000 のような形で設定され、レコードの特定の集まりだけを表示するようなクエリーやフィルタの作成に使われます。


クロス集計クエリー

行見出しと列見出しに指定したフィールドを使って、ワークシート形式でデータを返すクエリーで、合計データを返すことができます。


通貨型 (Currency)

金額を扱う計算や、正確さが要求されるような固定少数点数で行う計算に役立つデータ型です。このデータ型には、整数部分が 11 桁まで、小数点以下 4 桁までの数値が格納されます。Visual Basic での型宣言文字は @ です。通貨型では、すべての量に離散値が使われているので、合計を計算する場合にバイナリの丸めによる切り捨てを気にする必要はありません。


カレント データベース

CurrentDB( ) 関数で返される Database オブジェクトです。DBEngine.Workspaces(0).Databases(0) の参照は、最初に開かれたデータベースを返します。ただし、Microsoft Jet データベース エンジンのクライアントが“カレント データベース”の概念をサポートしていない場合もあります。Visual Basic Version 4.0 では、この概念はサポートされていません。


カレント インデックス

インデックス付きのテーブル タイプの Recordset オブジェクトの Index プロパティに一番最後に設定されたインデックスです。このインデックスは、テーブル タイプの Recordset オブジェクトでのレコードの順番を決めるもので、Seek メソッドでレコードの場所を探す場合にも使われます。1 つの Recordset オブジェクトには複数のインデックスを持たせることもできます。TableDef オブジェクトには複数のインデックスを定義できますが、同時に使えるインデックスは 1 つだけです。Microsoft Jet データベース エンジンは、複数のインデックスを使ってクエリーを評価することができます。


カレント レコード

Recordset オブジェクトにあるレコードの中の、データを変更したり見たりできるレコードです。レコードセット内でカレント レコードの位置を変えるには、Movexxx メソッドを使います。特定の抽出条件に従ってカレント レコードの位置を変更するには、Findxxx メソッド (ダイナセット タイプおよびスナップショット タイプの Recordset オブジェクトの場合) または Seek メソッド (テーブル タイプの Recordset オブジェクトの場合) を使ってください。

1 つの Recordset オブジェクトの中でカレント レコードになれるレコードは 1 つだけです。ただし、Recordset オブジェクトにカレント レコードが 1 つもない場合があります。たとえば、ダイナセット タイプの Recordset オブジェクトのレコードを削除した後、または、Recordset オブジェクトにレコードが 1 つもない場合、カレント レコードは未定義となります。この場合、カレント レコードを参照するような操作を行うとトラップできるエラーが発生します。


カレント トランザクション

最後に BeginTrans メソッドを使ってから Rollback メソッドか CommitTrans メソッドを次に使うまでの間に Recordset オブジェクトに対して行ったすべての変更です。


データ アクセス オブジェクト

Microsoft Jet データベース エンジンが定義したオブジェクトです。Database オブジェクト、TableDef オブジェクト、Recordset オブジェクト、QueryDef オブジェクトなどのデータ アクセス オブジェクトを使うと、データの編成や操作を行うオブジェクトをコードで表すことができます。


データ ページ

データベース ファイルのレコード データが保存される場所です。レコードのサイズによっては、複数のレコードを保存することもできます。Microsoft Jet データベースでは、データ ページのサイズは 2KB です。


データ型 (データ アクセス)

変数やフィールドに格納するデータの種類を決める属性です。たとえば、テキスト型で定義されたフィールドにはテキストが格納されることになります。


データベース

ある特定のトピックや目的に関係のあるデータの集合です。データベースはいくつかのテーブルと、クエリーおよびインデックス、テーブルのリレーション、テーブルおよびフィールドを有効にする抽出条件、あるいは外部データ ソースへの結合などを含むことができます。


データベース エンジン

データベース システムの中の、ユーザー データベースやシステム データベースに対し、データを取得したり保存したりする部分です。


Database オブジェクト

Database オブジェクトは、物理的なデータベースを論理的に表現したものです。データベースとは、特定のトピックや目的に関係のあるデータを集めたものです。データベースはいくつかのテーブルを含み、クエリーやインデックス、テーブルのリレーション、テーブルやフィールドを有効にする抽出条件、外部データ ソースへの結合なども含むことができます。


データベース オブジェクト

データベース オブジェクトには、Recordset、Field、Index、QueryDef、TableDef、Relation、User、Group、Property、Document があります。


データベース管理システム (DBMS)

データベースに保存してある情報の編成、解析、変更に使われるソフトウェアです。たとえば、データベース管理システムとして、Microsoft SQL Server および Microsoft Jet データベース エンジンがあります。


データ (Data) コントロール

Visual Basic の組み込みコントロールです。Visual Basic アプリケーションと選択したデータ ソースを接続するのに使われます。連結可能コントロールを使うには、データ ソースとしてデータ コントロールが必要です。


データ定義クエリー

データベースのテーブルの生成、変更、削除、およびインデックスの生成、削除を行うことができる SQL クエリーです。


データ ソース

オープン データベース コネクティビティ (ODBC) ドライバが ODBC データベースにアクセスする場合に必要となる場所、ドライバの種類、その他のパラメータを指定するための名前付き ODBC リソースです。データベースの情報源はすべて、データ ソースといえます。


データベース管理

データベースの整合性やセキュリティを保持するのに必要となる作業です。ユーザーの権限の管理やデータベースのバックアップ、最適化、修復などがあります。


既定のワークスペース

アプリケーションからなんらかのデータ アクセス オブジェクトを初めて参照したときに Visual Basic が自動的に作成する Workspace オブジェクトです。この Workspace オブジェクトは、DBEngine.Workspaces(0) あるいは単に Workspaces(0) と記述すると参照できます。


削除クエリー

指定した抽出条件に当てはまる行の集まりを削除するアクション クエリーです。削除クエリーは行を返しません。


倍精度浮動小数点数型 (Double)

IEEE 形式の倍精度浮動少数点数を格納する基本的なデータ型です。倍精度浮動小数点数型の変数には、-1.79769313486232E308 ～ -4.94065645841247E-324 の範囲の負の値と 4.94065645841247E-324 ～ 1.797693134862325E308 の範囲の正の値、および 0 が 64 ビット (8 バイト) で格納されます。型宣言文字は # です。


定義域

テーブル、クエリー、SQL の式で定義されるレコードセットです。DMax、DStDev などの定義域集合関数は、特定の定義域に関する統計情報を返します。


定義域集合関数

ある特定のレコードセット (定義域) 全体のデータを使った計算を行うために関数です。定義域集合関数には、DAvg、DCount、DFirst、DLast、DLookup、DMax、DMin、DStDev、DStDevP、DSum、DVar、DVarP があります。これらの関数は、SQL ステートメントで使えるものですが、Visual Basic のコードでは使えません。


ダイナセット

Recordset オブジェクトの種類の 1 つで、データベースのデータへの動的なポインタの集合を返します。テーブル タイプの Recordset オブジェクトやスナップショット タイプの Recordset オブジェクトと同様に、ダイナセット タイプの Recordset オブジェクトもレコード (行) とフィールド (列) の形でデータを返します。ダイナセット タイプの Recordset オブジェクトは、テーブル タイプの Recordset オブジェクトと違って、クエリーの結果として複数のテーブルの結合を返すことができます。ダイナセット タイプの Recordset オブジェクトのレコードは、Updatable プロパティが真 (True) に設定されていて、変更しようとしている Field オブジェクトが更新可能で、カレント レコードが含まれるデータ ページがロックされていない場合には、更新可能です。


Dynaset オブジェクト

CreateDynaset メソッドで作られた Dynaset オブジェクトを識別するレコードセット変数です。Dynaset オブジェクトは更新されません。代わりに、更新されない Dynaset オブジェクトのプロパティとメソッドをすべてサポートしているダイナセット タイプの Recordset オブジェクトを使うことをお勧めします。


等結合

2 つのテーブルの結合するフィールドの値が等しい場合のみ、そのレコード同士を結合させて Recordset オブジェクトに追加する結合です。Microsoft Visual Basic では、等結合を内部結合と呼びます。


式 (データ アクセス)

演算子、定数、リテラル値、関数、フィールド名、コントロール名、プロパティ名を組み合わせたもので、結果として 1 つの値が得られます。クエリーで抽出条件を設定したり演算フィールドを定義する場合、プロパティやアクションの引数の設定として使えます。


外部テーブル

開かれている Microsoft Jet データベース以外のデータベースに含まれているテーブルのことをいいます。外部テーブルは、他のファイルに含まれている場合、または他のリレーショナル データベースのテーブルである場合があります。


排他

マルチユーザー環境で、データベースやテーブルが他のユーザーと共有されるかどうかを示します。データベースやテーブルが排他的に使う設定で開かれていれば、他のユーザーとの共有はできません。


外部データベース

リモート サーバーに存在する SQL サーバーのような ODBC データベース、または外部データベース (Btrieve、Paradox、dBASE、FoxPro、Microsoft Excel、Microsoft Access など) のどちらかです。


フィールド

データベースのテーブルに保存してある情報の種類で、データの列のことです。データベースの要素の 1 つで、氏名などの特定の項目の情報を格納します。


フィールドのデータ型

フィールドのデータ型および Visual Basic での対応するデータ型は次のとおりです。

フィールドのデータ型	Visual Basic のデータ型

True/False	整数型 (Integer)

バイト型 (Byte)	バイト型 (Byte)

整数型 (Integer)	整数型 (Integer)

長整数型 (Long)	長整数型 (Long)

通貨型 (Currency)	通貨型 (Currency)

単精度浮動小数点数型 (Single)	単精度浮動小数点数型 (Single)

倍精度浮動小数点数型 (Double)	倍精度浮動小数点数型 (Double)

日付/時刻型 (Date/Time)	日付型 (Date)

テキスト型	文字列型 (String)

ロング バイナリ型	文字列型 (String) あるいはバリアント型 (Variant)、最大 1.2 GB

メモ型	文字列型 (String) あるいはバリアント型 (Variant)、最大 1.2 GB

バリアント型 (Variant) にはあらゆる型の値を格納することができます。


フィールド プロパティ

フィールドにどういった種類のデータをいれるかを決めるフィールドの属性です。例として、Size プロパティや Type プロパティがあります。


フィルタ

レコードのサブセットを作成するためにレコードに適用する一連の抽出条件です。


外部キー

他のテーブル内にある主キー フィールドを表すテーブル フィールドです。外部キーとなるフィールドは複数のこともあります。たとえば、有効部品番号の一覧は、有効な部品番号に対する参照が格納してある在庫テーブルへの外部キーを持ちます。


外部キー側のテーブル

外部キーが含まれるデータベース テーブルです。一般的に、外部キー側のテーブルは参照整合性を確立したり確実にしたりするために使われます。外部キー側のテーブルは通常、一対多リレーションの多側のテーブルとなります。外部キー側のテーブルの例としては、状態コードのテーブルや得意先の注文テーブルなどがあります。


前方スクロール

Recordset オブジェクトの最後の方 (EOF) へ向かって移動します。


前方スクロール スナップショット

レコードの検索がファイルの先頭から終わりに向かってしか行えないスナップショット タイプの Recordset オブジェクトです。カレント レコードの位置を最初のレコードの方へ向かって移動させることはできません。前方スクロール スナップショットは、特定のレコードの検索など、データを高速にスキャンしたい場合に役立ちます。


FROM 句

SQL ステートメントを構成する句の 1 つで、クエリーで値を見たいデータの場所を指示するために、データの検索の対象となるデータベース テーブルを指定するのに使います。FROM 句で指定した場所を定義域と呼ぶことがあります。


グループ

Workgroup オブジェクト内のユーザー アカウントの集まりです。グループ名とユーザー識別子 (PID) で識別されます。グループに割り当てられた権限は、そのグループに属するすべてのユーザーに適用されます。


識別子

式の要素で、フィールドやプロパティの値を参照するものです。


インデックス (データ アクセス)

1 つあるいは複数のフィールド (列) のダイナミック クロス リファレンスで、テーブル内のレコードを検索する速度を向上させます。レコードの追加、変更、削除などが行われると、インデックスはデータベース管理システムによって変更を反映するように自動的に更新されます。

テーブル タイプの Recordset オブジェクトでカレント インデックスを設定すると、Recordset オブジェクトへ返されるデータ レコードの順序はカレント インデックスによって決まります。1 つのテーブルで、そのデータに対して複数個のインデックスを定義することができます。

Index オブジェクトは、TableDef オブジェクトに対するインデックスを表すデータ アクセス オブジェクトです。


初期化ファイル

Microsoft Windows で実行される各種アプリケーション、Microsoft Jet データベース エンジン、または Windows 自体の設定を行うパラメータを指定した ASCII 形式のテキスト ファイルです。一般的に初期化ファイルの名前には、その初期化ファイルを使う実行可能ファイルの名前が使われ、.INI という拡張子が付けられます。たとえば、TESTING.EXE という名前のプログラムの初期化ファイルなら TESTING.INI となります。


組み込み可能な ISAM ドライバ

Btrieve、dBASE、Microsoft Excel、Paradox などの外部データベース形式にアクセスできるよう指定できるドライバです。ISAM は Indexed Sequential Access Method (インデックス付きシーケンシャル アクセス メソッド) の頭文字をとったものです。Microsoft Jet データベース エンジンは、アプリケーションからの参照があったときにこれらの ISAM ドライバを組み込み (ロードし) ます。これらのドライバの組み込み場所は、Microsoft Windows のレジストリで管理されています。


整数型 (Integer)

整数値を格納する基本データ型です。整数型 (Integer) の変数には、-32,768 ～ 32,767 の範囲の値が、16 ビット (2 バイト) で格納されます。型宣言文字は % (ANSI コード 37 の文字) です。

Visual Basic では、整数型はブール値 (True/False) を格納する場合にも使われます。


非コンシステント

複数のテーブルの Recordset オブジェクトのすべてのフィールド (列) を更新できる状態です。たとえば、2 つのテーブルを一対多リレーション (得意先テーブルと注文テーブルのような) で結合して作成した Recordset オブジェクトで、Orders.[Customer ID] を更新できるため、その値がCustomers.[Customer ID]と一致しなくなってしまう状態を示します。


内部結合

2 つのテーブルからのレコードのうち、結合するフィールドの値が指定した条件を満たすようなレコードだけが結合されて Recordset オブジェクトに追加される結合です。たとえば、等結合は結合するフィールドの値が等しくなければならない内部結合です。


結合

複数のテーブルの一部あるいは全部のレコードを結合するようなデータベース操作です。等結合、外部結合、自己結合などがあります。一般的に、結合は 1 つのテーブルのあるフィールドと他のテーブルの同じデータ型のフィールドとの間の関係を参照します。結合は SQL ステートメントで作成されます。

2 つのテーブル間のリレーションを定義する場合は、主テーブルのフィールドと外部キー側のテーブルのフィールドを指定すれば結合できます。クエリーにテーブルを追加する場合は、そのクエリーを定義する SQL ステートメントの中で適切なフィールド間の結合を作成してください。


左外部結合

クエリーの SQL ステートメント内に記述する LEFT JOIN 操作で左側に置かれているフィールドのレコードがすべて Recordset オブジェクトに追加されるような外部結合です。右側のテーブル内の結合フィールドには一致する値がないレコードでも、左側のテーブルのレコードはすべて追加されます。一方、右側のテーブルのレコードは、結合するフィールドに一致する値があった場合のみ左側のテーブルのレコードと結合されます。左側のテーブルのレコードに一致するものがない場合は、右側には Null 値の行が結合されます。


左結合

2 つのテーブルのうち 1 番め (左側) からのすべてのレコードが含まれる左外部結合です。2 番め (右側) のテーブルのレコードに一致する値がない場合でも、1 番めのテーブルのすべてのレコードが含まれます。


ロック状態

データ ページ、Recordset オブジェクト、Database オブジェクトなどが、そのときデータ入力を行っているユーザー以外のすべてのユーザーに対して読み取り専用になっている状態です。


ロング バイナリ型

最大 1.2 GBまでのサイズのバイナリ値を格納できるデータ型です。


Microsoft Jet データベース エンジン

ユーザー データベースやシステム データベースに対し、データの取得または保存を行うデータベース管理システムです。Jet データベース エンジンは、Microsoft Access や Visual Basic などの他のデータ アクセス システムのためのデータ管理構成要素だと考えることができます。


ODBC (Open Database Connectivity)

アプリケーションをさまざまな外部データベースのサーバーやファイルに接続するための標準プロトコルです。Microsoft Jet データベース エンジンが使う ODBC ドライバでは、Microsoft SQL サーバーおよびいくつかの他の外部データベースにアクセスできます。

ODBC アプリケーション プログラミング インターフェイス (API) は、ODBC ドライバや ODBC ドライバが接続するデータベースに Jet データベース エンジンを使わないでアクセスする場合にも使えます。


一対多リレーション

2 つのテーブル間の次のような関係をいいます。

主テーブルの各レコードの主キーの値が、リレーションが設定されたテーブルの複数個 (または 0 個) のレコードの一致するフィールドの値と対応している関係です。

リレーションが設定されたテーブルでの各レコードの主キーの値が、Null であるか、または主テーブルの 1 つだけのレコードの一致するフィールドの値と対応している関係です。


一対一リレーション

2 つのテーブル間の次のような関係をいいます。

主テーブルの各レコードの主キーの値が、リレーションが設定されたテーブルの 1 つだけのレコードの一致するフィールドの値と対応している関係です。

リレーションが設定されたテーブルの各レコードの主キーの値が、Null であるか、または主テーブルの 1 つだけのレコードの一致するフィールドの値と対応している関係です。


共有的

編集中のレコードを含むいくつかのレコードが格納されているデータ ページが、Edit メソッドが実行されてから Update メソッドが実行されるまでの間は、利用可能なロックです。ただし、Update メソッドによるレコードの更新中は、他のユーザーから利用できません。共有的ロックは、ODBC データベースにアクセスする場合、または Recordset オブジェクトの LockEdits プロパティ が偽 (False) に設定されている場合に使われます。


ページ

データベースのデータが保存される部分です。レコードのサイズによっては、1 つのページに複数のレコードを格納することもできます。Microsoft Jet データベース (.MDB) では、ページの長さは 2,048 バイト (2KB) です。


パラメータ (データ アクセス)

値を変更するとクエリーの結果が変わる要素です。たとえば、従業員のデータを返すようなクエリーなら、従業員の氏名に関するパラメータを持つことができます。この場合、クエリーを実行させる前にそのパラメータに特定の名前を設定すれば、1 つの QueryDef オブジェクトを使ってどの従業員に関するデータも検索できます。


ユーザー識別子 (PID)

4 文字から 20 文字までの、大文字小文字が区別されるアルファベット文字列です。Microsoft Jet データベース エンジンがアカウント名と組み合わせて Workgroup オブジェクトでのユーザーやグループの識別に使います。新規ユーザーや新規グループを作成する場合には、PID とアカウント名を指定してください。


排他的

編集中のレコードを含むいくつかのレコードが格納されているデータ ページが、Edit メソッドを使ったときから他のユーザーに対して利用不可能になり、Update メソッドを使うまで他のユーザーには利用できないロックです。排他的ロックは、Recordset オブジェクトの Lockedits プロパティが真 (True) に設定されている場合に有効になります。


クエリー

正式に承認されたデータベースへの命令です。クエリーは、クエリー内での指定に従ってレコードの集まりを返したり、レコードの集まりに対する操作を実行します。たとえば、次に示す SQL クエリー ステートメントはレコードを返します。

SELECT 会社名 FROM 出版社 WHERE 州 = 'NY'

作成および実行できるクエリーには、選択クエリー、アクション クエリー、クロス集計クエリー、パラメータ クエリー、SQL クエリーがあります。


QueryDef オブジェクト

データ アクセス オブジェクトの 1 つです。クエリーと、DateCreated、ODBCTimeout などのクエリーのプロパティを記述する SQL ステートメントを含みます。Querydef オブジェクトの Connect プロパティに ODBC への接続情報を指定する場合、Microsoft SQL サーバーのような外部データベースに対してしか実行できない SQL ステートメントを指定できます。これは SQL パススルー クエリーというクエリーです。


読み取り専用

情報が取得できるデータへのアクセスの種類です。情報の変更はできません。


レコード

1 人の人、1 つの場所、出来事、その他何らかの項目に関する関連のあるデータの集合です。テーブル データは、データベースではレコード (行) に保存されます。各レコードは、関連のあるフィールド (列) を集めた 1 組のセットです。各フィールドはレコードに対する情報の 1 つの属性を定義します。それが 1 つにまとめられて、1 つのレコードとなり、データベースの検索可能な情報の単位 1 つ分となります。


レコードセット

レコードの論理的な集合です。Recordset オブジェクトには、ダイナセット タイプ、スナップショット タイプ、テーブル タイプの 3 つの種類があります。


参照整合性

レコードの追加、変更、削除を行っても、テーブル間の関係が確立され保持されるように設定する規則です。参照整合性を確保するよう設定すると、ユーザーは、対応する主キーのないレコードの関連テーブルへの追加や、実行すると主テーブルに対応するレコードがないレコードが関連テーブルの中にできてしまうような主テーブルの値の変更、関連テーブルに対応するレコードが存在するレコードの主テーブルからの削除などが実行できなくなります。

リレーションに Cascade Update Related Fields オプションまたは Cascade Delete Related Records オプションを設定すると、Microsoft Jet データベースにより、変更や削除が行えるようになりますが、この規則が確実に保持されるよう関連のレコードも変更されたり削除されたりします。


再クエリー

レコードに対して行った変更を反映させたり、追加されたレコードを取得したり、削除したレコードを除いたりするためにクエリーを実行し直すことを示します。


右結合

2 つのテーブルのうち 2 番め (右側) からのすべてのレコードが含まれた右外部結合です。1 番め (左側) のテーブルのレコードに一致する値がない場合でも、2 番めのテーブルのすべてのレコードを含めて作成できます。

たとえば、「部署」テーブル (左) と「従業員」テーブル (右) に左結合 (LEFT JOIN) を使うと、従業員がひとりも配属されていない部署も含め、すべての部署を選択することができます。また、どの部署にも配属されていない従業員も含め、すべての従業員を選択するには、右結合 (RIGHT JOIN) を使います。


右外部結合

クエリーの SQL ステートメント内に記述する LEFT JOIN 操作で右側に置かれているフィールドのレコードがすべて Recordset オブジェクトに追加されるような外部結合です。左側のテーブル内の結合フィールドには一致する値がないレコードでも、右側のテーブルのレコードはすべて追加されます。一方、左側のテーブルのレコードは、結合するフィールドに一致する値があった場合のみ右側のテーブルのレコードと結合されます。右側のテーブルのレコードに一致するものがない場合は、左側には Null 値の行が結合されます。


行

データを格納するために、関連のあるフィールドつまり列の集合です。行は、Microsoft Jet データベース エンジンではレコードと同じ意味になります。テーブルは、0 個以上のデータからなります。


セキュリティ

特定のユーザーやユーザー グループに対して、データベース内のデータやオブジェクトに対するアクセス権を指定したり制限したりするための一連の機能です。


選択クエリー

テーブルの保存されているデータについて問い合わせを行い、データの変更を行わずに Recordset オブジェクトを返すクエリーです。一度 Recordset オブジェクトのデータを取得すると、元になるテーブルのデータを見たり変更したりできます。これに対しアクション クエリーでは、データの変更を行うことはできますが、データ レコードは返されません。


サーバー

クライアント アプリケーションとデータを共有するように設計されたデータベース管理システムです。サーバーとクライアントは、多くの場合、ネットワークを介して接続されます。データベース サーバーは通常、リモート クライアント アプリケーションがデータを取得したり操作したりできるような中央のデータ保存場所の保持および管理をしています。


スナップショット

データベースから取得されメモリにコピーされた一連のデータの静的コピーです。スナップショット タイプの Recordset オブジェクトは、ベース テーブルやクエリー、その他のレコードセットから作られます。スナップショットを更新することはできません。SQL パススルー クエリーが返すのはスナップショットのみです。


Snapshot オブジェクト

CreateSnapshot メソッドを使って作成された Snapshot オブジェクトを識別するレコードセットの変数です。Snapshot オブジェクトは更新されません。代わりにスナップショット タイプの Recordset オブジェクトを使うことをお勧めします。


SQL ステートメント / 文字列

構造化照会言語 (Structured Query Language : SQL) コマンドを定義する SELECT ステートメント、UPDATE ステートメント、DELETE ステートメントなどの式です。WHERE 句、ORDER BY 句などの句も含まれます。SQL の文字列およびステートメントは、通常はクエリー、Recordset オブジェクト、集合関数で使用されますが、データベース構造の作成や変更にも使えます。


テーブル

リレーショナル データベースでデータを保存する基本単位です。テーブルでは、データはレコード (行) とフィールド (列) の形で保存され、通常は社員や部品など、対象の特定のカテゴリに関するデータが集められます。ベース テーブルとも呼ばれます。

テーブル タイプの Recordset オブジェクトは、データベースでのベース テーブルを論理的に表現したものです。


Table オブジェクト

レコードセットの 1 つで、特定の事象に関するデータを含む、データベース内で物理的なオブジェクトを論理的に表現したものです。他のすべてのレコードセットと同様に、Table オブジェクトもレコード (行) とフィールド (列) を持ちます。Table オブジェクトは更新されません。代わりに、テーブル タイプの Recordset オブジェクトを使うことをお勧めします。


TableDef オブジェクト

データベース内のオブジェクトで、テーブルの構造を定義します。これに対し、テーブルはデータベースのデータを物理的に保存します。


トランザクション

データベースのデータとスキーマに対して行われる一連の変更です。トランザクションの先頭は BeginTrans ステートメントで示され、トランザクションのコミットは CommitTrans ステートメントを使って行われます。また、BeginTrans ステートメント以降に行った変更すべてを元に戻すには、Rollback ステートメントを使います。

アクション クエリーの実行中には、明示的なトランザクションが存在します。何らかの理由でクエリーが完了できない場合、実行された変更は自動的に元に戻されます。

トランザクションはオプションで、最大ネスト レベルは 5 です。トランザクションを使うと、データの変更操作の速度を向上させることができるうえ、行った変更を簡単に元に戻せます。

トランザクションは、参照されるデータベース オブジェクトを含む Workspace オブジェクト全体で有効です。


更新

レコードのデータへの変更を保存する操作です。レコードが保存されるまでは、変更はコピー バッファと呼ばれる一時的なレコードに保存されています。SQL ステートメントで UPDATE 句を指定すると、データベース テーブルにある 1 つあるいは複数のレコード (行) のデータの値が変更されます。


テーブル作成クエリー

アクション クエリーの 1 つです。既存のクエリーの Recordset オブジェクトから新規テーブルを作成します。


多側専用テーブル

クエリーのどの結合でも一側にできないテーブルです。


Memo オブジェクト

フィールドの型がメモ型であるテーブル フィールドの内容を格納するオブジェクトです。Memo オブジェクトには、最大 1.2 GBのデータを格納することができます。


メモ型

フィールドのデータ型の 1 つです。この型のフィールドには、最大 1.2 GBのデータを格納することができます。


メッセージ

アプリケーション間で渡される情報のパケットです。


マルチユーザー データベース

2 人以上のユーザーが同時に 1 つのデータ セットにアクセスできるようなデータベースです。2 人めの“ユーザー”は、使用中のアプリケーションの別のインスタンスである場合、同じシステムで実行されていてその他のアプリケーションとして同じデータにアクセスする別のアプリケーションである場合もあります。


正規化

効率的なテーブル設計を行うことにより、リレーショナル データベースでの情報の重複を最小にすることです。


Null (データ アクセス)

データがないこと、あるいは不明であるということを示す値です。Null 値は、情報が不明なフィールド、式、クエリーに入力できます。Visual Basic では、キーワード Null は Null 値を示します。フィールドの中には、主キーを含むように定義されているものなど、Null 値を格納することができないものもあります。


Null フィールド

文字も値も格納されていないフィールドです。Null フィールドは、長さ 0 の文字列 ("") や 0 の値を持つフィールドとは別のものです。フィールドの内容が不明な場合にフィールドを Null に設定します。たとえば、作業テーブルの完了日フィールドなら、作業が完了するまで Null のままです。


Null の透過

Null 式の効力は、ほとんどの演算子での使用では、式の中の他の値に対して優先されます。


ODBC ドライバ

特定のオープン データベース コネクティビティのデータ ソースを他のアプリケーション (クライアント) と接続するのに使われるダイナミック リンク ライブラリ (DLL) です。


OLE オブジェクト型

他のアプリケーションで作成されたオブジェクトです。Microsoft Jet データベースにリンクしたり埋め込みしたりできるものに対して使うフィールドのデータ型です。


外部結合

一方のテーブルのレコードが、他方のテーブルの結合フィールドに一致する値がない場合でも、すべて Recordset オブジェクトに追加される結合です。2 番めのテーブルのレコードは、結合フィールドの値が一致していた場合のみ 1 番めのテーブルのレコードと結合されます。一致するレコードがない場合には、Null レコードが結合されます。


パラメータ クエリー

実行前に、抽出条件に使われるいくつかの値の入力を必要とするクエリーです。厳密に言えば、パラメータ クエリーはクエリーの独立した種類ではなく、他のクエリーの柔軟性を拡張するものです。


追跡

ステートメントや式の各部分を識別し、識別した部分が適応されている言語の規則に従っているかどうかを入力検査することを示します。


パススルー クエリー

SQL データベース サーバー (Microsoft SQL Serverなど) に直接コマンドを送る場合に使う SQL クエリーです。パススルー クエリーを使うと、サーバー上のテーブルに対する作業を、アタッチすることなく行えます。パススルー クエリーは、サーバーに特有の各 SQL の仕様に応じて記述された SQL クエリーおよびシステム特有のコマンドの実行に使われます。

パススルー クエリーは、レコードを返す場合も返さない場合もあります。レコードが返される場合は、必ずスナップショットの形で返されます。


権限

ユーザーがデータベース内のデータやオブジェクトに対して持つアクセス権の種類を指定するいくつかの属性です。たとえば、データの読み取り権限があるテーブルやクエリーでは、そのテーブルあるいはクエリーのデータを取得できますが、編集することはできません。


主キー

テーブルの各レコードを識別する重複しない値を持つフィールドです。主キーは複数のフィールドの組み合わせの場合もあります。主キーは 1 つのテーブルに 1 つだけです。社員テーブルの場合、社会保険番号を主キーとして指定できます。


主テーブル

主キーを含むデータベース テーブルです。一般的に、主テーブルは参照整合性を確立したり確実にしたりするために使われます。主テーブルは通常、外部キー側のテーブルとの一対多リレーションで一側のテーブルとなります。


クエリー パラメータのデータ型

パラメータ クエリーでフィールドに使うデータ型の集まりです。Microsoft Jet データベース エンジンには 13 個のクエリー パラメータのデータ型があります。

カテゴリ	データ型

テーブル フィールド	通貨型 (Currency)、日付/時刻型 (Date/Time)、メモ型、OLE オブジェクト型、テキスト型、Yes/No 型。テーブル フィールドの同じデータ型に対応します。

数	バイト型 (Byte)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、整数型 (Integer)、長整数型 (Long)。テーブル フィールドの数値型の 5 つのデータ サイズ (Field Size) オプションに対応します。

一般	どのようなデータ型の値も格納できる一般的なデータ型の値です。

バイナリ	バイナリ型 (Binary) は、この型を認識するアタッチ テーブルへのパラメータ クエリーで使えます。


レコードセットへのレコードの取得

Recordset オブジェクトのレコードをメモリにロードする処理です。

ダイナセット タイプまたはスナップショット タイプの Recordset オブジェクトが初めて開かれると、クエリーが複数のレコードを返していても、通常、レコードは 1 つしか含まれていません。コード内の命令で、その Recordset オブジェクトのカレント レコードを前方へ (つまり EOF の方へ) 移動させると、2 番め以降のレコードが取り出され、キーセット (ダイナセットの場合) またはメモリ内のレコード セット (スナップショットの場合) のメンバになります。レコードセットへのレコードの取得はこのように行われます。MoveLast メソッドや FindLast メソッドを実行したり、PercentPosition プロパティを 100 に設定すると、その Recordset オブジェクトのすべてのレコードを返します。

Microsoft Visual Basic Version 4.0 では、SQL パススルーが ODBC データ ソースに対して実行される場合でも、Recordset オブジェクトが初めて開かれたときにはレコードの取得は完全には行われません。これは Microsoft  Visual Basic Version 3.0 と同じです。


セキュリティ ワークグループ

Microsoft Jet データベースの Workgroup オブジェクトです。ユーザーは、このワークグループにユーザー名とパスワードを使ってログオンします。このワークグループでのデータベース オブジェクトへのアクセスは、ユーザー アカウントとグループに指定された権限に応じて制限されています。


自己結合

あるテーブルのレコードが、結合フィールドに一致する値がある同じテーブル内の別のレコードと結合される結合です。自己結合であれば、等結合または外部結合です。自己結合は、すべての管理者とその管理者に報告を行う社員を表示するクエリーなどのような、階層的な問い合わせを行う場合に役立ちます。


セッション

セッションとは、Microsoft Jet データベース エンジンが実行する一連の操作です。セッションは、ユーザーがログオンしたときに開始し、ユーザーがログオフしたときに終了します。1 つのセッションの間に実行されたすべての操作は、1 つのトランザクションの適用範囲を形成し、ログオンしたユーザーのユーザー名とパスワードによって決まる権限の対象となります。セッションは、Jet データベース エンジンによって Workspace オブジェクトとして実現されます。


単精度浮動小数点数型 (Single)

IEEE 形式の単精度浮動小数点数を格納する基本データ型です。単精度浮動小数点数型の変数には、-3.402823E38 ～ -1.401298E-45 の範囲の負の値と 1.401298E-45 ～ 3.402823E38 の範囲の正の値、および 0 が 32 ビット (4 バイト) で保存されます。型宣言文字は ! です。


構造化照会言語 (SQL)

リレーショナル データベースの照会、更新、管理に使う言語です。SQL を使うと、検索、並べ替え、抽出の操作によりデータベースから特定のデータを取得することができます。

SQL の SELECT ステートメントは、テーブル名やクエリー名、フィールド名を入力できる場所ならどこででも使用できます。たとえば、OpenRecordset メソッドのテーブル名の指定に SQL ステートメントを使用できます。


SQL データベース

オープン データベース コネクティビティ (ODBC) のデータ ソースを使ってアクセスできるデータベースです。


SQL クエリー

SQL ステートメントを記述することでしか作成できないクエリーです。サブクエリー、パススルー クエリー、ユニオン クエリー、データ定義クエリーが SQL クエリーです。


名前付け規則

Microsoft Jet データベース オブジェクト特有の名前付けに関する規則を集めたものです。名前の長さは最大 64 文字で、文字、数字、スペース文字、および特殊文字 (ピリオド (.)、感嘆符 (!)、バック クォーテーション (`)、角かっこ ([ ]) を除く) を使うことができます。名前の先頭でのスペース文字の使用、制御文字 (ASCII コード 0 ～ 31 の文字) の使用はできません。


文字列型 (String)

文字情報を格納する基本データ型です。文字列型の変数は、約 65,535 バイト (64KB) のデータを格納することができ、固定長でも可変長でもかまいません。固定長文字列は、長さを指定して宣言します。可変長文字列は、多少の保存オーバーヘッドも合わせて 64KB 以内の長さにします。

文字列型の型宣言文字は $ です。


システム オブジェクト

Microsoft Jet データベース エンジンが定義するデータベース オブジェクトです。テーブルの MSysIndexes などがあります。


一時ディスク

オペレーティング システムの環境変数 TEMP で識別されるディスクあるいはディレクトリです。Microsoft Jet データベース エンジンが一時的なファイルや結果セットを保存する場所です。テンポラリ ドライブとも呼ばれます。環境変数 TEMP に RAM ディスクを指定できますが、あまりお勧めできません。


TEMP

環境変数 TEMP は、システムを起動したときに AUTOEXEC.BAT ファイルの記述によって設定されます。一般的にTEMP は、Microsoft Windows、および Microsoft Jet データベース エンジンなどのその他のプログラムが使うハードディスク上に割り当てられた領域を指し、システムの停止後には保存される必要のない情報を保存する場合に使われます。たとえば、次に示す AUTOEXEC.BAT ファイル内の記述は、環境変数 TEMP が D ドライブの \TEMPAREA ディレクトリを指すように設定しています。

SET TEMP=D:\TEMPAREA


テキスト型

フィールドのデータ型の 1 つです。Text フィールドには、255 文字か Field オブジェクトの Size プロパティで指定された文字数のうち、少ない方の文字数までのテキストを格納することができます。


ユニオン クエリー

SQL の選択クエリーで、スナップショット タイプの Recordset オブジェクトを作成し、複数のテーブルから得られる指定したすべてのレコードを、重複するものだけを取り除いて保存します。重複したレコードも含めたい場合は、キーワード ALL を付け加えます。

たとえば、得意先テーブルと仕入先テーブルのユニオン クエリーで、得意先でもある仕入先すべてを含んだスナップショット タイプの Recordset オブジェクトを作成できます。


更新クエリー

アクション クエリーの 1 つです。指定した抽出条件に従ってレコードを変更します。更新クエリーはレコードを返しません。


ユーザー アカウント

ユーザー名とユーザー識別子 (PID) で識別されるアカウントです。Microsoft Jet データべースの Workgroup オブジェクトでデータベース オブジェクトに対するアクセスを管理するために作られています。


入力検査

入力されたデータが条件や制限を満たしているかどうかを調べる処理です。


入力規則

1 つあるいは複数のフィールドに入力するデータの種類の制限や条件を設定する規則です。入力規則は Field オブジェクトや TableDef オブジェクトに対して設定されます。入力規則は、入力検査を必要とするフィールドを持つレコードを更新するときに調べられます。この規則に違反している場合、トラップできるエラーが発生します。


WHERE 句

SQL ステートメントを構成する句の 1 つで、取得するレコードを指定するのに使います。WHERE 句は、クエリーの適用範囲を制限したり、複数のテーブルの結合に使う列を指定したりします。Microsoft Jet データベースを使ってクエリーを実行する場合、複数のテーブルの結合には JOIN 句を使います。


ワイルドカード文字

アスタリスク (*)、疑問符 (?)、シャープ記号 (#)、感嘆符 (!)、ハイフン (-)、角かっこ ([ ]) がワイルドカード文字です。これらの文字は、クエリーや式の中で、レコード、ファイル名、その他の項目のうち、特定の文字で始まったり、あるパターンに一致するようなものすべてを表す場合に使います。ワイルドカード文字と一致する文字は、SQL ステートメントでより詳細な指定での検索を行う場合にも使えます。

記号	例	使い方
*	wh* は、what、white、why などを検索します。 *at は、cat、bat、what などを検索します。	MS-DOS のアスタリスク (*) ワイルドカードと同じように、このアスタリスクは任意の数の文字に相当します。ただし MS-DOS と違って、文字列のどの部分でも使えます。
?	b?ll は、ball、bell、bill などを検索します。	MS-DOS の ? ワイルドカードと同じように、この記号は任意の 1 文字に相当します。
#	1#3 は、103、113、123 などを検索します。	任意の 1 文字の数字に相当します。
[ ]	b[ae]ll は、ball と bell を検索しますが、bill は検索しません。	角かっこ内のどれか 1 文字に相当します。
!	b[!ae]ll は、bill、bull などを検索しますが、bell と ball は検索されません。	任意の文字で角かっこ内に挙げられていないものに相当します。
-	b[a-c]d は、bad と bbd と bcd を検索します。	指定した範囲内のどれかの文字に相当します。
注   ワイルドカード文字 * (アスタリスク)、? (疑問符)、# (シャープ記号)、[ (左かっこ) 自体を表したい場合は、角かっこで囲んでください。


ワークグループ

マルチユーザー環境で、データや 1 つのシステム データベース (通常は SYSTEM.MDW ファイル) を共有するユーザーを集めたグループのことです。


ワークグループ管理者

Microsoft Jet データベースの Workgroup オブジェクトの Admins グループのメンバーです。ワークグループ管理者は、その Workgroup オブジェクト内で生成されたあらゆるデータベース オブジェクトに対して、常に完全な権限を持ちます。


ワークスペース

特定のユーザーのセッションを定義する Workspace オブジェクトです。Visual Basic が起動されると、ユーザー名 "Admin"、パスワード "" の既定の Workspace オブジェクトが生成されます。


Yes/No 型

フィールドのデータ型の 1 つです。ブール (Boolean) 値 である真 (True) または偽 (False)、あるいは“はい”(yes) または“いいえ”(no) の値を格納します。


長さ 0 の文字列

1 文字も文字が入っていない文字列のことを指します。長さ 0 の文字列の Len 関数は、0 を返します。


標準偏差

確率関数がどのような状態で平均値の辺りに集約されているかを示すパラメータです。平均値からの偏差を 2 乗してできた積率の平方根と同じ値です。平均値から値がどれだけ離れているかを示すことで、一連の値の性質を表します。


DDL (データ定義言語)

データベースの属性、特にテーブル、フィールド、インデックス、データ保存法などを記述する言語です。


EB 型

埋め込み Basic データ型 (Embedded Basic)。Visual Basic によって定義されるデータ型です。


オブジェクト型

Visual Basic か Microsoft Jet データベース エンジンが定義するオブジェクトの総称です。ここでのオブジェクト型は、データベースのフィールドに保存されているオブジェクトを表します。あらゆる OLE 型、およびその他のロング バイナリ型のフィールドも含まれます。


持続的なオブジェクト

データベースに保存されているオブジェクトのことです。たとえば、データベース テーブルや QueryDef オブジェクトなどがあります。ダイナセット タイプやスナップショット タイプの Recordset オブジェクトは、必要に応じてメモリ内に作成されるため持続的なオブジェクトではありません。


入力検査プロパティ

テーブルのフィールドやレコードに対する条件を設定するためのプロパティです。入力検査プロパティには、ValidationRule、Required、AllowZeroLength などがあります。


ODBC データ ソース

データ ソースとして使われるデータベースやデータベース サーバーを指す用語です。ODBC データ ソースは、データ ソース名で参照されます。データ ソースの作成は、Windows のコントロール パネルか RegisterDatabase メソッドを使って行います。


予約語

Microsoft Jet データベース エンジンの SQL 言語を構成する語です。予約語には、ステートメント名、データ型、メソッド、操作、オブジェクトなどが含まれます。SELECT、UPDATE、BETWEEN、SET、INSERT などが例として挙げられます。


データ アクセス関連メソッド一覧


データ アクセス関連メソッド一覧

関連項目

ここでは、データ アクセス関連のメソッドを、オブジェクトまたはコレクション別に分類して示すと共に、アルファベット順に示します。アスタリスク (*) の付いたものは、Microsoft Visual Basic Version 4.0 で追加されたメソッドです。

オブジェクトまたはコレクション別

Column、Columns

Database、Databases

DBEngine

DB グリッド (DBGrid) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

Document、Documents

Error、Errors

Field、Fields

Group、Groups

Index、Indexes

Parameter、Parameters

Property、Properties

QueryDef、QueryDefs

Recordset、Recordsets

Relation、Relations

TableDef、TableDefs

User、Users

Workspace、Workspaces

アルファベット順

A

Add

AddNew

Append

AppendChunk

B

BeginTrans

C

CancelUpdate

CellText *

CellValue *

Clone

Close

ColContaining *

CommitTrans *

CompactDatabase *

CopyQueryDef

CreateDatabase *

CreateDynaset

CreateField *

CreateGroup *

CreateIndex *

CreateProperty *

CreateQueryDef

CreateRelation *

CreateSnapshot

CreateTableDef

CreateUser *

CreateWorkspace *

D

Delete

DeleteQueryDef

Drag

E

Edit

Execute

ExecuteSQL

F

FieldSize

FillCache *

FindFirst

FindLast

FindNext

FindPrevious

G

GetBookmark

GetChunk

GetRows *

I

Idle *

L

ListFields

ListIndexes

ListParameters

ListTables

M

MakeReplica *

Move *

MoveFirst

MoveLast

MoveNext

MovePrevious

N

NewPassword *

O

OpenDatabase *

OpenQueryDef

OpenRecordset *

OpenTable

R

Rebind *

Refill *

Refresh

RefreshLink *

RegisterDatabase *

Remove

RepairDatabase *

Requery *

Rollback *

RowBookmark *

RowContaining *

RowTop *

S-T

Scroll *

Seek

SetFocus

ShowWhatsThis *

Synchronize *

U

Update

UpdateControls

UpdateRecord

Z

ZOrder


関連項目

データ アクセス

データ アクセス関連イベント一覧

データ アクセス関連オブジェクトおよびコレクション一覧

データ アクセス関連プロパティ一覧


データ アクセス関連オブジェクトおよびコレクション一覧


データ アクセス関連オブジェクトおよびコレクション一覧

関連項目

Column、Columns Container、Containers Database、Databases DBEngine DB グリッド (DBGrid) コントロール  DB コンボ (DBCombo) コントロール  DB リスト (DBList) コントロール  Dynaset Document、Documents Error、Errors Field、Fields Group、Groups Parameter、Parameters	Property、Properties QueryDef、QueryDefs Recordset、Recordsets Relation、Relations RowBuffer SelBookmarks Snapshot Table TableDef、TableDefs User、Users Workspace、Workspaces


関連項目

データ アクセス

データ アクセス関連イベント一覧

データ アクセス関連メソッド一覧

データ アクセス関連プロパティ一覧


データ アクセス関連プロパティ一覧


データ アクセス関連プロパティ一覧

関連項目

ここでは、データ アクセス関連のプロパティを、オブジェクトまたはコレクション別に分類して示すと共に、アルファベット順に示します。アスタリスク (*) の付いたものは、Microsoft Visual Basic Version 4.0 で追加されたプロパティです。

オブジェクトまたはコレクション別

Column、Columns

Container、Containers

Database、Databases

DBEngine *

DB グリッド (DBGrid) コントロール

DB コンボ (DBCombo) コントロール *

DB リスト (DBList) コントロール

Document、Documents

Error、Errors

Field、Fields

Group、Groups

Index、Indexes

Parameter、Parameters

Property、Properties

QueryDef、QueryDefs

Recordset、Recordsets

Relation、Relations

RowBuffer

SelBookmarks

Table

TableDef、TableDefs

User、Users

Workspace、Workspaces

アルファベット順

A

AbsolutePosition *

Align

AllowAddNew *

AllowDelete *

AllowRowSizing *

AllowSizing

AllowUpdate *

AllowZeroLength *

AllPermissions *

Appearance *

Attributes *

B

BackColor

BOF

BOFAction *

Bookmark

Bookmarkable

Bookmark (DB グリッド) *

BorderStyle

BoundColumn *

BoundText *

C

CacheSize *

CacheStart *

Caption

Clustered *

ColIndex

CollatingOrder *

ColumnCount *

ColumnHeaders *

ColumnName *

Columns *

ConflictTable *

Connect *

Container *

Count *

D

Database

DatabaseName

DataChanged

DataField

DataMode *

DataSource

DataUpdatable *

DateCreated

DefaultPassword *

DefaultUser

DefaultValue *

DefColWidth

Description *

DesignMasterID *

DistinctCount *

DividerStyle

DragIcon

DragMode

E

EditMode

Enabled

EOF

EOFAction

Exclusive

F

Fields

Filter

FirstRow

Font

ForeColor

Foreign *

ForeignName *

ForeignTable *

H

HeadBackColor

HeadFont

HeadForeColor

HeadLines

Height

HelpContext

HelpContextID

HelpFile

I

IgnoreNulls *

Index

Index (コントロール配列)

Inherit *

Inherited *

IniPath

IntegralHeight

IsolateODBCTrans

KeepLocal *

L

LastModified

LastUpdated

Left *

ListField  *

Locked *

LockEdits *

LoginTimeout *

LogMessages *

M

MatchedWithList *

MatchEntry

MouseIcon

MousePointer

N

Name *

Negotiate

NoMatch

Number

NumberFormat

O

Object *

ODBCTimeout*

Options

OrdinalPosition *

Owner *

P

Parent

Password *

PercentPosition *

Permissions *

PID *

Primary *

Q

QueryTimeout *

R

ReadOnly

RecordCount

RecordsAffected *

RecordSelectors *

RecordSet

RecordSetType

RecordSource

Replicable *

ReplicaID *

Required *

Restartable *

ReturnsRecords *

Row

RowCount *

RowDividerStyle

RowHeight

RowSource

S

ScrollBars

SelBookmarks *

SelectedItem *

SelEndCol

SelLength

SelStart

SelStartCol

SelText

Size *

Sort

Source

SourceField *

SourceTable *

SourceTableName *

SQL

Style

T

TabIndex

Table *

TabStop

Tag

Text

Transactions

Type *

U

Unique *

Updatable

UserName *

V

V1xNullBehavior *

ValidateOnSet *

ValidationRule *

ValidationText

Value

Value (RowBuffer オブジェクト) *

Version *

Visible

VisibleCols

VisibleCount

VisibleItems

VisibleRows

W

WhatsThisHelpID *

Width


関連項目

データ アクセス

データ アクセス関連イベント一覧

データ アクセス関連メソッド一覧

データ アクセス関連オブジェクトおよびコレクション一覧


データ アクセス関連イベント一覧


データ アクセス関連イベント一覧

関連項目

ここでは、データ アクセス関連のイベントをアルファベット順に示します。アスタリスク (*) の付いたものは、Microsoft Visual Basic Version 4.0 で追加されたイベントです。

AfterColUpdate *

AfterDelete *

AfterInsert *

AfterUpdate *

BeforeColUpdate *

BeforeDelete *

BeforeInsert *

BeforeUpdate

Change

Click

ColResize *

DblClick

DragDrop

DragOver

Error *

GotFocus

HeadClick*

KeyDown

KeyPress

KeyUp

LostFocus

MouseDown

MouseMove

MouseUp

Reposition

RowColChange *

RowLoaded *

RowResize *

Scroll *

SelChange *

UnboundAddData *

UnboundDeleteRow *

UnboundReadData *

UnboundWriteData *

Validate


関連項目

データ アクセス

データ アクセス関連メソッド一覧

データ アクセス関連オブジェクトおよびコレクション一覧

データ アクセス関連プロパティ一覧


連結可能コントロール

関連項目

連結可能コントロールを使用すると、コードをほとんど、または 1 行も記述しないでデータ アクセス アプリケーションを作成できます。このような、データベースに連結可能なコントロールを使うには、フォームにデータ (Data) コントロールを配置する必要があります。データ コントロールは、データベースと、そのデータの操作に使用するデータ結合コントロールの間にリンクを確立するために使用します。

ツールボックスには、データ コントロールおよび連結可能コントロールを含む Microsoft Visual Basic の標準コントロールすべてが表示されます。使用する連結可能コントロールがツールボックスに表示されない場合は、[ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスを使用して、必要な連結可能コントロールをプロジェクトに追加してください。

データ コントロールによって作成されるデータ アクセス オブジェクト (DAO) を参照するコードを記述する場合、[ツール] - [参照設定] コマンドを選択し、[参照設定] ダイアログ ボックスを使用して Microsoft DAO Version 2.5 および Version 3.0 のオブジェクト ライブラリを選択する必要があります。下に示すコントロールのうちアスタリスク (*) の付いたものを使用する場合も、[参照設定] ダイアログ ボックスでライブラリを選択する必要があります。

Visual Basic で用意されているデータ コントロールのほかに、10 個のデータ結合コントロールがあります。

 データ (Data) コントロール *

フォームに配置した連結可能コントロールを介して、データベースのデータにアクセスできるようにするためのコントロールです。連結コントロールで使用する Database オブジェクトおよび Recordset オブジェクトの、作成および管理が行われます。このコントロールは、ほかの連結可能コントロールを使用する場合に必要です。

 DB コンボ (DBCombo) コントロール *

データベースに連結したコンボ ボックスを描画するためのコントロールです。リスト部分には、データ コントロールのデータベースの内容が自動的に表示されます。DB コンボ コントロールでは、リスト内の項目を選択したり、テキスト ボックスに値を入力することができます。このコントロールを使用した場合、リストで選択したテキスト データ フィールドに対して読み取りおよび書き込みを行うことができます。

 DB リスト (DBList) コントロール *

データ コントロールのデータベースの項目をリスト表示するためのコントロールです。ユーザーは、項目の中からいずれか 1 つを選択することができます。リスト部分には、データ コントロールのデータベースの内容が自動的に表示されます。このコントロールを使用した場合、リストから選択されたテキスト データ フィールドに対して読み取りおよび書き込みを行うことができます。

 DB グリッド (DBGrid) コントロール *

複数のレコードを表形式で表示するためのコントロールです。グリッドには、データ コントロールのデータベースの内容が自動的に表示されます。このコントロールでは、グリッドで項目を選択したり、新しいレコードに値を入力することができます。このコントロールを使用した場合、Recordset オブジェクトに対して読み取りおよび書き込みを行うことができます。

 ラベル (Label) コントロール

図の下に表示するキャプションなど、ユーザーが変更できないテキストを表示するためのコントロールです。このコントロールを使用した場合、指定されたテキスト データ フィールドに対して、読み取りのみのアクセスが行われます。

 テキスト ボックス (TextBox) コントロール

テキストの入力および変更を行うことができるコントロールです。このコントロールを使用した場合、指定されたテキスト データ フィールドに対して読み取りおよび書き込みを行うことができます。

 チェック ボックス (CheckBox) コントロール

オプションの真 (True) または偽 (False) を設定したり、選択項目を複数表示するためのコントロールです。このコントロールを使用した場合、指定したブール型 (Boolean) フィールドまたはビット データ フィールドに対して読み取りおよび書き込みを行うことができます。

 コンボ ボックス (ComboBox) コントロール

コンボ ボックスを描画するためのコントロールです。リストの内容は AddItem メソッドで設定します。コンボ ボックスでは、リスト内で項目を選択したり、テキスト ボックスに値を入力することができます。このコントロールを使用した場合、リストから選択されたテキスト データ フィールドに対して読み取りおよび書き込みを行うことができます。DB コンボ (DBCombo) コントロール を参照してください。

 リスト ボックス (ListBox) コントロール

項目のリストを表示するためのコントロールです。ユーザーは、項目の中からいずれか 1 つを選択することができます。リストの内容は AddItem メソッドで設定します。このコントロールを使用した場合、リストから選択したたテキスト データ フィールドに対して読み取りおよび書き込みを行うことができます。DB リスト (DBList) コントロールを参照してください。

 ピクチャ ボックス (PictureBox) コントロール

フォームにビットマップ、アイコン、メタファイルなどのイメージを表示するためのコントロールです。このコントロールを使用した場合、指定したイメージまたはバイナリ データ フィールドに対して読み取りおよび書き込みを行うことができます。

 イメージ (Image) コントロール

フォームにビットマップ、アイコン、メタファイルなどのイメージを表示するためのコントロールです。イメージ コントロールに表示されるイメージは装飾的なものだけで、ピクチャ ボックス コントロールと比較してリソースを消費しません。このコントロールを使用した場合、指定したイメージまたはバイナリ データ フィールドに対して読み取りおよび書き込みを行うことができます。


関連項目

データ アクセス オブジェクトのアクティブ化

コントロールのデータ (Data) コントロールへの連結

データ アクセスの概要

データ (Data) コントロール

Recordset オブジェクト、Recordsets コレクション

データ アクセスの使い方


Microsoft Jet データベース エンジン Version 2.5 および Version 3.0

関連項目

Jet データベース エンジン Version 2.5 および Version 3.0 のデータ アクセス オブジェクト モデルを、次の図に示します。図中のオブジェクトをクリックすると、そのオブジェクトの詳しい情報が表示されます。


関連項目

データ アクセス オブジェクトのアクティブ化

コントロールのデータ (Data) コントロールへの連結

データ アクセスの概要

Database オブジェクト、Databases コレクション

データ (Data) コントロール

Microsoft Jet データベース エンジン Version 1.1

Recordset オブジェクト、Recordsets コレクション

データ アクセスの使い方


Microsoft Jet データベース エンジン Version 1.1

関連項目

Jet データベース エンジン Version 1.1 のデータ アクセス オブジェクト モデルを、次の図に示します。図中のオブジェクトをクリックすると、そのオブジェクトの詳しい情報が表示されます。


関連項目

データ アクセス オブジェクトのアクティブ化

コントロールのデータ (Data) コントロールへの連結

データ アクセスの概要

Database オブジェクト、Databases コレクション

データ (Data) コントロール

Microsoft Jet データベース エンジン Version 2.5 および Version 3.0

Recordset オブジェクト、Recordsets コレクション

データ アクセスの使い方


データ アクセスの使い方


データ アクセスの使い方

関連項目

以下の項目をクリックすると、その内容についての詳しい情報が表示されます。

Btrieve データベースのデータへのアクセス

Btrieve データベースの設定の変更

CD-ROM に入れられたデータベースへのアクセス

DAO で使用されなくなった機能

DB グリッド (DBGrid) コントロールの使い方

DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールの実行

dBASE データベースのデータへのアクセス

dBASE データベースの設定の変更

Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例

Lotus 1-2-3 ワークシートのデータへのアクセス

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Foxpro データベースの設定の変更

Microsoft Jet データベース エンジン Version 2.5 および Version 3.0 でのブックマークの使い方

Microsoft Jet データベース エンジン Version 3.0 および Version 2.5 の使い方

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft Jet データベースのデータへのアクセス

Microsoft ODBC の設定の変更

ODBC データ ソースとの接続の管理

ODBC データベースへの接続

OLE リンク形式の指定

Paradox データベースのデータへのアクセス

Paradox データベースの設定の変更

SQL データベースでの MSysConf テーブルの使い方

SQL パススルー クエリーの使い方

SQL を使ったデータの取得

オブジェクトをレプリケート可能またはローカルに設定する

外部データベースへのアクセス

カウンタ フィールドの使い方

カレント レコード ポインタの移動

コードでの SQL ステートメントの作成

コントロールのデータ (Data) コントロールへの連結

システム データベースの変更

セキュリティのアクティブ化

データ (Data) コントロールでのパラメータ クエリーの使い方

データ (Data) コントロールの Recordset オブジェクトの種類の選択

データ (Data) コントロールを使ってデータベースを開く

データ アクセス オブジェクトに対応したレジストリの設定のカスタマイズ

データ アクセス オブジェクトのアクティブ化

データ アクセス オブジェクトのレコードセットの種類の選択

データ アクセス用ファイル (.INI) の設定のカスタマイズ

データベースのクエリー

データベースのレプリケート可能形式への変換

データベースの作成

データベースをレプリケート可能形式に変換する前にオブジェクトをローカルに設定する

テキスト データ ソースの設定の変更

テキスト文書に入っているデータへのアクセス

デザイン マスターの状態を他のレプリカに転送する

同期の競合の解決

名前付き引数の使い方

パラメータ クエリーの作成

フィールドのデータ型の選択

マルチユーザー アプリケーションでのロックの動作

レコードセットへのデータの取得

レプリカの追加作成

レプリカの同期化

レプリカをレプリカ セットのデザイン マスターに設定する


関連項目

データ アクセス


 データ アクセス

概念

データ アクセスの概要

データ アクセス オブジェクトおよびコレクション

データ アクセスの使い方

コントロール

データ (Data) コントロール

連結可能コントロール

オブジェクト モデル

Microsoft Jet データベース エンジン Version 2.5 および Version 3.0

Microsoft Jet データベース エンジン Version 1.1

リファレンス

データ アクセス定数

データ アクセス関連イベント一覧

データ アクセス関連メソッド一覧

データ アクセス関連オブジェクトおよびコレクション一覧

データ アクセス関連プロパティ一覧

トラップできるエラー (データ アクセス)


データ アクセス オブジェクトとコレクション

関連項目

データ アクセス オブジェクトやデータ アクセス コレクションを使うと、コードを使ってデータベース システムの内容の作成や変更を行うことができます。オブジェクトやコレクションには、データベースの構成要素の特性を表すプロパティと、データベースを操作するメソッドがあります。オブジェクトやコレクションは、階層構造を形成しています。その階層構造は、データベース システムの論理構造に対応しています。

さまざまな種類のオブジェクトやコレクションが提供されています。オブジェクトには種類の異なるコレクションやオブジェクトが含まれている場合がありますが、コレクションには同じ種類のオブジェクトが含まれています。コレクションはオブジェクトの集合です。

注

プロジェクトでデータ アクセス オブジェクトを利用する場合は、オブジェクト ブラウザでデータ アクセス (DAO) オブジェクト ライブラリへの参照を設定します。ライブラリへの参照を設定するには、[ツール] - [参照設定] コマンドを選択し、[参照設定] ダイアログ ボックスで適切なデータ アクセス (DAO) オブジェクト ライブラリを選択してください。詳細については、「データ アクセス オブジェクトのアクティブ化」を参照してください。

Microsoft Jet データベース エンジンが SYSTEM.MDW ファイルを利用できない場合は、Visual Basic で作成されたアプリケーションでセキュリティ機能を利用できません。詳細については、「セキュリティのアクティブ化」を参照してください。

次の表の最初の列はコレクションの種類、2 列めはそのコレクションに含まれるオブジェクトの種類を示します。3 列めは各オブジェクトの説明です。

コレクション	オブジェクト	内容

Columns	Column	DB グリッド (DBGrid) コントロールの場合、列の情報を格納するために使用します。

Containers	Container	あらかじめ定義され、保存されているすべてのオブジェクト型についての情報。

Databases	Database	開いているデータベース。

なし	DBEngine	Microsoft Jet データベースエンジン。

Documents	Document	あらかじめ定義され、保存されているオブジェクトについての情報。

Errors	Error	オブジェクトに関連するエラーについての情報。

Fields	Field	データの列 (テーブル、クエリー、インデックス、リレーション、レコードセットのいずれかの一部)。

Groups	Group	ユーザー アカウント グループ。

Indexes	Index	インデックス。

Parameters	Parameter	パラメータ クエリーに対するパラメータ。

Properties	Property	組み込みプロパティか、ユーザー定義のプロパティ。

QueryDefs	QueryDef	保存されているクエリーの定義。

Recordsets	Recordset	ベース テーブルまたはクエリーの中のレコード。

Relations	Relation	テーブルとクエリーの中のフィールド間のリレーション。

SelBookmarks	Bookmark	DB グリッド コントロールの選択されている列。

TableDefs	TableDef	保存されているテーブルの定義。

Users	User	ユーザー アカウント。

Workspaces	Workspace	Jet データベース エンジンのセッション。


関連項目

データ アクセス オブジェクトのアクティブ化

セキュリティのアクティブ化


Field オブジェクト、Fields コレクション

関連項目	例	プロパティ	メソッド	要約

Field オブジェクトは、共通のデータ型とプロパティを持つデータの列を表します。

Index、QueryDef、Recordset、Relation、TableDef の各オブジェクトは、それぞれ Field オブジェクトのコレクションを持ちます。

解説

Index、QueryDef、Relation、TableDef の各オブジェクトの Fields コレクションには、これらのオブジェクトが表すフィールドの定義が含まれます。Recordset オブジェクトの Fields コレクションは、レコードやデータの行の Field オブジェクトを表します。Recordset オブジェクトのカレント レコードのフィールドを読み込んだり、または関連するフィールドに値を設定したりするには、Recordset オブジェクトの Field オブジェクトを使います。

フィールドを操作するには、Field オブジェクトとそのメソッドやプロパティを使います。たとえば、次のようなことができます。

OrdinalPosition プロパティを使って、Fields コレクションの Field オブジェクトの表示順序を取得または設定できます。

SourceField プロパティと SourceTable プロパティを取得すると、基となるデータを調べることができます。

ForeignName プロパティを使って、Relation オブジェクトの外部テーブルのフィールド名を取得または設定できます。

AllowZeroLength、DefaultValue、Required、ValidateOnSet、ValidationRule、ValidationText の各プロパティを使って、現状の有効な条件を取得または設定できます。

Value プロパティを使って、Recordset オブジェクトのデータを取得または設定できます。

AppendChunk、FieldSize、GetChunk の各メソッドを使って、Recordset オブジェクトの OLE オブジェクト型またはメモ型フィールドの値の取得や設定ができます。

作成して Fields コレクションに追加した Field オブジェクトの Value プロパティは、次のようにして参照することができます。

次のいずれかの構文を使って、Name プロパティの設定を参照します。

Fields("name")

Fields!name

次の構文を使って、Fields コレクションでの位置を指定します。

Fields(0)

注   フィールド名にスペースが含まれる場合は、[Part Number] のように角かっこで囲むか、'Part Number' のようにシングル クォーテーション (' ') で囲むか、"Part Number" のようにダブル クォーテーション (" ") で囲んでください。

たとえば、次のいずれかのようにします。

Fields![long name]

Fields("long name")

Index、TableDef、Relation の各オブジェクトで新しく Field オブジェクトを作成するには、CreateField メソッドを使います。Recordset オブジェクトに含まれる Field オブジェクトにアクセスするときには、Field オブジェクトの Value プロパティを使ってカレント レコードのデータを参照することができます。その Recordset オブジェクトのデータを操作する場合、通常は直接 Fields コレクションを参照せずに、以下に示す構文を使って Recordset オブジェクトの既定のコレクションとして Fields コレクションを参照します。たとえば、ある Recordset オブジェクトのデータを操作するには、次の構文を使って Recordset オブジェクトに含まれる Fields コレクションの Value プロパティを参照します。

Dim Rs As Recordset, Db As Database

Set Db = Workspaces(0).OpenDatabase("MYDB.MDB")

Set Rs = Db.OpenRecordset("Select [Part Name], Size,  " _

& "[Part Type], [Part Age] AS Age FROM MyTable")

' Recordset オブジェクトの Part Name フィールドを取得します。

Debug.Print Rs.Fields(0).Value

' または、間接的なコードを使用します。

Debug.Print Rs(0)	' Part Name フィールドの値を取得します。

Debug.Print Rs("Part Name")	' 同様に Part Name フィールドの値を取得します。

Debug.Print Rs![Part Type]	' Part Type フィールドを取得します。

Debug.Print Rs!Age	' 別名が Age であるPart Age フィールドを取得します。


関連項目

データ アクセス オブジェクトのアクティブ化

AppendChunk メソッド

CreateField メソッド

Delete メソッド

Fields プロパティ

FieldSize メソッド

GetChunk メソッド

Index オブジェクト、Indexes コレクション

Property オブジェクト、Properties コレクション (データ アクセス)

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Relation オブジェクト、Relations コレクション

TableDef オブジェクト、TableDefs コレクション


Field オブジェクト、Fields コレクションの例

次のプログラムでは、TableDef オブジェクトと Field オブジェクトを作成し、作成した TableDef オブジェクトの Fields コレクションに Field オブジェクトを追加し、さらにその TableDef オブジェクトをカレント データベースの TableDefs コレクションに追加します。そして、新しく作成した TableDef オブジェクトの全フィールドと、作成した Field オブジェクトのすべてのプロパティを列挙します。他の例については、Field オブジェクトの要約の一覧にあるメソッドとプロパティを参照してください。

Function EnumerateField () As Integer

Dim MyDatabase As Database

Dim MyTableDef As TableDef

Dim MyField As Field

Dim I As Integer

Set MyDatabase = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyTableDef = MyDatabase.CreateTableDef("MyTable")

Set MyField = MyTableDef.CreateField("MyField", dbDate)

MyTableDef.Fields.Append MyField

MyDatabase.TableDefs.Append MyTableDef

' データベース名を取得します。

Debug.Print

Debug.Print "Database Name: "; MyDatabase.Name

Debug.Print

' MyTableDef 内の全フィールドを列挙します。

Debug.Print "TableDefs: Name; Fields: Name"

For I = 0 To MyTableDef.Fields.Count - 1

Debug.Print "  "; MyTableDef.Name;

Debug.Print "; "; MyTableDef.Fields(I).Name

Next I

Debug.Print

' MyField の組み込みプロパティを列挙します。

Debug.Print "MyField.Name: "; MyField.Name

Debug.Print "MyField.AllowZeroLength: "; MyField.AllowZeroLength

Debug.Print "MyField.Attributes: "; MyField.Attributes

Debug.Print "MyField.CollatingOrder: "; MyField.CollatingOrder

Debug.Print "MyField.DefaultValue: "; MyField.DefaultValue

Debug.Print "MyField.OrdinalPosition: "; MyField.OrdinalPosition

Debug.Print "MyField.Required: "; MyField.Required

Debug.Print "MyField.Size: "; MyField.Size

Debug.Print "MyField.SourceField: "; MyField.SourceField

Debug.Print "MyField.SourceTable: "; MyField.SourceTable

Debug.Print "MyField.Type: "; MyField.Type

Debug.Print "MyField.ValidateOnSet: "; MyField.ValidateOnSet

Debug.Print "MyField.ValidationRule: "; MyField.ValidationRule

Debug.Print "MyField.ValidationText: "; MyField.ValidationText

EnumerateField = True

End Function


Field オブジェクトのプロパティ

凡例

AllowZeroLength

Attributes

CollatingOrder

Count

DataUpdatable

DefaultValue

ForeignName

Name

OrdinalPosition

Required

Size

SourceField

SourceTable

Type

ValidateOnSet

ValidationRule

ValidationText

Value

Field オブジェクトには、Microsoft Access で使うときだけ、設定または変更できるプロパティが追加されている場合があります。


Field オブジェクト、Fields コレクションのメソッド

凡例

Append

AppendChunk

CreateProperty

Delete

FieldSize

GetChunk

Refresh


Field オブジェクト、Fields コレクションの要約

Field オブジェクト

Field オブジェクトには、次のコレクション、メソッド、プロパティがあります。

コレクション

Property

メソッド

AppendChunk

CreateProperty

FieldSize

GetChunk

プロパティ

AllowZeroLength	Name	Type

Attributes	OrdinalPosition	ValidateOnSet

CollatingOrder	Required	ValidationRule

DataUpdatable	Size	ValidationText

DefaultValue	SourceField	Value

ForeignName	SourceTable

Fields コレクション

Fields コレクションには、次のメソッドとプロパティがあります。

メソッド

Append

Delete

Refresh

プロパティ

Count


Table オブジェクト

関連項目	プロパティ	メソッド	要約

Table オブジェクトは、読み込み、書き込み共に可能なデータ アクセス オブジェクトです。一般に、Table オブジェクトは特定の項目情報が入っているデータベースの物理的なテーブルを、論理的に表したものです。

注   Table オブジェクトは、以前のバージョンとの互換性を保つために、サポートされています。できるだけテーブル タイプの Recordset オブジェクトと関連するメソッドやプロパティを使用してください。OpenTable メソッドを使って作成された Table オブジェクトは、テーブル タイプの Recordset オブジェクトとは異なります。この 2 つには類似したプロパティとメソッドがありますが、テーブル タイプの Recordset オブジェクトには重要な機能が追加されています。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

解説

すべてのレコードセットと同様に、テーブルにもレコード (行) とフィールド (列) があります。Table オブジェクトは、他の種類の Recordset オブジェクトとは異なり、1 つのベース テーブルだけを参照できます。

そのオブジェクトの Index プロパティに有効なインデックスを設定すると、Table オブジェクトが返すデータの順序を指定することができます。Microsoft Jet データベース エンジンによるテーブル インデックスの作成と管理を行うには、Microsoft Access を利用するか、TableDefs コレクションの Indexes コレクションに有効な Index オブジェクトを追加するプロシージャを記述します。詳細については、「Index オブジェクト、Indexes コレクション」を参照してください。インデックスを指定しない場合、返されるレコードの順序は予測できません。

Table オブジェクトを作成するには、Database オブジェクトの OpenTable メソッドを使います。

Table オブジェクトは、Jet データベースのベース テーブルで作成できますが、ODBC テーブルやアタッチされたテーブルでは作成できません。FoxPro、dBASE、Paradox、Btrieve などの ISAM データベースを直接開いているときに、これらのレコードセットを使うこともできます。次の例は、dBASE IV のテーブルを使って Table オブジェクトを開きます。

Dim Db As Database

Dim Tb As Table

Set Db = Workspaces(0).OpenDatabase("C:\DBASE", False, False,"DBASE IV")

Set Tb = Db.OpenTable("PARTS.DBF")


関連項目

データ アクセス オブジェクトのアクティブ化

Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例

Database オブジェクト、Databases コレクション

Dynaset オブジェクト

ダイナセット タイプの Recordset オブジェクト

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

Name プロパティ (データ アクセス)

OpenRecordset メソッド

OpenTable メソッド

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

スナップショット タイプの Recordset オブジェクト

テーブル タイプの Recordset オブジェクト

TableDef オブジェクト、TableDefs コレクション


Table オブジェクトのプロパティ

凡例

BOF

Bookmark

Bookmarkable

DateCreated

EOF

Index

LastUpdated

LockEdits

NoMatch

RecordCount

Transactions

Updatable


Table オブジェクトのメソッド

凡例

AddNew

Clone

Close

CreateDynaset

CreateSnapshot

Delete

Edit

ListIndexes

MoveFirst

MoveLast

MoveNext

MovePrevious

Seek

Update


Table オブジェクトの要約

Table オブジェクトには、次のメソッドとプロパティがあります。

メソッド

AddNew	ListIndexes

Clone	MoveFirst

Close	MoveLast

CreateDynaset	MoveNext

CreateSnapshot	MovePrevious

Delete	Seek

Edit	Update

プロパティ

BOF	LastUpdated

Bookmark	LockEdits

Bookmarkable	NoMatch

DateCreated	RecordCount

EOF	Transactions

Index	Updatable


Index オブジェクト、Indexes コレクション

関連項目	例	プロパティ	メソッド	要約

Index オブジェクトは、データベース テーブルのアクセスするレコードの順序と、重複するレコードを受け入れるかどうかとを指定します。また、Index オブジェクトはデータへの効率的なアクセスの方法も提供します。外部データベースの場合、Index オブジェクトは外部テーブル用に確立したインデックスとして使います。

Indexes コレクションは、TableDef オブジェクトに保存されている Index オブジェクトを保持します。

解説

Microsoft Jet データベース エンジンは、すべてのベース テーブルのインデックスを自動的に管理します。いったんインデックスを作成したら、定期的に CompactDatabase メソッドを使う必要があります。インデックスは、ベース テーブルのレコードの追加、変更、削除を行うたびに更新されます。

Jet データベース エンジンは、テーブルを結合し、レコードセットを作成するときにインデックスを使います。Table オブジェクトやテーブル タイプの Recordset オブジェクトが返すレコードの順序はインデックスによって決まりますが、レコードがベース テーブルに保存される順序や、他の種類のレコードセットから返されるレコードの順序は、インデックスとは無関係です。

テーブル タイプの Recordset オブジェクトや Table オブジェクトにアクセスするときは、そのオブジェクトの Index プロパティを使って、アクセスするレコードの順序を指定します。Index プロパティは、Indexes コレクションの既存の Index オブジェクトの Name プロパティに設定してください。このコレクションは、操作している Recordset オブジェクトの下にある TableDef オブジェクトに含まれます。たとえば、出版社の郵便番号をインデックスとして、テーブル タイプの Recordset オブジェクトを並べるには、次のコードを使います。

Set Db = Workspaces(0).OpenDatabase("BIBLIO.MDB")

Set MyRs = Db.OpenRecordset("出版社", dbOpenTable)

MyRs.Index = "郵便番号"

ヒント   テーブルにインデックスを作成する必要はありませんが、インデックスのない大きなテーブルでの、特定のレコードへのアクセスや結合の処理には時間がかかる場合があります。反対に、インデックスを多く設定した場合にも、テーブルの個々のインデックスが更新されるので、データベースの更新に時間がかかることがあります。

インデックスの各 Field オブジェクトの Attributes プロパティによって、返されるレコードの順序が決まるので、Attributes プロパティがそのインデックスを使ったデータアクセス方法を決めることになります。

Index オブジェクトの Fields コレクションの各 Field オブジェクトが、インデックスの構成要素となります。新しい Index オブジェクトを定義するには、コレクションに追加する前に Index プロパティを設定します。それ以降、その Index オブジェクトは使うことができるようになります。

注   TableDef オブジェクトの Updatable プロパティが真 (True) に設定されている場合にだけ、Indexes コレクションの Append メソッドや Delete メソッドを使ったり、既存の Index オブジェクトの Name プロパティの設定を変更したりできます。

Index オブジェクトとそのプロパティを使って、次のようなことができます。

Required プロパティを使って、そのインデックスの Field オブジェクトが Null 値以外の値を必要とするかどうかを調べたり、IgnoreNulls プロパティを使って、インデックスの値として Null 値を含むかどうかを調べたりできます。

Primary プロパティと Unique プロパティを使って、Index オブジェクトが主インデックスかどうか、重複していないかどうかを調べることができます。

テーブルに主キーを設定すると、Jet データベース エンジンは自動的にその主キーを主インデックスとして定義します。主インデックスは、あらかじめ定義されている順序でテーブル内の個々のレコードを識別できる 1 つまたは複数のフィールドから構成されます。主インデックスのフィールドの値は重複が許されないので、Jet データベース エンジンは主インデックスとなる Index オブジェクトの Unique プロパティを自動的に真 (True) に設定します。主インデックスが複数のフィールドから構成されている場合、各フィールドが同じ値を含むことはできますが、すべてのインデックス フィールドの値を組み合わせた値は重複しないようにしてください。主インデックスはそのテーブルの 1 つのキーで構成され、常に主キーと同じフィールドから構成されます。

インデックス フィールドに同じ値や Null 値があるなど、データがそのインデックスに指定した属性に適合しない状況で Index オブジェクトを作成すると、その新しく作成したインデックスに対して Append メソッドを使用したときにトラップできるエラーが発生します。

参照整合性を適用するリレーションを作成すると、Jet データベース エンジンは、設定された Foreign プロパティを、参照しているテーブルの外部キーとして使って、インデックスを自動的に作成します。テーブル間のリレーションを確立すると、Jet データベース エンジンはそのリレーションに違反する追加や変更からデータベースを保護します。連鎖更新と連鎖削除ができるように Relation オブジェクトの Attributes プロパティを設定した場合、Jet データベース エンジンは関連するテーブルのレコードの更新と削除を自動的に行います。

新しく Index オブジェクトを作成するには

1.	TableDef オブジェクトの CreateIndex メソッドを使います。

2.	Index オブジェクトの CreateField メソッドを使い、Index オブジェクトに含める全フィールド (列) に対して Field オブジェクトを作成します。

3.	必要に応じて Index プロパティを設定します。

4.	Fields コレクションに Field オブジェクトを追加します。

5.	Indexes コレクションに Index オブジェクトを追加します。

次に例を示します。

' Index オブジェクトを新しく作成します。

Set MyIndex = MyTableDef.CreateIndex("Another")

Set MyField = MyIndex.CreateField("LastName")

MyIndex.Primary = True

MyIndex.Required = True

MyIndex!Fields.Append MyField

' Indexes コレクションに追加して、Index オブジェクトの定義を保存します。

MyTableDef.Indexes.Append MyIndex

重要   新しく作成するインデックスの属性がデータに適合していることを確認してください。インデックスに重複が許されない場合には、既存のデータ レコードに重複がないようにしなければなりません。重複があると、Jet データベース エンジンはインデックスを作成することができず、トラップできるエラーが発生します。

注   Jet データベース エンジンを使用するデータベースがクラスタ化インデックスをサポートしていない場合、Clustered プロパティは無効です。


関連項目

データ アクセス オブジェクトのアクティブ化

Attributes プロパティ

CompactDatabase メソッド

CreateIndex メソッド

Field オブジェクト、Fields コレクション

Index プロパティ (データ アクセス)

OrdinalPosition プロパティ

Primary プロパティ

Property オブジェクト、Properties コレクション (データ アクセス)

Recordset オブジェクト、Recordsets コレクション

Relation オブジェクト、Relations コレクション

Table オブジェクト

TableDef オブジェクト、TableDefs コレクション


Index オブジェクト、Indexes コレクションの例

次のプログラムでは、1 つの TableDef オブジェクトと 2 つの Field オブジェクトを新しく作成して、作成された TableDef オブジェクトの Fields コレクションに Field オブジェクトを追加し、データベースの TableDefs コレクションに TableDef オブジェクトを追加します。次に、主インデックスとなる Index オブジェクトを新しく作成し、その中に Field オブジェクトを 2 つ入れます。その Index オブジェクトを TableDef オブジェクトの Indexes コレクションに追加し、最後にカレント データベースの Index オブジェクトを列挙します。他の例については、Index オブジェクトの要約の一覧にあるメソッドとプロパティを参照してください。

Function EnumerateIndex () As Integer

Dim MyDatabase As Database

Dim MyTableDef As TableDef

Dim MyField As Field, MyIndex As Index

Dim I As Integer

' ワークスペースとデータベースを取得します。

Set MyDatabase = Workspaces(0).OpenDatabase("MyDB.MDB")	' 2 つのフィールドを持つテーブルを作成します。

Set MyTableDef = MyDatabase.CreateTableDef("MyTable")

Set MyField = MyTableDef.CreateField("Field1", dbLong)

MyField.Required = True	' Null 値は無効です。

MyTableDef!Fields.Append MyField

Set MyField = MyTableDef.CreateField("Field2", dbLong)

MyField.Required = True	' Null 値は無効です。

MyTableDef!Fields.Append MyField

MyDatabase.TableDefs.Append MyTableDef

' 以上 2 つのフィールドの主インデックスを作成します。

Set MyIndex = MyTableDef.CreateIndex("MyIndex")

MyIndex.Primary = True

MyIndex.Unique = True

Set MyField = MyTableDef.CreateField("Field1")

MyIndex.Fields.Append MyField

Set MyField = MyTableDef.CreateField("Field2")

MyIndex.Fields.Append MyField

MyTableDef.Indexes.Append MyIndex

' インデックスとそのフィールドを列挙します。

Debug.Print "Index: "; MyIndex.Name

Debug.Print "  Required: "; MyIndex.Required

Debug.Print "  IgnoreNulls: "; MyIndex.IgnoreNulls

Debug.Print "  Primary: "; MyIndex.Primary

Debug.Print "  Clustered: "; MyIndex.Clustered

Debug.Print "  Unique: "; MyIndex.Unique

Debug.Print "  Foreign: "; MyIndex.Foreign

Debug.Print

Debug.Print "Fields in Index: ";

For I = 0 To MyIndex!Fields.Count - 1

Debug.Print " "; MyIndex.Fields(I).Name;

Next I

Debug.Print

EnumerateIndex = True

End Function

次のプログラムでは、テーブル タイプの Recordset オブジェクトを開き、その Recordset オブジェクトのインデックスを 1 つ選択します。インデックスを設定すると、Microsoft Jet データベース エンジンはインデックスで指定された順序でレコードを返します。テーブル タイプの Recordset オブジェクトでは、インデックスを指定しない場合、特定の順序に従わずにデータベースからレコードが返されます。

Dim Db As Database

Dim MyTable as Recordset, MyIndex As Index

Dim I As Integer

' ワークスペースとデータベースを取得します。

Set Db = Workspaces(0).OpenDatabase("MyDB.MDB")

Set MyTable = Db.OpenRecordset("Titles", dbOpenTable)

MyTable.Index = "MyIndex"

.

.

.


Index オブジェクト、Indexes コレクションのプロパティ

凡例

Clustered

Count

Foreign

IgnoreNulls

Name

Primary

Required

Unique


Index オブジェクト、Indexes コレクションのメソッド

凡例

Append

CreateField

CreateProperty

Delete

Refresh


Index オブジェクト、Indexes コレクションの要約

Index オブジェクト

Index オブジェクトには、次のコレクション、メソッド、プロパティがあります。

コレクション

Fields (既定値)

Properties

メソッド

CreateField

CreateProperty

プロパティ

Clustered	Primary

Foreign	Unique

IgnoreNulls	Required

Name

Indexes コレクション

Indexes コレクションには、次のメソッドとプロパティがあります。

メソッド

Append

Delete

Refresh

プロパティ

Count


Container オブジェクト、Containers コレクション

関連項目	例	プロパティ	要約

Container オブジェクトには、そのコンテナに含まれるオブジェクトの情報が含まれ、Containers コレクションには、データベースで定義される Container オブジェクトがすべて含まれます。

解説

各 Database オブジェクトには、組み込みの Container オブジェクトで構成されている Containers コレクションがあります。これらの Container オブジェクトには、Microsoft Jet データベース エンジンによって定義されたオブジェクトもあれば、他のアプリケーションによって定義されたオブジェクトもあります。次の表に Microsoft Jet データベース エンジンで定義される各 Container オブジェクトの名前と含まれる情報を示します。

Container の名前	情報の種類

Databases	データベース

Tables	保存されているテーブルとクエリー

Relationships	保存されているリレーション

注   上の表にある Container オブジェクトを、同じ名前のコレクションと混同しないように注意してください。Container オブジェクトは、指定された種類のすべての保存されているオブジェクトを参照しますが、Databases コレクションは指定された種類の開いているオブジェクトだけを参照します。

各 Container オブジェクトには Documents コレクションがあり、その中に Document オブジェクトが含まれています。Document オブジェクトは、Container オブジェクトが示すオブジェクトのインスタンスのそれぞれに対応しています。通常、Container オブジェクトは、Documents コレクションの 1 つの Document オブジェクトと共に使われるので、Container オブジェクトを Document オブジェクトが持つ情報にリンクするための手段と考えることができます。

Container オブジェクトは組み込みオブジェクトです。Container オブジェクトを新しく作成したり、既存のオブジェクトを削除したりすることはできません。

既存の Container オブジェクトのプロパティを使って、次のようなことができます。

Name プロパティの値を調べて、そのオブジェクトに定義されている名前を調べることができます。

Owner プロパティを使って、Container オブジェクトの所有者を確認したり、設定したりできます。Owner プロパティを設定するには、Container オブジェクトに対する書き込みの権限が必要であり、このプロパティに既存の User オブジェクトか Group オブジェクトの名前を設定しなければなりません。

Permissions プロパティや UserName プロパティを使って、Container オブジェクトへのアクセス権を設定できます。Container オブジェクトの Documents コレクションに作成されたすべての Document オブジェクトは、これらのアクセス権を継承します。

次の構文で、Container オブジェクトの序数または Name プロパティの設定を利用して、コレクション内の Container オブジェクトを参照することができます。

Containers("name")

注   Jet データベース エンジンが SYSTEM.MDW ファイルを利用できない場合は、Visual Basic で作成されたアプリケーションでセキュリティ機能を利用できません。詳f細については、「セキュリティのアクティブ化」を参照してください。


関連項目

データ アクセス オブジェクトのアクティブ化

セキュリティのアクティブ化

Document オブジェクト、Documents コレクション

Group オブジェクト、Groups コレクション

Property オブジェクト、Properties コレクション (データ アクセス)

User オブジェクト、Users コレクション


Container オブジェクト、Containers コレクション、Document オブジェクト、Documents コレクションの例

次のプログラムでは、カレント データベースの Container オブジェクトと Document オブジェクトのプロパティをすべて列挙します。他の例については、Container オブジェクトと Document オブジェクトの要約の一覧にあるプロパティを参照してください。

Function EnumerateDocuments () As Integer

Dim MyDatabase As Database

Dim MyContainer As Container, MyDocument As Document

Dim I As Integer, J As Integer

Set MyDatabase = Workspaces(0).OpenDatabase("MyDB.MDB")

For J = 0 To MyDatabase.Containers.Count - 1

Set MyContainer = MyDatabase.Containers(J)

Debug.Print ">> Container: "; MyContainer.Name;

Debug.Print "  Owner: "; MyContainer.Owner

Debug.Print "  UserName: "; MyContainer.UserName;

Debug.Print "  Permissions: "; MyContainer.Permissions

Debug.Print

For I = 0 To MyContainer.Documents.Count - 1

Set MyDocument = MyContainer.Documents(I)

Debug.Print " > Document: "; MyDocument.Name;

Debug.Print "  Owner: "; MyDocument.Owner;

Debug.Print "  Container: "; MyDocument.Container

Debug.Print "  UserName: "; MyDocument.UserName;

Debug.Print "  Permissions: "; MyDocument.Permissions

Debug.Print "  DateCreated: "; MyDocument.DateCreated;

Debug.Print "  LastUpdated: "; MyDocument.LastUpdated

Debug.Print

Next I

Next J

EnumerateDocuments = True

End Function


Container オブジェクト、Containers コレクションのプロパティ

凡例

AllPermissions

Count

Inherit

Name

Owner

Permissions

UserName


Container オブジェクト、Containers コレクションの要約

Container オブジェクト

Container オブジェクトには、次のコレクションとプロパティがあります。メソッドはありません。

コレクション

Documents

Properties

プロパティ

Name

Owner

Permissions

UserName

Containers コレクション

Containers コレクションには、次のメソッドとプロパティがあります。

メソッド

Refresh

プロパティ

Count


Database オブジェクト、Databases コレクション

関連項目	例	プロパティ	メソッド	要約

Database オブジェクトは開いているデータベースを表します。

Databases コレクションには、Microsoft Jet データベース エンジンの Workspace オブジェクト内で開かれた、または作成された後に開いている Database オブジェクトがすべて含まれます。

解説

開いたデータベースを操作するには、Database オブジェクトとそのメソッドやプロパティを使います。Database オブジェクトのコレクションを調べることで、テーブル、クエリー、リレーションについて知ることができます。また、コレクションを使って、テーブル、クエリー、レコードセット、リレーションを作成したり、変更したりできます。たとえば、次のようなことができます。

Execute メソッドを使って QueryDef オブジェクトに定義されているクエリーを実行したり、SQL 文字列を ODBC データベースに渡したりできます。

OpenRecordset メソッドを使って、Database オブジェクトから直接 Recordset オブジェクトを作成できます。

Close メソッドを使ってデータベースを閉じることができます。

注   プロジェクトでデータ アクセス オブジェクトを利用する場合は、オブジェクト ブラウザでデータ アクセス (DAO) オブジェクト ライブラリへの参照を設定します。ライブラリへの参照を設定するには、[ツール] - [参照設定] コマンドを選択し、[参照設定] ダイアログ ボックスで適切なデータ アクセス (DAO) オブジェクト ライブラリを選択してください。詳細については、「データ アクセス オブジェクトのアクティブ化」を参照してください。

持続的な Database オブジェクトを新しく作成し、Databases コレクションに追加するには、CreateDatabase メソッドを使います。作成され、追加された Database オブジェクトはディスクに保存されます。データベースを作成したら、次にデータを格納するテーブルを新しく作成する必要があります。また、新しくインデックスを作成したり、テーブルのリレーションを作成したり、既存の外部テーブルをアタッチしたり、Permissions、Groups、Users を使ってデータ保護の設定を行うこともできます。

既存の Database オブジェクトを開くには、OpenDatabase メソッドを使います。このメソッドはオブジェクトを Databases コレクションに追加します。OpenDatabase メソッドは、Workspace オブジェクトを対象とします。OpenDatabase メソッドの既定のオブジェクトである Workspace(0) のオブジェクト、または開いている別の Workspace オブジェクトを使用することができます。

Database オブジェクトにトランザクション メソッド (BeginTrans、CommitTrans、Rollback) のいずれかを使うとき、トランザクションは、その Database オブジェクトが開かれた Workspace オブジェクトで開かれているすべてのデータベースに適用されます。独立したトランザクションを使いたいときは、別に Workspace オブジェクトを開き、それを利用する別の Database オブジェクトを開く必要があります。たとえば、2 つの独立した Database オブジェクトを作成するときは、次のようにします。

Dim Db1 As Database, DB2 As Database, Ws As Workspace, WS2 As Workspace

Dim MyUserName As String

Set Ws = Workspaces(0)	' 既定の Workspace オブジェクトを使用します。

Set Db1 = Ws.OpenDatabase("MYDB.MDB")

' 既定の Workspace オブジェクトの UserName を取得します。

MyUserName = Ws.UserName

' 新しい Workspace オブジェクトを作成します。

Set WS2 = DBEngine.CreateWorkspace("Special", MyUserName, "SpecialPW")

Set Db2 = WS2.OpenDatabase("MYDB.MDB")

OpenDatabase メソッドを使う代わりに、以前からある OpenDatabase 関数を使って Database オブジェクトを作成することもできます。その場合は、常に既定値の Workspaces (0) のオブジェクトが使われます。

OpenDatabase メソッドを使う場合、DBEngine オブジェクトを使う必要はありませんが、特定の Workspace オブジェクトを別のトランザクションで参照する必要があるときは、Database オブジェクトを開く必要があります。

Set Db = DBEngine.Workspaces(0).OpenDatabase("MYDB.MDB")

Set Db = Workspaces(0).OpenDatabase("MYDB.MDB")

Set Db = OpenDatabase("MYDB.MDB")

アタッチ テーブルを持つデータベースを開いても、そのテーブルの TableDef オブジェクトか Field オブジェクトが参照されていない場合、または Recordset オブジェクトがそのデータベースで開かれていない場合は、外部の ODBC データベースや特定の外部ファイルとのリンクは自動的には確立されません。これらのテーブルとのリンクが確立できない場合、トラップできるエラーが発生します。また、データベースのアクセスに権限が必要な場合や、データベースが他のユーザーに占有されている場合にも、トラップできるエラーが発生します。

外部データベースのテーブルにリンクを形成している Jet データベースを開かないで、外部データベースを直接開くこともできます。Jet データベース エンジンは、FoxPro、dBASE、Paradox などのいくつかの外部データベース、および Microsoft SQL Server などの ODBC データベースをサポートしています。詳細については、「OpenDatabase メソッド」を参照してください。たとえば、次のコードを使って FoxPro のデータベースを開くことができます。

Dim Db As Database

Set Db = Workspaces(0).OpenDatabase("C:\FoxFiles", _

False,False,"FoxPro 2.5")

外部データベースを開いた後で、Database オブジェクトの Connect プロパティを調べて、データベースのアクセスに使うパラメータを知ることができます。外部の ODBC データベースを直接開いた場合は、テーブル タイプの Recordset オブジェクトを使うことはできません。

外部の ODBC データベースを直接開くたびに、外部データベース サーバーとの接続が確立されます。Jet データベース エンジンはデータベースに対してさらにクエリーを実行し、アクセスしたテーブルの構造を調べます。ただし、外部データベースを直接開かないでください。これは、以前のバージョンとの互換性を保つためにサポートされています。

Database オブジェクトをディスクからは削除しないで、Databases コレクションから削除するには、Close メソッドを使います。データベース内の開いているすべての Recordset オブジェクトを閉じます。

Database オブジェクトを宣言しているプロシージャを終了すると、ローカルな Database オブジェクトは開いている Recordset オブジェクトと共に閉じられます。すべての更新内容は失われ、トランザクションはすべて元に戻されます。トラップできるエラーは発生しません。ローカルなオブジェクト変数を宣言しているプロシージャを終了する前に、進行中のトランザクションや編集内容を明示的に完了させてから Recordset オブジェクトと Database オブジェクトを閉じることをお勧めします。

最初に開かれるデータベースは Databases(0) です。データベースの Name プロパティの値は、データベース ファイルのパスを指定する文字列です。Connect プロパティはデータベースの種類と、外部データベースとの接続に使う他のパラメータを指定します。Name プロパティの設定を使って任意の Database オブジェクトを参照するには、次の構文を使います。

Databases("name")

次のように数式を指定してオブジェクトを参照することもできます。この例では、Databases コレクションの最初のメンバを参照します。

Databases(0)


関連項目

データ アクセス オブジェクトのアクティブ化

セキュリティのアクティブ化

Container オブジェクト、Containers コレクション

CreateDatabase メソッド

OpenDatabase メソッド

Property オブジェクト、Properties コレクション (データ アクセス)

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Relation オブジェクト、Relations コレクション

TableDef オブジェクト、TableDefs コレクション

Workspace オブジェクト、Workspaces コレクション


Database オブジェクト、Databases コレクションの例

次のプログラムでは、Database オブジェクトを新しく作成し、既定の Workspace オブジェクトで開きます。これによって、Database オブジェクトが Databases コレクションに追加されます。その後で、それぞれの Database オブジェクトにあるすべてのコレクションと、作成した Database オブジェクトのプロパティを列挙し、最後に作成した Database を閉じます。他の例については、Database オブジェクトの要約の一覧にあるメソッドとプロパティを参照してください。

Function EnumerateDatabase () As Integer

Dim DefaultWorkspace As Workspace

Dim MyDatabase As Database, TempDatabase As Database

Dim I As Integer, J As Integer

Set DefaultWorkspace = Workspaces(0)

Set MyDatabase = DefaultWorkspace.CreateDatabase("MyDB.MDB", _  	dbLangGeneral)

' 開いているすべてのデータベースを列挙します。

For J = 0 To DefaultWorkspace.Databases.Count - 1

Set TempDatabase = DefaultWorkspace.Databases(J)

Debug.Print

Debug.Print "Enumeration of Databases("; J; "): "; TempDatabase.Name

Debug.Print

' コンテナを列挙します。

Debug.Print "Container: Name, Owner"

For I = 0 To TempDatabase.Containers.Count - 1

Debug.Print "  "; TempDatabase.Containers(I).Name;

Debug.Print ", "; TempDatabase.Containers(I).Owner

Next I

Debug.Print

' クエリーの定義を列挙します。

Debug.Print "QueryDef: Name"

For I = 0 To TempDatabase.QueryDefs.Count - 1

Debug.Print "  "; TempDatabase.QueryDefs(I).Name

Next I

Debug.Print

' Recordset オブジェクトを列挙します。

' Recordset オブジェクトを開いていないため、出力されません。

Debug.Print "Recordset: Name"

For I = 0 To TempDatabase.Recordsets.Count - 1

Debug.Print "  "; TempDatabase.Recordsets(I).Name

Next I

Debug.Print

' リレーションを列挙します。

Debug.Print "Relation: Name, Table, ForeignTable"

For I = 0 To TempDatabase.Relations.Count - 1

Debug.Print "  "; TempDatabase.Relations(I).Name;

Debug.Print ", "; TempDatabase.Relations(I).Table;

Debug.Print ", "; TempDatabase.Relations(I).ForeignTable

Next I

Debug.Print

' テーブルの定義を列挙します。

Debug.Print "TableDef: Name, DateCreated"

For I = 0 To TempDatabase.TableDefs.Count - 1

Debug.Print "  "; TempDatabase.TableDefs(I).Name;

Debug.Print ", "; TempDatabase.TableDefs(I).DateCreated

Next I

Debug.Print

Next J

' MyDatabase の組み込みプロパティを列挙します。

Debug.Print "MyDatabase.Name: "; MyDatabase.Name

Debug.Print "MyDatabase.CollatingOrder: "; MyDatabase.CollatingOrder

Debug.Print "MyDatabase.Connect: "; MyDatabase.Connect

Debug.Print "MyDatabase.QueryTimeout: "; MyDatabase.QueryTimeout

Debug.Print "MyDatabase.Transactions: "; MyDatabase.Transactions

Debug.Print "MyDatabase.Updatable: "; MyDatabase.Updatable

Debug.Print "MyDatabase.V1xNullBehavior: "; MyDatabase.V1xNullBehavior

Debug.Print

MyDatabase.Close	' ファイルはディスクに残ります。

EnumerateDatabase = True

End Function


Database オブジェクト、Databases コレクションのプロパティ

凡例

CollatingOrder

Connect

Count

Name

QueryTimeout

Transactions

Updatable

Version

V1xNullBehavior


Database オブジェクト、Databases コレクションのメソッド

凡例

Close

CreateProperty

CreateQueryDef

CreateRelation

CreateTableDef

Execute

ExecuteSQL

MakeReplica

OpenRecordset

Refresh

Synchronize


Database オブジェクト、Databases コレクションの要約

Database オブジェクト

Database オブジェクトには、次のコレクション、メソッド、プロパティがあります。

コレクション

Containers	Relations

QueryDefs	TableDefs (既定値)

Recordsets

メソッド

BeginTrans	CreateTableDef

Close	DeleteQueryDef

CommitTrans	Execute

CreateDynaset	ExecuteSQL

CreateProperty	OpenQueryDef

CreateQueryDef	OpenRecordset

CreateRelation	OpenTable

CreateSnapshot	Rollback

プロパティ

CollatingOrder	Transactions

Connect	Updatable

Name	Version

QueryTimeout

RecordsAffected

Databases コレクション

Databases コレクションには、次のプロパティがあります。メソッドはありません。

プロパティ

Count

注   プロジェクトでデータ アクセス オブジェクトを利用する場合は、オブジェクト ブラウザでデータ アクセス (DAO) オブジェクト ライブラリへの参照を設定します。ライブラリへの参照を設定するには、[ツール] - [参照設定] コマンドを選択し、[参照設定] ダイアログ ボックスで適切なデータ アクセス (DAO) オブジェクト ライブラリを選択してください。詳細については、「データ アクセス オブジェクトのアクティブ化」を参照してください。


DBEngine オブジェクト

関連項目	例	プロパティ	メソッド	要約

DBEngine オブジェクトは、Microsoft Jet データベース エンジンを表します。このオブジェクトはデータ アクセス オブジェクトの最上位のオブジェクトとして階層内の他のすべてのオブジェクトを含んでおり、また階層内の他のオブジェクトをすべて制御します。

解説

DBEngine オブジェクトは、Jet データベース エンジンの制御、プロパティの操作、コレクションの要素ではない一時的なオブジェクトに対する処理の実行などに使います。たとえば、次のようなことができます。

Version プロパティを使って、Jet データベース エンジンのバージョン番号を取得できます。LoginTimeout プロパティを使って、ODBC ログイン タイムアウトの取得と設定を行えます。RegisterDatabase メソッドを使って、ODBC に関する情報を Jet データベース エンジンに提供できます。

Idle メソッドを使って、まだ完了していない処理を Jet データベース エンジンが完了するようにしたり、CompactDatabase メソッドや RepairDatabase メソッドを使って、データベース ファイルを管理したりできます。

CreateWorkspace メソッドを使って、セッションを新しく作成できます。

Errors コレクションを使って、データ アクセス エラーの詳細を調べることができます。

DBEngine オブジェクトに Nothing を設定すると、次に Jet データベース エンジン操作するときに、Jet データベース エンジンを強制的に再初期化できます。

注   プロジェクトでデータ アクセス オブジェクトを利用する場合は、オブジェクト ブラウザでデータ アクセス (DAO) オブジェクト ライブラリへの参照を設定します。ライブラリへの参照を設定するには、[ツール] - [参照設定] コマンドを選択し、[参照設定] ダイアログ ボックスで適切なデータ アクセス (DAO) オブジェクト ライブラリを選択してください。詳細については、「データ アクセス オブジェクトのアクティブ化」を参照してください。

DBEngine オブジェクトはあらかじめ定義されているオブジェクトで、他の DBEngine オブジェクトを追加することはできません。DBEngine オブジェクトに属しているコレクションを参照したり、このオブジェクトを対象とするメソッドやプロパティを参照したりするには、次の構文を使います。

DBEngine.[collection | method | property]

DBEngine オブジェクトを他のコレクションの要素にすることはできません。

注   Microsoft Jet データベース エンジンのインスタンスは特定のシステムで 10 個までに制限されています。したがって、Jet データベース エンジン Version 2.5 または Version 3.0 を同時に使うアプリケーションを、10 個まで実行できます。


関連項目

データ アクセス オブジェクトのアクティブ化

セキュリティのアクティブ化

データ アクセス オブジェクトとコレクション

Error オブジェクト、Errors コレクション

Property オブジェクト、Properties コレクション (データ アクセス)

Workspace オブジェクト、Workspaces コレクション


DBEngine オブジェクトの例

次のプログラムでは、DBEngine オブジェクトのコレクションを列挙します。他の例については、DBEngine オブジェクトのメソッドとプロパティを参照してください。

Function EnumerateDBEngine () As Integer

Dim MyWorkspace As Workspace

Dim I As Integer

Debug.Print

Debug.Print "Enumeration of DBEngine"

Debug.Print

' すべてのワークスペースを列挙します。

Debug.Print "Workspaces: Name, UserName"

For I = 0 To Workspaces.Count - 1

Set MyWorkspace = Workspaces(I)

Debug.Print "  "; MyWorkspace.Name;

Debug.Print ", "; MyWorkspace.UserName

Next I

Debug.Print

' 組み込みプロパティを列挙します。

Debug.Print "DBEngine.Version: "; DBEngine.Version

Debug.Print "DBEngine.LoginTimeout: "; DBEngine.LoginTimeout

Debug.Print

EnumerateDBEngine = True

End Function


DBEngine オブジェクトのプロパティ

DefaultPassword

DefaultUser

IniPath

LoginTimeout

SystemDB

Version


DBEngine オブジェクトのメソッド

CompactDatabase

CreateWorkspace

Idle

RegisterDatabase

RepairDatabase


DBEngine オブジェクトの要約

DBEngine オブジェクトには、次のコレクション、メソッド、プロパティがあります。

コレクション

Errors

Properties

Workspaces (既定値)

メソッド

CompactDatabase	RegisterDatabase

CreateWorkspace	RepairDatabase

Idle

プロパティ

DefaultPassword

DefaultUser

IniPath

LoginTimeout

Version

注   プロジェクトでデータ アクセス オブジェクトを利用する場合は、オブジェクト ブラウザでデータ アクセス (DAO) オブジェクト ライブラリへの参照を設定します。ライブラリへの参照を設定するには、[ツール] - [参照設定] コマンドを選択し、[参照設定] ダイアログ ボックスで適切なデータ アクセス (DAO) オブジェクト ライブラリを選択してください。詳細については、「データ アクセス オブジェクトのアクティブ化」を参照してください。


Dynaset オブジェクト

関連項目	プロパティ	メソッド	要約

Dynaset オブジェクトは、更新可能なレコードを持つクエリーの結果です。すべてのレコードセットと同じように、Dynaset オブジェクトにもレコード (行) とフィールド (列) があります。Dynaset オブジェクトは動的なレコードセットで、ベースとなるテーブル (1 つまたは複数) にレコードを追加、変更、削除することができます。Dynaset オブジェクトは、1 つ以上のデータベースに含まれる 1 つ以上のテーブルのフィールドを保持することができます。

注   Dynaset オブジェクトは、以前のバージョンとの互換性を保つために、サポートされています。できるだけダイナセット タイプの Recordset オブジェクトとそれに関連するメソッド、プロパティを使用してください。CreateDynaset メソッドを使って作成した Dynaset オブジェクトは、ダイナセット タイプの Recordset オブジェクトとは異なります。この 2 つには類似したプロパティやメソッドがありますが、ダイナセット タイプの Recordset オブジェクトには追加されている重要な機能があります。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

解説

Microsoft Jet データベース エンジンは、Dynaset オブジェクトをデータベース テーブルのレコードを参照する、ローカルに保存される一連のポインタとして作成します。現在選択されているレコードに対してだけアクセス可能です。

Dynaset オブジェクトの Field オブジェクトが参照されるまでは、レコードはメモリにロードされません。Field オブジェクトが参照された時点でカレント データがデータベースから読み込まれます。他のユーザーがレコードを削除または変更したために、選択されたレコードが利用できない場合、トラップできるエラーが発生します。

Dynaset オブジェクトのポインタを格納するためのローカル メモリが不足している場合、Jet データベース エンジンは Dynaset オブジェクトを一時的に環境変数 TEMP の指定したディスクに保存します。このディスクの空き容量がなくなると、トラップできるエラーが発生します。

オブジェクト変数として Dynaset オブジェクトを作成するには、Database オブジェクト、他の Dynaset オブジェクト、QueryDef オブジェクトのいずれかのオブジェクトの CreateDynaset メソッドを使います。

Dynaset オブジェクトが返すレコードの順序は、CreateDynaset メソッドか QueryDef オブジェクトで、SQL ステートメントの ORDER BY 句を使って特定の順序を指定した場合を除いて、予測できません。

Dynaset オブジェクトの既定のコレクションは Fields コレクションで、Field オブジェクトの既定プロパティは Value プロパティです。そのため、Dynaset オブジェクトの Value プロパティは、カレント レコードの指定されたフィールドのデータを含みます。たとえば、次に示すステートメントは、両方とも Value プロパティを 99 に指定します。DS は開いている Dynaset オブジェクトの名前です。

DS.Fields("PubID").Value = 99

DS("PubID") = 99

N$ = "PubID" : DS(N$) = 99

DS(0) = 99

N = 0 : DS(N) = 99

すべてのレコードセットと同じように、Dynaset オブジェクトを作成すると先頭のレコードがカレント レコードになります。カレント レコードの位置を変更するには、MoveNext、MovePrevious、MoveFirst、MoveLast の各メソッドのいずれかを使います。

注   Movexxx メソッドは、以前のバージョンの Dynaset オブジェクトでは使用できません。このメソッドは、Recordset オブジェクトに限って使用できます。

FindFirst メソッドなどの Findxxx メソッドを使って、条件を満たす特定のレコードの位置を調べることもできます。レコードが見つからない場合は、NoMatch プロパティが真 (True) に設定されます。

すべてのレコードを対象とする場合に Dynaset オブジェクトの先頭と最後を確認するには、BOF プロパティと EOF プロパティの 2 種類のプロパティを使います。

ODBC データベースや大きな Dynaset オブジェクトを処理する場合に、Find メソッド、Sort プロパティ、Filter プロパティを使うと、速度が極端に低下することがあります。このため、速度を向上させるには、ORDER BY 句、WHERE 句、またはパラメータ クエリーを利用するか、特定のインデックスを持つレコードを検索する QueryDef オブジェクトを使います。

マルチユーザー環境では、複数のユーザーが 1 つの Dynaset オブジェクトを開いて同じレコードを参照する場合もあります。Dynaset オブジェクトは動的なので、あるユーザーがレコードを変更すると、その直後に他のユーザーは変更されたデータにアクセスできます。ユーザーがレコードを追加した場合は、Dynaset オブジェクトを再構築するまでその変更は反映されません。Dynaset オブジェクトを再構築するには、クエリーを再実行してください。

あるユーザーがレコードを削除すると、他のユーザーには、そのレコードにアクセスしようとしたときだけレコードの削除が通知されます。データの整合性を維持するために排他的ロックを行うと、Edit メソッドや Update メソッドを行っている間、カレント レコードを保持しているページ (2KB) がロックされるので、複数のユーザーが同時に同じレコードを更新することはできません。

また、すべての Dynaset オブジェクトのすべての Field オブジェクトが更新できるわけではありません。更新可能かどうかを調べるには、Field オブジェクトの Updatable プロパティを使います。いくつかの状況で、Dynaset オブジェクトを更新できないことがあります。詳細については、「Recordset オブジェクト、Recordsets コレクション」を参照してください。

Dynaset オブジェクトにレコードを追加すると、そのレコードは Dynaset オブジェクトの最後に追加され、さらにベース テーブルにも追加されますが、他の既存の Dynaset オブジェクトや Snapshot オブジェクトには追加されません。Table オブジェクトとテーブル タイプ Recordset オブジェクトでは、追加されたレコードが即座に反映されます。レコードセットはどの種類の場合でも、新しいオブジェクトの作成時に変更が反映されます。

通常、小さな Snapshot オブジェクトは、メモリか一時的にディスクにレコードが保存されるので、Jet データベース エンジンがページのロックやマルチユーザーを扱う必要がないため、作成やアクセスが Dynaset オブジェクトよりも高速ですが、Snapshot オブジェクトを使うとレコード全体がメモリにロードされるので、ローカル リソースの消費が Dynaset オブジェクトより大きくなります。

同じレコードセットを参照する Recordset オブジェクトの変数を、複数使うことができます。フォームの宣言セクションで Dim ステートメントを使って作成したオブジェクト変数は、フォームを開いているときだけ存在し、フォームがアンロードされると閉じられる点に注意してください。同様に、プロシージャ内部で作成されたオブジェクト変数は、プロシージャが終了した時点で無効になります。Dynaset、Snapshot、Table、Database などのデータ アクセス オブジェクトの宣言を含むプロシージャを終了する前に、明示的にすべての未処理のトランザクションや編集を完了し、それからこれらのデータ アクセス オブジェクトをすべて閉じることが必要です。

Clone メソッドを使って Dynaset オブジェクトの複製を作成することもできます。この方法は、同じレコードを使って新しく Dynaset オブジェクトを作成する方法に比べて消費するメモリが少なく、両オブジェクトに対して同じブックマークを使用できます。Clone メソッドを使う場合の利点は、同じレコードセットに対して複数のカレント レコード ポインタを設定できることです。

Dynaset オブジェクトを作成すると、Sort プロパティや Filter プロパティを使ってその内容と順序を指定することができます。しかし比較的大きなデータ セットに対しては、ORDER BY 句や WHERE 句を変更してクエリーを再実行する方が効率的な場合があります。

EditMode プロパティは、編集操作または追加操作が進行中かどうかを示します。この EditMode プロパティは、データ (Data) コントロールを既定の機能以外で使用する場合、または Visual Basic Professional Edition で データ コントロールを使用しない場合に利用できます。たとえば、EditMode プロパティの値と Validate イベント プロシージャの引数 action の値をチェックし、それらの値によって UpdateRecord メソッドを呼び出すかどうかを決定するといったことができます。また、LockEdits プロパティの設定値が真 (True) で、EditMode プロパティの設定値が定数 dbEditInProgress と同じであるかどうかをチェックすると、カレントのデータ ページがロックされているかどうかを確認することができます。


関連項目

データ アクセス オブジェクトのアクティブ化

データ アクセスの概要

ダイナセット タイプの Recordset オブジェクト

Field オブジェクト、Fields コレクション

ORDER BY 句 (SQL)

レコードセットへのデータの取得

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Recordset プロパティ

Snapshot オブジェクト

Table オブジェクト

WHERE 句 (SQL)


Dynaset オブジェクトのプロパティ

BOF

Bookmark

Bookmarkable

EditMode

EOF

Filter

LockEdits

NoMatch

RecordCount

Sort

Transactions

Updatable


Dynaset オブジェクトのメソッド

AddNew

Clone

Close

CreateDynaset

CreateSnapshot

Delete

Edit

FindFirst

FindLast

FindNext

FindPrevious

ListFields

MoveFirst

MoveLast

MoveNext

MovePrevious

Update


Dynaset オブジェクトの要約

Dynaset オブジェクトには、次のメソッドとプロパティがあります。

メソッド

AddNew	FindNext

Clone	FindPrevious

Close	ListFields

CreateDynaset	MoveFirst

CreateSnapshot	MoveLast

Delete	MoveNext

Edit	MovePrevious

FindFirst	Update

FindLast

プロパティ

BOF	NoMatch

Bookmark	RecordCount

Bookmarkable	Sort

EOF	Transactions

Filter	Updatable

LockEdits


Snapshot オブジェクト

関連項目	プロパティ	メソッド 	要約

Snapshot オブジェクトはクエリーの結果ですが、更新可能なレコードを持ちません。Recordset、Table、Dynaset の各オブジェクトのように、Snapshot オブジェクトにもレコード (行) とフィールド (列) があります。Snapshot オブジェクトは、一連のレコードの静止イメージであり、データの検索やレポートの作成に使うことができます。また、Snapshot オブジェクトは、データベースに含まれる、1 つ以上のテーブルのフィールドを保持することができます。

注   Snapshot オブジェクトは、以前のバージョンとの互換性を保つために、サポートされています。できるだけスナップショット タイプの Recordset オブジェクトとそのメソッドやプロパティを使用してください。CreateSnapshot メソッドを使って作成された Snapshot オブジェクトは、スナップショット タイプの Recordset オブジェクトとは異なります。この 2 つには類似したプロパティやメソッドがありますが、スナップショット タイプの Recordset オブジェクトには追加されている重要な機能があります。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

解説

Microsoft Jet データベース エンジンは、1 つ以上のテーブルからレコードを環境変数 TEMP の指定に従って、メモリまたはディスク (RAM ディスクの場合もあります) にコピーして Snapshot オブジェクトを作成します。ODBC テーブルで Snapshot オブジェクトを使う場合、ローカルの格納領域にコピーされるデータには必ず OLE オブジェクト型またはメモ型のフィールドが含まれます。したがって、大きな Snapshot オブジェクトの場合、その大きさに応じたローカルの格納領域を必要となります。Snapshot オブジェクトでは、現在選択されているレコードのみアクセス可能です。

オブジェクト変数に対して Snapshot オブジェクトを作成するには、Database オブジェクト、Dynaset オブジェクト、他の Snapshot オブジェクトのいずれかのオブジェクトの CreateSnapshot メソッドを使います。一連の同じレコードを持つ Snapshot オブジェクトを複数作成できます。

Snapshot オブジェクトが返すレコードの順序は、SQL ステートメントか QueryDef オブジェクトで ORDER BY 句を使って指定した場合を除いて、予測できません。

すべてのレコードセットと同じように、Dynaset オブジェクトを作成するとレコードの先頭がカレント レコードになります。カレント レコードの位置を変更するには、MoveNext、MovePrevious、MoveFirst、MoveLast のいずれかのメソッドを使います。Snapshot オブジェクトに登録できるレコードがない場合、RecordCount プロパティが 0 に設定され、カレント レコードはありません。

注   Movexxx メソッドは、以前のバージョンの Snapshot オブジェクトでは使用できません。このメソッドは、Recordset オブジェクトに限って使用できます。

FindFirst メソッドなどの Findxxx メソッドを使って、条件を満たす特定の位置のレコードに移動することもできます。レコードが見つからない場合は、NoMatch プロパティが真 (True) に設定されます。

Snapshot オブジェクトを作成すると、Sort プロパティや Filter プロパティを使って順序や内容の詳細を決めることが可能ですが、比較的大きな Snapshot オブジェクトについては、ORDER BY 句か WHERE 句を変更してクエリーを再実行した方が効率的な場合があります。

すべてのレコードを対象とする場合に Snapshot オブジェクトの先頭と最後を確認するには、BOF プロパティと EOF プロパティの 2 種類のプロパティを使います。

Clone メソッドを使って Snapshot オブジェクトの複製を作成することもできます。この方法は、同じレコードを使って新しく Snapshot オブジェクトを作成する方法に比べて消費するメモリが少なく、どちらのオブジェクトに対しても同じブックマークを使用できます。Clone メソッドを使う場合の利点は、同じレコードセットに対して複数のカレント レコード ポインタを設定でき、ブックマークを相互に交換可能なことです。

小さな Snapshot オブジェクトは、通常、メモリか一時的なディスク スペースにレコードが保存されるので、Jet データベース エンジンがページのロックやマルチユーザーを扱う必要がないため、作成やアクセスが Dynaset オブジェクトよりも高速です。しかし、Snapshot オブジェクトを使用するとレコード全体がメモリにロードされるので、ローカル リソースの消費が Dynaset オブジェクトより大きくなります。比較的大きなデータベースや外部のデータベースに対しては、Dynaset オブジェクトを使用した方がアクセスが高速になります。


関連項目

データ アクセス オブジェクトのアクティブ化

データ アクセスの概要

Dynaset オブジェクト

Field オブジェクト、Fields コレクション

ORDER BY 句 (SQL)

レコードセットへのデータの取得

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

スナップショット タイプの Recordset オブジェクト

Table オブジェクト

WHERE 句 (SQL)


Snapshot オブジェクトのプロパティ

BOF

Bookmark

Bookmarkable

EOF

Filter

RecordCount

Sort


Snapshot オブジェクトのメソッド

Clone

Close

CreateDynaset

CreateSnapshot

FindFirst

FindLast

FindNext

FindPrevious

ListFields

MoveFirst

MoveLast

MoveNext

MovePrevious


Snapshot オブジェクトの要約

Snapshot オブジェクトには、次のメソッドとプロパティがあります。

メソッド

Clone	FindPrevious

Close	ListFields

CreateDynaset	MoveFirst

CreateSnapshot	MoveLast

FindFirst	MoveNext

FindLast	MovePrevious

FindNext

プロパティ

BOF	Filter

Bookmark	RecordCount

Bookmarkable	Sort

EOF


Group オブジェクト、Groups コレクション

関連項目	例	プロパティ	メソッド	要約

セキュリティを設定したワークグループとして、Workspace オブジェクトを操作する場合、Group オブジェクトは共通のアクセスする権限を持っているユーザー アカウントのグループを表します。

Groups コレクションには、Workspace オブジェクトかユーザー アカウントが保存されているすべての Group オブジェクトが含まれます。

解説

Group オブジェクトを作成し、そのオブジェクトの名前を使って、作業を行うデータベースまたはデータベース オブジェクト (テーブル、クエリー) を表す Document オブジェクトを使ってデータベース、テーブル、クエリーにアクセス権を確立して無効なアクセスからの保護を実施します。

注   Microsoft Jet データベース エンジンが SYSTEM.MDW ファイルを利用できない場合は、Visual Basic で作成されたアプリケーションでセキュリティ機能を利用できません。詳細については、「セキュリティのアクティブ化」を参照してください。

既存の Group オブジェクトを User オブジェクトの Groups コレクションに追加して、その Group オブジェクトのユーザー アカウントのメンバーシップを確立することができます。また、Group オブジェクトの Users コレクションに User オブジェクトを追加して、ユーザー アカウントにそのグループのアクセス権を与えることもできます。オブジェクトを追加した直後以外に Groups コレクションまたは Users コレクションを使う場合、Refresh メソッドを使ってデータベースからの現在の情報をコレクションに反映させる必要がある場合もあります。

Group オブジェクトのプロパティを使って、次のようなことができます。

既存の Group オブジェクトの Name プロパティの設定を調べ、その名前を取得できます。既存の Group オブジェクトの PID プロパティを調べることはできません。

新しく作成した、まだどのオブジェクトにも追加していない Group オブジェクトの Name プロパティと PID プロパティを設定して、その Group オブジェクトの ID を確立できます。

Microsoft Jet データベース エンジンには、Admins、Users、Guests という名前を持つ 3 種類の Group オブジェクトがあらかじめ定義されています。

作成後に Groups コレクションに追加した Group オブジェクトは、次の構文でオブジェクトの Name プロパティの設定を使って参照することができます。

Groups("name")

Group オブジェクトを新しく作成するには、User オブジェクトまたは Workspace オブジェクトに対して CreateGroup メソッドを使います。

注   データ アクセス オブジェクトを Jet データベース エンジン Version 1.x 用の SYSTEM.MDW ファイルと共に使用している場合、Group オブジェクトの Users コレクションと User オブジェクトの Groups コレクションは常に空になります。たとえば、ユーザーがどのグループのメンバであるか、または特定のグループにどのユーザーが属しているかを調べることはできません。これを解決するには、システム データベースを Jet データベース エンジン Version 3.0 用の SYSTEM.MDW にする必要があります。詳細については、「CompactDatabase メソッド」を参照してください。


関連項目

データ アクセス オブジェクトのアクティブ化

セキュリティのアクティブ化

CreateGroup メソッド

Document オブジェクト、Documents コレクション

Property オブジェクト、Properties コレクション (データ アクセス)

User オブジェクト、Users コレクション

Workspace オブジェクト、Workspaces コレクション


Group オブジェクト、Groups コレクション、User オブジェクト、Users コレクションの例

次のプログラムでは、Group オブジェクトと User オブジェクト、Groups コレクションと Users コレクションの使い方を示します。まず、Name、PID、Password の各プロパティをそれぞれ "Pat Smith"、"abc123DEF456"、"My Secret" に設定して User オブジェクトを新しく作成し、既定の Workspace オブジェクトの Users コレクションに追加します。次に、Name プロパティ、PID プロパティをそれぞれ "Accounting" と "UVW987xyz654" に設定して Group オブジェクトを新しく作成し、既定の Workspace オブジェクトの Groups コレクションに追加します。さらに、ユーザー Pat Smith を Accounting グループに追加し、最後に、既定の Workspace オブジェクトのコレクションに含まれる User オブジェクトと Group オブジェクトを列挙します。他の例については、Group オブジェクトや User オブジェクトの要約の一覧にあるメソッドとプロパティを参照してください。

Function EnumerateUserGroup () As Integer

Dim MyWorkspace As Workspace

Dim MyUser As User, TempUser As User

Dim MyGroup As Group, TempGroup As Group

Dim I As Integer, J As Integer

' 新しいユーザーを作成し、追加します。

Set MyWorkspace = Workspaces(0)

Set MyUser = MyWorkspace.CreateUser("Pat Smith", "abc123DEF456", "My Secret")

MyWorkspace.Users.Append MyUser

' 新しいグループを作成し、追加します。

Set MyGroup = MyWorkspace.CreateGroup("Accounting", "UVW987xyz654")

MyWorkspace.Groups.Append MyGroup

' 新しいグループに新しいユーザーを追加するか、その逆を行います (どちらか一方を行います)。

' 次のコードで、両方のコレクションを参照するので、更新を行います。

' グループにユーザーを追加してユーザーを更新するか、

Set MyUser = MyWorkspace.CreateUser("Pat Smith")

MyWorkspace.Groups![Accounting].Users.Append MyUser

MyWorkspace.Users![Pat Smith].Groups.Refresh

' または、ユーザーにグループを追加してグループを更新します。

'  Set MyGroup = MyWorkspace.CreateGroup("Accounting")

'  MyWorkspace.Users![Pat Smith].Groups.Append MyGroup

'  MyWorkspace.Groups![Accounting].Users.Refresh

' ユーザーをすべて列挙します。

For J = 0 To MyWorkspace.Users.Count - 1

Set TempUser = MyWorkspace.Users(J)

Debug.Print

Debug.Print "Enumeration of Users("; J; "): "; TempUser.Name

Debug.Print

' グループを列挙します。

Debug.Print "Group: Name"

For I = 0 To TempUser.Groups.Count - 1

Debug.Print "  "; TempUser.Groups(I).Name

Next I

Next J

' グループをすべて列挙します。

For J = 0 To MyWorkspace.Groups.Count - 1

Set TempGroup = MyWorkspace.Groups(J)

Debug.Print

Debug.Print "Enumeration of Groups("; J; "): "; TempGroup.Name

Debug.Print

' ユーザーを列挙します。

Debug.Print "User: Name"

For I = 0 To TempGroup.Users.Count - 1

Debug.Print "  "; TempGroup.Users(I).Name

Next I

Next J

EnumerateUserGroup = True

End Function


Group オブジェクト、Groups コレクションのプロパティ

凡例

Count

Name

PID


Group オブジェクト、Groups コレクションのメソッド

凡例

Append

CreateUser

Delete

Refresh


Group オブジェクト、Groups コレクションの要約

Group オブジェクト

Group オブジェクトには、次のコレクション、メソッド、プロパティがあります。

コレクション

Properties

Users (既定値)

メソッド

CreateUser

プロパティ

Name

PID

Groups コレクション

Groups コレクションには、次のメソッドとプロパティがあります。

メソッド

Append

Delete

Refresh

プロパティ

Count

注   Microsoft Jet データベース エンジンが SYSTEM.MDW ファイルを利用できない場合は、Visual Basic で作成されたアプリケーションでセキュリティ機能を利用できません。詳細については、「セキュリティのアクティブ化」を参照してください。


Parameter オブジェクト、Parameters コレクション

関連項目	例	プロパティ	メソッド	要約

Parameter オブジェクトは、パラメータ クエリーによって作成される QueryDef オブジェクトに関連するパラメータを表します。

Parameters コレクションには、QueryDef オブジェクトのすべての Parameter オブジェクトが含まれます。

解説

Parameter オブジェクトのプロパティを使うと、クエリーを実行する前に変更可能なクエリーのパラメータを設定することができます。たとえば、次のようなことができます。

 	Name プロパティの設定を調べて、パラメータの名前を取得できます。

 	Parameter オブジェクトの既定のパラメータである Value プロパティの設定を調べたり、値を設定したりできます。次に例を示します。

MyQueryDef.Parameters(0) = 5

 	Type プロパティの設定を調べて、Parameter オブジェクトのデータ型を取得できます。

Parameters コレクションは、既存のパラメータに関する情報だけを提供します。Parameters コレクションにオブジェクトを追加したり、削除したりすることはできません。

Parameters コレクションがサポートしているメソッドは、Refresh メソッドだけです。


関連項目

データ アクセス オブジェクトのアクティブ化

Property オブジェクト、Properties コレクション (データ アクセス)

QueryDef オブジェクト、QueryDefs コレクション


Parameter オブジェクト、Parameters コレクションの例

次のプログラムでは、既存のクエリーに対して 2 つのクエリー パラメータを作成して、QueryDef オブジェクトから Recordset オブジェクトを開くことによってクエリーを実行し、各パラメータのプロパティを印刷します。パラメータのデータ型は、日付型 (Date) です。他の例については、Parameter オブジェクトの要約の一覧にあるメソッドとプロパティを参照してください。

Dim MyDB As Database

Dim MyQuery As QueryDef, MyParameter As Parameter

Dim MyRecordset As Recordset

Dim X As Integer

Set MyDB = Workspaces(0).Databases(0)

Set MyQuery = MyDB.QueryDefs("ParamQuery")	' 既存の QueryDef オブジェクトを開きます。

MyQuery.Parameters("Order Date") = "10/11/94"	' パラメータを設定します。

MyQuery.Parameters("Ship Date") = "11/4/94"

Set MyRecordset = MyQuery.OpenRecordset()	' Recordset オブジェクトを開きます。

For X = 0 To MyQuery.Parameters.Count - 1

Set MyParameter = MyQuery.Parameters(X)

Debug.Print MyParameter.Name	' Parameter オブジェクトのプロパティを印刷します。

Debug.Print MyParameter.Type

Debug.Print MyParameter.Value

Next X

MyRecordset.Close


Parameter オブジェクトのプロパティ

凡例

Count

Name

Type

Value


Parameter オブジェクト、Parameters コレクションのメソッド

凡例

Refresh


Parameter オブジェクト、Parameters コレクションの要約

Parameter オブジェクト

Parameter オブジェクトは、パラメータ クエリーによって作成される QueryDef オブジェクトに関連するパラメータを示します。

プロパティ

Name

Type

Value

Parameters コレクション

Parameters コレクションには、次のメソッドとプロパティがあります。

メソッド

Append

Refresh

プロパティ

Count


Property オブジェクト、Properties コレクション (データ アクセス)

関連項目	例	プロパティ	メソッド	要約

Property オブジェクトは、データ アクセス オブジェクトの組み込みプロパティやユーザーが定義したプロパティを表します。

Properties コレクションには、オブジェクトの特定のインスタンスに対するすべての Property オブジェクトが含まれます。

解説

すべてのデータ アクセス オブジェクトには Properties コレクションがあり、それぞれに組み込まれた Property オブジェクトがあります。この Property オブジェクトは、通常、単にプロパティと呼ばれ、そのオブジェクトのインスタンス固有の特性を示します。データ アクセス オブジェクトを新しく作成するときには、組み込みプロパティを指定します。また、プロパティ設定ステートメントを使って、既存のデータ アクセス オブジェクトのプロパティを設定することができます。

Property オブジェクトには 4 種類の組み込みプロパティがあります。

Name プロパティは文字列型 (String) で、そのプロパティを識別します。

Type プロパティは整数型 (Integer) で、プロパティのデータ型を指定します。

Value プロパティはバリアント型 (Variant) で、プロパティの設定を保持します。

Inherited プロパティは、プロパティが他のオブジェクトから継承されたものかどうかを示すブール型 (Boolean) のフラグです。たとえば、Recordset オブジェクトの Fields コレクションにある Field オブジェクトは、下位の TableDef オブジェクトや QueryDef オブジェクトのプロパティを継承することができます。

これらの組み込みプロパティに加えて、ユーザー定義のプロパティを作成して次のようなオブジェクトに追加することができます。

Database、Index、QueryDef、TableDef の各オブジェクト。

QueryDef オブジェクトと TableDef オブジェクトの Fields コレクション内の Field オブジェクト。

ユーザー定義のプロパティを追加するには、Name プロパティに他と重複しない名前を設定し、CreateProperty メソッドを使って Property オブジェクトを作成します。作成した Property オブジェクトの Type プロパティと Value プロパティを設定してから、適切なオブジェクトの Properties コレクションに追加します。ユーザー定義のプロパティを追加するオブジェクトは、既にディスクに保存されていなければなりません。つまり、コレクションに追加しておく必要があります。

ユーザー定義のプロパティは Properties コレクションから削除できますが、組み込みプロパティは削除できません。

注   ユーザー定義のプロパティ (Property オブジェクト) は、それを追加した Properties コレクションの特定のインスタンスのオブジェクトだけに結び付けられます。このプロパティは選択した型のオブジェクトの、すべてのインスタンスに対して定義されるわけではありません。

オブジェクトの Properties コレクションを使うと、オブジェクトの組み込みプロパティとユーザー定義のプロパティを列挙することができます。プロパティを操作するための特性またはどのプロパティが存在するか (Name プロパティや Type プロパティ) ということを、あらかじめ正確に知っておく必要はありません。しかし、Workspace オブジェクトの Password プロパティなど、値の設定のみ可能なプロパティを調べようとすると、エラーが発生します。

既存の組み込みプロパティやユーザー定義のプロパティを、Name プロパティを使って参照するには、次のいずれかの構文を使います。

object.Properties("name")

object.Properties!name

組み込みプロパティについては、次の構文を使うこともできます。

object.name

次の構文を使うと、Properties コレクションの最初のメンバからの位置 (順序) でプロパティを参照することができます。

object.Properties(0)

注   ユーザー定義のプロパティは、データ アクセス オブジェクトの組み込みプロパティとは、次のような点で異なります。

プロパティを参照する場合、“Properties”("name") や “Properties!name”のように完全な構文を使う必要があります。

ユーザー定義のプロパティ以外は、プロパティの値を既定値から変えるまでは、Properties コレクションの一部になりません。

プロパティの値をあらかじめ設定しない場合、最初に CreateProperty メソッドを使ってプロパティを作成する必要があります。アプリケーションで定義されているプロパティ (または任意のユーザー定義のプロパティ) の値を設定する方法については、例を参照してください。

Control オブジェクトのプロパティは、データ アクセス オブジェクトのプロパティといくつかの点で異なります。Control オブジェクトの Property オブジェクトには、次のような特性があります。

Inherited プロパティがありません。

ユーザーには設定できない Category プロパティがあります。

このプロパティを列挙することはできません。


関連項目

データ アクセス オブジェクトのアクティブ化

CreateProperty メソッド

データ アクセス オブジェクトとコレクション

Database オブジェクト、Databases コレクション

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

QueryDef オブジェクト、QueryDefs コレクション

TableDef オブジェクト、TableDefs コレクション

Workspace オブジェクト、Workspaces コレクション


Property オブジェクト、Properties コレクションの例

次のプログラムでは、カレント データベースにユーザー定義のプロパティを作成し、Type プロパティと Value プロパティを設定してからデータベースの Properties コレクションに追加します。その後、データベースのすべてのプロパティを列挙します。他の例については、Property オブジェクトの要約の一覧にあるプロパティを参照してください。

Function EnumerateProperty () As Integer

Dim DefaultWorkspace As Workspace

Dim MyDatabase As Database, MyProperty As Property

Dim I As Integer

' デフォルトのワークスペースとカレント データベースを取得します。

Set DefaultWorkspace = Workspaces(0)

Set MyDatabase = Workspaces(0).OpenDatabase("MyDB.MDB")

' ユーザー定義のプロパティを作成します。

Set MyProperty = MyDatabase.CreateProperty()

' 新しい Property オブジェクトのプロパティを設定します。

MyProperty.Name = "UserDefinedProperty"

MyProperty.Type = dbText

MyProperty.Value = "This is a user-defined property."

' プロパティをカレント データベースに追加します。

MyDatabase.Properties.Append MyProperty

' カレント データベースのすべてのプロパティを列挙します。

Debug.Print "Properties of Database "; MyDatabase.Name

For I = 0 To MyDatabase.Properties.Count - 1

Set MyProperty = MyDatabase.Properties(I)

Debug.Print

Debug.Print " Properties("; I; ")"

Debug.Print "  Name: "; MyProperty.Name

Debug.Print "  Type: "; MyProperty.Type

Debug.Print "  Value: "; MyProperty.Value

Debug.Print "  Inherited: "; MyProperty.Inherited

Next I

Debug.Print

EnumerateProperty = True

End Function

次のプログラムでは、実行時エラーを発生させずにアプリケーションで定義されているプロパティ、または、まだ存在していない任意のユーザー定義のプロパティを設定する方法を示します。まず、Field オブジェクトの任意のプロパティを設定します。値が適切に設定された場合、関数の戻り値は真 (True) になります。プロパティを設定するときに予期しないエラーが発生した場合は、戻り値が偽 (False) になります。他の例については、Property オブジェクトの要約の一覧にあるプロパティを参照してください。

Function SetFieldProperty (MyField As Field, PropertyName As String, PropertyType As Integer, PropertyValue As Variant) As Integer

Const ERR_PROPERTY_NONEXISTENT = 3270

Dim MyProperty As Property

On Error Resume Next	' 関数でエラー処理を行います。

SetFieldProperty = True

MyField.Properties(PropertyName) = PropertyValue

If Err <> 0 Then	' エラー時には、0 以外の値になります。

If Err <> ERR_PROPERTY_NONEXISTENT Then

On Error GoTo 0

SetFieldProperty = False

Else

' Property オブジェクトを作成して、Name、Type、Value の各プロパティを設定します。

On Error Resume Next

Set MyProperty = MyField.CreateProperty(PropertyName, PropertyType, PropertyValue)

MyField.Properties.Append MyProperty

If Err <> 0 Then

SetFieldProperty = False

End If

On Error GoTo 0

End If

End If

End Function


Property オブジェクトのプロパティ

凡例

Count

Inherited

Name

Type

Value


Property オブジェクト、Properties コレクションのメソッド

凡例

Append

Delete

Refresh


Property オブジェクト、Properties コレクションの要約

Property オブジェクト

Property オブジェクトには、次のコレクションとプロパティがあります。メソッドはありません。

コレクション

Properties

プロパティ

Inherited

Name

Type

Value

Properties コレクション

Properties コレクションには、次のメソッドとプロパティがあります。

メソッド

Append

Delete

Refresh

プロパティ

Count


QueryDef オブジェクト、QueryDefs コレクション

関連項目	例	プロパティ	メソッド	要約

QueryDef オブジェクトは、Microsoft Jet データベースに保存されたクエリーの定義です。

QueryDefs コレクションには、Database オブジェクトのすべての QueryDef オブジェクトが含まれます。

解説

QueryDef オブジェクトはデータベースに保存されているクエリーの定義に対応しています。保存されているクエリーは、コンパイル済みの SQL ステートメントと見なすことができます。

QueryDef オブジェクトのプロパティを使うと、クエリーを定義することができます。たとえば、次のような処理を行うことができます。

SQL プロパティの設定のチェックと変更を行い、パラメータを設定し、クエリーを実行できます。

QueryDef オブジェクトの Parameters コレクションを使ってクエリー パラメータを設定できます。

Type プロパティの設定やチェックを行い、クエリーが既存のテーブルからレコードを選択するのか、新しくテーブルを作成するのか、1 つのテーブルから別のテーブルにレコードを挿入するのか、レコードを削除するのか、レコードを更新するのか、のどれかを調べることができます。

ODBCTimeout プロパティと Connect プロパティを設定してODBC データ ソースからデータを取得できます。ただし、クエリーが選択クエリーでない場合は ReturnsRecords プロパティを偽 (False) に設定します。

Connect プロパティを設定して SQL パス スルー クエリーにし、クエリーを外部 ODBC サーバーに送ることを示すことができます。

ReturnsRecords プロパティを使って、クエリーがレコードを返すことを示すことができます。ReturnsRecords プロパティは、SQL パス スルー クエリーの場合に限って有効です。

ODBCTimeout プロパティを使って、クエリーがレコードを返すまで待機する時間を指定できます。ODBCTimeout プロパティは、SQL パス スルー ODBC データ、リンクなしのアタッチ、またはアタッチされた ODBC テーブルにアクセスするクエリーに適用されます。

QueryDef オブジェクトから実行するクエリーは、OpenRecordset メソッドで指定するクエリーより実行速度が速くなります。これは、実行前に Microsoft Jet データベース エンジン がコンパイルする必要がないためです。

QueryDef オブジェクトは、外部データベース エンジン固有の SQL 言語を使う場合に適した方法です。たとえば、Microsoft SQL Serverで使う Transact SQL クエリーを作成して、QueryDef オブジェクトに保存することができます。Jet データベース エンジンの SQL クエリー以外の SQL クエリーを使うときは、Connect プロパティに外部データ ソースを指す文字列を設定する必要があります。有効な Connect プロパティを持つクエリーは、Jet データベース エンジンを介さずに、直接外部のデータベース サーバーに渡して処理することが可能です。

QueryDef オブジェクトを新しく作成するには、CreateQueryDef メソッドを使います。


関連項目

データ アクセス オブジェクトのアクティブ化

CreateQueryDef メソッド

パラメータ クエリーの作成

Database オブジェクト、Databases コレクション

Field オブジェクト、Fields コレクション

Parameter オブジェクト、Parameters コレクション

Property オブジェクト、Properties コレクション (データ アクセス)

SQL パススルー クエリーの使い方


QueryDef オブジェクト、QueryDefs コレクションの例

次のプログラムでは、QueryDef オブジェクトを新しく作成し、それをカレント データベースの QueryDefs コレクションに追加します。次に、データベース内のすべての QueryDef オブジェクトと作成した QueryDef オブジェクトのすべてのプロパティを列挙します。他の例については、QueryDef オブジェクトの要約の一覧にあるメソッドとプロパティを参照してください。

Function EnumerateQueryDef () As Integer

Dim MyWorkspace As Workspace, MyDB As Database, MyQuery As QueryDef

Dim I As Integer

Set MyWorkspace = Workspaces(0)

Set MyDB = MyWorkspace.OpenDatabase("MyDB.MDB")

Set MyQuery = MyDB.CreateQueryDef("This is a test")

Debug.Print

' QueryDef オブジェクトを列挙します。

Debug.Print

For I = 0 To MyDB.QueryDefs.Count - 1

Debug.Print MyDB.QueryDefs(I).Name

Next I

Debug.Print

' MyQuery オブジェクトの組み込みプロパティを列挙します。

Debug.Print "MyQuery.Name: "; MyQuery.Name

Debug.Print "MyQuery.DateCreated: "; MyQuery.DateCreated

Debug.Print "MyQuery.LastUpdated: "; MyQuery.LastUpdated

Debug.Print "MyQuery.SQL: "; MyQuery.SQL

Debug.Print "MyQuery.ODBCTimeout: "; MyQuery.ODBCTimeout

Debug.Print "MyQuery.Updatable: "; MyQuery.Updatable

Debug.Print "MyQuery.Type: "; MyQuery.Type

Debug.Print "MyQuery.Connect: "; MyQuery.Connect

Debug.Print "MyQuery.ReturnsRecords: "; MyQuery.ReturnsRecords

MyDB.QueryDefs.Delete "This is a test"

EnumerateQueryDef = True

End Function


QueryDef オブジェクト、QueryDefs コレクションのプロパティ

凡例

Connect

Count

DateCreated

LastUpdated

LogMessages

Name

ODBCTimeout

RecordsAffected

ReturnsRecords

SQL

Type

Updatable


QueryDef オブジェクト、QueryDefs コレクションのメソッド

凡例

Append

CreateProperty

Delete

Execute

OpenRecordset

Refresh


QueryDef オブジェクト、QueryDefs コレクションの要約

QueryDef オブジェクト

QueryDef オブジェクトには、次のコレクション、メソッド、プロパティがあります。

コレクション

Fields

Parameters (既定値)

メソッド

Close

CreateProperty

Execute

OpenRecordset

プロパティ

Connect	ODBCTimeout

DateCreated	RecordsAffected

LastUpdated	ReturnsRecords

LogMessages	SQL

Name	Type

QueryDefs コレクション

QueryDefs コレクションには、次のメソッドとプロパティがあります。

メソッド

Append

Delete

Refresh

プロパティ

Count


Recordset オブジェクト、Recordsets コレクション

関連項目	例	プロパティ	メソッド

Recordset オブジェクトはベース テーブルのレコードや、クエリーを実行した結果のレコードを表します。

Recordsets コレクションには、Database オブジェクトの開いているすべての Recordset オブジェクトが含まれます。

注   Jet データベース エンジン Version 1.1 では、Table、Dynaset、Snapshot の各データ アクセス オブジェクトをサポートしていました。これらのオブジェクトは、Jet データベース エンジン Version 2.5 および Version 3.0 でもサポートしていますが、テーブル タイプ、ダイナセット タイプ、スナップショット タイプの Recordset オブジェクトと同じではありません。以前のバージョンのデータ アクセス オブジェクトにも類似したプロパティとメソッドがありますが、Recordset オブジェクトには追加されている重要な機能があります。

以前からあるデータ アクセス オブジェクトを使う代わりに、テーブル タイプ、ダイナセット タイプ、スナップショット タイプの Recordset オブジェクトを使うことをお勧めします。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

解説

データ アクセス オブジェクトを使うときは、ほとんどのデータを Recordset オブジェクトを使って操作します。すべての Recordset オブジェクトは、レコード (行) とフィールド (列) を使って構築されます。Recordset オブジェクトには 3 つの種類があります。次に、それぞれの種類の Recordset オブジェクトを示します。

テーブル タイプの Recordset オブジェクトは 1 つのデータベース テーブルに対するレコードの追加、変更、削除を行うときに使うベース テーブルをコード化したオブジェクトです。

ダイナセット タイプの Recordset オブジェクトは更新可能なレコードを保持することができる、クエリーを実行した結果です。ダイナセット タイプの Recordset オブジェクトは一連の動的なレコードで、元となるデータベース テーブルやテーブルに対するレコードの追加、変更、削除を行うときに使用できます。ダイナセット タイプの Recordset オブジェクトには、データベースにある 1 つ以上のテーブルからのフィールドを含めることができます。

スナップショット タイプの Recordset オブジェクトはレコードセットの静的なコピーで、データの検索やレポートの作成に使います。スナップショット タイプの Recordset オブジェクトには、データベースにある 1 つ以上のテーブルからのフィールドを含めることができますが、更新することはできません。

注   プロジェクトでデータ アクセス オブジェクトを利用する場合は、オブジェクト ブラウザでデータ アクセス (DAO) オブジェクト ライブラリへの参照を設定します。ライブラリへの参照を設定するには、[ツール] - [参照設定] コマンドを選択し、[参照設定] ダイアログ ボックスで適切なデータ アクセス (DAO) オブジェクト ライブラリを選択してください。詳細については、「データ アクセス オブジェクトのアクティブ化」を参照してください。

作成する Recordset オブジェクトの種類を選択するには、OpenRecordset メソッドのパラメータ type を指定します。type を指定しない場合、Microsoft Jet データベース エンジンはテーブル タイプの Recordset オブジェクトを作成しようとし、それが不可能なときには、Jet データベース エンジンはダイナセット タイプかスナップショット タイプの Recordset オブジェクトを作成します。

テーブルをアタッチしない TableDef オブジェクトを使って Recordset オブジェクトを作成する場合は、テーブル タイプの Recordset オブジェクトが作成されます。アタッチ テーブルや外部 ODBC データベースによって作成可能な Recordset オブジェクトは、ダイナセット タイプまたはスナップショット タイプに限定されます。

Type プロパティは作成される Recordset オブジェクトの種類を表し、Updatable プロパティはオブジェクトに含まれるレコードが更新可能かどうかを表します。

作成した Recordset オブジェクトは、オブジェクトを開いたときに自動的に Recordsets コレクションに追加され、閉じたときに自動的に削除されます。

ベース テーブルに関する情報 (すべての Index オブジェクト、各 Field オブジェクトの名前、フィールドのデータ型など) は、TableDef オブジェクトに保存されます。

注   レコードセットを持つ Database オブジェクトの変数と Recordset オブジェクトの変数を使うときは、変数の適用範囲が必ず同じでなければなりません。たとえば、Recordset オブジェクトを表すパブリック変数を宣言するときには、そのレコードセットを含むデータベースを表す変数も同様にパブリックであるか、Sub プロシージャや Function プロシージャ内でキーワード Static を使って宣言する必要があります。

アプリケーションでは、Recordset オブジェクトの変数は必要であれば、いくつでも作成することができます。Recordset オブジェクトは、1 つ以上のテーブルやクエリーを単独で参照したり、任意の組み合わせの他の Recordset オブジェクトが参照するクエリーを参照したりできます。また、他の Recordset オブジェクトのフィールドやレコードの一部分または全体を参照する Recordset オブジェクトを持つこともできます。

ダイナセット タイプとスナップショット タイプの Recordset オブジェクトは、ローカル メモリに保存されます。データを保存するための空きスペースがローカル メモリで不足している場合、Jet データベース エンジンは追加データを環境変数 TEMP で指定したディスクに保存します。このスペースがなくなった場合は、トラップできるエラーが発生します。

Recordset オブジェクトの既定のコレクションは Fields コレクションで、Field オブジェクトの既定のプロパティは Value プロパティです。この既定の設定を利用すると、コードを簡略化できます。たとえば、次のコードはすべて、Recordset オブジェクトのカレント レコードの PubID フィールドの値を設定します。

MyTable.Fields("PubID").Value = 99

MyTable("PubID") = 99

MyTable!PubID = 99

Recordset オブジェクトの作成時にレコードが存在する場合は、カレント レコードが先頭のレコードになります。レコードがない場合は、RecordCount プロパティの設定は 0 になり、BOF プロパティと EOF プロパティは真 (True) に設定されます。

MoveNext、MovePrevious、MoveFirst、MoveLast の各メソッドを使うと、カレント レコードの再配置を行うことができます。ダイナセット タイプとスナップショット タイプの Recordset オブジェクトでは、FindFirst メソッドなどの Findxxx メソッドを使って、条件を満たす特定の位置のレコードに移動することもできます。レコードが見つからない場合は、NoMatch プロパティが真 (True) に設定されます。

すべてのレコードを対象とするときに Recordset オブジェクトの先頭と最後をチェックするには、BOF プロパティと EOF プロパティを使います。しかし、レコードセット全体を対象とする場合には、SQL クエリーを記述して操作を実行した方が速いこともあります。

同じレコードセットを参照する複数の Recordset オブジェクト変数を持つことができます。また、フォームの宣言セクションで Dim ステートメントを使って作成されたオブジェクト変数は、そのフォームが開いている間だけ存在し、フォームがアンロードされると閉じられます。同様に、プロシージャ内で作成されたオブジェクト変数は、プロシージャが終了すると破棄されます。データ アクセス オブジェクトの宣言を含むプロシージャを終了する前には、未処理のトランザクションや編集を明示的に完了し、すべての Recordset オブジェクトと Database オブジェクトを閉じる必要があります。


関連項目

データ アクセス オブジェクトのアクティブ化

Database オブジェクト、Databases コレクション

ダイナセット タイプの Recordset オブジェクト

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

レコードセットへのデータの取得

Property オブジェクト、Properties コレクション (データ アクセス)

QueryDef オブジェクト、QueryDefs コレクション

スナップショット タイプの Recordset オブジェクト

テーブル タイプの Recordset オブジェクト

TableDef オブジェクト、TableDefs コレクション


Recordset オブジェクト、Recordsets コレクションの例

次のプログラムでは、Recordset オブジェクトを新しく作成して既定のデータベースで開きます。これによって作成した Recordset オブジェクトが Recordsets コレクションに追加されます。次に、カレント データベースのすべての Recordset オブジェクトと、各 Recordset オブジェクトにあるすべてのフィールドを列挙し、作成した Recordset オブジェクトを閉じます。他の例については、Recordset オブジェクトの要約の一覧にあるメソッドとプロパティを参照してください。

Function EnumerateRecordset () As Integer

Dim MyDB As Database, MyData As Recordset, TempRecordset As Recordset

Dim I As Integer, J As Integer

Set MyDB = Workspaces(0).OpenDatabase("MyDB.MDB")

Set MyData = MyDB.OpenRecordset("Orders", dbOpenSnapshot)

Debug.Print

' すべての Recordset オブジェクトを列挙します。

For J = 0 To MyDB.Recordsets.Count - 1

Set TempRecordset = MyDB.Recordsets(J)

Debug.Print

Debug.Print "Enumeration of Recordset objects("; J; "): "; TempRecordset.Name

Debug.Print

' フィールドを列挙します。

Debug.Print "Fields: Name, Type, Value"

For I = 0 To TempRecordset.Fields.Count - 1

Debug.Print "  "; TempRecordset.Fields(I).Name

Debug.Print ", "; TempRecordset.Fields(I).Type

If TempRecordset.Fields(I).Type = dbText Then

Debug.Print ", "; TempRecordset.Fields(I).Value

End if

Next I

Next J

MyData.Close

MyDB.Close

EnumerateRecordset = True

End Function


Recordset オブジェクト、Recordsets コレクションのプロパティ

Recordset オブジェクト

Microsoft Jet データベース エンジン Version 2.5 および Version 3.0 は、拡張された Recordset オブジェクトをサポートしています。さらに、Jet データベース エンジン Version 1.x が提供する Dynaset、Table、Snapshot の各オブジェクトもサポートしていますが、以前のオブジェクトを使う場合にはサポートされないプロパティがあります。次の表に、Recordset オブジェクトの種類に適用されるプロパティと、プロパティの値が、読み込み、書き込み共に可能、読み込み専用、常に偽 (False) のいずれであるかを示します。

注   OpenRecordset メソッドの引数 options に定数 dbForwardOnly を指定して作成したスナップショット タイプの Recordset オブジェクトは、アスタリスク (*) の付いたメソッドとプロパティをサポートしません。さらに Move メソッドは、ブックマーク オフセットを使わない下方向の検索だけをサポートします。

読み込みのみ可能

読み込み、書き込み共に可能

	Jet エンジン Version 2.5/3.0 の Recordset	Jet エンジン Version 1.x の Recordset
プロパティ	ダ イ ナ セ ッ ト	ス ナ ッ プ シ ョ ッ ト	テ ｜ ブ ル	ダ イ ナ セ ッ ト	ス ナ ッ プ シ ョ ッ ト	テ ｜ ブ ル
AbsolutePosition
BOF
Bookmark		*
Bookmarkable		*
CacheSize
CacheStart
DateCreated
EditMode
EOF
Filter
Index
LastModified
LastUpdated
LockEdits
Name
NoMatch
PercentPosition		*
RecordCount
Restartable			False
Sort
Transactions		False			False
Type
Updatable		False			False
ValidationRule
ValidationText
Recordsets コレクション

Recordsets コレクションには、次のプロパティがあります。

プロパティ

Count


Recordset オブジェクト、Recordsets コレクションのメソッド

Recordset オブジェクト

Microsoft Jet データベース エンジン Version 2.5 および Version 3.0 は、拡張された Recordset オブジェクトをサポートしています。さらに、Jet データベース エンジン Version 1.x が提供する Dynaset、Table、Snapshot の各オブジェクトもサポートしていますが、サポートされないプロパティもあります。次の表に、レコードセットのメソッドと各オブジェクトがサポートするメソッドの一覧を示します。

注    OpenRecordset メソッドの引数 options に定数 dbForwardOnly を指定して作成したスナップショット タイプの Recordset オブジェクトは、アスタリスク (*) の付いたメソッドとプロパティをサポートしません。さらに Move メソッドは、ブックマーク オフセットを使わない下方向の検索だけをサポートします。

	Jet エンジン Version 2.5/3.0 の Recordset	Jet エンジン Version 1.x の Recordset
メソッド	ダ イ ナ セ ッ ト	ス ナ ッ プ シ ョ ッ ト	テ ｜ ブ ル	ダ イ ナ セ ッ ト	ス ナ ッ プ シ ョ ッ ト	テ ｜ ブ ル
AddNew
CancelUpdate
Clone		*
Close
CopyQueryDef
Delete
Edit
FillCache
FindFirst		*
FindLast		*
FindNext		*
FindPrevious		*
GetRows
Move		*
MoveFirst		*
MoveLast		*
MoveNext
MovePrevious		*
OpenRecordset		*
Requery
Seek
Update
Recordsets コレクション

Recordsets コレクションには、次のメソッドがあります。

メソッド

Refresh


Relation オブジェクト、Relations コレクション

関連項目	例	プロパティ	メソッド	要約

Relation オブジェクトは、クエリーやテーブルのフィールドの関係を表します。

Relations コレクションには、Database オブジェクトの保存されている Relation オブジェクトが含まれます。

解説

Relation オブジェクトを使うと、データベースに新しいリレーションを作成したり、既存のリレーションを調べたりできます。また、Attributes プロパティを設定すると、Microsoft Jet データベース エンジンを使用して参照整合性を維持することができます。

データベースに対して確立されているリレーションに違反する変更を実行しようとすると、トラップできるエラーが発生します。連鎖更新または連鎖削除を要求すると、Jet データベース エンジンは主キーを持つテーブルまたは外部キーを持つテーブルの更新も行い、リレーションを強制的に確立します。

典型的なリレーションの例は、NameAddress テーブルと ValidStateCodesAn テーブルの間に見られます。NameAddress テーブルの State フィールドが主キーで、ValidStateCodes テーブルの State フィールドが外部キーです。新しいレコードを NameAddress テーブルに取得するために、Jet データベース エンジンは ValidStateCodes テーブルを検索して NameAddress テーブルの State フィールドにある、一致する候補を検索します。一致する候補が発見できない場合、Jet データベース エンジンはその新しいレコードを取得しないでトラップできるエラーを発生します。

Relation オブジェクトとそのプロパティを使って、次のようなことができます。

ベース テーブルでフィールド間に設定されているリレーションを指定できます。ただし、このリレーションはクエリーやアタッチ テーブルを含みません。

ネイティブまたはアタッチされた任意の型のテーブルやクエリーとの間に適用されていないリレーションを確立できます。

Name プロパティを使って、参照されている主テーブルや参照している側のテーブルのフィールド間のリレーションを参照できます。

Attributes プロパティを使って、テーブル内のフィールド間のリレーションが一対一か一対多のどちらであるかを設定できます。また参照整合性の適用方法も設定できます。

Attributes プロパティを使って、Jet データベース エンジンが、主テーブルや外部テーブルに連鎖更新や連鎖削除を実行できるかどうかを設定できます。

Attributes プロパティを使って、テーブルのフィールド間のリレーションが、左結合か右結合かを設定できます。

注

Relation オブジェクトの Fields コレクションに含まれるすべての Field オブジェクトの Name プロパティは、参照しているテーブルの主キーのフィールド名を表します。Field オブジェクトの ForeignName プロパティに設定された値は、参照しているテーブルの外部キーのフィールド名を表します。

参照整合性を適用するには、参照しているテーブルのキー フィールドに他と重複しないインデックスがあらかじめ存在している必要があります。Jet データベース エンジンは、Foreign プロパティに設定された値を参照しているテーブルの外部キーとして使ってインデックスを自動的に作成します。

Jet データベース エンジンが SYSTEM.MDW ファイルを利用できない場合は、Visual Basic で作成されたアプリケーションでセキュリティ機能を利用できません。詳細については、「セキュリティのアクティブ化」を参照してください。

新しく Relation オブジェクトを作成するには、CreateRelation メソッドを使います。


関連項目

データ アクセス オブジェクトのアクティブ化

セキュリティのアクティブ化

CreateRelation メソッド

Database オブジェクト、Databases コレクション

Field オブジェクト、Fields コレクション

Foreign プロパティ

Property オブジェクト、Properties コレクション (データ アクセス)


Relation オブジェクト、Relations コレクションの例

次のプログラムでは、2 つのテーブルにあるそれぞれ 1 つのフィールド間に一対多リレーションを作成します。このリレーションには参照整合性が適用されているので、主テーブルにインデックスが作成されます。他の例については、Relation オブジェクトの要約の一覧にあるメソッドとプロパティを参照してください。

Function EnumerateRelation () As Integer

Dim MyDatabase As Database

Dim MyTableDef As TableDef, MyField As Field

Dim MyIndex As Index, MyRelation As Relation

Dim I As Integer

' データベースを取得します。

Set MyDatabase = Workspaces(0).OpenDatabase("MyDB.MDB")

' 主キーを使って、参照テーブルを作成します。

Set MyTableDef = MyDatabase.CreateTableDef("Referenced")

Set MyField = MyTableDef.CreateField("PrimaryKey", dbLong)

MyTableDef.Fields.Append MyField

' 参照整合性を適用するために、重複しないインデックスを作成します。

Set MyIndex = MyTableDef.CreateIndex("UniqueIndex")

MyIndex.Primary = True 'Null 値は無効です。

Set MyField = MyTableDef.CreateField("PrimaryKey")

MyIndex.Fields!Append MyField

MyTableDef.Indexes.Append MyIndex

MyDatabase.TableDefs.Append MyTableDef

' 外部キーを使って、参照テーブルを作成します。

Set MyTableDef = MyDatabase.CreateTableDef("Referencing")

Set MyField = MyTableDef.CreateField("ForeignKey", dbLong)

MyTableDef.Fields.Append MyField

MyDatabase.TableDefs.Append MyTableDef

'一対多リレーションを作成してから、参照整合性を適用します。

Set MyRelation = MyDatabase.CreateRelation("EnforcedOneToMany")

MyRelation.Table = "Referenced"

MyRelation.ForeignTable = "Referencing"

' dbRelationUnique または dbRelationDontEnforce は設定しません。

MyRelation.Attributes = 0

Set MyField = MyRelation.CreateField("PrimaryKey")

MyField.ForeignName = "ForeignKey"

MyRelation.Fields.Append MyField

MyDatabase.Relations.Append MyRelation

' リレーションとそのフィールドを列挙します。

Debug.Print "Relation: "; MyRelation.Name

Debug.Print "  Primary Table: "; MyRelation.Table

Debug.Print "  Foreign Table: "; MyRelation.ForeignTable

Debug.Print "  Attributes: "; MyRelation.Attributes

Debug.Print "Fields in Relation: Primary, Foreign";

For I = 0 To MyRelation.Fields.Count - 1

Set MyField = MyRelation.Fields(I)

Debug.Print "  "; MyField.Name;

Debug.Print ", "; MyField.ForeignName

Next I

Debug.Print

MyDatabase.Relations.Delete "EnforcedOneToMany"

MyDatabase.TableDefs.Delete "Referenced"

MyDatabase.TableDefs.Delete "Referencing"

EnumerateRelation = True

End Function


Relation オブジェクト、Relations コレクションのプロパティ

凡例

Attributes

Count

ForeignTable

Name

Table


Relation オブジェクト、Relations コレクションのメソッド

凡例

Append

CreateField

Delete

Refresh


Relation オブジェクト、Relations コレクションの要約

Relation オブジェクト

Relation オブジェクトには、次のコレクション、メソッド、プロパティがあります。

コレクション

Fields (既定値)

Properties

メソッド

CreateField

プロパティ

Attributes

ForeignTable

Name

Table

Relations コレクション

Relations コレクションには、次のメソッドとプロパティがあります。

メソッド

Append

Delete

Refresh

プロパティ

Count


TableDef オブジェクト、TableDefs コレクション

関連項目	例	プロパティ	メソッド	要約

TableDef オブジェクトは、ベース テーブルやアタッチ テーブルの保存されている定義を表します。

TableDefs コレクションには、データベースに保存されているすべての TableDef オブジェクトが含まれます。

解説

TableDef オブジェクトとそのメソッドやプロパティを使うと、次のようにテーブルの定義についての操作を行うことができます。

データベースの任意のローカル テーブル、アタッチ テーブル、外部テーブルのフィールドとインデックスの構造を調べることができます。

追加されたテーブルの Connect プロパティと SourceTableName プロパティの設定値の取得や設定が行えます。また、RefreshLink メソッドを使って、追加されたテーブルのリンクを更新できます。

ValidationRule プロパティと ValidationText プロパティの設定を取得し、有効な条件を調べたり、設定したりできます。Updatable プロパティが真 (True) に設定されている場合は、値の設定も行えます。

OpenRecordset メソッドを使って、テーブルの定義に基づいてテーブル タイプ、ダイナセット タイプ、スナップショット タイプの Recordset オブジェクトを作成します。

Database オブジェクトの既定のコレクションは TableDefs コレクションで、TableDef オブジェクトの既定のコレクションは Fields コレクション、既定のプロパティは Name プロパティです。これらの既定の設定を使うと、コードを簡略化できます。たとえば、次の 2 つのステートメントは、どちらもデータ (Data) コントロールを使って TableDef オブジェクトの Field オブジェクトのフィールドのデータ型に対応する番号を印刷します。

Print Data1.Database.TableDefs("Publishers").Fields("PubID").Type

Print Data1.Database("Publishers")("PubID").Type

TableDef オブジェクトの Name プロパティは、代入したオブジェクト変数の名前と同じではありません。

ベース テーブルでは、指定されたデータベース テーブルのレコード数が RecordCount プロパティに代入されます。アタッチ テーブルでは、RecordCount プロパティの設定は常に -1 です。

作成後に TableDefs オブジェクトに追加した TableDef オブジェクトを、Name プロパティの設定を使って参照するには次の構文を使います。

TableDefs("name")

TableDef オブジェクトを新しく作成するには、CreateTableDef メソッドを使います。

フィールドの追加など、テーブルの構造を変更するには

1.	そのテーブルをベースにしている、どの Recordset オブジェクトも他のユーザーが開いていないことを確認します。

2.	Field オブジェクトの変数を作成し、CreateField メソッドを使ってそのプロパティを設定します。

3.	Append メソッドを使って、その Field オブジェクトを TableDef オブジェクトの Fields コレクションに追加します。

データベースに新しいレコードを受け入れることが可能なテーブルを作成するには

1.	CreateTableDef メソッドを使って TableDef オブジェクトを作成します。

2.	プロパティを設定します。

3.	Field オブジェクトの変数を作成し、CreateField メソッドを使ってテーブルの各フィールドについてプロパティを設定します。

4.	Append メソッドを使って、その Field オブジェクトを TableDef オブジェクトの Fields コレクションに追加します。

5.	Append メソッドを使って、作成した TableDef オブジェクトを Database オブジェクトの TableDefs コレクションに追加します。

アタッチ テーブルは、TableDef オブジェクトの SourceTableName プロパティと Connect プロパティによってデータベースにアタッチされます。

データベースにテーブルをリンクするには

1.	CreateTableDef メソッドを使って TableDef オブジェクトを作成します。

2.	Connect プロパティ、SourceTableName プロパティを設定します。必要に応じて Attributes プロパティも設定します。

3.	Append メソッドを使って、作成した TableDef オブジェクトを Database オブジェクトの TableDefs コレクションに追加します。

Field オブジェクトに関連付けられているインデックスが存在しない場合、TableDefs コレクションから Field オブジェクトを削除することが可能ですが、その中にあるデータは失われます。

Microsoft Access を使うか、コードでテーブルの定義を変更するには

1.	テーブルまたはフィールド データのバックアップを作成します。

2.	TableDefs コレクションから指定した TableDef オブジェクトを削除するか、Fields コレクションから Field オブジェクトを削除します。ただし、これによって、データも失われます。

3.	変更する TableDef オブジェクトまたは Field オブジェクトを作成して追加します。

4.	データを再ロードします。


関連項目

データ アクセス オブジェクトのアクティブ化

CreateTableDef メソッド

Database オブジェクト、Databases コレクション

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

Property オブジェクト、Properties コレクション (データ アクセス)

Recordset オブジェクト、Recordsets コレクション


TableDef オブジェクト、TableDefs コレクションの例

次のプログラムでは、TableDef オブジェクトを新しく作成し、それに Field オブジェクトを追加してからカレント データベースの TableDefs コレクションに TableDef オブジェクトを追加します。次に、カレント データベースのすべての TableDef オブジェクトと作成した TableDef オブジェクトのすべてのプロパティを列挙します。他の例については、TableDef オブジェクトの要約の一覧にあるメソッドとプロパティを参照してください。

Function EnumerateTableDef () As Integer

Dim MyDatabase As Database

Dim MyTableDef As TableDef

Dim MyField As Field

Dim I As Integer

Set MyDatabase = Workspaces(0).OpenDatabase("MyDB.MDB")

Set MyTableDef = MyDatabase.CreateTableDef("MyTable")

Set MyField = MyTableDef.CreateField("MyField", dbDate)

MyTableDef.Fields.Append MyField

MyDatabase.TableDefs.Append MyTableDef

' データベースの名前を取得します。

Debug.Print "Database Name: "; MyDatabase.Name

' MyTableDef のフィールドをすべて列挙します。

Debug.Print "TableDef: Name; Field: Name"

For I = 0 To MyTableDef.Fields.Count - 1

Debug.Print "  "; MyTableDef.Name;

Debug.Print "; "; MyTableDef.Fields(I).Name

Next I

Debug.Print

' MyTableDef のインデックスをすべて列挙します。

Debug.Print "TableDef: Name; Index: Name"

For I = 0 To MyTableDef.Indexes.Count - 1

Debug.Print "  "; MyTableDef.Name;

Debug.Print "; "; MyTableDef.Indexes(I).Name

Next I

Debug.Print

' MyTableDef の組み込みプロパティを列挙します。

Debug.Print "MyTableDef.Name: "; MyTableDef.Name

Debug.Print "MyTableDef.Attributes: "; MyTableDef.Attributes

Debug.Print "MyTableDef.Connect: "; MyTableDef.Connect

Debug.Print "MyTableDef.DateCreated: "; MyTableDef.DateCreated

Debug.Print "MyTableDef.LastUpdated: "; MyTableDef.LastUpdated

Debug.Print "MyTableDef.RecordCount: "; MyTableDef.RecordCount

Debug.Print "MyTableDef.SourceTableName: "; MyTableDef.SourceTableName

Debug.Print "MyTableDef.Updatable: "; MyTableDef.Updatable

Debug.Print "MyTableDef.ValidationRule: "; MyTableDef.ValidationRule

Debug.Print "MyTableDef.ValidationText: "; MyTableDef.ValidationText

EnumerateTableDef = True

End Function


TableDef オブジェクト、TableDefs コレクションのプロパティ

凡例

Attributes

ConflictTable

Connect

Count

DateCreated

LastUpdated

Name

RecordCount

SourceTableName

Updatable

ValidationRule

ValidationText


TableDef オブジェクト、TableDefs コレクションのメソッド

凡例

Append

CreateField

CreateIndex

CreateProperty

Delete

OpenRecordset

Refresh

RefreshLink


TableDef オブジェクト、TableDefs コレクションの要約

TableDef オブジェクト

TableDef オブジェクトには、次のコレクション、メソッド、プロパティがあります。

コレクション

Fields (既定値)

Indexes

Properties

メソッド

CreateField

CreateIndex

CreateProperty

OpenRecordset

RefreshLink

プロパティ

Attributes	RecordCount

Connect	SourceTableName

DateCreated	Updatable

LastUpdated	ValidationRule

Name	ValidationText

TableDef オブジェクトには、アプリケーションで定義されているのプロパティがある場合があります。これらのプロパティの読み込みと、設定を行う方法については、そのアプリケーションのオンライン ヘルプを参照してください。

TableDefs コレクション

TableDefs コレクションには、次のメソッドとプロパティがあります。

メソッド

Append

Delete

Refresh

プロパティ

Count

注   プロジェクトでデータ アクセス オブジェクトを利用する場合は、オブジェクト ブラウザでデータ アクセス (DAO) オブジェクト ライブラリへの参照を設定します。ライブラリへの参照を設定するには、[ツール] - [参照設定] コマンドを選択し、[参照設定] ダイアログ ボックスで適切なデータ アクセス (DAO) オブジェクト ライブラリを選択してください。詳細については、「データ アクセス オブジェクトのアクティブ化」を参照してください。


User オブジェクト、Users コレクション

関連項目	プロパティ	メソッド 	要約

セキュリティを設定したワークグループとして Workspace オブジェクトを操作する場合、User オブジェクトは、アクセスする権限を持っているユーザー アカウントを表します。

Users コレクションには、グループ アカウントか Workspace オブジェクトに保存されている User オブジェクトがすべて含まれます。

解説

User オブジェクトを作成し、その名前を使って、作業を行うデータベースやデータベース オブジェクト (テーブルとクエリー) を表す Document オブジェクトを使ってデータベース、テーブル、クエリーのアクセス権を確立して、無効なアクセスから保護します。また、特定の User オブジェクトのプロパティがわかっている場合は、その User オブジェクトと同じアクセス権を持っている Workspace オブジェクトを新しく作成することができます。

既存の User オブジェクトを Group オブジェクトの Users コレクションに追加してユーザー アカウントにその Group オブジェクトのアクセス権を与えることができます。また、User オブジェクトの Groups コレクションに Group オブジェクトを追加して、そのグループにユーザー アカウントのメンバーシップを確立することもできます。オブジェクトを追加した直後以外に Users コレクションか Groups コレクションを使う場合は、Refresh メソッドを使う必要がある場合もあります。

User オブジェクトのプロパティを使って、次のようなことができます。

既存の User オブジェクトの Name プロパティの設定を調べて、その名前を取得できます。既存の User オブジェクトの PID プロパティと Password プロパティは調べられません。

新しく作成して、まだどのオブジェクトにも追加していない User オブジェクトの Name、PID、Password の各プロパティを設定して、その User オブジェクトの ID を確立できます。Password プロパティを設定していない場合、Password プロパティには長さ 0 の文字列 ("") が設定されます。

Microsoft Jet データベース エンジンには、“Admin”と“Guest”という名前の 2 種類の定義済みの User オブジェクトがあります。ユーザー“Admin”は“Admins”と“Users”という名前の Group オブジェクトのメンバで、ユーザー“Guest”は“Guest”という名前の Group オブジェクトのメンバです。

作成した User オブジェクトを、その Name プロパティの設定を使って Users コレクションに追加するには、次の構文を使います。

Workspaces(n)|Group.Users("name")

User オブジェクトを新しく作成するには、CreateUser メソッドを使います。

注

Jet データベース エンジンが SYSTEM.MDW ファイルを利用できない場合は、Visual Basic で作成されたアプリケーションでセキュリティ機能を利用できません。詳細については、「セキュリティのアクティブ化」を参照してください。

Microsoft Jet データベース エンジン Version 1.x 用の SYSTEM.MDA ファイルと共にデータ アクセス オブジェクトを使う場合、Group オブジェクトの Users コレクションは常に空になります。たとえば、ユーザーが所属するグループや、グループのメンバの特定はできません。これを解決するには、システム データベースを Jet データベース エンジン Version 3.0 用の SYSTEM.MDW にしてください。詳細については、「CompactDatabase メソッド」を参照してください。

Microsoft Access Version 1.x またはそれ以降の、SYSTEM.MDW データベースまたはSYSTEM.MDA データベースを使用している場合、Group オブジェクトの Users コレクションにある User オブジェクトは参照できませんが、Workspace オブジェクトの Users コレクションにある User オブジェクトは参照可能です。また、User オブジェクトの Groups コレクションにある Group オブジェクトも参照可能で、このコレクションに追加することもできます。


関連項目

データ アクセス オブジェクトのアクティブ化

セキュリティのアクティブ化

CreateUser メソッド

Document オブジェクト、Documents コレクション

Group オブジェクト、Groups コレクション

Property オブジェクト、Properties コレクション (データ アクセス)

Workspace オブジェクト、Workspaces コレクション


User オブジェクト、Users コレクションのプロパティ

凡例

Count

Name

Password

PID


User オブジェクト、Users コレクションのメソッド

凡例

Append

CreateGroup

Delete

NewPassword

Refresh


User オブジェクト、Users コレクションの要約

User オブジェクト

User オブジェクトには、次のコレクション、メソッド、プロパティがあります。

コレクション

Groups (既定値)

Properties

メソッド

CreateGroup

NewPassword

プロパティ

Name

Password

PID

Users コレクション

Users コレクションには、次のメソッドとプロパティがあります。

メソッド

Append

Delete

Refresh

プロパティ

Count


Workspace オブジェクト、Workspaces コレクション

関連項目	例	プロパティ	メソッド 	要約

Workspace オブジェクトは、ユーザーのセッションを定義します。Workspace オブジェクトは、開いているデータベースを含み、同時発生するトランザクションをサポートし、セキュリティを設定したワークグループを使うための手段を提供します。

Workspaces コレクションには、DBEngine オブジェクトのアクティブで表示可能なすべての Workspace オブジェクトが含まれます。

解説

Workspace オブジェクトを使うと、カレント セッションの管理や、新しいセッションの開始が可能です。セッション中は、複数のデータベースを開いてトランザクションを管理し、ユーザー名とパスワードに基づくセキュリティを確立することができます。次に例を示します。

Name、Password、UserName の各プロパティを指定して Workspace オブジェクトを作成し、名前付きのパスワードで保護されたセッションを確立します。セッションは、複数のデータベースを開き、ネスト (入れ子) したトランザクションのインスタンスを 1 つ管理できる一定の範囲の作業空間を作成できます。セッションを終了するには、Close メソッドを使います。

OpenDatabase メソッドを使って、Workspace オブジェクトに 1 つ以上の既存のデータベースを開くことができます。

BeginTrans、CommitTrans、Rollback の各メソッドを使って Workspace オブジェクトでネスト (入れ子) したトランザクション処理を行い、Workspace オブジェクトをいくつか使って複数のオーバーラップしたトランザクションを同時に管理できます。

IsolateODBCTrans プロパティを使って、同じ ODBC データベースを含む、複数のトランザクションを分離できます。

注

プロジェクトでデータ アクセス オブジェクトを利用する場合は、オブジェクト ブラウザでデータ アクセス (DAO) オブジェクト ライブラリへの参照を設定します。ライブラリへの参照を設定するには、[ツール] - [参照設定] コマンドを選択し、[参照設定] ダイアログ ボックスで適切なデータ アクセス (DAO) オブジェクト ライブラリを選択してください。詳細については、「データ アクセス オブジェクトのアクティブ化」を参照してください。

Microsoft Jet データベース エンジンが SYSTEM.MDW ファイルを利用できない場合は、Visual Basic で作成されたアプリケーションでセキュリティ機能を利用できません。詳細については、「セキュリティのアクティブ化」を参照してください。

Jet データベース エンジンを起動すると、既定のワークスペースとして DBEngine.Workspaces(0) が自動的に作成されます。既定のワークスペースの Name プロパティと UserName プロパティは、それぞれ "#Default Workspace#" と "Admin" です。セキュリティが有効な場合は、UserName プロパティに設定した値がログオンしたユーザー名になります。Workspace オブジェクトを指定せずに OpenDatabase メソッドを使うと、既定の DBEngine.Workspaces(0) が使われます。

トランザクションを使う場合、特定の Workspace オブジェクトで複数の Database オブジェクトを開いているときでも、その Workspace オブジェクトのすべてのデータベースが影響を受けます。たとえば、BeginTrans メソッドを使う場合、データベース内のいくつかのレコードを更新し、次に別のデータベースのレコードをいくつか削除した後で Rollback メソッドを使うと、更新と削除の操作の両方が元に戻ります。各 Database オブジェクトに対して個別のトランザクションを管理するには、別の Workspace オブジェクトを作成してください。

Workspace オブジェクトを作成するには、DBEngine オブジェクトの CreateWorkspace メソッドを使います。作成した Workspace オブジェクトを Workspaces コレクションから参照するときには、Workspaces コレクションに追加する必要がありますが、Workspaces コレクションに追加しない場合でも、新しく作成した Workspace オブジェクトを使用することは可能です。

作成した後で、コレクションに追加したその他の Workspace オブジェクトを Name プロパティを使って参照するには、次の構文を使います。

Workspaces("name")

Workspaces コレクションに追加された Workspace オブジェクトは、次の構文でコレクション内の位置 (順序) を使って参照することもできます。n は、Workspaces コレクションの n 番めのメンバを表します。

DBEngine.Workspaces(n)


関連項目

データ アクセス オブジェクトのアクティブ化

セキュリティのアクティブ化

CreateWorkspace メソッド

Database オブジェクト、Databases コレクション

DBEngine オブジェクト

Group オブジェクト、Groups コレクション

Property オブジェクト、Properties コレクション (データ アクセス)

User オブジェクト、Users コレクション


Workspace オブジェクト、Workspaces コレクションの例

次のプログラムでは、Workspace オブジェクトを新しく作成し、それを Workspaces コレクションに追加します。この例では、パスワード Secret を持つユーザー JustAUser が既に存在しています。次に各 Workspace オブジェクトのコレクションを列挙し、最後に、作成した Workspace オブジェクトを閉じます。他の例については、Workspace オブジェクトか Workspaces コレクションのメソッドとプロパティを参照してください。

Function EnumerateWorkspace () As Integer

Dim AnyWorkspace As Workspace, NewWorkspace As Workspace

Dim I As Integer, J As Integer

' 次の行で、.INI ファイルのパスを設定します。

DBEngine.IniPath = "C:\MYAPPDIR\MYAPP.INI"

' 新しいワークスペースを作成し、コレクションに追加します。

Set NewWorkspace = DBEngine.CreateWorkspace("NewWorkspace", "JustAUser", "Secret")

DBEngine.Workspaces.Append NewWorkspace

' すべてのワークスペースを列挙します。

For J = 0 To DBEngine.Workspaces.Count - 1

Set AnyWorkspace = DBEngine.Workspaces(J)

Debug.Print

Debug.Print "Enumeration of Workspaces("; J; "): "; AnyWorkspace.Name

Debug.Print

' データベースを列挙します。

Debug.Print "Databases: Name"

For I = 0 To AnyWorkspace.Databases.Count - 1

Debug.Print "  "; AnyWorkspace.Databases(I).Name

Next I

' すべてのユーザー アカウントを列挙します。

Debug.Print "Users: Name"

For I = 0 To AnyWorkspace.Users.Count - 1

Debug.Print "  "; AnyWorkspace.Users(I).Name

Next I

Debug.Print

' すべてのグループ アカウントを列挙します。

Debug.Print "Groups: Name"

For I = 0 To AnyWorkspace.Groups.Count - 1

Debug.Print "  "; AnyWorkspace.Groups(I).Name

Next I

Debug.Print

Next J

Debug.Print

' NewWorkspace の組み込みプロパティを列挙します。

Debug.Print "NewWorkspace.Name: "; NewWorkspace.Name

Debug.Print "NewWorkspace.UserName: "; NewWorkspace.UserName

Debug.Print

NewWorkspace.Close

EnumerateWorkspace = True

End Function


Workspace オブジェクト、Workspaces コレクションのプロパティ

凡例

Count

IsolateODBCTrans

Name

UserName


Workspace オブジェクト、Workspaces コレクションのメソッド

凡例

Append

BeginTrans

Close

CommitTrans

CreateDatabase

CreateGroup

CreateUser

Delete

OpenDatabase

Refresh

Rollback


Workspace オブジェクト、Workspaces コレクションの要約

Workspace オブジェクト

Workspace オブジェクトには、次のコレクション、メソッド、プロパティがあります。

コレクション

Databases (既定値)

Groups

Users

メソッド

BeginTrans	CreateGroup

Close	CreateUser

CommitTrans	OpenDatabase

CreateDatabase	Rollback

プロパティ

Name

UserName

Workspaces コレクション

Workspaces コレクションには、次のメソッドとプロパティがあります。

メソッド

Refresh

プロパティ

Count


Document オブジェクト、Documents コレクション

関連項目	プロパティ	メソッド 	要約

Document オブジェクトには、1 種類のオブジェクトの 1 つのインスタンスの情報が含まれます。オブジェクトは、データベース、保存されているテーブル、クエリー、リレーションのいずれかです。

Documents コレクションには、特定の種類のオブジェクトのすべての Document オブジェクトが含まれます。

解説

各 Container オブジェクトは、組み込まれている Container オブジェクト型のインスタンスを表す Document オブジェクトを持つ、Documents コレクションを持っています。次の表に、それぞれの Document オブジェクトが表すオブジェクトの種類とその Container オブジェクトの名前、Document オブジェクトが保持している情報の種類を示します。

Document	Container	保持している情報の種類

Database	Databases	保持しているデータベース

Table or query	Tables	保存されているテーブルまたはクエリー

Relationship	Relationships	保存されているリレーション

注   上の表にある Container オブジェクトを、同じ名前のコレクションと混同しないように注意してください。たとえば、Container オブジェクトは、指定された保存されているすべてのオブジェクトを参照しますが、Databases コレクションは指定された種類の開いているオブジェクトだけを参照します。

Document オブジェクトは既存のデータベース オブジェクトに対応しているため、Document オブジェクトを新しく作成したり、既存のオブジェクトを削除したりすることはできません。既存の Document オブジェクトを使って、次のようなことができます。

Name プロパティの設定を調べて、オブジェクトの作成時にユーザーか Microsoft Jet データベース エンジンが設定した名前を取得できます。

Owner プロパティを調べたり設定したりして、データベース オブジェクトの所有者を設定したり特定したりできます。Owner プロパティを設定するには、その Document オブジェクトに対する書き込みの権限を持っていなければなりません。さらに、プロパティに既存の User オブジェクトか Group オブジェクトの名前を設定する必要があります。

Container プロパティの設定を調べて、Document オブジェクトを保持している Container オブジェクトの名前を取得できます。

UserName プロパティか Permissions プロパティを調べたり設定したりして、オブジェクトに対するユーザーやグループのアクセス権を調べたり設定したりできます。これらのプロパティを設定するには、その Document オブジェクトに対する書き込みの権限を持っていなければなりません。さらに、UserName プロパティに既存の User オブジェクトか Group オブジェクトの名前を設定する必要があります。

DateCreated プロパティと LastUpdated プロパティを調べて、Document オブジェクトが作成された日時と、最終変更日時を取得できます。

Name プロパティを使って Document オブジェクトを参照するには、次の構文を使います。

MyContainer.Documents("name")


関連項目

データ アクセス オブジェクトのアクティブ化

セキュリティのアクティブ化

Container オブジェクト、Containers コレクション

Group オブジェクト、Groups コレクション

Property オブジェクト、Properties コレクション (データ アクセス)

User オブジェクト、Users コレクション


Document オブジェクト、Documents コレクションのプロパティ

凡例

AllPermissions

Container

Count

DateCreated

LastUpdated

Name

Owner

Permissions

UserName


Document オブジェクト、Documents コレクションのメソッド

凡例

Refresh


Document オブジェクト、Documents コレクションの要約

Document オブジェクト

Document オブジェクトには、次のコレクションとプロパティがあります。メソッドはありません。

コレクション

Properties

プロパティ

Container	Owner

DateCreated	Permissions

LastUpdated	UserName

Name

Documents コレクション

Documents コレクションには、次のメソッドとプロパティがあります。

メソッド

Refresh

プロパティ

Count


ダイナセット タイプの Recordset オブジェクト

関連項目	例	プロパティ	メソッド

ダイナセット タイプの Recordset オブジェクトは、Recordset オブジェクトの種類の 1 つで、1 つ以上のテーブルのデータを操作することができます。ダイナセット タイプの Recordset オブジェクトは動的なレコードで、データベース内の 1 つ以上のテーブルのフィールドを保持し、更新することもできます。

注   ダイナセット タイプの Recordset オブジェクトは Dynaset オブジェクトに置き換えることができます。

解説

ダイナセット タイプの Recordset オブジェクトは、実際のデータの代わりに、各レコードに対する重複しないキーがメモリにロードされる点で、スナップショット タイプの Recordset オブジェクトと異なります。また、元のデータが変更されるとダイナセット タイプの Recordset オブジェクトは更新されます。一方、スナップショット タイプの Recordset オブジェクトは更新されません。テーブル タイプの Recordset オブジェクトと同じように、フィールドが参照されたときにダイナセット タイプの Recordset オブジェクトのカレント レコードが読み込まれます。

ダイナセット タイプの Recordset オブジェクトを作成するには、開いているデータベースで別のダイナセット タイプかスナップショット タイプの Recordset オブジェクト、あるいは QueryDef オブジェクトの OpenRecordset メソッドを使います。

ダイナセット タイプの Recordset オブジェクトを要求して、Microsoft Jet データベース エンジンがレコードに対する読み込みと書き込みのアクセスを得られなかった場合、Jet データベース エンジンは読み込みだけが可能なダイナセット タイプの Recordset オブジェクトを作成することがあります。作成された Recordset オブジェクトが更新不可能な場合、Updatable プロパティは偽 (False) に設定されます。

自分のアプリケーションや他のユーザーの更新操作によって、ベース テーブルのデータが変更されたときは、アプリケーションがカレント レコードの位置を再び設定し直すまでカレント データを利用できません。マルチユーザー データベースでは、複数のユーザーがダイナセット タイプの Recordset オブジェクトを開いて、同じレコードを参照することができます。ダイナセット タイプの Recordset オブジェクトは動的なので、あるユーザーがレコードを変更すると、他のユーザーは即座に変更されたデータにアクセスできます。レコードが追加された場合、他のユーザーには、その Recordset オブジェクトに Requery メソッドを使うまではレコードの追加が通知されません。しかし、レコードが削除された場合、他のユーザーがそのレコードにアクセスしようとした時点で削除が通知されます。

データベースに追加されたレコードは、AddNew メソッドで Recordset オブジェクトに追加されるまで、ダイナセット タイプの Recordset オブジェクトには組み込まれません。たとえば、SQL ステートメント INSERT INTO を含むアクション クエリーを使ってレコードを追加すると、Requery メソッドを使うか OpenRecordset メソッドを使って Recordset オブジェクトを再構築するまで、ダイナセット タイプの Recordset オブジェクトに新しいレコードが組み込まれることはありません。

データの整合性を維持するために、Edit メソッドや Update メソッドを行っている間、ダイナセット タイプとテーブル タイプの Recordset オブジェクトはロックされます。そのため、あるレコードを同時に更新可能なユーザーは 1 人だけになります。Jet データベース エンジンがレコードをロックすると、そのレコードを含むページ (2KB) 全体がロックされます。

ODBC 以外のテーブルでは、排他的、共有的な 2 種類のロックが使われます。ODBC を使って外部テーブルにアクセスすると、常に共有的ロックになります。編集中にロックの種類を調べるには、LockEdits プロパティを使います。

ダイナセット タイプの Recordset オブジェクトのすべてのフィールドが更新されるわけではありません。特定のフィールドが更新可能かどうかを調べるには、Field オブジェクトの Updatable プロパティを調べます。

ダイナセット タイプの Recordset オブジェクトが更新できない場合には、次の理由が考えられます。

ODBC または Paradox のテーブルに、重複するインデックスがある場合。

別のユーザーがデータ ページをロックしている場合。

最後に読み込んだ後にレコードが変更されている場合。

ユーザーが権限を持っていない場合。

1 つ以上のデータまたはフィールドが、読み込みのみ可能になっている場合。

データベースが読み取り専用で開かれている場合。

JOIN ステートメントを使わずに複数のテーブルから Recordset オブジェクトが作成されている場合か、クエリーが複雑すぎる場合。

ダイナセット タイプの Recordset オブジェクトや Recordset オブジェクトのデータの順序が、特定の順序に従うことは保証されていません。データを並べ替える必要があるときは、ORDER BY 句を含む SQL ステートメントを使って Recordset オブジェクトを作成します。この方法は、レコードを抽出して特定のレコードだけを Recordset オブジェクトに追加する場合にも使うことができます。次のコードは、1993 年と 1994 年に出版された本のタイトルだけを選択し、抽出されたレコードをタイトル順に並べ替える例です。

Dim Db As Database, Rs As Recordset, SQL As String

Set Db = Workspaces(0).OpenDatabase("BIBLIO.MDB")

SQL$ = "SELECT * FROM Titles  " _

& " WHERE [Year Published] BETWEEN 1993 AND 1994 " _

& " ORDER BY ISBN;"

Set Rs = Db.OpenRecordset(SQL$,dbOpenDynaset)

一般に、Filter プロパティや Sort プロパティを使ったり、個々のレコードをテストしたりする方法に比べて、この方法を使う方がデータに速くアクセスすることができます。


ダイナセット タイプの Recordset オブジェクトの例

次のプログラムでは、ダイナセット タイプの Recordset オブジェクトを新しく作成してそれを開き、既定のデータベースの Recordsets コレクションに追加した後でレコードの編集を行います。

Function ChangeSQL () As Integer

Dim MyDB As Database, MyData As Recordset

Dim I As Integer, J As Integer, SQL As String

Set MyDB = Workspaces(0).OpenDatabase("BIBLIO.MDB")

SQL$ = "Select * From Titles Where Title = 'Using SQL' "

Set MyData = MyDB.OpenRecordset(SQL$, dbOpenDynaset)

If MyData.RecordCount > 0 and MyData.Updatable Then

Do Until MyData.EOF

MyData.Edit

MyData![Year Published] = 1994	' 出版された年を変更します。

MyData.Update

MyData.MoveNext

Loop

Else

Debug.Print "No such title or table not updatable"

End If

MyData.Close

MyDb.Close

ChangeSQL = True

End Function


関連項目

データ アクセス オブジェクトのアクティブ化

Dynaset オブジェクト

Edit メソッド

Field オブジェクト、Fields コレクション

Filter プロパティ

LockEdits プロパティ

OpenRecordset メソッド

レコードセットへのデータの取得

Requery メソッド

Snapshot オブジェクト

Sort プロパティ

Table オブジェクト

TableDef オブジェクト、TableDefs コレクション

Updatable プロパティ

Update メソッド (データ アクセス)


スナップショット タイプの Recordset オブジェクト

関連項目	例	プロパティ	メソッド

スナップショット タイプの Recordset オブジェクトは静的なレコードで、1 つ以上のテーブルのデータを調べるために使います。スナップショット タイプの Recordset オブジェクトには、データベース内の 1 つ以上のテーブルからのフィールドを含むことができますが、更新はできません。

解説

スナップショット タイプの Recordset オブジェクトを作成すると、メモ型と OLE オブジェクト型のフィールドのデータ型を除くすべての型のフィールドがメモリに読み込まれます。1 度メモリにロードされると、ベース テーブルのデータに対して行われた変更が、スナップショット タイプの Recordset オブジェクトのデータに反映されることはありません。スナップショット タイプの Recordset オブジェクトにカレント データを再ロードするには、Requery メソッドを使うか、OpenRecordset メソッドを再実行します。

スナップショット タイプの Recordset オブジェクトのデータの順序が、特定の順序に従うことは保証されていません。データを並べ替える必要があるときは、ORDER BY 句を含む SQL ステートメントを使って Recordset オブジェクトを作成します。この方法は、レコードを抽出して特定のレコードだけを Recordset オブジェクトに追加するときにも使うことができます。次のコードは、文字列 "VBSQL" を含むタイトルだけを選択し、抽出されたレコードを ISBN の順で並べ替える例です。

Dim Db As Database, Rs As Recordset, SQL As String

Set Db = Workspaces(0).OpenDatabase("BIBLIO.MDB")

SQL$ = "SELECT * FROM Titles WHERE Title like '*VBSQL*' ORDER BY ISBN;"

Set Rs = Db.OpenRecordset(SQL$,dbOpenSnapshot)

一般に、Filter プロパティや Sort プロパティを使ったり、個々のレコードをテストしたりする方法に比べて、この方法を使う方がデータに速くアクセスすることができます。

スナップショット タイプの Recordset オブジェクトを作成するには、開いているデータベース、別のダイナセット タイプまたはスナップショット タイプの Recordset オブジェクト、または QueryDef オブジェクトの OpenRecordset メソッドを使います。

スナップショット タイプの Recordset オブジェクトは、レコードがメモリか環境変数TEMP で指定されているディスク スペースに保管されているために、Microsoft Jet データベース エンジンはページのロックやマルチユーザーを扱う必要がないので、一般にダイナセット タイプの Recordset オブジェクトより作成やアクセスが高速です。しかし、スナップショット タイプの Recordset オブジェクトでは、レコード全体がローカル メモリにロードされるので、ダイナセット タイプの Recordset オブジェクトよりもローカル リソースの消費が大きくなります。


関連項目

データ アクセス オブジェクトのアクティブ化

Dynaset オブジェクト

Field オブジェクト、Fields コレクション

OpenRecordset メソッド

Property オブジェクト、Properties コレクション (データ アクセス)

レコードセットへのデータの取得

Requery メソッド

QueryDef オブジェクト、QueryDefs コレクション

Snapshot オブジェクト

Table オブジェクト

TableDef オブジェクト、TableDefs コレクション

Type プロパティ (データ アクセス)


スナップショット タイプの Recordset オブジェクトの例

次のプログラムでは、スナップショット タイプの Recordset オブジェクトを新しく作成してそれを開き、既定のデータベースの Recordsets コレクションに追加した後で、レコードを 1 件検索して印刷します。

Function ShowVBSQL () As Integer

Dim MyDB As Database, MyData As Recordset

Dim I As Integer, J As Integer

Set MyDB = Workspaces(0).OpenDatabase("BIBLIO.MDB")

Set MyData = MyDB.OpenRecordset(Titles, dbOpenSnapshot)

If MyData.RecordCount > 0 Then

MyData.FindFirst "Title Like '*VBSQL*'"  ' "VBSQL" を含むタイトル。

Do until MyData.NoMatch = True

Debug.Print MyData!Title

MyData.FindNext "Title Like '*VBSQL*'"

Loop

Else

Debug.Print "No such title"

End If

MyData.Close

MyDb.Close

ShowVBSQL = True

End Function


テーブル タイプの Recordset オブジェクト

関連項目	例	プロパティ	メソッド

テーブル タイプの Recordset オブジェクトは、ローカル テーブルのレコードの追加、変更、削除を行うことができます。メモリにロードされるのは、カレント レコードだけです。Recordset オブジェクトのレコードの順序は、あらかじめ定義されているインデックスで決まります。

解説

テーブル タイプの Recordset オブジェクトを作成するには、開いている Database オブジェクトの OpenRecordset メソッドを使います。

テーブル タイプの Recordset オブジェクトは Jet データベースのベース テーブルを使って作成できますが、ODBC やアタッチ テーブルを使って作成することはできません。FoxPro、dBASE、Paradox、Btrieve などの ISAM データベースを直接開いた場合には、テーブル タイプの Recordset オブジェクトを使うことができます。

ダイナセット タイプやスナップショット タイプの Recordset オブジェクトとは異なり、テーブル タイプの Recordset オブジェクトは、複数のベース テーブルを参照することができません。また、データの抽出や並べ替えを行う SQL ステートメントを使ってアクセスすることもできません。一般に、テーブル タイプの Recordset オブジェクトにアクセスするときには、テーブルに対して既に定義されているインデックスを 1 つ指定します。このインデックスがアプリケーションに返されるデータの順序を決めます。テーブルにインデックスが存在しない場合、返されるデータの順序は予測できません。必要に応じて、特定の順序でレコードを返すように、インデックスをアプリケーションで作成することも可能です。テーブル タイプの Recordset オブジェクトに特定の順序を指定するときは、Index プロパティに有効なインデックスを設定します。

データの整合性を維持するために、Edit メソッドや Update メソッドを実行している間、テーブル タイプの Recordset オブジェクトはロックされます。そのため、あるレコードを同時に更新できるユーザーは 1 人だけになります。Microsoft Jet データベース エンジンがレコードをロックすると、そのレコードを含むページ (2KB) 全体がロックされます。

ODBC 以外のテーブルでは、排他的、共有的な 2 種類のロックが使われます。ODBC を使ってアクセスするテーブルは、常に共有的ロックになります。編集中にロックの種類を調べるには、LockEdits プロパティを使います。


関連項目

データ アクセス オブジェクトのアクティブ化

Dynaset オブジェクト

Edit メソッド

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

LockEdits プロパティ

OpenRecordset メソッド

レコードセットへのデータの取得

Snapshot オブジェクト

Table オブジェクト

TableDef オブジェクト、TableDefs コレクション

Type プロパティ (データ アクセス)

Updatable プロパティ

Update メソッド (データ アクセス)


テーブル タイプの Recordset オブジェクトの例

次のプログラムでは、テーブル タイプの Recordset オブジェクトを開き、その Recordset オブジェクトに対してインデックスを選択します。インデックスを設定すると、Microsoft Jet データベース エンジンはインデックスで指定された順序でレコードを返します。インデックスがない場合、テーブル タイプの Recordset オブジェクトがデータベース テーブルから返すレコードの順序は予測できません。

Dim Db As Database

Dim MyTable as Recordset, MyIndex As Index

Dim I As Integer

' Get workspace and database.

Set Db = Workspaces(0).OpenDatabase("MyDB.MDB")

Set MyTable = Db.OpenRecordset("Titles", dbOpenTable)

MyTable.Index = "MyIndex"

.

.

.


Error オブジェクト、Errors コレクション

関連項目	プロパティ	メソッド	要約

Error オブジェクト

データ アクセス エラーに関する詳細情報が含まれています。

Errors コレクション

保管されているすべての Error オブジェクトが含まれています。データ アクセス オブジェクト (DAO) への各操作に関するエラーに、Error オブジェクトが 1 つ付属します。

解説

データ アクセス オブジェクトに関する任意の操作を行った場合に、エラーが発生することがあります。エラーが発生するたびに、DBEngine オブジェクトの Errors コレクションに 1 つ以上の Error オブジェクトが格納されます。別の DAO 関連の操作でエラーが発生すると、Errors コレクションがクリアされ、新しい Error オブジェクトが Errors コレクションに格納されます。DAO 関連の操作でエラーが発生しなければ、Errors コレクションは、なにも変化しません。

Errors コレクションのメンバの追加方法は、他のコレクションとは異なります。最も一般的なエラーは、コレクションの最後のメンバ (Count-1) に格納され、最も重要なエラーはインデックス 0 のメンバに格納されます。

Errors コレクション内の一連の Error オブジェクトは、1 つのエラーを表します。最初の Error オブジェクトが最も低いレベルのエラーで、第 2 のエラーは次に高いレベルのエラーになります。たとえば、Recordset オブジェクトを開くときに ODBC エラーが発生すると、最後の Error オブジェクトには、オブジェクトが開くことができなかったことを示すデータ アクセス オブジェクト (DAO) のエラーが格納されます。最初の Error オブジェクトには最も低いレベルの ODBC エラーが格納され、それに続いて ODBC のさまざまな階層が返す ODBC エラーが格納されます。この場合は、ドライバ マネージャとドライバ自体から別の Error オブジェクトが返されます。

注   キーワード New を使ってオブジェクトを作成する場合、Errors コレクションにエラーが格納される前、またはその最中にエラーが発生しても、コレクションにはそのオブジェクトに関するエラー情報は格納されません。ただし、以前のエラー情報が保持されている場合があります。

このような場合のエラーに関する情報は、Err オブジェクトに含まれます。

Errors コレクションに格納されているエラー情報が有効かどうかを確認するには、Errors コレクションの最後の要素の Number プロパティ (DBEngine.Errors(DBEngine.Count-1)) を Visual Basic の Err オブジェクトの値と比較します。値が等しければ有効です。


関連項目

Dim ステートメント

DBEngine オブジェクト

Recordset オブジェクト、Recordsets コレクション


Error オブジェクト、Errors コレクションのプロパティ

凡例

Count

Description

HelpContext

HelpFile

Number

Source


Error オブジェクト、Errors コレクションのメソッド

凡例

Refresh


Error オブジェクト、Errors コレクションの要約

Error オブジェクト

Error オブジェクトには、次のプロパティがあります。

プロパティ

Description	Number

HelpContext	Source

HelpFile

Errors コレクション

Errors コレクションには、次のプロパティがあります。メソッドはありません。

プロパティ

Count


フィールドのデータ型の選択

関連項目

テーブルに含まれるすべてのフィールドに対して、データ型を定義する必要があります。Microsoft Visual Basic のデータ型と同じく Field オブジェクトのデータ型も、フィールドに入力できる値の型と範囲、フィールドで使用可能な格納領域の量、データを格納するためにデータベース内に確保される領域の量などを決定します。

Visual Basic で使われる変数のデータ型とデータベースのフィールドを表すのに使われるデータ型を混同しないようにしてください。変数の型には、データベースで使うデータを格納するのに最も適した型を選択してください。変換が可能な場合には、自動的に変換が行われます。フィールドの制限内に収まらない値を保存しようとすると、トラップできるエラーが発生します。

データ型に定数 dbText を指定して宣言した Field オブジェクトには、Size プロパティも設定してフィールドに格納する文字列の最大の長さを指定する必要があります。他の型の Field オブジェクトの Size プロパティはすべて自動的に設定されます。

データ型と Type プロパティの指定に使われる定数、および使用対象は次のとおりです。

データ型	定数	対象

テキスト型	dbText	氏名、住所、電話番号、郵便番号などのテキストや数字に使います。型には、0 ～ 255 文字のテキストを入れることができます。フィールドをテキスト型として宣言するときは、Size プロパティにテキストの最大の長さを設定しなければなりません。

メモ型	dbMemo	コメントや説明のような長いテキストと数字に使います。メモ型フィールドには最高 1.2GB の文字を入れることができます。

数値型	(下表を参照)	数値計算を行うための数値データに使います。ただし、金額の計算には使いません。数値型フィールドについて詳しくは、下記の表を参照してください。

日付/時刻型	dbDate	日付と時刻に使います。この 2 つの値は結合したフィールドに格納されます。つまり、日付は必ず時刻と一緒に格納されます。日付はすべて 英語/アメリカ形式で格納されます。

通貨型	dbCurrency	金額を保持するフィールドに使います。数値型では小数点以下の数字は計算中に丸められてしまうので、金額に数値型は使わないでください。通貨型では、小数点以下の桁数は固定されます。通貨型フィールドを作成するには、Field オブジェクトの Type プロパティを dbCurrency に設定してください。

カウンタ型	dbLong	Microsoft Jet データベース エンジンによって自動的に割り当てられる連続した番号を保持します。Field オブジェクトの Attributes プロパティで定数 dbAutoIncrement を指定してください。番号は 1 から始まります。カウンタ型を使うと、主キーフィールドの管理がうまくできます。カウンタ型フィールドを使って 2 つのテーブル間の主キーと外部キーのリレーションを確立したい場合、外部キーにする列のデータ型も必ず長整数型 (Long) に定義してください。

Yes/No型	dbBoolean	はい/いいえ、真 (True)/偽 (False)、オン/オフなどの、ブール型 (Boolean) の 2 つの値のどちらかの値を保持するフィールドに指定します。

OLE オブジェクト型	dbLongBinary	他のプログラムで OLE プロトコルを使って作られた OLE オブジェクト オートメーションを保持します。OLE コンテナ (OLE)、イメージ (Image)、あるいはピクチャ ボックス (PictureBox) などのコントロールを使って管理します。

ロング バイナリ型	dbLongBinary	1.2GB までのバイナリで表現できる値なら何にでも使うことができます。ピクチャやファイル、その他のバイナリ データを保存するのに使われます。イメージ コントロールまたはピクチャ ボックス コントロールで管理します。

数値型	対象

dbBoolean	0 または 1 のバイナリ値。

dbByte	0 ～ 255 の範囲の正の値。バイト型 (Byte) 変数に保持されます。

dbInteger	-32,768 ～ +32,767 の範囲の値。整数型 (Integer) 変数に保持されます。

dbLong	-2,147,483,648 ～ 2,147,483,647 の範囲の値 (約 2.1GB)。長整数型 (Long) 変数に保持されます。

dbSingle	-3.402823E38 ～ -1.401298E-45 の範囲の負の値と 1.401298E-45 ～ 3.402823E38 の範囲の正の値。単精度浮動小数点数型 (Single) 変数に保持されます。

dbDouble 	-1.79769313486232E308 ～ -4.94065645841247E-324 の範囲の負の値と 4.94065645841247E-324 ～ 1.79769313486232E308 の範囲の正の値。倍精度浮動小数点数型 (Double)変数に保持されます。

注

それぞれのフィールドに適したデータ型を選択してください。たとえば、氏名や住所を含むテーブルでは通常、ほとんどのフィールドをテキスト フィールドとして定義します。数字だけを入力する電話番号フィールドも、テキスト フィールドとして定義します。数値型 (Number) は計算に使うフィールドに指定してください。バリアント型 (Variant) はここに挙げたすべての型を保持することができ、Null 値も格納できます。

ロング バイナリ型 (Long Binary)、メモ型、OLE オブジェクト型のフィールドにはインデックスを作成できません。

制限事項

レコードの定義は、Jet データベース エンジンがサポートする 2KB のページに収める必要があります。テーブルの定義に含まれるそれぞれの Field オブジェクトのサイズの合計は、バイナリ フィールドやメモ型フィールドも含めて、最大でも 2KB になるように定義します。ただし、バイナリ フィールドとメモ型フィールドに関しては、実際のデータは別のページに格納されるので、ページに格納される量は Null 以外のフィールド 1 つにつき 14 バイト、Null フィールド 1 つにつき 1 バイトだけです。また、各テキスト型フィールドにコミットされるデータの量は、実際にフィールドにデータを保持するまでは設定されません。一般的に、利用可能な領域を超える量のテキスト型フィールドを定義することでデータ ページより“多くコミットする”ことは可能ですが、2KB を超える実際のデータを 1 つのレコードに保持することはできません。たとえば、保存される文字データの合計が 2KB を超えない限り、1 つのレコードに 15 個の 250 バイトのテキスト型フィールドを定義することも可能です。各フィールド型がどれだけの領域を使うかについては、各データ型の定義を参照してください。


関連項目

Field オブジェクト、Fields コレクション

Parameter オブジェクト、Parameters コレクション

Property オブジェクト、Properties コレクション (アド イン)

Size プロパティ (データ アクセス)

Type プロパティ (データ アクセス)

カウンタ フィールドの使い方


SQL パススルー クエリーの使い方

関連項目

SQL パススルー クエリーを使うと、Microsoft Jet データベース エンジンのクエリー処理を介さずに、効果的に外部データベース固有のSQL ステートメントを SQL サーバーなどの外部データベース サーバーに送ることができます。

この方法を使って、単独または複数の SQL コマンド、ストアド プロシージャ、その他の SQL ステートメントなどを外部データベース サーバーに渡して実行します。SQL パススルー クエリーを指定すると、Jet データベース エンジンのクエリー処理ルーチンでの処理は行われません。クエリーの結果得られたレコードセットの作成や管理には、Jet データベース エンジンのレコードセット処理ルーチンが使われます。

典型的な用途

SQL パススルー クエリーを使うと、クエリーの処理を強制的に外部データベース エンジン上で実行させることができます。たとえば、SQL パススルー クエリーで次のようなことができます。

ストアド プロシージャの実行。

外部データベースの構文を使った SQL クエリーや、複数のレコードセットを結果として返すクエリーの実行。

外部サーバー上でのデータベース、テーブル、インデックスなどの新規作成。

トリガ、既定値、入力規則またはストアド プロシージャの作成や管理。

ユーザー アカウントの管理や、その他のシステム管理作業の実行。

Microsoft SQL サーバーの DBCC などの管理操作の実行。

1 つのバッチ処理での複数の INSERT ステートメントや UPDATE ステートメントの実行。

使い方

次に、QueryDef オブジェクトを使って、外部データベースの構文を使った SQL クエリーの保存や実行を行う方法を示します。ただし、QueryDef オブジェクトの Parameters コレクションを使ってクエリーにパラメータを設定することはできません。コード内で SQL クエリーを作成する場合、または SQL クエリーがパラメータを必要とする場合は、コードを編集してクエリーを作成または変更する必要があります。

SQL パススルー クエリーの結果としてレコード (列) が返される場合、Jet データベース エンジンは返された各レコードセットに対して、スナップショット タイプの Recordset オブジェクトを生成します。

Jet データベース エンジンでは、QueryDef オブジェクトの SQL プロパティに、Jet データベース エンジン以外のデータベースの SQL 構文を引数に設定し、SQL パススルー クエリーを使うことができます。このバージョンでも CreateDynaset、CreateSnapshot、ExecuteSQL などのメソッドの引数に外部データベースの SQL 構文を設定し、定数 dbSQLPassThrough を指定できますが、できる限りこの方法は使わないでください。

SQL パススルー クエリーの QueryDef オブジェクトを作成するには

1.	CreateQueryDef メソッドを使い、引数 name だけを指定して QueryDef オブジェクトを作成します。引数に SQL ステートメントを指定する場合は、外部データベースの SQL 構文を使うことはできません。この場合は、Jet データベース エンジンの SQL 構文に従ってください。自動的にデータベースに保存されない一時的な QueryDef オブジェクトを作成するには、CreateQueryDef メソッドを引数 name を指定せずに使います。

注   Querydef オブジェクトを使って SQL パススルー クエリーを実行するために、コード内で 定数 dbSQLPassThrough を設定する必要はありません。このオプションは、Jet データベース エンジンによって設定されます。

2.	クエリーが SQL パススルー クエリーであるということをJet データベース エンジンに知らせるために、QueryDef オブジェクトの Connect プロパティに有効な接続文字列を設定します。この時点から先は、Jet データベース エンジンはこの SQL プロパティの構文を調べません。

3.	Querydef オブジェクトの SQL プロパティに、実行する SQL ステートメントを設定します。必ず外部サーバーの指示に従った SQL 構文を使ってください。

4.	クエリーの結果 1 つまたは複数のレコードセット (列) が返される場合は、Querydef オブジェクトの ReturnsRecords プロパティを真 (True) に設定し、クエリーからレコード (列) が返されることを Jet データベース エンジンに知らせます。こうすればクエリーの結果が返される各レコードセットに対し、Jet データベース エンジンに強制的に Recordset オブジェクトを作成させることができます。レコードを返すクエリーの ReturnsRecords プロパティを真 (True) に設定していなければ、トラップできるエラーが発生します。

たとえば、次のようなコードを記述すると、MultipleResultSets という名前のストアド プロシージャを実行する SQL パススルー クエリーの QueryDef オブジェクトが作成されます。

Dim Rs As Recordset, Db As Database, Qd As Querydef

Set Db = Workspaces(0).OpenDatabase("MYDB.MDB")

Set Qd = Db.CreateQueryDef("My QD")

Qd.Connect = "odbc;dsn=MyDSN;uid=Chrissy;pwd=Champ;database=TestDB;"

Qd.SQL = "MultipleResultSets"

Qd.ReturnsRecords = True

SQL パススルー クエリーの QueryDef オブジェクトを実行するには

1.	OpenRecordset メソッドを使って格納されている Querydef オブジェクトを実行します。この場合、クエリーの結果の最初のレコードセットを取得できます。ただし、取得できるのは最初のレコードセットのみです。

Set Rs = Db.OpenRecordset("My Qd", dbOpenSnapshot)

SQL パススルー クエリーの QueryDef オブジェクトのクエリーの結果生じる 2 番め以降のレコードセットを処理するには

1.	Jet SQL の SELECT INTO 構文を使って、テーブル作成クエリーを実行する一時的な QueryDef オブジェクトを作成し、実行します。Jet データベース エンジンは、クエリーの結果返される各レコードセットに対し新規テーブルを 1 つずつ作成し、作成したテーブルをデータベースに格納します。2 人以上のユーザーが共有データベースを使っていて同時にこのコードを実行すると、テーブル名の競合が発生します。

SELECT INTO クエリーはレコードを返しませんが、QueryDef オブジェクトが返す結果を格納するために必要な数のテーブルの作成を行います。CreateQueryDef メソッドに名前の指定を行わなければ、Jet データベース エンジンはデータベースに新規 QueryDef オブジェクトを格納しません。

Set Qd = Db.CreateQueryDef("")

Qd.SQL = "SELECT [My QD].* INTO Result FROM [My QD];"

Qd.Execute

2.	QueryDef オブジェクトの結果を含むテーブルを、OpenRecordset メソッドを使って作成、処理します。

Set Rs = Db.OpenRecordset("Result")

' クエリーの結果の処理。

3.	クエリーの結果得られた各レコードセットに対して処理を繰り返します。返されるレコードセットの数がわからない場合は、TableDefs コレクションを使って作成されたレコードセットのテーブルの数を調べてください。Jet データベース エンジンは、生成される各テーブルに続き番号を割り当てます。この場合、テーブル名 Result にはクエリーの結果の最初のレコードセットが、そして Result1 には 2 番めのレコードセットが格納され、以下同様に名前が付けられます。

' クエリーの結果の 2 番めのレコードセットを取得します。

Set Rs = Db.OpenRecordset("Result1")

' 結果の処理。

' クエリーの結果の 3 番めのレコードセットを取得します。

Set Rs = Db.OpenRecordset("Result2")

' 結果の処理。

Rs.Close	' レコードセットを閉じます。これで作業は完了です。

4.	クエリーの結果を格納したテーブルを削除します。

Db.Execute "Drop table [Result]"

Db.Execute "Drop table [Result1]"

Db.Execute "Drop table [Result2]"

アタッチ テーブルに SQL パススルー クエリーを使用するには

1.	アタッチ テーブルを含むデータベースを開きます。

Dim Db As Database

Set Db = Workspaces(0).OpenDatabase("ATTACHED.MDB")

2.	アタッチ テーブルの Database オブジェクトの Connect プロパティを設定します。

Db.Connect = "ODBC;DSN=SSRVR1;UID=Fred;PWD=RHS;DATABASE=SQLDB;"

3.	上で説明したメソッドを使用して、SQL パススルー クエリーを作成し、実行します。


関連項目

外部データベースへのアクセス

コードでの SQL ステートメントの作成

CreateQueryDef メソッド

Database オブジェクト、Databases コレクション

DBEngine オブジェクト

Dynaset オブジェクト

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

OpenRecordset メソッド

Parameter オブジェクト、Parameters コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

Table オブジェクト

Workspace オブジェクト、Workspaces コレクション


カウンタ フィールドの使い方

関連項目

テーブルのレコードにレコード識別子として使えるような重複しない値が必要な場合、Microsoft Jet データベース エンジンでは重複しない値を自動的に生成するカウンタ フィールドを使ってプログラムを作成することができます。

このような特徴を持つカウンタ フィールドを新しく作成するには、Microsoft Access では、カウンタ型 (Counter) を指定してください。Visual Basic のコードを記述する場合は、Field オブジェクトの Attributes プロパティで、定数 dbAutoIncrField を指定し、Type プロパティを長整数型 (Long) に設定してください。

いったん使用可能になると、Jet データベース エンジンがその Field オブジェクトに対して自動的に重複しない長整数型の値を計算し、レコードが Update メソッドでテーブルに書き込まれたときにその値を割り当てます。コードにこの値を記述する必要はありませんが、記述する場合は、0 以上の長整数型の有効な値 (かつ重複しない値) を指定します。

データがいったんディスクに書き込まれてから割り当てられた番号を調べるには、Edit メソッドを実行するか、Recordset オブジェクトに対して Requery メソッドを使うか、LastModified プロパティのブックマークを使って最後に編集されたレコードをカレント レコードにして、そのテーブルのレコードを更新してください。コード内でカウンタ フィールドへのリレーションを確立する場合は、必ず結合先の外部キー フィールドのデータ型に長整数型を指定してください。


関連項目

Attributes プロパティ

フィールドのデータ型の選択

Edit メソッド

Field オブジェクト、Fields コレクション

LastModified プロパティ

Recordset オブジェクト、Recordsets コレクション

Type プロパティ (データ アクセス)

Update メソッド (データ アクセス)


Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例

関連項目

Microsoft Jet データベース エンジン Version 2.5 および Version 3.0 には、既存のアプリケーションを改善するための数多くの新しいオブジェクト、メソッド、プロパティがあります。次に挙げる例は、Jet データベース エンジン Version 1.0、1.1、2.0 を使った既存のアプリケーションの構造を新機能を取り入れた構造に変換する方法を示しています。ただし、実際にはどの例でも、Visual Basic Version 2.5 および Version 3.0 用に記述したコードは変更を加えなくても Visual Basic Version 4.0 で実行できます。

データベースを開く場合

バージョン	例

1.x	Set MyDb = OpenDatabase("BIBLIO.MDB")

2.5 および 3.0	Set MyDb = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")

または	Set MyDb = Workspaces(0).OpenDatabase("BIBLIO.MDB")

または	Set MyDb = OpenDatabase("BIBLIO.MDB")

テーブルを開く場合

バージョン	例

1.x	Dim MyTable As Table
Set MyTable = MyDB.OpenTable("Titles")

2.5 および 3.0	Dim MyTable As Recordset
Set MyTable = MyDB.OpenRecordset("Titles", dbOpenTable)

または	Dim MyTable As Recordset
Set MyTable = MyDB!Titles.OpenRecordset()

排他的なテーブルを開く場合

バージョン	例

1.x	Dim MyTable As Table
Set MyTable = MyDB.OpenTable("Titles", DB_DENYREAD)

2.5 および 3.0	Dim MyTable As Recordset
Set MyTable = MyDB.OpenRecordset("Titles", dbOpenTable, dbDenyRead)

または	Dim MyTable As Recordset
Set MyTable = MyDB!Titles.OpenRecordset(dbOpenTable, dbDenyRead)

ダイナセットを開く場合

バージョン	例

1.x	Dim MyDynaset As Dynaset
Set MyDynaset = MyDB.CreateDynaset("Titles")

2.5 および 3.0	Dim MyDynaset As Recordset
Set MyDynaset = MyDB.OpenRecordset("Titles", dbOpenDynaset)

または	Set MyDynaset = MyDB!Titles.OpenRecordset(dbOpenDynaset)

スナップショットを開く場合

バージョン	例

1.x	Dim MySnapshot As Snapshot
Set MySnapshot = MyDB.CreateSnapshot("Titles")

2.5 および 3.0	Dim MySnapshot As Recordset
Set MySnapshot = MyDB.OpenRecordset("Titles", dbOpenSnapshot)

または	Set MySnapshot = MyDB!Titles.OpenRecordset(dbOpenSnapshot)

フィールドを一覧表示する場合 (ListFields メソッドを書き換えます)

バージョン	例

1.x	' Table オブジェクト MyTable が開かれている場合。
Dim ListSet As Snapshot
Set ListSet = MyTable.ListFields()
While Not ListSet.EOF
  Debug.Print ListSet!Name, ListSet!Type
  ListSet.MoveNext
Wend
ListSet.Close

または	' Database オブジェクト Db が開かれている場合。
Dim i%, j%, Td As TableDef
For j% = 0 To Db.TableDefs.Count - 1
        Set Td = Db.TableDefs(j%)
        Debug.Print "Table Name:"; Td.Name
        For i = 0 To Td.Fields.Count - 1
            Debug.Print Td.Fields(i).Name;
            Debug.Print Td.Fields(i).Type
        Next I
Next j%

2.5 および 3.0	' Recordset オブジェクト MyTable が開かれている場合。
Dim Fld as Field
For Each Fld in MyTable.Fields
  Debug.Print Fld.Name, Fld.Type
Next Fld

または	' Table オブジェクトではないテーブル Table1 がある場合。
Dim I As Integer, Dim DB As Database
Set DB = Workspaces(0).OpenDatabase("MyDb.MDB")
For I = 0 To DB!Table1.Fields.Count - 1
  Debug.Print DB!Table1.Fields(I).Name
Next I

データベース内のテーブルを一覧表示する場合 (ListTables メソッドを書き換えます)

バージョン	例

1.x	' Database オブジェクト MyDB が開かれている場合。
Dim ListSet As Snapshot
Set ListSet = MyDB.ListTables()
While Not ListSet.EOF
  Debug.Print ListSet!Name
  ListSet.MoveNext
Wend
ListSet.Close

または	' Database オブジェクト Db が開かれている場合。
Dim i%, j%, Td As TableDef
For j% = 0 To Db.TableDefs.Count - 1
        Set Td = Db.TableDefs(j%)
        Debug.Print "Table Name:"; Td.Name
Next j%

2.5 および 3.0	' Database オブジェクト MyDB が開かれている場合。
Dim Td as TableDef
For Each Td in MyTable.TableDefs
  Debug.Print Td.Name
Next Td

または	' QueryDefs コレクションにクエリーが含まれている場合。
Dim J As Integer
For J = 0 To MyDB.QueryDefs.Count - 1
  Debug.Print MyDB.QueryDefs(J).Name
Next J

テーブルのインデックスを一覧表示する場合 (ListIndexes メソッドを書き換えます)

バージョン	例

1.x	' Table オブジェクト MyTable が開かれている場合。
Dim ListSet As Snapshot
Set ListSet = MyTable.ListIndexes()
While Not ListSet.EOF
  Debug.Print ListSet!Name
  ListSet.MoveNext
Wend
ListSet.Close

または	' Database オブジェクト Db が開かれている場合。
Dim i%, j%, Td As TableDef
For j% = 0 To Db.TableDefs.Count - 1
        Set Td = Db.TableDefs(j%)
        Debug.Print "Table Name:"; Td.Name
        For i = 0 To Td.Indexes.Count - 1
        	Debug.Print Td.Indexes(i).Name;
        Next I
Next j%

2.5 および 3.0	' Recordset オブジェクト MyTable が開かれている場合。
Dim I As Integer, Idx as Index
For Each Idx in MyTable.Indexes
  Debug.Print Idx.Name
Next I

クエリーのパラメータを一覧表示する場合 (ListParameters メソッドを書き換えます)

バージョン	例

1.x	' QueryDef オブジェクト MyQuery が開かれている場合。
Dim ListSet As Snapshot
Set ListSet = MyQuery.ListParameters()
While Not ListSet.EOF
  Debug.Print ListSet!Name
  ListSet.MoveNext
Wend
ListSet.Close

2.5 および 3.0	' QueryDef オブジェクト MyQuery が開かれている場合。
Dim I As Integer, Qp as Parameter
For Each Qp in MyQuery.Parameters
  Debug.Print Qp.Name
Next I

クエリーのパラメータを動的に設定する場合

バージョン	例

1.x	' データベース Db が開かれている場合。
Dim Qd as Querydef, Ds as Dynaset
Set Qd = Db.OpenQueryDef("MyQuery")
Qd.ParameterName = "parm"
Set Ds = Qd.CreateDynaset()

2.5 および 3.0	' QueryDef オブジェクト MyQuery が開かれている場合。
Dim I As Integer
For I = 0 To MyQuery.Parameters.Count - 1
  MyQuery.Parameters(I) = InputBox("Value for " & MyQuery.Parameters(I).Name)
Next I

または	Dim I As Integer
For I = 0 To MyQuery.Parameters.Count - 1
  MyQuery.Parameters(I) = InputBox("Value for " & MyQuery(I).Name)
Next I

パススルー クエリーを実行する場合

バージョン	例

1.x	' Database オブジェクト MyDb が開かれている場合。
Dim Rows as Long
Rows = MyDb.ExecuteSQL("EXECUTE SP_MySp")

または	Dim Sn as Snapshot
Set Sn = Db.CreateSnapshot("EXECUTE SP_MySp", DB_SQLPassThrough)

2.5 および 3.0	' Database オブジェクト MyDb が開かれている場合。
Dim Q As QueryDef
Set Q = MyDb.CreateQueryDef("MYODbCQuery")
Q.Connect = "ODBC;" _
& "DSN=MyServer;" _
& "UID=sa;" _
& "PWD=hithere;" _
& "DATABASE=pubs"
Q.SQL = "Exec SP_MySp"
Q.ReturnsRows = True
...
Dim R As Recordset
Set R = Q.OpenRecordset()

一時的なクエリーを作成する場合

バージョン	例

1.x	' Database オブジェクト MyDb が開かれている場合。
Dim TempQ As QueryDef
Dim TempQName As String
TempQName = "TMP:" & User() & Time()
TempQ = MyDb.CreateQueryDef(TempQName)
TempQ.SQL = "Update Table1 Set Table1.Field1 = Field1 * 1.1;"
...
TempQ.Execute
TempQ.Close
...
MyDb.DeleteQueryDef(TempQName)

2.5 および 3.0	' Database オブジェクト MyDb が開かれている場合。
Dim TempQ As QueryDef
Set TempQ = MyDb.CreateQueryDef("", "Update Table1 Set Table1.Field1 = Field1 * 1.1;")
...
TempQ.Execute
TempQ.Close


関連項目

CreateQueryDef メソッド

パラメータ クエリーの作成

Database オブジェクト、Databases コレクション

DBEngine オブジェクト

Dynaset オブジェクト

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

OpenRecordset メソッド

Parameter オブジェクト、Parameters コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

Table オブジェクト

Workspace オブジェクト、Workspaces コレクション


パラメータ クエリーの作成

関連項目

アプリケーションで 1 つのクエリーを繰り返し実行する場合、そのクエリーの SQL ステートメントを設定した QueryDef オブジェクトを作成して保存しておくと効率的です。クエリーをデータベースに保存しておくと、実行速度が速くなるうえ、そのデータベースにアクセスするあらゆるユーザーから利用できるようになります。

アプリケーションの実行時にクエリーの WHERE 句の引数を変更する必要がある場合は、クエリーに PARAMETERS 句を追加すれば、Microsoft Jet データベース エンジンによって実行時にそのクエリーに値を代入できるようになります。アプリケーションでは、パラメータ クエリーを実行する前に Querydef オブジェクトの Parameters コレクションに保存されている各パラメータに値を代入しておかなければなりません。

パラメータ クエリーを作成するには

1.	各パラメータに parametername と datatype を指定した PARAMETERS 句を作成します。フィールド名とパラメータ名が同じだと不都合が生じる可能性があるので、parametername にフィールド名そのものは使わないでください。ただし、parametername の一部にフィールド名が含まれていてもかまいません。

Microsoft Access からアクセスされるデータベースで作業している場合、parametername はプロンプト文字列として使われます。Access のユーザーがこのクエリーを使う予定がある場合は、このことを考慮して、parametername を設定してください。

次に典型的な PARAMETERS 句の例を示します。

SQL$ = "PARAMETERS [Product Wanted] TEXT' [Size] LONG; "

2.	必要なフィールドを取り出す SELECT ステートメントを作成し、名前付きパラメータを WHERE 句に設定します。次に示す例では、パラメータは、クエリーから選択された製品のうち指定したサイズのものだけを返すのに使われています。パラメータ Product Wanted は、アプリケーション実行時のクエリーの実行中に Jet データベース エンジンによって代入されます。

SQL$ = SQL$ & "SELECT DISTINCTROW * " _ ' SELECT ステートメントを PARAMETERS 句に追加。

  & " FROM Vendors" _

  & " WHERE ((Vendors.Product_ID =[Product Wanted]) " _

  & " AND (Vendors.Size = [Size])) " _

  & " WITH OWNERACCESS OPTION; "

3.	SQL ステートメントで名前付きの QueryDef オブジェクトを作成します。

Dim QD as QueryDef

Set QD = CreateQueryDef("Find Vendors", SQL$)

4.	これで QueryDef オブジェクトのパラメータを設定する準備ができました。まず、QueryDef オブジェクトにアクセスしなければなりません。作成したばかりの QueryDef オブジェクトを使うことも、保存してある QueryDef オブジェクトを QueryDefs コレクションから参照することもできます。準備の例として 2 種類の異なる方法を示しますが、どちらの方法でも参照できます。序数を使ってパラメータを設定することもできます。

Dim ParmQD as QueryDef

Set ParmQD = MyDb.QueryDefs("Find Vendors")

ParmQD("Product Wanted") = "Salmon"	' パラメータの設定の方法を

ParmQD!Size = 16	' 2 種類示しています。

5.	これで処理を実行する準備ができました。このクエリーはレコードを返すので、返された結果を保持するための Recordset オブジェクトを作成しなければなりません。

Dim Rs as Recordset

Set Rs = ParmQD.OpenRecordset()

注

パラメータ クエリーでは、BETWEEN...AND の SQL 演算子を使って一定の範囲内の値を取得することができます。たとえば、WHERE 句に BETWEEN [Low price] AND [High price] と設定しておけば、その価格帯の製品のリストを取り出すことができます。

LIKE 演算子を使ってパラメータ クエリーを作成すれば、ユーザーがワイルドカード文字を使えるようにすることもできます。たとえば、LIKE [Enter the first letter]&* と入力しておけば、ユーザーが "B" と入力すると B で始まるすべての値が表示されます。


関連項目

Like 演算子 (SQL)

Parameter オブジェクト、Parameters コレクション

PARAMETERS 宣言 (SQL)

QueryDef オブジェクト、QueryDefs コレクション

SELECT ステートメント (SQL)

WHERE 句 (SQL)


レコードセットへのデータの取得

関連項目

ここでは、レコードセットへのレコードの取得を完了させる方法と、結果として、どのようにアプリケーションの実行効率や操作に影響するかについて説明します。

Recordset オブジェクトは、複数のデータベースのレコード (列) で構成されており (ただしレコードが 1 つもないこともあります)、それらのレコードは Recordset オブジェクトを作成するときに指定した抽出条件に基づいて、Recordset オブジェクトの構成部分となります。Microsoft Jet データベース エンジンがレコードを Recordset オブジェクトに追加すると、追加されたレコードはその Recordset オブジェクトのメンバーと見なされます。

レコードセットの所属の判定

Dynaset オブジェクト、ダイナセット タイプの Recordset オブジェクト (ダイナセット)、Snapshot オブジェクト、スナップショット タイプの Recordset オブジェクト (スナップショット) にどのレコードが属しているかは、カレント レコードのポインタがそのオブジェクトに属する最後のレコードに移動するまで確定されません。属するレコードが確定されて初めて、その Recordset オブジェクトは完全にデータを取得したと見なされます。レコードセットへのデータの取得を強制的に行うには、その Recordset オブジェクトに対して MoveLast メソッドか FindLast メソッドを実行するか、カレント レコードのポインタを Recordset オブジェクトのすべてのレコードに移動させます。

Recordset オブジェクトは生成された直後に完全にデータを取得することがあります。Jet データベース エンジンの Recordset オブジェクトのデータの取得方法や、SQL クエリーの書き方によって、レコードセットが取得するレコードの数は 0 個からクエリーに返されたレコードの数の間で変化します。Recordset オブジェクトが空のときは、レコードの数は 0 個です。

マルチユーザー環境では、複数のユーザーがレコードの追加、削除、変更を行うことができますが、これらの操作でレコードが Recordset オブジェクトのメンバーとなったり、メンバーから除外されると、レコードセットは完全にデータを取得します。したがって、どの Recordset オブジェクトも取得に比較的時間がかかるレコードを含む可能性があります。

MoveLast メソッドを実行したり、Recordset オブジェクトの最後のレコードに移動したりするまでは、Recordset オブジェクトに属するレコードの数は確定していないため知ることができません。このため Jet データベース エンジンは RecordCount プロパティを、Recordset オブジェクトが空の場合は 0 に、それ以外の場合は実際に取得したレコードの数に設定します。いったんカレント レコードのポインタを最後のレコードまで移動してしまうと、それ以上のメンバーは取り込まれず、他のユーザーが加えた変更とは関係なく、RecordCount プロパティはその Recordset オブジェクトが持つレコードの合計数が設定されます。Table オブジェクトまたはテーブル タイプの Recordset オブジェクトで作業しているときには、それに関する TableDef オブジェクトの RecordCount プロパティには、そのテーブルが現在持っているレコードの数が設定されています。

他のユーザーが基本テーブルからレコードを削除しても、Recordset オブジェクトの RecordCount プロパティは、カレント レコードが削除されたレコードに設定されるまでは変更されません。削除されたレコードに移動した時点でトラップできるエラーが発生し、カレント レコードが無効になります。コードの実行で、他のユーザーが変更したレコードに移動すると、テーブル タイプやダイナセット タイプの Recordset オブジェクトでは他のユーザーから加えられた変更が反映されますが、スナップショット タイプの Recordset オブジェクトでは変更は反映されません。

コード内で MoveNext メソッドを使うと、Jet データベース エンジンは効率を向上させるため 2 つ以上のレコードを取り出すことがよくあります。このため、MoveNext メソッドを実行したり AbsolutePosition プロパティを設定したりしたときに、RecordCount プロパティの値が 2 以上増加することもあります。

バックグラウンドでのデータの取得

データ (Data) コントロールを使って Recordset オブジェクトを作成したり、Recordset オブジェクトをコード内で作成してデータ コントロールに渡したりした場合、ユーザーがそのデータ コントロールを操作するか、コードでレコードを移動するメソッドを使わなければ、カレント レコードのポインタは移動しません。しかし、最後のレコードがアクセスされるまでの間にも、Jet データベース エンジンが、バックグラウンドで、自動的に Recordset オブジェクトへデータを取得しています。つまり、ユーザーがデータ コントロールを操作したり、コードで MoveLast メソッドを実行したりしなくても、ブックマーク、あるいはスナップショット タイプの Recordset オブジェクトの場合は Recordset オブジェクトのデータは、ローカル メモリに格納されます。同時に、Recordset オブジェクトを作成するためにかけられたページ ロックがより速く解除され、他の Recordset オブジェクトからも同じデータにアクセスできるようになります。

データ コントロールの Recordset オブジェクトで行われるバックグラウンドでのデータの取得は、コードで作成され、データ コントロールに渡されていない Recordset オブジェクトでは行われません。この場合、ユーザーはコードでできるだけ早く Recordset オブジェクトへのデータの取得を完了させなければなりません。

カレント レコードの位置の設定

PercentPosition プロパティと AbsolutePosition プロパティを使うと、カレント レコードの RecordCount プロパティの値に対応した位置を設定したり取得したりできます。AbsolutePosition プロパティに RecordCount プロパティの現在の設定値を設定すると、Jet データベース エンジンは別のレコード ブロックを取り出し、その Recordset オブジェクトに追加します。ただし、Recordset オブジェクトが完全にデータを取得している場合は、AbsolutePosition プロパティに RecordCount プロパティの値を設定するとトラップできるエラーが発生します。

アクティブなステートメントを 1 つしか扱えない外部 ODBC データベースで作業している場合、その外部サーバーへの接続は Recordset オブジェクトが完全に構築されるまでは開いたままとなります。そのうえ、クエリーの結果の最後のレコードセットが完全に取得されるまでは、この接続を他のクエリーに使うことはできません。したがって、コードを記述する場合は、できるだけ速く、Recordset オブジェクトが完全にデータを取得するようにしてください。Recordset オブジェクトを開いてから、レコードセットが完全にデータを取得しないうちにユーザーにレコードを表示するようなアプリケーションは作らないようにしてください。

データ コントロールは、必ず、作成した Recordset オブジェクトのバックグラウンドでのデータの取得を完全に行うので、コードで MoveLast メソッドを実行して強制的に構築を行ったりする必要はありません。


関連項目

AbsolutePosition プロパティ

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

PercentPosition プロパティ

RecordCount プロパティ

Recordset オブジェクト、Recordsets コレクション

SQL パススルー クエリーの使い方


コードでの SQL ステートメントの作成

関連項目

ここでは、構造化照会言語 (Structured Query Language : SQL) のステートメントを作成してデータベース内のデータを操作する方法について説明します。SQL ステートメントを使うと、1 つまたは複数のテーブルからのデータの取得、レコードの追加、更新、削除、外部データベースでの外部 SQL ステートメントの実行といった操作を複数のテーブルに対して行えます。

概要

アプリケーションのコードで SQL クエリーを作成すると、通常、パラメータ クエリーで行えないような方法でさまざまな状況に対応できる SQL クエリーを生成するアプリケーションや、既存のクエリーを調整できるアプリケーションを作ることができます。パラメータ クエリーで受け取れるのは SQL ステートメントの値に代入するための SQL の引数だけで、テーブル名や式、演算子を受け取ることはできません。

Microsoft Jet データベース エンジンのクエリーをコードで変更したくないときは、Microsoft Access でクエリーを作成して保存しておくか、Microsoft Visual Basic のコードで QueryDef オブジェクトを作成してください。QueryDef オブジェクトは、実行速度が速く、Jet データベース エンジンのデータベースを利用する他のアプリケーションからでも実行できます。たいていの場合は、パラメータ クエリーを作れば QueryDef オブジェクトの持つ機能を利用し、実行時にパラメータを受け取って代入することができます。

SQL の構文の決定

アプリケーションで SQL ステートメントを作成するには、まずクエリーの問い合わせ先を決定します。それが Jet データベース エンジンの場合は、Jet データベース エンジンの構文を使います。それ以外の場合は、問い合わせ先の処理系に合わせた構文を使ってください。Jet データベース エンジン以外のデータベース エンジン (たとえば SQL サーバーなど)で作業している場合は、コードで SQL ステートメントを作成し、SQL ステートメントやストアド プロシージャにパラメータを渡します。

Jet データベース エンジンで作業する場合は、作成したいアプリケーションに必要な構文に近い構文を使った SQL 文の例を Access で作成するのが、SQL ステートメントを作成する最も簡単な方法です。例を作って動作確認したら、その例をクリップボード経由で Visual Basic で作成しているアプリケーションに貼り付けてください。

Query の作成

アプリケーションで SQL の例を編集する準備ができたら、文字列連結演算子 (&) を使い、SQL の各部分をアプリケーションで扱うコントロールや変数の内容と結びつけてください。プラス演算子 (+) は使わないでください。この演算子は、引数の加算を意味します。代入する引数で、SQL クエリーの中ではクォーテーション マークで囲む必要があるものには、コードの中で文字列の両端にクォーテーション マークを付けてください。

ユーザーが入力した引数の中にシングル クォーテーションやダブル クォーテーションが入っていないか注意してください。クォーテーション マークが含まれていると、SQL ステートメント内のクォーテーション マークの組み合わせがずれてしまいます。文字列を囲むクォーテーション マークには、シングル クォーテーション ( ' ) もダブル クォーテーション ( " ) も使えます。ただし、1 つの文字列を囲むのに使うクォーテーション マークは統一してください。

たとえば、次に示すプロシージャは検索する列の列見出しと検索する内容を受け取り、SQL クエリーに挿入します。次に受け取った引数を使ってその SQL クエリーを実行して Recordset オブジェクトを作成し、最初に選択された出版社の出版社名フィールドをテキスト ボックス (TextBox) コントロールに表示します。

Sub FindPub (Db as Database, Column as String, Criteria as String)

Dim SQL as String, Rs as Recordset

SQL = "SELECT * FROM Publishers" _

  & " WHERE " & Column & Criteria _

  & "'" & Publisher.Text & "'"

Set Rs = Db.OpenRecordset(SQL,dbOpenSnapshot)

If Rs.RecordCount <> 0 Then

  FoundPublisher.Text = Rs("Name") & ""

Else

  FoundPublisher.Text = "(Not found)"

End If

End Sub

引数 column を "PUB_ID"、引数 criteria を " = " とし、Publisher.Text に "2774" を代入して、このプロシージャを呼び出すと、次のような SQL ステートメントが生成されます。

SELECT * FROM Publishers WHERE PUB_ID = '2774'

ヒント   引数の前後のスペースには注意してください。特に、文字列を複数の行に分ける場合は気をつけてください。WHERE 句の前にスペースがないと、上の例の SQL ステートメントは“SELECT * FROM PublishersWHERE....”となってしまいます。上の例のコードでは、行継続文字を使っています。これは Visual Basic で、長い行を複数の行に分けるためにサポートされている構文ですが、SQL ステートメントでサポートされているものではありません (実際には SQL ステートメントでは必要ありません)。


関連項目

QueryDef オブジェクト、QueryDefs コレクション

SQL を使ったデータの取得


名前付き引数の使い方

関連項目

場合によっては、メソッドや関数、ステートメント、プロシージャの引数は、コードの中で引数の指定順序ではなく引数の名前で扱うことができます。このトピックでは、このような引数を使ったコードの書き方や、このような引数の渡し方について説明します。

注   名前付き引数は、Visual Basic で一般的な機能としてサポートされているものではありません。使おうとしているメソッドや関数、ステートメントが名前付き引数をサポートしているかどうかわからない場合は、該当するトピックに関するヘルプかオブジェクト ブラウザを参照してください。

コードの書き方

指定順序によって判別される引数は、定められた順序で記述すれば指定できます。

これに対し、名前付き引数では名前の後ろに := をつけて使います。たとえば、"READONLY" という名前の引数に偽 (False) を指定するには、“READONLY:=False”と記述します。名前付き引数は、そのメソッドや関数、ステートメントのオブジェクト ライブラリに挙げてあります。オブジェクト ライブラリのダイアログ ボックスを開くには、F2 キーを押してください。

名前付き引数を使うとオブジェクトを呼び出すときに引数を指定する必要がなくなるというわけではありませんが、任意の順番で指定するできます。どちらの形式を使うにしても、引数と引数の間はカンマで区切ってください。

各引数に使える名前を知るには、使用するオブジェクトをオブジェクト ライブラリから選んでコードに貼り付けてください。たとえば、OpenDatabase メソッドを貼り付けると次のようになります。

OpenDatabase(Name:=, [Exclusive]:=, [ReadOnly]:=, [Connect]:=)

指定順序によって判別される引数を使う場合、OpenDatabase メソッドは何とおりかの方法で記述することができます。たとえばデータベース名だけ指定する場合は、次のように記述します。

Set Db = OpenDatabase("MyDb.MDB")

また、name、exclusive、readonly、connect のすべての引数を指定する場合は、次のように記述します。

Set Db = OpenDatabase("MyDSN", _

  False, _

  False , _

  "ODBC;UID=Vicky")

OpenDatabase メソッドでは、指定順序によって判別される引数を対応する名前付き引数で置き換えて記述することも可能です。たとえば、データベース名だけを指定する場合、次のように記述できます。

Set Db = OpenDatabase(Name:="MyDb.MDB")

また、name、exclusive、readonly、connect のすべての引数を指定する場合、次のように記述することもできます。

Set Db = OpenDatabase(Name:="MyDSN",  _

  Exclusive:=False, _

  ReadOnly:=False, _

  Connect:="ODBC;UID=Vicky")

また、name、exclusive、readonly、connect のすべての引数を、次のように順序を変えて指定することもできます。

Set Db = OpenDatabase(Connect:="ODBC;UID=Vicky", _

  Name:="MyDSN",  _

  ReadOnly:=False, _

  Exclusive:=False)


関連項目

オブジェクト ブラウザ


SQL を使ったデータの取得

関連項目

SQLを使って、Microsoft Jet データベースなどのリレーショナル データベースに対して、問い合わせ、更新、管理などの操作ができます。

クエリーの中には、パススルー クエリー、データ定義クエリー、ユニオン クエリーなど、SQL ステートメントを使わなければならないタイプのクエリーもあります。

さらに SQL ステートメントは、テーブル名、クエリー名、フィールド名などを入力できる場所ならどこにでも設定することができます。たとえば、OpenRecordset メソッドを使って Recordset オブジェクトを作成するときにもテーブル名を指定するところに SQL ステートメントを入力することができます。

SQL ステートメントの各部について詳しくは、Jet データベース エンジンの SQL 予約語のヘルプを参照してください。

SELECT fieldlist

FROM tablenames IN databasename

WHERE searchconditions

GROUP BY fieldlist

HAVING searchconditions

ORDER BY fieldlist

SQL ステートメントの入力は、Microsoft Visual Basic のその他のコマンドと同じようには行えません。プログラムで SQL ステートメントを使うには、そのステートメントを含む文字列を作成し、その文字列をクォーテーション マークで囲んだリテラルな引数として使うか、メソッドやステートメント、関数などの中で変数として使ってください。

SQL ステートメントは非常に長くなることもあるので、読みやすいように複数の行に分けなければならない場合もあります。複数の行に分けるには、次に示すような方法で行継続文字 ( _) を使ってください。改行文字は SQL ステートメントの終了を示すので、SQL ステートメントには改行文字を埋め込むことはできません。次の例は、有効な SQL ステートメントの使い方を示しています。

Dim SQL as String, Rst as Recordset

SQL$ = "SELECT [Last Name], [First Name] " _

  & " FROM Employees " _

  & " WHERE Salary > 21000;"

Set Rst = OpenRecordset(SQL$)

注   Visual Basic で作成するアプリケーションに使うクエリーを、Microsoft Access で作成する場合もあります。Access では、クエリー ウィンドウでクエリーを作成すると、そのクエリーと同じ働きをする SQL ステートメントが生成されます。Access のクエリー ウィンドウで [表示] - [SQL] コマンドを選択するか、<SQL ビュー> ボタンをクリックすると、生成されたステートメントを見たり編集したりすることができます。Access で SQL クエリーを作成すれば、クリップボードを使ってそのクエリーをプログラムにコピーしたり、保存した QueryDef オブジェクトを使ってそのクエリーにアクセスしたりできます。


関連項目

DELETE ステートメント (SQL)

FROM 句 (SQL)

GROUP BY 句 (SQL)

HAVING 句 (SQL)

IN 句 (SQL)

INSERT INTO ステートメント (SQL)

Microsoft Jet データベース エンジン SQL の予約語

ORDER BY 句 (SQL)

SELECT ステートメント (SQL)

SELECT...INTO ステートメント (SQL)

UNION 操作 (SQL)

UPDATE ステートメント (SQL)

SQL パススルー クエリーの使い方

WHERE 句 (SQL)


CD-ROM に入れられたデータベースへのアクセス

関連項目

Microsoft Jet データベースを CD-ROM やその他の読み取り専用の媒体でユーザーに提供する場合、その媒体に .MDB データベース ファイルと .LDB ページ ロック ファイルの両方を入れる必要はありません。ただし、そのデータベースを開くときは、読み取り専用オプションと排他オプションを指定します。排他オプションを指定すれば、Jet データベース エンジンはロックされているファイルを開こうとしなくなります。したがって、複数のユーザーが同じように CD-ROM にアクセスできます。


関連項目

Database オブジェクト、Databases コレクション

OpenDatabase メソッド

データ (Data) コントロールを使ってデータベースを開く


テキスト文書に入っているデータへのアクセス

関連項目

テキスト ファイルは、アタッチすることも直接開くこともできます。対象となるテキスト ファイルは、固定長形式と区切り記号で区切られた形式のどちらで保存されたファイルでもかまいません。テキスト ファイルのデータを取得する手順は、外部データベース ソースのデータにアクセスするときの手順と同じです。ただし、他の種類のデータベースと違ってテキストのデータベースには、調べるとわかるような標準のスキーマや構造がありません。このため、ISAM ドライバでテキスト ファイルのデータを操作するには、テキスト ファイルのデータベースを記述した SCHEMA.INI ファイルを作成する必要があります。

既存のテキスト ファイルを Microsoft Jet データベースにインポートしたり、Jet データベースやその他のアタッチされたデータベース テーブルをテキスト ファイルにエクスポートしたりできるように、テキスト ファイルへの通常のアクセス機能はほとんどサポートされています。ただし、他のアタッチされたデータベース テーブルのように、同時にアクセスできるアタッチされたテキスト データベース テーブルを作成するためにテキスト ファイルにアクセスしないでください。

ワークシートのテキスト ファイルの使用に関する特別事項

Jet データベース エンジンはテキスト ファイルの複数のユーザーによる共有をサポートしないので、同時にテキスト ファイルを開くことができるのは 1 人のユーザーだけです。テキスト ファイルを参照するときは、ファイル全体を使った作業しかできません。ファイル内の 1 つのフィールドあるいはレコードだけを参照するということはできません。

区切り記号で区切られたテキスト ファイルも固定長のテキスト ファイルも読むことができます。Jet データベース エンジンは、区切り記号で区切られたテキスト ファイルを扱うときに、カンマとタブ、およびユーザー定義の区切り記号を認識できますが、1 つのテキスト ファイル内では全体を通して同じ区切り記号を使わなければなりません。Null データは、連続した 2 つの区切り記号で表します。たとえば、区切り記号がカンマ (,) の場合は 2 つのカンマ (,,) は Null 値で表します。固定長のデータを使う場合、データの形式は SCHEMA.INI ファイル内で指定できます。以降の説明を参照してください。固定長データで Null 値を表すには、スペースを使います。

テーブルは最大 256 列まで、列名は 64 文字まで、列幅は 65,500 文字まで、1 行は 65,543 バイトまでに、それぞれ制限されています。

テキスト ファイルのアタッチ

テキスト ファイルをテーブルとして Jet データベースにアタッチするには、OpenDatabase メソッドを使って .MDB データベースの場所を識別し、テキスト ファイルの場所を指定するために TableDef オブジェクトを設定します。次の例は、外部にあるテキスト ファイルをアタッチする方法を示しています。

Dim CurrentDatabase As Database

Dim MyTableDef As TableDef

' MYDB.MDB という名前の Jet データベースを開く。

Set CurrentDatabase = OpenDatabase("C:\DATABASES\MYDB.MDB")

' TableDef オブジェクトの作成。

Set MyTableDef = CurrentDatabase.CreateTableDef("MONTHS")

' 接続情報の設定。

MyTableDef.Connect = "Text;Database=C:\TEXT\DATA\"

MyTableDef.SourceTableName = "MONTHS"

' リンク作成のために TableDef オブジェクトを追加する。

CurrentDatabase.TableDefs.Append MyTableDef

テキスト ファイルを開く

テキスト ファイルからテーブル タイプの Recordset オブジェクトを作成したい場合、OpenDatabase メソッドを使ってファイルを直接開かなければなりません。次の例は、外部のテキスト ファイルを直接開いて、そのテーブルから Recordset オブジェクトを作成する方法を示しています。

Dim CurrentDatabase As Database

Dim MySet As Recordset

' 外部テキスト データ ファイルを開く。

Set CurrentDatabase = OpenDatabase("C:\TEXT\DATA",  _

  False, False, "Text;")

' Awards テーブルから Recordset オブジェクトを作成する。

Set MySet = CurrentDatabase.OpenRecordset("MONTHS")

アプリケーションの .INI ファイルのカスタマイズ

テキスト ファイルのデータにアクセスするには、アプリケーションの .INI ファイルに [Text ISAM] というセクションを作成し、テキスト ファイルの種類を設定してカスタマイズしなければなりません。使用する .INI ファイルのファイル名は、DBEngine オブジェクトの INIPath プロパティで設定します。このセクションに入力した情報は、MSTX2016.DLL ドライバの設定を初期化するのに使われます。次に .INI ファイルのこのセクションの設定の例を示します。

[Text ISAM]

Extensions=none,asc,csv,tab,txt

ColNameHeader=False

Format=TabDelimited

MaxScanRows=25

CharacterSet=OEM

エントリ	内容

Extensions	テキスト ファイルの拡張子を指定します。

ColNameHeader	データの最初のレコードを列の名前に使うかどうかを示すために、真 (True) または偽 (False) を設定します。設定値には yes か no を入れます。yes は、テーブルの最初の行に列の名前が含まれていることを示します。最初の行が列の名前にエクスポートされます。no は、最初の行に列の名前が含まれていないことを示します。この場合、行の名前は、1、2、3 などの数字になります。

Format	TabDelimited、CSVDelimited、Delimited(1 文字の区切り記号)、FixedLength のいずれかを設定します。Delimited 形式の 1 文字の区切り記号には、ダブル クォーテーション (") 以外の任意の 1 文字を指定できます。

MaxScanRows	列の型を決めるときに調べる行の数を指定します。0 に設定すると、ファイル全体が検索されます。

CharacterSet	OEM または ANSI を指定します。ソース ファイルが OEM コード ページと ANSI コード ページのどちらで記述されているかを示します。

SCHEMA.INI ファイルのカスタマイズ

テキスト データをインポートしたりエクスポートしたりするには、.INI ファイルに [Text ISAM] セクションを追加する他、SCHEMA.INI ファイルを作成する必要があります。SCHEMA.INI ファイルには、テキスト ファイルの形式、インポート時の読み込みの方法、ファイルの既定のエクスポート形式などのテキスト データ ソースの細かい仕様を指定します。次の例は、固定長ファイル FILENAME.TXT の場合の記述を示しています。

[FILENAME.TXT]

ColNameHeader=False

Format=FixedLength

MaxScanRows=25

CharacterSet=OEM

Col1=columnname Char Width 24

Col2=columnname2 Date(dd.mmm.yy) Width 9

Col3=columnname3 Date (mm-dd-yy) Width 8

Col4=columnname4 Date (mmm.dd.yy) Width 9

Col5=columnname5 Date (yyyy-mm-dd) Width 10

Col6=columnname6 Date (yyyy-mmm-dd) Width 11

Col7=columnname7 Float Width 10

Col8=columnname8 Integer Width 10

Col9=columnname9 LongChar Width 10

同様に、次の例は区切り記号で区切られたファイルの形式を指定するための記述を示しています。

[DELIMIT.TXT]

ColNameHeader=True

Format=Delimited(!)

MaxScanRows=0

CharacterSet=OEM

Col1=username char width 50

Col2=dateofbirth Date (dd-mmm-yy) width 9

データを区切り記号で区切られたテキスト ファイルにエクスポートする場合、そのファイルの形式は次のように指定してください。

[Export: My Special Export]

ColNameHeader=True

Format=TabDelimited

MaxScanRows=25

CharacterSet=OEM

DateTimeFormat=mm.dd.yy:hh.mm.ss

CurrencySymbol=Dm

CurrencyFormat=0

CurrencyDigits=2

CurrencyNegativeFormat=0

DecimalSymbol=,

NumberDigits=2

NumberLeadingZeros=0

上に示した FILENAME.TXT および DELIMIT.TXT の例は、セットアップ時に指定されるテキスト ファイルを表しています。My Special Export (データを区切り記号で区切られたテキスト ファイルにエクスポートする場合) の例は、指定した Export オプションを参照します。ユーザーは、接続時にあらゆる Export オプションを指定することができます。この Export オプションの例は、接続時に任意に渡されるデータ ソース名 (DSN) に対応しています。これら 3 つの形式セクションすべてを 1 つの SCHEMA.INI ファイルに指定することもできます。

Jet データベース エンジンは SCHEMA.INI のエントリを次のように使います。

エントリ	内容

ColNameHeader	真 (True) または偽 (False) を設定します。真 (True) に設定すると、データの最初のレコードが列の名前であることを示します

Format	TabDelimited、CSVDelimited、Delimited(1 文字の区切り記号)、FixedLength のいずれかを設定します。ファイル形式が Delimited のときの区切り記号に指定できるのは、ダブル クォーテーション (") 以外の任意の 1 文字です。

MaxScanRows	列のデータ型を決めるときに調べる行の数を指定します。0 に設定したときは、ファイル全体を検索します。

CharacterSet	OEM または ANSI を指定します。ソース ファイルが OEM コード ページと ANSI コード ページのどちらで記述されているかを示します。

DateTimeFormat	日付と時刻を示す形式文字列を入れます。インポートあるいはエクスポートされるすべての日付/時刻フィールドが同じ形式で扱われる場合は、このエントリを指定してください。Jet データベース エンジンの AM と PM を除くすべての形式がサポートされています。書式文字列を指定しないと、Windows のコントロール パネルで設定されている日付の短い形式および時刻の短い形式が使われます。

CurrencySymbol	テキスト ファイル内の通貨型のデータの値に使う通貨記号を指定します。たとえば、ドル記号や (Dm) などを指定します。このエントリを指定しないと、コントロール パネルでの既定値が使われます。

CurrencyFormat	通常の形式として次の値のいずれかを指定します。
　0: 通貨記号の前後に数値。 ($1)
　1: 通貨記号の直前に数値。 (1$)
　2: 通貨記号の後に 1 文字分あけて数値。 ($ 1)
　3: 数値の後に 1 文字分あけて通貨記号。 (1 $)

このエントリを指定しない場合は、コントロール パネルでの設定が既定値として使われます。

CurrencyDigits	通貨の値の小数点以下の桁数を指定します。このエントリを指定しない場合は、コントロール パネルでの設定が既定値として使われます。

CurrencyNegativeFormat	負の値の通貨の形式として次の値のいずれかを指定します。
　0: ($1)
　1: -$1
　2: $-1
　3: $1-
　4: (1$)
　5: -1$
　6: 1-$
　7: 1$-
　8: -1 $
　9: -$ 1
　10: 1 $-
　11: $ 1-
　12: $ -1
　13: 1- $
　14: ($ 1)
　15: (1 $)

ここでは例を示すためにドル記号 ($) を使っていますが、実際のプログラムでは、ドル記号の部分には CurrencySymbol に指定した通貨記号に置き換えられます。このエントリを指定しない場合は、コントロール パネルでの設定が既定値として使われます。

DecimalSymbol	数値の小数点記号として使われる 1 文字を指定します。このエントリを指定しない場合は、コントロール パネルでの設定が既定値として使われます。

NumberDigits	数値の小数点以下の桁数を指定します。このエントリを指定しない場合は、コントロール パネルでの設定が既定値として使われます。

NumberLeadingZeros	-1 より大きく 1 より小さい 10 進数の先頭に 0 を付けるかどうかを指定します。指定する値は 0 または 1 です。設定値が 0 のとき、整数部分に 0 を付けません。

Col1, Col2, ...	テキスト ファイルから読み込む列を指定します。このエントリは次のような形式で指定してください。
　Coln=columnName type [Width #]

columnName には列の名前を指定します。スペースを含む列名は、クォーテーション マークで囲みます。

引数 type には Bit 型、バイト型 (Byte)、整数型 (Short)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付/時刻型 (DateTime)、テキスト型 (Text)、メモ型 (Memo) のいずれかを指定します。

これらの型に加え、次の ODBC Text Driver の型もサポートされています。
　Char (テキスト型 (Text) と同じ)
　Float (倍精度浮動小数点数型 (Double) と同じ)
　Integer (単精度浮動小数点数型 (Single) と同じ)
　LongChar ((メモ型 (Memo) と同じ)
　Date (日付の形式)

列幅を指定する Width は、Format エントリが Delimited に設定されていると、無効になります。


関連項目

Microsoft Excel ワークシートまたはブックのデータへのアクセス

外部データベースへのアクセス


SQL データベースでの MSysConf テーブルの使い方

関連項目

Microsoft Jet データベース エンジンを使うフロントエンド アプリケーションで SQL データベースを管理している場合、MSysConf という名前の SQL データベースでテーブルを作成すると、2 つのアプリケーション間での通信を制御することができます。作成したテーブルは、アクセスする各 SQL データベースに追加することができます。MSysConf テーブルが SQL データベース内にない場合は、Jet データベース エンジンでは、すべての設定に以下に示すような既定の設定値が使われます。

MSysConf テーブルでは、次のような 2 つの機能を利用できます。

ユーザーがアタッチした SQL データベースのログイン ID とパスワードをローカルに保存できる機能を無効にすることができます。

Jet データベース エンジンがデータ (Data) コントロールを使ってバックグラウンドで待機時間中に行う、レコードセットの構築の方法を最適化することができます。MsysConf テーブルを使うと、一度に取得するデータの行数と、データの取得を行う時間間隔を秒単位で設定することができます。Jet データベース エンジンでは、MSysConf テーブルを作成しなければ、既定値が使われ、10 秒ごとに 100 レコードずつ返されます。

MSysConf テーブルの構造

SQL データベース テーブルの MSysConf テーブルには、次のような構造が必要です。

列の名前	データ型	Null 値の入力

Config	2 バイトの整数に対応するデータ型	不可

chValue	VARCHAR(255)	可

nValue	4 バイトの整数に対応するデータ型	可

Comments	VARCHAR(255)	可

注   大文字小文字を区別しなければならないデータ ソースを扱っているときは、テーブル名と列の名前は表示されたとおり入力してください。

このテーブルの SELECT ステートメントを使う権限はすべてのユーザーに与える必要がありますが、INSERT、UPDATE、DELETE の各ステートメントを使う権限を持つのはシステム管理者だけにしておいてください。

MSysConf テーブルに入れるデータ

MSysConf テーブル内で有効なレコードは 3 つです。次に示すのは、Config フィールドと nValue フィールドに入力する値です。その他の列は将来機能が拡張されたときのために設けてある列で、これらの列の内容は無視されます。

Config	nValue	内容

101	0	アタッチしたデータベースでのログイン ID とパスワードをローカルに保存できません。

101	1	(既定値)  ログイン ID とパスワードをローカルに保存できます。

102	D	D にはデータの取得を行う間隔を秒単位で指定します。(既定値は 10 秒です。)

103	N	N には取得する行の数を指定します。(既定値は 100 行です。)

注

データの取得間隔を長く設定すると、ネットワークのトラフィックが少なくなりますが、データに読み込みロックがかけられている時間が長くなります (ただしサーバーが読み込みに対してロックを行っている場合のみ)。

MSysConf テーブルをいったん作成すると、内容が正しく設定されていない場合は SQL データベース テーブルに全く接続できなくなります。


関連項目

外部データベースへのアクセス


カレント レコード ポインタの移動

関連項目

Recordset オブジェクトに対して作業を行っているときに、検索や変更の対象となるレコードのことをカレント レコードと呼びます。連結可能コントロールの中には同時に 2 つ以上のレコードを表示できるものもありますが、それでも変更可能なレコードは 1 つだけです。ここでは、開いた Recordset オブジェクトの中の特定のレコードにカレント レコード ポインタを移動させる方法について説明します。詳しくは、それぞれのメソッドのヘルプを検索したり [関連項目] を参照してください。

データ (Data) コントロールを使わずにカレント レコード ポインタを移動させる場合は、プログラムでこれから説明するいずれかのメソッドを使います。場合によっては、カレント レコードが存在せず、カレント レコードを参照するとトラップできるエラーが発生することもあります。たとえば、次のような場合、カレント レコードが無効となります。

Recordset オブジェクトのカレント レコードまたはすべてのレコードを削除した場合。

レコードを 1 つも持たない Recordset オブジェクトを作成した場合。

Recordset オブジェクトの先頭 (BOF) や最後 (EOF) を超えて移動した場合。

Seek メソッドや Find メソッドが失敗し、NoMatch プロパティが真 (True) に設定された場合。

カレント レコードの移動には、基本的には 5 つの方法があります。使っている Recordset オブジェクトの種類やブックマークのサポートの有無、Recordset オブジェクトに有効なインデックスがあるかなどによってどの方法を利用できるかが決まります。それぞれの種類の Recordset オブジェクトで使用可能なメソッドについては、この項目の最後に示す表を参照してください。

データ (Data) コントロールの操作

データ コントロール上のボタンを使うと、Recordset オブジェクトの最初のレコードや、次のレコード、1 つ前のレコード、最後のレコードに移動することができます。Recordset オブジェクトのどちらかの端まで移動し、そこから先への移動を無視するかどうかは、データ コントロールの EOFAction プロパティと BOFAction プロパティの設定で決まります。

Movexxx メソッド

Movexxx メソッド (MoveFirst、MoveLast、MovePrevious、MoveNext) を実行すると、MoveNext メソッドと MovePrevious メソッドの場合はそのときのカレント レコードの位置、MoveFirst メソッドの場合は Recordset オブジェクトの先頭、または MoveLast メソッドの場合は最後をもとに、カレント レコードへのポインタの移動が行われます。これらの移動メソッドの実行では、カレント レコードへのポインタを Recordset オブジェクトのどちらかの端を超えた位置まで移動させることができます。このとき、カレント レコードへのポインタは無効になります。

抽出条件に基づいた検索

Seek メソッドや Findxxx メソッド (FindFirst、FindLast、FindNext、FindPrevious) を使って、抽出条件を指定して移動することができます。Seek メソッドは、テーブル タイプの Recordset オブジェクトにしか実行できません。一方、Findxxx メソッドは、ダイナセット タイプとスナップショット タイプの Recordset オブジェクトにしか実行できません。検索したレコードが見つからない場合は、NoMatch プロパティが真 (True) に設定され、カレント レコードは無効になります。

ブックマークの使用

作業の対象となる Recordset オブジェクトがブックマークをサポートしている場合、Recordset オブジェクトの Bookmark プロパティに有効なブックマークを設定して、カレント レコード ポインタを特定のレコードに移動させることができます。最後に追加されたレコードや、変更されたレコードに移動するには、Recordset オブジェクトの LastModified プロパティに保存されているブックマークを使います。作業対象の Recordset オブジェクトの複製を作成すると、複製してできた Recordset オブジェクトのブックマークを使って作業対象の Recordset オブジェクトのカレント レコード ポインタを移動できます。Move メソッドは、ブックマークを基にオフセットを加えたり引いたりして使うこともできます。

レコード番号の使い方

リレーショナル データベースのアプリケーションはレコードの番号を基に作成するべきではありませんが、メソッドにはレコード番号に基づいて Recordset オブジェクト内での移動を行えるものもいくつかあります。データベース内ではレコード番号は個々のレコードに割り当てられるものではなく、Recordset オブジェクトが作成されるときに生成されるものです。このため、レコード番号は Recordset オブジェクトが作成されるたびに違う番号になります。レコードの順番を表すレコード番号には、1 から RecordCount プロパティの値までの番号が割り当てられます。

AbsolutePosition プロパティを使うと、レコード番号を使って特定のレコードに移動することができ、PercentPosition プロパティを使うと、指定した百分率の値に最も近いレコードに移動することができます。たとえば、50 個のレコードを持つ Recordset オブジェクトで PercentPosition プロパティに 10 を指定すると、5 番めのレコードに移動できます。

テーブル タイプの Recordset オブジェクトの RecordCount プロパティは、テーブルが持つレコードの数に設定されています。これに対し、ダイナセット タイプとスナップショット タイプの Recordset オブジェクトの RecordCount プロパティは、空の Recordset オブジェクトでは 0 に、構築が完了していない Recordset オブジェクトでは 1 に設定されています。カレント レコードへのポインタを Recordset オブジェクトの終わりの方へ向けて移動させていくと、それに合わせてカレント レコードになったレコードの番号まで RecordCount プロパティが増加します。Recordset オブジェクトやその複製に MoveLast メソッドを実行すると、Recordset オブジェクトは完全に読み込まれ、その RecordCount プロパティは Recordset オブジェクトに格納されているレコードの数に設定されます。

バックグラウンドでの構築

データ コントロールを使って Recordset オブジェクトを作成する場合や、Recordset オブジェクトがコードの記述に従って作成されデータ コントロールに渡される場合、ユーザーがそのデータ コントロールを操作したり、コードでカレント レコードを移動させるメソッドを実行したりしなければ、カレント レコード ポインタは移動しません。しかし、バックグラウンドでは、最後のレコードがアクセスされる前に Microsoft Jet データベース エンジンによって自動的に Recordset オブジェクトの構築が行われています。つまり、ユーザーがそのデータ コントロールを操作したり、コードで MoveLast メソッドを実行したりしなくても、ブックマークが、あるいはスナップショット タイプの Recordset オブジェクトの場合ならレコードセット データが、ローカル メモリに格納されます。さらに、Recordset オブジェクトを作成するためにロックされたページがより短時間で解除され、他の Recordset オブジェクトからも同じデータにアクセスできるようになります。

データ コントロールの Recordset オブジェクトで行われるバックグラウンドでの構築は、コードで作成されて、データ コントロールに渡されていない Recordset オブジェクトでは行われません。この場合、ユーザーが自分の書いたコードでできるだけ早く Recordset オブジェクトを完全に構築しなければなりません。たいていの場合、Clone メソッドを使って Recordset オブジェクトを複製してから、複製してできたレコードセットの方で MoveLast メソッドを実行すると、両方のレコードセットを完全に構築することができます。

レコードの追加と削除

レコードを追加する場合、通常は最初に Recordset オブジェクトが作成されたときの順番とは関係なく、追加されるレコードは Recordset オブジェクトの最後に追加されます。レコードを追加した後、カレント レコードへのポインタは追加前のカレント レコードを指しています。レコードを削除する必要がある場合、削除できるのはカレント レコードだけです。いったん削除を完了すると、カレント レコードは無効になり、以降の操作を行うには他の有効なレコードに移動する必要があります。

カレント レコードの移動を行うメソッド

メソッド	レコードセット	注
AddNew	テーブル タイプ、ダイナセット タイプ、Dynaset オブジェクト、Table オブジェクト	Updatable プロパティが真 (True) のときだけ実行できます。
Delete	テーブル タイプ、ダイナセット タイプ、Dynaset オブジェクト、Table オブジェクト	Updatable プロパティが真 (True) のときだけ実行できます。
Findxxx メソッド	ダイナセット タイプ、スナップショット タイプ、Dynaset オブジェクト、Snapshot オブジェクト	NoMatch プロパティが真 (True) のとき、カレント レコードは無効です。
Move	ダイナセット タイプ、スナップショット タイプ、テーブル タイプ	現在の位置か特定のブックマークに対する相対位置を指定します。
Movexxx メソッド	ダイナセット タイプ、スナップショット タイプ、テーブル タイプ、Dynaset オブジェクト、Snapshot オブジェクト、Table オブジェクト	EOF や BOF を超えて移動することも可能。この場合カレント レコードは無効になります。
PercentPosition	ダイナセット タイプ、スナップショット タイプ、テーブル タイプ	前方スクロール スナップショットには使えません。
Seek	テーブル タイプ、Table オブジェクト	NoMatch プロパティが真 (True) のとき、カレント レコードは無効です。


関連項目

AbsolutePosition プロパティ

AddNew メソッド

データ (Data) コントロール

Delete メソッド

ダイナセット タイプの Recordset オブジェクト

FindFirst、FindLast、FindNext、FindPrevious メソッド

Move メソッド

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

NoMatch プロパティ

PercentPosition プロパティ

レコードセットへのデータの取得

RecordCount プロパティ

Recordset オブジェクト、Recordsets コレクション

Seek メソッド

スナップショット タイプの Recordset オブジェクト

テーブル タイプの Recordset オブジェクト


データ アクセス用ファイル (.INI) の設定のカスタマイズ

関連項目

Microsoft Jet データベース エンジンの初期設定の動作ではアプリケーションが正しく機能しない場合、Jet データベース エンジンがアクセスできる初期化ファイルを作成します。Visual Basic Version 3.0 の場合と異なり、初期化用のパラメータは、VB.INI 以外のファイルに設定します。初期化エントリは、組み込み可能な ISAM や ODBC ドライバの動作の調整にも使われます。これらのパラメータは全て、初期化ファイル (.INI ファイル) に保存しておきます。ドライバの初期設定での動作ではアプリケーションがうまく実行できない場合、初期化ファイルに適切なパラメータを設定し、INIPath プロパティでそのファイルを指定してください。

この初期化ファイルは、通常は \WINDOWS ディレクトリに保存され、アプリケーションの名前を基に名前が付けられます。たとえば、"SOCCER.EXE" という名前のアプリケーションであれば、初期化ファイルの名前は "SOCCER.INI" となります。つまりファイルの名前は、“アプリケーション名”.INI となります。

初期化ファイルは、DBEngine オブジェクトの INIPath プロパティにパスとファイル名を設定すると、任意の名前をつけてシステムの任意の場所に保存することができます。INIPath プロパティの設定は、データ アクセス オブジェクトが初めて参照されるときに DBEngine オブジェクトが初期化されるより前に行わなければなりません。データ アクセス オブジェクトへの参照には、データ (Data) コントロールおよびすべてのデータ アクセス メソッドが含まれます。たとえば、次に示すコードでは、Jet データベース エンジンに D:\MYDIR の保存されている MYAPP.INI ファイルを使うように指定しています。

DBEngine.INIPath = "D:\MYDIR\MYAPP.INI"

初期化の設定をやり直すために DBEngine オブジェクトを再起動するには、コードに次のように記述してください。ただし、この操作を実行するとすべての Database オブジェクトと Recordset オブジェクトが閉じられるので、注意してください。

DBEngine = Nothing

.INI ファイルの設定は、Windows のメモ帳やその他のテキスト エディタを使って、以下で説明するようにカスタマイズすることができます。変更した設定は、次回アプリケーションを起動したときから有効となります。

注   Visual Basic Version 3.0 では、組み込み可能な ISAM ドライバの場所を示すパス名は VB.INI ファイル内で指定します。これに対し、 Visual Basic Version 4.0 では、これらのエントリは自動的に Windows のレジストリに組み込まれ、そこで管理されます。

VB.INI ファイルにエントリを追加または既存のエントリを変更することによって、次の項目を指定することができます。

個人のシステム データベースやワークグループのシステム データベースを定義するファイル (通常の設定では SYSTEM.MDW というファイル)。「システム データベースの変更」を参照してください。

Microsoft FoxPro、Paradox、dBASE などのデータベースとの相互作用に使う設定。「Paradox データベースの設定の変更」、「Microsoft FoxPro データベースの設定の変更」および「dBASE データベースの設定の変更」を参照してください。

Microsoft ODBC が SQL データベースとの相互作用に使う設定。「Microsoft ODBC の設定の変更」を参照してください。

Jet データベースのデータの読み込み方法や保存方法を指定する設定。「Microsoft Jet データベース エンジンの ISAM の設定の変更」を参照してください。

OLE リンクを OLE Version 2.0 形式と OLE Version 1.0 形式のどちらで保存するかを指定する設定。「OLE リンク形式の指定」を参照してください。

32 ビット システム上の IniPath プロパティは、.INI ファイルではなく、Windows レジストリのエントリを使用するようになりました。たとえば、アプリケーション設定を格納するには、次のようなコードを記述します。

SaveSettting "AppName", "Engines\Jet", "System\DB", "C:\DATA\SYSTEM.MDA"

アプリケーション設定を取得するには、次ようなコードを記述します。

DBEngine.IniPath = "HKEY_CURRENT_USER\Software\VB and VBA Program Settings\appname"


関連項目

DBEngine オブジェクト

Idle メソッド

IniPath プロパティ


システム データベースの変更

関連項目

VB.INI ファイルで [Options] セクションに記述する SystemDB オプションの設定を変更するには、次の手順に従ってください。

1.	システム データベース (通常の設定では SYSTEM.MDW というファイル) の名前と新しいパスを入力します。たとえば、次のように入力します。

SystemDB=C:\WRKGRP\SYSTEM.MDW

このように入力すると、次回 Microsoft Jet データベース エンジンを起動したときには、C ドライブの WRKGRP というディレクトリに保存されている SYSTEM.MDW がシステム データベースとして使われ、同時にそのセキュリティの設定も使われます。

2.	変更を保存し、テキスト エディタを終了してから、Jet データベース エンジンを使用するアプリケーションを起動します。


関連項目

セキュリティのアクティブ化

データ アクセス用ファイル (.INI) の設定のカスタマイズ


Microsoft Jet データベース エンジンの ISAM の設定の変更

関連項目

VB.INI ファイルの [ISAM] セクションを変更する手順を次に示します。このセクションでは、データの読み込みや保存の方法を指定します。

1.	以下に示すエントリの設定を変更します。

エントリ	内容	例
PageTimeout	読み込みがロックされていないデータが内部キャッシュ内に格納されてから、リフレッシュ時に無効になるデータとして記録されるまでの時間を設定します。設定値は、100 ミリ秒単位で表します。 既定値は 5 (500 ミリ秒、つまり 0.5 秒) です。	PageTimeout=5
LockedPageTimeout	読み込みがロックされているデータが内部キャッシュ内に格納されてから、リフレッシュ時に無効になるデータとして記録されるまでの時間を設定します。設定値は、100 ミリ秒単位で表します。 既定値は 5 (500 ミリ秒、つまり 0.5 秒) です。	LockedPageTimeout=5
CursorTimeout	カーソルのタイムアウトを 1/10 秒単位で設定します。 既定値は 5 (0.5 秒) です。	CursorTimeout=5
LockRetry	ロックされているページへのアクセスの再試行の回数を指定します。 既定値は 20 回です。	LockRetry=20
CommitLockRetry	Jet データベース エンジンが、データの変更を保存するためにロックをかけようと再試行する回数を指定します。コミット時にロックできなければ、更新は失敗に終わります。 Jet データベース エンジンがコミット時にロックしようと再試行する回数は、LockRetry エントリと直接関係します。コミット時にロックしようとする度に、LockRetry エントリの設定で指定されている回数だけロックを試みます。たとえば、CommitLockRetry エントリが 20、LockRetry エントリが 20 に設定されていれば、Jet データベース エンジンはコミット時に 20 回ロックしようと試み、コミットする度に 20 回ずつロックをかけようとし、合計で 400 回ロックを試みることになります。 既定値は 20 回です。	CommitLockRetry=20
MaxBufferSize	Jet データベース エンジンの内部キャッシュのサイズを、キロバイト (KB) 単位で指定します。MaxBufferSize エントリに指定できるのは、18 ～ 4096 の範囲の値です。 この設定を増やすと、十分なメモリがあるシステムでは、ODBC の効率がよくなります。 既定値は 512KB です。	MaxBufferSize=512
ReadAheadPages	連続的にデータを読み込むときに、一度に読み込むページ数を設定します。 既定値は 16 ページです。	ReadAheadPages=16
2.	変更を保存し、テキスト エディタを終了してから、Jet データベース エンジンを使用するアプリケーションを起動します。


関連項目

データ アクセス用ファイル (.INI) の設定のカスタマイズ


OLE リンク形式の指定

関連項目

VB.INI ファイルの [Options] セクションを変更する手順を次に示します。このセクションでは、OLE リンクを OLE の Version 1.0 形式と Version 2.0 形式のどちらで保存するかを指定します。

1.	以下に示すエントリの設定を変更します。

エントリ	内容	例
AllowOLE1LinkFormat	Microsoft Jet データベース エンジンが OLE リンク オブジェクトを保存するとき、OLE Version 2.0 形式で相対リンクのソース参照と絶対リンクのソース参照両方を保存するか、OLE Version 1.0 形式で絶対参照だけを保存するかを指定します。 このオプションを 1 に設定すると、Jet データベース エンジンの Version 2.0 と Version 1.X の両方が使われている環境で、Jet データベース エンジン Version 1.x のデータベースでの OLE リンクを同じ操作で行うことができます。 設定可能な値は 0 (OLE Version 2.0 のリンク形式) と 1 (OLE Version 1.0 のリンク形式) です。既定値は 0 です。	AllowOLE1LinkFormat=0
2.	変更を保存し、テキスト エディタを終了してから、Jet データベース エンジンを使用するアプリケーションを起動します。


関連項目

データ アクセス用ファイル (.INI) の設定のカスタマイズ


ODBC データ ソースとの接続の管理

関連項目

Microsoft Jet データベース エンジンを使って SQL サーバーなどの ODBC データ ソースと接続している場合、Jet データベース エンジンはバックエンド サーバーへ 1 つ以上の接続を開きます。これらの接続は、クエリーをサーバーに渡したりクエリーの結果のレコードセットを受け取ったりするのに使われます。600 秒 (10 分) 以上使われていない接続は、Jet データベース エンジンによって自動的に閉じられます。解除されるのは、何も操作が発生しない待機時間中です。使用していない接続をすぐに閉じるには、タイムアウト時間の経過後、DBEngine オブジェクトの Idle メソッドを呼び出します。

Jet データベース エンジンが接続の解除までにどれだけの時間待機するかを指定するには、.INI ファイルの中で ConnectionTimeout パラメータを設定してください。.INI ファイルの名前は、DBEngine オブジェクトの INIPath プロパティで指定します。このパラメータの設定は、Jet データベース エンジンが何かの操作によって初期化される前に行わなければなりません。

初期化の設定を再度行うために DBEngine オブジェクトを再起動するには、コードに次のように記述してください。ただし、この操作を実行するとすべての Database オブジェクトと Recordset オブジェクトが閉じられるので、注意してください。

DBEngine = Nothing

接続のタイムアウト値を設定するには

テキスト エディタを使って .INI ファイルの中の ConnectionTimeout パラメータを n (秒) に設定します。

Jet データベース エンジンが初期化されるよりも前に、編集した .INI ファイルの場所を DBEngine オブジェクトの INIPath プロパティに設定します。この操作はどのデータ アクセス オブジェクトへの参照を行うよりも前に、最初の Form_Load プロシージャで行ってください。

Database オブジェクトを開き、Recordset オブジェクトを必要な数だけ作成します。

Recordset オブジェクトや Database オブジェクトの作業を終了したら、次の操作を行ってください。

Close メソッドを使って、Recordset オブジェクトや Database オブジェクトのリソースを開放します。

少なくとも n 秒間 (ConnectionTimeout パラメータに設定した秒数) は待ちます。

DBEngine オブジェクトの Idle メソッドを呼び出します。これで、不必要な接続は解除されます。

一定時間ごとに Idle メソッドを呼び出すような Visual Basic のアプリケーションでは、タイマ イベントを設定すると、Jet データベース エンジンのバックグラウンド処理を完了できるよう十分な時間を取り、タイムアウトが発生したときに不必要な接続を解除することができます。

32 ビット システム上の IniPath プロパティは、.INI ファイルではなく、Windows レジストリのエントリを使用するようになりました。たとえば、アプリケーション設定を格納するには、次のようなコードを記述します。

SaveSettting "AppName", "Engines\Jet", "System\DB", "C:\DATA\SYSTEM.MDA"

アプリケーション設定を取得するには、次ようなコードを記述します。

DBEngine.IniPath = "HKEY_CURRENT_USER\Software\VB and VBA Program Settings\appname"


関連項目

Close メソッド

データ アクセス用ファイル (.INI) の設定のカスタマイズ

Database オブジェクト、Databases コレクション

DBEngine オブジェクト

IniPath プロパティ


Microsoft Jet データベース エンジン Version 2.5 および Version 3.0 でのブックマークの使い方

関連項目	例

Visual Basic Version 3.0 では、Bookmark プロパティは文字列型 (String) かバリアント型 (Variant) として管理されます。これに対し Visual Basic Version 4.0 では、Bookmark プロパティはバイト型 (Byte) の配列として管理されます。このため、比較演算子で Bookmark プロパティを指定すると、トラップできるエラーが発生します。たとえば、Bookmark プロパティを Select Case ステートメントや If...Then...Else ステートメントの中で使うと、Visual Basic がバイト型の配列とその他の変数型の数値の比較が行えないために、“型が一致しません。”というエラーが発生します。

ブックマークの値を比較するには、ブックマークの値を文字列変数にコピーし、この文字列変数を使って比較式を記述してください。


関連項目

Bookmark プロパティ (データ アクセス)

バイト型 (Byte)

If...Then...Else ステートメント

Select Case ステートメント


Microsoft Jet データベース エンジン Version 2.5 および Version 3.0 でのブックマークの使い方の例

次の例では、2 つの Recordset オブジェクトのブックマークを比較しています。

Dim Db as Database

Set Db = OpenDatabase("BIBLIO.MDB")

Dim Book1 as String, Book2 as String

Dim Rs1 as Recordset, Rs2 as Recordset

Set Rs1 = Db.OpenRecordset("Titles")

Set Rs2 = Rs1.Clone()

Book1 = Rs1.Bookmark

Book2 = Rs2.Bookmark

If Book1 = Book2 Then Print "This comparison is valid"


Microsoft Jet データベース エンジン Version 3.0 および Version 2.5 の使い方

関連項目

Visual Basic Version 4.0 には、2 つのバージョンの Microsoft Jet データベース エンジンが用意されています。

32 ビット アプリケーション用の Jet データベース エンジン Version 3.0

16 ビット アプリケーション用の Jet データベース エンジン Version 2.5

2 つのバージョンの Jet データベース エンジンは実質的に同じオブジェクト、プロパティ、およびメソッドを持っているので、ほとんどコードを変更することなく 16 ビットおよび 32 ビット アプリケーションとしてコンパイルできるデータベース プログラムを簡単に作成できます。

この 2 つのバージョンのデータベース エンジン間には高い互換性があります。ただし、Jet データベース エンジン Version 3.0 で採用しているデータベース ファイルの形式は Version 2.5 と多少異なっているため、新しいデータベースを作成する場合はこの点に注意してください。特に、次の 2 点は重要です。

1.	Jet データベース エンジン Version 3.0 では、Version 2.5 のデータベース ファイルおよび Version 3.0 のデータベース ファイルの両方を使用できます。

2.	Jet データベース エンジン Version 2.5 では、Version 3.0 のデータベース ファイルを使用できません。

同じデータベースを 16 ビット アプリケーションおよび 32 ビット アプリケーションの両方で使用する場合は、これらの制約事項を考慮して、Jet データベース エンジン Version 2.5 のデータベースを作成してください。32 ビット アプリケーションだけでデータベースを使用する場合には、Jet データベース エンジン Version 3.0 のデータベースを作成してください。

データベース バージョンの指定方法

データベースを作成するときにバージョンを指定しなかった場合、16 ビット版の Visual Basic を実行しているときは、Jet データベース エンジン Version 2.5 のデータベースが自動的に作成され、32 ビット版の Visual Basic が実行しているときは、Jet データベース エンジン Version 3.0 のデータベースが自動的に作成されます。作成するデータベースのバージョンを明示的に指定するには、CreateDatabase メソッドを呼び出すときに定数 dbVersion を指定します。

データ アクセス オブジェクトを使用する場合、そのオブジェクトに対応するタイプ ライブラリが参照されている必要があります。[ツール] - [参照設定] コマンドを選択して [参照設定] ダイアログ ボックスを表示すると、次の参照先が表示されます。

Microsoft DAO 2.5 Object Library

Microsoft DAO 2.5/3.0 Compatible Library

Microsoft DAO 3.0 Object Library

16 ビット アプリケーションの場合、Microsoft DAO 2.5 Object Library を選択します。

32 ビット アプリケーションの場合は、以前のバージョンの DAO と互換性のある Microsoft DAO 2.5/3.0 Compatible Library を選択します。参照するタイプ ライブラリを Microsoft DAO 2.5/3.0 Compatible Library に設定すると、Visual Basic Version 3.0 (Jet データベース エンジン Version 1.1) で作成した既存のコードを、32 ビット アプリケーション用に再コンパイルすることができます。

ただし、Visual Basic の将来のバージョンでは、以前のバージョンのプロパティ、メソッド、オブジェクトの一部がサポートされなくなります。新規のプロジェクトを作成する場合は、Microsoft DAO 3.0 Object Library を選択して、新しい Jet データベース エンジン Version 3.0 のモデルへ移行し、既存のコードを将来のバージョンでも使用できるようにしてください。Microsoft DAO 3.0 Object Library には、新しい DAO の機能だけが含まれています。そのため、DAO 3.0 Object Library を使用して新しくプロジェクトを作成すると、Visual Basic Version 4.0 以降でも正常に動作させることができます。


関連項目

CreateDatabase メソッド

DAO で使用されなくなった機能


外部データベースへのアクセス

関連項目

作成するアプリケーションから、外部データベースのデータにアクセスできます。外部データベースには、他の Microsoft Jet データベース (.MDB)、ODBC 上のデータベース、組み込み可能な ISAM データベースなどがあります。

外部データにアクセスする最も効率的な方法は、既存の Jet データベースに外部テーブルをアタッチすることです。テーブルをアタッチすると、外部テーブルへの参照が作成され、Jet データベースに格納されます。このリンクを格納することにより、データベース テーブルの構造を記録します。外部データベースのデータは、.MDB ファイルには保存されません。

アタッチ テーブルでは、ダイナセット タイプおよびスナップショット タイプの Recordset オブジェクトを作成できます。

既存の Jet エンジン データベースにテーブルをアタッチするには

1.	修正する Database オブジェクトおよび TableDef オブジェクトを参照するための変数を作成します。

Dim tdf As TableDef, dbs As Database

2.	OpenDatabase メソッドを使用して、既存のデータベースを開きます。

Set dbs = OpenDatabase("C:\DATABASE\MYDB.MDB")

3.	外部テーブルに対する TableDef オブジェクトを作成します。

Set tdf = dbs.CreateTableDef("Customer Detail")

4.	TableDef オブジェクトのプロパティを設定して、アタッチ テーブルを参照します。

tdf.Connect = "ODBC;DSN=SSRVR1;UID=Fred;PWD=RHS;DATABASE=SQLDB;"

tdf.SourceTableName = "CustDetail"

5.	Append メソッドを使用して、TableDef オブジェクトを TableDefs コレクションに追加します。この段階で、実際にデータベース ファイルにオブジェクトが作成されます。

注   この方法は、他の Jet データベース、ODBC データベース、および ISAM データベースに格納されたデータにアクセスするために最も効率的な方法です。ただし、SQL パススルー クエリーはサポートしません。アプリケーションで SQL パススルー クエリーを使用する場合、「SQL パススルー クエリーの使い方」を参照してください。

データ アクセス オブジェクト (DAO) で使用可能な各データ ソースについては、データの使い方に注意する必要があります。これらのデータ ソースの使い方については、次の項目を参照してください。

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

アプリケーションを実行する場合、ドライバに特定の動作が必要なときは、レジストリまたは .INI ファイルの設定を参照すると、必要な機能がドライバにあるかどうかを確認できます。各ドライバの初期化の詳細については、次の項目を参照してください。

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


関連項目

データ アクセス オブジェクトに対応したレジストリの設定のカスタマイズ

データ アクセスの概要

OpenDatabase メソッド

TableDef オブジェクト、TableDefs コレクション

SQL パススルー クエリーの使い方


データ アクセス オブジェクトに対応したレジストリの設定のカスタマイズ

関連項目

Microsoft Jet データベース エンジンの初期設定では Jet データベース エンジンを使用するクライアント アプリケーションが正しく機能しない場合、必要に応じてレジストリの設定を変更する必要があります。また、レジストリを使用して、組み込み可能な ISAM および ODBC ドライバの操作を調整することもできます。クライアント アプリケーションが、シャドウ設定からロードされたドライバの設定ではうまく動作しない場合、レジストリに Microsoft Jet データベース エンジンのクライアント アプリケーションのエントリを作成し、初期設定を無効にし、適切に動作するように設定を変更します。

Jet データベース エンジンにクライアント アプリケーションの設定を登録するには、クライアント アプリケーションのレジストリ ツリーに Jet データベース エンジンのためのフォルダまたはセクションを作成して、Jet データベース エンジンの設定を管理します。次に、指定する値をレジストリ ツリーに追加します。Engines サブフォルダに既に値が指定されている場合は、クライアント アプリケーションの起動時に Jet データベース エンジンによってこれらの設定がロードされます。クライアント アプリケーションのレジストリ ツリーに値が入力されていない場合、シャドウ設定からロードされます。

たとえば、Jet データベースに "SOCCER.EXE" という名前のアプリケーション用の設定を登録する場合、次のようなクライアント アプリケーションのレジストリ ツリーを作成します。

HKEY_LOCAL_MACHINE\SOFTWARE\MyApps\Soccer\Jet\3.0\Engines

レジストリ ツリーの PageTimeout エントリに既定値よりも小さい値に設定すると、Jet データベース エンジンの ISAM の初期設定を無効にすることができます。PageTimeout エントリの既定値は 5 (500ミリ秒) です。PageTimeout エントリに 1 を設定すると、アプリケーションによって内部キャッシュのデータが 100 ミリ秒単位で無効になります。この新しい設定値を登録するには、HKEY_LOCAL_MACHINE\SOFTWARE\MyApps\Soccer\Jet\3.0\Engines\ キーのPageTimeout エントリに 1 を設定します。アプリケーションを起動すると、SOCCER.EXE と関連する Jet データベース エンジンのインスタンスは、HKEY_LOCAL_MACHINE\SOFTWARE\MyApps\Soccer\Jet\3.0\Engines キーのすべての設定を基に構成されます。クライアント アプリケーションのレジストリ ツリーに記述されていない設定は、クライアント マシンの Jet データベース エンジンのシャドウ設定からロードされます。たとえば、クライアント アプリケーションのレジストリのHKEY_LOCAL_MACHINE\SOFTWARE\MyApps\Soccer\Jet\3.0\Engines\Jet フォルダに、PageTimeout を 1 に設定するエントリだけが含まれている場合、アプリケーションを初期化するときに、その設定だけが HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.0 で指定された既定値から変更されます。

また、レジストリを編集して、次の指定を行うことができます。

Microsoft FoxPro、Paradox、および dBASE データベースとのやり取りの設定

SQL データベースとのやり取りで Microsoft ODBC で使用される設定

Jet データベース エンジンのデータの読み込みおよび保存の方法に関する設定

警告   レジストリの設定の変更は慎重に行ってください。また、システム構成を変更しないように注意してください。


関連項目

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


データ アクセス オブジェクトの概要

関連項目

データ アクセス オブジェクト (DAO) を使用すると、プログラミング言語を使用してデータベースのデータにアクセスして操作したり、データベースまたはデータベースのオブジェクトと構造を管理することができます。

Microsoft Jet データベース エンジン

データ アクセス オブジェクトを使用して、Microsoft Jet データベース エンジンの .MDB 形式または Fox、dBASE、Excel、Btrieve、Paradox、区切り記号付きテキストをはじめとするその他の組み込み可能な ISAM データベース形式のデータベースを操作できます。また、Jet データベース エンジンを使用して、Microsoft SQL Server にアクセスしたり、同じ DAO のコードを記述して、ODBC ドライバでアクセスできるその他のデータベースにアクセスすることもできます。

データ アクセス オブジェクト

Dim ステートメントおよび Set ステートメントを使用すると、新しいデータ アクセス オブジェクト変数を宣言し、任意のオブジェクトを参照することができます。たとえば、Database オブジェクト、ダイナセット タイプの Recordset オブジェクト、および Field オブジェクトを参照するオブジェクト変数を作成するには、次のコードを記述します。

Dim dbs As Database, rst As Recordset, fld As Field

Set dbs = OpenDatabase("BIBLIO.MDB")

Set rst = dbs.OpenRecordset("Authors", dbOpenDynaset)

Set fld = rst.Fields("Au_ID")

データ アクセス オブジェクトには既定のコレクションまたは既定プロパティが割り当てられています。たとえば、Recordset オブジェクトの既定のコレクションは Fields コレクションで、Field オブジェクトの既定プロパティは Value プロパティです。これらの既定値を使用すると、簡潔なコードを作成できます。たとえば、PubID フィールドの値をカレント レコードに設定するには、次のコードを記述します。

Set rst = dbs.OpenRecordset("Publishers", dbOpenDynaset)

rst!PubID=99

オブジェクト変数とその他の DDL (データ定義言語) の機能を使用して、データベース構造を変更できます。たとえば、次のコードにより、新しい Field オブジェクトを既存のテーブルに追加できます。

Dim dbs As Database, tdf as TableDef, fld As Field

Set dbs = OpenDatabase("BIBLIO.MDB")	' データベースを開きます。

Set tdf = dbs.TableDefs("Authors")

Set fld = tdf.CreateField("Address", dbText, 20)

tdf.Fields.Append fld	' TableDef オブジェクトのフィールドに追加します。

このコードでは、まず、Field オブジェクトを参照する新しいオブジェクト変数が作成されます。作成された変数は、Append メソッドによって TableDef オブジェクトに追加されます。TableDef オブジェクトにはテーブルの定義が格納されるので、テーブルにはデータを入力するための Address という名前のフィールドが作成されます。同様の方法で、新しいテーブルと新しいインデックスが作成されます。

DBEngine オブジェクトおよび Workspace オブジェクト

すべてのデータ アクセス オブジェクトは、Jet データベース エンジンを表す DBEngine オブジェクトを基にしています。アプリケーションが起動すると、Jet データベース エンジンは、Workspace コレクションを使用して参照できる既定の DBEngine.Workspaces オブジェクト (Workspaces(0)) を作成します。Workspace オブジェクトは、必要なだけ追加して開くことができます。各 Workspace オブジェクトには、関連するユーザー ID とパスワードがあります。

注   セキュリティ機能が有効なデータベースまたは別のトランザクションの範囲を作成するデータベースを操作する必要がある場合以外は、DBEngine オブジェクトまたは Workspace オブジェクトを参照する必要はありません。特別に参照が設定されていない場合は、既定のオブジェクト DBEngine.Workspaces(0) を使います。たとえば、DAO を使ってデータベースを開き、テーブル タイプの Recordset オブジェクトを作成するには、次のコードを記述します。

Dim dbs as Database, rst as Recordset

Set dbs = OpenDatabase("BIBLIO.MDB")

Set rst = dbs.OpenRecordset("Titles")

Workspace オブジェクトに対して開かれているすべての Database オブジェクトは、共通のトランザクションの適用範囲を共有しています。つまり、BeginTrans メソッドを 1 つのデータベースで使うと、Workspace オブジェクトで開かれた他のすべての開いているデータベースにもそのメソッドが適用されます。同様に、1 つのデータベースに対して CommitTrans メソッドを使うと、Workspace オブジェクトで開いているすべての他のデータベースに適用されます。

セキュリティ

Jet データベース エンジンによって設定され管理されるセキュリティ設定を使って、1 つ以上の .MDB データベースやテーブルへのアクセスを制限することができます。コードで、Group オブジェクトと User オブジェクトを設定し、各ユーザーに利用可能な権限の適用範囲とレベルをオブジェクトごとに定義できます。たとえば、特定のユーザーに対して、1 つのテーブルには読み取り専用アクセス、別のテーブルにはすべてのアクセスが可能な権限を設定できます。

重要   セキュリティの設定または変更を行うには、.MDB データベースに関連した システム データベース ファイルにアクセスする必要があります。このファイルは、Microsoft Access Version 2.0 に含まれている特別なユーティリティによってのみ作成できます。このファイルがない場合は、アプリケーションは .MDB データベースに対するセキュリティをアクティブにできません。


関連項目

セキュリティのアクティブ化

データ アクセスの概要

Database オブジェクト、Databases コレクション

DBEngine オブジェクト

Workspace オブジェクト、Workspaces コレクション


マルチユーザー アプリケーションでのロックの動作

関連項目

Microsoft Jet データベース エンジン Version 3.0 では、マルチスレッドや暗黙のトランザクションなど、ロックの動作が大幅に改善されています。新しいバージョンでのロック時の動作は、Jet データベース エンジン Version 2.x の既定の動作といくつかの基本的な部分で異なります。このため、既存のアプリケーションに影響を与える可能性があります。ここでは、2 種類のロック方法の類似点と相違点、および新しい方法を使用した新規または既存のアプリケーションのパフォーマンスを改善するためのコードの記述方法について説明します。

明示的なトランザクションの使用

アプリケーションで明示的なトランザクションを使用している場合、Jet データベース エンジン Version 2.x から Jet データベース エンジン Version 3.0 にロック方法に変更しても影響はありません。明示的なトランザクションとは、BeginTrans メソッドの後に、トランザクションの操作の完了を判別する条件式を記述したトランザクションです。トランザクション内のすべての操作が完了したとき、アプリケーションのコードによって CommitTrans メソッドが呼び出され、データがデータベースに保存されます。操作が失敗した場合、アプリケーションのコードによって、Rollback メソッドが呼び出され、すべての操作が取り消されます。

SQL DML コマンドによる暗黙のトランザクション

UPDATE、INSERT、または DELETESQL などの SQL データ操作言語 (DML) のコマンドを使用する場合、Jet データベース エンジンでは、明示的なトランザクションが起動され、コマンドが処理されます。これらのコマンドは複数のデータ行を処理する場合に使用することが多いので、“一括”または“セット”操作と呼ぶことがあります。Jet データベース エンジンのどちらのバージョンでもこの動作は同じです。

トランザクションを使用しないマルチユーザー プログラミングに関する注意点

複数のユーザーが同時にデータにアクセスできる環境では、Jet データベース エンジン Version 2.x と Jet データベース エンジン Version 3.0 のロックの動作は異なります。ロックの動作によって、ロックされたレコードおよびページが解放される時点やその間隔が指定され、ユーザーが他のユーザーが行った追加または変更の結果を知ることができる時点が決定します。

Jet データベース エンジン Version 3.0 のロックの動作は、ディスクとの間で行うデータの読み取りおよび書き込みの回数を減らすことで改善されています。Jet データベース エンジン Version 2.x では、Recordset オブジェクトの Update メソッドを実行するたびにデータが書き込まれます。Jet データベース エンジン Version 3.0 では、Jet データベース エンジンによってデータ キャッシュに格納するために十分なデータが蓄積されるまで、それぞれのレコードを含むページに対するロックは保持されます。または、暗黙のトランザクションの開始から 2 秒、あるいはアプリケーションに対してレジストリ内で Jet データベース エンジン用の SharedAsyncDelay キーに指定された秒数が経過し、ImplictCommitSync キーの値が No に設定されるまでロックは保持されます。これらのレジストリの設定については、「Microsoft Jet データベース エンジンの ISAM の設定の変更」を参照してください。

Jet データベース エンジン Version 2.x のコードと比較して、マルチユーザー アプリケーションでデータに同時にアクセスすることは少なくなりました。通常、データに同時にアクセスすると、それぞれのユーザーによってロックが長時間保持されます。このロック方法によって同時にアクセスできる機会が少なくなるように見えますが、本来なら発生する可能性のある読み取り、書き込み、およびロック操作の回数を減らすことで、特定のアプリケーションのパフォーマンスを改善できます。明示的なトランザクション コードを追加して、Jet データベース エンジン Version 2.x のロックの動作をエミュレートすることにより、既存のアプリケーション コードで生じる遅延も最小限に抑えることができます。次の例は、この手法を示しています。

例

この例では、Jet データベース エンジン Version 3.0 のロック方法の効果を示します。Jet データベース エンジン Version 2.x のロックの動作をエミュレートするには、まず、Workspace オブジェクトの BeginTrans メソッドを呼び出し、Recordset オブジェクトの Edit メソッドによって編集するときに使用するレコード バッファを開きます。Recordset オブジェクトの Update メソッドを呼び出して、Jet データベース エンジンに強制的に編集内容をディスクに書き込ませた後に Workspace オブジェクトの CommitTrans メソッドを呼び出します。

Set rst = OpenRecordset("SELECT * FROM Customer", dbOpenDynaset)
While NOT rst.EOF
wrk.BeginTrans
rst.Edit
rst.CustId = CustId
rst.ClstNm = CLstNm
rst.Update
wrk.CommitTrans

rst.MoveNext
Wend

考えられる変更

Jet データベース エンジン Version 3.0 のその他の改善点としては、1 人のユーザーが行った変更内容を他のユーザーが参照できるまでに要する時間に関するものがあります。この動作は、データのディスクへの書き込みの遅延にも関係があるので、解決方法は同じです。

意図した時点でデータがディスクに書き込まれるように設定するには、前の例と同様に、明示的なトランザクションを使用して Jet データベース エンジン Version 2.x のロックの動作をエミュレートするようにコードを変更します。これにより、待ち時間に関する問題を解決できます。また、トランザクションをコミットした後で更新が保留されることもなくなります。さらに、トランザクションが完了した直後に、すべてのユーザーに対して変更内容を示すことができます。

エラー処理に関する注意点

Jet データベース エンジン Version 2.x では、更新操作中にエラーが発生した場合、エラー処理は直ちにエラー ハンドラに渡されるので、アプリケーションはエラーの発生時にどのレコードが処理されていたのかを判断できます。Jet データベース エンジン Version 3.0 では、データをディスクに書き込めないことによって発生した重大なエラーは、Jet データベース エンジンがデータをコミットしようとした時点、またはキャッシュの内容をディスクに書き込もうとした時点で処理されます。マルチスレッド環境では、スレッドがレコードの編集を続けている間に、別のスレッドがデータをディスクに書き込むことが可能なので、エラーの報告が遅れる可能性があります。この点を考慮して、アプリケーションのエラー処理ルーチンを作成する必要があります。Jet データベース エンジン Version 2.x でエラー処理動作をエミュレートする必要がある場合、更新のコミットについて前の例で説明した方法を使用してください。

注   キャッシュが一杯になったために書き込みが行われた場合の暗黙の更新、または明示的なトランザクションのコミット操作 (CommitTrans メソッドを使用) により発生したエラーは同じように処理できます。


関連項目

Microsoft Jet データベース エンジンの ISAM の設定の変更


DAO で使用されなくなった機能

関連項目

次の表は、Jet データベース エンジン Version 3.0 でより柔軟性が高く、使いやすい機能に置き換えられたデータ アクセス オブジェクトのメソッド、プロパティ、オブジェクト、および関数の一覧です。表に示されている使用されなくなった機能にはそれぞれ対応する新しい機能があります。

使用されなくなった機能	新しい機能
すべての CreateDynaset メソッド	OpenRecordset メソッド
すべての CreateSnapshot メソッド	OpenRecordset メソッド
すべての ListFields メソッド	Fields コレクション
すべての ListIndexes メソッド	Indexes コレクション
CompactDatabase ステートメント	DBEngine.CompactDatabase メソッド
CreateDatabase ステートメント	DBEngine.CreateDatabase メソッド
DBEngine.FreeLocks メソッド	DBEngine.Idle プロパティ
DBEngine.SetDefaultWorkspace メソッド	DBEngine.DefaultUser および DBEngine.Password プロパティ
DBEngine.SetDataAccessOption メソッド	DBEngine.IniPath プロパティ
Database.BeginTrans メソッド	WS.BeginTrans メソッド
Database.CommitTrans メソッド	WS.CommitTrans メソッド
Database.Rollback メソッド	WS.Rollback メソッド
Database.DeleteQuerydef メソッド	Delete メソッド
Database.ExecuteSQL メソッド	Execute メソッド
Database.ListTables メソッド	TableDefs コレクション
Database.OpenQuerydef メソッド	QueryDefs コレクション
Database.OpenTable メソッド	OpenRecordset メソッド
OpenDatabase ステートメント	DBEngine.OpenDatabase メソッド
Querydef.ListParameters メソッド	Parameters コレクション
Recordset.Indexes コレクション	TableDefs コレクション
Snapshot オブジェクト	Recordset オブジェクト
Dynaset オブジェクト	Recordset オブジェクト
Table オブジェクト	Recordset オブジェクト


関連項目

Microsoft Jet データベース エンジン Version 3.0 および Version 2.5 の使い方


データ アクセス オブジェクトのレコードセットの種類の選択

関連項目

使用可能な Recordset オブジェクトのオブジェクトの種類およびそれぞれの性能と、オブジェクトの種類が操作にどのように影響するのかについて説明します。

テーブル、ダイナセット、およびスナップショット タイプ

Microsoft Jet データベース エンジンでは、テーブル、ダイナセット、およびスナップショットの 3 種類の Recordset オブジェクトが提供されています。テーブルは、実際のデータベース テーブルです。ダイナセットは更新できますが、スナップショットは更新できません。

テーブル タイプの Recordset オブジェクトは、Jet データベース エンジンまたは組み込み可能な ISAM データベースで使用できます。テーブル タイプの Recordset オブジェクトを ODBC データベースから作成することはできません。テーブル タイプの Recordset オブジェクトを使用すると、テーブルを直接開いた場合と同じ結果になります。

ダイナセット タイプの Recordset オブジェクトは、各行を識別するキーの値を取得することによって更新できます。キーの値を使用することにより、取得するときの操作が速くなり、ネットワーク トラフィックを最小限に抑えることができます。特に、大きなテーブルを参照する場合に効果的です。参照する必要がある場合を除いて、メモ型および OLE オブジェクト型のデータは取得されません。

多くのレコード (500 以上) を処理する場合や、使用するレコードセットにメモ型または OLE オブジェクト型のフィールドが含まれている場合、ダイナセット タイプの Recordset オブジェクトを使用します。

スナップショット タイプの Recordset オブジェクトは更新できません。Recordset オブジェクトを作成する時点で、各行のデータが取得されます。スナップショット タイプの Recordset オブジェクトを作成する場合、多くのレコードを含まず、メモ型および OLE オブジェクト型のフィールドを含まない小さなテーブルでスナップショット タイプのレコードセットを作成すると、高速に処理できます。メモ型または OLE オブジェクト型のフィールドが使用する Jet データベースのテーブルに含まれている場合、作成されたスナップショットで実際に参照されるまで、データは読み込まれません。また、必要なフィールドだけを取得すると、スナップショット タイプの Recordset オブジェクトの取得の速度を改善できます。

元のテーブルのデータを更新する必要がない場合、少ないレコード (500 未満) を処理する場合、または、使用する Recordset オブジェクトがメモ型または OLE オブジェクト型のフィールドを含まない場合は、スナップショット タイプの Recordset オブジェクトを使用します。

前方スクロール スナップショットの Recordset オブジェクトの使用

初期設定では、スナップショット タイプの Recordset オブジェクトは双方向のスクロール機能を備えています。この機能が必要ない場合、たとえば、レコードを一度だけ参照する場合は、dbForwardOnly フラグを設定して、前方スクロール スナップショットを使用できます。前方スクロール スナップショットとして取得された結果セットはスクロールできないバッファ領域にコピーされます。


関連項目

ダイナセット タイプの Recordset オブジェクト

スナップショット タイプの Recordset オブジェクト

テーブル タイプの Recordset オブジェクト


データベースのレプリケート可能形式への変換

関連項目

データベースの Replicable プロパティを真 (True) に設定することにより、データベースをレプリケート可能形式に変換できます。データベースをレプリケート可能にする場合は、次のコードを使用します。

Sub MakeDBReplicable(strTargetDB)

Dim dbs As Database

' データベースを排他モードで開きます。

Set dbs = DBEngine(0).OpenDatabase(strTargetDB, True)

' Replicable プロパティを作成し、真 (True) に設定します。

dbs.Properties.Append dbs.CreateProperty("Replicable", dbText, _

True)	' データベースをレプリケート可能形式に変換します。

dbs.Close

End Sub

変換中は、Microsoft Jet データベース エンジンに元のデータベースのすべてのプロパティの設定が保持されます。

注   一度データベースをレプリケート可能にすると、レプリケート不可能な形式にすることはできません。Replicable プロパティを偽 (False) に設定しても、レプリケート可能にはできません。


関連項目

データベースをレプリケート可能形式に変換する前にオブジェクトをローカルに設定する

レプリカをレプリカ セットのデザイン マスターに設定する

レプリカの追加作成

オブジェクトをレプリケート可能またはローカルに設定する

デザイン マスターの状態を他のレプリカに転送する

同期の競合の解決

レプリカの同期化


データベースをレプリケート可能形式に変換する前にオブジェクトをローカルに設定する

関連項目

レプリケート不可能なデータベースをレプリケート可能形式に変換すると、特に指定しない限り、データベースのすべてのオブジェクトがレプリケート可能なオブジェクトに変換されます。データベースを変換する前に、レプリケート可能にしないオブジェクトに KeepLocal プロパティを作成し、設定できます。たとえば、データベースに給与金額などの個人の機密情報を含むテーブルがあるとします。そのテーブルの KeepLocal プロパティを真 (True) に設定し、データベースをレプリケート可能形式に変換すると、給与情報のテーブルを除くすべてのオブジェクトをレプリケート可能にし、給与情報のテーブルだけをローカルに保持することができます。

警告   KeepLocal プロパティを設定するオブジェクトで、既に別のオブジェクトからそのプロパティが継承されている場合があります。ただし、別のオブジェクトによって設定された値は、オブジェクトの動作には影響しません。オブジェクトごとに KeepLocal プロパティを直接設定する必要があります。

KeepLocal プロパティを設定した場合、プロパティが追加または継承されていないと、エラーが発生します。次の例では、KeepLocal プロパティを真 (True) に設定します。また、“プロパティが見つかりませんでした。”というエラーが発生した場合のためにエラー処理ルーチンが用意されています。エラー処理ルーチンが呼び出されると、プロパティの追加と設定が行なわれます。

Sub SetKeepLocalEvenIfInherited(objParent As Object)

Const errPropNotFound = 3270

On Error GoTo KeepLocalPropHndlr

objParent.Properties("KeepLocal").Value = True

Exit Sub

KeepLocalPropHndlr:

If (Err = errPropNotFound) Then

objParent.Properties.Append qd.CreateProperty _

("KeepLocal", dbText, True)

Else

GoSub UserDefinedErrorHandler

End If

Resume Next

End Sub

一度レプリケート可能形式に変換すると、オブジェクトに KeepLocal プロパティを使用することはできません。レプリケート可能なオブジェクトをローカルにするには、オブジェクトの Replicable プロパティを偽 (False) に設定します。

データベース内で 2 つのテーブル間にリレーションが設定されている場合、両方のテーブルに対する KeepLocal プロパティを同じ設定にします。どちらのテーブルもローカルまたはレプリケート可能である必要があります。両方のテーブルの KeepLocal プロパティの設定が異なる場合、変換は失敗します。


関連項目

データベースのレプリケート可能形式への変換

レプリカをレプリカ セットのデザイン マスターに設定する

レプリカの追加作成

オブジェクトをレプリケート可能またはローカルに設定する

デザイン マスターの状態を他のレプリカに転送する

同期の競合の解決

レプリカの同期化


レプリカをレプリカ セットのデザイン マスターに設定する

関連項目

デザイン マスター レプリカは、データベースの構造を変更できる唯一のレプリカで、レプリカ セット内で最も重要なレプリカです。元のデザイン マスター レプリカに損傷がある場合、または破壊されている場合は、現在のレプリカの DesignMasterID プロパティに ReplicaID プロパティの値を設定し、そのレプリカをレプリカ セットの新しいデザイン マスターにすることができます。ただし、既に別のデザイン マスター レプリカがある場合、現在のレプリカの DesignMasterID プロパティに ReplicaID プロパティの値を設定すると、レプリカ セットは矛盾する 2 つのセットに分割され、データの同期化が妨げられることがあります。

警告   同一のレプリカ セット内に、デザイン マスターを複数作成しないでください。デザイン マスターが複数存在すると、データが失われる場合があります。

デザイン マスターを変更する必要がある場合、そのレプリカの DesignMasterID プロパティを変更する前に、レプリカ セットのすべてのレプリカと同期を取ります。

デザイン マスター レプリカは、その状態を別のレプリカに転送できるように開いておきます。デザイン マスター レプリカは、読み取りおよび書き込みができるレプリカとして定義されています。デザイン マスターの状態を、読み取り専用のレプリカに転送すると、そのレプリカは読み取りおよび書き込みが可能になります


関連項目

データベースのレプリケート可能形式への変換

データベースをレプリケート可能形式に変換する前にオブジェクトをローカルに設定する

レプリカの追加作成

オブジェクトをレプリケート可能またはローカルに設定する

デザイン マスターの状態を他のレプリカに転送する

同期の競合の解決

レプリカの同期化


レプリカの追加作成

関連項目

データベースの Replicable プロパティに真 (True) を設定してデータベースを変換した直後、レプリカ セットには 1 つのレプリカ (デザイン マスター) だけが存在します。次に、このレプリカから 2 番めのレプリカを作成します。2 番めのレプリカ、さらにそれに続く複数のレプリカを作成するには、MakeReplica メソッドを使用します。たとえば、次のようなコードを記述します。

Sub MakeAdditionalReplica(strReplicableDB, strNewReplica)

Dim dbs As Database

set dbs = DBEngine(0).OpenDatabase(strReplicableDB)

dbs.MakeReplica strNewReplica, "First Replica of" & strReplicableDB, _

dbRepMakeReadOnly

dbs.Close

End Sub

コードで定数 dbRepMakeReadOnly を指定した場合は、新しく作成されたレプリカのレプリケート可能な要素は変更できません。指定しない場合は、ユーザーは新しいレプリカのデータを変更できます。Jet データベース エンジンで新しいレプリカを作成すると、元のレプリカのプロパティ設定は、すべて新しいレプリカにも設定されます。その後、レプリカは、デザイン マスター レプリカ、レプリカ セット内の他のレプリカのどちらからでも作成できます。

注   新しいレプリカを作成する場合、元のレプリカの中のレプリケート可能なオブジェクトとプロパティは、すべて新しいレプリカにコピーされます。アタッチ テーブルもすべてコピーされますが、新しいレプリカのネットワーク上の位置が元のレプリカと異なる場合、アタッチ テーブルのパス指定は無効になります。アタッチ テーブルに新しいパスを指定する必要がある場合は、新しいレプリカが正常に動作するかどうかを必ず確認してください。


関連項目

データベースのレプリケート可能形式への変換

データベースをレプリケート可能形式に変換する前にオブジェクトをローカルに設定する

レプリカをレプリカ セットのデザイン マスターに設定する

オブジェクトをレプリケート可能またはローカルに設定する

デザイン マスターの状態を他のレプリカに転送する

同期の競合の解決

レプリカの同期化


オブジェクトをレプリケート可能またはローカルに設定する

関連項目

レプリケート不可能なデータベースをレプリケート可能形式に変換した場合、データベース内のオブジェクトは、KeepLocal プロパティを真 (True) に設定していない限り、すべてレプリケート可能なオブジェクトに変換されます。ただし、一度データベースをレプリケート可能形式に変換した後に、デザイン マスター レプリカまたはレプリカ セット内の他のレプリカで作成した新規オブジェクトは、すべてローカル オブジェクトとして処理されます。ローカル オブジェクトは、そのオブジェクトが作成されたレプリカ内でのみ使用されるオブジェクトであり、レプリカ セット内にコピーされることはありません。レプリカ セット内で新しいレプリカを作成するたびに、元のレプリカのレプリケート可能なオブジェクトは、すべて新しいレプリカにコピーされますが、ローカル オブジェクトはコピーされません。

レプリカで新しいオブジェクトを作成し、そのオブジェクトをすべてのユーザーが使用できるようにローカル オブジェクトからレプリケート可能オブジェクトに変更する必要がある場合は、そのオブジェクトをデザイン マスター レプリカ内に作成するか、またはデザイン マスター レプリカにインポートします。そのオブジェクトをデザイン マスター レプリカ内のオブジェクトにした後、そのオブジェクトの Replicable プロパティを真 (True) に設定します。

警告   Replicable プロパティを設定する対象のオブジェクトに、既に別のオブジェクトからそのプロパティが継承されている場合があります。ただし、別のオブジェクトによって設定された値はオブジェクトの動作には影響しません。KeepLocal プロパティを直接設定する必要があります。

Replicable プロパティを設定した場合、プロパティが追加または継承されていない場合、エラーになります。次の例では、Replicable プロパティが真 (True) に設定されています。また、“プロパティが見つかりませんでした。”というエラーが発生した場合のためにエラー処理ルーチンが用意されています。エラー処理ルーチンが呼び出されると、プロパティの追加と設定が行われます。

Sub SetReplicableEvenIfInherited(objParent As Object)

Const errPropNotFound = 3270

On Error GoTo ReplicablePropHndlr

objParent.Properties("Replicable").Value = True

Exit Sub

ReplicablePropHndlr:

If (Err = errPropNotFound) Then

objParent.Properties.Append qd.CreateProperty _

("Replicable", dbText, True)

Else

GoSub UserDefinedErrorHandler

End If

Resume Next

End Sub

次に同期が実行されたときに、新しくレプリケート可能に設定されたオブジェクトは、レプリカ セット内の他のレプリカにコピーされます。一方、レプリケート可能なオブジェクトをローカル オブジェクトに変更したい場合は、その Replicable プロパティを偽 (False) に設定します。次に同期をとるとき、デザイン マスター レプリカ以外のすべてのレプリカで、レプリケートされていたオブジェクトが削除されます。


関連項目

データベースのレプリケート可能形式への変換

データベースをレプリケート可能形式に変換する前にオブジェクトをローカルに設定する

レプリカをレプリカ セットのデザイン マスターに設定する

レプリカの追加作成

デザイン マスターの状態を他のレプリカに転送する

同期の競合の解決

レプリカの同期化


デザイン マスターの状態を他のレプリカに転送する

関連項目

デザイン マスター レプリカは、データベースの構造を変更できる唯一のレプリカで、レプリカ セット内で最も重要なレプリカです。ただし、デザイン マスターの状態をあるレプリカから別のレプリカに転送する必要がある場合もあります。たとえば、1 人の開発者のコンピュータにデザイン マスター レプリカがあり、同じ開発チームの別のメンバーのコンピュータにそのレプリカがあるとします。この場合、デザイン マスターの所有者が休暇を取っている間でも、別の開発者がデータベースを修正できるようにする必要がある場合について考えます。次のコードに示すように、ReplicaID プロパティを使用して DesignMasterID プロパティを新しく設定し、残りのレプリカをそのレプリカに同期させることができます。

' 排他モードで現在のデザイン マスターを開きます。

Set dbs = DBEngine(0).OpenDatabase(strOldDM, True)

' 新しいデザイン マスターを開きます。

set newdmdb = DBEngine(0).OpenDatabase(strNewDB)

dbs.DesignmasterID = newdmdb.ReplicaID

dbs.Synchronize strNewDB,dbRepImpExpChanges

dbs.Close

newdmdb.Close

デザイン マスターはその状態を別のレプリカに転送できるように開いておきます。また、デザイン マスターの状態が機能するためには、転送後に同期をとる必要があります。

デザイン マスター レプリカは、読み取りおよび書き込みができるレプリカとして定義されています。デザイン マスターの状態を、読み取り専用のレプリカに転送すると、そのレプリカは読み取りおよび書き込みが可能になり、代わりに、以前のデザイン マスター レプリカが読み取り専用になります。

デザイン マスターとして機能しているレプリカ全体を消去したりまたは破損した場合、別のレプリカをデザイン マスターとして動作するように割り当てることができます。デザイン マスターは、一度に 1 つしか存在できないことに注意してください。


関連項目

データベースのレプリケート可能形式への変換

データベースをレプリケート可能形式に変換する前にオブジェクトをローカルに設定する

レプリカをレプリカ セットのデザイン マスターに設定する

レプリカの追加作成

オブジェクトをレプリケート可能またはローカルに設定する

同期の競合の解決

レプリカの同期化


同期の競合の解決

関連項目

2 つのレプリカの同期させた場合、データベースを調べて、競合が発生していないかどうかを判断する必要があります。特定のテーブルで競合が発生したかどうかは、ConflictTable プロパティを使用して調べます。このプロパティを使用すると、同期をとっている間に競合が発生したデータベース レコードを含む、競合テーブルの名前を取得できます。たとえば、次に示すコードは、使用しているデータベース内のテーブルに関連する競合テーブルの名前を調べ、次に、各レコードの競合を調べて、これを解決するための操作を行います。

Sub Resolve (dbs As Database)

Dim tdf As TableDef, recErr As Recordset

For Each tdf In dbs.TableDefs

If (tdf.ConflictTable <> "") Then

Set recErr = dbs.OpenRecordset(tdf.ConflictTable)

' 各レコードを処理します。

recErr.MoveFirst

While Not recErr.EOF

.	' 競合の解決。

.

.

recErr.Delete	' 終了したら、競合レコードを削除します。

recErr.MoveNext

Wend

recErr.Close

End If

Next tdf

End Sub

競合テーブルがない場合、またはデータベースがレプリケート不可能な場合は、ConflictTable プロパティは長さ 0 の文字列を返します。


関連項目

データベースのレプリケート可能形式への変換

データベースをレプリケート可能形式に変換する前にオブジェクトをローカルに設定する

レプリカをレプリカ セットのデザイン マスターに設定する

レプリカの追加作成

オブジェクトをレプリケート可能またはローカルに設定する

デザイン マスターの状態を他のレプリカに転送する

レプリカの同期化


レプリカの同期化

関連項目

Synchronize メソッドを使用すると、レプリカの同期を維持できます。ターゲット データベースのファイル名を引数 dbPathname に指定すると、あるユーザーのレプリカを、同一のレプリカ セット内の他のレプリカと同期させることができます。同期をとる方法にはいくつかあり、引数 intExchgType の設定によって選択できます。引数が指定されていない場合、データの交換は双方向 (インポートとエクスポート) に行われます。たとえば、レプリカ間で双方向に同期をとるためには、次のようなコードを記述します。

Sub SynchronizeDBs(strDBName, strSyncTargetDB)

Dim dbs As Database

set dbs = DBEngine(0).OpenDatabase(strDBName)

' レプリカの同期をとります (双方向に交換)。

dbs.Synchronize strSyncTargetDB, dbRepImpExpChanges

dbs.Close

End Sub

Jet データベース エンジンはレプリカの同期をとる場合、必ずデザインの変更の同期をとり、次にデータの変更の同期をとります。データの交換を行う場合、両方のレプリカのデザインは同じバージョンである必要があります。たとえば、引数 intExchgType に定数 dbRepExportChanges を指定して、データの変更が現在のレプリカからターゲット レプリカに対してのみ転送されるように設定した場合でも、現在のレプリカのデザインは変更されます。コピーした結果、両方のレプリカの ReplicaID プロパティの設定が同じになった場合、または両方のレプリカにデザイン マスターの状態が設定されている場合、同期をとることはできません。


関連項目

データベースのレプリケート可能形式への変換

データベースをレプリケート可能形式に変換する前にオブジェクトをローカルに設定する

レプリカをレプリカ セットのデザイン マスターに設定する

レプリカの追加作成

オブジェクトをレプリケート可能またはローカルに設定する

デザイン マスターの状態を他のレプリカに転送する

同期の競合の解決


Btrieve データベースのデータへのアクセス

関連項目

Btrieve のテーブルを Microsoft Jet データベース (Version 2.5 または以前のバージョンのみ) にアタッチしたり、直接開いて使用することができます。Btrieve のファイル (Version 5.1x および Version 6.0) のデータにアクセスする手順は、他の外部データ ソースのデータにアクセスするときの手順と同じです。ここでは、Btrieve のデータを使用する場合に特に注意する点を説明します。

Btrieve のテーブルのアタッチ

Jet データベースに Btrieve テーブルをアタッチするには、まず OpenDatabase メソッドを使用してデータベースを開きます。次に、TableDef オブジェクトを作成し、TableDef オブジェクトの Connect プロパティおよび SourceTableName プロパティを設定して、アタッチする Btrieve のテーブルのパスおよび名前を指定します。

Btrieve データの接続情報の指定項目は次のとおりです。

項目	指定内容
ソース データベースの種類	Btrieve を指定します。
データベース名	データ定義ファイル File.DDF の絶対パスを指定します。
ソース テーブル名	File.DDF で指定されているテーブル名を指定します。
例

次の例は、Btrieve の外部テーブルをアタッチし、確認のためのメッセージ ボックスを表示する方法を示しています。

Dim dbsJet As Database

Dim tdfAttachedTable As TableDef

' TEST.MDB という名前の Jet データベースを開きます。

Set dbsJet = OpenDatabase("C:\ACCESS\DATA\TEST.MDB")

' TableDef オブジェクトを作成します。

Set tdfAttachedTable = dbsCurrent.CreateTableDef("Attached Btrieve Table")

' 接続情報を設定します。

tdfAttachedTable.Connect = "Btrieve;DATABASE=N:\FILE.DDF"

tdfAttachedTable.SourceTableName = "Accounts"

' TableDef オブジェクトを追加してリンクを作成します。

dbsCurrent.TableDefs.Append tdfAttachedTable

' 確認のメッセージを表示します。

MsgBox tdfAttachedTable.SourceTableName & "のアタッチが完了しました。", 0

Btrieve のテーブルを開く

Btrieve のテーブルを直接開くには、Database オブジェクトを作成し、OpenDatabase メソッドを使用して、データベース ファイルのパス、排他アクセスで開くための値、読み取り専用で開くための値、およびデータ ソース名を指定します。

例

次の例は、Btrieve の外部テーブルを開き、そのテーブルから Recordset オブジェクトを作成する方法を示しています。

Dim dbsJet As Database

Dim rstAccounts As Recordset

' Btrieve の外部データ定義ファイルを開きます。

Set dbsJet = OpenDatabase("N:\FILE.DDF", FALSE, FALSE, "BTRIEVE;")

' Accounts テーブルから Recordset オブジェクトを作成します。

Set rstAccounts = dbsCurrent.OpenRecordset("Accounts")

必要となるデータ定義ファイル (.DDF)

Btrieve のテーブルを使用するには、FILE.DDF と FIELD.DDF というデータ定義ファイルが必要です。これらのファイルにはテーブルの構造が記述されており、Xtrieve などの .DDF ファイル構築プログラムによって作成されます。Btrieve のテーブルをアタッチした後でこれらのファイルや Btrieve のデータ ファイルを削除または移動すると、Btrieve の外部テーブルを開くことができなくなります。

データ型の変換

Btrieve ファイルからデータをインポートすると、Microsoft Jet データベース エンジンでは、Btrieve のフィールドの各データ型が、Jet データベースのフィールドの対応するデータ型に変換されます。対応するデータ型は次のとおりです。

Btrieve のデータ型	Jet データベースのデータ型
String、lstring、zstring	文字列型 (String)
Integer (1、2、または 4 バイト)、 autoinc (2 または 4 バイト)	長整数型 (Long)
Float or bfloat (4 バイト)	単精度浮動小数点数型 (Single)
Float or bfloat (8 バイト)、decimal、numeric	倍精度浮動小数点数型 (Double)
Money	通貨型
Logical、bit	ブール型 (Boolean)
Date、time	日付/時刻型
Note	メモ型
Lvar	メモ型
注   255 バイトを超える Btrieve のフィールドはメモ型のフィールドとして扱われます。

参照

詳細およびオプションの設定の一覧については、Btrieve のマニュアルを参照してください。


関連項目

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


dBASE データベースのデータへのアクセス

関連項目

dBASE のテーブル (.DBF ファイル) を Microsoft Jet データベースにアタッチしたり、直接開いて使用することができます。dBASE のテーブル (Version III、Version IV、または Version 5.x) のデータには、他の外部データ ソースのデータにアクセスする場合と同じ方法でアクセスできます。ここでは、dBASE のデータを使用する場合に特に注意する点について説明します。

dBASE のテーブルのアタッチ

Jet データベースに dBASE テーブルをアタッチするには、まず OpenDatabase メソッドを使用して Microsoft Jet データベースを開きます。次に、TableDef オブジェクトを作成し、TableDef オブジェクトの Connect プロパティおよび SourceTableName プロパティを設定して、アタッチする dBASE のテーブルのパスおよび名前を指定します。

dBASE データの接続情報の指定項目は次のとおりです。

項目	指定内容
ソース データベースの種類	次のいずれかを指定します。 dBASE III dBASE IV dBASE 5.0
データベース名	アクセスする dBASE のファイルを含むディレクトリへの絶対パスを指定します。
ソース テーブル名	テーブル名を指定します。テーブル名には、拡張子を含まない .DBF ファイル名、または拡張子付きのファイル名を指定します。ただし、拡張子を指定する場合は、拡張子の前のピリオド (.) の代わりに、シャープ記号 (#) を使います。
次の例は、dBASE IV の外部テーブルをアタッチし、確認のためのメッセージ ボックスを表示する方法を示しています。

Dim dbsJet As Database

Dim tdfAttachedTable As TableDef

' TEST.MDB という名前の Jet データベースを開きます。

Set dbsJet = OpenDatabase("C:\ACCESS\DATA\TEST.MDB")

' TableDef オブジェクトを作成します。

Set tdfAttachedTable = dbsCurrent.CreateTableDef("Attached dBASE Table")

' 接続情報を設定します。

tdfAttachedTable.Connect = "dBASE IV;DATABASE=\\dBASE\Data\AP"

tdfAttachedTable.SourceTableName = "Accounts"

' TableDef オブジェクトを追加してリンクを作成します。

dbsCurrent.TableDefs.Append tdfAttachedTable

' 確認のメッセージを表示します。

MsgBox tdfAttachedTable.SourceTableName & "のアタッチが完了しました。", 0

dBASE のテーブルを開く

dBASE のテーブルを直接開くには、Database オブジェクトを作成し、OpenDatabase メソッドを使用して、データベース ファイルのパス、排他アクセスで開くための値、読み取り専用で開くための値、およびデータ ソース名を指定します。

次の例は、dBASE III の外部テーブルを直接開き、そのテーブルから Recordset オブジェクトを作成する方法を示しています。

Dim dbsJet As Database

Dim rstAccounts As Recordset

' dBASE の外部データベースを開きます。

Set dbsJet = OpenDatabase _

("\\dBASE\Data\AP", False, False, "dBASE III;")

' Accounts テーブルの Recordset オブジェクトを作成します。

Set rstAccounts = dbsCurrent.OpenRecordset("Accounts")

データ型の変換

dBASE ファイルからデータをインポートすると、Microsoft Jet データベース エンジンでは、dBASE のフィールドの各データ型が、Jet データベースのフィールドの対応するデータ型に変換されます。対応するデータ型は次のとおりです。

dBASE のデータ型	Jet データベースのデータ型
文字型 (Character)	文字列型 (String)
数値型 (Numeric)、浮動小数点数型 (Float)	倍精度浮動小数点数型 (Double)
論理型 (Logical)	ブール型 (Boolean)
日付型 (Date)	日付/時刻型
メモ (Memo)	メモ型
OLE	OLE オブジェクト型
レコードの削除

ほとんどの場合、外部データのレコードを削除すると、実際にソース テーブルからそのレコードが削除されます。ただし、dBASE のテーブルでは、レコードを削除しても、dBASE のコマンドまたはユーティリティを使用してテーブルをパックするまで、そのレコードは実際には削除されません。そのため、Jet データベース エンジンが提供する DBEngine オブジェクトの CompactDatabase メソッドは、Jet データベース エンジンに対してのみ有効で、dBASE のアタッチ テーブルでは無効です。

Jet データベース エンジンに、削除されたレコードを含まないように指定するには、初期設定の Deleted パラメータを真 (True) に設定します。Deleted パラメータを偽 (False) に設定すると、作成するどの Recordset オブジェクトにも削除されたレコードを含むすべてのレコードが含まれるようになります。

インデックス

dBASE のテーブルをアタッチしたり、開いたりする場合、1 つまたは複数の dBASE のインデックス ファイル (.NDX または .MDX)を使うように Jet データベース エンジンに指定すると、パフォーマンスを向上させることができます。Jet データベース エンジンでは、.INF という拡張子を持つ特別な情報ファイルを使ってインデックスを管理します。Visual Basic を使用して dBASE のテーブルをアタッチしたり、開いたりする場合、テキスト エディタを使用して .INF ファイルを作成するか、Microsoft Access が作成した .INF ファイルを使用する必要があります。.INF ファイルのファイル名は、外部テーブルの名前に対応していなければなりません。該当するインデックスを簡単に見つけるには、そのテーブルと同じディレクトリに .INF ファイルを保管するのが最も良い方法です。ただし、テーブルが読み取り専用の共有ディレクトリにある場合は、初期設定の INIPath エントリを使用して、別のパスを指定することができます。

.INF ファイル内の各エントリは、インデックス番号とインデックス ファイル名 (LASTNAME.NDX など) で構成されます。インデックス番号の形式は、dBASE III では NDXn、dBASE IV では NDXn または MDXn を使います。エントリの前には、ソース データベースの種類を記述します。たとえば、Authors という名前の dBASE III のテーブルの .INF ファイルは、AUTHORS.INF という名前のファイルになり、次のように記述します。

[dBASE III]

NDX1=AuthorID.NDX

NDX2=LastName.NDX

NDX3=Zip.NDX

固有のインデックスを指定するには、.INF ファイルに UIDXn という形式でインデックス番号を指定して、インデックスのタグやファイル名を追加します。次の例のように、データベースの種類を示すセクションの下にエントリを追加します。

[dBASE III]

NDX1=AuthorID.NDX

NDX2=LastName.NDX

NDX3=Zip.NDX

UIDX1=AauthorID.NDX

Jet データベース エンジンを使用して .DBF ファイルのデータを更新すると、Jet データベース エンジンは、インデックス ファイルを更新して、変更内容を反映させます。.DBF ファイルをアタッチするか開いて、それにインデックス ファイル (.NDX または .MDX) を関連付けると、Jet データベース エンジンは、そのアタッチ テーブルを開くときに関連付けられているインデックス ファイルが必要になります。インデックス ファイルまたは .INF ファイルを削除または移動すると、Jet データベース エンジンはインデックスを使用できず、インデックスを最新の状態に維持することができなくなります。インデックス ファイルが最新の状態を反映していないと、クエリーの結果が予測できなくなります。

メモ型のフィールド

dBASE のメモ (Memo) フィールドは、それと関連付けられたテーブルとは別のファイルにあります。メモ (Memo) フィールドを含む dBASE のテーブルをアタッチするか開くときは、メモ (Memo) ファイルは .DBF ファイルと同じディレクトリにある必要があります。

参照

詳細については、dBASE のマニュアルを参照してください。


関連項目

Btrieve データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


Lotus 1-2-3 ワークシートのデータへのアクセス

関連項目

Lotus 1-2-3 のワークシートを Microsoft Jet データベースにアタッチしたり、直接開いて使用することができます。Lotus のファイル形式 (WKS、WK1、または WK3) のデータには、他の外部データ ソースのデータにアクセス場合と同じ方法でアクセスできます。ここでは、Lotus のデータを使用する場合に特に注意する点について説明します。

テーブル、フィールド、およびレコードの参照方法

Lotus のワークシート全体、ワークシート内の名前の付いたセル範囲、または任意の名前の付いていないセル範囲を参照できます。ワークシートおよび任意の範囲を参照する場合の方法は、シングル シート (WKS および WK1) またはマルチ シート (WK3 および WK4) ファイルのどちらにアクセスするかに応じて異なります。

WKS または WK1 形式のワークシート全体を参照する場合、パスおよびファイル名を入力します。シャープ記号 (#) を使用して、C:\LOTUS\SALES#WK3 のように、ファイル名と拡張子を区切ります。WK3 または WK4 形式のファイルの 1 枚のシート全体を参照する場合は、SHEET1: のように、シート名およびコロンを指定します。

WKS または WK1 形式のワークシートの任意のセル範囲を参照する場合、A1..E15 のように、範囲の開始セルと終了セルを 2 つのピリオドで区切って指定します。WK3 または WK4 形式のファイルの任意のセル範囲を参照する場合、SHEET1:A1..E15 のように、シート名とそれに続けてコロン、および 2 つのピリオドで区切られた開始セルと終了セルを指定します。

Lotus ワークシートの名前の付いたセル範囲を参照するには、あらかじめその範囲に名前を付けてからその範囲を開いたり、アタッチしたりします。名前を付ける範囲を強調表示し、メニューから [範囲名作成] を選択し、範囲の名前 (たとえば、ThirdQtrSales など) を入力して、セルの範囲の名前を指定します。入力した名前は、Lotus 1-2-3 用の ISAM ドライバによってアタッチされたデータ テーブルまたは開かれたデータ テーブルの名前になります。Lotus データ テーブルのそれぞれのフィールドおよびレコードを直接参照することはできません。

Lotus ワークシートのアタッチ

Jet データベースに Lotus のワークシートをアタッチするには、OpenDatabase メソッドを使用して Jet データベースを開き、TableDef オブジェクトを作成し、TableDef オブジェクトの Connect プロパティおよび SourceTableName プロパティを設定して、アタッチする Lotus のファイルのパスおよび名前を指定します。ワークシート内の名前の付いたセル範囲またはワークシート全体を指定できます。

Lotus のデータの接続情報の指定項目は次のとおりです。

項目	指定内容
ソース データベースの種類	Lotus WKS*、Lotus WK1**、Lotus WK3**、Lotus WK4** のいずれかを指定します。
データベース名	Lotus のワークシートへの絶対パス名を指定します。
ソース テーブル名	ワークシートまたはワークシート内の指定範囲。
*	Lotus WKS のワークシートは読み取り専用データ ソースとして開かれます。行を追加、編集、または削除することはできません。
**	Lotus WK1、WK3、および WK4 ワークシートは 1 回のみの書き込みと複数回の読み取りが可能なデータ ソースとして開かれます。新しい行を追加できますが、既存の行を編集または削除することはできません。
次の例は、Lotus の外部ワークシートをアタッチし、確認のためのメッセージ ボックスを表示する方法を示しています。

Dim dbsJet As Database

Dim tdfThirdQtr As TableDef

' NORTHWIND.MDB という名前の Jet データベースを開きます。

Set dbsJet = OpenDatabase("C:\DB\DATA\NORTHWIND.MDB")

' TableDef オブジェクトを作成します。

Set tdfThirdQtr = dbsCurrent.CreateTableDef("Attached Lotus Table")

' Lotus のワークシート C:\LOTUS\EXAMPLES\SALES.WK3 の

' THIRDQTR という名前のセル範囲をアタッチします。

tdfThirdQtr.Connect = "LOTUS WK3; _
Database=C:\LOTUS\EXAMPLES\SALES.WK3"

tdfThirdQtr.SourceTableName = "THIRDQTR"

' TableDef オブジェクトを追加してリンクを作成します。

dbsCurrent.TableDefs.Append tdfThirdQtr

' 確認のメッセージを表示します。

MsgBox tdfThirdQtr.SourceTableName & "のアタッチが完了しました。", 0

Lotus のワークシートを開く

Lotus のワークシートを直接開くには、Database オブジェクトを作成し、OpenDatabase メソッドを使用して、データベース ファイルのパス、排他アクセスで開くための値、読み取り専用で開くための値、およびデータ ソース名を指定します。

次の例は、Lotus の外部ワークシートをアタッチし、名前の付いたセル範囲 (THIRDQTR) から Recordset オブジェクトを作成する方法を示しています。

Dim dbsJet As Database

Dim rstThirdQtr As Recordset

' Lotus の外部ワークシートを開きます。

Set dbsJet = OpenDatabase _

("C:\LOTUS\EXAMPLES\SALES.WK3", False, False, "LOTUS WK3;")

' Sales ワークシートの "THIRDQTR" という名前の範囲から

' Recordset オブジェクトを作成します。

Set rstThirdQtr = dbsCurrent.OpenRecordset("THIRDQTR")

Lotus のワークシートを使用する場合の利点と問題点

Lotus のワークシートをアタッチするまたは直接開く場合、他の Lotus ユーザーも引き続きアプリケーションからそのファイルにアクセスできます。

参照

詳細については、Lotus のマニュアルを参照してください。


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


Microsoft Excel ワークシートまたはブックのデータへのアクセス

関連項目

Microsoft Excel のワークシートまたはブックを Microsoft Jet データベースにアタッチしたり、直接開いて使用することができます。Excel Version 3.0、Version 4.0、Version 5.0 または Version 7.0 のファイルのデータには、他のデータ ソースにアクセスする場合と同じ方法でアクセスできます。ここでは、Excel のデータを使用する場合に特に注意する点を示します。

テーブル、フィールド、およびレコードの参照方法

Excel のワークシート、ブック内のワークシート、ワークシート内の名前の付いたセル範囲、またはワークシート内の任意の名前の付いていないセル範囲 (たとえば、A1:E15) を参照できます。ワークシートおよび任意の範囲を参照する場合の方法は、単一のワークシート (Excel Version 3.0 および Excel Version 4.0) またはブック (Excel Version 5.0 および Excel Version 7.0) ファイルのどちらにアクセスするのかに応じて異なります。

Excel Version 3.0 または Excel Version 4.0 のワークシート全体を参照する場合、パスおよびファイル名を入力します。C:\EXCEL\SALES#XLS のように、シャープ記号 (#) を使用してファイル名と拡張子を区切ります。Excel Version 5.0 および Excel Version 7.0 のブック内の 1 つのワークシート全体を参照する場合、SHEET1$ のように、シート名とそれに続けてドル記号を指定します。

Excel Version 3.0 または Excel Version 4.0 ワークシートの場合、任意のセル範囲を参照するには、A1:E15 のように、コロンで区切られた範囲の開始セルと終了セルを指定します。Excel Version 5.0 および Excel Version 7.0 のブックの場合、ワークシートの任意のセル範囲を参照するには、SHEET1$A1:E15 のように、シート名とそれに続けてドル記号、および指定する範囲の開始セルと終了セルをコロンで区切って指定します。

Excel のワークシートの名前の付いたセル範囲を参照するには、あらかじめその範囲に名前を付けてから、開いたり、アタッチしたりします。名前を付ける範囲を強調表示し、[挿入] - [名前] - [定義] コマンドを選択し、範囲の名前 (たとえば、ThirdQtrSales) を入力して、セルの範囲の名前を指定します。入力した名前は、Excel ISAM によってアタッチされたデータ テーブルまたは開かれたデータ テーブルの名前になります。Excel のデータ テーブルのそれぞれのフィールドおよびレコードを直接参照することはできません。

Excel のワークシートのアタッチ

Jet データベースに Excel のワークシートまたはブックをアタッチするには、OpenDatabase メソッドを使用して Jet データベースを開き、TableDef オブジェクトを作成し、TableDef オブジェクトの Connect プロパティおよび SourceTableName プロパティを設定して、アタッチする Excel のファイルのパスおよびファイル名を指定します。ワークシート内の名前の付いたセル範囲、ワークシート全体、またはブック全体を指定できます。

Excel のデータの接続情報の指定項目は次のとおりです。

データ	指定

ソース データベースの種類	Excel Version 3.0、Excel Version 4.0、Excel Version 5.0、Excel Version 7.0 のいずれかを指定します。

データベース名	Excel のワークシートまたはブックへの絶対パス名を指定します。

ソース テーブル名	ワークシートの名前またはワークシート内の指定範囲。Jet データベース エンジンは感嘆符 (!) を認識しないので、代わりにドル記号 ($) を使用します。たとえば、ワークシート名 SHEET!NAME は、テーブル SHEET$NAME と表記します。Excel で、シート名に引用符を使用する場合、テーブル名の一部として指定するときも引用符を指定する必要があります。たとえば、'MY SHEET'$NAME のように指定します。

次の例は、Excel の外部ワークシートをアタッチし、確認のためのメッセージ ボックスを表示する方法を示しています。

Dim dbsJet As Database

Dim tdfThirdQtr As TableDef

' NORTHWIND.MDB という名前の Jet データベースを開きます。

Set dbsJet = OpenDatabase("C:\DB\DATA\NORTHWIND.MDB")

' TableDef オブジェクトを作成します。

Set tdfThirdQtr = dbsCurrent.CreateTableDef("Attached Microsoft _
Excel" & "Table")

' Excel のワークシート C:\EXCEL\EXAMPLES\SALES.XLS の

' THIRDQTR テーブルをアタッチします。

tdfThirdQtr.Connect = "EXCEL 5.0; Database=C:\EXCEL\EXAMPLES\SALES.XLS"

tdfThirdQtr.SourceTableName = "THIRDQTR"

' TableDef オブジェクトを追加してリンクを作成します。

dbsCurrent.TableDefs.Append tdfThirdQtr

' 確認のメッセージを表示します。

MsgBox tdfThirdQtr.SourceTableName & "のアタッチが完了しました。", 0

Excel のワークシートを開く

Excel のワークシートを直接開くには、Database オブジェクトを作成し、OpenDatabase メソッドを使用して、データベース ファイルのパス、排他アクセスで開くための値、読み取り専用で開くための値、およびデータ ソース名を指定します。

次の例は、Excel の外部ワークシートを開き、名前の付いたセル範囲 THIRDQTR から Recordset オブジェクトを作成する方法を示しています。

Dim dbsJet As Database

Dim rstThirdQtr As Recordset

' Excel の外部ワークシートを開きます。

Set dbsJet = OpenDatabase _

("C:\EXCEL\EXAMPLES\SALES.XLS", False, False, "EXCEL 5.0;")

' Sales ワークシートから Recordset オブジェクトを作成します。

Set rstThirdQtr = dbsCurrent.OpenRecordset("THIRDQTR")

Excel のワークシートを使用する場合の制限事項

Excel のワークシートから、行を削除することはできません。ワークシートの各セルからデータを消去することはできますが、数式が入力されているセルは変更できません。また、インデックスは作成できません。Jet データベース エンジンでは、Excel のワークシートの複数ユーザーによる共有をサポートしないので、同時にワークシートを開くことができるのは 1 ユーザーだけです。Excel 側で暗号化されたデータは、Excel のドライバを使っても読むことはできません。Jet データベース エンジンが暗合化されたデータを検出したとき、アタッチは失敗します。

Excel のワークシートを使用する場合の利点と問題点

Excel のワークシートおよびブックをアタッチするまたは直接開く場合、他の Excel ユーザーも引き続き使用しているアプリケーションからそのファイルにアクセスできます。

参照

詳細については、Excel のマニュアルを参照してください。


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


Microsoft FoxPro データベースのデータへのアクセス

関連項目

FoxPro テーブルを Microsoft Jet データベースにアタッチしたり、直接開いて使用することができます。FoxPro のファイル (Version 2.0、Version 2.5、または Version 2.6) のデータには、他の外部データ ソースのデータにアクセスする場合と同じ方法でアクセスできます。ここでは、FoxPro のデータを使用する場合に特に注意する点について説明します。

FoxPro のテーブルのアタッチ

Jet データベースに FoxPro のテーブルをアタッチするには、まず OpenDatabase メソッドを使用してデータベースを開きます。次に、TableDef オブジェクトを作成し、TableDef オブジェクトの Connect プロパティおよび SourceTableName プロパティを設定して、アタッチする FoxPro のテーブルのパスおよびファイル名を指定します。

FoxPro のデータの接続情報の指定項目は次のとおりです。

項目	指定内容

ソース データベースの種類	次のいずれかを指定します。
　FoxPro 2.0
　FoxPro 2.5
　FoxPro 2.6

データベース名	アクセスする FoxPro ファイルを含むディレクトリへの絶対パスを指定します。

ソース テーブル名	テーブル名を指定します。テーブル名には、拡張子を含まない .DBF ファイル名、または拡張子付きのファイル名を指定します。ただし、拡張子を指定する場合は、拡張子の前のピリオド (.) の代わりに、シャープ記号 (#) を使います。

次の例は、FoxPro Version 2.5 の外部テーブルをアタッチし、確認のためのメッセージ ボックスを表示します。SourceTableName プロパティでシャープ記号 (#) を使用し、標準以外の拡張子 (.XYZ) を指定していることに注意してください。

Dim dbsJet As Database

Dim tdfFoxTable As TableDef

' TEST.MDB という名前の Jet データベースを開きます。

Set dbsJet = OpenDatabase("C:\ACCESS\DATA\TEST.MDB")

' TableDef オブジェクトを作成します。

Set tdfFoxTable = dbsCurrent.CreateTableDef("Attached FoxPro Table")

' 接続情報を設定します。

tdfFoxTable.Connect = "FoxPro 2.6;DATABASE=\\FOXPRO\DATA\AP"

tdfFoxTable.SourceTableName = "ACCOUNTS#XYZ"

' TableDef オブジェクトを追加してリンクを作成します。

dbsCurrent.TableDefs.Append tdfFoxTable

' 確認のメッセージを表示します。

MsgBox tdfFoxTable.SourceTableName & "のアタッチが完了しました。", 0

FoxPro のテーブルを開く

FoxPro のテーブルを直接開くには、Database オブジェクトを作成し、OpenDatabase メソッドを使用して、データベース ファイルのパス、排他アクセスで開くための値、読み取り専用で開くための値、およびデータ ソース名を指定します。次の例は、FoxPro Version 2.0 の外部テーブルを開き、テーブルから Recordset オブジェクトを作成する方法を示しています。

Dim dbsJet As Database

Dim rstAccounts As Recordset

' FoxPro の外部データベースを開きます。

Set dbsJet = OpenDatabase _

("\\FOXPRO\DATA\AP", False, False, "FoxPro 2.0;")

' Accounts テーブルから Recordset オブジェクトを作成します。

Set rstAccounts = dbsCurrent.OpenRecordset("Accounts")

データ型の変換

FoxPro のファイルからデータをインポートすると、Jet データベース エンジンでは、FoxPro のフィールドの各データ型が、Jet データベースのフィールドの対応するデータ型に変換されます。対応するデータ型は次のとおりです。

FoxPro のデータ型	Jet データベースのデータ型

文字型 (Character)	文字列型 (String)

数値型 (Numeric)、浮動小数点数型 (Float)	倍精度浮動小数点数型 (Double)

論理型 (Logical)	ブール型 (Boolean)

日付型 (Date)	日付/時刻型

メモ (Memo)	メモ型

General	OLE オブジェクト型

レコードの削除

ほとんどの場合、外部データのレコードを削除すると、実際にソース テーブルからそのレコードが削除されます。ただし、FoxPro のテーブルでは、レコードを削除しても、FoxPro のコマンドまたはユーティリティを使用してテーブルを“パック”するまで、そのレコードは実際には削除されません。そのため、Jet データベース エンジンが提供する DBEngine オブジェクトの CompactDatabase メソッドは、Jet データベース エンジンに対してのみ有効で、 FoxPro のアタッチ テーブルでは無効です。

Jet データベース エンジンに対して、削除されたレコードを含まないように指定するには、初期設定の Deleted パラメータを真 (True) に設定します。Deleted パラメータを偽 (False) に設定すると、作成するどの Recordset オブジェクトにも、削除されたレコードを含むすべてのレコードが含まれるようになります。

インデックス

FoxPro のテーブルをアタッチしたり、開いたりするには、1 つまたは複数の FoxPro のインデックス ファイル (.IDX または .CDX) を使うように、Jet データベース エンジンに指定すると、パフォーマンスを向上させることができます。Jet データベース エンジンでは、.INF という拡張子を持つ特別な情報ファイルを使ってインデックスを管理します。Visual Basic を使用して FoxPro のテーブルをアタッチしたり、開いたりする場合は、テキスト エディタを使用して .INF ファイルを作成する必要があります。.INF ファイルのファイル名は、外部テーブルの名前に対応していなければなりません。該当するインデックスを簡単に見つけるには、そのテーブルと同じディレクトリに .INF ファイルを保管するのが最も良い方法です。ただし、テーブルが読み取り専用の共有ディレクトリにある場合、Jet データベース エンジン Version 3.0 では、レジストリの Jet\3.0\Engines\Xbase フォルダを使用して、Jet データベース エンジン Version 2.5 では、.INI ファイルの INFPath エントリを使用して、別のパスを指定することができます。また、Microsoft Access を使用して FoxPro テーブルをアタッチするまたは開く場合、Access が作成したインデックスを使用できます。

.INF ファイル内の各エントリは、インデックス番号 (CDXn または IDXn を使用) とインデックス ファイル名 (Lastname.CDX など) で構成されます。エントリの前には、ソース データベースの種類を記述します。たとえば、Authors という名前の FoxPro Version 2.0 のテーブルの .INF ファイルは、Authors.INF という名前のファイルになり、次のように記述します。

[FoxPro 2.0]

CDX1=AuthorID.CDX

CDX2=LastName.CDX

CDX3=Zip.CDX

固有のインデックスを指定するには、.INF ファイルに UIDXn という形式でインデックス番号を指定して、インデックスのタグやファイル名を追加します。テーブルを Jet データベース エンジン Version 2.0 だけを使って開く場合は、次の例のように、データベースの種類を示すセクションの下にエントリを追加します。

[FoxPro 2.0]

CDX1=AuthorID.CDX

CDX2=LastName.CDX

CDX3=Zip.CDX

UIDX1=AuthorID.CDX

Jet データベース エンジンを使用して .DBF ファイルのデータを更新すると、Jet データベース エンジンは、インデックス ファイルを更新して、変更内容を反映させます。.DBF ファイルをアタッチするか開いて、それにインデックス ファイル (.NDX または .MDX) を関連付けると、Jet データベース エンジンは、そのアタッチ テーブルを開くときに関連付けられているインデックス ファイルが必要になります。インデックス ファイルまたは .INF ファイルを削除または移動すると、Jet データベース エンジンはインデックスを使用できず、インデックスを最新の状態に維持することができなくなります。インデックス ファイルが最新の状態を反映していないと、クエリーの結果が予測できなくなります。

メモ型のフィールド

FoxPro のメモ (Memo) フィールドは、それと関連付けられたテーブルとは別のファイルにあります。メモ (Memo) フィールドを含む FoxPro のテーブルをアタッチするか開くときは、メモ (Memo) ファイルは .DBF ファイルと同じディレクトリにある必要があります。

参照

詳細については、FoxPro のマニュアルを参照してください。


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


Microsoft Jet データベースのデータへのアクセス

関連項目

外部の Microsoft Jet データベース テーブルをローカルな Jet データベースにアタッチしたり、直接開いて使用することができます。Jet データベースの外部テーブルのデータには、他の外部データ ソースのデータにアクセスする場合と同じ方法でアクセスできます。

外部のJet データベースのテーブルのアタッチ

ローカルな Jet データベースに外部の Jet データベース テーブルをアタッチするには、まず OpenDatabase メソッドを使用してローカルな Jet データベースを開きます。次に、TableDef オブジェクトを作成し、TableDef オブジェクトの Connect プロパティおよび SourceTableName プロパティを設定して、アタッチする外部の Jet データベーステーブルのパスおよび名前を指定します。

Jet データベースの外部テーブルの接続情報の指定項目は次のとおりです。

項目	指定内容

ソース データベースの種類	指定しません。

データベース名	.MDB ファイルの絶対パス名を指定します。

ソース テーブル名	テーブル名を指定します。

次の例は、外部の Jet データベース テーブルをアタッチし、確認のためのメッセージ ダイアログ ボックスを表示する方法を示しています。接続文字列は、ソース データベースの種類ではなくセミコロン (;) で始まります。Jet データベース エンジンを使用する外部データベースに接続する場合、ソース データベースの種類は指定しません。

Dim dbsJet As Database

Dim tdfJetTable As TableDef

' TEST.MDB という名前の Jet データベースを開きます。

Set dbsJet = OpenDatabase("C:\ACCESS\DATA\TEST.MDB")

' TableDef オブジェクトを作成します。

Set tdfJetTable = dbsJet.CreateTableDef("Attached Jet Table")

' 接続情報を設定します。

tdfJetTable.Connect = ";DATABASE=\\ACCESS\DATA\AP.MDB"

tdfJetTable.SourceTableName = "Accounts"

' TableDef オブジェクトを追加してリンクを作成します。

dbsCurrent.TableDefs.Append tdfJetTable

' 確認のメッセージを表示します。

MsgBox tdfJetTable.SourceTableName & "のアタッチが完了しました。", 0

外部の Jet データベースのテーブルを開く

外部の Jet データベースのテーブルを直接開くには、まず Database オブジェクトを作成します。次に、OpenDatabase メソッドを使用して、データベース ファイルのパス、排他アクセスで開くための値、読み取り専用で開くための値、およびデータ ソース名を指定します。

次の例は、外部の Jet データベースのテーブルを開き、そのテーブルから Recordset オブジェクトを作成する方法を示しています。

Dim dbsJet As Database

Dim rstAccounts As Recordset

' AP という名前の外部の Jet データベースを開きます。

Set dbsJet = OpenDatabase _

("\\ACCESS\DATA\AP.MDB", False, False, "")

' Accounts テーブルから Recordset オブジェクトを作成します。

Set rstAccounts = dbsCurrent.OpenRecordset("Accounts")


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


Paradox データベースのデータへのアクセス

関連項目

Paradox のテーブルをローカルな Microsoft Jet データベースにアタッチしたり、直接開いて使用することができます。Paradox の Version 3.x および Version 4.x のファイル内のデータには、他の外部のデータ ソースのデータにアクセスする場合と同じ方法でアクセスします。ここでは、Paradox のデータを使用する場合に特に注意する点について説明します。

Paradox のテーブルのアタッチ

Jet データベースに Paradox のテーブルをアタッチするには、まず OpenDatabase メソッドを使用してデータベースを開きます。次に、TableDef オブジェクトを作成し、TableDef オブジェクトの Connect プロパティおよび SourceTableName プロパティを設定して、アタッチする Paradox テーブルのパスおよび名前を指定します。

Paradox テーブルの接続情報の指定項目は次のとおりです。

項目	指定内容

ソース データベースの種類	次のいずれかを指定します。
　Paradox 3.X
　Paradox 4.X
　Paradox 5.X

データベース名	アクセスする Paradox のファイルを含むディレクトリの絶対パスを指定します。

ソース テーブル名	テーブル名を指定します。テーブル名には、拡張子を除いた .DB ファイル名を指定します。

次の例は、Paradox Version 3.x の外部テーブルをアタッチし、確認のためのメッセージ ダイアログ ボックスを表示する方法を示しています。

Dim dbsJet As Database

Dim tdfParadox As TableDef

' TEST.MDB という名前の Jet データベースを開きます。

Set dbsJet = OpenDatabase("C:\ACCESS\DATA\TEST.MDB")

' TableDef オブジェクトを作成します。

Set tdfParadox = dbsCurrent.CreateTableDef("Attached Paradox _

Table")

' 接続情報を設定します。

tdfParadox.Connect = "Paradox 3.X;DATABASE=\\PDOX\DATA\AP"

tdfParadox.SourceTableName = "Accounts"

' TableDef オブジェクトを追加してリンクを作成します。

dbsCurrent.TableDefs.Append tdfParadox

' 確認のメッセージを表示します。

MsgBox tdfParadox.SourceTableName & "のアタッチが完了しました。", 0

Paradox のテーブルを開く

Paradox テーブルを直接開くには、まず Database オブジェクトを作成します。次に、OpenDatabase メソッドを使用して、データベース ファイルのパス、排他アクセスで開くための値、読み取り専用で開くための値、およびデータ ソース名を指定します。

次の例は、Paradox Version 4.x の外部テーブルをアタッチし、そのテーブルから Recordset オブジェクトを作成する方法を示しています。

Dim dbsJet As Database

Dim rstAccounts As Recordset

' AP という名前の Paradox の外部データベースを開きます。

Set dbsJet = OpenDatabase _

("\\PDOX\DATA\AP", False, False, "Paradox 4.X;")

' Accounts テーブルから Recordset オブジェクトを作成します。

Set rstAccounts = dbsCurrent.OpenRecordset("Accounts")

データ型の変換

Paradox のテーブルからデータをインポートすると、Jet データベース エンジンでは、Paradox のフィールドの各データ型が、Jet データベースのフィールドの対応する各データ型に変換されます。対応するデータ型は次のとおりです。

Paradox のデータ型	Jet データベースのデータ型
文字型	テキスト型
実数型	倍精度浮動小数点数型 (Double)
整数型	整数型 (Integer)
金額型	通貨型
日付型	日付/時刻型
メモ型	メモ型
OLE 型	OLE オブジェクト型 (Jet データベース エンジンはオブジェクトを認識しますが、開くことはできません。)
論理型 (Paradox 5.X)	ブール型 (Boolean)
整数型 (Paradox 5.X)	長整数型 (Long)
日付時間型 (Paradox 5.X)	日付/時刻型
バイナリ型 (Paradox 5.X)	バイト型 (Byte)
BCD型 (Paradox 5.X)	倍精度浮動小数点数型 (Double)
時間型 (Paradox 5.X)	日付/時刻型
カウンタ型 (Paradox 5.X)	カウンタ型
注   Paradox のグラフィック型、バイナリ型、および書式付きメモ型の各データ型はサポートされていないので、Paradox の外部テーブルを表示する場合、これらのデータ型のフィールドは非表示になります。

インデックスとキー

Paradox では、インデックス ファイル (.PX) にテーブルの主キーに関する重要な情報を保存しています。主キーを持っている Paradox のテーブルをアタッチするか開く場合、Jet データベース エンジンは、そのテーブルを開くために .PX ファイルを必要とします。Paradox のテーブルをアタッチした後で、そのテーブルに関連付けられている .PX ファイルを削除または移動すると、その外部テーブルを開くことができなくなります。

主キーを持たない Paradox のテーブルをアタッチしたり、開いたりする場合、Jet データベース エンジンを使ってそのテーブル内のデータを更新することはできません。また、共有モードでテーブルを開くこともできません。テーブルを更新する必要があるとき、または共有モードでテーブルを開く必要があるときは、Paradox のコマンドを使ってテーブルの主キーを定義しておいてください。

ネットワーク パス

サーバー上に存在し、複数のユーザーが共有している Paradox のテーブルをアタッチするか開くには、レジストリのJet\3.0\Engines\Paradox フォルダの ParadoxNetPath オプションに、Paradox Version 3.x の場合は PARADOX.NET ファイルへのパス、Paradox Version 4.x の場合は PDOXUSRS.NET ファイルへのパスを設定する必要があります。たとえば、PARADOX.NET ファイルが Q ドライブの \WRKGRP ディレクトリにある場合は、次のように ParadoxNetPath オプションを設定します。

ParadoxNetPath=Q:\WRKGRP

重要   ParadoxNetPath オプションの指定は、ドライブ名を含めて、同一のデータベース (ディレクトリ) を共有しているすべてのユーザーの間で同一でなければなりません。たとえば、あるデータベースのユーザーの環境で PARADOX.NET ファイルが Q ドライブの \WRKGRP ディレクトリにある場合、そのデータベースのどのユーザーの環境でも、PARADOX.NET ファイルは Q ドライブの \WRKGRP ディレクトリにある必要があります。

参照

詳細については、Paradox のマニュアルを参照してください。


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


Btrieve データベースの設定の変更

関連項目

現在、Microsoft Jet データベース エンジンでは、16 ビット版の Btrieve のみ使用できます。32 ビット版の Btrieve のドライバは現在使用できません。したがって、ここでは、16 ビット アプリケーションの開発について説明します。

初期化ファイル (.INI) の設定

Btrieve のファイルにアクセスする場合、Btrieve のドライバは、WIN.INI ファイル (Btrieve Version 5.1x) または NOVDB.INI ファイル (Btrieve Version 6.0) の [BTRIEVE] セクションを使います。Btrieve のファイルにアクセスすることを指定すると、Visual Basic のセットアップ プログラムは、該当するいずれかの初期化ファイルに次のエントリを追加します。

[BTRIEVE]

Options=/m:64 /p:4096 /b:16 /f:20 /l:40 /n:12 /t:C:\DB\BTRIEVE.TRN

Options には、次のスイッチを指定できます。

スイッチ	定義
/m	メモリ サイズ
/p	ページ サイズ
/b	プレイメージ バッファ サイズ
/f	開くファイルの数
/l	ロックの数
/n	トランザクション内のファイル数
/t	トランザクション ファイル名
重要   Btrieve のデータベースを共有する可能性がある場合は、/t スイッチによって指定されるトランザクション ファイルのパスは、そのデータベースのすべてのユーザーがアクセス可能なネットワーク上の場所に指定してください。一般に、このファイルはすべてのユーザーからアクセス可能な共有サーバーに置かれますが、Options エントリの既定値ではこの点は考慮されていないので注意してください。

Btrieve のデータの処理中にリソースが不足したときは、スイッチ /u:2 を Options エントリに追加してから Visual Basic を再起動します。

また、初期化ファイル内の Options の設定値を変更するような別のアプリケーションをインストールすると、Visual Basic で Btrieve のファイルを正常に処理できなくなることがあります。

注   Options の設定値の詳細については、Btrieve のマニュアルを参照してください。


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


dBASE データベースの設定の変更

関連項目

dBASE データベース ドライバをインストールすると、Jet データベース エンジン Version 3.0の場合、セットアップ プログラムによって、既定値がレジストリの Engines キーおよび ISAM Formats キーに書き込まれます。Jet データベース エンジン Version 2.5 の場合、VB.INI (または <アプリケーション名>.INI ファイル) に初期設定が書き込まれます。ここでは、16 ビット (Jet データベース エンジン Version 2.5 を使用) および 32 ビット (Jet データベース エンジン Version 3.0 を使用) の dBASE データベース ドライバの初期化および ISAM 形式の設定について説明します。

dBASE の初期設定 (Jet データベース エンジン Version 3.0)

Jet\3.0\Engines\Xbase フォルダには、dBASE の外部データにアクセスする場合に使用される MSXB3032.DLL ドライバの初期設定が含まれています。このフォルダのエントリの設定の例を次に示します。

win32=<pathname>\MSXB3032.DLL

NetworkAccess=On

PageTimeout=600

INFPath=C:\DBASE\SYSTEM

CollatingSequence=ASCII

DataCodePage=OEM

Deleted=On

Century=Off

Date=MDY

Mark=47

Exact=Off

Microsoft Jet データベース エンジンで使用される Xbase フォルダのエントリは次のとおりです。

エントリ	内容

win32	MSXB3032.DLL の場所を指定します。絶対パス名はインストール時に決定されます。データ タイプは REG_SZ です。

NetworkAccess	ファイル ロックの設定をバイナリで指定します。NetworkAcccess エントリが 00 の場合、OpenDatabase メソッドと OpenRecordset メソッドの引数 exclusive の設定にかかわらず、テーブルは排他モードで開かれます。既定値は 01 です。データ タイプは REG_BINARY です。

PageTimeout	データが内部キャッシュに格納されてから、そのデータが無効になるまでの時間を、100 ミリ秒単位で指定します。既定値は、600 (60 秒) です。データ タイプは REG_DWORD です。

INFPath	.INF ファイル ディレクトリの絶対パスを指定します。Jet データベース エンジンは、まず、テーブルと同じディレクトリ内で .INF ファイルを探します。.INF ファイルがデータベースのディレクトリにない場合、INFPath エントリで指定されているディレクトリを探します。INFPath エントリがない場合、データベース ディレクトリで見つかったインデックス ファイル (.CDX または .MDX) を使います。データ タイプは REG_SZ です。

このエントリは、インストールするときは記述されません。

CollatingSequence	Jet データベース エンジンを使って作成したり、開いたりするすべての dBASE テーブルの照合順序を指定します。設定可能な値は、ASCII と International で、既定値は ASCII です。データ タイプは REG_SZ です。

DataCodePage	テキスト ページの保存方法を指定します。設定可能な値は次のとおりです。
　OEM:  OemToAnsi および AnsiToOem の変換を行います。
　ANSI:  OemToAnsi および AnsiToOem の変換は行いません。

既定値は OEM です。データ タイプは REG_SZ です。

Deleted	削除とマークされたレコードを Jet データベース エンジンがどのように扱うかをバイナリで指定します。01 は、dBASE コマンドの SET DELETED ON に対応し、削除されたレコードの取得および削除されたレコードへの移動は行わないことを示します。00 は、dBASE コマンドの SET DELETED OFF に対応し、削除されたレコードを他のレコードと同じように扱うことを示します。既定値は 00 です。データ タイプは REG_BINARY です。

Century	日付を文字列に変換する関数がインデックス式に使われている場合に、年を 4 桁で表示するかどうかをバイナリで指定します。01 は dBASE コマンドの SET CENTURY ON に対応し、00 は dBASE コマンドの SET CENTURY OFF に対応します。既定値は 00 です。データ タイプは REG_BINARY です。

Date	日付を文字列に変換する関数がインデックス式に使われている場合の日付の書式を指定します。dBASE の SET DATE コマンドに対応します。このエントリの設定可能な値は、American、ANSI、British、French、DMY、German、Italian、Japan、MDY、USA および YMD です。既定値は MDY です。データ タイプは REG_SZ です。

Mark	日付の区切り文字として使う ASCII 文字を 10 進表記で指定します。既定値は、Date の設定に応じて次の文字になります。
　"/" (American、MDY)
　"." (ANSI)
　"/" (British、French、DMY)
　"." (German)
　"-" (Italian)
　"/" (Japan、YMD)
　"-" (USA)

0 を設定すると、選択した日付書式で通常使用される区切り文字が、システムによって指定されます。既定値は 0 です。データ タイプは REG_DWORD です。

Exact	文字列の比較の設定をバイナリで指定します。01 は dBASE コマンドの SET EXACT ON に対応し、00 は dBASE コマンドの SET EXACT OFF に対応します。既定値は 00 です。データ タイプは REG_BINARY です。

dBASE ISAM 形式

Jet\3.0\ISAM Formats\dBASE III フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Xbase

Import Filter	REG_SZ	dBASE III (*.dbf)

Export Filter	REG_SZ	dBASE III (*.dbf)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	01

IsamType	REG_DWORD	0

IndexDialog	REG_BINARY	01

IndexFilter	REG_SZ	dBASE インデックス (*.ndx)

CreateDBOnExport	REG_BINARY	00

ResultTextImport	REG_SZ	外部ファイルからカレント データベースにデータをインポートします。カレント データベースでデータを変更しても、外部ファイルのデータは変更されません。

ResultTextLink	REG_SZ	外部ファイルにリンクしたカレント データベースでテーブルを作成します。カレント データベースでデータを変更すると、外部ファイルのデータも変更されます。

ResultTextExport	REG_SZ	カレント データベースから dBASE III ファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

'

Jet\3.0\ISAM Formats\dBASE IV フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Xbase

Export Filter	REG_SZ	dBASE IV (*.dbf)

Import Filter	REG_SZ	dBASE IV (*.dbf)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	01

IsamType	REG_DWORD	0

IndexDialog	REG_BINARY	01

IndexFilter	REG_SZ	dBASE インデックス (*.ndx、*.mdx)

CreateDBOnExport	REG_BINARY	00

ResultTextImport	REG_SZ	外部ファイルからカレント データベースにデータをインポートします。カレント データベースでデータを変更しても、外部ファイルのデータは変更されません。

ResultTextLink	REG_SZ	外部ファイルにリンクしたカレント データベースでテーブルを作成します。カレント データベースでデータを変更すると、外部ファイルのデータも変更されます。

ResultTextExport	REG_SZ	カレント データベースから dBASE IV ファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

Jet\3.0\ISAM Formats\dBASE 5.x フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Xbase

Export Filter	REG_SZ	dBASE 5.0 (*.dbf)

Import Filter	REG_SZ	dBASE 5.0 (*.dbf)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	01

IsamType	REG_DWORD	0

IndexDialog	REG_BINARY	01

IndexFilter	REG_SZ	dBASE インデックス (*.ndx、*.mdx)

CreateDBOnExport	REG_BINARY	00

ResultTextImport	REG_SZ	外部ファイルからカレント データベースにデータをインポートします。カレント データベースでデータを変更しても、外部ファイルのデータは変更されません。

ResultTextLink	REG_SZ	外部ファイルにリンクしたカレント データベースでテーブルを作成します。カレント データベースでデータを変更すると、外部ファイルのデータも変更されます。

ResultTextExport	REG_SZ	カレント データベースから dBASE 5 ファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

注   レジストリの設定を変更した場合、新しい設定を有効にするために、データベース エンジンを一度終了してから再起動する必要があります。

dBASE の初期設定 (Jet データベース エンジン Version 2.5)

Jet データベース エンジン Version 2.5 の場合、ODBC ドライバ エンジンは、レジストリの HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet20\InstallableISAM\ キーに格納されます。特に指定しない限り、初期設定は自動的に設定されます。初期設定を変更するには、アプリケーションの <アプリケーション名>.INI ファイルの [dBASE ISAM] セクションを作成し、新しい値のエントリを挿入します。使用する .INI ファイル名は、DBEngine オブジェクトの INIPath プロパティで設定します。次の表の例に示した書式を使用してください。次のどのオプションの設定も変更できます。

オプション	内容	例
CollatingSequence	Microsoft Jet データベース エンジン が FoxPro または dBASE のデータベースとの間でデータ処理を行う場合の照合順序を設定します。 設定可能な値は、ASCII (米国のみ) または International (その他の国) です。 既定値は、ASCII です。	CollatingSequence= International
Century	Jet データベース エンジンが FoxPro または dBASE のデータベースとの間でデータ処理を行う場合に日付フィールドで 4 桁の年号を使うかどうかを設定します。 設定可能な値は、On または Off (既定値) です。	Century=On
Date	Jet データベース エンジンが FoxPro または dBASE のデータベースとの間でデータ処理を行う場合、日付の表示に使用する書式を設定します。 設定可能な値は、FoxPro または dBASE のマニュアルを参照してください。	Date=American
Mark	Jet データベース エンジンが FoxPro または dBASE のデータベースとの間でデータ処理を行う場合、日付の表示で月と日付と時刻の区切りに使う文字を定義します。 設定値は、区切りに使用する ASCII コードを 10 進表記で指定します。この例では、スラッシュ (/) を指定しています。	Mark=47
INFPath = path	このエントリでは、path には対応する情報ファイル (.INF ファイル) が書き込まれる有効なパスを指定します。Jet データベース エンジンは、ユーザーが各 FoxPro ファイルまたは dBASE ファイルに指定したインデックスに関する情報を得るときにこのファイルを使います。 読み取り専用のドライブ (たとえば CD-ROM ドライブなど) に保存されている FoxPro または dBASE のデータベース内のテーブルをインポートしたりアタッチしたりする場合は、このエントリに有効なパスを設定してください。	INFPath = C:\ACCESS\FOXPRO
Deleted	Jet データベース エンジンが FoxPro または dBASE のデータベースとの間でデータ処理を行う場合、削除されたことが記されているレコードを表示するかどうかを指定します。 設定可能な値は、On (既定値) または Off です。	Deleted=On


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


Lotus データベースの設定の変更

関連項目

Lotus データベース ドライバをインストールすると、Jet データベース エンジン Version 3.0の場合、セットアップ プログラムによって、既定値がレジストリの Engines キーおよび ISAM Formats キーに書き込まれます。Jet データベース エンジン Version 2.5 の場合、VB.INI (または <アプリケーション名>.INI ファイル) に初期設定が書き込まれます。ここでは、16 ビット (Jet データベース エンジン Version 2.5 を使用) および 32 ビット (Jet データベース エンジン Version 3.0 を使用) の Lotus データベース ドライバの初期化および ISAM 形式の設定について説明します。

Lotus 初期設定 (Jet データベース エンジン Version 3.0)

Jet\3.0\Engines\Lotus フォルダには、Lotus の外部ワークシートにアクセスする場合に使用される MSLT3032.DLL ドライバの初期設定が含まれています。このフォルダのエントリの設定の例を次に示します。

win32=<pathname>\MSLT3032.DLL

TypeGuessRows=8

ImportMixedTypes=Text

AppendBlankRows=4

FirstRowHasNames=Yes

Microsoft Jet データベース エンジンで使用される Lotus フォルダのエントリは次のとおりです。

エントリ	内容

win32	MSLT3032.DLL の場所を指定します。絶対パス名はインストールするときに決定されます。データ タイプは REG_SZ です。

TypeGuessRows	データ型を調べるためにチェックする行数を指定します。列のデータ型は、検出されたデータの数が最大であったデータ型に決まります。データ数が同数のデータ型が検出された場合は、データ型は、数値型、通貨型、日付/時刻型、テキスト型、長テキスト型の順序で決定されます。列のデータ型に該当しないデータは、Null 値と見なされます。インポートする場合、列に複数のデータ型が含まれていると、ImportMixedTypes エントリの設定に従って、列全体に 1 つのデータ型が割り当てられます。データ タイプは REG_DWORD です

ImportMixedTypes	MajorityType または Text を設定します。MajorityType に設定した場合、インポートするときに列内に複数のデータ型が含まれていると、列内で最もデータ数の多いデータ型が割り当てられます。Text に設定した場合、インポートするときに列内に複数のデータ型が含まれていると、すべてテキスト型が割り当てられます。既定値は Text です。データ タイプは REG_SZ です。

AppendBlankRows	新しいデータを追加する前に、WK1 形式のワークシートの末尾に追加する空白の行の数を、指定します。たとえば、AppendBlankRows を 4 に設定すると、Microsoft Jet データベース エンジンによって、データを含む行を追加する前に 4 行の空白行がワークシートの末尾に追加されます。このエントリには、0 ～ 16 の整数値を設定できます。既定値は 0 (行を追加しない) です。データ タイプは REG_DWORD です。

FirstRowHasNames	テーブルの最初の行に列見出しがあるかどうかをバイナリで指定します。01 は、テーブルの最初の行に列見出しがあることを示します。インポートを行うときは、列見出しは最初の行からインポートされます。00 は、テーブルの最初の行に列見出しがないことを示し、この場合の列の名前は F1、F2、F3 などの番号になります。既定値は 01 です。データ タイプは REG_BINARY です。

Lotus ISAM 形式

Jet\3.0\ISAM Formats\Lotus WK1 フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Lotus

ExportFilter	REG_SZ	Lotus 1-2-3 WK1 (*.wk1)

ImportFilter	REG_SZ	Lotus 1-2-3 WK1 (*.wk*)

CanLink	REG_BINARY	00

OneTablePerFile	REG_BINARY	00

IsamType	REG_DWORD	1

IndexDialog	REG_BINARY	00

CreateDBOnExport	REG_BINARY	01

ResultTextImport	REG_SZ	外部ファイルからカレント データベースにデータをインポートします。カレント データベースでデータを変更しても、外部ファイルのデータは変更されません。

ResultTextExport	REG_SZ	カレント データベースから Lotus 1-2-3 Version 2 のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

Jet\3.0\ISAM Formats\Lotus WK3 フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Lotus

ExportFilter	REG_SZ	Lotus 1-2-3 WK3 (*.wk3)

CanLink	REG_BINARY	00

OneTablePerFile	REG_BINARY	00

IsamType	REG_DWORD	1

IndexDialog	REG_BINARY	00

CreateDBOnExport	REG_BINARY	01

ResultTextExport	REG_SZ	カレント データベースから Lotus 1-2-3 Version 3 のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

Jet\3.0\ISAM Formats\Lotus WK4 フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Lotus

CanLink	REG_BINARY	00

OneTablePerFile	REG_BINARY	00

IsamType	REG_DWORD	1

IndexDialog	REG_BINARY	00

CreateDBOnExport	REG_BINARY	01

注   レジストリの設定を変更した場合、新しい設定を有効にするために、データベース エンジンを一度終了してから再起動する必要があります。

Lotus の初期設定 (Jet データベース エンジン Version 2.5)

Jet データベース エンジン Version 2.5 の場合、Lotus ドライバ エンジンは、レジストリの HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet20\InstallableISAM\ キーに格納されます。特に指定しない限り、初期設定は自動的に設定されます。初期設定を変更するには、アプリケーションの <アプリケーション名>.INI ファイルの [Lotus ISAM] セクションを作成し、新しい値のエントリを挿入します。使用する .INI ファイル名は DBEngine オブジェクトの INIPath プロパティにより設定されます。上の例に示した形式に従って設定してください。


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


Microsoft Excel の設定の変更

関連項目

Microsoft Excel データベース ドライバは、Jet データベース エンジン Version 3.0 でのみ使用できます。16 ビット アプリケーション (Jet データベース エンジン Version 2.5 を使用) を作成する場合、Excel ドライバにはアクセスできません。Visual Basic をインストールすると、セットアップ プログラムによって、既定値がレジストリの Engines および ISAM Formats キーに書き込まれます。ここでは、Excel ドライバの初期化および ISAM 形式の設定について説明します。

Microsoft Excel の初期設定

Jet\3.0\Engines\Excel フォルダには、Excel の外部ワークシートにアクセスする場合に使用される MSXL3032.DLL ドライバの初期設定が含まれています。このフォルダのエントリの設定の例を次に示します。

win32=<pathname>\MSXL3032.DLL

TypeGuessRows=8

ImportMixedTypes=Text

AppendBlankRows=4

FirstRowHasNames=Yes

Microsoft Jet データベース エンジンで使用される Excel フォルダのエントリは次のとおりです。

エントリ	内容

win32	MSXL3032.DLL の場所を指定します。絶対パス名はインストールするときに決定されます。データ タイプは REG_SZ です。

TypeGuessRows	データ型を調べるためにチェックする行数を指定します。列のデータ型は、検出されたデータの数が最大であったデータ型に決まります。データ数が同数のデータ型が検出された場合は、データ型は、数値型、通貨型、日付/時刻型、テキスト型、ブール型の順序で決定されます。列のデータ型に該当しないデータは、Null 値と見なされます。インポートする場合、列に複数のデータ型が含まれていると、ImportMixedTypes エントリの設定に従って、列全体が 1 つのデータ型に揃えられます。チェックする行数の既定値は、8 です。データ タイプは REG_DWORD です。

ImportMixedTypes	MajorityType または Text を設定します。MajorityType に設定した場合、インポートするときに列に複数のデータ型が含まれていると、列内でデータの数が最大であったデータ型に割り当てられます。Text に設定した場合、インポートするときに列に複数のデータ型が含まれていると、すべてテキスト型に揃えられます。既定値は、Text です。データ タイプは REG_SZ です。

AppendBlankRows	新しいデータを追加する前に、Version 3.0 または Version 4.0 のワークシートの末尾に追加する空白の行の数を、指定します。たとえば、AppendBlankRows を 4 に設定すると、Microsoft Jet データベース エンジンによって、データを含む行を追加する前に 4 行の空白行がワークシートの末尾に追加されます。このエントリには、0 ～ 16 の整数値を設定できます。既定値は 0 (行を追加しない) です。データ タイプは REG_DWORD です。

FirstRowHasNames	テーブルの最初の行に列見出しがあるかどうかをバイナリで指定します。01 は、テーブルの最初の行に列見出しがあることを示します。インポートを行うときは、列見出しは最初の行としてインポートされます。00 は、テーブルの最初の行に列見出しがないことを示し、この場合の列見出しは F1、F2、F3 などになります。既定値は 01 です。データ タイプは REG_BINARY です。

Microsoft Excel ISAM 形式

Jet\3.0\ISAM Formats\Excel 3.0 フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Excel

ExportFilter	REG_SZ	Microsoft Excel 3 (*.xls)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	00

IsamType	REG_DWORD	1

IndexDialog	REG_BINARY	00

CreateDBOnExport	REG_BINARY	01

ResultTextExport	REG_SZ	カレント データベースから Excel Version 3.0 のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

Jet\3.0\ISAM Formats\Excel 4.0 フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Excel

ExportFilter	REG_SZ	Microsoft Excel 4 (*.xls)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	00

IsamType	REG_DWORD	1

IndexDialog	REG_BINARY	00

CreateDBOnExport	REG_BINARY	01

ResultTextExport	REG_SZ	カレント データベースから Excel Version 4.0 のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

Jet\3.0\ISAM Formats\Excel 5.0 フォルダのエントリは次のとおりです。このエントリは、Excel Version 5.0 および Version 7.0 で使用されます。

エントリ名	データ タイプ	値

Engine	REG_SZ	Excel

ExportFilter	REG_SZ	Microsoft Excel 5-7 (*.xls)

ImportFilter	REG_SZ	Microsoft Excel (*.xls)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	00

IsamType	REG_DWORD	1

IndexDialog	REG_BINARY	00

CreateDBOnExport	REG_BINARY	01

ResultTextImport	REG_SZ	外部ファイルからカレント データベースにデータをインポートします。カレント データベースでデータを変更しても、外部ファイルのデータは変更されません。

ResultTextLink	REG_SZ	外部ファイルにリンクしたカレント データベースでテーブルを作成します。カレント データベースでデータを変更すると、外部ファイルのデータも変更されます。

ResultTextExport	REG_SZ	カレント データベースから Excel Version 5.0 のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

注   レジストリの設定を変更した場合、新しい設定を有効にするために、データベース エンジンを一度終了してから再起動する必要があります。


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


Microsoft FoxPro データベースの設定の変更

関連項目

Microsoft FoxPro データベース ドライバをインストールすると、Jet データベース エンジン Version 3.0 では、セットアップ プログラムによって、既定値がレジストリの Engines および ISAM Formats キーに書き込まれます。Jet データベース エンジン Version 2.5 の場合、VB.INI (または <アプリケーション名>.INI ファイル) に初期設定が書き込まれます。ここでは、16 ビット (Jet データベース エンジン Version 2.5 を使用) および 32 ビット (Jet データベース エンジン Version 3.0 を使用) の FoxPro データベース ドライバの初期化および ISAM 形式の設定について説明します。

Microsoft FoxPro の初期設定 (Jet データベース エンジン Version 3.0)

Jet\3.0\Engines\Xbase フォルダには、FoxPro の外部データ ソースにアクセスする場合に使用される MSXB3032.DLL ドライバの初期設定が含まれています。このフォルダのエントリの設定の例を次にします。.

win32=<pathname>\MSXB3032.DLL

NetworkAccess=On

PageTimeout=600

INFPath=C:\DBASE\SYSTEM

CollatingSequence=ASCII

DataCodePage=OEM

Deleted=Off

Century=Off

Date=MDY

Mark=47

Exact=Off

Microsoft Jet データベース エンジンで使用される Xbase フォルダのエントリは次のとおりです。

エントリ	内容

win32	MSXB3032.DLL の場所を指定します。絶対パス名はインストールするときに決定されます。データ タイプは REG_SZ です。

NetworkAccess	ファイル ロックの設定をバイナリで指定します。NetworkAcccess エントリが 00 の場合、OpenDatabase メソッドと OpenRecordset メソッドの引数 exclusive の設定にかかわらず、テーブルは排他モードで開かれます。既定値は 01 です。データ タイプは REG_BINARY です。

PageTimeout	データが内部キャッシュに格納されてから、そのデータが無効になるまでの時間を、100 ミリ秒単位で指定します。既定値は、600 (60 秒) です。データ タイプは REG_DWORD です。

INFPath	.INF ファイル ディレクトリの絶対パスを指定します。Jet データベース エンジンは、まず、テーブルと同じディレクトリ内で .INF ファイルを探します。.INF ファイルがデータベースのディレクトリにない場合、INFPath エントリで指定されているディレクトリを探します。INFPath エントリがない場合、データベース ディレクトリで見つかったインデックス ファイル (.CDX または .MDX) を使用します。データ タイプは REG_SZ です。

このエントリは、初期設定では記述されません。

CollatingSequence	Jet データベース エンジンを使用して作成したり、開いたりするすべての FoxPro テーブルの照合順序を指定します。設定可能な値は、ASCII と International で、既定値は ASCII です。データ タイプは REG_SZ です。

DataCodePage	テキスト ページの保存方法を指定します。設定可能な値は次のとおりです。

　OEM:  OemToAnsi および AnsiToOem の変換を行います。
　ANSI:  OemToAnsi および AnsiToOem の変換は行いません。

既定値は OEM です。データ タイプは REG_SZ です。

Deleted	削除とマークされたレコードを Jet データベース エンジンがどのように扱うかをバイナリで指定します。01 は、FoxPro コマンドの SET DELETED ON に対応し、削除されたレコードの取得および削除されたレコードへの移動は行わないことを示します。00 は、FoxPro コマンドの SET DELETED OFF に対応し、削除されたレコードを他のレコードと同じように扱うことを示します。既定値は 00 です。データ タイプは REG_BINARY です。

Century	日付を文字列に変換する関数がインデックス式に使われている場合に、年を 4 桁で表示するかどうかをバイナリで指定します。01 は FoxPro コマンドの SET CENTURY ON に対応し、00 は FoxPro コマンドの SET CENTURY OFF に対応します。既定値は 00 です。データ タイプは REG_BINARY です。

Date	日付を文字列に変換する関数がインデックス式に使われている場合の日付の書式を指定します。FoxPro の SET DATE コマンドに対応します。このエントリの設定可能な値は、American、ANSI、British、French、DMY、German、Italian、Japan、MDY、USA および YMD です。既定値は MDY です。データ タイプは REG_SZ です。

Mark	日付の区切り文字として使う ASCII 文字を 10 進表記で指定します。既定値は、Date の設定に応じて次の文字になります。

　"/" (American、 MDY)
　"." (ANSI)
　"/" (British、French、DMY)
　"." (German)
　"-" (Italian)
　"/" (Japan、YMD)
　"-" (USA)

0 を設定すると、選択した日付書式で通常使用される区切り文字が、システムによって指定されます。

既定値は 0 です。データ タイプは REG_DWORD です。

Exact	文字列の比較の設定をバイナリで指定します。01 は FoxPro コマンドの SET EXACT ON に対応し、00 は FoxPro コマンドの SET EXACT OFF に対応します。既定値は 00 です。データ タイプは REG_BINARY です。

FoxPro ISAM 形式

Jet\3.0\ISAM Formats\FoxPro 2.0 フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Xbase

ExportFilter	REG_SZ	Microsoft FoxPro 2.0 (*.dbf)

ImportFilter	REG_SZ	Microsoft FoxPro (*.dbf)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	01

IsamType	REG_DWORD	0

IndexDialog	REG_BINARY	01

IndexFilter	REG_SZ	Microsoft FoxPro インデックス (*.idx; *.cdx)

CreateDBOnExport	REG_BINARY	00

ResultTextImport	REG_SZ	外部ファイルからカレント データベースにデータをインポートします。カレント データベースでデータを変更しても、外部ファイルのデータは変更されません。

ResultTextLink	REG_SZ	外部ファイルにリンクしたカレント データベースでテーブルを作成します。カレント データベースでデータを変更すると、外部ファイルのデータも変更されます。

ResultTextExport	REG_SZ	カレント データベースから FoxPro Version 2.0 のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

Jet\3.0\ISAM Formats\FoxPro 2.5 フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Xbase

ExportFilter	REG_SZ	Microsoft FoxPro 2.5 (*.dbf)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	01

IsamType	REG_DWORD	0

IndexDialog	REG_BINARY	01

IndexFilter	REG_SZ	Microsoft FoxPro インデックス (*.idx; *.cdx)

CreateDBOnExport	REG_BINARY	00

ResultTextExport	REG_SZ	カレント データベースから FoxPro Version 2.5 のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

Jet\3.0\ISAM Formats\FoxPro 2.6 フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Xbase

ExportFilter	REG_SZ	Microsoft FoxPro 2.6 (*.dbf)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	01

IsamType	REG_DWORD	0

IndexDialog	REG_BINARY	01

IndexFilter	REG_SZ	Microsoft FoxPro インデックス (*.idx; *.cdx)

CreateDBOnExport	REG_BINARY	00

ResultTextExport	REG_SZ	カレント データベースから FoxPro Version 2.6 のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

Jet\3.0\ISAM Formats\FoxPro 3.0 フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Xbase

ExportFilter	REG_SZ	Microsoft FoxPro 3.0 (*.dbf)

CanLink	REG_BINARY	00

OneTablePerFile	REG_BINARY	01

IsamType	REG_DWORD	0

IndexDialog	REG_BINARY	01

CreateDBOnExport	REG_BINARY	00

ResultTextExport	REG_SZ	カレント データベースから FoxPro Version 3.0 のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

Jet\3.0\ISAM Formats\FoxPro 3.0 フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Xbase

ExportFilter	REG_SZ	Microsoft FoxPro 3.0 (*.dbc)

CanLink	REG_BINARY	00

OneTablePerFile	REG_BINARY	00

IsamType	REG_DWORD	0

IndexDialog	REG_BINARY	00

CreateDBOnExport	REG_BINARY	00

ResultTextImport	REG_SZ	外部ファイルからカレント データベースにデータをインポートします。カレント データベースでデータを変更しても、外部ファイルのデータは変更されません。

注   レジストリの設定を変更した場合、新しい設定を有効にするために、データベース エンジンを一度終了してから再起動する必要があります。

FoxPro の初期設定 (Jet データベース エンジン Version 2.5)

Jet データベース エンジン Version 2.5 では、FoxPro は dBASE と同じドライバおよび初期設定を使用します。dBASE ドライバ エンジンは、レジストリの HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Jet20\InstallableISAM\ キーに格納されます。特に指定しない限り、初期設定は自動的に設定されます。初期設定を変更するには、アプリケーションの <アプリケーション名>.INI ファイルの [dBASE ISAM] セクションを作成し、新しい値のエントリを挿入します。使用する .INI ファイル名は、DBEngine オブジェクトの INIPath プロパティで設定します。次の表の例に示した書式に従って設定してください。次のどのオプションの設定も変更できます。

オプション	内容	例
CollatingSequence	Microsoft Jet データベース エンジン が FoxPro または dBASE のデータベースとの間でデータ処理を行う場合の照合順序を設定します。 設定可能な値は、ASCII (米国のみ) または International (その他の国) です。 既定値は、ASCII です。	CollatingSequence= International
Century	Jet データベース エンジンが FoxPro または dBASE のデータベースとの間でデータ処理を行う場合に日付フィールドで 4 桁の年号を使うかどうかを設定します。 設定可能な値は、On または Off (既定値) です。	Century=On
Date	Jet データベース エンジンが FoxPro または dBASE のデータベースとの間でデータ処理を行う場合、日付の表示に使用する書式を設定します。 設定可能な値は、FoxPro または dBASE のマニュアルを参照してください。	Date=American
Mark	Jet データベース エンジンが FoxPro または dBASE のデータベースとの間でデータ処理を行う場合、日付の表示で月と日付と時刻の区切りに使う文字を定義します。 設定値は、区切りに使用する ASCII コードを 10 進表記で指定します。この例では、スラッシュ (/) を指定しています。	Mark=47
INFPath = path	このエントリでは、path には対応する情報ファイル (.INF ファイル) が書き込まれる有効なパスを指定します。Jet データベース エンジンは、ユーザーが各 FoxPro ファイルまたは dBASE ファイルに指定したインデックスに関する情報を得るときにこのファイルを使います。 読み取り専用のドライブ (たとえば CD-ROM ドライブなど) に保存されている FoxPro または dBASE のデータベース内のテーブルをインポートしたりアタッチしたりする場合は、このエントリに有効なパスを設定してください。	INFPath = C:\ACCESS\FOXPRO
Deleted	Jet データベース エンジンが FoxPro または dBASE のデータベースとの間でデータ処理を行う場合、削除されたことが記されているレコードを表示するかどうかを指定します。 設定可能な値は、On (既定値) または Off です。	Deleted=On


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


Microsoft Jet データベース エンジンの ISAM の設定の変更

関連項目

Jet データベースのドライバをインストールすると、Jet データベース エンジン Version 3.0 の場合、セットアップ プログラムによって、既定値がレジストリの Engines および ISAM Formats キーに書き込まれます。Jet データベース エンジン Version 2.5 の場合、初期設定は DBEngine オブジェクトの IniPath プロパティの設定に応じて、VB.INI または <アプリケーション名>.INI ファイルに格納されます。ここでは、Jet データベース エンジン Version 2.5 および Version 3.0 のデータベース ドライバの初期化および ISAM 形式の設定について説明します。

Microsoft Jet エンジンの初期設定 (Jet データベース エンジン Version 3.0)

Jet\3.0\Enngines\Jet フォルダには、Microsoft Jet データベース エンジンの初期設定が含まれています。このフォルダのエントリの設定の例を次にします。

win32=<pathname>\MSRD2X32.DLL

PageTimeout=5000

LockRetry=20

MaxBufferSize=

Threads=3

UserCommitSync=Yes

ImplicitCommitSync=No

ExclusiveAsyncDelay=2000

SharedAsyncDelay=0

SystemDB=<pathname>\System.mdb

Jet データベース エンジンで使用するエントリは次のとおりです。

エントリ	内容

win32	データベース エンジン ドライバ (.DLL) の場所を指定します。絶対パス名はインストールするときに決定されます。データ タイプは REG_SZ です。

PageTimeout	読み込みがロックされていないデータが内部キャッシュに格納されてから、そのデータが無効になるまでの時間を、ミリ秒単位で指定します。既定値は 5,000 ミリ秒 (5 秒) です。データ タイプは REG_DWORD です。

LockRetry	ロックが競合してメッセージが表示される前に、ロックされているページにアクセスを試みる回数を指定します。既定値は 20 です。データ タイプは REG_DWORD です。

MaxBufferSize	Jet データベース エンジンの内部キャッシュのサイズを、キロバイト (KB) 単位で指定します。MaxBufferSize エントリには 512 以上の値を指定します。既定値は次の式から求められます。

　((TotalRAM in MB - 12 MB) / 4) + 512 KB

たとえば、32MB の RAM を持つシステムの場合、バッファの既定のサイズは ((32 MB - 12 MB) / 4) + 512 KB または 5,632 KB です。既定値を設定する場合は、レジストリのキーに次のように記述します。

　MaxBuffreSize =

データ タイプは REG_DWORD です。

Threads	Jet データベース エンジンが使用可能なバックグランドで使用するスレッドの数。既定値は 3 です。データ タイプは REG_DWORD です。

UserCommitSync	コミットが完了するまでシステムを待機させるかどうかを指定します。Yes は、システムに待機するように指示します。No は、コミットを非同期で実行するようにシステムに指示します。既定値は Yes です。データ タイプは REG_SZ です。

ImplicitCommitSync	コミットが完了するまでシステムを待機させるかどうかを指定します。No は、コミットが完了するまで待機しないで先に進むようにシステムに指示します。Yes は、コミットが完了するまで待機するようにシステムに指示します。既定値は No です。データ タイプは REG_SZ です。

ExclusiveAsyncDelay	排他的データベースの非同期フラッシュを遅らせる時間をミリ秒単位で指定します。既定値は 2,000 ミリ秒 (2 秒) です。データ タイプは REG_DWORD です。

SharedAsyncDelay	共有データベースの非同期フラッシュを遅らせる時間をミリ秒単位で指定します。既定値は 0 です。データ タイプは REG_DWORD です。

SystemDB	システム データベースの絶対パスおよびファイル名を指定します。特に指定しない限り、適切なパス名とそれに続けてファイル名 SYSTEM.MDB が設定されます。データ タイプは REG_SZ です。

CompactByPKey	テーブルを最適化する場合、テーブルに主キーが存在するときに、主キーの順序でテーブルをコピーするかどうかを指定します。主キーが設定されていない場合は、ベース テーブルの順序でコピーされます。

0 はベース テーブルの順序でコピーされることを示します。0 以外の値は、主キーが存在する場合に、主キーの順序で最適化されることを示します。データ タイプは REG_DWORD です。この設定は、Jet データベース エンジン Version 3.0 で作成されたデータベースでのみ有効です。Jet データベース エンジン Version 2.x で作成されたデータベースは、常にベース テーブルの順序でコピーされます。

Microsoft Jet データベース エンジンの ISAM 形式

Jet\3.0\ISAM Formats フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Jet 3.0

ExportFilter	REG_SZ	Microsoft Access (*.mdb)

ImportFilter	REG_SZ	Microsoft Access (*.mdb)

CanLink	REG_BINARY	00

OneTablePerFile	REG_BINARY	00

IndexDialog	REG_BINARY	00

CreateDBOnExport	REG_BINARY	00

ResultTextImport	REG_SZ	外部ファイルからカレント データベースにデータをインポートします。カレント データベースでデータを変更しても、外部ファイルのデータは変更されません。

ResultTextLink	REG_SZ	外部ファイルにリンクしたカレント データベースでテーブルを作成します。カレント データベースでデータを変更すると、外部ファイルのデータも変更されます。

ResultTextExport	REG_SZ	カレント データベースから Access のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

注   レジストリの設定を変更した場合、新しい設定を有効にするために、データベース エンジンを一度終了してから再起動する必要があります。

Microsoft Jet エンジンの初期設定 (Jet データベース エンジン Version 2.5)

Jet データベース エンジン Version 2.5 の場合、特に指定しない限り、ISAM の初期設定は自動的に設定されます。初期設定を変更するには、アプリケーションの <アプリケーション名>.INI ファイルの [ISAM] セクションを作成し、新しい値のエントリを挿入します。使用する .INI ファイル名は、DBEngine オブジェクトの INIPath プロパティによって設定されます。次の表の例に示した書式に従って設定してください。次のどのオプションの設定も変更できます。

オプション	内容	例
PageTimeout	使用されていないデータが内部キャッシュ内に格納されてから、リフレッシュ時に無効になるデータとして記録されるまでの時間を設定します。設定値は、100 ミリ秒単位で表します。 既定値は 5 (500 ミリ秒、つまり 0.5 秒) です。	PageTimeout=5
LockedPageTimeout	使用されているデータが内部キャッシュ内に格納されてから、リフレッシュ時に無効になるデータとして記録されるまでの時間を設定します。設定値は、100 ミリ秒単位で表します。 既定値は 5 (500 ミリ秒、つまり 0.5 秒) です。	LockedPageTimeout=5
CursorTimeout	カーソルのタイムアウトを 1/10 秒単位で設定します。 既定値は 5 (0.5 秒) です	CursorTimeout=5
LockRetry	ロックされているページへのアクセスの再試行の回数を指定します。 既定値は 20 回です。	LockRetry=20
CommitLockRetry	Microsoft Jet データベース エンジンが、データの変更を保存するためにロックをかけようと再試行する回数を指定します。コミット時にロックできない場合、更新は失敗に終わります。 Jet データベース エンジンがコミット時にロックしようと再試行する回数は、LockRetry エントリと直接関係します。コミット時にロックしようとする度に、LockRetry エントリの設定で指定されている回数だけロックを試みます。たとえば、CommitLockRetry エントリが 20、LockRetry エントリが 20 に設定されていれば、Jet データベース エンジンはコミット時に 20 回ロックしようと試み、コミットする度に 20 回ずつロックをかけようとし、合計で 400 回ロックを試みることになります。 既定値は 20 回です。	CommitLockRetry=20
MaxBufferSize	Jet データベース エンジンの内部キャッシュのサイズを、キロバイト (KB) 単位で指定します。MaxBufferSize エントリに指定できるのは、18 ～ 4,096 の範囲の値です。 この設定を増やすと、十分なメモリがあるシステムでは、ODBC の効率がよくなります。 既定値は 512KB です。	MaxBufferSize=512
ReadAheadPages	連続的にデータを読み込むときに、一度に読み込むページ数を設定します。 既定値は 16 ページです。	ReadAheadPages=16


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


Paradox データベースの設定の変更

関連項目

Paradox データベース ドライバをインストールすると、Jet データベース エンジン Version 3.0 では、セットアップ プログラムによって、既定値がレジストリの Engines および ISAM Formats キーに書き込まれます。Jet データベース エンジン Version 2.5 の場合、VB.INI (または <アプリケーション名>.INI ファイル) に初期設定が書き込まれます。ここでは、16 ビット (Jet データベース エンジン Version 2.5 を使用) および 32 ビット (Jet データベース エンジン Version 3.0 を使用) の Paradox データベース ドライバの初期化および ISAM 形式の設定について説明します。

Paradox の初期設定 (Jet データベース エンジン Version 3.0)

Jet\3.0\Engines\Paradox フォルダには、Paradox の外部データにアクセスする場合に使用する MSPX3032.DLL ドライバの初期設定が含まれています。このフォルダのエントリの設定の例を次に示します。

win32=<pathname>\MSPX3032.DLL

PageTimeout=600

CollatingSequence=ASCII

DataCodePage=OEM

ParadoxUserName=Kimberly

ParadoxNetPath=P:\PDOXDB

ParadoxNetStyle=4.X

Microsoft Jet データベース エンジンで使用される Paradox フォルダのエントリは次のとおりです。

エントリ	内容

win32	MSPX3032.DLL の場所を指定します。絶対パス名はインストールするときに決定されます。データ タイプは REG_SZ です。

PageTimeout	データが内部キャッシュに格納されてから、そのデータが無効になるまでの時間を、100 ミリ秒単位で指定します。既定値は、600 (60 秒) です。データ タイプは REG_DWORD です。

CollatingSequence	Visual Basic を使用して作成したり、開いたりする、すべての Paradox のテーブルの照合順序を指定します。設定可能な値は、ASCII、International、Norwegian-Danish、および Swedish-Finnish です。

CollatingSequence エントリの設定は、Paradox のテーブルを作成するときに使用した照合順序と一致している必要があります。既定値は ASCII です。データ タイプは REG_SZ です。

DataCodePage	テキスト ページの保存方法を指定します。設定可能な値は次のとおりです。

OEM:  OemToAnsi および AnsiToOem の変換を行います。
ANSI:  OemToAnsi および AnsiToOem の変換は行いません。

既定値は OEM です。データ タイプは REG_SZ です。

ParadoxUserName	Paradox の ISAM ドライバによってテーブルがロックされているときに、ISAM ドライバではなく、Paradox から対話形式でデータにアクセスするユーザーが、互換性のないロックを設定しようとしたときに、Paradox によって表示される名前です。コンピュータがネットワーク上にない場合は、このエントリは追加されません。データ タイプは REG_SZ です。

ParadoxUserName エントリを指定する場合は、ParadoxNetPath エントリと ParadoxNetStyle エントリも指定する必要があります。これらのエントリを指定しなかった場合は、Paradox の外部データにアクセスしようとしたときに、エラーが発生します。

ParadoxNetPath	PARADOX.NET ファイル ( Paradox 3.x 用) または PDOXUSRS.NET ファイル (Paradox 4.x 用) があるディレクトリの絶対パスを指定します。コンピュータがネットワーク上にない場合は、このエントリは追加されません。通常、セットアップ プログラムによって追加されるこのエントリの初期設定は、変更する必要があります。初期設定では、このファイルの場所として最も一般的なディレクトリが設定されます。ParadoxNetPath エントリの設定は、ドライブ名も含め、そのデータベース (ディレクトリ) を共有するすべてのユーザーに対して同じである必要があります。データ タイプは REG_SZ です。

ParadoxNetPath エントリを指定する場合は、ParadoxUserName エントリと ParadoxNetStyle エントリも指定する必要があります。これらのエントリを指定しなかった場合は、Paradox の外部データにアクセスしようとしたときに、エラーが発生します。

ParadoxNetStyle	Paradox データにアクセスするときのネットワーク アクセスの方法を指定します。設定可能な値は次のとおりです。

　3.x
　4.x

Paradox 3.x を使用している場合、ParadoxNetStyl に 4.x を設定することはできません。4.x を設定すると、ドライバによって誤ったロック方法が使用されてしまいます。Paradox 5.0 の場合は、ParadoxNetStyl に 4.x を設定し、ロックの動作を確認する必要があります。

コンピュータがネットワーク上にない場合は、このエントリは追加されません。このエントリは、ユーザー グループが使っている Paradox のバージョンに対応させる必要があります。この設定値は、そのデータベース (ディレクトリ) を共有するすべてのユーザーに対して同じである必要があります。既定値は 4.x です。データ タイプは REG_SZ です。

ParadoxNetStyle エントリを指定する場合は、ParadoxUserName エントリおよび ParadoxNetPath エントリを指定する必要があります。これらのエントリを指定しなかった場合は、Paradox の外部データにアクセスしようとしたときに、エラーが発生します。

Paradox ISAM 形式

Jet\3.0\ISAM Formats\Paradox 3.x フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Paradox

ExportFilter	REG_SZ	Paradox 3 (*.db)

ImportFilter	REG_SZ	Paradox (*.db)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	01

IsamType	REG_DWORD	0

IndexDialog	REG_BINARY	00

CreateDBOnExport	REG_BINARY	00

ResultTextImport	REG_SZ	外部ファイルからカレント データベースにデータをインポートします。カレント データベースでデータを変更しても、外部ファイルのデータは変更されません。

ResultTextLink	REG_SZ	外部ファイルにリンクしたカレント データベースでテーブルを作成します。カレント データベースでデータを変更すると、外部ファイルのデータも変更されます。

ResultTextExport	REG_SZ	カレント データベースから Paradox Version 3 のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

Jet\3.0\ISAM Formats\Paradox 4.x フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Paradox

ExportFilter	REG_SZ	Paradox 4 (*.db)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	01

IsamType	REG_DWORD	0

IndexDialog	REG_BINARY	00

CreateDBOnExport	REG_BINARY	00

ResultTextExport	REG_SZ	カレント データベースから Paradox Version 4 のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

Jet\3.0\ISAM Formats\Paradox 5.x フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Paradox

ExportFilter	REG_SZ	Paradox 5 (*.DB)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	01

IsamType	REG_DWORD	0

IndexDialog	REG_BINARY	00

CreateDBOnExport	REG_BINARY	00

ResultTextExport	REG_SZ	カレント データベースから Paradox Version 5 のファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

注   レジストリの設定を変更した場合、新しい設定を有効にするために、データベース エンジンを一度終了してから再起動する必要があります。

Paradox の初期設定 (Jet データベース エンジン Version 2.5)

Jet データベース エンジン Version 2.5 の場合、Paradox ドライバ エンジンは、レジストリのHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet20\InstallableISAM\ キーに格納されています。特に指定しない限り、初期設定は自動的に設定されます。初期設定を変更するには、アプリケーションの <アプリケーション名>.INI ファイルの [ODBC] セクションを作成し、新しい値のエントリを挿入します。使用する .INI ファイル名は、DBEngine オブジェクトの INIPath プロパティで設定します。次の表の例に示した書式に従って設定してください。次のどのオプションの設定も変更できます。

オプション	内容	例
ParadoxUserName	Paradox が他のユーザーにロックの衝突を警告するときに使用するユーザー名を設定します。 初期設定では、Visual Basic をインストールするときに指定したユーザー名が使用されます。	ParadoxUserName=nancydav
ParadoxNetPath	PARADOX のロック ファイルのパスを設定します。ロック ファイル名は PARADOX.NET (Paradox 3.X の場合) または PDOXUSRS.NET (Paradox 4.X の場合) です。 Paradox のロックの設定を他のユーザーと共有したい場合は、このオプションにはネットワーク パスを設定してください。 このファイルの場所として最も一般的なディレクトリが設定されます。	ParadoxNetPath=F:\WRKGRP\
ParadoxNetStyle	Paradox データにアクセスするときのネットワーク アクセスの方法として、3.X (Paradox 3.X のロック形式の場合) または 4.X  (Paradox 4.X のロック形式の場合) を設定します。 この設定は、ネットワーク ユーザーにしか適用されません。Paradox のファイルをネットワーク上で共有しているユーザーは全員、ParadoxNetStyle エントリに同じ設定にする必要があります。 既定値は 3.X です。	ParadoxNetStyle=3.X
CollatingSequence	Microsoft Jet データベース エンジン が Paradox のデータベースとの間でデータ処理を行うときの照合順序を設定します。 設定可能な値は、ASCII、International、Norwegian-Danish、Swedish-Finnish です。 既定値は、ASCII です(米国のみ)。	CollatingSequence=International


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

テキスト データ ソースの設定の変更


テキスト データ ソースの設定の変更

関連項目

テキスト データ ソース データベース ドライバをインストールすると、Jet データベース エンジン エンジン Version 3.0 では、セットアップ プログラムによって、既定値のセットがレジストリの Engines および ISAM Formats キーに書き込まれます。Jet データベース エンジン Version 2.5 の場合、VB.INI (または <アプリケーション名>.INI ファイル) に初期設定が書き込まれます。ここでは、16 ビット (Jet データベース エンジン Version 2.5 を使用) および 32 ビット (Jet データベース エンジン Version 3.0 を使用) のテキスト データ ソース データベース ドライバの初期化および ISAM 形式の設定について説明します。

テキスト データ ソースの初期設定 (Jet データベース エンジン Version 3.0)

Jet\3.0\Engines\Text フォルダには、外部テキスト データ ファイルにアクセスする場合に使用される MSTX3032.DLL ドライバの初期設定が含まれています。このフォルダのエントリの設定の例を次に示します。

win32=<pathname>\MSTX3032.DLL

MaxScanRows=25

FirstRowHasNames=False

CharacterSet=OEM

Format=TabDelimited

Extensions=none,asc,csv,tab,txt

ExportCurrencySymbols=Yes

Microsoft Jet データベース エンジンで使用される Text フォルダのエントリは次のとおりです。

エントリ	内容

win32	MSTX3032.DLL の場所を指定します。絶対パス名はインストールするときに決定されます。データ タイプは REG_SZ です。

MaxScanRows	列のデータ型を想定するためにチェックする行数を指定します。0 を設定すると、ファイル全体が検索されます。既定値は 25 です。データ タイプは REG_DWORD です。

FirstRowHasNames	テーブルの最初の行に列見出しがあるかどうかをバイナリで指定します。01 は、テーブルの最初の行に列見出しがあることを示します。インポートを行うときは、列見出しは最初の行からインポートされます。00 は、テーブルの最初の行に列見出しがないことを示します。既定値は 01 です。データ タイプは REG_BINARY です。

CharacterSet	テキスト ページの保存方法を指定します。設定可能な値は次のとおりです。

OEM:  OemToAnsi および AnsiToOem の変換を行います。
ANSI:  OemToAnsi および AnsiToOem の変換は行いません。

既定値は OEM です。データ タイプは REG_SZ です。

Format	テキスト ファイルの形式を、TabDelimited、CSVDelimited、Delimited (<1 文字の区切り記号>) のいずれかの値で指定します。Delimited 形式の1 文字の区切り記号には、ダブル クォーテーション マーク (") 以外の任意の 1 文字を指定できます。既定値は CSVDelimited です。データ タイプは REG_SZ です。

Extensions	テキストのデータを探すときに検索するファイル拡張子を指定します。既定値は TXT、CSV、TAB、ASC です。データ タイプは REG_SZ です。

ExportCurrencySymbols	通貨型のフィールドがエクスポートされたときに、必要な通貨記号を含むかどうかをバイナリで示します。01 を指定すると記号が含まれます。00 を指定すると数値データだけがエクスポートされます。既定値は 01 です。データ タイプは REG_BINARY です。

テキスト データ ソース ISAM 形式

Jet\3.0\ISAM Formats\Text フォルダのエントリは次のとおりです。

エントリ名	データ タイプ	値

Engine	REG_SZ	Text

ExportFilter	REG_SZ	テキスト (*.TXT、*.CSV、*.TAB、*.ASC)

ImportFilter	REG_SZ	テキスト (*.TXT、*.CSV、*.TAB、*.ASC)

CanLink	REG_BINARY	01

OneTablePerFile	REG_BINARY	01

IsamType	REG_DWORD	2

IndexDialog	REG_BINARY	00

CreateDBOnExport	REG_BINARY	00

ResultTextImport	REG_SZ	外部ファイルからカレント データベースにデータをインポートします。カレント データベースでデータを変更しても、外部ファイルのデータは変更されません。

ResultTextLink	REG_SZ	外部ファイルにリンクしたカレント データベースでテーブルを作成します。カレント データベースでデータを変更すると、外部ファイルのデータも変更されます。

ResultTextExport	REG_SZ	カレント データベースからテキスト ファイルにデータをエクスポートします。既存のファイルにエクスポートした場合は、データが上書きされます。

注   レジストリの設定を変更した場合、新しい設定を有効にするために、データベース エンジンを一度終了してから再起動する必要があります。

テキスト データ ソースの初期設定 (Jet データベース エンジン Version 2.5)

.INI ファイルに [Text ISAM] セクションを作成し、テキスト ファイルの種類を設定してカスタマイズする必要があります。使用する .INI ファイル名は DBEngine オブジェクトの INIPath プロパティで設定します。このセクションに入力された情報に基づいて、MSTX2016.DLL ドライバの設定が初期化されます。次に、.INI ファイルのこのセクションの設定の例を示します。

[Text ISAM]

Extensions=none,asc,csv,tab,txt

ColNameHeader=False

Format=TabDelimited

MaxScanRows=25

CharacterSet=OEM

エントリ	内容

Extensions	テキスト ファイルの拡張子を指定します。

ColNameHeader	データの最初のレコードを列見出しに使用するかどうかを示すために、True または False を設定します。設定値には Yes か No を入れます。Yes は、テーブルの最初の行に列見出しが含まれていることを示します。エクスポートを行うときは、列見出しは最初の行としてエクスポートされます。No は、最初の行に列の名前が含まれていないことを示します。この場合、行の名前は、1、2、3 などの数字になります。

Format	TabDelimited、CSVDelimited、Delimited(<1 文字の区切り記号>)、FixedLength のいずれかを設定します。Delimited 形式の 1 文字の区切り記号には、ダブル クォーテーション (") 以外の任意の 1 文字を指定できます。

MaxScanRows	列の型を決めるときに調べる行の数を指定します。0 に設定すると、ファイル全体が検索されます。

CharacterSet	OEM または ANSI を指定します。ソース ファイルが OEM コード ページと ANSI コード ページのどちらで記述されているかを示します。


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft ODBC の設定の変更

Paradox データベースの設定の変更


Microsoft ODBC の設定の変更

関連項目

Microsoft ODBC データベース ドライバをインストールすると、Jet データベース エンジン Version 3.0 では、セットアップ プログラムによって、既定値がレジストリの Engines および ISAM Formats キーに書き込まれます。Jet データベース エンジン Version 2.5 の場合は、VB.INI (または <アプリケーション名>.INI ファイル) に初期設定が書き込まれます。ここでは、16 ビット (Jet データベース エンジン Version 2.5 を使用) および 32 ビット (Jet データベース エンジン Version 3.0 を使用) の Microsoft ODBC データベース ドライバの初期化および ISAM 形式の設定について説明します。

Microsoft ODBC ドライバの初期設定 (Jet データベース エンジン Version 3.0)

Jet\3.0\Engines\ODBC フォルダには、Microsoft Jet データベース エンジンの初期設定が含まれています。このフォルダのエントリの設定の例を次に示します。

win32=<pathname>\ODBC32.DLL

LoginTimeout=20

QueryTimeout=60

ConnectionTimeout=600

AsyncRetryInterval=500

AttachCaseSensitive=0

AttachableObjects='TABLE','VIEW','SYSTEM TABLE','ALIAS','SYNONYM'

SnapshotOnly=0

TraceSQLMode=0

TraceODBCAPI=0

DisableAsync=0

JetTryAuth=1

PreparedInsert=0

PreparedUpdate=0

FastRequery=0

Jet データベース エンジンで使用される ODBC エントリは次のとおりです。

エントリ	内容

win32	ODBC32.DLL の場所を指定します。絶対パス名はインストールするときに決定されます。データ タイプは REG_SZ です。

LoginTimeout	ログインの試行を中止するまでのタイムアウトの秒数で、既定値は 20 です。データ タイプは REG_DWORD です。

QueryTimeout	クエリーの実行を中止するまでのタイムアウトの秒数 (処理時間の総計) で、既定値は 60 です。データ タイプは REG_DWORD です。

ConnectionTimeout	キャッシュされた接続が待機状態になってからタイムアウトになるまでの秒数で、既定値は 600 です。データ タイプは REG_DWORD です。

AsyncRetryInterval	サーバーがクエリーの処理を終えたかどうかを確認するために、ポーリングを行う間隔をミリ秒で指定します。このエントリは非同期処理のみに使います。既定値は 500 です。データ タイプは REG_DWORD です。

AttachCaseSensitive	テーブルをアタッチするときに、テーブルの名前を完全に一致させるかどうかを指定します。設定値が 0 の場合は、大文字と小文字を区別せず、指定された名前と最初に一致したテーブルをアタッチします。設定値が 1 の場合は、名前が完全に一致するテーブルをアタッチします。既定値は 0 です。データ タイプは REG_DWORD です。

AttachableObjects	アタッチ可能なサーバー オブジェクト型を指定します。既定値は、'TABLE'、'VIEW'、'SYSTEM TABLE'、'ALIAS'、'SYNONYM' です。データ タイプは REG_SZ です。

SnapshotOnly	Recordset オブジェクトを強制的にスナップショット タイプにするかどうかを指定します。0 の場合は、ダイナセットを許可します。1 の場合は、強制的にスナップショットにします。既定値は 0 です。データ タイプは REG_DWORD です。

TraceSQLMode	Jet データベース エンジンが、ODBC データ ソースに送られる SQL ステートメントを SQLOUT.TXT でトレースするかどうかを指定します。設定値は 0 (no) と 1 (yes) で、既定値は 0 です。データ タイプは REG_DWORD です。このエントリは、SQLTraceMode エントリと代替可能です。

TraceODBCAPI	ODBC API 呼び出しを ODBCAPI.TXT でトレースするかどうかを指定します。設定値は 0 (no) と 1 (yes) で、既定値は 0 です。データ タイプは REG_DWORD です。

DisableAsync	クエリーの同期実行を強制的に行うかどうかを指定します。設定値が 0 の場合は、可能ならクエリーの非同期実行を行います。設定値が 1 の場合は、クエリーの同期実行を強制的に行います。既定値は 0 です。データ タイプは REG_DWORD です。

JetTryAuth	ユーザー名とパスワードの入力を求めるメッセージが表示される前に、Microsoft Access のユーザー名とパスワードを使ってサーバーにログインを試みるかどうかを指定します。設定値は 0 (no) および 1 (yes) で、既定値は 1 です。データ タイプは REG_DWORD です。

PreparedInsert	システム定義の INSERT ステートメントを使うかどうかを指定します。この INSERT ステートメントはすべての列を挿入します。設定値が 0 の場合は、Null でない値だけを挿入するユーザー定義の INSERT ステートメントを使います。設定値が 1 の場合は、システム定義の INSERT ステートメントを使います。既定値は 0 です。データ タイプは REG_DWORD です。

システム定義の INSERT ステートメントを使うと、Null 値でサーバーの既定値を上書きする可能性があり、この場合、明示的に挿入されなかった列に対してもトリガを実行します。

PreparedUpdate	システム定義の UPDATE ステートメントを使うかどうかを指定します。この UPDATE ステートメントはすべての列のデータを更新します。設定値が 0 の場合は、変更された列だけを SET の対象とするユーザー定義の UPDATE ステートメントを使います。設定値が 1 の場合は、システム定義の UPDATE ステートメントを使います。既定値は 0 です。データ タイプは REG_DWORD です。

システム定義の UPDATE ステートメントを使うと、変更されていない列に対してもトリガを実行することがあります。

FastRequery	パラメータ化されたクエリーで、システム定義の SELECT ステートメントを使うかどうかを指定します。設定値は 0 (no) および 1 (yes) で、既定値は 0 です。データ タイプは REG_DWORD です。

Microsoft ODBC ドライバの初期設定 (Jet データベース エンジン Version 2.5)

Jet データベース エンジン Version 2.5 の場合、ODBC ドライバ エンジンは、レジストリのHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet20\InstallableISAM\ キーに格納されます。特に指定しない限り、初期設定は自動的に設定されます。初期設定を変更するには、アプリケーションの <アプリケーション名>.INI ファイルの [ODBC] セクションを作成し、新しい値のエントリを挿入します。使用する .INI ファイル名は DBEngine オブジェクトの INIPath プロパティで設定します。次の表の例に示した書式に従って設定ください。次のどのオプションの設定も変更できます。

オプション	内容	例
QueryTimeout	クエリーを実行させてから、ODBC がクエリーの実行を中止するまでの時間を秒単位で設定します。サーバーからクエリーの結果として最初のレコードを受け取ったときに時間の計測は中止されます。 既定値は 60 秒です。	QueryTimeout=60
LoginTimeout	ログインしようとしているときに、Jet データベース エンジンがログイン処理を中止してメッセージを表示するまでの時間を秒単位で指定します。 既定値は 20 秒です。	LoginTimeout=20
ConnectionTimeout	キャッシュ接続が待機状態のとき、Microsoft Jet データベース エンジンがその接続を解除するまでの時間を秒単位で設定します。 既定値は 600 秒です。このタイマーを初期化するには、必ず DBEngine オブジェクトの Idle メソッドを使ってください。	ConnectionTimeout=600
AsyncRetryInterval	サーバーでの非同期クエリーの処理が終了したかどうかを知るための Jet データベース エンジンのポーリングの間隔をミリ秒単位で指定します。 既定値は 500 ミリ秒です。	AsyncRetryInterval=500
AttachCaseSensitive	テーブル名を検索するときに大文字小文字を区別するかの設定を変更します。 設定可能な値は次のとおりです。 0 大文字小文字は区別せず、最初に見つかった一致する名前を持つテーブルをアタッチします。 1 テーブル名が指定した文字列と完全に一致したときだけテーブルをアタッチします。 既定値は 0 です。	AttachCaseSensitive=0
AttachableObjects	アタッチできるオブジェクトの型をすべて指定します。 既定値は 'TABLE', 'VIEW', 'SYSTEM TABLE', 'ALIAS', 'SYNONYM' です。	AttachableObjects='TABLE','ALIAS'
TraceSQLMode	Jet データベース エンジンが、ODBC データ ソースに送られたすべての SQL ステートメントをトレースし SQLOUT.TXT というファイルに記録するかどうかを指定します。この設定は、代わりに SQLTraceMode エントリというエントリを使っても指定できます。 設定可能な値は、0 (しない) と 1 (する) です。既定値は 0 です。	TraceSQLMode=0 -Or- SQLTraceMode=0
TraceODBCAPI	Jet データベース エンジンが、ODBC からの API 呼び出しをすべてトレースして ODBCAPI.TXT というファイルに記録するかどうかを指定します。この設定を 1 にする場合、DisableAsync エントリも 1 に設定することをお勧めします。 設定可能な値は、0 (しない) と 1 (する) です。既定値は 0 です。	TraceODBCAPI=0
DisableAsync	Jet データベース エンジンが同期型のクエリーの実行を強制するかどうかを指定します。 設定可能な値は次のとおりです。 0 可能な場合は非同期なクエリーの実行を行います。 1 同期型のクエリーの実行を強制します。 このエントリは Visual Basic では無視されます。既定値は 1 (同期型) です。	DisableAsync=1
TryJetAuth	ユーザー名とパスワードの入力を要求する前に、Jet データベース エンジンのユーザー名とパスワードを使ってサーバーへのログオンを試みるかどうかを指定します。 設定可能な値は 0 (しない) と 1 (する) です。既定値は 1 です。	TryJetAuth=1
PreparedInsert	Jet データベース エンジンのシステム定義の INSERT ステートメントを使ってすべての列のデータを挿入するかどうかを指定します。 システム定義の INSERT ステートメントを使うと、サーバーの既定値が Null 値に置き換えられます。また、データが明示的には挿入されていない列へもトリガを実行することができます。 設定可能な値は次のとおりです。 0 (既定値) Null 値ではない値だけを挿入するユーザー定義の INSERT ステートメントを使います。 1 システム定義の INSERT ステートメントを使います。	PreparedInsert=0
PreparedUpdate	Jet データベース エンジンのシステム定義の UPDATE ステートメントを使ってすべての列のデータを更新するかどうかを指定します。 システム定義の UPDATE ステートメントを使うと、変更されない列に対してもトリガを実行することができます。 設定可能な値は次のとおりです。 0 (既定値) 変更された列だけに SET を使うユーザー定義の UPDATE ステートメントを使います。 1 システム定義の UPDATE ステートメントを使います。	PreparedUpdate=0
FastRequery	パラメータ化されたクエリーに、あらかじめ用意されている SELECT ステートメントを使うかどうかを指定します。 設定可能な値は次のとおりです。 0 (既定値) パラメータ化されたクエリーに、あらかじめ用意されている SELECT ステートメントは使いません。この設定にすると、実行速度が多少遅くなりますが、使用する接続の数は少なくなります。 1 パラメータ化されたクエリーに、あらかじめ用意されている SELECT ステートメントを使います。この設定にすると、実行速度は速くなりますが、使用する接続の数が多くなります。	FastRequery=0
SnapshotOnly	レコードセットを強制的にスナップショットにするかどうかを指定します。 設定可能な値は次のとおりです。 0 (既定値) テーブルをアタッチしたときにインデックス情報も同時に取得するよう、ダイナセットにすることもできます。 1 テーブルをアタッチしたときにインデックス情報を無視し、スナップショットにしか作成できません。この設定を選んだ場合、データを編集することはできません。	SnapshotOnly=0


関連項目

Btrieve データベースのデータへのアクセス

dBASE データベースのデータへのアクセス

Lotus 1-2-3 ワークシートのデータへのアクセス

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベースのデータへのアクセス

Paradox データベースのデータへのアクセス

テキスト文書に入っているデータへのアクセス

外部データベースへのアクセス

Btrieve データベースの設定の変更

dBASE データベースの設定の変更

Lotus データベースの設定の変更

Microsoft Excel の設定の変更

Microsoft FoxPro データベースの設定の変更

Microsoft Jet データベース エンジンの ISAM の設定の変更

Paradox データベースの設定の変更

テキスト データ ソースの設定の変更


データベース レプリケーション

関連項目

データベースのレプリケーションとは、1 つのデータベースからコピーを作成し、その複数のコピーのデータおよびオブジェクトを同期させる方法です。データベースのコピーは、それぞれレプリカと呼ばれ、すべてのレプリカは同じテーブル、クエリー、フォーム、レポート、マクロ、およびモジュールを含んでいます。同じレプリカ セットに所属するレプリカの間では、データまたはレプリケートされたオブジェクトの更新内容を交換できます。この交換を同期と呼びます。

アプリケーション

データベース レプリケーションは次の場合に役立ちます。

異なるオフィス間でのデータの共有

分散したユーザーの間のデータの共有

サーバー データへのアクセスの効率化

更新されたアプリケーションの配布

データをバックアップ

レプリケーションの機能のアプリケーションへの組み込み

レプリケーション機能はすべてコードで処理できます。他のデータベース アプリケーションを作成する場合と同様に、Microsoft Jet データベースを作成し、データベースをレプリケート可能な形式に変換します。レプリカに含まないオブジェクト (テーブル、クエリー、フォーム、レポート、マクロ、またはモジュール) がある場合は、データベースをレプリケート可能に変換する前に、そのオブジェクトを指定します。

データベースをレプリケートすると、他のユーザーまたはコンピュータから使用できるレプリカを作成できます。それぞれのレプリカで、テーブル、クエリー、フォーム、レポート、マクロまたはモジュールなどのオブジェクトを新しく作成した場合、これらのオブジェクトは、そのレプリカ内でローカルに保持されます。これらのオブジェクトをレプリケート可能にするには、Replicable プロパティを使用します。

また、レプリカを作成し、そのレプリカに対して行った変更を同期させることができます。Synchronize メソッドを使用すると、あるレプリカで行われたデータ変更と、同じレプリカ セット内の別のレプリカで行われたデータ変更をマージできます。また、同期をとることで、デザイン マスターに加えた変更を他のレプリカに反映することができます。Microsoft Jet データベース エンジンでは、データを変更する場合は複数のマスターがサポートされますが、データベースのデザインを変更する場合にサポートされるマスターは、ただ 1 つだけです。レプリカの同期をとる場合、ユーザーが同じレコードを変更すると、2 つのレプリカ間で競合が生じることがあります。この競合を解決するには、システム テーブルでこれらの競合が発生したテーブルおよびレコードを調べるか、競合を解決する独自のプログラムを作成します。

初期設定では、レプリカ セット内の最初のレプリカがデザイン マスターです。ユーザーまたはシステムの要件が変わるごとに、デザイン マスターの状態を別のレプリカに転送できます。デザイン マスターに損傷があるか、または破壊されていて、デザイン マスターの状態を転送できない場合、別のレプリカをデザイン マスターとして使用することができます。


 関連項目

データベースのレプリケート可能形式への変換

データベースをレプリケート可能形式に変換する前にオブジェクトをローカルに設定する

レプリカをレプリカ セットのデザイン マスターに設定する

レプリカの追加作成

オブジェクトをレプリケート可能またはローカルに設定する

デザイン マスターの状態を他のレプリカに転送する

同期の競合の解決

レプリカの同期化


SELECT ステートメント (SQL)

関連項目	例

Microsoft Jet データベース エンジンに対し、データベースからデータをレコード単位で取得するように指示します。

構文

SELECT [predicate] { * | table.* | [table.]field1 [, [table.]field2[, ...]]}
[AS alias1 [, alias2 [, ...]]]
FROM tableexpression [, ...] [IN externaldatabase]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
[WITH OWNERACCESS OPTION]

SELECT ステートメントの指定項目は次のとおりです。

指定項目	内容

predicate	ALL、DISTINCT、DISTINCTROW、TOP 述語のいずれかを指定します。この引数を使用して、返されるレコード数を制限します。

*	指定したテーブルからすべてのフィールドが選択されます。

table	選択されたレコードのフィールドを含むテーブルを指定します。

field1, field2	抽出するデータを含むフィールドを指定します。複数のフィールドを指定すると、指定した順にデータが抽出されます。

alias1, alias2	Recordset オブジェクトに返すフィールドの名前を指定します。フィールド名は、Field オブジェクトの名前として返されます。table で元のフィールドの名前の代わりに、使用する名前を指定します。

tableexpression	取得するデータが存在するテーブルを指定します。

externaldatabase	引数 tableexpression で指定したテーブルを含む外部データベースのパス名を指定します。引数 tableexpression で指定したテーブルがカレント データベースにない場合、そのテーブルを含むデータベースを指定します。

解説

SELECT ステートメントを指定してクエリーを実行すると、Jet データベース エンジンは指定されたテーブルを検索し、選択された列を抽出します。さらに、条件を満たす行を選択し、指定された順序にその列を並べ替えます。

SELECT ステートメントは、データベース内のデータを取得するだけで、変更は行いません。

SELECT ステートメントは、QueryDef オブジェクトの SQL プロパティや、データ (Data) コントロールの RecordSource プロパティに指定することができます。また、OpenRecordset メソッドの引数としても指定できます。

通常、SELECT ステートメントは、SQL ステートメントの最初に記述します。ほとんどの SQL ステートメントが、SELECT ステートメントまたは SELECT...INTO ステートメントで記述されています。

次の構文は、最も簡単な SELECT ステートメントです。

SELECT fields FROM table

アスタリスク (*) を使うと、テーブル内のすべてのフィールドを選択できます。次の例では、Employees テーブル内のすべてのフィールドを選択します。

SELECT * FROM Employees;

FROM 句で指定した複数のテーブルに同じ名前のフィールドが含まれている場合は、フィールド名の前にテーブル名とピリオド (.) を記述します。Employees テーブルと Supervisors テーブルの両方に Department フィールドがある場合、次のように SELECT ステートメントを記述します。このステートメントは、Employees テーブルの Department フィールドと、Supervisors テーブルの SupvName フィールドを選択します。

SELECT Employees.Department, SupvName
FROM Supervisors, Employees
WHERE Employees.Department = Supervisors.Department;

Recordset オブジェクトを作成すると、Jet データベース エンジンでは、指定したテーブルのフィールド名がその Recordset オブジェクトの Field オブジェクトの名前になります。別のフィールド名を使用する場合、またはフィールドが生成されるときに指定された式によって付けられた名前とは別の名前を指定する場合は、予約語 AS を使います。次の例では、Recordset オブジェクトに返される Field オブジェクトに Birth Date という別名をつけます。

SELECT [Birth Date]
AS Birth FROM Employees;

クエリーで返される Field オブジェクトが、特定できないときや重複する名前になる場合は、AS 句を使って、必ず別の名前を付けます。次の例では、Recordset オブジェクトに返される Field オブジェクトに Head Count という別名をつけます。

SELECT COUNT(Employee ID)
AS [Head Count] FROM Employees;

SELECT ステートメントでは、この項目で使用した以外の句を使用して、返されるデータに対してさらに細かい指定や並べ替えを行うことができます。詳細については、オンライン ヘルプの該当する項目を参照してください。

Microsoft Visual Basic では、アプリケーション内で SELECT ステートメントを作成することができます。この場合、データの選択や並べ替えに必要なローカル変数を、SELECT ステートメントに指定します。たとえば、Title フィールドの値である、書名を入力したテキストボックス (TextBox) コントロール (TitleWanted) があるとします。このタイトルに関するすべての本を Titles テーブルから呼び出す場合、テキストボックス コントロールの現在の値を含む SQL ステートメントを作成します。また、TitleWanted の値をシングル クォーテーション (') で囲みます。

Set Rst = Db.OpenRecordset("SELECT * FROM Titles " _
& " WHERE Title = '" & TitleWanted.Text & "'" )


関連項目

ALL、DISTINCT、DISTINCTROW、TOP 述語 (SQL)

DELETE ステートメント (SQL)

FROM 句 (SQL)

GROUP BY 句 (SQL)

HAVING 句 (SQL)

IN 句 (SQL)

INSERT INTO ステートメント (SQL)

ORDER BY 句 (SQL)

SQL を使ったデータの取得

SELECT...INTO ステートメント (SQL)

SQL 集合関数 (SQL)

UNION 操作 (SQL)

UPDATE ステートメント (SQL)

WHERE 句 (SQL)

WITH OWNERACCESS OPTION 宣言 (SQL)


SELECT ステートメントと FROM 句の例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL 式に指定して使用します。

SQL ステートメント	内容
SELECT LastName, FirstName  FROM Employees;	Employees テーブルのすべてのレコードから LastName フィールドと First Name フィールドを指定した順に選択します。
SELECT Employees.*  FROM Employees;	Employees テーブルから、すべてのフィールドを選択します。
SELECT Count(PostalCode) AS Tally  FROM Customers;	Customers テーブルにある、PostalCode フィールドにデータを持つレコードの個数を数え、返されたフィールドに "Tally" という名前を付けます。
SELECT Last Name, Salary AS Current, Salary * 1.1 AS Proposed  FROM Employees;	社員の給与が 10% 昇給すると、いくらになるかを示します。元の Salary の値は、変更されません。
SELECT Last Name AS Name, Salary  FROM Employees;	Last Name フィールドに Name という名前を付けます。Salary というフィールド名は、Salary フィールドの名前として使用されます。
SELECT Count(*) AS [Total Employees], Avg(Salary)  AS [Average Salary], Max(Salary) AS [Maximum Salary]  FROM Employees;	社員数と給与の平均および最高額を取得します。
SELECT Last Name, 'has a salary of', Salary  FROM Employees;	各レコードの先頭のフィールドとして Last Name が、末尾のフィールドとして Salary が返されます。さらに、その間のフィールドに、"has a salary of" という文字列が返されます。


FROM 句 (SQL)

関連項目

SELECT ステートメントに表示されているフィールドを含む、テーブルまたはクエリーを指定します。

構文

SELECT fieldlist
FROM tableexpression [IN externaldatabase]

FROM 句を含む SELECT ステートメントの指定項目は、次のとおりです。

指定項目	内容

fieldlist	選択するフィールドの名前を指定します。指定するときは、フィールド名の別名、SQL 集合関数、選択述語 (ALL、DISTINCT、DISTINCTROW、TOP)、およびその他の SELECT ステートメントのオプションを指定できます。

tableexpression	取得するデータを含むテーブル (1 つまたは複数) を示す式を指定します。この式には、1 つのテーブル名、保存されたクエリー名、または複合テーブル名 (INNER JOIN 操作、LEFT JOIN 操作、または RIGHT JOIN 操作によって返されたテーブル) を指定できます。

externaldatabase	引数 tableexpression で指定したテーブルを含む外部データベースの絶対パス名を指定します。

解説

通常、SELECT ステートメントには、FROM 句を指定します。

引数 tableexpression に複数のテーブルを列挙する場合、どのような順序で記述してもかまいません。

外部データベースからデータを抽出する場合、IN 句を使用するよりアタッチ テーブルを使用した方が、パフォーマンスや操作性の点で優れています。

次の例では、Employees テーブルからデータを抽出します。

SELECT LastName, FirstName
FROM Employees;


関連項目

IN 句 (SQL)

INNER JOIN 操作 (SQL)

LEFT JOIN、RIGHT JOIN 操作 (SQL)

SQL を使ったデータの取得

SQL 集合関数 (SQL)

WHERE 句 (SQL)


IN 句 (SQL)

関連項目	例

Microsoft Jet データベース エンジンが接続できる、dBASE データベース、Paradox データベース、外部の Jet データベースなどの外部データベースのテーブルを示します。

構文

対象となるテーブルを示す場合

[SELECT | INSERT] INTO destination IN
{path | ["path" "type"] | ["" [type; DATABASE = path]]}

ソース テーブルを示す場合

FROM tableexpression IN
{path | ["path" "type"] | ["" [type; DATABASE = path]]}

IN 句を含む SELECT ステートメントの指定項目は、次のとおりです。

指定項目	内容

destination	データを挿入する外部テーブルの名前を指定します。

tableexpression	取得するデータを含む 1 つまたは複数のテーブルを示す式を指定します。この式には、単一のテーブル名、保存されたクエリー名、または INNER JOIN 操作、LEFT JOIN 操作、または RIGHT JOIN 操作によってテーブルを結合した結果セットを指定できます。

path	table を含むディレクトリまたはファイルを示す絶対パス名を指定します。

type	table を作成するデータベースが Jet データベースでない場合に、データベース名を指定します。たとえば、dBASE III、dBASE IV、Paradox 3.x、Paradox 4.x、Btrieve などを指定します。

解説

IN 句を使って接続できるのは、一度に 1 つの外部データベースだけです。

引数 path を使用してデータベースを含むディレクトリを参照する場合があります。たとえば、dBASE、FoxPro、Paradox などのテーブルを使っている場合、引数 path には .DBF ファイルまたは .DB ファイルを含むディレクトリを指定します。テーブルのファイル名には、引数 destination または tableexpression で指定したものが使われます。

Jet データベース以外のデータベースを指定するには、名前にセミコロン (;) を付け、シングル クォーテーション (') またはダブル クォーテーション (") で囲みます。たとえば、'dBASE IV;' や "dBASE IV;" のように指定します。

また、予約語 DATABASE を使うと、外部データベースを指定することができます。たとえば、次の 2 つの行は、どちらも同じテーブルを指定しています。

... FROM Table IN  "" [dBASE IV; DATABASE=C:\DBASE\DATA\SALES;];

... FROM Table IN "C:\DBASE\DATA\SALES" "dBASE IV;"

注

IN 句を使用するよりアタッチ テーブルを使用した方が、パフォーマンスや操作性の点で有利です。

予約語 IN は、式の中で比較演算子として使うことができます。詳細については、「In 演算子 (SQL)」を参照してください。


関連項目

FROM 句 (SQL)

In 演算子 (SQL)

INSERT INTO ステートメント (SQL)

SQL を使ったデータの取得

SELECT ステートメント (SQL)

SELECT...INTO ステートメント (SQL)

SQL 集合関数 (SQL)


IN 句の例

次の表に、IN 句を使って外部データベースからデータを抽出する方法を示します。Customers テーブルは、外部データベースに格納されているものとします。次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL 式に指定します。

外部データベース	SQL ステートメント
Microsoft Jet データベース	SELECT CustomerID FROM Customers IN MYDATA.MDB  WHERE CustomerID Like "A*"; MYDATA.MDB は、Customers テーブルを含む Jet データベース名です。
dBASE III または IV	SELECT [CustomerID] FROM Customer IN "C:\DBASE\DATA\SALES" "dBASE IV;" WHERE CustomerID Like "A*"; dBASE III テーブルからデータを抽出するときは、"dBASE IV;"の代わりに "dBASE III;" と指定します。
dBASE III または IV (DATABASE 構文を使用した場合)	SELECT [CustomerID] FROM Customer IN "" [dBASE IV; DATABASE=C:\DBASE\DATA\SALES;]  WHERE CustomerID Like "A*"; dBASE III テーブルからデータを抽出するときは、"dBASE IV;"の代わりに "dBASE III;" と指定します。
Paradox 3.x または 4.x	SELECT [CustomerID] FROM Customer IN "C:\PARADOX\DATA\SALES" "Paradox 4.x;" WHERE CustomerID Like "A*"; Paradox version 3.x テーブルからデータを抽出するときは、"Paradox 4.x;" の代わりに "Paradox 3.x;" と指定します。
Paradox 3.x または 4.x (DATABASE 構文を使用した場合)	SELECT [CustomerID] FROM Customer IN "" [Paradox 4.x;DATABASE=C:\PARADOX\DATA\SALES;]  WHERE CustomerID Like "A*"; Paradox version 3.x テーブルからデータを抽出するときは、"Paradox 4.x;" の代わりに "Paradox 3.x;" と指定します。
Btrieve	SELECT [CustomerID] FROM Customer IN "C:\BTRIEVE\DATA\SALES\FILE.DDF" "Btrieve;"  WHERE CustomerID Like "A*"; C:\BTRIEVE\DATA\SALES\FILE.DDF は、Btrieve データ定義ファイルとそのパスを示しています。
Btrieve (DATABASE 構文を使用した場合)	SELECT [CustomerID] FROM Customers IN "" [Btrieve;DATABASE=C:\BTRIEVE\DATA\SALES\FILE.DDF;]  WHERE CustomerID Like "A*"; C:\BTRIEVE\DATA\SALES\FILE.DDF は、Btrieve データ定義ファイルとそのパスを示しています。


WHERE 句 (SQL)

関連項目	例

FROM 句で指定されているテーブルから、SELECT ステートメント、UPDATE ステートメント、または DELETE ステートメントの結果に含まれるレコードの条件を指定します。

構文

SELECT fieldlist
FROM tableexpression
WHERE criteria

WHERE 句を含む SELECT ステートメントの指定項目は、次のとおりです。

指定項目	内容

fieldlist	抽出するフィールドの一覧を指定します。フィールド名には、フィールド名の別名、選択述語 (ALL、DISTINCT、DISTINCTROW、TOP)、およびその他の SELECT ステートメントのオプションを指定できます。

tableexpression	抽出するデータを含むテーブルを指定します。

criteria	クエリーの実行結果に含まれるレコードの条件式を指定します。

解説

Microsoft Jet データベース エンジンは、WHERE 句で指定された条件を満たすレコードを選択します。WHERE 句を指定しない場合、クエリーはテーブル内のすべての行を返します。また、クエリーで複数のテーブルを指定し、WHERE 句や JOIN 句を指定しない場合は、それらのテーブルの全レコードの直積集合を返します。

WHERE 句は省略できますが、この句を使う場合は FROM 句の後に指定します。たとえば、WHERE 句を使って、営業部の全社員 (WHERE Dept = 'Sales') を選択したり、18 歳から 30 歳までの顧客 (WHERE Age Between 18 And 30) を選択したりできます。

複数のテーブルで、JOIN 句を使用せずに SQL の結合操作を行うと、結果の Recordset オブジェクトを更新できなくなります。

WHERE 句は、HAVING 句に似ています。WHERE 句では、選択するレコードの条件を指定します。同様に、レコードが GROUP BY 句によってグループ化されている場合、HAVING 句はデータの条件を指定します。

GROUP BY 句でグループ化されるレコードを制限するには、WHERE 句を使います。

WHERE 句には、各種の式を使って、SQL ステートメントが返すレコードを指定します。たとえば、次の SQL ステートメントは、給料が $21,000 を超える社員をすべて選択します。

SELECT LastName, Salary
FROM Employees
WHERE Salary > 21000;

WHERE 句には、And、Or などの論理演算子で連結して指定できます。

スペースや記号を含むフィールド名を入力するときは、次のように名前を角かっこ ([ ]) で囲みます。

SELECT ProductID, [Units In Stock]
FROM Products
WHERE [Units In Stock] <= [Reorder Level];

引数 criteria に日付リテラルを指定する場合は、米国版以外の Jet データベース エンジンであっても、アメリカ形式の日付リテラルを使う必要があります。たとえば、1994 年 5 月 10 日は、日本の日付の形式では 94/10/05 ですが、アメリカ形式では 5/10/94 となります。日付リテラルは、シャープ記号 (#) で囲みます。

どの国のデータベースでも、1994 年 5 月 10 日という日付の入ったレコードを検索するには、次の SQL ステートメントを使います。

SELECT *
FROM Orders
WHERE ShippedDate = #5/10/94#;

Microsoft Windows の各国対応の設定値を認識する DateValue 関数を使うこともできます。たとえば、アメリカでのコードは次のようになります。

SELECT *
FROM Orders
WHERE ShippedDate = DateValue('5/10/94');

日本でのコードは次のようになります。

SELECT *
FROM Orders
WHERE ShippedDate = DateValue('10/5/94');


関連項目

IN 句 (SQL)

ORDER BY 句 (SQL)

SQL を使ったデータの取得

SELECT ステートメント (SQL)

SELECT...INTO ステートメント (SQL)

SQL 集合関数 (SQL)


WHERE 句の例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL 式に指定します。

SQL ステートメント	内容
SELECT LastName, FirstName  FROM Employees  WHERE LastName = 'King';	LastName フィールドが King のデータを探し、そのデータの LastName フィールドと FirstName フィールドを選択します。
SELECT LastName, FirstName  FROM Employees  WHERE LastName Like 'S*';	Last Name が S で始まる社員の Last Name フィールドと First Name フィールドを選択します。
SELECT LastName, Salary  FROM Employees  WHERE Salary Between 20000 And 30000;	Salary が $20,000 以上 $30,000 以下の社員を選択します。
SELECT LastName, Salary  FROM Employees  WHERE LastName Between 'Lon' And 'Tol';	文字コード順で、Last Name の最初の部分が Lon から Tol の間の名字を持つ社員を選択します( Lon と Tol の名字を持つ社員を含む)。たとえば、Tolstoy という名字は文字コード順で Tol の後になるので選択されません。
SELECT OrderID, OrderDate  FROM Orders  WHERE OrderDate Between #1-1-94# And #6-30-94#;	1994 年前半の Orders を選択します。
SELECT LastName, FirstName, City  FROM Employees  WHERE City In ('Interlaken', 'New York', 'Frankfurt');	Interlaken、New York、または Frankfurt に住んでいる社員を選択します。


GROUP BY 句 (SQL)

関連項目	例

指定したフィールドの中から同じ値を持つレコードを選択し、1 つのレコードにまとめます。SELECT ステートメントに、Sum 関数、Count 関数などの SQL 集合関数を指定すると、データごとに集計値を得ることができます。

構文

SELECT fieldlist
FROM table
WHERE criteria
GROUP BY groupfieldlist

GROUP BY 句を含む SELECT ステートメントの指定項目は、次のとおりです。

指定項目	内容

fieldlist	抽出するフィールドを指定します。フィールドには、フィールド名の別名、選択述語 (ALL、DISTINCT、DISTINCTROW、TOP)、およびその他の SELECT ステートメントのオプションを指定できます。

table	抽出するレコードを含むテーブルを指定します。詳細については、「FROM 句 (SQL)」を参照してください。

criteria	選択条件です。ステートメントに WHERE 句がある場合、Microsoft Jet データベース エンジンは、WHERE 句で示されている条件をレコードに適用し、値を 1 つにグループ化します。

groupfieldlist	レコードをグループ化するときに使用するフィールド名を 10 個まで指定できます。ここで指定したフィールド名の順序により、上位から下位へグループ化のレベルが決定されます。

解説

GROUP BY 句は、省略できます。

SELECT ステートメントで SQL 集合関数を使用していない場合、合計は省略されます。

GROUP BY フィールドに Null 値がある場合、それらは省略されずにグループ化されます。ただし、Null 値は SQL 集合関数で計算されません。

WHERE 句を使うと、グループ化する列を制限することができます。また、HAVING 句を使って、グループ化されたレコードにフィルタをかけることもできます。

メモ型または OLE オブジェクト型のデータを含まない限り、GROUP BY 句で指定されたフィールドは、SELECT ステートメントに含まれていない場合も、FROM 句で指定された任意のテーブルのフィールドを参照することができます。ただし、これは SELECT ステートメント内に最低 1 つの SQL 集合関数があることを前提とします。Jet データベース エンジンでは、メモ型フィールドまたは OLE オブジェクト型のフィールドに基づいてグループ化を行うことはできません。

SELECT ステートメントに指定したすべてのフィールドは、GROUP BY 句、または SQL 集合関数の引数に含まれている必要があります。

スペースや記号を含んでいるフィールド名を入力するときは、フィールド名を角かっこ ([ ]) で囲みます。

SELECT [CategoryID],
Sum([Units in Stock])
FROM Products
GROUP BY [CategoryID];


関連項目

HAVING 句 (SQL)

ORDER BY 句 (SQL)

SQL を使ったデータの取得

SELECT ステートメント (SQL)

SELECT...INTO ステートメント (SQL)

SQL 集合関数 (SQL)


GROUP BY 句の例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティに指定するか、または OpenRecordset メソッドの SQL 式に指定します。

SQL ステートメント	内容
SELECT Department, Count([Department]) AS Tally  FROM Employees  GROUP BY Department;	部署ごとに、部署名と所属する社員の数を取得します。
SELECT Title, Count([Title]) AS Tally  FROM Employees  WHERE Department = 'Sales'  GROUP BY Title;	販売部門の中で、役職に就いている社員の数を役職ごとに計算します。
SELECT Item, Sum(Units) AS Tally  FROM ItemsInStock  GROUP BY Item, Color;	品番と色による集計を行い、在庫数を計算します。


HAVING 句 (SQL)

関連項目	例

GROUP BY 句でグループ化されたレコードから、SELECT ステートメントで表示するレコードを指定します。GROUP BY 句によりデータが 1 つにまとめられ、HAVING 句の条件を満たすデータが表示されます。

構文

SELECT fieldlist
FROM table
WHERE selectcriteria
GROUP BY groupfieldlist
HAVING groupcriteria

HAVING 句を含む SELECT ステートメントの指定項目は、次のとおりです。

指定項目	内容

fieldlist	抽出するフィールドを指定します。フィールドには、フィールド名の別名、選択述語 (ALL、DISTINCT、DISTINCTROW、TOP)、およびその他の SELECT ステートメントのオプションを指定できます。

table	抽出するレコードを含むテーブルを指定します。詳細については、「FROM (SQL) 句」を参照してください。

selectcriteria	選択条件を指定します。ステートメントに WHERE 句がある場合、Microsoft Jet データベース エンジンは WHERE 句で示されている条件をレコードに適用し、値を 1 つにグループ化します。

groupfieldlist	レコードをグループ化するときに使用するフィールド名を 10 個まで指定できます。ここで指定したフィールド名の順序により、上位から下位へグループ化のレベルが決定されます。

groupcriteria	グループ化されたレコードのうち、表示するレコードを指定する式です。

解説

HAVING 句は、省略できます。

HAVING 句は、選択するレコードを決定する WHERE 句に似ています。HAVING 句の対象となるレコードは、GROUP BY 句によってグループ化された後のレコードです。

SELECT [CategoryID], Sum([Units in Stock])

FROM Products

GROUP BY [CategoryID]

HAVING Sum([Units in Stock]) > 100 AND ProductName LIKE "BOS*"

HAVING 句には、最大 40 個の式を And、Or などの論理演算子で連結して指定できます。


関連項目

GROUP BY 句 (SQL)

SQL を使ったデータの取得

SELECT ステートメント (SQL)

SELECT...INTO ステートメント (SQL)

SQL 集合関数 (SQL)


HAVING 句の例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL 式に指定します。

SQL ステートメント	内容
SELECT Title, Count([Title])  FROM Employees  WHERE Department = 'Production'  GROUP BY Title  HAVING Count(Title) > 50;	50 人以上の部下を持つ製造部門の役職を選択します。
SELECT Department, Count([Department])  FROM Employees  GROUP BY Department  HAVING Count(Department) > 100;	社員が 100 人以上の部署を選択します。


ORDER BY 句 (SQL)

関連項目	例

クエリーの結果のレコードを、指定された 1 つまたは複数のフィールドに基づいて、降順または昇順に並べ替えます。

構文

SELECT fieldlist
FROM table
WHERE selectcriteria
ORDER BY field1 [ASC | DESC ][, field2 [ASC | DESC ][, ...]]

ORDER BY 句を含む SELECT ステートメントの指定項目は、次のとおりです。

指定項目	内容

fieldlist	抽出するフィールドを指定します。そのとき、フィールド名の別名、選択述語 (ALL、DISTINCT、DISTINCTROW、TOP)、およびその他の SELECT ステートメントのオプションを指定できます。

table	抽出するレコードを含むテーブルを指定します。詳細については、「FROM 句 (SQL)」を参照してください。

selectcriteria	選択条件を指定します。ステートメントに WHERE 句がある場合、Microsoft Jet データベース エンジンは、WHERE 句で示されている条件をレコードに適用します。

field1, field2	並べ替えるレコードを含むフィールドを指定します。

解説

ORDER BY 句は、省略できます。ORDER BY 句を使用していない場合、データは並べ替えられないまま表示されます。

特に指定しない限り、並べ替え順序は昇順になりますが、並べ替えるフィールドの最後に予約語 ASC を挿入して、昇順の並べ替えを指定することもできます。次の 2 つの例では、どちらも名字の順序で社員を並べ替えています。

SELECT LastName, FirstName
FROM Employees
ORDER BY LastName;

SELECT LastName, FirstName
FROM Employees
ORDER BY LastName ASC;

降順で並べ替えを行うときは、フィールドの最後に必ず予約語 DESC を指定します。次の例では、Salary を選択し、さらにそれを降順で並べ替えています。

SELECT LastName, Salary
FROM Employees
ORDER BY Salary DESC, LastName;

ORDER BY 句に、メモ型や OLE オブジェクト型のデータを含むフィールドを指定すると、エラーになります。Microsoft Jet データベース エンジンは、このような型のデータを含むフィールドを並べ替えません。

通常、ORDER BY 句は、SQL ステートメントの最後に指定される項目です。

ORDER BY 句には、複数のフィールドを指定できます。レコードは、まず、予約語 ORDER BY の後に指定した最初のフィールドによって並べ替えられます。次に、そのフィールドの値が同一であるレコードが、第 2 フィールド値によって並べ替えられます。


関連項目

ALL、DISTINCT、DISTINCTROW、TOP 述語 (SQL)

GROUP BY 句 (SQL)

HAVING 句 (SQL)

SQL を使ったデータの取得

SELECT ステートメント (SQL)

SELECT...INTO ステートメント (SQL)

SQL 集合関数 (SQL)


ORDER BY 句の例

次の SQL ステートメントの例は、ORDER BY 句の使い方を示しています。最初の例では、文字コード順に並べ替え、次の例ではカテゴリによって並べ替えています。

SQL ステートメント	内容
SELECT Last Name, First Name  FROM Employees  ORDER BY Last Name DESC;	レコードを Last Name によって降順 (Z-A) に並べ替えます。
SELECT CategoryID, ProductName, [Unit Price]  FROM Products  ORDER BY CategoryID, ProductName;	まずカテゴリ ID によって並べ替え、次に製品名によって並べ替えます。


ALL、DISTINCT、DISTINCTROW、TOP 述語 (SQL)

関連項目	例

SQL クエリーによって選択されたレコードを指定します。

構文

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM table

これらの述語を持つ SELECT ステートメントの指定項目は、次のとおりです。

指定項目	内容
ALL	述語をまったく使用していない状態にします。Microsoft Jet データベース エンジンは、 SQL ステートメントの条件を満たすレコードをすべて選択します。次の 2 つの例は、どちらも Employees テーブルからすべてのレコードを返します。 SELECT ALL * FROM Employees ORDER BY EmployeeID; SELECT * FROM Employees ORDER BY EmployeeID;
DISTINCT	選択したフィールドの中に、重複するデータがある場合、そのデータを持つレコードを省略します。クエリーの実行結果に含まれる値は、SELECT ステートメントに指定された各フィールドの各値が一意である必要があります。たとえば、Employees テーブルの中に同じ Last Name を持つ社員が数人いるとします。2 つのレコードの LastName フィールドが、どちらも Smith という Last Name を含んでいる場合、次の SQL ステートメントはこれらのレコードのうち一方だけを返します。 SELECT DISTINCT LastName FROM Employees; DISTINCT 述語を省略すると、クエリーは両方のレコードを返します。 また、SELECT 句に複数のフィールドが含まれている場合、そのフィールドから抽出する値の組み合わせは、クエリーの実行結果に含まれるレコードに対して一意でなければなりません。 DISTINCT 述語を使用したクエリーの出力は更新できません。また、他のユーザーが行った変更は反映されません。
DISTINCTROW	重複するレコード (フィールドではありません。) のデータを省略します。たとえば、CustomerID フィールドを使用して Customers テーブルと Orders テーブルを結合するクエリーを作成したとします。この場合、Customers テーブルでは CustomerID フィールドは重複しませんが、Orders テーブルでは重複するデータを持つ可能性があります。同じ顧客が何回も同じ商品を注文することがあるためです。次の SQL ステートメントでは DISTINCTROW 述語を使い、最低 1 つの注文をした会社の一覧を作成する方法を示しています。ただし、注文の詳細は含まれていません。 SELECT DISTINCTROW CompanyName FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID ORDER BY CompanyName; DISTINCTROW 述語を省略すると、クエリーは複数の注文をした会社に対して、注文ごとに複数の行を作成します。 DISTINCTROW 述語は、このクエリー内で使用されるテーブルから、すべてではなく、いくつかのフィールドを選択した場合のみ有効です。クエリーに 1 つのテーブルしか含まれていない場合、またはすべてのテーブルからフィールドを出力する場合、DISTINCTROW 述語は無視されます。
TOP	ORDER BY 句で指定された範囲内で、上位または下位のレコードの個数を返します。たとえば、1994 年度の生徒から上位 25 人を選ぶとします。 SELECT TOP 25 FirstName, LastName FROM Students WHERE [Graduation Year] = 1994 ORDER BY [Grade Point Average] DESC; ORDER BY 句を省略すると、クエリーは Students テーブルから WHERE 句の条件を満たすレコードを無作為に 25 人分選択します。 TOP 述語を使うと、同じ値であればどちらのレコードも選択します。次の例では、25 番めの成績と 26 番めの成績が同じ値の場合、クエリーは 26 人分のレコードを選択します。 予約語 PERCENT を使うと、ORDER BY 句で指定された範囲内で、上位または下位のレコードを百分率で指定して、返すことができます。前の例でいえば、上位 25 人の生徒の代わりに上位 10% に属する生徒を選択できます。 SELECT TOP 10 PERCENT FirstName, LastName FROM Students WHERE [Graduation Year] = 1994 ORDER BY [Grade Point Average] DESC; TOP 述語の後には、符号なしの整数型 (Integer) の値を指定する必要があります。 TOP 述語は、クエリーが行った更新には影響を与えません。
table	抽出するレコードを含むテーブルです。


関連項目

SQL を使ったデータの取得


ALL、DISTINCT、DISTINCTROW、TOP 述語の例

次の例では、Customers および Orders の 2 つのテーブルを使います。

Customers テーブル

FirstName	CustomerID

Bob	1

Adam	2

Beverly	3

Bob	4

Orders テーブル

CustomerID	OrderID

1	1

1	2

2	3

2	4

2	5

4	6

4	7

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL 式に指定します。

SQL ステートメント	結果	更新
SELECT ALL FirstName  FROM Customers INNER JOIN Orders  ON Customers.CustomerID = Orders.CustomerID;	Bob Bob Adam Adam Adam Bob Bob	する
SELECT DISTINCT FirstName  FROM Customers INNER JOIN Orders  ON Customers.CustomerID = Orders.CustomerID;	Bob Adam	しない
SELECT DISTINCTROW FirstName  FROM Customers INNER JOIN Orders  ON Customers.CustomerID = Orders.CustomerID;	Bob Adam Bob	する
SELECT TOP 5 FirstName  FROM Customers INNER JOIN Orders  ON Customers.CustomerID = Orders.CustomerID ORDER BY Orders.OrderID	Bob Bob Adam Adam Adam	する


DELETE ステートメント (SQL)

関連項目	例

FROM 句で指定されているテーブルから、WHERE 句の条件を満たすレコードを削除する、削除クエリーを作成します。

構文

DELETE [table.*]
FROM tableexpression
WHERE criteria

DELETE ステートメントの指定項目は、次のとおりです。

指定項目	内容

table	削除するレコードを含むテーブルの名前を指定します。この引数は、省略できます。

tableexpression	削除するレコードを含む 1 つまたは複数のテーブルの名前を指定します。この式には、単一のテーブル名、あるいは INNER JOIN 操作、LEFT JOIN 操作、または RIGHT JOIN 操作によってテーブルを結合した結果セットを指定できます。

criteria	削除するレコードを示す式を指定します。

解説

DELETE ステートメントは、削除するレコードが多い場合に特に便利です。

複数テーブルの DELETE ステートメントには、table が必要です。レコードを削除する対象となるテーブルを複数指定する場合、どのテーブルにも一対多リレーションシップの主キーが含まれてる必要があります。

テーブル内のレコードをすべて削除する場合は、このような削除クエリーを実行するより、テーブル自体を削除した方が効率的です。Execute メソッドに DROP ステートメントを指定すると、データベースからテーブルを削除できます。ただし、テーブルを削除するとテーブルの構造も失われます。一方、DELETE ステートメントを使うとデータだけが削除され、フィールド属性、インデックスなど、テーブル構造とすべてのテーブル プロパティはそのまま残ります。

DELETE ステートメントを使うと、1 つのテーブルのレコード、または一対多リレーションの多の側のレコードだけが削除されます。クエリー内での連鎖削除操作では、リレーションシップの多の側のレコードだけが削除されます。たとえば、Customers テーブルと Orders テーブルの一対多リレーションシップで、Orders テーブルが多の側である場合、Orders テーブルだけが削除されます。

削除クエリーは、特定のフィールドではなくレコード全体を削除します。特定のフィールドの値を削除したい場合、値を Null 値に変える更新クエリーを作成します。

重要

削除クエリーを使ってレコードを削除すると、削除したレコードを元に戻すことはできません。削除したレコードを調べるには、同じ選択式を持つ選択クエリーの実行結果を調べてから、削除クエリーを実行します。

データのバックアップは常に取っておいてください。誤ってレコードを削除した場合にも、バックアップ コピーからデータを回復することができます。


関連項目

DROP ステートメント (SQL)

FROM 句 (SQL)

IN 句 (SQL)

INNER JOIN 操作 (SQL)

SQL を使ったデータの取得

SELECT ステートメント (SQL)

UPDATE ステートメント (SQL)

WHERE 句 (SQL)


DELETE ステートメントの例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL 式に指定します。

SQL ステートメント	内容
DELETE * FROM Employees  WHERE Title = 'Trainee';	役職が Trainee である社員のレコードをすべて削除します。FROM 句に 1 つのテーブルしかない場合は、DELETE ステートメントにテーブル名を指定する必要はありません。
DELETE Employees.*  FROM Employees INNER JOIN Payroll  ON Employees.EmployeeID = Payroll.EmployeeID  WHERE Title = 'Trainee';	役職が Trainee で、Payroll テーブルにレコードがある社員レコードをすべて削除します。Employees テーブルと Payroll テーブルは一対一リレーションを持っています。


INNER JOIN 操作 (SQL)

関連項目	例

2 つのテーブルの共通するフィールド内で、値が一致したレコードをすべて取り出して結合します。

構文

FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2

INNER JOIN 操作の指定項目は、次のとおりです。

指定項目	内容

table1, table2	結合するレコードを含むテーブルを指定します。

field1, field2	結合するフィールドを指定します。フィールドが数字でない場合は、同一のデータ型で、同種のデータが含まれている必要があります。ただし、これらのデータは同じ名前でなくてもかまいません。

compopr	テーブルの関連を示す、任意の比較演算子 (“=”、“<”、“>”、“<=”、“>=”、または“<>”) を指定します。

解説

INNER JOIN 操作は、FROM 句で使うことができます。INNER JOIN 操作は、等結合 (内部結合) を作成します。等結合は、最も一般的な結合で、2 つのテーブルの共通フィールド内に値が一致したレコードがある場合に、両方のテーブルからそのレコードを取得して結合します。

Departments テーブルと Employees テーブルで INNER JOIN 操作を行うと、各部署の社員をすべて選択できます。これに対し、全部署 (その部署に所属する社員がいない場合でも)、または全社員 (どの部署にも配置されない社員がいる場合も含みます) を選択するときは、LEFT JOIN 操作または RIGHT JOIN 操作を使い、外部結合を作成します。

メモ型や OLE オブジェクト型のデータを含むフィールドどうしを結合しようとすると、エラーが発生します。

2 つの数値フィールドは、異なるデータ型であっても、結合できます。たとえば、Field オブジェクトの Size プロパティを整数型 (Integer) に設定した Number フィールドと Counter フィールドは結合できます。

次の例は、CategoryID フィールドで Categories テーブルと Products テーブルを結合する方法を示しています。

SELECT [Category Name], ProductName
FROM Categories INNER JOIN Products
ON Categories.CategoryID = Products.CategoryID;

上の例で、CategoryID は結合フィールドですが、クエリーの結果には含まれません。これは、CategoryID が SELECT ステートメントに指定されていないからです。結合フィールドを結果に含めるには、SELECT ステートメントにフィールド名を指定します。上の例では、Categories.CategoryID を指定します。

次の構文を使うと、JOIN ステートメントで、いくつかの ON 句を組み合わせることができます。

SELECT fields
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field1 AND
ON table1.field2 compopr table2.field2) OR
ON table1.field3 compopr table2.field3)];

次の構文を使うと、JOIN ステートメントをネストできます。

SELECT fields
FROM table1 INNER JOIN
(table2 INNER JOIN [( ]table3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
ON table3.field3 compoprtablex.fieldx)]
ON table2.field2 compopr table3.field3)
ON table1.field1 compopr table2.field2;

LEFT JOIN 操作または RIGHT JOIN 操作を、INNER JOIN 操作の内部にネストさせることはできます。INNER JOIN 操作を、LEFT JOIN 操作または RIGHT JOIN 操作の内部にネストさせることはできません。


INNER JOIN 操作の例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL 式に指定します。

SQL ステートメント	内容
SELECT DISTINCTROW  Sum(UnitPrice * [Quantity]) AS [Sales],  FirstName & " " & LastName AS Name  FROM Employees INNER JOIN (Orders INNER JOIN OrderDetails  ON Orders.OrderID = OrderDetails.OrderID)  ON Employees.EmployeeID = Orders.EmployeeID  GROUP BY FirstName & " " & LastName;	2 つの等結合を作成します。1 つは Order Details テーブルと Orders テーブルの結合、もう 1 つは Orders テーブルとEmployees テーブルの結合です。Employees テーブルには売上データがなく、Order Details テーブルには社員データがないので、このクエリーを実行する必要があります。クエリーによって、全社員の総売上を取得します。


関連項目

LEFT JOIN、RIGHT JOIN 操作 (SQL)

TRANSFORM ステートメント (SQL)

UNION 操作 (SQL)


INSERT INTO ステートメント (SQL)

関連項目	例

レコードをテーブルに追加します。このようなクエリーを、追加クエリーと呼びます。

構文

複数のレコードを追加する追加クエリーの場合は、次のようになります。

INSERT INTO target [IN externaldatabase] [(field1[, field2[, ...]])]
SELECT [source.]field1[, field2[, ...]
FROM tableexpression

単一のレコードを追加する追加クエリーの場合は、次のようになります。

INSERT INTO target [(field1[, field2[, ...]])]
VALUES (value1[, value2[, ...])

INSERT INTO ステートメントの指定項目は、次のとおりです。

指定項目	内容

target	レコードを追加するテーブルまたはクエリーを指定します。

externaldatabase	外部データベースのパス名を指定します。パスの記述については、「IN 句 (SQL)」を参照してください。

source	レコードのコピー元のテーブルまたはクエリーを指定します。

field1, field2	引数 target の後に指定する場合は、データを追加するフィールドの名前を指定します。引数 source の後に指定する場合は、データを抽出するフィールドの名前を、それぞれ指定します。

tableexpression	レコードを挿入する 1 つまたは複数のテーブルの名前を指定します。この式には、単一のテーブル、保存されたクエリー、あるいは INNER JOIN 操作、LEFT JOIN 操作、または RIGHT JOIN 操作によってテーブルを結合した結果セットを指定できます。

value1, value2	指定された新規レコードのフィールドに挿入する値を指定します。value1 は追加されるレコードの field1 に、value2 は field2 に挿入されます。つまり、それぞれの値は対応するフィールドに挿入されます。値と値の間をカンマで区切り、テキスト フィールドをダブル クォーテーション (" ") で囲みます。

解説

INSERT INTO ステートメントで、テーブルに単一レコードを追加する場合、レコードの各フィールドに対して、フィールド名と値の両方を指定する必要があります。すべてのフィールドを指定しない場合、指定されていない列には既定値または Null 値が挿入されます。レコードはテーブルの最後に追加されます。

複数のレコードを追加する場合、INSERT INTO ステートメントで SELECT ... FROM 句を使うと、別のテーブルやクエリーからレコードの集合を追加できます。この場合、SELECT 句には、target に指定したテーブルに追加するフィールドを指定します。

追加先のテーブル (target) および追加元のテーブル (source) には、テーブルまたはクエリーを指定できます。追加先としてクエリーを指定すると、Microsoft Jet データベース エンジンは、そのクエリーで指定したすべてのテーブルにレコードを追加します。

予約語 INSERT INTO は省略できますが、指定する場合は、SELECT ステートメントの前に記述します。

主キーを含むテーブルにレコードを追加する場合は、追加するレコードのどのフィールドにも、Null 値以外の重複しない値が含まれないようにします。重複する主キーを持つレコードは、追加されません。

カウンタ型のフィールドを持つテーブルにレコードを追加する場合に、追加したレコードの番号を付け直すときは、追加クエリーにそのカウンタ型のフィールドを指定しないでください。

別のデータベースのテーブルにレコードを追加する場合、IN 句を使います。

新規テーブルを作成する場合は、INSERT INTO ステートメントではなく、SELECT... INTO ステートメントを使ってテーブル作成クエリーを作成します。

追加クエリーを実行する前に追加されるレコードを確認する場合、同じ抽出条件で選択クエリーを実行して、その結果を確認します。

追加クエリーは、追加元のテーブルから別のテーブルにレコードをコピーします。追加元のテーブルは、追加クエリーの影響を受けません。

追加するレコードとして別のテーブルの既存のレコードを指定する代わりに、VALUES 句を使って、新しく 1 つのレコードの各フィールドの値を指定することができます。フィールド名の指定を省略する場合、VALUES 句には、テーブル内のすべてのフィールド値を指定する必要があります。この場合、すべてのフィールド値を指定しないと、その INSERT INTO ステートメントは失敗します。新しいレコードを作成して追加する場合は、追加するレコードごとに、VALUES 句を指定した INSERT INTO ステートメントを 1 つずつ作成してください。


関連項目

FROM 句 (SQL)

SQL を使ったデータの取得

WHERE 句 (SQL)


INSERT INTO ステートメントの例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL 式に指定します。

SQL ステートメント	内容
INSERT INTO Customers  SELECT [New Customers].*  FROM [New Customers];	New Customers テーブルのすべてのレコードを選択し、Customers テーブルに追加します。各列を指定しない場合、SELECT 句で指定するテーブルの列と INSERT INTO ステートメントで指定するテーブルの列は同じ名前である必要があります。
INSERT INTO Employees (FirstName, LastName, Title)  VALUES ("Harry", "Washington", "Trainee");	Employees テーブルに新規レコードを作成します。
INSERT INTO Employees  SELECT Trainees.*  FROM Trainees  WHERE HireDate < Now() - 30;	30 日以上前に雇われたすべての Trainees を選択し、選択されたレコードを Employees テーブルに追加します。


LEFT JOIN、RIGHT JOIN 操作 (SQL)

関連項目	例

これらの操作は FROM 句で使用され、テーブルのレコードが結合されます。

構文

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 compop table2.field2

LEFT JOIN 操作と RIGHT JOIN 操作の指定項目は、次のとおりです。

指定項目	内容

table1, table2	結合するレコードを含むテーブルを示します。

field1, field2	結合されるフィールドを示します。これらのフィールドは、同一のデータ型で、同種のデータが含まれる必要があります。ただし、これらのデータは同じ名前でなくてもかまいません。

compopr	関連を示す、任意の比較演算子 (“=”、“<”、“>”、“<=”、“>=”、または“<>”) を指定します。

解説

左外部結合を作成する場合は、LEFT JOIN 操作を使います。左外部結合では、第 2 (右側) のテーブルのレコードに同じ値がない場合も、最初 (左側) のテーブルのすべてのレコードが含まれます。

右外部結合を作成する場合は、RIGHT JOIN 操作を使います。右外部結合では、最初 (左側) のテーブルに同じ値がない場合も、第 2 (右側) のテーブルのすべてのレコードが含まれます。

たとえば、Departments テーブル (左) と Employees テーブル (右) を指定して LEFT JOIN 操作を使うと、どの社員も配置されていない部署も含めて、全部署を選択できます。どの部署にも配置されていない社員も含めて、全社員を選択する場合は、RIGHT JOIN 操作を使います。

次の例では、CategoryID フィールドによって Categories テーブルと Products テーブルを結合します。このクエリーは、どの製品も持たない部署も含めて、全部署の一覧を作成します。

SELECT [Category Name],
ProductName
FROM Categories LEFT JOIN Products
ON Categories.CategoryID = Products.CategoryID;

この例では、CategoryID が結合フィールドですが、このフィールドは SELECT ステートメントで指定されていないので、クエリーの結果には含まれません。クエリーの結果に結合フィールドも含める場合、SELECT ステートメントにそのフィールド名を指定します。この場合、Categories.CategoryID を指定します。

注

結合フィールドのデータが一致するレコードだけを返すクエリーを作成するには、INNER JOIN 操作を使います。

内部結合、左結合、右結合はネストできます。詳細については、「INNER JOIN 操作 (SQL)」を参照してください。

メモ型、または OLE オブジェクト型データを含むフィールドを結合しようとすると、エラーが発生します。


LEFT JOIN、RIGHT JOIN 操作の例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL 式に指定します。

SQL ステートメント	内容
SELECT [Department Name],  FirstName & " " & LastName AS Name  FROM Departments LEFT JOIN Employees  ON Departments.[Department ID] = Employees.[Department ID]  ORDER BY [Department Name];	社員を持たない部署を含む、全部署を選択します。
SELECT LastName & ", " & FirstName AS Name,  [Department Name]  FROM Departments RIGHT JOIN Employees  ON Departments.[Department ID] = Employees.[Department ID]  ORDER BY [Last Name] & ", " & [First Name];	どの部署にも配置されない社員を含む、全社員を選択します。


関連項目

INNER JOIN 操作 (SQL)

UNION 操作 (SQL)


PARAMETERS 宣言 (SQL)

関連項目	例

パラメータ クエリー内の各パラメータについて、その名前とデータ型を宣言します。

構文

PARAMETERS name datatype [, name datatype [, ...]]

PARAMETERS 宣言の指定項目は、次のとおりです。

指定項目	内容

name	パラメータの名前を指定します。この名前が Parameter オブジェクトの Name プロパティに割り当てられ、Parameters コレクション内でオブジェクトを識別するために使用されます。引数 name に文字列を指定すると、アプリケーションでクエリーが実行されたときに、この文字列がダイアログボックスに表示されます。テキストにスペースや記号が含まれているときは、角かっこ ([ ]) で囲みます。たとえば、[Low price] および [Begin report with which month?] は、引数 name に有効な文字列です。

datatype	パラメータのデータ型を指定します。

解説

クエリーを定期的に実行するには、PARAMETERS 宣言を使ってパラメータ クエリーを作成します。パラメータ クエリーを使うと、クエリーの抽出条件の変更操作を自動化できます。パラメータ クエリーを使うときは、クエリーが実行されるたびに、パラメータにコードを指定する必要があります。

PARAMETERS 宣言は省略できますが、指定する場合は SELECT ステートメントなどの他のステートメントの前に記述します。

この宣言の中に複数のパラメータを含める場合は、パラメータとパラメータの間をカンマで区切ります。次の例では、2 つのパラメータが指定されています。

PARAMETERS [Low price] Currency, [Beginning date] DateTime;

WHERE 句や HAVING 句では、datatype の代わりに name を使用できます。次の例では、パラメータが 2 つ指定され、条件が Orders テーブルのレコードに適用されています。

PARAMETERS [Low price] Currency,
[Beginning date] DateTime;
SELECT OrderID, [Order Amount]
FROM Orders
WHERE [Order Amount] > [Low price]
AND OrderDate >= [Beginning date];

次の例は、Microsoft Visual Basic のプログラムでのパラメータの使い方を示しています。

Dim SQL As String, Qd as QueryDef, Rs as Recordset

SQL = "PARAMETERS [Low price] Currency, " _
& " 	[Beginning date] DateTime; " _
& " 	SELECT OrderID, [Order Amount] " _
& " 	FROM Orders " _
& " 	WHERE [Order Amount] > [Low price] " _
& " 	AND OrderDate >= [Beginning date];"

Set Qd = Db.CreateQueryDef("MyParameterQuery", SQL)

Qd.Parameters![Low Price] = 1.99

Qd.Parameters![Beginning date] = "#12/31/95#"

Set Rs = Qd.OpenRecordset()


関連項目

パラメータ クエリーの作成


PARAMETERS 宣言の例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL 式に指定します。

SQL ステートメント	内容
PARAMETERS [Enter a LastName:] Text;  SELECT *  FROM Employees  WHERE LastName =  [Enter a LastName:];	社員の LastName の入力を要求し、クエリーの条件として使います。
PARAMETERS [Enter a CategoryID:] Value;  SELECT DISTINCTROW  CategoryID, ProductName,  Count[Order Details].OrderID] AS Tally  FROM Products INNER JOIN OrderDetails  ON Products.Product ID = Order Details.ProductID  GROUP BY CategoryID, ProductName  HAVING CategoryID = [Enter a CategoryID:];	Category ID の入力を要求し、クエリーの条件として使います。


PROCEDURE 句 (SQL のみ)

関連項目	例

クエリーの名前および省略可能なパラメータを定義します。

構文

PROCEDURE name [param1 datatype[, param2 datatype[, ...]]

PROCEDURE 句の指定項目は、次のとおりです。

指定項目	内容

name	名前付け規則に従って記述した、プロシージャの名前を指定します。

param1, param2	フィールド名またはパラメータを指定します。次に例を示します。

PROCEDURE Sales_By_Country [Beginning Date] DateTime, [Ending Date] DateTime;

詳細については、「PARAMETERS 宣言 (SQL)」を参照してください。

datatype	13 の主な Microsoft Jet データベース エンジン SQL のデータ型、またはそれに相当するデータ型から選択したデータ型を 1 つ指定します。

解説

SQL プロシージャは、PROCEDURE 句 (プロシージャの名前を定義する部分)、パラメータの定義（省略可能）、1 つの SQL ステートメントから構成されます。たとえば、Get_Part_Number プロシージャを使用して、指定された part number を抽出するクエリーを実行できます。

注

PROCEDURE 句で param と datatype によって複数のフィールドを定義する場合は、それらをカンマで区切ってください。

PROCEDURE 句は SQL ステートメント (たとえば SELECT ステートメントや UPDATE ステートメント) の前に記述します。


関連項目

パラメータ クエリーの作成


PROCEDURE 句の例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティまたは OpenRecordset メソッドの SQL 式に指定します。

SQL ステートメント	内容
PROCEDURE Category_List;  SELECT DISTINCTROW  [Category Name], CategoryID  FROM Categories  ORDER BY [Category Name];	クエリーに Category_List という名前を付けます。
PROCEDURE Summary  [Beginning Date] DATETIME,  [Ending Date] DATETIME;  SELECT DISTINCTROW  ShippedDate, OrderID, EmployeeID,  Format(ShippedDate, "yyyy") AS Year  FROM Orders  WHERE ShippedDate  Between [Beginning Date] And [Ending Date];	クエリーに Summary という名前を付け、2 つのパラメータを指定します。PROCEDURE 句の代わりに、次のような PARAMETERS 宣言も使えます。 PARAMETERS [Beginning Date] DateTime, [Ending Date] DateTime;


SELECT...INTO ステートメント (SQL)

関連項目	例

テーブル作成クエリーを作成します。

構文

SELECT field1 [, field2[, ...]] INTO newtable [IN externaldatabase]
FROM source

SELECT...INTO ステートメントの指定項目は、次のとおりです。

指定項目	内容

field1, field2	新規テーブルにコピーするフィールドの名前を指定します。

newtable	作成するテーブルの名前を指定します。テーブル名は名前付け規則に従っている必要があります。newtable に既存のテーブルと同じ名前を指定すると、トラップできるエラーが発生します。

externaldatabase	外部データベースがあるパス名を指定します。詳細については、「IN 句 (SQL)」を参照してください。

source	選択されるレコードを含んでいるテーブルの名前を指定します。このテーブル名には、単一テーブルまたはクエリーを指定します。

解説

テーブル作成クエリーを使うと、レコードの保管、テーブルのバックアップコピーの作成、他のデータベースへのエクスポート、一定期間内のデータをレポートにまとめるためのコピーの作成などを行うことができます。たとえば、毎月同じテーブル作成クエリーを実行し、地域別での月間売上レポートを作成できます。

注

新規テーブルには、主キーを定義できます。テーブルを作成すると、その中のフィールドはクエリーの基となるテーブルのデータ型やフィールド サイズを継承しますが、それ以外のフィールドのプロパティやテーブルのプロパティは継承されません。

既存のテーブルにデータを追加するときは、追加クエリーではなく、INSERT INTO ステートメントを使います。

テーブル作成クエリーを実行する前に、どのレコードが選択されるかを確認したい場合は、同じ選択条件を指定した SELECT ステートメントを実行し、その結果を調べます。


関連項目

ALL、DISTINCT、DISTINCTROW、TOP 述語 (SQL)

FROM 句 (SQL)

IN 句 (SQL)

SQL を使ったデータの取得

SELECT ステートメント (SQL)

UNION 操作 (SQL)

WHERE 句 (SQL)


SELECT...INTO ステートメントの例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL 式に指定します。

SQL ステートメント	内容
SELECT Employees.* INTO [Emp Backup]  FROM Employees;	Employees テーブルのfレコードをすべて選択し、Emp Backup という新規テーブルにコピーします。
SELECT Employees.FirstName, LastName  INTO Trainees  FROM Employees  WHERE  =Title 'Trainee';	役職が Trainee である社員のレコードだけを持つ、'Trainee' という新規テーブルを作成します。
SELECT Employees.* INTO Employees IN "BACKUP.MDB"  FROM Employees;	Employees テーブルのコピーを作成し、このテーブルを BACKUP.MDB データベースに入れます。
SELECT Employees.*, Salary INTO Trainees  FROM Employees INNER JOIN Payroll  ON Employees.EmployeeID = Payroll.EmployeeID  WHERE Title = 'Trainee';	社員データと社員名簿データを含む新規テーブルを作成します。Employees テーブルとPayroll テーブルは、一対一で対応しています。作成されたテーブルには、Employees テーブルのすべてのデータと Payroll テーブルの Salary フィールドが含まれます。


TRANSFORM ステートメント (SQL)

関連項目	例

クロス集計クエリーを作成します。

構文

TRANSFORM aggfunction
selectstatement
PIVOT pivotfield [IN (value1[, value2[, ...]])]

TRANSFORM ステートメントの指定項目は、次のとおりです。

指定項目	内容

aggfunction	選択されたデータに対して使う SQL 集合関数を指定します。

selectstatement	SELECT ステートメントを指定します。

pivotfield	クエリーの結果生じるレコードセットの中で列見出しの作成に使う、フィールドまたは式を指定します。

value1, value2	列見出しの作成に使う固定値を指定します。

解説

クロス集計クエリーを使ってデータを集計する場合は、指定されたフィールドや式から列見出しとして使う値を選択できるので、選択クエリーを使うより簡潔な形式でデータを表示できます。

TRANSFORM ステートメントは省略できますが、指定する場合は、通常 SQL 文字列の先頭に記述します。TRANSFORM ステートメントは、フィールドを行見出しとして指定する SELECT ステートメントや行のグループ化を指定する GROUP BY 句の前に記述します。また、WHERE 句など、選択や並べ替えの条件を指定する句を含めることもできます。

引数 pivotfield に返される値は、クエリーの結果セットの列見出しとして使われます。たとえば、クロス集計クエリーで月間売上を作成すると 12 個の列が作成されます。IN 句を追加すると、指定した固定値 (value1, value2) から見出しを作成するように制限できます。対応するデータのない固定値を指定して列を追加することもできます。


TRANSFORM ステートメントの例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティまたは OpenRecordset メソッドの SQL 式に指定します。

SQL ステートメント	内容
PARAMETERS [Sales for which year?] LONG;  TRANSFORM Sum(OrderDetails.Quantity * (OrderDetails. UnitPrice - (OrderDetails.Discount / 100) * OrderDetails. UnitPrice)) AS Sales  SELECT ProductName  FROM Orders INNER JOIN (Products INNER JOIN OrderDetails  ON Products.ProductID = OrderDetails.ProductID) ON Orders.Order D = OrderDetails.OrderID  WHERE DatePart("yyyy", OrderDate) = [Sales for which year?]  GROUP BY Product Name  ORDER BY Product Name  PIVOT DatePart("m", Order Date);	ユーザーが指定した年の月別製品売上を示す、クロス集計クエリーを作成します。月は列の左から右へ返され、製品名は行の上から下へ返されます。
PARAMETERS [Sales for which year?] LONG;  TRANSFORM Sum(OrderDetails.Quantity * (OrderDetails. UnitPrice - (OrderDetails.Discount / 100) * OrderDetails. UnitPrice)) AS Sales  SELECT CompanyName  FROM Orders INNER JOIN  ((Suppliers INNER JOIN Products ON Suppliers.SupplierID = Products.SupplierID)  INNER JOIN OrderDetails ON  Products.ProductID = OrderDetails.ProductID)  ON Orders.OrderID = OrderDetails.OrderID  WHERE DatePart("yyyy", OrderDate) = [Sales for which year?]  GROUP BY CompanyName  ORDER BY CompanyName  PIVOT "Qtr " & DatePart("q", OrderDate)  In ('Qtr 1', 'Qtr 2', 'Qtr 3', 'Qtr 4');	ユーザーが指定した年の、メーカーの四半期別製品売上を示す、クロス集計クエリーを作成します。四半期は列の左から右へ返され、メーカーは行の上から下へ返されます。


関連項目

Execute メソッド

FROM 句 (SQL)

INNER JOIN 操作 (SQL)

ORDER BY 句 (SQL)


UPDATE ステートメント (SQL)

関連項目	例

指定した抽出条件に基づいて、指定したテーブル内のフィードの値を変更する更新クエリーを作成します。

構文

UPDATE table
SET newvalue
WHERE criteria;

UPDATE ステートメントの指定項目は、次のとおりです。

指定項目	内容

table	変更するデータを含むテーブルの名前を指定します。

newvalue	更新されるレコードの特定のフィールドに挿入される値を表す式を指定します。

criteria	更新するレコードを特定する式を指定します。式の条件を満たすレコードのみが更新されます。

解説

UPDATE ステートメントは、変更するレコードが多い場合や、変更したいレコードが複数のテーブルにわたっている場合に特に便利です。

同時に複数のフィールドを変更することもできます。次の例では、イギリス向け Order Amount の値を 10%、 Freight の値を 3% 増加させています。

UPDATE Orders
SET [Order Amount] = [Order Amount] * 1.1,
Freight = Freight * 1.03
WHERE ShipCountry = 'UK';

UPDATE ステートメントでは、結果としてのレコードセットは生成されません。変更されるレコードを確認するには、同じ抽出条件で選択クエリーを実行し、その結果を確認してから更新クエリーを実行します。


関連項目

Execute メソッド

SQL を使ったデータの取得


UPDATE ステートメントの例

次の SQL ステートメントは、Execute メソッドに指定します。

SQL ステートメント	内容
UPDATE Employees  SET [Reports To] = 5  WHERE [Reports To] = 2;	現在の Reports To フィールドの値が 2 である社員レコードについて、それをすべて 5 に変更します。
UPDATE Products  SET UnitPrice = UnitPrice * 1.1  WHERE SupplierID = 8  AND Discontinued = No;	メーカー番号 8 の製品で、生産中止となっていない製品の Unit Price を 10% 引き上げます。
UPDATE Suppliers INNER JOIN Products  ON Suppliers.SupplierID = Products.SupplierID  SET UnitPrice = UnitPrice * .95  WHERE CompanyName = 'Tokyo Traders'  AND Discontinued = No;	Tokyo Tradersの製品で、生産中止となっていない製品の UnitPrice を 5% 引き下げます。Products テーブルと Suppliers テーブルには、多対一リレーションが設定されています。


WITH OWNERACCESS OPTION 宣言 (SQL)

関連項目

セキュリティが設定されているワークグループで利用するマルチユーザー環境では、クエリーの最後に WITH OWNERACCESS OPTION 宣言を指定すると、そのクエリーを使用するユーザーに対して、テーブルの使用に関してユーザーの持つ権限だけでなく、クエリーの所有者と同じ権限が与えられます。

構文

sqlstatement
WITH OWNERACCESS OPTION

解説

WITH OWNERACCESS OPTION 宣言は、省略できます。

たとえば、Payroll テーブルを参照する権限を持っているユーザーが次のクエリーを作成した場合、このテーブルを参照する権限を持たないユーザーも、このクエリーを実行することによって、Employees テーブルから給与情報を取得できます。

SELECT LastName,
FirstName, Salary
FROM Employees
ORDER BY LastName
WITH OWNERACCESS OPTION;

WITH OWNERACCESS OPTION 宣言を使うと、通常はテーブルの作成やテーブルへの追加を禁止されているユーザーでも、テーブル作成クエリーやテーブルへの追加を行うクエリーを実行できるようになります。

ワークグループのセキュリティの設定とユーザーに対する権限の両方を強制的に実行する場合は、WITH OWNERACCESS OPTION 宣言を記述しないでください。

WITH OWNERACCESS OPTION 宣言を使うには、対象となるデータベースに関連付けられている SYSTEM.MDW ファイルへのアクセス権が必要です。この機能が意味を持つのは、セキュリティ設定されているマルチユーザー環境で使う場合に限られます。


関連項目

SQL を使ったデータの取得

SELECT ステートメント (SQL)


Jet データベース エンジン SQL のデータ型と ANSI SQL のデータ型

関連項目

次の表に、ANSI SQL のデータ型と、それと同じ働きをする Microsoft Jet データベース エンジン SQL のデータ型を示します。さらにそれらの別名も示しています。

ANSI SQL データ型	Jet SQL データ型	別名
BIT、BIT VARYING	BINARY (「注」を参照)	VARBINARY
サポート対象外	BIT (「注」を参照)	BOOLEAN、LOGICAL、LOGICAL1、YESNO
サポート対象外	BYTE	INTEGER1
サポート対象外	COUNTER	AUTOINCREMENT
サポート対象外	CURRENCY	MONEY
DATE、TIME、TIMESTAMP	DATETIME	DATE、TIME、TIMESTAMP
DECIMAL	サポート対象外
REAL	SINGLE	FLOAT4、IEEESINGLE、REAL
DOUBLE PRECISION、FLOAT	DOUBLE	FLOAT、FLOAT8、IEEEDOUBLE、NUMBER、NUMERIC
SMALLINT	SHORT	INTEGER2、SMALLINT
INTEGER	LONG	INT、INTEGER、INTEGER4
INTERVAL	サポート対象外
サポート対象外	LONGBINARY	GENERAL、OLEOBJECT
サポート対象外	LONGTEXT	LONGCHAR、MEMO、NOTE
CHARACTER、CHARACTER VARYING	TEXT	ALPHANUMERIC、CHAR、CHARACTER、STRING、VARCHAR
サポート対象外	VALUE (「注」を参照)
注

Jet データベース エンジンでは、ANSI SQL の BIT データ型は、SQL BIT データ型ではなく、BINARY データ型に相当します。Jet SQL の BIT データ型に相当する ANSI SQL のデータ型はありません。

BINARY データ型は、この型をサポートする他のデータベースで作成されたアタッチ テーブル上でクエリーを使うときだけ、認識されます。

予約語 VALUE は、Jet データベース エンジンによって定義されたデータ型を表すものではありません。ただし Microsoft Access や SQL クエリーでは、VALUE は Microsoft Visual Basic のバリアント型 (Variant) の別名として扱われます。


関連項目

データ型の比較

Microsoft Jet データベース エンジン SQL のデータ型


データ型の比較

関連項目

Microsoft Jet データベース エンジンは、いくつかの重複するデータ型を認識できます。使用するデータ型は、Microsoft Visual Basic のコードと Microsoft Access のコードのどちらを記述しているかによって決まります。Access の場合、テーブルのデザイン ビュー、[パラメータ クエリー] ダイアログ ボックス、Access Basic、およびクエリーの SQL ビューという 4 種類のデータ型の設定場面があり、それぞれが独自のデータ型を持っています。これらの内容については、Access のオンライン ヘルプを参照してください。

次の表は、4 つの場面それぞれに対応する 4 つのデータ型を比較したものです。最初の列には、テーブルのデザイン ビューで使う Type プロパティの設定値と、数値データ型に対する 5 つの FieldSize プロパティの設定値が示されています。次の列には、パラメータ クエリー を設計するときに [パラメータ クエリー] ダイアログ ボックスで使うデータ型が示されています。3 番めの列には、Visual Basic のデータ型が示されています。最後の列には、Jet データベース エンジンによって定義される Jet データベース エンジン SQL のデータ型 とその別名が示されています。

テーブル内のフィールドのデータ型	クエリー パラメータのデータ型	Visual Basic のデータ型	Jet データベースエンジン SQL のデータ型と別名
なし	バイナリ	なし	BINARY (「注」を参照) VARBINARY
Yes/No 型	Yes/No 型	ブール型 (BOOLEAN)	BIT BOOLEAN、LOGICAL、LOGICAL1、YESNO
数値 (バイト)	バイト型	バイト型	BYTE INTEGER1
カウンタ型	なし	長整数型 (Long)	COUNTER AUTOINCREMENT
通貨型	通貨型	通貨型 (Currency)	CURRENCY MONEY
日付/時刻型	日付/時刻型	バリアント型 (Variant) (「注」を参照)	DATETIME DATE、TIME、TIMESTAMP
数値 (単精度浮動小数点数型)	単精度浮動小数型 (Single)	単精度浮動小数型 (Single)	SINGLE、FLOAT4, IEEESINGLE、REAL
数値 (倍精度浮動小数点数型)	倍精度浮動小数型 (Double)	倍精度浮動小数型 (Double)	DOUBLE FLOAT、FLOAT8、IEEEDOUBLE、NUMBER、NUMERIC
数値 (整数型)	整数型(「注」を参照)	整数型 (Integer) (「注」を参照)	SHORT、INTEGER2, SMALLINT
数値 (長整数型)	長整数型	長整数型 (Long)	LONG (「注」を参照) INT、INTEGER、INTEGER4
OLE オブジェクト型	OLE オブジェクト型	文字列型 (String)	LONGBINARY GENERAL、OLEOBJECT
メモ型	メモ型	文字列型 (String)	LONGTEXT LONGCHAR、MEMO、NOTE
テキスト型	テキスト型	文字列型 (String)	TEXT ALPHANUMERIC、CHAR、CHARACTER、STRING、VARCHAR
サポート対象外	Value	バリアント型 (Variant)	VALUE (「注」を参照)
注

Jet データベース エンジンでは、BINARY データ型を使用しません。BINARY データ型が認識されるのは、このデータ型をサポートする他のデータベースで作成したアタッチ テーブルで、クエリーを使う場合だけです。

Visual Basic で日付/時刻型のデータを表す変数を宣言する場合は、その変数をバリアント型 (Variant) として宣言してください。Access を使って、 SQL ビューまたはテーブルのデザイン ビューで、日付/時刻型のフィールドを作成する必要がある場合は、Visual Basic でそのフィールドの Type プロパティを調べます。戻り値はバリアント型の日付定数 vbDate ではなく、定数 dbDate (Jet データベース エンジンによって定義されている定数) に対応します。バリアント型の変数が、Jet データベース エンジンのテーブルまたはクエリーの日付/時刻型のフィールドからデータを抽出した場合は、この 2 つの定数によって示される変数の型は完全に対応するため、型の不一致によるエラーは発生しません。

Jet SQL の整数型 (Integer) は、テーブルのフィールドやクエリーのパラメータ、Visual Basic の整数型と対応するこのではありません。Jet SQL での整数型は、テーブルのフィールド、クエリーのパラメータの長整数型、および Visual Basic の 長整数型 (Long)に対応しています。

予約語 VALUE は、Jet データベース エンジンによって定義されたデータ型を表すものではありません。ただし、Access や SQL クエリーでは、予約語 VALUE は Visual Basic のバリアント型に対応するデータ型として扱われます。


関連項目

Jet データベース エンジン SQL のデータ型と ANSI SQL のデータ型

Microsoft Jet データベース エンジン SQL のデータ型

Microsoft Jet データベース エンジン SQL の予約語

Type プロパティ (データ アクセス)

データ型に関するキーワード一覧


Microsoft Jet データベース エンジン SQL の予約語

次の一覧は、SQL ステートメントで使われる Microsoft Jet データベース エンジンのすべての予約語を示したものです。すべてが大文字で記載されている予約語以外は、他のアプリケーションでも使用されているものです。そのため、オンライン ヘルプでは、これらの予約語については一般的な説明だけを行い、SQL での用法は説明していません。

注   予約語の横にアスタリスク ( * ) が付いているものは Jet データベース エンジンの予約語ですが、現在では Jet データベース エンジンの SQL ステートメントの構文では意味を持ちません。たとえば、Level や TableID などがあげられます。

A-D

ADD ALL Alphanumeric　TEXT を参照 ALTER  And  ANY  AS  ASC AUTOINCREMENT　COUNTER を参照 Avg Between BINARY  BIT  BOOLEAN　BIT を参照 BY BYTE  CHAR、CHARACTER　EXT を参照	COLUMN CONSTRAINT Count COUNTER CREATE CURRENCY DATABASE DATE　DATETIME を参照 DATETIME DELETE DESC DISALLOW DISTINCT  DISTINCTROW  DOUBLE   DROP
E-K

Eqv  EXISTS FLOAT、FLOAT8　DOUBLE を参照 FLOAT4　SINGLE を参照 FOREIGN FROM  GENERAL　LONGBINARY を参照 GROUP  HAVING  IEEEDOUBLE　DOUBLE を参照 IEEESINGLE　SINGLE を参照 IGNORE	Imp  IN In INDEX INNER INSERT INT、INTEGER、INTEGER4　LONG を参照 INTEGER1　BYTE を参照 INTEGER2　SHORT を参照 INTO Is JOIN KEY
L-R

LEFT Level* Like LOGICAL、LOGICAL1　BIT を参照 LONG  LONGBINARY  LONGTEXT  Max  MEMO　LONGTEXT を参照 Min  Mod  MONEY　CURRENCY を参照 Not NULL  NUMBER　DOUBLE を参照 NUMERIC　DOUBLE を参照	OLEOBJECT　 LONGBINARY を参照 ON OPTION Or  ORDER  Outer* OWNERACCESS  PARAMETERS  PERCENT  PIVOT  PRIMARY  PROCEDURE  REAL　SINGLE を参照 REFERENCES  RIGHT
S-Z

SELECT  SET  SHORT  SINGLE  SMALLINT　SHORT を参照 SOME  StDev StDevP  STRING　TEXT を参照 Sum TABLE TableID* TEXT  TIME　DATETIME を参照 TIMESTAMP　DATETIME を参照	TOP  TRANSFORM  UNION  UNIQUE  UPDATE  VALUE  VALUES  Var  VARBINARY　BINARY を参照 VARCHAR　TEXT を参照 VarP  WHERE  WITH  Xor YESNO　BIT を参照


Microsoft Jet データベース エンジンの SQL と ANSI SQL の比較

関連項目

Microsoft Jet データベース エンジンの SQL は、原則として ANSI-89 Level 1 に準拠していますが、ANSI SQL のいくつかの機能は、組み込まれていません。また、Jet SQL には、ANSI SQL ではサポートされていない予約語や機能があります。

主な相違点

Jet SQL と ANSI SQL の予約語とデータ型は異なります。詳細については、「Microsoft Jet データベース エンジン SQL の予約語」および 「Jet データベース エンジン SQL のデータ型と ANSI SQL のデータ型」を参照してください。

Between...And 構文に適用される規則が異なります。次に構文を示します。

expression1 [NOT] BETWEEN expression2 AND expression3

Jet SQL では、expression 2 に expression 3 より大きい値を指定できますが、ANSI SQL では、expression 2 の値は expression 3 以下の値でなければなりません。

Like 述語で使われるワイルドカード文字が異なります。

一致する文字	Jet SQL	ANSI SQL

任意の 1 文字	?	_ (アンダースコア)

0 個以上の文字列	*	%

Jet SQL では、いくつかの制約が緩和されています。たとえば Jet SQL では、式を対象としたグループ化や並べ替えを行うことができます。

Jet SQL のほうが、高機能な式をサポートしています。たとえば Jet SQL ステートメントでは、Visual Basic を使うことができます。

Jet SQL の拡張機能

クロス集計クエリーで使う TRANSFORM ステートメント。

StDev 関数、VarP 関数などの SQL 集合関数。

パラメータ クエリーを定義する PARAMETERS 宣言。

Jet SQL ではサポートされていない ANSI SQL の機能

COMMIT、GRANT、LOCK などの、セキュリティ関連のステートメント。Visual Basic の機能で代用できます。

DISTINCT 集合関数の参照。たとえば、Jet SQL では次のような記述はできません。

SUM (DISTINCT columnname)

クエリーによって返される行の数を制限するために使う、LIMIT TO nn ROWS 句。クエリーの範囲を制限するために使えるのは、WHERE 句だけです。


関連項目

Jet データベース エンジン SQL のデータ型と ANSI SQL のデータ型

Microsoft Jet データベース エンジン SQL の予約語


ALTER TABLE ステートメント (SQL)

関連項目	例

CREATE TABLE ステートメントによって作成されたテーブルのデザインを変更します。

注   Microsoft Jet データベース エンジンは、Jet データベース以外のデータベースに対して、ALTER TABLE ステートメントや DDL (データ定義言語) ステートメントを使うことができません。データ アクセス オブジェクトに対しては、Create メソッドを使います。

構文

ALTER TABLE table {ADD {COLUMN field type[(size)] [CONSTRAINT index] I
CONSTRAINT multifieldindex} |
DROP {COLUMN field I CONSTRAINT indexname} }

ALTER TABLE ステートメントの指定項目は、次のとおりです。

指定項目	内容

table	変更するテーブルの名前を指定します。

field	table に追加、または table から削除するフィールドを指定します。

type	field のデータ型を指定します。

size	文字のフィールド サイズを指定します (テキスト データ型およびバイナリ データ型フィールドのみ)。

index	field のインデックスを指定します。インデックスの作成については、「CONSTRAINT 句 (SQL)」を参照してください。

multifieldindex	table に追加する複数フィールドのインデックスの定義を行います。CONSTRAINT 句の指定方法については、「CONSTRAINT 句 (SQL)」を参照してください。

indexname	削除する複数フィールドのインデックスを指定します。

解説

ALTER TABLE ステートメントを使うと、既存のテーブルを次のように変更できます。

ADD COLUMN 句を指定すると、新規フィールドをテーブルに追加できます。また、フィールド名、データ型、サイズ (テキスト型とバイナリ型のフィールドの場合) を指定できます。次の例は、Notes という名前の 25 文字のテキスト型のフィールドを Employees テーブルに追加するものです。

ALTER TABLE Employees ADD COLUMN Notes TEXT(25)

このフィールドに、インデックスを定義することもできます。単一のフィールド インデックスについては、「CONSTRAINT 句 (SQL) (SQL)」を参照してください。

ADD 句を使うと、複数フィールド インデックスを追加できます。複数フィールド インデックスについては、「CONSTRAINT 句 (SQL)」を参照してください。

DROP COLUMN 句を指定すると、フィールドを削除できます。フィールド名だけを指定してください。

DROP 句を使うと、複数のフィールド インデックスを削除できます。予約語 CONSTRAINT の次にインデックス名だけを指定してください。

注

複数のフィールドやインデックスを、一度に追加したり削除したりすることはできません。

CREATE INDEX ステートメントを使うと、テーブルに、単一または複数フィールド インデックスを追加できます。また、ALTER TABLE ステートメントまたは DROP ステートメントを使うと、ALTER TABLE ステートメントや CREATE INDEX ステートメントで作成したインデックスを削除できます。


関連項目

CONSTRAINT 句 (SQL)

CREATE INDEX ステートメント (SQL)

DROP ステートメント (SQL)


ALTER TABLE ステートメントの例

次の SQL ステートメントは、CREATE TABLE ステートメントで作成したテーブルで使用できます。

SQL ステートメント	内容
ALTER TABLE Employees  ADD COLUMN Salary CURRENCY;	データ型が通貨型の Salary フィールドを、Employees テーブルに追加します。
ALTER TABLE Employees  DROP COLUMN Salary;	Employees テーブルから Salary フィールドを削除します。
ALTER TABLE Orders  ADD CONSTRAINT OrdersRelationship  FOREIGN KEY (EmployeeID)  REFERENCES Employees (EmployeeID);	外部キーを Orders テーブルに追加します。外部キーは、EmployeeID フィールドをベースにして Employees テーブルの EmployeeID を参照します。この例では、REFERENCES 句で Employees テーブルの後に EmployeeID フィールドを指定する必要はありません。これは、EmployeeID が Employees テーブルの主キーであるためです。
ALTER TABLE Orders  DROP CONSTRAINT OrdersRelationship;	Orders テーブルから外部キーを削除します。


CONSTRAINT 句 (SQL)

関連項目	例

参照整合性はインデックスと似ていますが、ほかのテーブルとのリレーションを確立することもできます。

リレーションと参照整合性の作成および削除は、ALTER TABLE ステートメントおよび CREATE TABLE ステートメントで、CONSTRAINT 句を使って行います。CONSTRAINT 句には、単一フィールドにインデックスを作成する場合と、複数のフィールドにインデックスを作成する場合の 2 種類があります。

注   Microsoft Jet データベース エンジンでは、Jet データベース以外のデータベースに対して、CONSTRAINT 句や DDL (データ定義言語) ステートメントを使うことができません。データ アクセス オブジェクトに対しては、Create メソッドを使います。

構文

単一のフィールドにインデックスを作成する場合

CONSTRAINT name {PRIMARY KEY |
UNIQUE |
REFERENCES foreigntable [(foreignfield1, foreignfield2)]}

複数のフィールドにインデックスを作成する場合

CONSTRAINT name
{PRIMARY KEY (primary1[, primary2 [, ...]]) |
UNIQUE (unique1[, unique2 [, ...]]) |
FOREIGN KEY (ref1[, ref2 [, ...]]) REFERENCES foreigntable [(foreignfield1 [, foreignfield2 [, ...]])]}

CONSTRAINT 句の指定項目は、次のとおりです。

指定項目	内容
name	作成するインデックスの名前。
primary1, primary2	主キーとして指定する 1 つまたは複数のフィールドの名前。
unique1, unique2	一意のキーとして指定する 1 つまたは複数のフィールドの名前。
ref1, ref2	別のテーブルのフィールドを参照する外部キーの 1 つまたは複数のフィールドの名前。
foreigntable	foreignfield で指定される外部キーの 1 つまたは複数のフィールドを含むテーブルの名前。
foreignfield1, foreignfield2	ref1、ref2 で指定された foreigntable 内のフィールドの名前。参照されるフィールドが foreigntable の主キーである場合、この句を省略してもかまいません。
解説

単一フィールド インデックスの構文は、ALTER TABLE ステートメントまたは CREATE TABLE ステートメントのフィールドを定義する句で、フィールドのデータ型を設定した直後に使います。

複数フィールド インデックスの構文は、ALTER TABLE ステートメントまたは CREATE TABLE ステートメントのフィールドを定義する句以外の句で、予約語 CONSTRAINT を指定するときに使います。

CONSTRAINT 句を使って、フィールドに指定できるインデックスには、次の種類があります。

予約語 UNIQUE を使って、フィールドを重複しないキーとして指定します。これによって、フィールドやフィールド一覧を一意なものにできるので、テーブル内の 2 つのレコードは、指定されたフィールド内で同じ値を持つことはありません。複数フィールド インデックスが一意のキーとして指定されると、複数のレコードを持つフィールドが同じ値を持っていても、インデックスによってすべてのフィールドの値が結合されるため、一意のキーとなります。

予約語 PRIMARY KEY を使って、テーブル内のフィールドを主キーとして指定できます。主キー フィールドには、Null 値以外の固有の値を指定します。1 つのテーブルに対して、主キーを 1 つだけ指定することもできます。

注   既に主キーが存在するテーブルで予約語 PRIMARY KEY を指定すると、エラーが発生します。

予約語 FOREIGN KEY を使って、フィールドを外部キーとして指定できます。外部キー側のテーブルの主キーが複数のフィールドで構成されている場合、複数フィールド インデックスの定義を使用する必要があります。複数フィールド インデックスを定義するには、参照する側のフィールドのリスト、外部キー側のテーブル名、および外部キー側のテーブル内の参照されるフィールド名を、参照する側のフィールドと同じ順序で指定する必要があります。参照されるフィールドが外部キー側のテーブルの主キーである場合は、参照されるフィールドをあらかじめ指定する必要はありません。特に指定しない限り、Jet データベース エンジンは、外部テーブルの主キーを参照されるフィールドと判断して動作します。


関連項目

ALTER TABLE ステートメント (SQL)

CREATE INDEX ステートメント (SQL)

CREATE TABLE ステートメント (SQL)

DROP ステートメント (SQL)


CREATE INDEX ステートメント (SQL)

関連項目	例

既存のテーブルに新しいインデックスを作成します。

注   Microsoft Jet データベース エンジンは、Jet データベース以外のデータベースに対して、CREATE INDEX ステートメントや DDL (データ定義言語) ステートメントを使うことができません。データ アクセス オブジェクトに対しては、Create メソッドを使います。

構文

CREATE [ UNIQUE ] INDEX index
ON table (field [ASC|DESC][, field [ASC|DESC], ...])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]

CREATE INDEX ステートメントの指定項目は、次のとおりです。

指定項目	内容

index	作成するインデックスを指定します。

table	インデックスを作成する既存のテーブルを指定します。

field	インデックスの対象となるフィールドを指定します。単一のフィールドにインデックスを作成するには、フィールド名をかっこで囲み、テーブル名の後に記述します。複数のフィールドにインデックスを作成するには、インデックスを作成するフィールドの名前を指定します。降順のインデックスを作成する場合は、予約語 DESC を使います。この予約語を使用しないと、昇順のインデックスと見なされます。

解説

レコード間で、インデックスを設定したフィールドの値が重複しないようにするには、予約語 UNIQUE を使います。

オプションを指定しての WITH 句を追加すると、データ入力規則を適用できます。

DISALLOW NULL オプションを使って、新規レコード内のインデックス設定フィールドで Null 値の設定を禁止できます。

IGNORE NULL オプションを使って、Null 値を持つレコードがインデックスに含まれるのを防ぐことができます。

予約語 PRIMARY を使って、インデックスを設定したフィールドを主キーとして指定できます。主キーの値はもともと重複しないので、予約語 UNIQUE は省略できます。

SQL サーバーなどの ODBC データ ソースのうち、インデックスが作成されていないアタッチ テーブルに対して、CREATE INDEX ステートメントを使って擬似インデックスを作成することができます。擬似インデックスを作成する場合、リモート サーバーに対するアクセス権は必要ありません。また、リモート データベースは擬似インデックスを認識せず、擬似インデックスは無効になります。アタッチ テーブルにもネイティブ テーブルにも、同じ構文を使います。この方法は、インデックスが設定されていないために読み取り専用となっているテーブルに、インデックスを作成する場合に役立ちます。

ALTER TABLE ステートメントを使って、単一フィールド インデックスや複数フィールド インデックスを追加することもできます。また、ALTER TABLE ステートメントや DROP ステートメントを使って、ALTER TABLE ステートメントや CREATE INDEX ステートメントで作成したインデックスを削除できます。

注   既に主キーを持つテーブルに予約語 PRIMARY KEY によって制約を設定すると、エラーが発生します。


関連項目

ALTER TABLE ステートメント (SQL)

CONSTRAINT 句 (SQL)

CREATE TABLE ステートメント (SQL)

DROP ステートメント (SQL)

Execute メソッド


CREATE INDEX ステートメントの例

通常、CREATE INDEX ステートメントは、次のように Execute メソッドに指定します。

SQL ステートメント	内容
CREATE INDEX NewIndex  ON Employees (HomePhone, Extension);	Home Phoneと Extension で構成されるインデックスを Employees テーブルに作成します。
CREATE UNIQUE INDEX MyIndex  ON Employees (SSN)  WITH DISALLOW NULL;	SSN (Social Security Number) フィールドを使って、Employees テーブル上にインデックスを作成します。SSN フィールドでは、2 つのレコードが同じデータを持つことはありません。またNull 値も認められていません。
CREATE UNIQUE INDEX MailID  ON MailList (ClientNo)	アタッチ テーブルにインデックスを作成します。新しくインデックスを作成しても、このテーブルのリモート データベースには影響しません。このメソッドは、すべての種類のアタッチ テーブルに有効なわけではありません。特に ISAM データベースを使用するアタッチ テーブルには使用できないことがあります。


CREATE TABLE ステートメント (SQL)

関連項目	例

新しくテーブルを作成します。

注   Microsoft Jet データベース エンジンは、Jet データベース以外のデータベースに対して、CREATE TABLE ステートメントや DDL (データ定義言語) ステートメントを使うことができません。データ アクセス オブジェクトに対しては、Create メソッドを使います。

構文

CREATE TABLE table (field1 type [(size)] [index1] [, field2 type [(size)] [index2] [, ...]] [, multifieldindex [, ...]])

CREATE TABLE ステートメントの指定項目は、次のとおりです。

指定項目	内容

table	作成するテーブルを指定します。

field1, field2	新規テーブルに作成するフィールドを指定します。最低 1 つのフィールドを指定しなければなりません。

type	新規テーブルの field のデータ型を指定します。

size	文字のフィールド サイズを指定します (テキスト型およびバイナリ型フィールドのみ)。

index1, index2	単一のフィールドにインデックスを定義する CONSTRAINT 句を指定します。単一フィールド インデックスを作成する方法については、「CONSTRAINT 句 (SQL)」を参照してください。

multifieldindex	複数のフィールドにインデックスを定義する CONSTRAINT 句を指定します。複数のフィールドにインデックスを作成する方法については、「CONSTRAINT 句 (SQL)」を参照してください。

解説

通常、CREATE TABLE ステートメントは、Execute メソッドに指定します。CREATE INDEX ステートメントを使って、既存のテーブルにインデックスを作成することもできます。


関連項目

ALTER TABLE ステートメント (SQL)

CONSTRAINT 句 (SQL)

CREATE INDEX ステートメント (SQL)

CreateTableDef メソッド

DROP ステートメント (SQL)

Execute メソッド


CREATE TABLE ステートメント、CONSTRAINT 句の例

通常、CREATE TABLE ステートメントは、次のように Execute メソッドに指定します。

SQL ステートメント	内容
CREATE TABLE [This Table]  (FirstName TEXT, LastName TEXT);	2 つのテキスト型のフィールドを持つ、This Table というテーブルを新しく作成します。
CREATE TABLE MyTable (FirstName TEXT, LastName TEXT, [Date of Birth] DATETIME,  CONSTRAINT MyTableConstraint UNIQUE (FirstName, LastName, [Date of Birth]));	2 つのテキスト型のフィールドと日付/時刻型のフィールド、さらにこの 3 つのフィールドによって構成される一意のインデックスを持つ、MyTable というテーブルを新しく作成します。
CREATE TABLE NewTable  (FirstName TEXT, LastName TEXT,  SSN INTEGER  CONSTRAINT MyFieldConstraint PRIMARY  KEY)	2 つのテキスト型のフィールドと整数型のフィールドを持つ、NewTable というテーブルを新しく作成します。主キーは SSN フィールドです。


DROP ステートメント (SQL)

関連項目	例

データベースから既存のテーブルを削除したり、テーブルから既存のインデックスを削除したりします。

注   Microsoft Jet データベース エンジンは、Jet データベース以外のデータベースに対して、DROP ステートメントや DDL (データ定義言語) ステートメントを使うことができません。データ アクセス オブジェクトに対しては、Create メソッドを使います。

構文

DROP {TABLE table | INDEX index ON table}

DROP ステートメントの指定項目は、次のとおりです。

指定項目	内容

table	削除するテーブル、または削除するインデックスのあるテーブル名を指定します。

index	table から削除するインデックス名を指定します。

解説

テーブルを削除する前、またはテーブルからインデックスを削除する前には、あらかじめそのテーブルを閉じておく必要があります。

ALTER TABLE ステートメントを使って、テーブルからインデックスを削除することもできます。

CREATE TABLE ステートメントを使って、テーブルを作成できます。また、CREATE INDEX ステートメントや ALTER TABLE ステートメントを使うとインデックスを作成できます。テーブルを変更するには、ALTER TABLE ステートメントを使います。

注    通常、DROP ステートメントは、Execute メソッドに指定します。


関連項目

ALTER TABLE ステートメント (SQL)

CONSTRAINT 句 (SQL)

CREATE INDEX ステートメント (SQL)

CREATE TABLE ステートメント (SQL)

Execute メソッド


DROP ステートメントの例

通常、DROP ステートメントは、次のように Execute メソッドに指定します。

SQL ステートメント	内容
DROP INDEX MyIndex ON Employees;	Employees テーブルから MyIndex を削除します。
DROP TABLE [This Table];	データベースから This Table を削除します。


UNION 操作 (SQL)

関連項目	例

UNION 操作を使うと、2 個以上の独立したクエリーやテーブルの結果を組み合わせ、ユニオン クエリー を作成できます。

構文

[TABLE] query1 UNION [ALL] [TABLE] query2 [UNION [ALL] [TABLE] queryn [ ... ]]

UNION 操作の指定項目は次のとおりです。

指定項目	内容

query1, query2, queryn	SELECT ステートメント、ストアド クエリーの名前、またはキーワード TABLE で優先された、ストアド テーブルの名前を指定します。

解説

複数のクエリー、テーブル、および SELECT ステートメントの結果を、一度の UNION 操作で、任意に組み合わせることができます。次の例では、New Accounts という既存のテーブルと SELECT ステートメントの結果を組み合わせます。

TABLE [New Accounts] UNION ALL
SELECT *
FROM Customers
WHERE [Order Amount] > 1000;

UNION 操作では、特に指定しない限り、重複するレコードは返されませんが、ALL 述語を指定すると、すべてのデータが返されます。ALL 述語を使う方が、クエリーの実行速度は高速になります。

UNION 操作で指定するすべてのクエリーでは、要求するフィールドの数が同じである必要がありますが、フィールドのサイズとデータ型は異なっていてもかまいません。

注

組み合わせる各クエリーの中で、GROUP BY 句と HAVING 句 (省略可能) を使うと、戻り値をグループ化できます。これらの句は、2 つ同時に使うこともできます。

最後の引数 query の後に ORDER BY 句を記述すると、返されたデータを指定した順序で表示できます。


関連項目

ALL、DISTINCT、DISTINCTROW、TOP 述語 (SQL)

GROUP BY 句 (SQL)

HAVING 句 (SQL)

INNER JOIN 操作 (SQL)

LEFT JOIN、RIGHT JOIN 操作 (SQL)

ORDER BY 句 (SQL)

SELECT ステートメント (SQL)

サブクエリー

WHERE 句 (SQL)


UNION 操作の例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL の式に指定します。

SQL ステートメント	内容
SELECT CompanyName, City  FROM Suppliers  WHERE Country = "Brazil"  UNION SELECT CompanyName, City  FROM Customers  WHERE Country = "Brazil";	ブラジルにあるすべてのメーカーの名前と所在都市、およびブラジルの顧客名と住んでいる都市を取得します。
SELECT CompanyName, City  FROM Suppliers  WHERE Country = "Brazil"  UNION SELECT CompanyName, City  FROM Customers  WHERE Country = "Brazil";  ORDER BY City;	ブラジルにあるすべてのメーカーの名前と所在都市、およびブラジルの顧客名と住んでいる都市を取得し、都市ごとにまとめます。
SELECT CompanyName, City  FROM Suppliers  WHERE Country = "Brazil"  UNION SELECT CompanyName, City  FROM Customers  WHERE Country = "Brazil"  UNION SELECT LastName, City  FROM Employees  WHERE Region = "South America"	ブラジルにあるすべてのメーカーの名前と所在都市、およびブラジルの顧客名と住んでいる都市、さらに南米における全社員の姓と住んでいる都市を取得します。
TABLE CustomerList  UNION  TABLE SupplierList	メーカーと顧客の名前と ID を取得します。


サブクエリー

関連項目	例

サブクエリーとは、SELECT、SELECT...INTO、INSERT INTO、DELETE、UPDATE の各ステートメントや、他のサブクエリーでネストされた SELECT ステートメントのことです。

構文

サブクエリーを作成するには、次の 3 つの構文を使います。

comparison [ANY | ALL | SOME] (sqlstatement)

expression [NOT] IN (sqlstatement)

[NOT] EXISTS (sqlstatement)

サブクエリーの指定項目は、次のとおりです。

指定項目	内容

comparison	サブクエリーの実行結果と比較する式や比較演算子を指定します。

expression	サブクエリーの実行結果を検索する式を指定します。

sqlstatement	SELECT ステートメントを指定します。他の SELECT ステートメントと同じ形式や規則に従います。ここで指定する SELECT ステートメントは、かっこで囲む必要があります。

解説

SELECT ステートメントのフィールドや、WHERE 句、HAVING 句に式を指定する代わりに、サブクエリーを指定することができます。サブクエリーで SELECT ステートメントを使って、WHERE 句や HAVING 句の式で判断対象となる値を返します。

ANY 述語や SOME 述語を使うと (この 2 つは同じ意味です)、サブクエリーで返された任意のレコードと比較し、メイン クエリーのレコードを返すことができます。次の例は、25% 以上値引きした任意の製品よりも単価が高い製品を、すべて選択します。

SELECT * FROM Products
WHERE UnitPrice> ANY
(SELECT UnitPrice FROM OrderDetails
WHERE [Discount] >= .25);

ALL 述語を使うと、サブクエリーで返されたすべてのレコードと比較し、条件に一致したメイン クエリーのレコードだけを取得できます。上の例で、ANY 述語を ALL 述語に変更すると、返されるレコードがさらに制限され、25% 以上値引きしたすべての製品よりも単価が高い製品だけが選択されます。

IN 述語を使うと、サブクエリーのレコードと同じ値を持つメイン クエリーのレコードだけが選択されます。次の例は、25% 以上値引きした製品をすべて選択します。

SELECT * FROM Products
WHERE ProductID IN
(SELECT ProductID FROM OrderDetails
WHERE [Discount] >= .25);

NOT IN 述語を使って、サブクエリーのレコードと異なる値を持っているメイン クエリーのレコードだけが選択されます。

EXISTS 述語に予約語 NOT を追加して、返された値が真 (True) か偽 (False) を調べて、サブクエリーがレコードを返すかどうかを判断できます。

また、サブクエリーでテーブルに別名を指定して、サブクエリーの外にある FROM 句で指定されているテーブルを参照できます。次の例は、給料の金額が、同じ肩書きを持つ社員の給料の平均、またはそれ以上である社員の名前を返します。Employees テーブルに別名 "T1" が指定されています。

SELECT LastName,
FirstName, Title, Salary
FROM Employees AS T1
WHERE Salary >=
(SELECT Avg(Salary)
FROM Employees
WHERE T1.Title = Employees.Title) Order by Title;

上の例で、予約語 AS は省略できます。


関連項目

比較演算子

INNER JOIN 操作 (SQL)

LEFT JOIN、RIGHT JOIN 操作 (SQL)

SELECT ステートメント (SQL)

SELECT...INTO ステートメント (SQL)

UNION 操作 (SQL)


SQL サブクエリーの例

次の SQL ステートメントは、QueryDef オブジェクトの SQL プロパティ、または OpenRecordset メソッドの SQL の式に指定します。

SQL ステートメント	内容
SELECT LastName, FirstName, Title, Salary  FROM Employees  WHERE Title LIKE "*Sales Rep*" AND Salary > ALL  (SELECT Salary FROM Employees  WHERE (Title LIKE "*Manager*") OR (Title LIKE "*Director*"));	マネージャやディレクターよりも給料の高いセールスマンの名前、役職、給料を表示します。
SELECT DISTINCTROW ProductName, UnitPrice  FROM Products WHERE UnitPrice =  (SELECT UnitPrice FROM [Products]  WHERE ProductName = "Aniseed Syrup");	Aniseed Syrup と同じ単価の製品をすべて抽出し、その製品名と単価を表示します。
SELECT DISTINCTROW [Contact Name], CompanyName, [Contact Title], Phone  FROM Customers WHERE CustomerID IN  (SELECT DISTINCTROW CustomerID  FROM Orders WHERE OrderDate BETWEEN #04/1/94# AND #07/1/94#);	1994 年の第 2 四半期に注文した顧客をすべて抽出し、その勤務先と連絡先を表示します。
SELECT LastName, FirstName, Title, Salary  FROM Employees T1  WHERE Salary >=  (SELECT AVG(Salary)  FROM Employees  WHERE Employees.Title = T1.Title)  ORDER BY Title;	給料が全社員の平均よりも高い社員を表示します。
SELECT FirstName, LastName  FROM Employees AS E  WHERE EXISTS  (SELECT *  FROM Orders AS O  WHERE O.EmployeeID = E.EmployeeID);	最低 1 回は注文予約を取ったことがある社員をすべて選択します。ここでは、INNER JOIN 操作を使うこともできます。


Microsoft Jet データベース エンジン SQL のデータ型

関連項目

Microsoft Jet SQL のデータ型には、Jet データベース エンジンで定義されている 13 の主なデータ型といくつかのそれらに相当するデータ型があります。

次の表に、主なデータ型を示します。相当するデータ型については、「データ型の比較」、「Microsoft Jet データベース エンジン SQL の予約語」を参照してください。

データ型	格納サイズ	内容
BINARY	1 バイト	アタッチテーブルのクエリーで使います。アタッチテーブルはバイナリ型が定義されているデータベースで作成されます。
BIT	1 バイト	Yes/No の値のうち、どちらかの値を含むフィールド。
BYTE	1 バイト	0 ～ 255 の範囲の整数値。
COUNTER	4 バイト	Jet データベース エンジンによって自動的にカウントされる番号。新規レコードがテーブルに追加されたときに計算されます。この値は、Jet データベース エンジンでは長整数型 (Long) です。
CURRENCY	8 バイト	-922,337,203,685,477.5808 ～ 922,337,203,685,477.5807 の範囲の固定小数点数。
DATETIME (DOUBLE を参照)	8 バイト	100 ～ 9,999 年の日付/時刻値。
SINGLE	4 バイト	-3.402823E38 ～ -1.401298E-45 の負の値、1.401298E-45 ～ 3.402823E の正の値と 0 を含む単精度浮動小数点値。
DOUBLE	8 バイト	-1.79769313486232E308 ～  -4.94065645841247E-324 の負の値、4.94065645841247E-324 ～1.79769313486232E308 の正の値と 0 を含む倍精度浮動小数点値。
SHORT	2 バイト	-32,768 ～ 32,767 の値を取る 整数値。
LONG	4 バイト	-2,147,483,648 ～ 2,147,483,647 の値を取る長整数値。
LONGTEXT	1 文字あたり 1 バイト	0 ～ 1.2 GB 文字。
LONGBINARY	必要に応じて	0 ～約 1 GB 文字。OLE オブジェクトに対して使用されます。
TEXT	1 文字あたり 1 バイト	0 ～ 255 文字。
注   予約語 VALUE は、SQL ステートメントでも使用できます。予約語 VALUE は、Jet データベース エンジンによって定義されているデータ型を表すものですが、Microsoft Visual Basic のバリアント型 (Variant) の同義語と見なされます。


関連項目

データ型の比較

Type プロパティ (データ アクセス)

Jet データベース エンジン SQL のデータ型と ANSI SQL のデータ型

Size プロパティ (データ アクセス)

Microsoft Jet データベース エンジン SQL の予約語

データ型に関するキーワード一覧


SQL 集合関数 (SQL)

SQL 集合関数を使うと、値の集合に対してさまざまな統計値を設定できます。この関数はクエリー式で使うもので、SQL クエリー文字列以外の Microsoft Visual Basic のコードでは使えません。また、QueryDef オブジェクトの SQL プロパティやSQL クエリーに基づいて Recordset オブジェクトを作成する場合にも、集合式を使うことができます。

Avg 関数

Count 関数

Min、Max 関数

StDev、StDevP 関数

Sum 関数

Var、VarP 関数


Avg 関数 (SQL)

関連項目	例

クエリーで指定されたフィールドに含まれる複数の値について、その算術平均を計算します。

構文

Avg(expr)

expr には、平均値を求める数値データが含まれるフィールド名を表す文字列式か、そのフィールドのデータを対象とする計算式を指定します。また expr には、テーブルのフィールド名、定数名、関数名も指定できます。関数として、組み込み関数とユーザー定義関数のどちらも指定できますが、他の SQL 集合関数や定義域集合関数は指定できません。

解説

Avg 関数で計算される平均は、算術平均 (値の合計を値の個数で割ったもの) です。たとえば、平均輸送費を求めたいときに、この関数を使います。

Avg 関数では、Null フィールドは計算から除外されます。

Avg 関数は、クエリー式で指定することができます。また、QueryDef オブジェクトの SQL プロパティを設定するときや、SQL クエリーを基に Recordset オブジェクトを作成するときにも、このクエリー式を使うことができます。


関連項目

SQL 集合関数 (SQL)


Avg 関数の例

次のプログラムでは、Orders テーブルを使い、輸送費が $100 以上かかる注文の平均輸送費を計算しています。

SELECT Avg([Freight])
AS [Average Freight]
FROM Orders WHERE [Freight] > 100;


Count 関数 (SQL)

関連項目	例

クエリーで選択されたレコードの個数を計算します。

構文

Count(expr)

引数 expr には、個数を計算したいデータが含まれるフィールド名を表す文字列式か、そのフィールドのデータを対象とする計算式を指定します。引数 expr には、テーブルのフィールド名または関数名も指定できます。関数には組み込み関数とユーザー定義関数のどちらも指定できますが、他の SQL 集合関数は指定できません。Count 関数を使うと、テキストを含む、あらゆる種類のデータの個数を計算できます。

解説

Count 関数を使って、基になるクエリーに含まれるレコードの総数を取得します。たとえば、ある国に品物を何個出荷したかを計算するときなどに使います。レコードが追加、削除されたり、クエリーの中の条件式に影響を与えるようなフィールドに変更があるまでの間だけ、値は正確であるといえます。したがって、SELECT ステートメントを使った場合に、常に同じレコード数が返されるとは限りません。

引数 expr は、フィールドに対して計算を行いますが、Count 関数はレコードの数を数えるだけです。レコードにどのような値が格納されているかにかかわらず、Count 関数で Null フィールドを持つレコードの個数を数える場合、引数 expr にワイルドカード文字としてアスタリスク ( * ) を指定すると、Null フィールドを含むレコードの総数が計算されます。Count( * ) の方が、Count([Column Name]) より高速に数えることができます。この場合は、アスタリスクをダブル クォーテーションで囲まないでください。次の例では、Orders テーブルのレコード数を計算しています。

SELECT Count(*)
AS [Total Orders] FROM Orders;

引数 expr に複数のフィールドを指定した場合、その中に Null 値を含まないフィールドが 1 つでもあると、Count 関数はレコードをカウント対象とします。指定したフィールドがすべて Null 値の場合、そのレコードは数えられません。また、複数のフィールドを指定するときは、フィールドとフィールドの間をアンパサンド (&) で区切ります。次の例では、ShippedDate フィールドと Freight フィールドのどちらも Null 値を含まないときに、レコードを数える方法を示します。

SELECT
Count('ShippedDate & [Freight]')
AS [Not Null] FROM Orders;

Count 関数は、クエリー式で指定することができます。また、QueryDef オブジェクトの SQL プロパティを設定するときや、SQL クエリーを基に Recordset オブジェクトを作成するときにも、このクエリー式を使うことができます。


関連項目

RecordCount プロパティ

SQL 集合関数 (SQL)

Sum 関数 (SQL)


Count 関数の例

次のプログラムでは、Orders テーブルを使ってイギリス向けの注文件数を数えます。QueryDef オブジェクトの SQL プロパティを設定するときや、SQL クエリーを基に Recordset オブジェクトを作成するときにも、このクエリー式を使うことができます。

SELECT Count(ShipCountry)
AS [UK Orders] FROM Orders WHERE ShipCountry = 'UK';


First、Last 関数 (SQL)

関連項目	例

クエリーから返される結果セットの、先頭または末尾のレコードに含まれるフィールドの値を返します。

構文

First(expr)
Last(expr)

引数 expr には、対象となるデータが含まれるフィールド名を表す文字列式か、そのフィールドのデータを対象とする計算式を指定します。引数 expr には、テーブルのフィールド名、定数名、関数名も指定できます。関数には組み込み関数とユーザー定義関数のどちらも指定できますが、他の SQL 集合関数は指定できません。

解説

First 関数や Last 関数を使って、基になるクエリーの範囲を限定できます。たとえば、特定の期間の注文レポートを作成し、その範囲の日付をレポートのタイトルとして使いたい場合に、これらの関数を使います。

First 関数や Last 関数は、クエリー式で指定することができます。また、QueryDef オブジェクトの SQL プロパティを設定するときや、SQL クエリーを基に Recordset オブジェクトを作成するときにも、このクエリー式を使うことができます。First 関数および Last 関数は、Recordset オブジェクトの MoveFirst メソッドおよび MoveLast メソッドと似ています。クエリーが返す結果セットの先頭または末尾のレコードから、それぞれ指定したフィールドの値を返します。通常、クエリーが ORDER BY 句を含む場合のみ、レコードは特定の順で返されます。ORDER BY 句を含まない場合、First 関数および Last 関数を使用すると、レコードは任意の順序で返されます。


関連項目

SQL 集合関数 (SQL)


First、Last 関数の例

次のプログラムでは、employees テーブルを使い、イギリス向けに出荷された注文のうち、先頭と末尾のレコードの LastName フィールドの値を返します。また、QueryDef オブジェクトの SQL プロパティを設定するときや、SQL クエリーを基に Recordset オブジェクトを作成するときにも、このクエリー式を使うことができます。

SELECT First(LastName), Last(LastName)
FROM Employees;

次の 2 つの例では、First 関数および Last 関数、または Min 関数および Max 関数を使用して、一番早く生まれた社員の誕生日と、一番遅く生まれた社員の誕生日を検索します。

SELECT First(BirthDate), Last(BirthDate)

FROM Employees;

SELECT Min(BirthDate), Max(BirthDate)

FROM Employees;


Min、Max 関数 (SQL)

関連項目	例

クエリーで指定されたフィールドに含まれる値のうち、最小または最大の値を返します。

構文

Min(expr)

Max(expr)

引数 expr には、対象となるデータが含まれるフィールド名を表す文字列式か、そのフィールドのデータを対象とする計算式を指定します。また引数 expr には、テーブルのフィールド名、定数名、関数名も指定できます。関数には組み込み関数とユーザー定義関数のどちらも指定できますが、他の SQL 集合関数は指定できません。

解説

Min 関数および Max 関数を使うと、フィールド (テキストフィールドも可) 内の最大値や最小値を調べることができます。Min 関数および Max 関数を使うと、フィールド (テキストフィールドも含む) の最大値や最小値を、指定した集合関数またはグループを基に調べることができます。たとえば、輸送費の最高額と最低額を調べるときなどに使います。集合関数が指定されない場合は、テーブル全体が使用されます。

Min 関数および Max 関数は、クエリー式で指定することができます。また、QueryDef オブジェクトの SQL プロパティを設定するときや、SQL クエリーを基に Recordset オブジェクトを作成するときにも、このクエリー式を使うことができます。


関連項目

SQL 集合関数 (SQL)


Min、Max 関数の例

次のプログラムでは、Orders テーブルを使い、イギリス向けの注文の輸送費の最低額と最高額を調べます。また、QueryDef オブジェクトの SQL プロパティを設定するときや、SQL クエリーを基に Recordset オブジェクトを作成するときにも、このクエリー式を使うことができます。

SELECT Min([Freight])
AS [Low Freight],
Max([Freight]) AS [High Freight]
FROM Orders WHERE ShipCountry = 'UK';


StDev、StDevP 関数 (SQL)

関連項目	例

クエリーで指定されたフィールドについて、そのフィールドの値を、母集団または母集団の標本と見なして計算した標準偏差の評価値を返します。

構文

StDev(expr)

StDevP(expr)

引数 expr には、評価する数値データが含まれるフィールド名を表す文字列式か、そのフィールドのデータを対象とする計算式を指定します。また、引数 expr には、テーブルのフィールド名、定数名、関数名も指定できます。関数には組み込み関数とユーザー定義関数のどちらも指定できますが、他の SQL 集合関数は指定できません。

解説

StDevP 関数は母集団を評価する関数、StDev 関数は母集団の標本を評価する関数です。

基のクエリーにレコードが 1 つしかない場合 (StDevP 関数ではレコードがまったくない場合)、Null 値 (標準偏差が計算できないことを示す値) が返されます。

StDevP 関数と StDev 関数は、クエリー式で指定することができます。また、QueryDef オブジェクトの SQL プロパティを設定するときや、SQL クエリーを基に Recordset オブジェクトを作成するときにも、このクエリー式を使うことができます。


関連項目

Avg 関数 (SQL)

SQL 集合関数 (SQL)

Sum 関数 (SQL)


StDev、StDevP 関数の例

次のプログラムでは、Orders テーブルを使い、イギリス向けの注文における輸送費の標準偏差を評価します。

SELECT StDev([Freight])
AS [Freight Dev]
FROM Orders WHERE ShipCountry = 'UK';

SELECT StDevP([Freight])
AS [Freight DevP]
FROM Orders WHERE ShipCountry = 'UK';


Sum 関数 (SQL)

関連項目	例

クエリーで指定されたフィールドに含まれる値の合計を返します。

構文

Sum(expr)

引数 expr には、対象となる数値データが含まれるフィールド名を表す文字列式、またはそのフィールドのデータを対象とする計算式を指定します。また引数 expr には、テーブルのフィールド名、定数名、関数名も指定できます。関数として、組み込み関数とユーザー定義関数のどちらも指定できますが、他の SQL 集合関数や定義域集合関数は指定できません。

解説

Sum 関数は、輸送費の合計を求める場合など、フィールド内の値を合計するときに使います。

Sum 関数は、Null フィールドを持つレコードの値を 0 として扱います。Sum 関数では、Null フィールドを含むレコードは無効です。次の例では、Unit Price フィールドと Quantity フィールドの合計額を求めます。

SELECT
Sum(UnitPrice * [Quantity])
AS [Total Revenue]  FROM OrderDetails;

Sum 関数は、クエリー式で指定することができます。また、QueryDef オブジェクトの SQL プロパティを設定するときや、SQL クエリーを基に Recordset オブジェクトを作成するときにも、このクエリー式を使うことができます。


関連項目

Count 関数 (SQL)

SQL 集合関数 (SQL)


Sum 関数の例

次のプログラムでは、Orders テーブルを使い、イギリス向けの注文における売上総額を計算します。

SELECT Sum(UnitPrice*[Quantity]) AS [Total UK Sales]
FROM Orders INNER JOIN OrderDetails
& " 	ON Orders.OrderID = OrderSDetails.OrderID
WHERE (ShipCountry = 'UK');


Var、VarP 関数 (SQL)

関連項目	例

クエリーで指定されたフィールドについて、そのフィールドの値を、母集団または母集団の標本と見なし、分散の評価値を返します。

構文

Var(expr)
VarP(expr)

VarP 関数は母集団を評価する関数、Var 関数は母集団の標本を評価する関数です。

引数 expr には、対象となる数値データが含まれるフィールド名を表す文字列式、またはそのフィールドのデータを対象とする計算式を指定します。また、引数 expr には、テーブルのフィールド名、定数名、関数名も指定できます。関数には組み込み関数とユーザー定義関数のどちらも指定できますが、他の SQL 集合関数は指定できません。

解説

基になるクエリーにレコードが 1 つしかない場合は、Null 値 (分散が計算できないことを示す値) が返されます。

Var 関数と VarP 関数は、クエリーの式や SQL ステートメントで使うことができます。


関連項目

SQL 集合関数 (SQL)


Var、VarP 関数の例

次のプログラムでは、Orders テーブルを使い、イギリス向けの注文における輸送費の分散の評価値を計算しています。

SELECT Var([Freight])
AS [UK Freight Variance] FROM Orders
WHERE ShipCountry = 'UK';

SELECT VarP([Freight])
AS [UK Freight VarianceP]
FROM Orders WHERE Ship Country = 'UK';


定義域集合関数 (SQL)

関連項目

DAvg 関数、DCount 関数、DLookup 関数、DMin 関数、DMax 関数、DVar 関数、DVarP 関数、DStdev 関数、DStdevP 関数、DSum 関数などの定義域集合関数は、Microsoft Access ではサポートされますが、Microsoft Visual Basic ではサポートされません。これらの関数が SQL クエリー ステートメントに含まれていると、トラップできるエラーが発生します。

注   クエリーまたはサブクエリーを定義域関数の代わりに使用できます。


関連項目

SQL 集合関数 (SQL)


Like 演算子 (SQL)

関連項目	例

SQL 式で文字列式を比較するときに使用されます。

構文

Expression Like "pattern"

Like 演算子の指定項目は、次のとおりです。

指定項目	内容

expression	WHERE 句で使用される SQL の式を指定します。

pattern	expression と比較する文字列またはリテラル文字列を指定します。

解説

Like 演算子を使うと、指定した文字列式に一致する値をフィールドから検索できます。引数 pattern には、Like "Smith" のように完全に一致する値を指定したり、Like "Sm*" のようにワイルドカード文字を使って値の範囲を指定できます。

計算式で Like 演算子を使うと、フィールドの値と文字列式を比較できます。たとえば、SQL クエリーで Like "C*" と入力すると、C で始まるフィールドの値がすべて返されます。また、パラメータ クエリーを使用して、検索する文字列式をユーザーが入力できるようにメッセージを表示することもできます。

ValidationRule プロパティを設定するために、計算式で Like 演算子を指定することもできます。次の例では、最初の文字が P、続く 2 文字めが A ～ F の文字で、その後ろに 3 桁の数字を持つデータが返されます。

Like "P[A-F]###"

Microsoft Visual Basic では、文字列 expression が pattern に指定された条件と一致するときは、結果が真 (True (-1)) に、一致しないときは結果が偽 (False (0)) になります。expression または pattern が Null 値のときは、結果も Null 値になります。


関連項目

文字列連結演算子

ANSI 文字セット

算術演算子

比較演算子

論理演算子

演算子の優先順位

ワイルドカード文字を使った文字列比較


 Like 演算子の例

Like 演算子は、クエリーの SQL 引数の SQL 式、または Recordset オブジェクトの Filter プロパティで使用できます。次の例では、名前が A ～ D の文字で始まる社員が返されます。

SELECT * FROM Employees WHERE LastName Like "[A-D]*"

次の表に、Like 演算子を使った文字列比較の例をいくつか示します。

文字の種類	文字列式	一致する文字列 (True)	一致しない文字列 (False)
複数の文字	"a*a"	"aa"、"aBa"、"aBBBa"	"aBC"
	"*ab*"	"abc"、"AABB"、"Xab"	"aZb"、"bac"
特殊文字	"a[*]a"	"a*a"	"aaa"
複数の文字	"ab*"	"abcdefg"、"abc"	"cab"、"aab"
1 文字	"a?a"	"aaa"、"a3a"、"aBa"	"aBBBa"
1 文字の数字	"a#a"	"a0a"、"a1a"、"a2a"	"aaa"、"a10a"
範囲内の数字	"[a-z]"	"f"、"p"、"j"	"2"、"&"
範囲外の数字	"[!a-z]"	"9"、"&"、"%"	"b"、"a"
数字以外の文字	"[!0-9]"	"A"、"a"、"&"、"~"	"0"、"1"、"9"
組み合わせ	"a[!b-m]#"	"An9"、"az0"、"a99"	"abc"、"aj0"


ワイルドカード文字を使った文字列比較

関連項目

組み込みの文字列比較機能により、効率的に文字列比較を行うことができます。次の表に、Like 演算子と共にワイルドカード文字を使用した例と、それらを指定した場合の一致する文字列や数字を示します。

pattern 中のワイルドカード	expression 中の一致する文字列

?	任意の文字

*	0 個以上の任意の文字

#	1 桁の数字 (0 ～ 9)

[charlist]	charlist で指定した文字のうちの任意の 1 文字

[!charlist]	charlist で指定した文字に含まれない任意の 1 文字

引数 charlist に 1 つまたは複数の文字のグループを指定し、角かっこ ([ ]) で囲むと、expression の中の 1 文字と一致させることができます。また、引数 charlist には、数字を含むほとんどの ANSI 文字セットを指定することができます。左かっこ ([ )、疑問符 (?)、シャープ記号 (#)、アスタリスク ( * ) などの特殊文字も、角かっこで囲むと、直接それらの文字と一致させることができます。右かっこ ( ]) を指定して、expression の中の右かっこ ( ]) と一致されることはできませんが、charlist の外で指定すると、独立した文字として比較させることができます。

角かっこで囲まれた文字を列挙する方法以外に、charlist では、文字コードの並びの上限と下限をハイフン (-) で区切ることによって、特定の範囲の文字を指定することもできます。たとえば、引数 pattern に [A-Z] と指定した場合、expression の同じ位置に A から Z までの大文字があれば一致したと見なされます。角かっこの中に複数の範囲を指定するときは、それぞれの範囲を区切らずに記述します。たとえば、[a-zA-Z0-9] と指定した場合は、任意の英数文字と一致させることになります。

そのほか、文字列比較について次のような重要な規則があります。

引数 charlist の先頭の感嘆符 (!) を指定すると、charlist にない文字が expression で見つかったときに、一致したと見なされます。感嘆符を文字として一致させるには、感嘆符を角かっこの外に指定します。

ハイフンを文字として一致させるには、ハイフン (-) を charlist の先頭または最後で指定します。ただし、感嘆符を使っているときはその直後に指定します。それ以外の位置では、ANSI キャラクタの範囲を指定するときに使います。

文字の範囲を指定するときは、A-Z、0-100のように、昇順で指定します。[A-Z] は有効ですが、[Z-A] は無効です。

角かっこ [ ] の中になにも指定しないと、長さ 0 の文字列と見なされ、無効になります。


関連項目

Like 演算子 (SQL)


Between...And 演算子 (SQL)

関連項目

式の値が、指定された値の範囲にあるかどうかを調べます。この演算子が使えるのは、SQL ステートメントの中だけです。

構文

expr [Not] Between value1 And value2

Between...And 演算子の構文の指定項目は次のとおりです。

指定項目	内容

expr	評価するデータを含むフィールドを識別する式です。

value1, value2	expr を評価する対象となる式です。

解説

引数 expr の値が value1 ～ value2 の範囲内である場合、Between...And 演算子は真 (True) を返します。一方、値が範囲内でない場合は、偽 (False) を返します。また、式と反対の状況、つまり、expr が value1 と value2 で定義した範囲外にあるかどうかを評価するために、Not 論理演算子を含めることができます。

Between...And 演算子を使って、フィールドの値が、指定された数値の範囲内であるかどうかを調べることがあります。次の例では、ZIP コードの範囲内の場所に注文品が発送されたかどうかを調べます。ZIP コードが 98101 ～ 98199 の範囲内である場合、IIf 関数は "Local"、範囲外の場合は、"Nonlocal" を返します。

SELECT IIf([ZIP] Between 98101 And 98199, "Local", "Nonlocal")
FROM Publishers

引数 expr、value1、または value2 が Null 値である場合、Between...And 演算子は Null 値を返します。


関連項目

IIf 関数

IN 句 (SQL)

SQL を使ったデータの取得


SQL 関数でのフィールドの計算

SQL 集合関数で引数に文字列式を指定して、フィールド内の値を計算することができます。たとえば、サービス料、消費税などの百分率を、フィールドの値と分数の積を求めて計算できます。

次の表に、データ ベースの Orders テーブルおよび OrderDetails テーブルのフィールドを使用した計算の例を示します。

計算	例
フィールドの値と数値の和	Freight + 5
フィールドの値と数値の差	Freight - 5
フィールドの値と数値の積	UnitPrice * 2
フィールドの値と数値の商	Freigh / 2
2 つのフィールドの値の和	UnitsInStock + UnitsOnOrder
2 つのフィールドの値の差	ReorderLevel - UnitsInStock
次の例では、データ ベースのすべての注文から割引料金の平均を計算します。UnitPrice フィールドおよび Discount フィールドの値の積を求めてそれぞれの注文での割引料金の計算をし、それから平均を求めます。この式は、Microsoft Visual Basic コードの SQL ステートメントで使用できます。

SELECT Avg(UnitPrice * Discount) AS [Average Discount] FROM OrderDetails;


In 演算子
In 演算子 (SQL)

関連項目	例

式の値が、指定するリスト内の値のいずれかに等しいかどうかを調べます。

構文

expr [Not] In(value1, value2,  . . .)

In 演算子の構文の指定項目は次のとおりです。

指定項目	内容

expr	評価するデータを含むフィールドを特定する式を指定します。

value1, value2	引数 expr と比較する値を指定します。

解説

引数 expr と等しい値がリスト内で見つかった場合、In 演算子は真 (True (-1))を返し、見つからなかった場合は、偽 (False(0)) を返します。Not 論理演算子を使用すると、反対条件でも評価できます。つまり、引数 expr と等しい値がリスト内に存在しないかどうかを調べることができます。

たとえば、In 演算子を使用して、指定された地区にどの注文品を発送するかを調べることができます。

SELECT *

FROM Orders

WHERE ShipRegion In ('Avon','Glos','Som')


関連項目

IN 句 (SQL)


In 演算子の例

次のプログラムでは、データ ベースの Orders テーブルを使用して、Avon、Gloucester、および Somerset に発送する注文品を含むクエリーを作成します。

SELECT * FROM Orders WHERE ShipRegion In ('Avon','Glos','Som');


AddNew メソッド

関連項目	例	対象

テーブル タイプまたはダイナセット タイプの Recordset オブジェクトに、新規レコードを作成します。AddNew メソッドは、以前のバージョンの Dynaset オブジェクトおよび Table オブジェクトでも使うことができます。

構文

object.AddNew

引数 object には、作成したレコードを追加する、テーブル タイプまたはダイナセット タイプの Recordset、Dynaset、Table のいずれかのオブジェクトの名前を指定します。指定するオブジェクトは、開いていることを前提とします。

解説

AddNew メソッドは、引数 object に指定された Recordset、Dynaset、Table の各オブジェクトに、編集と追加が可能なレコードを新規に作成します。このメソッドを使って、フィールドに Null 値 (テーブル タイプの Recordset オブジェクトの既定値) などの既定値を設定します。

作成したレコードを修正したら、Update メソッドを使って変更内容を保存し、レコードセットにそのレコードを追加します。データベースを変更するには、Update メソッドを使います。

注意   レコードを編集した後で、Update メソッドを使わずに別のレコードへの移動を実行すると、変更内容は失われます。また、object を閉じるか、object やその Database オブジェクトを宣言しているプロシージャを終了すると、作成したレコードとその変更内容は破棄されます。これらの操作を実行しても、警告は表示されません。

AddNew メソッドを使って、Microsoft Jet データベース エンジンがカレント レコードを格納するために、2KB のページを新規に作成しなければならないときは、ページは排他的にロックされます。追加するレコードを既存のページに格納できるときは、ページは共有的にロックされます。

ダイナセットの最後のレコードにまだ移動していない場合、ベース テーブルに追加されたレコードがカレント レコードより後にあるときは、そのレコードはオブジェクトに含まれます。Dynaset オブジェクトの AddNew メソッドを使ってダイナセット タイプの Recordset オブジェクトにレコードを追加すると、追加されたレコードはレコードセット内で参照可能になります。また、基となるテーブルに含まれるので、すべての新しい Recordset オブジェクトから参照可能になります。

追加するレコードの位置は、次のように Recordset オブジェクトの種類によって異なります。

ダイナセット タイプの Recordset オブジェクトまたは Dynaset オブジェクトでは、レコードはレコードセットの末尾に追加されます。この場合、レコードセットを開くときに有効にした、並べ替え順序やアクセスするレコードの順序は無効になります。

Index プロパティが設定されたテーブル タイプの Recordset オブジェクトや Table オブジェクトでは、レコードは並べ替え順序に基づいて挿入されます。Index プロパティが設定されていない場合、レコードはレコードセットの末尾に追加されます。

AddNew メソッドを使う前のカレント レコードは、カレント レコードとして扱われます。AddNew メソッドで追加したレコードをカレント レコードにするには、LastModified プロパティの設定によって識別されるブックマークに、Bookmark プロパティを設定します。

注意   Jet エンジン Version 3.0 では、DAO の編集用メソッド (AddNew、Update、Edit および Update メソッド) をループの中で使って複数のレコードを編集しようとすると、そのループ全体に暗黙のトランザクションが適用されます。暗黙のトランザクションが適用されることにより、ループ内の更新が即時にデータベースに反映されるとは限らなくなります。これにより、エラー処理、ページのロック、および変更が他のユーザーから参照可能になるタイミングに影響が及ぶこともあります。変更が即時にデータベースに書き込まれるようにするには、それぞれの Edit メソッドから Update メソッドまでの処理に対して明示的にトランザクションを適用するようにしてください。トランザクションの詳細については、BeginTrans メソッド、CommitTrans メソッド、Rollback メソッドのトピックを参照してください。


関連項目

Bookmark プロパティ (データ アクセス)

Delete メソッド

Edit メソッド

Index オブジェクト、Indexes コレクション

LastModified プロパティ

Move メソッド (データ アクセス)

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

レコードセットへのデータの取得

Seek メソッド

Update メソッド (データ アクセス)


AddNew メソッドの対象

Dynaset オブジェクト

Recordset オブジェクト (ダイナセット タイプとテーブル タイプのみ)

Table オブジェクト


AppendChunk メソッド

関連項目	例	対象

文字列式として指定されたデータを、Recordset オブジェクトの Fields コレクションのメモ型または OLE オブジェクト型の Field オブジェクトに追加します。

構文

recordset ! field.AppendChunk source

AppendChunk メソッドの構文の指定項目は次のとおりです。

指定項目	内容

recordset	Fields コレクションを含む Recordset オブジェクトを参照するオブジェクト型の変数を指定します。

field	定数 dbMemo (メモ型) と定数 dbLongBinary (OLE オブジェクト型) をType プロパティに設定した、Field オブジェクトの名前を指定します。

source	引数 field に指定した Field オブジェクトに追加するデータを含む、文字列式または変数を指定します。

解説

AppendChunk メソッドおよび GetChunk メソッドを使うと、64KB (文字列型 (String) データの最大サイズ) を超える OLE オブジェクト型フィールドのデータにアクセスできます。

1.2GB までに制限されているメモ型フィールドで作業をする場合に、これらのメソッドを使うと、文字列領域を節約することができます。コピーなど、ある特定の操作によっては一時的な文字列の領域を必要とします。確保できる文字列の領域が制限されているときは、メモ型フィールドの全体ではなく一部を使用してください。

カレント レコードが存在しないときに AppendChunk メソッドを使うと、エラーが発生します。

注   Edit メソッドを呼び出した後、最初に 呼び出された AppendChunk メソッドは、既にデータがレコードに含まれている場合でも、単一のデータとして、データをフィールドに格納します。次に、同じ Edit メソッドのセッション内で AppendChunk メソッドを呼び出すと、データが追加されます。


関連項目

Field オブジェクト、Fields コレクション

FieldSize メソッド

GetChunk メソッド

Recordset オブジェクト、Recordsets コレクション

Type プロパティ (データ アクセス)


AppendChunk メソッドの対象

Field オブジェクト


Close メソッド

関連項目	例	対象

開いているデータ アクセス オブジェクトを閉じます。Close メソッドは、以前のバージョンの Dynaset、Snapshot、Table の各オブジェクトでも使うことができます。

構文

object.Close

引数 object には、Database、Recordset、Workspace、Dynaset、Snapshot、Table のオブジェクトのいずれかのオブジェクト名を指定します。指定するオブジェクトは、開いていることを前提とします。

解説

開いているオブジェクトを閉じて、オブジェクトが追加されているコレクションからオブジェクトを削除します。既定の Workspace オブジェクトを閉じることはできません。

Databases、Recordsets、Workspaces 以外のコレクションからオブジェクトを削除するには、各コレクションに対して Delete メソッドを使います。

注意   データベースを閉じる前に、未処理の編集内容がある場合は、Update メソッドを呼び出してください。また、開いているすべてのレコードセット オブジェクトに対して Close メソッドを使用してください。レコードセットまたは Database オブジェクトが宣言されているプロシージャを終了すると、データベースが閉じられ、保存されていない変更内容は失われます。また、未処理のトランザクションはロールバックされ、未処理の編集内容も失われます。

Recordset オブジェクトが開いているときに、Database オブジェクトを閉じようとしたり、開いている Database オブジェクトを含む Workspace オブジェクトを閉じようとしたりすると、Recordset オブジェクトは閉じられ、未処理の更新または編集処理は、ロール バックされます。

開いている Database オブジェクトを含む Workspace オブジェクトを閉じようとすると、その Workspace オブジェクトに含まれる Database オブジェクトがすべて閉じられます。その結果、開いていた Recordset オブジェクトも閉じられることがあります。

Database オブジェクトをプロシージャの適用範囲外で定義し、Database オブジェクトを閉じないでプロシージャを終了した場合、Database オブジェクトは、明示的に閉じられるか、そのオブジェクトを定義したモジュールが適用範囲外になるまで開かれたままです。

既に閉じられている Recordset、Database、Workspace の各オブジェクトを引数 object に指定すると、トラップできるエラーが発生します。

Clone メソッドで作成されたオブジェクトやその基となるオブジェクトで Close メソッドを使っても、どちらのオブジェクトも影響を受けません。


関連項目

Clone メソッド

Delete メソッド

OpenDatabase メソッド

OpenRecordset メソッド

Update メソッド (データ アクセス)


Close メソッド の対象

Database オブジェクト

Dynaset オブジェクト

QueryDef オブジェクト

Recordset オブジェクト

Snapshot オブジェクト

Table オブジェクト

Workspace オブジェクト


Delete メソッド

関連項目	例	対象

Recordset オブジェクト。

開いているダイナセット タイプまたはテーブル タイプの Recordset オブジェクトの、カレント レコードを削除します。Delete メソッドは、以前のバージョンの Dynaset オブジェクトや Table オブジェクトでも使うことができます。

コレクション。

コレクションに保存されているオブジェクトを削除します。

構文

recordset.Delete

collection.Delete objectname

Delete メソッドの構文の指定項目は次のとおりです。

指定項目	内容

recordset	削除するレコードを含む、開いているダイナセット タイプまたはテーブル タイプの Recordset、Table、Dynaset のいずれかのオブジェクトを示す、オブジェクト型の変数を指定します。

collection	コレクションを示すオブジェクト型の変数を指定します。

objectname	引数 collection に指定したオブジェクトの、Name プロパティに設定された文字列または文字列型 (String) の変数を指定します。

解説

Delete メソッドを使うと、レコードセットからカレント レコードを、コレクションからメンバを、データベースからテーブルを、テーブルからフィールドとインデックスを、それぞれ削除することができます。

レコードセット

Delete メソッドを使ってレコードセットからレコードを削除する場合には、あらかじめ引数  recordset に指定したレコードセットにカレント レコードが存在する必要があります。カレント レコードが存在しないと、トラップできるエラーが発生します。

テーブル タイプの Recordset オブジェクト、Table オブジェクト、あるいはダイナセット タイプの Recordset オブジェクト、Dynaset オブジェクトでは、Delete メソッドを使ってカレント レコードを削除し、アクセスできないようにします。カレント レコードを削除しても、カレント レコードは変わりませんが、削除したレコードを編集したり、使用したりすることはできません。カレント レコードを削除した後で別のレコードに移ると、削除したレコードを再びカレント レコードにすることはできなくなります。Recordset オブジェクトや Table オブジェクトの削除したレコードへの参照は無効になり、エラーが発生します。

削除を取り消すには、トランザクションと Rollback メソッドを使います。

ベース テーブルが、連鎖削除のリレーションを設定してある主テーブルである場合、カレント レコードを削除すると、外部キー側のテーブルにあるレコードも削除されることがあります。

コレクション

Delete メソッドを使うと、持続的なオブジェクトを削除することができます。コレクションが、Databases、Recordsets、WorkSpaces のいずれか (それぞれメモリにだけ格納) の場合に、開いているまたはアクティブなオブジェクトをコレクションから削除するには、Close メソッドを使ってそのオブジェクトを閉じます。

保存されているオブジェクトはすぐに削除されますが、データベース構造の変更によって影響を受ける可能性があるコレクションでは Refresh メソッドを使います。

TableDefs コレクションから TableDef オブジェクトを削除すると、テーブルの定義とデータが削除されます。

次の表に、 Delete メソッドを使う場合の条件を示します。最初の列のオブジェクトは、表の 2 番めの列のコレクションを含みます。表の 3 番めの列は、そのコレクションからオブジェクトを削除できる条件を示しています。たとえば、Database オブジェクトの Containers コレクションから Container オブジェクトを削除することはできません。

オブジェクト	コレクション	Delete メソッドが使える条件
DBEngine	Workspaces	使えません。Close メソッドを使います。
Workspace	Databases	使えません。Close メソッドを使います。
Database	Containers	使えません。
Database	Recordsets	使えません。Close メソッドを使います。
Container	Documents	使えません。
Index	Fields	データベースに追加されていない新規オブジェクトで使います。
QueryDef	Fields	使えません。
QueryDef	Parameters	使えません。
Recordset	Fields	使えません。
Relation	Fields	データベースに追加されていない新規オブジェクトで使います。
TableDef	Fields	データベースに追加されていない新規オブジェクトか TableDef オブジェクトの Updatable プロパティが真 (True) に設定されている場合。
TableDef	Indexes	データベースに追加されていない新規オブジェクトか、TableDef オブジェクトの Updatable プロパティが真 (True) に設定されている場合。
Database 、Field 、Index 、QueryDef 、TableDef	Properties	プロパティがユーザー定義の場合。
注意   Jet エンジン Version 3.0 では、DAO の編集用メソッド (AddNew、Update、Edit および Update メソッド) をループの中で使って複数のレコードを編集しようとすると、そのループ全体に暗黙のトランザクションが適用されます。暗黙のトランザクションが適用されることにより、ループ内の更新が即時にデータベースに反映されるとは限らなくなります。これにより、エラー処理、ページのロック、および変更が他のユーザーから参照可能になるタイミングに影響が及ぶこともあります。変更が即時にデータベースに書き込まれるようにするには、それぞれの Edit メソッドから Update メソッドまでの処理に対して明示的にトランザクションを適用するようにしてください。トランザクションの詳細については、BeginTrans メソッド、CommitTrans メソッド、Rollback メソッドのトピックを参照してください。


関連項目

AddNew メソッド

Append メソッド

BeginTrans、CommitTrans、Rollback メソッド

Close メソッド

Count プロパティ (データ アクセス)

Dynaset オブジェクト

Name プロパティ (データ アクセス)

Recordset オブジェクト、Recordsets コレクション

Refresh メソッド (データ アクセス)

Table オブジェクト


Delete メソッド の対象

データ アクセス オブジェクトとコレクション

Dynaset オブジェクト

Recordset オブジェクト (ダイナセット タイプとテーブル タイプのみ)

Table オブジェクト


Edit メソッド

関連項目	例	対象

カレント レコードを編集できるように、ダイナセット タイプまたはテーブル タイプの Recordset オブジェクトから、カレント レコードをコピー バッファにコピーします。Edit メソッドは、以前のバージョンの Dynaset オブジェクトおよび Table オブジェクトでも使うことができます。

構文

recordset.Edit

引数 recordset には、編集するレコードを含む、更新可能な Recordset オブジェクトの名前を指定します。指定するオブジェクトは、開いていることを前提とします。

解説

カレント レコードを変更する場合は、Edit メソッドを使ってあらかじめカレント レコードをコピー バッファにコピーしてください。レコードを変更したら、Update メソッドを使って変更内容を保存します。

注意   レコードを編集した後で、Update メソッドを使わずに別のレコードへの移動を実行すると、変更内容は失われます。また、その recordset を閉じるか、レコードセットまたは親の Database オブジェクトを宣言しているプロシージャを終了すると、編集したレコードとその変更内容は破棄されます。これらの操作を実行しても警告は表示されません。

マルチユーザー環境で、Recordset オブジェクトの LockEdits プロパティを真 (True) に設定すると、Edit メソッドを使ったときから更新が終了するまで、レコードは排他的にロックされます。LockEdits プロパティを偽 (False) に設定すると、データベースでレコードが更新される直前に、レコードは共有的にロックされ、編集前のレコードと比較されます。Edit メソッドを使った後のレコードが変更されていると、Update メソッドは呼び出されず、トラップできるエラー (3197) が発生します。

注   ODBC や組み込み可能な ISAM のような外部データベースでは、常に共有的なロックが使われます。

カレント レコードは、Edit メソッドを使った後も変わりません。

Edit メソッドを使うには、カレント レコードが必要です。カレント レコードがない場合、あるいは、開いているテーブル タイプまたはダイナセット タイプの Recordset、Table、Dynaset のいずれかのオブジェクトを引数 recordset に指定していない場合、エラーが発生します。

Edit メソッドを使うときにエラーが発生する条件は、次のとおりです。

カレント レコードがない。

データベースやレコードセットが読み取り専用に設定されている。

レコード上のフィールドを更新できない。

他のユーザーがデータベースやレコードセットを排他的に開いている。

他のユーザーが対象レコードを含むページをロックしている。

注意   Jet データベース エンジン Version 3.0 では、DAO の編集用メソッド (AddNew、Update、Edit および Update メソッド) をループの中で使って複数のレコードを編集しようとすると、そのループ全体に暗黙のトランザクションが適用されます。暗黙のトランザクションが適用されることにより、ループ内の更新が即時にデータベースに反映されるとは限らなくなります。これにより、エラー処理、ページのロック、および変更が他のユーザーから参照可能になるタイミングに影響が及ぶこともあります。変更が即時にデータベースに書き込まれるようにするには、それぞれの Edit メソッドから Update メソッドまでの処理に対して明示的にトランザクションを適用するようにしてください。トランザクションの詳細については、BeginTrans メソッド、CommitTrans メソッド、Rollback メソッドのトピックを参照してください。


関連項目

AddNew メソッド

Delete メソッド

Dynaset オブジェクト

LockEdits プロパティ

Recordset オブジェクト、Recordsets コレクション

Table オブジェクト

Update メソッド (データ アクセス)


Edit メソッドの対象

Dynaset オブジェクト

Recordset オブジェクト (ダイナセット タイプとテーブル タイプのみ)

Table オブジェクト


FindFirst、FindLast、FindNext、FindPrevious メソッド

関連項目	例	対象

ダイナセット タイプまたはスナップショット タイプの Recordset オブジェクトから、指定された条件を満たす先頭、末尾、次または前のレコードを検索し、そのレコードをカレント レコードにします。Findxxx メソッドは、以前のバージョンの Dynaset オブジェクトと Snapshot オブジェクトでも使うことができます。

構文

recordset.{FindFirst | FindLast | FindNext | FindPrevious} criteria

Findxxx メソッドの構文の指定項目は次のとおりです。

指定項目	内容

recordset	既存のダイナセットまたはスナップショット タイプの Recordset オブジェクト、Dynaset オブジェクトまたは Snapshot オブジェクトのいずれかの名前を指定します。

criteria	Findxxx メソッドの条件として使う文字列式 (SQL ステートメントの WHERE 句で WHERE を省略したもの) を指定します。

解説

特定の条件を満たすレコードではなく、すべてのレコードを対象に検索を実行する場合は、レコードからレコードへの移動を行う Movexxx メソッドを使います。テーブル タイプの Recordset オブジェクトでレコードを検索するには、Seek メソッドを使います。

条件を満たすレコードが見つからない場合は、カレント レコードのポインタはレコードセットの先頭のレコードに移り、NoMatch プロパティが真 (True) に設定されます。条件を満たすレコードが recordset に複数存在する場合、条件を満たす最初のレコードは FindFirst メソッドで、次のレコードは FindNext メソッドで検索されます。

注意   カレント レコードを編集する場合、他のレコードに移動する前に必ず Update メソッドを使って変更内容を保存してください。Update メソッドを使わずに別のレコードへ移動すると、変更内容は失われます。また、この操作を実行しても警告は表示されません。

Findxxx メソッドは、次の表で指定する位置と方向で検索を開始します。

Findxxx メソッド	開始位置	検索の方向
FindFirst	レコードセットの先頭	レコードセットの末尾
FindLast	レコードセットの末尾	レコードセットの先頭
FindNext	カレント レコード	レコードセットの末尾
FindPrevious	カレント レコード	レコードセットの先頭
FindLast メソッドを使うと、検索を開始する前に、Microsoft Jet データベース エンジンによってレコードセット全体にレコードが読み込まれます。

Findxxx メソッドは、条件の指定がなく最初または次のレコードをカレント レコードに設定する Movexxx メソッドとは異なります。Movexxx メソッドと Findxxx メソッドは続けて呼び出すことができます。

注

NoMatch プロパティの設定値を常に調べて、検索が正しく行われているかどうかを確認してください。検索が成功すると、NoMatch プロパティは偽 (False) に設定されます。条件を満たすレコードが見つからなかった場合、NoMatch プロパティは真 (True) に設定され、カレント レコードはレコードセットの先頭のレコードに移ります。

Dim Here as Variant

Here = Rs.Bookmark

Rs.FindFirst "Name = 'Ms. Schmidt' "	' レコードセット内の名前を検索します。

If Rs.NoMatch then 	' レコードが見つかったかどうかを確認します。

Rs.Bookmark = Here	' 見つからなければ、カレント レコードに戻ります。

Else

. 	' 条件を満たすレコードが見つかりました。

.

.

End If

前方スクロール スナップショット タイプの Recordset オブジェクトでは、これらのメソッドを使用できません。

ODBC を介してアクセスしているレコードセットでは、Findxxx メソッドを使う代わりに、指定したレコードを検索する SQL を使った方が、検索時間を短縮できる場合があります。特に大きなレコードセットを使って作業する場合に有効です。

Jet データベース エンジンが U.S. 版でない場合でも、日付を含むフィールドを検索するときに、アメリカ (U.S.) の日付の形式 (月 - 日 - 年) を使わないとデータを検索できない場合があります。日付を変換するには、次のように Format 関数を使います。

MyDs.FindFirst "statdate > #" & Format(mydate,'m/d/yy' ) & "#"

ODBC データベースと大きなダイナセットを使って作業する場合に、Findxxx メソッド、Sort プロパティ、Filter プロパティを使うと速度が低下することがあります。このような場合、適切な ORDER BY 句や WHERE 句を使った SQL クエリー、パラメータ クエリー、または、特定のインデックス化したレコードを検索する QueryDef オブジェクトを使用すると、パフォーマンスを向上させることができます。

注   前方スクロール スナップショット タイプの Recordset オブジェクトでは、Findxxx メソッドを使用できません。


関連項目

AbsolutePosition プロパティ

Dynaset オブジェクト

Move メソッド (データ アクセス)

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

NoMatch プロパティ

PercentPosition プロパティ

Recordset オブジェクト、Recordsets コレクション

Seek メソッド

Snapshot オブジェクト


FindFirst、FindLast、FindNext、FindPrevious メソッドの対象

Dynaset オブジェクト

Recordset オブジェクト

Snapshot オブジェクト


MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

関連項目	例	対象

指定された Recordset オブジェクトの先頭、末尾、次または前のレコードに移動し、そのレコードをカレント レコードにします。Movexxx メソッドは、以前のバージョンの Dynaset、Snapshot、Table の各オブジェクトでも使うことができます。

構文

object.{MoveFirst | MoveLast | MoveNext | MovePrevious}

引数 object には、Recordset、Dynaset、Table、Snapshot のいずれかのオブジェクトの名前への参照を表すオブジェクト式を指定します。指定するオブジェクトは、開いていることを前提とします。

解説

条件を指定しないで、単にレコード間を移動したいときは、Movexxx メソッドを使います。ダイナセット タイプやスナップショット タイプの、Recordset、Dynaset、Snapshot などのオブジェクトで、特定の条件を満たすレコードを検索するときは、Findxxx メソッドを使います。テーブル タイプの Recordset オブジェクトや Table オブジェクトにあるレコードを検索するには、Seek メソッドを使います。

注意   カレント レコードを編集する場合、他のレコードへ移動する前に必ず Update メソッドを使って変更内容を保存してください。Update メソッドを使わずに別のレコードへ移動すると、変更内容は失われます。また、この操作を実行しても警告は表示されません。

引数 recordset で指定したレコードセットを開くと、BOF プロパティが偽 (False) に設定され、先頭のレコードがカレント レコードになります。レコードセットにレコードがない場合、BOF プロパティは真 (True) に設定され、カレント レコードは存在しないことになります。

MoveFirst メソッドや MoveLast メソッドを使う場合、先頭または末尾のレコードが既にカレント レコードになっているとカレント レコードは変更されません。

先頭のレコードがカレント レコードのときに MovePrevious メソッドを使うと、BOF プロパティは真 (True) に設定され、カレント レコードはなくなります。このときに再び MovePrevious メソッドを使うと、BOF プロパティは真 (True) のまま変化せず、エラーが発生します。

最後のレコードがカレント レコードのときに MoveNext メソッドを使うと、EOF プロパティが真 (True) に設定され、カレント レコードは存在しなくなります。このときに再び MoveNext メソッドを使うと、EOF プロパティは真 (True) のまま変化せず、エラーが発生します。

引数 recordset にテーブル タイプの Recordset オブジェクトや Table オブジェクトを指定した場合、レコードはテーブルのカレント インデックスに従って移動します。カレント インデックスは、Index プロパティで設定できます。カレント インデックスを設定しないと、戻されたレコードの順序は定義できないものになり、カレント レコードの位置は未定義の状態になります。

SQL クエリーや QueryDef オブジェクトに基づく Recordset オブジェクトで MoveLast メソッドを使うと、そのクエリーの実行は強制的に終了され、Recordset オブジェクトに完全にデータが読み込まれます。

注

前方スクロール スナップショットでは MoveFirst メソッドや MovePrevious メソッドが使えません。

Recordset オブジェクトのカレント レコードの位置を、指定したレコードの数だけ前方または後方に動かすには、Move メソッドを使います。


関連項目

AbsolutePosition プロパティ

BOF、EOF プロパティ

Dynaset オブジェクト

FindFirst、FindLast、FindNext、FindPrevious メソッド

Index プロパティ (データ アクセス)

Move メソッド (データ アクセス)

PercentPosition プロパティ

QueryDef オブジェクト、QueryDefs コレクション

RecordCount プロパティ

Recordset オブジェクト、Recordsets コレクション

Seek メソッド

Snapshot オブジェクト

Table オブジェクト

Update メソッド (データ アクセス)


MoveFirst、MoveLast、MoveNext、MovePrevious メソッドの対象

Dynaset オブジェクト

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

Table オブジェクト


GetChunk メソッド

関連項目	例	対象

Recordset オブジェクトの Fields コレクションにある、メモ型または OLE オブジェクト型の Field オブジェクトの内容の全部または一部を返します。GetChunk メソッドは、以前のバージョンの Dynaset、Snapshot、Table の各オブジェクトのフィールドでも使うことができます。

構文

stringvar = recordset ! field.GetChunk(offset, numbytes)

GetChunk メソッドの構文の指定項目は次のとおりです。

指定項目	内容

stringvar	文字列型 (String) またはバリアント型 (Variant) の変数名を指定します。引数 field に指定した Field オブジェクトのデータがこの変数に格納されます。

recordset	Fields コレクションを含む Recordset、Table、Dynaset、Snapshot のいずれかのオブジェクトを示すオブジェクト型の変数を指定します。

field	Type プロパティに定数 dbMemo (メモ型) または定数 dbLongBinary (OLE オブジェクト型) を設定した、Field オブジェクトの名前を指定します。

offset	コピー開始位置までのオフセット バイト数を示す数式を指定します。

numbytes	取得するバイト数を示す数式を指定します。

解説

引数 offset に 0 を指定して GetChunk メソッドを使うと、フィールドの先頭のバイトからコピーを開始します。

GetChunk メソッドによって返されたデータは、引数 stringvar に代入されます。文字列型変数のサイズには制限があるため、引数 numbytes に 64KB を超える数値は指定できません。フィールドのサイズが 64KB を超えるときは、GetChunk メソッドを使って、データを部分ごとに取得します。次に、AppendChunk メソッドを使って、部分ごとに分けられたデータをまとめます。引数 numbytes が 64KB を超えると、stringvar にバリアント型を指定した場合でも、エラーが発生します。

引数 numbytes にフィールドのバイト数を超える値を指定した場合は、フィールドの実際のバイト数分のデータが返されます。GetChunk メソッドによって引数 stringvar に代入されたデータのバイト数を取得するには、Len 関数を使います。

引数 offset や、引数 numbytes に 0 未満の値を指定すると、GetChunk メソッドは指定された数値を 2 の補数として扱います。


関連項目

AppendChunk メソッド

Dynaset オブジェクト

Field オブジェクト、Fields コレクション

FieldSize メソッド

Len 関数

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

Table オブジェクト

Type プロパティ (データ アクセス)


GetChunk メソッド の対象

Field オブジェクト


FieldSize メソッド

関連項目	例	対象

メモ型または OLE オブジェクト型のフィールドのバイト数を Recordset オブジェクトの Fields コレクション中の Field オブジェクトに返します。FieldSize メソッドは、以前のバージョンの Dynaset、Snapshot、Table の各オブジェクトのフィールドでも使うことができます。

構文

varname = recordset ! field.FieldSize( )

FieldSize メソッドの構文の指定項目は次のとおりです。

指定項目	内容

varname	長整数型 (Long) またはバリアント型 (Variant) の変数名を指定します。

recordset	Fields コレクションを含む Recordset、Table、Dynaset、Snapshot のいずれかのオブジェクトを示すオブジェクト型の変数を指定します。

field	Type プロパティに定数 dbMemo (メモ型)、dbLongBinary (OLE オブジェクト型) が設定されている Field オブジェクトの名前を指定します。

解説

OLE オブジェクト型やメモ型のフィールドは、サイズが 64KB を超えることがあるため、FieldSize メソッドで返される値は、長整数型の数値が格納できる変数に代入してください。

大きなフィールドを扱う場合は、AppendChunk メソッド、GetChunk メソッド、FieldSize メソッドを組み合わせて使ってください。

注   メモ型および OLE オブジェクト型以外の Field オブジェクトのサイズを取得するには、Size プロパティを使います。


関連項目

AppendChunk メソッド

Dynaset オブジェクト

Field オブジェクト、Fields コレクション

GetChunk メソッド

Recordset オブジェクト、Recordsets コレクション

Size プロパティ (データ アクセス)

Snapshot オブジェクト

Table オブジェクト

Type プロパティ (データ アクセス)


FieldSize メソッドの対象

Field オブジェクト


Update メソッド (データ アクセス)

関連項目	例	対象

コピー バッファの内容を、指定されたダイナセット タイプまたはテーブル タイプの Recordset オブジェクトに保存します。Update メソッドは、以前のバージョンの Dynaset オブジェクトや Table オブジェクトでも使うことができます。

構文

recordset.Update

引数 recordset には、更新可能なダイナセット タイプまたはテーブル タイプの Recordset、Dynaset、Table のいずれかのオブジェクトの名前を指定します。指定するオブジェクトは、開いていることを前提とします。

解説

Update メソッドを使って、カレント レコードとそのレコードに対する変更内容を保存します。

注意   次のような場合、カレント レコードへの変更内容は失われます。

Edit メソッドまたは AddNew メソッドを使った後、Update メソッドを使わずに別のレコードへ移動した場合。

Edit メソッドまたは AddNew メソッドを使った後、Update メソッドを使わずに、再び Edit メソッドまたは AddNew メソッドを使った場合。

Bookmark プロパティを別のレコードに設定した場合。

Update メソッドを使わずにレコードセットを閉じた場合。

レコードを編集するときは、Edit メソッドを使ってカレント レコードの内容をコピー バッファにコピーします。最初に Edit メソッドを使わないで、Update メソッドを使ったりフィールドの値を変更しようとしたりすると、エラーが発生します。

マルチユーザー環境で Recordset オブジェクトの LockEdits プロパティを真 (True) に設定すると、Edit メソッドを呼び出してから Update メソッドが呼び出されるまでの間、レコードは排他的にロックされたままです。LockEdits プロパティを偽 (False) に設定すると、Update メソッドが呼び出された後でレコードは共有的にロックされ、データベースで更新される直前に、編集前のレコードと比較されます。Edit メソッドを使った後でレコードが変更されていると、Update メソッドは呼び出されず、トラップできるエラー (3197) が発生します。ODBC や組み込み可能な ISAM のような外部データベースでは、常に共有的なロックが使われます。変更を反映させるための操作を続けるには、Update メソッドを繰り返し使います。他のユーザーがレコードを更新した時点のレコードに戻すには、Move メソッドを使ってカレント レコードを再設定するか、次のように Bookmark プロパティに Bookmark プロパティの値を再設定し、Edit メソッドによる操作を取り消します。

' エラー 3197 の検出。

Rs.BookMark = Rs.Bookmark	' データベース (変更時) からレコードを戻します。

レコードを新規に作成してレコードセットに追加するには、AddNew メソッドを使います。

注意   Jet エンジン Version 3.0 では、DAO の編集用メソッド (AddNew、Update、Edit および Update メソッド) をループの中で使って複数のレコードを編集しようとすると、そのループ全体に暗黙のトランザクションが適用されます。暗黙のトランザクションが適用されることにより、ループ内の更新が即時にデータベースに反映されるとは限らなくなります。これにより、エラー処理、ページのロック、および変更が他のユーザーから参照可能になるタイミングに影響が及ぶこともあります。変更が即時にデータベースに書き込まれるようにするには、それぞれの Edit メソッドから Update メソッドまでの処理に対して明示的にトランザクションを適用するようにしてください。トランザクションの詳細については、BeginTrans メソッド、CommitTrans メソッド、Rollback メソッドのトピックを参照してください。


関連項目

AddNew メソッド

BeginTrans、CommitTrans、Rollback メソッド

Dynaset オブジェクト

Edit メソッド

LockEdits プロパティ

OpenRecordset メソッド

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

Table オブジェクト

UpdateControls メソッド

UpdateRecord メソッド


Update メソッドの対象

Dynaset オブジェクト

Recordset オブジェクト (ダイナセット タイプとテーブル タイプのみ)

Table オブジェクト


CreateQueryDef メソッド

関連項目	例	対象

指定されたデータベースに、新しい QueryDef オブジェクトを作成します。

構文

Set querydef = database.CreateQueryDef([name][, sqltext])

CreateQueryDef メソッドの構文の指定項目は次のとおりです。

指定項目	内容

querydef	作成する QueryDef オブジェクトを表すオブジェクト型の変数を指定します。

database	作成した QueryDef オブジェクトを格納する、開いている Database オブジェクトを表すオブジェクト型の変数を指定します。

name	作成する QueryDef オブジェクトの名前を示す文字列式を指定します。

sqltext	QueryDef オブジェクトを定義する文字列式 (有効な SQL ステートメント) を指定します。この引数を省略する場合は、SQL プロパティの設定時に QueryDef オブジェクトを定義します。

解説

引数 sqltext を省略しても、QueryDef オブジェクトを作成したり変更したりすると、自動的に保存されます。

引数 name に指定したオブジェクトが、既に QueryDefs コレクションのメンバに存在すると、トラップできるエラーが発生します。

一時的に QueryDef オブジェクトを作成するには、新規に作成する QueryDef オブジェクトの Name プロパティに長さ 0 の文字列 ("") を設定するか、引数 name に長さ 0 の文字列を指定して CreateQueryDef メソッドを使用します。ただし、長さ 0 の文字列は永続的な QueryDef オブジェクトの名前として使用できないため、一時的な QueryDef オブジェクトは、コレクションに追加できません。新しい QueryDef オブジェクトの Name プロパティと SQL プロパティを設定すると、データベースに格納された QueryDefs コレクションにその QueryDef オブジェクトを追加できます。引数 name に文字列 (長さ 0 の文字列以外) を指定して QueryDef オブジェクトを作成すると、QueryDef オブジェクトは自動的に QueryDefs コレクションに追加されます。

QueryDefs コレクションから QueryDef オブジェクトを削除するには、Delete メソッドを使います。

QueryDef オブジェクトの SQL ステートメントを実行するには、Execute メソッドを使います。

ODBC データベースで SQL パススルー クエリーを実行するには、QueryDef オブジェクトを使います。詳細については、「QueryDef オブジェクト」を参照してください。


関連項目

Append メソッド

Connect プロパティ

CreateProperty メソッド

Database オブジェクト、Databases コレクション

Delete メソッド

DROP ステートメント (SQL)

Execute メソッド

LogMessages プロパティ

Name プロパティ (データ アクセス)

OpenRecordset メソッド

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

ReturnsRecords プロパティ

SELECT...INTO ステートメント (SQL)

SQL プロパティ

SQL パススルー クエリーの使い方

Type プロパティ (データ アクセス)

Value プロパティ (データ アクセス)


CreateQueryDef メソッドの対象

Database オブジェクト


DeleteQueryDef メソッド

関連項目	例	対象

指定された QueryDef オブジェクトをデータベースから削除します。

注   DeleteQueryDef メソッドは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ QueryDefs コレクションの Deleteメソッドを使ってください。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

構文

database.DeleteQueryDef name

DeleteQueryDef メソッドの構文の指定項目は次のとおりです。

指定項目	内容

database	開いている Database オブジェクトの名前を指定します。

name	既存の QueryDef オブジェクトの名前を示す文字列式を指定します。

解説

DeleteQueryDef メソッドで削除を行うと、引数 name への参照は無効になり、トラップできるエラーが発生します。

引数 name に指定した QueryDef オブジェクトが存在しない場合または開かれている場合、あるいは引数 database に指定したデータベースが開かれていない場合、エラーが発生します。


関連項目

Delete メソッド


DeleteQueryDef メソッドの対象

Database オブジェクト


ListFields メソッド

関連項目	対象

指定したレコードセットの各フィールドを 1 つのレコードとする Snapshot オブジェクトを作成します。

注   ListFields メソッドは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ、表示するフィールドを含むオブジェクトの Fields コレクションを使ってください。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

構文 1

Set snapshot = recordset.ListFields( )

構文 2

Set snapshot = database.ListFields(table | query)

ListFields メソッドの構文の指定項目は次のとおりです。

指定項目	内容

snapshot	作成する Snapshot オブジェクトのオブジェクト変数を指定します。

recordset	表示するフィールドを含む、既存の Dynaset、Snapshot、Table の各オブジェクトのいずれかの名前を指定します。

database	表示するテーブルやクエリーのフィールドを含む、開いている Database オブジェクトの名前を指定します。

table	表示するフィールドを含む Table オブジェクトの名前を指定します。

query	表示するフィールドを含む QueryDef オブジェクトの名前を指定します。


関連項目

Field オブジェクト、Fields コレクション

Snapshot オブジェクト

StrComp 関数


ListFields メソッドの対象

Database オブジェクト

Dynaset オブジェクト

Snapshot オブジェクト


ListIndexes メソッド

関連項目	対象

指定したテーブルの各インデックスの各フィールドを 1 つのレコードとするスナップショット タイプのオブジェクトを作成します。

注   ListIndexes メソッドは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ、表示するフィールドを含むオブジェクトの Indexes コレクションを使ってください。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

構文

Set snapshot = table.ListIndexes( )

ListIndexes メソッドの構文の指定項目は次のとおりです。

指定項目	内容

snapshot	作成するスナップショット タイプのオブジェクトのオブジェクト変数を指定します。

table	表示するインデックスを含む、既存のテーブルを識別するオブジェクト変数を指定します。


ListIndexes メソッドの対象

Table オブジェクト


関連項目

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

InStr 関数

Snapshot オブジェクト

StrComp 関数

TableDef オブジェクト


OpenQueryDef メソッド

関連項目	例	対象

指定された QueryDef オブジェクトを開いて編集します。

注   OpenQueryDef メソッドは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ、QueryDefs コレクション、SQL プロパティ、または QueryDef オブジェクトの Parameters コレクションを使ってください。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

構文

Set querydef = database.OpenQueryDef(name)

OpenQueryDef メソッドの構文の指定項目は次のとおりです。

指定項目	内容

querydef	編集する QueryDef オブジェクトの名前を指定します。

database	開いている Database オブジェクトの名前を指定します。

name	既存の QueryDef オブジェクトの名前を示す文字列式を指定します。

解説

OpenQueryDef メソッドがパラメータを含む場合は、クエリーを実行する前に適切な EB 型の引数を指定する必要があります。パラメータの設定は、パラメータの EB 型に依存します。たとえば、整数型 (Integer) が必要な場合には整数型のパラメータ、倍精度浮動小数点数型 (Double) が必要な場合には倍精度浮動小数点数型のパラメータを指定します。実行時に引数が設定されていないと、エラーが発生します。

次の例では、FindAmount という引数を設定しています。

MyQuery!FindAmount = 1000

引数 name が、存在しない QueryDef オブジェクトを参照している場合、エラーが発生します。


関連項目

Database オブジェクト、Databases コレクション

Parameter オブジェクト、Parameters コレクション

QueryDef オブジェクト、QueryDefs コレクション

SQL プロパティ


OpenQueryDef メソッドの対象

Database オブジェクト


Seek メソッド

関連項目	例	対象

インデックスが付けられたテーブル タイプの Recordset オブジェクトのレコードを検索し、指定された条件を満たすカレント インデックスを持つレコードをカレント レコードにします。Seek メソッドは、以前のバージョンの Table オブジェクトでも、インデックスが定義されていれば使うことができます。

構文

table.Seek comparison, key1, key2...

Seek メソッドの構文の指定項目は次のとおりです。

指定項目	内容

table	Recordset オブジェクトまたは Table オブジェクトの Index プロパティで指定されるインデックスを持つ、既存のテーブル タイプの Recordset オブジェクトまたは Table オブジェクトの名前を指定します。

comparison	文字列式。“<”、“<=”、“=”、“>=”、“>”のいずれかを指定します。

key1, key2...	テーブルの Primary プロパティの値を指定します。

解説

Seek メソッドを使う前に、Index プロパティにカレント インデックスを設定する必要があります。インデックスに重複するキー フィールドを指定すると、Seek メソッドは、条件を満たす最初のレコードを検索します。

注意   カレント レコードを編集するときは、他のレコードに移動する前に Update メソッドを使って変更内容を保存してください。Update メソッドを使わずに別のレコードへ移動すると、変更内容は失われます。また、これらの操作を実行しても警告は表示されません。

Seek メソッドは、指定したキー フィールドの中から、引数 comparison と引数 key1 に指定された条件を満たす最初のレコードを検索します。Seek メソッドは、見つかったレコードをカレント レコードにし、NoMatch プロパティに偽 (False) を設定します。Seek メソッドでレコードを見つけられない場合、NoMatch プロパティが真 (True) に設定され、カレント レコードは定義されません。

引数 comparison が“=”、“>=”または“>”の場合、Seek メソッドはインデックスの先頭から検索を開始します。引数 comparison が“<”または“<=”の場合、Seek メソッドは、最後のレコードのインデックスが重複していない限り、インデックスの最後から先頭に向かって検索を開始します。インデックスが重複している場合、Seek メソッドがインデックスの最後にある重複したインデックスのどこから検索を開始するかは決まっていません。

引数 key1 は、対応するカレント インデックスのフィールドと同じフィールドのデータ型でなければなりません。たとえば、カレント インデックスが社員番号のような数字フィールドを参照する場合、引数 key1 は数字でなければなりません。同様に、カレント インデックスが氏名のような Text フィールドを参照する場合、引数 key1 は文字列でなければなりません。

Seek メソッドを使う場合、カレント レコードは存在しなくてもかまいません。

既存のインデックスを取得するには、Indexes コレクションを使います。

注

NoMatch プロパティの設定値を常に調べて、Seek メソッドの検索状況を確認してください。検索が失敗すると、NoMatch プロパティに真 (True) が設定され、カレント レコードは定義されません。

特定の条件を満たすダイナセット タイプまたはスナップショット タイプの Recordset オブジェクトを検索するには、Findxxx メソッドを使います。特定の条件ではなく、すべてのレコードを対象にするには、レコードからレコードへ移動する Movexxx メソッドを使います。

アタッチ テーブルは、ダイナセット タイプまたはスナップショット タイプの Recordset、Dynaset、Snapshot のいずれかのオブジェクトとして開く必要があります。しかし、Seek メソッドはそれらをサポートしないため、アタッチ テーブル上で Seek メソッドを使うことはできません。ただし、OpenDatabase メソッドを使って直接開いた組み込み可能な ISAM データベースのテーブルでは、Seek メソッドが使えます。


関連項目

AbsolutePosition プロパティ

BOF、EOF プロパティ

FindFirst、FindLast、FindNext、FindPrevious メソッド

Index オブジェクト、Indexes コレクション

Index プロパティ (データ アクセス)

Move メソッド (データ アクセス)

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

NoMatch プロパティ

OpenDatabase メソッド

PercentPosition プロパティ

Recordset オブジェクト、Recordsets コレクション

Table オブジェクト


Seek メソッドの対象

Recordset オブジェクト (テーブル タイプのみ)

Table オブジェクト


Append メソッド

関連項目	例	対象

新規のデータ アクセス オブジェクトをコレクションに追加します。

構文

collection.Append object

Append メソッドの構文の指定項目は次のとおりです。

指定項目	内容

collection	新規オブジェクトを追加可能なコレクションを指定します。条件については、次の「解説」の表を参照してください。

object	追加するオブジェクトを表すオブジェクト型の変数を指定します。引数 collection に指定したものと同じ種類でなければなりません。

解説

Append メソッドは、データベースに新規テーブルを追加したり、テーブルに新規フィールドを追加する場合に使用します。また、インデックスにフィールドを追加する場合にも、使用します。

追加したオブジェクトは、Delete メソッドを使って削除するまで、持続的なオブジェクトとしてディスクに保存されます。指定したコレクションが Workspaces コレクションのときはメモリにだけ保存され、Close メソッドを使って閉じるまで、オブジェクトはアクティブになります。

オブジェクトの追加は直接行われますが、データベース構造体の変更で影響を受ける可能性があるコレクションでは、Refresh メソッドを使います。

追加するオブジェクトが完全でない場合、たとえば Fields コレクションに追加していない Field オブジェクトを Indexes コレクションに追加するようなとき、あるいは従属するオブジェクトに設定したプロパティが正しくない場合に、Append メソッドを使うとトラップできるエラーが発生します。たとえば、無効なフィールド型を指定して、Field オブジェクトを TableDef オブジェクトの Fields コレクションに追加しようとすると、トラップできるエラーが発生します。

次の表に、Append メソッドを使う場合の条件を示します。最初の列のオブジェクトは 2 番めの列のコレクションを含みます。3 番めの列は、コレクションにオブジェクトを追加する条件を示します。たとえば、Container オブジェクトを Database オブジェクトの Containers コレクションに追加することはできません。

オブジェクト	コレクション	Append を使う条件
Workspace	Databases	使えません。OpenDatabase メソッドを使います。
Database	Containers	使えません。
Database	Recordsets	使えません。OpenRecordset メソッドを使います。
Container	Documents	使えません。
Index	Fields	Index オブジェクトが新しく追加されていないオブジェクトの場合
QueryDef	Fields	使えません。
QueryDef	Parameters	使えません。
Recordset	Fields	使えません。
Relation	Fields	使えません。
TableDef	Fields	TableDef オブジェクトのUpdatable プロパティに真 (True) が設定されている場合。
TableDef	Indexes	TableDef オブジェクトの Updatable プロパティ に真 (True) が設定されている場合。
Database 、Field 、Index 、QueryDef 、TableDef	Properties	Database、Field、Index、QueryDef、または TableDef の各オブジェクトが持続的オブジェクトである場合。


関連項目

Close メソッド

Count プロパティ (データ アクセス)

Delete メソッド

Refresh メソッド (データ アクセス)


Append メソッドの対象

Containers コレクション

Databases コレクション

Documents コレクション

Fields コレクション

Groups コレクション

Indexes コレクション

Parameters コレクション

Properties コレクション

QueryDefs コレクション

Recordsets コレクション

Relations コレクション

TableDefs コレクション

Users コレクション


CreateDynaset メソッド

関連項目	例	対象

指定した Dynaset オブジェクト、Table オブジェクト、QueryDef オブジェクトまたは SQL ステートメントから、Dynaset オブジェクトを作成します。

注   CreateDynaset メソッドは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ OpenRecordset メソッドを使ってください。このメソッドにより、ダイナセット タイプの Recordset オブジェクトが作成されます。CreateDynaset メソッドで作成された以前のバージョンの Dynaset オブジェクトは、ダイナセット タイプの Recordset オブジェクトとは異なります。これらは類似したプロパティとメソッドを持っていますが、ダイナセット タイプの Recordset オブジェクトでは追加機能をサポートしています。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

構文

Set dynasetobject = database.CreateDynaset( source [, options ] )

Set dynasetobject = { recordset | querydef }.CreateDynaset( [ options ] )

CreateDynaset メソッドの構文の指定項目は次のとおりです。

指定項目	内容

dynasetobject	Dynaset オブジェクト型のオブジェクト変数を指定します。

database	開いているデータベースを指定するオブジェクト変数を指定します。

recordset	既存の Dynaset オブジェクトや Table オブジェクトを識別するオブジェクト変数を指定します。

querydef	既存の QueryDef オブジェクトを識別するオブジェクト変数を指定します。

source	既存のレコードセット、QueryDef オブジェクトまたは SQL ステートメントの名前の文字列式を指定します。

options	オプションを指定する数式を指定します。設定する値については、次の「設定値」を参照してください。数値は、互いに加算して組み合わせることができます。

設定値

引数 options には、単独または組み合わせた、次の定数や数値を指定できます。

定数	値	内容

dbDenyWrite	1	マルチユーザーまたはマルチタスク環境で、ユーザーが Dynaset オブジェクトを開いていると、他のユーザーはその Dynaset オブジェクトのテーブルのレコードを変更できません。この定数は、管理の目的にだけ使います。

dbReadOnly	4	Dynaset オブジェクトのレコードは変更できませんが、動作速度が向上します。

dbAppendOnly	8	Dynaset オブジェクトには、新規レコードの追加のみ可能です。既存レコードの読み取り、更新はできません。

dbInconsistent	16	Dynaset オブジェクトの他の行に影響を与えますが、Dynaset オブジェクトのすべてのフィールドを対象にした更新を行うことができます。

dbConsistent	32	(既定値) フィールドを対象に更新を行います。Dynaset オブジェクトの他の行には影響を与えません。

dbSQLPassThrough	64	SQL ステートメントで作成された Dynaset オブジェクト専用の値です。SQL サーバー データベースのテーブルに Dynaset オブジェクトを作成する場合などに、SQL ステートメントを ODBC データベースに渡します。Dynaset オブジェクトは更新できません。SQL パススルーでは、Dynaset オブジェクトを使わずに、スナップショット タイプの Recordset オブジェクトまたは Snapshot オブジェクトを使う方が効率的な場合もあります。ODBC リモート データベース以外では無効です。

注   レコードを返さない SQL パススルー クエリーは、CreateDynaset メソッドを使って実行することができません。この機能は Visual Basic Version 3.0 ではサポートされていましたが、Version 4.0 ではサポートされていません。

定数 dbInconsistent と dbConsistent の両方を指定した場合、またはどちらも指定しない場合は、既定値が使用されます。

解説

Dynaset オブジェクトや Snapshot オブジェクトで CreateDynaset メソッドを使うと、新しい Dynaset オブジェクトが作成されます。この Dynaset オブジェクトの持つレコードは、Dynaset オブジェクトまたは Snapshot オブジェクトの Filter および Sort の 2 つのプロパティによってフィルタがかけられ、並べ替えられたものです。CreateDynaset メソッドは、呼び出される前に作成された Dynaset オブジェクトや Snapshot オブジェクトの内容には影響を与えません。大きなレコードセットを使う処理では、これらのプロパティを使わずに条件に合うような WHERE 句や ORDER BY 句を使って SQL クエリーを作成する方が効率的です。

Dynaset オブジェクトは SQL パススルーで使用できますが、クエリーから返されるのは 1 件のみで、他の戻りレコードは捨てられます。複数のレコードを返すクエリーを実行するには、QueryDef オブジェクトを使います。

パラメータを持つ QueryDef オブジェクトから Dynaset オブジェクトを作成するには、QueryDef オブジェクトを開き、パラメータを設定した後で CreateDynaset メソッドを使います。QueryDef オブジェクトのパラメータを設定するには、次の構文を使います。

querydef ! parameter = parametervalue

データを読み取るだけで変更しない場合、Snapshot オブジェクトを使うと、読み取り専用の Dynaset オブジェクトよりも処理速度が向上します。ただし、読み取り専用の Dynaset オブジェクトでは、オブジェクトを使用中に他のユーザーによって行われた変更が反映されるのに対し、Snapshot オブジェクトでは変更が反映されません。

注   プログラムで、同じ内容の 2 つの Dynaset オブジェクトを作成する必要がある場合、まず 1 つの Dynaset オブジェクトを作成し、次に Clone メソッドで 2 つめのオブジェクトを作成する方が効率的です。


関連項目

Clone メソッド

CreateQueryDef メソッド

CreateSnapshot メソッド

Filter プロパティ

OpenRecordset メソッド

OpenTable メソッド

Options プロパティ

Or 演算子

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Sort プロパティ


CreateDynaset メソッドの対象

Database オブジェクト

Dynaset オブジェクト

QueryDef オブジェクト、QueryDefs コレクション

Snapshot オブジェクト

Table オブジェクト


CreateSnapshot メソッド

関連項目	例	対象

指定されたテーブル、QueryDef オブジェクト、SQL ステートメントから Snapshot オブジェクトを作成します。

注   CreateSnapshot メソッドは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ OpenRecordset メソッドを使ってください。このメソッドにより、スナップショット タイプの Recordset オブジェクトが作成されます。CreateSnapshot メソッドを使って作成された、以前のバージョンの Snapshot オブジェクトは、スナップショット タイプの Recordset オブジェクトとは異なります。これらは類似したプロパティとメソッドを持っていますが、スナップショット タイプの Recordset オブジェクトでは追加機能をサポートしています。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

構文

Set snapshot = database.CreateSnapshot( source [, options ] )

Set snapshot = recordset|querydef.CreateSnapshot( [ options ] )

CreateSnapshot メソッドの構文の指定項目は次のとおりです。

指定項目	内容

snapshot	Snapshot オブジェクト型のオブジェクト変数を指定します。

database	開いているデータベースを示すオブジェクト変数を指定します。

recordset	既存の Dynaset、Snapshot、Table のいずれかのオブジェクトを示すオブジェクト変数を指定します。

querydef	既存の QueryDef オブジェクトを示すオブジェクト変数を指定します。

source	既存のレコードセット、QueryDef オブジェクト、SQL ステートメントの名前の文字列式を指定します。

options	オプションを指定する数式を指定します。設定する値については、次の「設定値」を参照してください。数値は、互いに加算して組み合わせることができます。

設定値

引数 options には、単独または組み合わせた、次の定数や数値を指定できます。

定数	値	内容

dbDenyWrite	1	マルチユーザーまたはマルチタスク環境で、ユーザーが Snapshot オブジェクトを開いていると、他のユーザーはその Snapshot オブジェクトのテーブルのレコードを変更できません。この定数は、管理の目的にだけ使います。

dbSQLPassThrough	64	SQL ステートメントで作成された Snapshot オブジェクト専用の値です。SQL サーバー データベースのテーブルに Snapshot オブジェクトを作成する場合などに、SQL ステートメントを ODBC データベースに渡します。ODBC リモート データベース以外では無効です。

注   レコードを返さない SQL パススルー クエリーは、CreateSnapshot メソッドを使って実行することができません。この機能は Visual Basic Version 3.0 ではサポートされていましたが、Version 4.0 ではサポートされていません。

解説

Dynaset オブジェクトのデータとは異なり、Snapshot オブジェクトのデータはその基となるテーブルにリンクされません。そのため、基となるテーブルのデータが変更されても Snapshot オブジェクトのデータは変更されません。また、Snapshot オブジェクトのデータは変更できません。

Dynaset オブジェクトまたは Snapshot オブジェクトに CreateSnapshot メソッドを使うと、それらのオブジェクトの Filter プロパティと Sort プロパティを使って抽出または並べ替えられたレコードを含む Snapshot オブジェクトが返されます。元の Dynaset オブジェクトまたは Snapshot オブジェクトの内容は、影響を受けません。

QueryDef オブジェクトに CreateSnapshot メソッドを使うと、QueryDef オブジェクトが実行され、QueryDef オブジェクトに定義されたデータのコピーの Snapshot オブジェクトが返されます。アクション クエリーを持つ QueryDef オブジェクトで CreateSnapshot メソッドを使うと、エラーが発生します。このような場合は Execute メソッドを使います。

パラメータを持つ QueryDef オブジェクトで CreateSnapshot メソッドを使うには、QueryDef オブジェクトを開き、パラメータを設定します。QueryDef オブジェクトのパラメータを設定するには、次の構文を使います。

querydef ! parameter = parametervalue

データを読み取るだけで変更しない場合、Snapshot オブジェクトを使うと、読み取り専用の Dynaset オブジェクトよりも処理能力が向上します。ただし、読み取り専用の Dynaset オブジェクトは、オブジェクトの使用中に他のユーザーが行った変更が反映されるのに対し、Snapshot オブジェクトでは変更が反映されません。


関連項目

CreateDynaset メソッド

Dynaset オブジェクト

Execute メソッド

Field オブジェクト、Fields コレクション

OpenRecordset メソッド

Options プロパティ

Or 演算子

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

Sort プロパティ

Table オブジェクト

TableDef オブジェクト、TableDefs コレクション


CreateSnapshot メソッドの対象

Database オブジェクト

Dynaset オブジェクト

QueryDef オブジェクト、QueryDefs コレクション

Snapshot オブジェクト

Table オブジェクト


Execute メソッド

関連項目	例	対象

指定された Database オブジェクトの SQL ステートメントを実行し、アクション クエリーを実行します。

構文

database.Execute source[, options]

querydef.Execute [options]

Database オブジェクトの、Execute メソッドの構文の指定項目は次のとおりです。

指定項目	内容

database	クエリーを実行する Database オブジェクトの名前を指定します。

source	SQL ステートメントまたは QueryDef オブジェクトを指定します。

options	クエリーのデータ整合性の種類を表す定数を指定します。設定する値については、次の「設定値」を参照してください。

QueryDef オブジェクトの、Execute メソッドの構文の指定項目は次のとおりです。

指定項目	内容

querydef	実行する SQL ステートメントを SQL プロパティに指定した QueryDef オブジェクトの名前を指定します。

options	クエリーのデータの性質を表す、整数または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 options には、次の定数を指定できます。

定数	内容

dbDenyWrite	他のユーザーの書き込みを禁止します。

dbInconsistent	(既定値) 矛盾のある更新を行います。

dbConsistent	一貫性のある更新を行います。

dbSQLPassThrough	SQL パススルー。ODBC データベースに SQL ステートメントを渡します。

dbFailOnError	エラーが発生した場合に、更新を取り消します。

dbSeeChanges	編集中のデータを他のユーザーが変更しようとした場合に、実行時エラーを生成します。

解説

Execute メソッドは、アクション クエリーでのみ使用できます。別の種類のクエリーで Execute メソッドを使うと、エラーが発生します。アクション クエリーはレコードを返さないため、Execute メソッドはレコードセットを返しません。

ヒント

構文的に正しい SQL ステートメントを記述し、正しいアクセス権があれば、複数行の修正や削除を行っても、Execute メソッドは失敗しません。ただし、Execute メソッドを使って更新クエリーや削除クエリーを実行する場合は、常に引数 options に定数 dbFailOnError を設定します。レコードがロックされて更新や削除ができない場合は、定数 dbFailOnError によるトラップできるエラーが発生し、変更内容が取り消されます。

パフォーマンスを向上させるため、特にマルチユーザー環境では、トランザクション内で Execute メソッドをネストします。現在の Workspace オブジェクトで BeginTrans メソッドを使った後で Execute メソッドを使い、Workspace オブジェクトの CommitTrans メソッドを使ってトランザクションを完了します。このようにすると、変更内容はディスクに保存され、クエリーの実行中に行われたロックは解除されます。

Database オブジェクトまたは Querydef オブジェクトのRecordsAffected プロパティを使うと、最新の Execute メソッドで影響を受けた、レコードの数を調べることができます。たとえば、RecordsAffected プロパティには、アクション クエリーを実行したときに、削除、更新、または挿入されたレコードの数が格納されます。Execute メソッドを呼び出して、Querydef オブジェクトのクエリーを実行すると、Querydef オブジェクトの RecordsAffected プロパティに、クエリーによって影響を受けたレコードの数が格納されます。

定数 dbInconsistent と定数 dbConsistent の両方を指定した場合、またはどちらも指定しない場合、既定値が設定されます。

レコードを返すクエリーで Execute メソッドを使うと、エラーが発生します。

ExecuteSQL メソッドと同様、Execute メソッドもレコードセットを返しません。

Execute メソッドと ExecuteSQL メソッドの違いは、次のとおりです。

ExecuteSQL メソッドは、SQL ステートメントによって影響を受ける行数を返します。これに対し Execute メソッドは、影響を受ける行数を返しません。

ExecuteSQL メソッドは、リモート ODBC データベースのみで動作します。リモート ODBC データベースの例として、SQL サーバーがあります。

SQL ステートメントの実行方法を設定するには、Execute メソッドを使います。


関連項目

Database オブジェクト、Databases コレクション

ExecuteSQL メソッド

QueryDef オブジェクト、QueryDefs コレクション

RecordsAffected プロパティ


Execute メソッドの対象

Database オブジェクト

QueryDef オブジェクト


ExecuteSQL メソッド

関連項目	例	対象

アクション クエリーを ODBC データベースで SQL ステートメントとして実行します。

注   ExecuteSQL メソッドは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ、外部の ODBC データベースの SQL クエリーを含む QueryDef オブジェクトでスナップショット タイプの Recordset オブジェクトを作成する OpenRecordset メソッドを使ってください。また、定数 dbSQLPassThrough を指定して、Execute メソッドを使うこともできます。

構文

rows = database.ExecuteSQL( sqlstatement )

ExecuteSQL メソッドの構文の指定項目は次のとおりです。

指定項目	内容

rows	アクション クエリーによって影響を受ける行数を指定します。長整数型 (Long) で指定します。

database	開いている Database オブジェクトを示すオブジェクト変数を指定します。

sqlstatement	レコードセットを返さない SQL ステートメントの文字列式を指定します。

解説

ExecuteSQL メソッドは、レコードを返さない SQL ステートメントについてのみ有効です。たとえば、SELECT 句を使う SQL ステートメントはレコードを返しますが、DELETE 句を使う SQL ステートメントはレコードを返しません。

Execute メソッドと同様に、ExecuteSQL メソッドもレコードセットを返しません。レコードを選択するクエリーで ExecuteSQL メソッドを使うと、エラーが発生します。

Execute メソッドと ExecuteSQL メソッドの違いは次のとおりです。

ExecuteSQL メソッドは、SQL ステートメントによって影響を受ける行数を返します。Execute メソッドは、影響を受ける行数を返しません。

ExecuteSQL メソッドは、リモート ODBC データベースでのみ動作します。リモート ODBC データベースの例として、SQL サーバーがあります。

SQL ステートメントの実行方法を設定するには、Execute メソッドを使います。

注   Execute メソッドを使うと、サーバー リソースを効率よく利用できます。操作によって影響を受ける行数を知る必要がない場合は、Execute メソッドを使います。


関連項目

CreateQueryDef メソッド

Execute メソッド

OpenQueryDef メソッド

QueryDef オブジェクト、QueryDefs コレクション

SQL パススルー クエリーの使い方


ExecuteSQL メソッドの対象

Database オブジェクト


ListTables メソッド

関連項目	対象

指定されたデータベースに含まれる各テーブルまたは QueryDef オブジェクトを 1 つのレコードとする、Snapshot オブジェクトを作成します。

注   ListTables メソッドは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ QueryDefs コレクションまたは TableDefs コレクションを使ってください。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

構文

Set snapshot = database.ListTables( )

ListTables メソッドの構文の指定項目は次のとおりです。

指定項目	内容

snapshot	作成する Snapshot オブジェクトの名前を指定します。

database	表示する TableDef オブジェクトまたは QueryDef オブジェクトを含む、開いている Database オブジェクトの名前を指定します。


関連項目

QueryDef オブジェクト、QueryDefs コレクション

TableDef オブジェクト、TableDefs コレクション


ListTables メソッドの対象

Database オブジェクト


OpenTable メソッド

関連項目	例	対象

既存のテーブルを開き、Table オブジェクトを作成します。

注   OpenTable メソッドはVisual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ、テーブル タイプの Recordset オブジェクトが作成される OpenRecordset メソッドを使ってください。OpenTable メソッドで作成された以前のバージョンの Table オブジェクトは、テーブル タイプの Recordset オブジェクトとは異なります。これらは類似したプロパティとメソッドを持っていますが、テーブル タイプの Recordset オブジェクトでは追加機能をサポートしています。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

構文

Set table = database.OpenTable(name[, options])

OpenTable メソッドの構文の指定項目は次のとおりです。

指定項目	内容

table	編集する Table オブジェクトの名前を指定します。

database	開いている Database オブジェクトの名前を指定します。

name	database の既存のテーブルの名前を示す文字列式を指定します。アタッチ テーブルの名前は指定できません。

options	定数または定数を加算した値を指定します。設定する値については、次の「設定値」を参照してください。この引数を省略すると、読み取りと書き込みを行う共有的アクセスが可能になります。

設定値

引数 options には、次の定数を指定できます。

定数	内容

dbDenyWrite	マルチユーザーまたはマルチタスク環境でテーブルが開かれている間、他のユーザーがレコードに変更を加えることはできません。

dbDenyRead	マルチユーザーやマルチタスク環境でテーブルが開かれている間、他のユーザーがレコードを読むことはできません。この定数は、管理の目的にだけ使います。

dbReadOnly	レコードは変更できません。操作によっては処理速度が向上します。

テーブルが既に排他的アクセスで開かれている場合、OpenTable メソッドを使うと、エラーが発生します。


関連項目

OpenRecordset メソッド

Recordset オブジェクト、Recordsets コレクション

Table オブジェクト


OpenTable メソッドの対象

Database オブジェクト


Refresh メソッド (データ アクセス)

関連項目	対象

コレクションに含まれるオブジェクトを更新して、データベースの現在の内容を反映させます。Recordset オブジェクトを閉じたり再構築したりする場合に Refresh メソッドを使います。

構文

collection.Refresh

解説

Refresh メソッドは、Databases、Recordsets、および Workspaces などのコレクションの非持続的なオブジェクトには使えません。

注   Microsoft Jet データベース エンジンが、QueryDef、Recordset、TableDef の各オブジェクトの Fields コレクションで Field オブジェクトの位置を決定するには、それぞれの Field オブジェクトの OrdinalPosition プロパティを使います。Fields コレクションに含まれている Field オブジェクトの OrdinalPosition プロパティの値が変更された後に Refresh メソッドを呼び出すと、その Fields コレクション内のオブジェクトの順序が変わる可能性があります。

他のユーザーがデータベースを変更する可能性があるマルチユーザー環境や、データベースへの変更によって間接的に影響を受けるコレクションでは、Refresh メソッドを使います。たとえば、Users コレクションを変更する場合、Groups コレクションを使う前に Groups コレクションに対して Refresh メソッドを使う必要があります。

ヒント   コレクションは、最初に参照されたときにオブジェクトが格納され、他のユーザーによる変更が自動的に反映されることはありません。コレクション内の特定のオブジェクトの有無が問題になるアプリケーションを実行する前には、Refresh メソッドを使って他のユーザーによる変更を反映し、コレクションをできるだけ最新のものにしてください。


関連項目

Append メソッド

Close メソッド

Delete メソッド

OrdinalPosition プロパティ

Requery メソッド


Refresh メソッドの対象

Containers コレクション

Documents コレクション

Fields コレクション

Groups コレクション

Indexes コレクション

Parameters コレクション

Properties コレクション

QueryDefs コレクション

Relations コレクション

TableDefs コレクション

Users コレクション


BeginTrans、CommitTrans、Rollback メソッド

関連項目	例	対象

各トランザクション メソッドは、Workspace オブジェクトによって定義されたセッション中のトランザクション処理を次のように管理します。

BeginTrans メソッドは、新規にトランザクションを開始します。

CommitTrans メソッドは、カレント トランザクションを終了し、変更内容を保存します。

Rollback メソッドは、カレント トランザクションを終了し、Workspace オブジェクトにあるデータベースを、カレント トランザクションが開始されたときの状態に戻します。

各トランザクション メソッドは、Database オブジェクトでも使うことができます。ただし各 Database メソッドは、以前のバージョンとの互換性を保つためにサポートされているので、できるだけ使わないでください。

構文

workspace.BeginTrans | CommitTrans | Rollback

database.BeginTrans | CommitTrans | Rollback

各トランザクション メソッドの構文の指定項目は次のとおりです。

指定項目	内容

workspace	Workspace オブジェクトを示すオブジェクト型の変数を指定します。

database	Database オブジェクトを示すオブジェクト型の変数を指定します。

解説

これらのメソッドは、Workspace オブジェクトや Database オブジェクトでデータベースへの一連の変更を 1 つの単位として扱う場合に使います。

注   指定された Workspace オブジェクトは、すべてのトランザクション メソッドの対象になります。Database オブジェクトでこれらのメソッドを使う場合は、Database オブジェクトが属している Workspace オブジェクトがメソッドの対象になります。各トランザクション ステートメントを使うと、既定値の Workspace オブジェクトが使われますが、この方法はできるだけ使用しないでください。

通常、複数テーブルのレコードを更新する場合は、テーブルの更新を確定 (コミット) させ、更新前の状態に戻す (ロールバック) 場合は、トランザクションを使ってデータの参照整合性を維持します。たとえば、お金を口座から他の口座へ移す場合、まず口座からいくらかのお金を引き出し、次にそのお金を他の口座に入金します。もし、この更新処理のどちらかが失敗すると、差し引きが 0 になりません。最初のレコードを更新する前に BeginTrans メソッドを使うと、その後に続く更新処理が失敗した場合には、Rollback メソッドを使ってすべての更新を元に戻すことができます。そして、最後のレコードの更新が成功したら、CommitTrans メソッドを使います。

注意   Workspace オブジェクトでは、トランザクションの対象は、常に Workspace オブジェクト全体であり、1 つのデータベースやレコードセットに限定されることはありません。Workspace オブジェクトのトランザクション処理中に複数のデータベースやレコードセットを更新した場合でも、Rollback メソッドは、そのデータベースとレコードセットに対するすべての更新を元に戻します。

一度 CommitTrans メソッドを呼び出すと、そのトランザクションがネストされている、別のトランザクションがロールバックしない限り、トランザクション内の変更を元に戻すことはできません。単独の Workspace オブジェクトで一度に開くことができるのは、5 段階のトランザクションまでです。この場合、BeginTrans メソッドと CommitTrans メソッド、または Rollback メソッドをいくつか組み合わせ、ネストして使います。トランザクションがネストされている場合、より高レベルのネストで、トランザクションの保存やロールバックを行う前に、カレント トランザクションの保存やロールバックを行う必要があります。ネストされず、重複したスコープを持つ別のトランザクションを、同時に実行するには、同一のトランザクションを持つ別の Workspace オブジェクトを作成します。

トランザクションの保存やロールバックを行わずに Workspace オブジェクトを閉じると、そのトランザクションは自動的にロールバックされます。

BeginTrans メソッドを呼び出さずに、CommitTrans メソッド、または Rollback メソッドを呼び出すと、エラーが発生します。

データベースによっては、トランザクションをサポートしていないものもあります。このような場合は、Database オブジェクトや Recordset オブジェクトの Transactions プロパティは偽 (False) になります。データベースがトランザクションをサポートしていることを確認するには、BeginTrans メソッドを使う前に Database オブジェクトの Transactions プロパティの値を調べます。複数のデータベースに基づく Recordset オブジェクトでは、Recordset オブジェクトの Transactions プロパティを調べます。 レコードセットがすべて Microsoft Jet データベース エンジンのテーブルに基づいている場合、その Transactions プロパティに真 (True (-1)) が設定され、トランザクションを使用できます。別のデータベース製品によって作成されたテーブルを基にしたダイナセット タイプの Recordset オブジェクトは、トランザクションをサポートしていない場合があります。たとえば、Paradox のテーブルに基づく Recordset オブジェクトではトランザクションが使用できません。このときの Transactions プロパティは偽 (False (0)) です。Database オブジェクトや Recordset オブジェクトがトランザクションをサポートしていないと、メソッドは無視され、エラーも発生しません。

外部の ODBC SQL データベースでは、トランザクションをネストすることはできません。

Jet データベース エンジン Version 3.0 では、DAO の編集用メソッド (AddNew、Update、Edit および Update メソッド) をループの中で使って複数のレコードを編集しようとすると、そのループ全体に暗黙のトランザクションが適用されます。暗黙のトランザクションが適用されることにより、ループ内の更新が即時にデータベースに反映されるとは限らなくなります。これにより、エラー処理、ページのロック、および変更が他のユーザーから参照可能になるタイミングに影響が及ぶこともあります。変更が即時にデータベースに書き込まれるようにするには、それぞれの Edit メソッドから Update メソッドまでの処理に対して明示的にトランザクションを適用するようにしてください。トランザクションの詳細については、BeginTrans メソッド、CommitTrans メソッド、Rollback メソッドのトピックを参照してください。

While NOT RS.EOF

WS.BeginTrans

RS.Edit

. . .	'Make some changes

RS.Update

WS.CommitTrans

RS.Movenext

WEND

ヒント   データの整合性を維持するには、トランザクションを実行します。また、ディスク アクセスによる処理の中断をデータベースのトランザクション ブロック単位で行うと、操作のバッファリングが確実になりディスク アクセスの回数が著しく削減されるため、アプリケーションの処理能力が向上する場合もあります。

注   Jet データベース エンジンがトランザクションを開始するときには、ワークステーションの環境変数 TEMP で指定されたディレクトリのファイルにその操作を記録します。トランザクション ログ ファイルが、TEMP ドライブで最大サイズになると、Jet データベース エンジンがトラップできるエラー (2004) を生成します。このような状況で、CommitTrans メソッドを使うと、TEMP ドライブの空き領域がなくなるまで操作をコミットできます。一方、その他の終了していない操作が失われるため、それらの操作を再実行しなければなりません。Rollback メソッドを使うと、トランザクション ログを解放し、トランザクションのすべての操作がロールバックされます。


関連項目

Close メソッド

DefaultUser、DefaultPassword プロパティ

CreateWorkspace メソッド

Database オブジェクト、Databases コレクション

Recordset オブジェクト、Recordsets コレクション

Refresh メソッド (データ アクセス)

Workspace オブジェクト、Workspaces コレクション


BeginTrans、CommitTrans、Rollback メソッドの対象

Database オブジェクト

Workspace オブジェクト


Clone メソッド

関連項目	例	対象

Recordset オブジェクトの複製を作成します。Clone メソッドは、以前のバージョンの Dynaset、Snapshot、Table の各オブジェクトでも使うことができます。

構文

Set duplicate = original.Clone( )

Clone メソッドの構文の指定項目は次のとおりです。

指定項目	内容

duplicate	Recordset、Dynaset、Snapshot、Table の各オブジェクトのうち、どのオブジェクトの複製を作成するかを示すオブジェクト型の変数を指定します。

original	Recordset、Dynaset、Snapshot、Table の各オブジェクトのうち、どのオブジェクトがコピー元なのかを示すオブジェクト型の変数を指定します。

解説

Clone メソッドを使って複数のレコードセット (Recordset、Dynaset、Snapshot、Table のいずれかのオブジェクト) の複製を作成します。それぞれのレコードセットにはカレント レコードがあります。Clone メソッドは、オブジェクトや基となる構造体のデータを変更することはありません。Clone メソッドを使うと、複数のレコードセット間でブックマークを共有することができます。これは、ブックマークが交換可能なためです。

注   テーブル タイプの Recordset オブジェクトの複製を作成した場合、コピー元の Recordset オブジェクトの Index プロパティの設定値は新しい Recordset オブジェクトに反映されません。Index プロパティに同じ値を設定するには、設定値をコピーするためのコードを記述する必要があります。

レコードセットで複数のカレント レコードが必要な操作を実行する場合、Clone メソッドが使用できます。この方法は、2 つめのレコードセットを作成するよりも高速で効率的です。

Clone メソッドで作成したレコードセットが作成された時点では、カレント レコードは存在しません。引数 duplicate に指定したレコードセット オブジェクトを使う前に、Bookmark プロパティを設定するか、Movexxx メソッド、Findxxx メソッド (ダイナセットとスナップショット タイプの Recordset、Dynaset、Snapshot の各オブジェクトの場合)、Seek メソッド (テーブル タイプの Recordset オブジェクトおよび Table オブジェクトの場合) のいずれかのメソッドを使って、カレント レコードを指定します。

QueryDef オブジェクトからレコードセットの複製を作成しても、クエリーが再び実行されることはありません。

元のオブジェクトや複製のオブジェクトで再び Close メソッドを使っても、互いに影響を与えることはありません。

注   Clone メソッドは、前方スクロール スナップショット (定数 dbForwardOnly を設定したスナップショット タイプの Recordset オブジェクト) では使用できません。


関連項目

Bookmark プロパティ (データ アクセス)

Dynaset オブジェクト

Recordset オブジェクト、Recordsets コレクション


Clone メソッドの対象

Dynaset オブジェクト

Recordset オブジェクト

Snapshot オブジェクト

Table オブジェクト


ListParameters メソッド

関連項目	対象

指定された QueryDef オブジェクトの各パラメータを 1 レコードとする Snapshot オブジェクトを作成します。

注   ListParameters メソッドは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ、表示したいパラメータを持つオブジェクトの Parameters コレクションを使ってください。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

構文

Set snapshot = querydef.ListParameters( )

ListParameters メソッドの構文の指定項目は次のとおりです。

指定項目	内容

snapshot	スナップショット タイプのオブジェクト変数を指定します。

querydef	パラメータ情報のリストを作成する、開いている QueryDef オブジェクトを示すオブジェクト変数を指定します。


関連項目

Field オブジェクト、Fields コレクション

ListFields メソッド

ListIndexes メソッド

QueryDef オブジェクト


ListParameters メソッドの対象

QueryDef オブジェクト


CreateField メソッド

関連項目	例	対象

新しい Field オブジェクトを作成します。

構文

Set variable = object.CreateField([name[, type [, size]]])

CreateField メソッドの構文の指定項目は次のとおりです。

指定項目	内容

variable	Field オブジェクト型として宣言された変数を指定します。

object	Field オブジェクトを作成する Index、Relation、TableDef の各オブジェクトのいずれかの変数名を指定します。

name	作成する Field オブジェクトの固有名を示す文字列型 (String) の変数を指定します。有効な Field オブジェクトの名前については、「Name プロパティ (データ アクセス)」を参照してください。

type	作成する Field オブジェクトのデータ型を決定する整数型 (Integer) の定数を指定します。有効なデータ型については、「Type プロパティ (データ アクセス)」を参照してください。

size	テキストを含む Field オブジェクトの最大値をバイト単位で表す整数を指定します。引数 size の有効値の範囲については、「Size プロパティ (データ アクセス)」を参照してください。この引数は、数値フィールドや固定長フィールドでは無効です。

解説

省略できる引数を任意に省略して CreateField メソッドを使うと、オブジェクトをコレクションに追加する前に、適切な代入ステートメントを使って対応するプロパティの設定と解除を行うことができます。また、オブジェクトを追加した後で、設定を変更できるプロパティもあります。詳細については、各プロパティの説明を参照してください。

注   引数 type、引数 size は、TableDef オブジェクトの Field オブジェクトのみが対象になります。Field オブジェクトが、Index オブジェクトまたは Relation オブジェクトと関連付けられている場合、これらの引数は無視されます。

引数 name に、既にコレクションのメンバであるオブジェクトを指定して Append メソッドを使うと、トラップできるエラーが発生します。

コレクションから Field オブジェクトを削除するには、そのコレクションに対して Delete メソッドを使います。フィールドを参照するインデックスを作成すると、TableDef オブジェクトの Fields コレクションから Field オブジェクトを削除することはできません。


関連項目

Append メソッド

Delete メソッド

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

Name プロパティ (データ アクセス)

Relation オブジェクト、Relations コレクション

Size プロパティ (データ アクセス)

TableDef オブジェクト、TableDefs コレクション

Type プロパティ (データ アクセス)


CreateField メソッドの対象

Index オブジェクト

Relation オブジェクト

TableDef オブジェクト


CreateGroup メソッド

関連項目	例	対象

新しい Group オブジェクトを作成します。

構文

Set variable = object.CreateGroup([name[, pid]])

CreateGroup メソッドの構文の指定項目は次のとおりです。

指定項目	内容

variable	Group オブジェクト型として宣言された変数を指定します。

object	Group オブジェクトを作成する User オブジェクトまたは Workspace オブジェクトの変数名を指定します。

name	作成する Group オブジェクトの固有名を示す文字列型 (String) の変数を指定します。有効な Group オブジェクトの名前については、「Name プロパティ (データ アクセス)」を参照してください。

pid	グループ アカウントのユーザー識別子 (PID) を含む文字列型 (String) の変数を指定します。識別子は 4 ～ 20 文字の英数字でなければなりません。有効なパーソナルID については、「PID プロパティ」を参照してください。

解説

省略できる引数を任意に省略して CreateGroup メソッドを使うと、オブジェクトをコレクションに追加する前に、適切な代入ステートメントを使って、対応するプロパティの設定と解除を行うことができます。オブジェクトを追加した後で設定を変更できるプロパティもあります。詳細については、各プロパティの説明を参照してください。

引数 name に、既にコレクションのメンバであるオブジェクトを指定して Append メソッドを使うと、トラップできるエラーが発生します。

コレクションから Group オブジェクトを削除するには、そのコレクションに対して Delete メソッドを使います。


関連項目

Append メソッド

Delete メソッド

Group オブジェクト、Groups コレクション

Name プロパティ (データ アクセス)

PID プロパティ

User オブジェクト、Users コレクション

Workspace オブジェクト、Workspaces コレクション


CreateGroup メソッドの対象

User オブジェクト

Workspace オブジェクト


CreateIndex メソッド

関連項目	例	対象

新しい Index オブジェクトを作成します。

構文

Set variable = tabledef.CreateIndex([name])

CreateIndex メソッドの構文の指定項目は次のとおりです。

指定項目	内容

variable	Index オブジェクト型として宣言された変数を指定します。

tabledef	Index オブジェクトを作成する TableDef オブジェクトの変数名を指定します。

name	作成する Index オブジェクトの固有名を示す文字列型 (String) の変数を指定します。有効な Index オブジェクト名については、「Name プロパティ (データ アクセス)」を参照してください。

解説

引数 name を省略して CreateIndex メソッドを使うと、オブジェクトをコレクションに追加する前に、適切な代入ステートメントを使って Name プロパティの設定と解除を行うことができます。オブジェクトを追加した後で Name プロパティの設定を変更できるかどうかは、Indexes コレクションに含まれるオブジェクトの型に依存します。詳細については、「Name プロパティ (データ アクセス)」を参照してください。

引数 name に、既にコレクションのメンバであるオブジェクトを指定して Append メソッドを使うと、トラップできるエラーが発生します。

コレクションから Index オブジェクトを削除するには、そのコレクションに対して Delete メソッドを使います。


関連項目

Append メソッド

Delete メソッド

Index オブジェクト、Indexes コレクション

Name プロパティ (データ アクセス)

TableDef オブジェクト、TableDefs コレクション


CreateIndex メソッドの対象

TableDef オブジェクト


CreateProperty メソッド

関連項目	例	対象

ユーザー定義の新しい Property オブジェクトを作成します。

構文

Set variable = object.CreateProperty([name[, type[, value[, fDDL]]]])

CreateProperty メソッドの構文の指定項目は次のとおりです。

指定項目	内容

variable	Property オブジェクト型として宣言された変数を指定します。

object	Property オブジェクトを作成する Database、Field、Index、QueryDef、TableDef の各オブジェクトのいずれかの変数名を指定します。

name	作成する Property オブジェクトの固有名を示す文字列型 (String) の変数を指定します。Property オブジェクトの名前については、「Name プロパティ (データ アクセス)」を参照してください。

type	作成する Property オブジェクトのデータ型を定義する整数型 (Integer) の定数を指定します。有効なデータ型については、「Type プロパティ (データ アクセス)」を参照してください。

value	プロパティの初期値を示すバリアント型 (Variant) の変数を指定します。詳細については、「Value プロパティ (データ アクセス)」を参照してください。

fDDL	Property オブジェクトが DDL (データ定義言語) を含むオブジェクトかどうかを示すブール型 (Boolean) の変数を指定します。既定値は偽 (False) です。引数 fDDL に真 (True) を指定した場合、ユーザーのアクセス権が定数 dbSecWriteDef に指定されていなければ、Property オブジェクトの変更と削除は行われません。

解説

既にディスクに保存されている、持続的なオブジェクト (たとえば TableDef オブジェクト) の Properties コレクションのみ、ユーザー定義の Property オブジェクトを作成できます。

省略できる引数を任意に省略して CreateProperty メソッドを使うと、オブジェクトをコレクションに追加する前に、適切な代入ステートメントを使って、対応するプロパティの設定と解除が行えます。オブジェクトを追加した後で、設定を変更できるプロパティもあります。詳細については、各プロパティの説明を参照してください。

引数 name に、既にコレクションのメンバであるオブジェクトを指定して、Append メソッドを使うと、トラップできるエラーが発生します。

Properties コレクションからユーザー定義の Property オブジェクトを削除するには、その Properties コレクションに対して Delete メソッドを使います。組み込まれたプロパティを削除することはできません。

注   引数 fDDL を省略すると、既定値として偽 (False) が指定され、DDL を含まないオブジェクトになります。このような DDL に関する指定を行うプロパティは存在しないため、Property オブジェクトを DDL を含むオブジェクトから DDL を 含まないオブジェクトに変更するには、Property オブジェクトを削除してから、再び作成する必要があります。


関連項目

Append メソッド

Database オブジェクト、Databases コレクション

Delete メソッド

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

Name プロパティ (データ アクセス)

Property オブジェクト、Properties コレクション (データ アクセス)

QueryDef オブジェクト、QueryDefs コレクション

TableDef オブジェクト、TableDefs コレクション

Type プロパティ (データ アクセス)

Value プロパティ (データ アクセス)


CreateProperty メソッドの対象

Database オブジェクト

Field オブジェクト

Index オブジェクト

QueryDef オブジェクト

TableDef オブジェクト


CreateRelation メソッド

関連項目	例	対象

新しい Relation オブジェクトを作成します。

構文

Set variable = database.CreateRelation([name[, table[, foreigntable[, attributes]]]])

CreateRelation メソッドの構文の指定項目には、次のものがあります。

指定項目	内容

variable	Relation オブジェクト型として宣言された変数を指定します。

database	Relation オブジェクトを作成する Database オブジェクトの変数名を指定します。

name	作成する Relation オブジェクトの固有名を示す文字列型 (String) の変数を指定します。有効な Relation オブジェクトの名前については、「Name プロパティ (データ アクセス)」を参照してください。

table	リレーションの主テーブルの名前を示す文字列型の変数を指定します。Relation オブジェクトを追加するときにテーブルが存在しない場合は、トラップできるエラーが発生します。

foreigntable	リレーションの外部キー側のテーブルに名前を付ける文字列型の変数を指定します。Relation オブジェクトを追加する場合にテーブルが存在しないときは、トラップできるエラーが発生します。

attributes	リレーションの型についての情報を含む長整数型 (Long) の変数を指定します。詳細については、「Attributes プロパティ」を参照してください。

解説

Relation オブジェクトは、TableDef オブジェクトや QueryDef オブジェクトのフィールド間のリレーションについての情報を、Microsoft Jet データベース エンジン に渡します。Jet データベース エンジンは、Attributes プロパティを通して参照整合性を提供します。

省略できる引数を任意に省略して CreateRelation メソッドを使うと、オブジェクトをコレクションに追加する前に、適切な代入ステートメントを使って、対応するプロパティの設定と解除が行えます。オブジェクトを追加した後で、設定を変更できるプロパティもあります。詳細については、各プロパティの説明を参照してください。

Relation オブジェクトに Append メソッドを呼び出す前に、主キーと外部キーのリレーション テーブルを定義するために、適切な Field オブジェクトを追加する必要があります。

引数 name に、既にコレクションのメンバであるオブジェクトを指定した場合、または従属する Fields コレクション中の Field オブジェクト名が無効な場合、Append メソッドを使うと、トラップできるエラーが発生します。

コレクションから Relation オブジェクトを削除するには、コレクションに対して Delete メソッドを使います。


関連項目

Append メソッド

Attributes プロパティ

Database オブジェクト、Databases コレクション

Delete メソッド

Name プロパティ (データ アクセス)

QueryDef オブジェクト、QueryDefs コレクション

Relation オブジェクト、Relations コレクション

TableDef オブジェクト、TableDefs コレクション


CreateRelation メソッドの対象

Database オブジェクト


CreateTableDef メソッド

関連項目	例	対象

新しい TableDef オブジェクトを作成します。

構文

Set variable = database.CreateTableDef([name[, attributes[, source[, connect]]]])

CreateTableDef メソッドの構文の指定項目は次のとおりです。

指定項目	内容

variable	TableDef オブジェクト型として宣言された変数を指定します。

database	TableDef オブジェクトを作成する Database オブジェクトの変数名を指定します。

name	作成する TableDef オブジェクトの固有名を示す文字列型 (String) の変数を指定します。有効な TableDef オブジェクトの名前については、「Name プロパティ (データ アクセス)」を参照してください。

attributes	作成する TableDef オブジェクトの特性を示す長整数型 (Long) の変数を指定します。詳細については、「Attributes プロパティ」を参照してください。

source	データ ソースである外部データベースのテーブル名を含む文字列型の変数を指定します。引数 source に指定された文字列は、作成した TableDef オブジェクトの SourceTableName プロパティに設定されます。

connect	開いているデータベース、パススルー クエリーで使われるデータベース、アタッチ テーブルのソースについての情報を含む文字列型の変数を指定します。有効な接続文字列の情報については、「Connect プロパティ」を参照してください。

解説

省略できる引数を省略して CreateTableDef メソッドを使うと、オブジェクトをコレクションに追加する前に、適切な代入ステートメントを使って、対応するプロパティの設定と解除が行えます。作成したオブジェクトを追加した後で、設定を変更できるプロパティもあります。詳細については、各プロパティの説明を参照してください。

引数 name に、既にそのコレクションのメンバであるオブジェクトを指定するか、追加する TableDef オブジェクトまたは Field オブジェクトについて無効なプロパティを指定して Append メソッドを使うと、トラップできるエラーが発生します。

コレクションから TableDef オブジェクトを削除するには、そのコレクションに対して Delete メソッドを使います。


関連項目

Append メソッド

Attributes プロパティ

Connect プロパティ

Database オブジェクト、Databases コレクション

Delete メソッド

Name プロパティ (データ アクセス)

TableDef オブジェクト、TableDefs コレクション


CreateTableDef メソッドの対象

Database オブジェクト


CreateUser メソッド

関連項目	例	対象

新しい User オブジェクトを作成します。

構文

Set variable = object.CreateUser([name[, pid [, password]]])

CreateUser メソッドの構文の指定項目は次のとおりです。

指定項目	内容

variable	User オブジェクト型として宣言された変数を指定します。

object	User オブジェクトを作成する Group オブジェクトまたは Workspace オブジェクトの変数名を指定します。

name	作成する User オブジェクトの固有名を示す文字列型 (String) の変数を指定します。有効な User オブジェクトの名前については、「Name プロパティ (データ アクセス)」を参照してください。

pid	ユーザー アカウントのユーザー識別子 (PID) を含む文字列型 (String) の変数を指定します。識別子は 4 ～ 20 文字の英数字でなければなりません。有効なパーソナルID については、「PID プロパティ」を参照してください。

password	作成する User オブジェクトのパスワードを示す文字列型の変数を指定します。パスワードには 14 文字までのすべての ASCII 文字 (ただし 0 (Null 値) 以外) が使用できます。

解説

省略できる引数を任意に省略して CreateUser メソッドを使うと、オブジェクトをコレクションに追加する前に、適切な代入ステートメントを使って、対応するプロパティの設定と解除が行えます。オブジェクトを追加した後で、設定を変更できるプロパティもあります。詳細については、各プロパティの説明を参照してください。

引数 name に、既にそのコレクションのメンバであるオブジェクトを指定して Append メソッドを使うと、トラップできるエラーが発生します。

コレクションから User オブジェクトを削除するには、そのコレクションに対して Delete メソッドを使います。


関連項目

Append メソッド

Delete メソッド

Group オブジェクト、Groups コレクション

Name プロパティ (データ アクセス)

PID プロパティ

User オブジェクト、Users コレクション

Workspace オブジェクト、Workspaces コレクション


CreateUser メソッドの対象

Group オブジェクト

Workspace オブジェクト


CreateWorkspace メソッド

関連項目	例	対象

新しい Workspace オブジェクトを作成します。

構文

Set variable = CreateWorkspace(name, user, password)

CreateWorkspace メソッドの構文の指定項目は次のとおりです。

指定項目	内容

variable	Workspace オブジェクト型として宣言された変数を指定します。

name	Workspace オブジェクトの固有の名前を示す文字列型 (String) の変数を指定します。有効な Workspace オブジェクトの名前については、「Name プロパティ (データ アクセス)」を参照してください。

user	作成する Workspace オブジェクトの所有者を識別する文字列型の変数を指定します。詳細については、「UserName プロパティ」を参照してください。

password	作成する Workspace オブジェクトのパスワードを示す文字列型の変数 (ただし 0 (Null 値) 以外) を指定します。パスワードには、14 文字までのすべてのASCII 文字 (ただし 0 (Null 値) 以外) を使うことができます。

解説

CreateWorkspace メソッドは、他のメソッドとは異なり、データ アクセス オブジェクトを作成します。CreateWorkspace メソッドでは、すべての引数を設定する必要があります。また、Workspace オブジェクトは永続的なものではなく一時的なものなので、保存することはできません。一度 Workspace オブジェクトを作成すると、プロパティの設定値は変更できません。

新規に作成した Workspace オブジェクトは、使う前にコレクションに追加する必要はありません。Workspaces コレクションを通して、Workspace オブジェクトを参照できるようにする必要があるときのみ、作成した Workspace オブジェクトをコレクションに追加します。

引数 name に、既に Workspaces コレクションのメンバであるオブジェクトを指定すると、トラップできるエラーが発生します。

CreateWorkspace メソッドを使って新規に Workspace オブジェクトを作成すると、Workspace セッションが開始され、アプリケーションで Workspace オブジェクトを参照できます。

Workspaces コレクションから Workspace オブジェクトを削除するには、Workspace オブジェクトに対して Close メソッドを使います。

警告   同じプロセス空間にあるすべての DBEngine オブジェクトからの呼び出しによって、同じ Jet データベース エンジンが共有されます。このため、インプロセス OLE サーバーまたは他の DLL によって、次のようにセキュリティが侵される可能性があります。インプロセス OLE サーバーまたは他の DLL は、アプリケーションによって使用されている Workspace オブジェクトを見つけるために、DBEngine オブジェクトの Workspaces コレクションへの参照を不正に繰り返します。次に、セキュリティおよびパスワードによる保護を無視して、Databases コレクション、Recordsets コレクション、Tables コレクション、および Fields コレクションへの参照を繰り返します。このような危険性を回避するには、アプリケーションに Workspace オブジェクトを作成します。ただし、Workspaces コレクションには追加しないでください。コレクションに追加すると、他のコードから参照できなくなります。


関連項目

Append メソッド

Close メソッド

DBEngine オブジェクト

DefaultUser、DefaultPassword プロパティ

Delete メソッド

Name プロパティ (データ アクセス)

UserName プロパティ

Workspace オブジェクト、Workspaces コレクション


CreateWorkspace メソッドの対象

DBEngine オブジェクト


OpenRecordset メソッド

関連項目	例	対象

新しい Recordset オブジェクトを作成し、Recordsets コレクションに追加します。

構文

Set variable = database.OpenRecordset(source[, type[, options]])

Set variable = object.OpenRecordset([type[, options]])

OpenRecordset メソッドの構文の指定項目は次のとおりです。

指定項目	内容

variable	Recordset オブジェクト型として宣言された変数を指定します。

database	新しく作成する Recordset オブジェクトに使用する既存の Database オブジェクトの名前を指定します。

object	Recordset オブジェクトを作成する QueryDef、Recordset、TableDef のいずれかの既存のオブジェクトの名前を指定します。前方スクロール スナップショット オブジェクトの名前を指定することはできません。object がダイナセット タイプやスナップショット タイプの Recordset オブジェクトを参照する場合、作成されるオブジェクトの型が、引数 object に指定した Recordset オブジェクトの型と同じになります。object がテーブル タイプの Recordset オブジェクトを参照する場合は、作成されるオブジェクトの型はダイナセット タイプになります。

source	作成する Recordset オブジェクトのレコードのソースを示す文字列型 (String) の値を指定します。ソースには、レコードを返す SQL ステートメント、テーブル名、クエリー名が指定できます。テーブル タイプの Recordset オブジェクトのソースには、テーブル名のみ指定できます。

type	この引数を指定しない場合、作成できるときにはテーブル タイプの Recordset オブジェクトが作成されます。この引数にアタッチ テーブルやクエリーを指定すると、ダイナセット タイプの Recordset オブジェクトが作成されます。作成する Recordset オブジェクトの型を定義するには、次の整数型 (Integer) の定数のいずれかを指定します。

  dbOpenTable

テーブル タイプの Recordset オブジェクトを開きます。

  dbOpenDynaset

ダイナセット タイプの Recordset オブジェクトを開きます。

  dbOpenSnapshot

スナップショット タイプの Recordset オブジェクトを開きます。

options	作成する Recordset オブジェクトの特性を指定するには、次の整数型の定数を単独で、または組み合わせて使います。指定できる特性には、Recordset オブジェクトに対する他のユーザーからの編集や参照における制限があります。

  dbDenyWrite

他のユーザーはレコードを変更、追加できません。

  dbDenyRead

他のユーザーはレコードを参照できません (テーブル タイプの Recordset オブジェクトのみ)。

  dbReadOnly

参照のみ可能です。他のユーザーはレコードを修正できます。

  dbAppendOnly

追加のみ可能です (ダイナセット タイプの Recordset オブジェクトのみ)。

  dbInconsistent

矛盾を許す更新のみ可能です (ダイナセット タイプの Recordset オブジェクトのみ)。

  dbConsistent

一貫性のある更新のみ可能です (ダイナセット タイプの Recordset オブジェクトのみ)。

  dbForwardOnly

Recordset オブジェクトは、前方スクロール スナップショットになります。この定数を指定して作成した Recordset オブジェクトを複製することはできません。また、レコードの移動には、MoveNext メソッドしか使用できません。

  dbSQLPassThrough

Microsoft Jet データベース エンジンのクエリー プロセッサはバイパスされます。OpenRecordset メソッドの引数 source に指定されたクエリーは、ODBC バック エンド サーバーに引き渡され、処理されます。

  dbSeeChanges

編集中のデータを他のユーザーが変更しようとした場合に、実行時エラーを生成します。

注   定数 dbConsistent と定数 dbInconsistent は共に使用できません。つまり、OpenRecordset メソッドを実行するときにどちらか一方の定数を指定することはできますが、両方を同時に指定することはできません。

解説

object が QueryDef オブジェクト、またはダイナセット タイプやスナップショット タイプの Recordset オブジェクトを参照する場合、または引数 source が SQL ステートメントやアタッチ テーブルを表す TableDef オブジェクトを参照する場合、引数 type に定数 dbOpenTable を指定することはできません。

ある特定の ODBC サーバーでしかサポートされていない SQL 構文を使用する必要がある場合は、OpenRecordset メソッドで SQL パススルー オプション (dbSQLPassThrough) を指定する必要があります。このオプションを指定すると、Jet データベース エンジンのクエリー プロセッサはバイパスされます。構文チェックなどの前処理は一切行われずに SQL ステートメントがリモートの ODBC データベース サーバーに送信されます。送信された SQL ステートメントの構文などに問題があると、1 つ以上の ODBC エラーが発生します。SQL パススルー オプションを使用する場合は、スナップショット タイプの Recordset オブジェクトしか作成できません。また、コードでもスナップショット タイプ の Recordset オブジェクトを指定する必要があります。

.MDB ファイルにアタッチされているテーブルに対して SQL パススルー クエリーを実行するには、まず、アタッチ テーブルのデータベースの Connect プロパティに有効な ODBC 接続文字列を設定する必要があります。詳細については、「Connect プロパティ」を参照してください。

dbSeeChanges フラグを設定すると、レコードを編集したり、削除している場合に、他のユーザーまたは同じマシンのプログラムが、同一のレコードを変更しようとしたとき、変更処理をトラップできます。たとえば、2 人のユーザーが同じレコードを編集し、1 人めが Update メソッドを実行します。2 人めが Update メソッドを実行したときに、実行時エラーが発生します。同様に、1 人めがレコードを変更した後で、2 人めがレコードを削除するために Delete メソッドを実行しても実行時エラーが発生します。

通常、ユーザーがこのエラーを編集中に受け取った場合、コードを使ってフィールドの内容を再表示し、新しく修正された値を取得する必要があります。削除の処理中にこのエラーが発生した場合、コードによって、新しいレコードのデータおよびデータが新しく変更されたことを示すメッセージを表示することができます。ここで、コードを使って、更にレコードを削除するかどうか確認することもできます。

ヒント   ODBC データ ソースの Recordset オブジェクトに、シングル パススルーを行うアプリケーションでは、引数 option に前方スクロール (定数 dbForwardOnly) を指定すると、パフォーマンスが向上します。

Close メソッドを使って Recordset オブジェクトを閉じると、その Recordset オブジェクトは Recordsets コレクションから自動的に削除されます。

注   ダイナセット タイプ、スナップショット タイプ、テーブル タイプの各 Recordset オブジェクトは、Jet データベース エンジン Version 1.0 および Version 1.1 からの Dynaset、Snapshot、Table の各オブジェクトとは異なります。Recordset オブジェクトとこれらの 3 つのオブジェクトは、多くの類似したプロパティやメソッドを持っていますが、それらを交換して使うことはできません。また、Jet データベース エンジン Version 3.0 のメソッドやプロパティには、以前のバージョンのデータ アクセス オブジェクトで使用できないものもあります。

Jet データベース エンジン Version 2.5 または 3.0 の新しく効率的な Recordset オブジェクトを使って、アプリケーションのコードを記述し直すことをお勧めします。


関連項目

Connect プロパティ

Database オブジェクト、Databases コレクション

Dynaset オブジェクト

QueryDef オブジェクト、QueryDefs コレクション

レコードセットへのデータの取得

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

Table オブジェクト

TableDef オブジェクト、TableDefs コレクション

Type プロパティ (データ アクセス)


OpenRecordset メソッドの対象

Database オブジェクト

QueryDef オブジェクト

Recordset オブジェクト

TableDef オブジェクト


Requery メソッド

関連項目	例	対象

Recordset オブジェクトのデータを更新するために、オブジェクトの基となるクエリーを再実行します。

構文

recordset.Requery [newQueryDef]

Requery メソッドの構文の指定項目は次のとおりです。

指定項目	内容

recordset	Recordset オブジェクト型として宣言された変数を指定します。

newQueryDef	QueryDef オブジェクト型として宣言された変数を指定します。

解説

このメソッドは、Recordset オブジェクトに確実に最新のデータが含まれるようにするために使います。Requery メソッドを使うと、他のユーザーによるベース テーブルのデータに対する変更が Recordset オブジェクトに反映され、Recordset オブジェクトの先頭レコードがカレント レコードになります。

テーブル タイプの Recordset オブジェクトや Restartable プロパティを偽 (False) に設定したダイナセット タイプ、スナップショット タイプの Recordset オブジェクトでは、Requery メソッドを使用できません。

Requery メソッドを使った後に、Recordset オブジェクトの BOF プロパティとEOF プロパティの両方が真 (True) に設定されている場合、クエリーが 1 件もレコードを返さなかったことになるため、Recordset オブジェクト内にはデータがありません。

Requery メソッドを実行すると、現在のクエリー パラメータまたは引数 newQueryDef に指定された新しいクエリー パラメータを基に、カレントの Recordset オブジェクトにレコード データが読み込み直されます。

元の QueryDef オブジェクトが指定された場合は、その QueryDef オブジェクト (たとえば、myquerydef.OpenRecordset()) で指定されていたパラメータを基にして Recordset オブジェクトのクエリーが再実行されます。Recordset オブジェクトの作成に QeuryDef オブジェクトが使われなかった場合、または Recordset オブジェクトが作成されたときと異なる QueryDef オブジェクトが指定された場合は、まったく新しい Recordset オブジェクトが作成されます。Restartable プロパティの値を調べると、そのクエリーの再実行が可能かどうかを調べることができます。また、Requery メソッドは、CopyQuerydef メソッドと組み合わせて使うことができます。

次のコードは、Requery メソッドの使用例です。

myqudef!param1 = "cat"	' 1 回めのクエリーに使うパラメータを設定します。

set myrs = myqdef.OpenRecordset()	...

myqdef!param1 = "dog"	' 2 回めのクエリーに使うパラメータを設定します。

myrs.Requery myqdef	' パラメータを設定してクエリーを再実行します。


関連項目

BOF、EOF プロパティ

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Restartable プロパティ


Requery メソッドの対象

Recordset オブジェクト (ダイナセット タイプとスナップショット タイプのみ)


Move メソッド (データ アクセス)

関連項目	例	対象

Recordset オブジェクトのカレント レコードの位置を移します。

構文

recordset.Move rows[, start]

Move メソッドの構文の指定項目は次のとおりです。

指定項目	内容

recordset	Recordset オブジェクトの名前を指定します。

rows	移動する行数を符号付き長整数型 (Long) の値で指定します。引数 rows に 0 を超える値を指定すると、レコードの位置は下方向 (ファイルの最後の方向) に移され、引数 rows に 0 未満の値を指定すると、レコードの位置は上方向 (ファイルの先頭の方向) に移されます。

start	ブックマークを表す文字列型 (String) の値を指定します。引数 start を指定すると、このブックマークに合わせて移動が始まります。引数 start を指定しないと、カレント レコードを基準にして移動が始まります。

解説

Move メソッドを使って、カレント レコードの位置をレコードの先頭より前に移すと、カレント レコードの位置がファイルの先頭 (BOF) に移動します。Recordset オブジェクトにレコードがなく BOF プロパティが真 (True) の場合、このメソッドで先頭に向かってレコードを移すと、トラップできるエラーが発生します。BOF プロパティか EOF プロパティのどちらかが真 (True) で、有効なブックマークがない場合に Move メソッドを使ったときも、トラップできるエラーが発生します。

Move メソッドを使って、カレント レコードの位置を最後のレコードより後に移動すると、カレント レコードの位置はファイルの最後 (EOF) に移動します。Recordset オブジェクトがクエリーから作成されている場合、Move メソッドはクエリーに指定されている行数で実行されます。レコードがなく、EOF プロパティが真 (True) に設定されている場合、このメソッドを使って下方向へレコードを移すと、トラップできるエラーが発生します。

注

前方スクロール スナップショットで Move メソッドを使うとき、引数 rows に指定できる値は正の整数だけで、ブックマークは使用できません。つまり、下方向のみの移動が可能です。

Recordset オブジェクトの先頭、末尾、次または前のレコードをカレント レコードにするには、MoveFirst、MoveLast、MoveNext、MovePrevious の各メソッドを使います。


関連項目

BOF、EOF プロパティ

Bookmark プロパティ (データ アクセス)

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

Recordset オブジェクト、Recordsets コレクション


Move メソッドの対象

Recordset オブジェクト


FillCache メソッド

関連項目	例	対象

ODBC データ ソースからのデータを含む、Recordset オブジェクトのデータをローカル キャッシュの全体またはその一部に格納します。

構文

recordset.FillCache [rows[, start]]

FillCache メソッドの構文の指定項目は次のとおりです。

指定項目	内容

recordset	ODBC データ ソースから作成された Recordset オブジェクトを指定します。アタッチ テーブルを表す TableDef オブジェクトや TableDef オブジェクトから作成された QueryDef オブジェクトが指定できます。

rows	キャッシュに格納するデータの行数を整数型 (Integer) の値で指定します。この引数を省略すると、行数は CacheSize プロパティに設定された値によって決定されます。

start	ブックマークを示す文字を指定します。このブックマークが示すレコード以降のレコードをキャッシュに格納します。この引数を省略すると、CacheStart プロパティの内容によって示されるレコード以降のレコードをキャッシュに格納します。

解説

キャッシュを使うと、リモート サーバーからデータを読み出す (フェッチ) アプリケーションの処理能力が向上します。キャッシュとは、アプリケーションの実行中に一度読み出したデータは再び要求されるという考えを基に、サーバーから最後に読み出したデータを保持するローカル メモリの空間のことです。データを要求すると、Microsoft Jet データベース エンジンは時間のかかるサーバーからの読み出しを行う前に、まずキャッシュを調べます。ODBC データ ソースから読み込む以外のデータは、キャッシュに保存されません。

FillCache メソッドを使うと、レコードを読み込むたびにキャッシュに格納するのではなく、任意にキャッシュにデータを格納することができます。FillCache メソッドを使うと、1 回に 1 レコードを読み出すのではなく、同時に複数のレコードを読み出して、高速にキャッシュに格納することができます。たとえば、ある画面にレコードが表示されている間に、FillCache メソッドを使って別の画面に表示するレコードを読み出すことができます。

Recordset オブジェクトがアクセスするすべての ODBC データベースでローカル キャッシュを持つことが可能です。キャッシュを作成するには、リモート データ ソースから Recordset オブジェクトを開き、Recordset オブジェクトの CacheSize プロパティと CacheStart プロパティを設定します。

引数 rows と引数 start に対し、CacheSize プロパティと CacheStart プロパティで指定した範囲外の値を指定すると、recordset の範囲外の部分はキャッシュにロードされません。

FillCache メソッドが要求したレコード数が、リモート データ ソースに残っているレコード数を超えていても、残りのレコードだけが読み出されるため、エラーは発生しません。

注

 	キャッシュから読み出したレコードには、他のユーザーによるソース データの変更は反映されません。

FillCache メソッドは、キャッシュされていないレコードしか読み出しません。キャッシュ内のすべてのデータを強制的に更新するには、Recordset オブジェクトの CacheSize プロパティを 0 に設定した後、キャッシュ サイズを以前のサイズに戻し、さらにその後で FillCache メソッドを使います。


関連項目

Bookmark プロパティ (データ アクセス)

Bookmarkable プロパティ

CacheSize、CacheStart プロパティ

Database オブジェクト、Databases コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

TableDef オブジェクト、TableDefs コレクション


FillCache メソッドの対象

Recordset オブジェクト (ダイナセット タイプのみ)


NewPassword メソッド

関連項目	例	対象

既存のユーザー アカウントのパスワードを変更します。

構文

userobject.NewPassword oldpassword, newpassword

NewPassword メソッドの構文の指定項目は次のとおりです。

指定項目	内容

userobject	変更する Password プロパティを持つ User オブジェクトを示すオブジェクト型の変数を指定します。

oldpassword	User オブジェクトの Password プロパティに現在設定されている内容を示す文字列式を指定します。

newpassword	User オブジェクトの Password プロパティに新規に設定する内容を示す文字列式を指定します。

解説

引数 userobject が参照する User オブジェクト (Users コレクションの要素) が存在しない場合、エラーが発生します。新しいパスワードを設定するには、変更しようとしているユーザー アカウントのユーザーとしてログオンするか、Admins グループのメンバでなければなりません。

引数 oldpassword と引数 newpassword の文字列は 14 文字までで、0 (Null 値) を除く ASCII 文字が使用できます。パスワードをクリアするには、引数 newpassword に長さ 0 の文字列 ("") を指定します。

パスワードに指定する文字は、大文字と小文字の区別ができます。

User オブジェクトの Password プロパティは、更新のみ可能です。ユーザーが、現在の値を取得することはできません。


関連項目

CreateWorkspace メソッド

DefaultUser、DefaultPassword プロパティ

Group オブジェクト、Groups コレクション

Name プロパティ (データ アクセス)

PID プロパティ

User オブジェクト、Users コレクション


NewPassword メソッドの対象

User オブジェクト


Idle メソッド

関連項目	対象

データ処理を中断し、Microsoft Jet データベース エンジンが、メモリの最適化やページ タイムアウトのような未処理のタスクを終了できるようにします。

構文

DBEngine.Idle [dbFreeLocks]

注

Idle メソッドを使うと、データベース エンジンにバックグラウンド タスクを実行する機会が与えられますが、集中的なデータ処理を行ううえで現状に合わない場合があります。この方法は、レコードセットのすべてのレコードをカレント レコードとして保持するためのバックグラウンド処理を行う時間的な余裕がない、マルチユーザーやマルチタスク環境で有効です。

通常、読み込みロックが解除され、ローカルなダイナセット タイプの Recordset オブジェクトのデータが更新されるのは、マウス操作を含む他の操作が生じない場合だけです。定期的に Idle メソッドを使い、不要な読み込みロックを解除することによって、データベース エンジンがバックグラウンド処理を実行する時間を与えるようにします。定数 dbFreeLocks を引数として指定すると、すべての読み込みロックが解除されるまで処理待ちが発生します。

アプリケーションの複数のインスタンスが実行されていなければ、このメソッドはシングルユーザー環境では必要ありません。Idle メソッドを使うと、データベース エンジンがデータのディスクへの保存 (フラッシュ) と、メモリのロック解除を行うため、マルチユーザー環境での処理能力が向上します。

トランザクションの一部で次のような操作を実行すると、読み込みロックを解除することができます。

.

.

.

MyWorkspace.BeginTrans

Set MyRs = MyDb.OpenRecordset("MyTable")

MyWorkspace.CommitTrans

Do Until MyRs.EOF

.

.

.

MyRs.MoveNext

Loop


関連項目

DBEngine オブジェクト

Recordset オブジェクト、Recordsets コレクション


Idle メソッドの対象

DBEngine オブジェクト


CompactDatabase メソッド

関連項目	例	対象

閉じているデータベースのコピー、最適化、バージョンおよび照合順序の変更、暗号化または解読を行います。

構文

DBEngine.CompactDatabase olddatabase, newdatabase [, locale [, options]]

CompactDatabase メソッドの構文の指定項目は次のとおりです。

指定項目	内容

olddatabase	既存の閉じているデータベース名を表す文字列式を指定します。ここにはドライブ名、ディレクトリ名およびファイル名を指定することができます (たとえば "C:\MYDB.MDB")。ファイル名に拡張子が付いている場合は、その拡張子まで含めて指定します。ネットワークがサポートされていれば、ネットワーク パスを指定することもできます (たとえば "\\MYSERVER\MYSHARE\MYDIR\MYDB.MDB")。

newdatabase	新しく作成する最適化後のデータベースのドライブ名とディレクトリ名の文字列式を指定します。引数 olddatabase と同様にネットワーク パスを指定することもできます。引数 olddatabase と同じデータベース ファイルを指定する場合、引数 newdatabase は使用できません。

locale	newdatabase を作成するための照合順序を示す文字列式を指定します。設定する値については、次の「設定値」を参照してください。この引数を省略した場合、文字列式は olddatabase と同じになります。

options	オプションを示す整数を指定します。設定する値については、次の「設定値」を参照してください。各オプションに対応する定数を合計すると、オプションを組み合わせることができます。

設定値

引数 locale の、文字列比較のためのテキストの CollatingOrder プロパティが指定できる設定値の定数は次のとおりです。

定数	照合順序

dbLangGeneral	英語、独語、仏語、ポルトガル語、イタリア語、現代スペイン語

dbLangJapanese	日本語

dbLangKorean	韓国語

dbLangArabic	アラビア語

dbLangCzech	チェコ語

dbLangCyrillic	ロシア語

dbLangDutch	オランダ語

dbLangGreek	ギリシャ語

dbLangHebrew	ヘブライ語

dbLangHungarian	ハンガリー語

dbLangIcelandic	アイスランド語

dbLangNordic	北欧言語 (Microsoft Jet データベース エンジン Version 1.0 のみ)

dbLangNorwdan	ノルウェー語とデンマーク語

dbLangPolish	ポーランド語

dbLangSwedfin	スウェーデン語とフィンランド語

dbLangSpanish	伝統的なスペイン語

dbLangTurkish	トルコ語

引数 options の、最適化時に暗号化または解読を実行することができる、設定値の定数は次のとおりです。

定数	内容

dbEncrypt	最適化時にデータベースを暗号化します。

dbDecrypt	最適化時にデータベースを解読します。

暗号化または解読を指定する定数を省略するか、または定数 dbDecrypt、定数 dbEncrypt の両方を指定すると、newdatabase は olddatabase と同じものになります。

引数 options に指定できる最適化したデータベースのバージョンの設定値の定数は次のとおりです。この定数は newdatabase のバージョンのみに有効で、フォームやレポートのような Microsoft Access で定義されたオブジェクトのバージョンには無効です。

定数	内容

dbVersion10	最適化時に、Microsoft Jet データベース エンジン Version 1.0 を使うデータベースを作成します。

dbVersion11	最適化時に、Microsoft Jet データベース エンジン Version 1.1 を使うデータベースを作成します。

dbVersion20	最適化時に、Microsoft Jet データベース エンジン Version 2.5 を使うデータベースを作成します。

dbVersion30	最適化時に、Microsoft Jet データベース エンジン Version 3.0 を使うデータベースを作成します。

バージョンを示す定数は、1 つのみ指定できます。バージョンを指定する定数を省略すると、newdatabase は olddatabase と同じバージョンになります。olddatabase のバージョン以降のバージョンに対してのみ newdatabase を最適化することができます。

解説

データベースのデータ変更を繰り返すと、そのデータベース ファイルに断片化 (フラグメント) が発生し、必要以上にディスク スペースを消費する可能性があります。したがって、定期的にデータベースを最適化し、データベース ファイルをまとめる必要があります。通常、最適化したデータベースのサイズは最適化する前よりも小さくなります。また、データベースをコピーしたり最適化したりするときに、データの書式の照合順序、暗号化または解読の設定、バージョンの変更を選択をすることもできます。

警告   CompactDatabase メソッドでは、Microsoft Access のデータベースを、あるバージョンから別のバージョンに完全に変換することはできません。データの形式だけが変換できます。フォームまたはレポートのように Microsoft Access で定義されたオブジェクトは変換されません。

Microsoft Access の初期ウィンドウの [ファイル] - [ファイル変換の設定] コマンドを使うと、Microsoft Access のデータベースを以前のバージョンから現在のバージョンに変換できます。

CompactDatabase メソッドを使うと、olddatabase で指定したデータベースから、すべてのデータとセキュリティ アクセス権 の設定を newdatabase に指定したデータベースにコピーできます。これを行うと、最適化した後のデータベースのデータは互いに隣り合うように構成され、ディスクの空き領域が増えます。

データベースを最適化するときは、olddatabase を閉じなければなりません。マルチユーザー環境では、データベースを最適化している間、他のユーザーが olddatabase を開くことはできません。olddatabase が開かれているか、排他的な使用ができない場合、エラーが発生します。

CompactDatabase メソッドはデータベースのコピーを作成するため、ディスクには元のデータベースとコピーのデータベースの 2 つを保存できるだけの空き領域が必要です。利用可能なディスクの空き領域が不足していると、最適化操作を実行することはできません。データベースのコピーである newdatabase は、olddatabase と同じディスクに作成する必要はありません。データベースを最適化した後で、olddatabase 指定したファイルを削除し、newdatabase で指定した最適化後のファイルの名前を元のファイル名に戻すことができます。

注   CompactDatabase メソッドを使って、現在の Microsoft Jet データベース エンジン Version 1.1 または Version 1.0 のデータベースを Jet データベース エンジン Version 2.5 または Version 3.0 のデータベースに変換する場合、互換性レイヤを使っているアプリケーションだけが、その変換したデータベースにアクセスすることができます。Jet データベース エンジン Version 1.0 や 1.1 で動作する古いアプリケーションを、Version 2.5 または 3.0 のデータベースにアクセスできるように適合させることもできますが、自動的には実行されません。

詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。


関連項目

CollatingOrder プロパティ

CreateDatabase メソッド

Database オブジェクト、Databases コレクション

DBEngine オブジェクト


CompactDatabase メソッドの対象

DBEngine オブジェクト


CreateDatabase メソッド

関連項目	例	対象

新しい Database オブジェクトを作成し、データベースをディスクに保存し、開いている Database オブジェクトを返します。

構文

Set database = workspace.CreateDatabase (databasename, locale [, options])

CreateDatabase メソッドの構文の指定項目は次のとおりです。

指定項目	内容

database	作成する Database オブジェクトを示すオブジェクト型の変数を指定します。

workspace	作成したデータベースを含む、既存の Workspace オブジェクトを表すオブジェクト型の変数を指定します。引数 workspace を省略すると、既定の Workspace オブジェクトが使用されます。

databasename	作成するデータベース ファイル名を表す文字列式を指定します。"C:\MYDB.MDB" のように、ドライブ名、ディレクトリ名、およびファイル名を指定できます。ファイル名に拡張子を付けないと、拡張子として ".MDB" が自動的に付加されます。ネットワークがサポートされていれば、"\\MYSERVER\MYSHARE\MYDIR\MYDB" のようにネットワーク パスを指定することもできます。このメソッドを使って作成できるのは、.MDB データベース ファイルだけです。

locale	データベースを作成するための照合順序を指定する文字列式を指定します。この引数を指定しないと、エラーが発生します。設定する値については、「設定値」を参照してください。

options	オプション項目を示す整数を指定します。設定する値については、次の「設定値」を参照してください。各オプションに対応する定数を合計すると、オプションを組み合わせることができます。

注   以前のバージョンの CreateDatabase ステートメントは、既定の Workspace オブジェクトである Workspaces(0) で CreateDatabase メソッドとして使うことができますが、できるだけ使用しないでください。

設定値

引数 locale の文字列比較のための文字列として CollatingOrder プロパティに指定できる、設定値の定数は次のとおりです。

定数	照合順序

dbLangGeneral	英語、独語、仏語、ポルトガル語、イタリア語、現代スペイン語

dbLangJapanese	日本語

dbLangKorean	韓国語

dbLangArabic	アラビア語

dbLangCzech	チェコ語

dbLangCyrillic	ロシア語

dbLangDutch	オランダ語

dbLangGreek	ギリシャ語

dbLangHebrew	ヘブライ語

dbLangHungarian	ハンガリー語

dbLangIcelandic	アイスランド語

dbLangNordic	北欧言語 (Microsoft Jet データベース エンジン Version 1.0 のみ)

dbLangNorwdan	ノルウェー語とデンマーク語

dbLangPolish	ポーランド語

dbLangSwedfin	スウェーデン語とフィンランド語

dbLangSpanish	伝統的なスペイン語

dbLangTurkish	トルコ語

引数 options の、データのバージョンとデータベースの暗号化を指定する、設定値の定数は次のとおりです。

定数	内容

dbEncrypt	暗号化されたデータベースを作成します。

dbVersion10	Microsoft Jet データベース エンジン Version 1.0 を使うデータベースを作成します。

dbVersion11	Microsoft Jet データベース エンジン Version 1.1 を使うデータベースを作成します。

dbVersion20	Microsoft Jet データベース エンジン Version 2.5 を使うデータベースを作成します。

dbVersion30	Microsoft Jet データベース エンジン Version 3.0 を使うデータベースを作成します。

暗号化に関する定数を省略すると、暗号化されていないデータベースが作成されます。バージョンに関する定数は、1 つだけ指定できます。バージョンに関する定数を省略すると、作業環境に応じて、Microsoft Jet データベース エンジン Version 2.5 (16 ビット用) または Version 3.0 (32 ビット用) を使用するデータベースが作成されます。

解説

CreateDatabase メソッドを使うと、Jet データベース エンジンにアクセスするデータベースのテンプレートを新規に作成できます。CreateDatabase メソッドによって作成したデータベースが開かれ、Database オブジェクトが返されます。Database オブジェクトの構造体と内容を完成させるには、データ アクセス オブジェクトを追加する必要があります。既存のデータベースの一部または全体のコピーを行う場合、CompactDatabase メソッドを使ってカスタマイズ可能なコピーを作成できます。


関連項目

CollatingOrder プロパティ

CompactDatabase メソッド

Database オブジェクト、Databases コレクション

DBEngine オブジェクト

OpenDatabase メソッド

Workspace オブジェクト、Workspaces コレクション


CreateDatabase メソッドの対象

Workspace オブジェクト


RegisterDatabase メソッド

関連項目	例	対象

ODBC.INI ファイル内の ODBC データ ソースに対して、接続情報を入力します。セッション中に Microsoft Jet データベース エンジンがデータ ソースを開くときに、ODBC ドライバが接続情報を必要とします。

構文

DBEngine.RegisterDatabase dbname, driver, silent, attributes

RegisterDatabase メソッドの構文の指定項目は次のとおりです。

指定項目	内容

dbname	OpenDatabase メソッドで使う、データ ソースに関する記述情報のブロックを参照する名前を示す文字列式を指定します。たとえば、データ ソースが ODBC リモート データベースの場合、これはサーバーの名前になります。

driver	ODBC ドライバの名前を示す文字列式を指定します。これは、ODBC ドライバのダイナミック リンク ライブラリ (DLL) ファイルの名前ではありません。たとえば、SQL サーバーはドライバ名、SQLSRVR.DLL は DLL ファイルの名前です。ODBC と、既にインストールされている適切なドライバを含めなければなりません。

silent	ドライバ特有の情報を入力する [ドライバ] ダイアログ ボックスを表示しない場合は真 (True)、表示する場合は偽 (False) の数式を指定します。silent が真 (True) の場合、attributes は必要なドライバ特有の情報を含んでいなければなりません。情報が含まれていないと、ダイアログ ボックスが表示されます。

attributes	ODBC.INI ファイルに追加するキーワードの文字列式を指定します。キーワードは、改行で区切られた文字列です。

解説

RegisterDatabase メソッドを使う場合、ODBC.INI ファイルに既にデータベースが登録されている (接続情報が既に入力されている) ときは、その接続情報を更新します。

32 ビット環境では、ODBC の登録情報は、ODBC.INI ファイルではなく、Windows のレジストリに保持されます。

RegisterDatabase メソッドがなんらかの原因で実行できない場合はエラーが発生し、ODBC.INI ファイルは変更されません。

SQL サーバーなどの ODBC ドライバについては、ドライバ付属のヘルプ ファイルを参照してください。

Windows のコントロール パネルのODBC アイコンを使うと、新しいデータ ソースを追加したり、既存のデータ ソースを変更することができます。しかし、RegisterDatabase メソッドを使用して選択する場合、silent オプションを真 (True) に設定する必要があります。


関連項目

Database オブジェクト、Databases コレクション

DBEngine オブジェクト

OpenDatabase メソッド


RegisterDatabase メソッドの対象

DBEngine オブジェクト


RepairDatabase メソッド

関連項目	例	対象

Microsoft Jet データベース エンジンにアクセスするデータベースが破損した場合に、その修復を行います。

構文

DBEngine.RepairDatabase dbname

引数 dbname には、既存の Jet データベース エンジンのデータベース ファイルのパス名とファイル名の文字列式を指定します。パスを省略すると、カレント ディレクトリだけが検索されます。システムが国際命名規則 (UNC) に従った表記をサポートしている場合は、"\\MYSERVER\MYSHARE\MYDIR\MYDB.MDB" のようにネットワーク パスを指定することもできます。

解説

データベースを修復するときは、引数 dbname によって指定するデータベースを閉じる必要があります。マルチユーザー環境では、データベースの修復中は他のユーザーが dbname を開くことはできません。dbname を閉じていない場合や、排他的な使用ができない場合は、エラーが発生します。

RepairDatabase メソッドは、不完全な書き込み操作によって破損した可能性のあるデータベースの修復を試みます。データベースの破損は、電源部に問題が起きた場合や、コンピュータのハードウェアの問題で Jet データベース エンジンを使っているアプリケーションが突然終了した場合に起こります。Close メソッドなどを使って、通常の方法でアプリケーションを終了した場合、データベースが破損する可能性はありません。

RepairDatabase メソッドは、すべてのシステム テーブルとインデックスの参照整合性を調べ、修復不可能なデータを破棄します。データベースを修復できない場合、トラップできるエラーが発生します。

通常、破損したデータベースを開いたり、最適化したりすると、トラップできるエラーが発生します。しかし、データベースの破損が検出されず、エラーが発生しないこともあります。データベースが予期しない動作をした場合に、ユーザーが RepairDatabase メソッドをアプリケーションで使用できるようにすることをお勧めします。

データベースの種類によっては、ユーザーが使っている Database オブジェクト、または Recordset オブジェクトや Jet データベース エンジンを閉じないでアプリケーションを終了すると、破損する場合があります。Microsoft Windows や MS-DOS では､データ キャッシュを保存 (フラッシュ) する機会がありません。データベースの破損を避けるには、アプリケーションを閉じてシステムをオフにするプロシージャを作成し、すべてのキャッシュ ページを確実にデータベースに保存します。電力が不安定な場合に、データが失われることがあります。これを避けるには、安定した電力を確保する必要があります。

ヒント   データベースの修復を実行した後には、CompactDatabase メソッドを使ってデータベースを最適化し、ディスクの空き領域を回復することをお勧めします。


関連項目

Close メソッド

CompactDatabase メソッド

Database オブジェクト、Databases コレクション

DBEngine オブジェクト


RepairDatabase メソッドの対象

DBEngine オブジェクト


OpenDatabase メソッド

関連項目	例	対象

セッション中に、指定したデータベースを開き、そのデータベースを表す Database オブジェクトへの参照を返します。開いたデータベースは、自動的に Databases コレクションに追加されます。

構文

Set database = workspace.OpenDatabase(dbname[, exclusive[, read-only[, source]]])

OpenDatabase メソッドの構文の指定項目は次のとおりです。

指定項目	内容

database	開こうとしている Database オブジェクトを示すオブジェクト型の変数を指定します。

workspace	このメソッドによって開かれるデータベースを含む、既存の Workspace オブジェクトを示すオブジェクト型の変数を指定します。

dbname	既存のデータベース ファイルの名前または登録されている ODBC データ ソース名の文字列式を指定します。ファイル名に拡張子があるときは、拡張子まで含めて指定します。ネットワークがサポートされていれば、"\\MYSERVER\MYSHARE\MYDIR\MYDB.MDB" のようにネットワーク パスを指定することもできます。

dbname を使うときは、次の点に注意してください。

他のユーザーによって既に開かれている排他的なアクセスのデータベースを参照すると、エラーが発生します。

データベースが存在しないか、ODBC データ ソース名が無効な場合、エラーが発生します。

引数 dbname に長さが 0 の文字列 ("") を指定し、引数 source に "ODBC;" を指定すると、すべての使用可能な ODBC データ ソース名を一覧表示するダイアログ ボックスが表示され、ユーザーがデータベースを選択することができます。

exclusive	データベースを排他的なアクセスと共有的なアクセスのどちらで開くかを示すブール型 (Boolean) の値を指定します。排他的なアクセスで開くには真 (True)、共有的なアクセスで開くには偽 (False) を指定します。この引数を省略すると、データベースは共有的なアクセスで開かれます。

read-only	データベースを読み取りと書き込みのどちらのアクセスで開くかを示すブール型の値を指定します。読み取り専用で開くには真 (True)、読み取りと書き込み両方で開く場合には偽 (False) を指定します。この引数を省略すると、データベースは読み取りと書き込み両方で開かれます。

source	データベースを開くために必要な文字列式を指定します。この文字列は、ODBC に接続する引数を構成します。この引数を指定する場合、引数 exclusive、引数 read-only を指定する必要があります。構文については、「Connect プロパティ」を参照してください。

解説

データベースを閉じ、Databases コレクションから Database オブジェクトを削除するには、そのオブジェクトの Close メソッドを使います。

SQL サーバーなどの ODBC ドライバについては、ドライバ付属のヘルプ ファイルを参照してください。

注   引数 source は 2 つの部分で構成されます。データベース型の後にセミコロン (;) を続け、その後にオプションの引数を指定します。"ODBC;" や "FoxPro 2.5;" のようなデータベース型は、最初に指定しなければなりません。その後に、オプションの引数をセミコロンで区切って続けます。特定の順番はありません。


関連項目

Close メソッド

Connect プロパティ

Database オブジェクト、Databases コレクション

Workspace オブジェクト、Workspaces コレクション


OpenDatabase メソッドの対象

Workspace オブジェクト


RefreshLink メソッド

関連項目	例	対象

アタッチ テーブルの接続情報を更新します。

構文

tabledef.RefreshLink

tabledef には、更新する接続情報のアタッチ テーブルを表す TableDef オブジェクトを指定します。

解説

アタッチ テーブルの接続情報を更新するため、対応する TableDef オブジェクトの Connect プロパティをリセットし、RefreshLink メソッドを使って情報を変更します。RefreshLink メソッドを使っても、アタッチ テーブルのプロパティと Relation オブジェクトは変更されません。

アタッチ テーブルを表す TableDef オブジェクトに関連するすべてのコレクションで、この接続情報を強制的に有効にするには、それぞれのコレクションで Refresh メソッドを使います。


関連項目

Connect プロパティ

Recordset オブジェクト、Recordsets コレクション

Refresh メソッド (データ アクセス)

Relation オブジェクト、Relations コレクション

TableDef オブジェクト、TableDefs コレクション


RefreshLink メソッドの対象

TableDef オブジェクト


CancelUpdate メソッド

関連項目	対象

object に指定された Recordset オブジェクトに対する、未処理の更新操作をすべて取り消します。

構文

object.CancelUpdate

object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

CancelUpdate メソッドは、Edit メソッドまたは AddNew メソッドの操作によって処理中になっている更新操作をすべて取り消します。たとえば、ユーザーが Edit メソッドまたは AddNew メソッドを実行し、その後 Update メソッドを実行しないで CancelUpdate メソッドを実行すると、Edit メソッドまたは AddNew メソッドを実行した後で行われたすべての変更操作が取り消されます。

注   CancelUpdate メソッドを使っても、カレント レコードおよび BOF プロパティや EOF プロパティなどのプロパティは変更されません。これらの点を除いて、CancelUpdate メソッドは、Update メソッドを実行せずに別のレコードに移動した場合と同じ結果になります。

EditMode プロパティを使って、取り消すことができる処理中の操作があるかどうかを確認してください。


CancelUpdate メソッドの対象

Recordset オブジェクト


関連項目

AddNew メソッド

BOF、EOF プロパティ

EditMode プロパティ

Recordset オブジェクト、Recordsets コレクション

Update メソッド (データ アクセス)


CopyQueryDef メソッド

関連項目	対象

object に指定されている Recordset オブジェクトを作成するために使われた QueryDef オブジェクトの複製を作成し、作成した QueryDef オブジェクトを返します。

構文

object.CopyQueryDef

object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Recordset オブジェクトを作成するために使う QueryDef オブジェクトの複製を作成します。QueryDef オブジェクトを使わないで Recordset オブジェクトを作成した場合、このメソッドを実行すると Null 値が返されます。


CopyQueryDef Method の対象

Recordset オブジェクト


関連項目

QueryDef オブジェクト、QueryDefs コレクション


CreateQueryDef メソッドの例

次のプログラムでは、SQL ステートメントを使って“All Pubs”という名前の QueryDef オブジェクトが作成されます。さらに、クエリーを基にしてダイナセット タイプの Recordset オブジェクトが作成されます。

Dim MyDB As Database, MyQuery As QueryDef, MySet As Recordset

' データベースを開きます。

Set MyDB = Workspaces(0).OpenDatabase("BIBLIO.MDB")

' QueryDef オブジェクトを作成します。

Set MyQuery = MyDB.CreateQueryDef("All Pubs", "SELECT * FROM Publishers;")

' クエリーから Recordset オブジェクトを作成します。

Set MySet = MyDB.OpenRecordset("All Pubs")

...

MySet.Close	' Recordset オブジェクトを閉じます。


DeleteQueryDef メソッドの例

次のプログラムでは、QueryDef オブジェクトの作成と削除が行われます。また、QueryDef オブジェクトを使ってスナップショット タイプの Recordset オブジェクトも作成されます。

Dim MyDB As Database, MyQuery As QueryDef, ListSet As Recordset

' データベースを開きます。

Set MyDB = Workspaces(0).OpenDatabase("BIBLIO.MDB")

' QueryDef オブジェクトを作成します。

Set MyQuery = MyDB.CreateQueryDef("All Pubs", "SELECT * FROM Publishers;")

' スナップショット タイプの Recordset オブジェクトを作成します。

Set ListSet = MyQuery.OpenRecordset(dbOpenSnapshot)

' QueryDef オブジェクトを削除します。

MyDB.DeleteQueryDef("All Pubs")


OpenQueryDef メソッドの例

次のプログラムでは、“By State”という名前を持つ既存のクエリーの State Wanted パラメータに値が設定され、ニューヨークの全出版社のレコードのスナップショット タイプの Recordset オブジェクトが作成されます。

Dim MyDB As Database, MyQuery As QueryDef, MySet As Recordset

Set MyDB = Workspaces(0).OpenDatabase("BIBLIO.MDB")

Set MyQuery = MyDB.OpenQueryDef![By State]	' QueryDef オブジェクトを開きます。0

MyQuery.Parameters![Enter State] = "NY"	' パラメータを設定します。

' スナップショット タイプの Recordset オブジェクトを作成します。

Set MySet = MyQuery.OpenRecordset(dbOpenSnapshot)

...


Seek メソッドの例

次のプログラムでは、Seek メソッドを使います。既存の主キー インデックスによって、Publishers テーブル内で PubID フィールドが 3 であるレコードのうち、最初のレコードが検索されます。

Dim MyDB As Database, MyTable As Recordset

' データベースを開きます。

Set MyDB = Workspaces(0).OpenDatabase("BIBLIO.MDB")

' テーブルを開きます。

Set MyTable = MyDB.OpenRecordset("Publishers",dbopenTable)

MyTable.Index = "PrimaryKey"	' カレント インデックスを定義します。

MyTable.Seek "=", 3	' レコードを検索します。

If MyTable.NoMatch Then...

次のプログラムでは、OpenDatabase メソッドを使って組み込み可能な ISAM データベースが直接開かれます。さらに、Seek メソッドを使ってそのデータベースのテーブル内のレコードを検索します。

Dim Db as Database

Dim Rst as Recordset, SaveHere as Variant

Set Db = OpenDatabase("C:\FoxData", False, False,"Fox 2.5")

Set Rst = OpenRecordset("PARTS.DBF", dbOpenTable)

' レコード順と検索インデックスを選択します。

Rst.Index = "PartNameIndex"

Rst.Bookmark = Rst.BookMark	' 現在の位置を保存します。

' 選択した部分の最初のインスタンスを検索します。

Rst.Seek = "Framis Lever"

If Rst.NoMatch then 	' 見つかったかどうかを調べます。

Rst.BookMark = SaveHere	' 見つからなかった場合は、カレント レコードの位置を元に戻します。

...

Else	' 見つかった場合は、カレント レコードを変更します。

Debug.Print Rst!PartName

End If


Delete メソッドの例

次のプログラムでは、Recordset オブジェクト内のレコードが検索され、レコードが見つかった場合、そのレコードは削除されます。

' 削除したいレコードを検索します。

MyRecordset.FindFirst "PubNum = 9"

If Not MyRecordset.NoMatch Then	' レコードが発見できたかどうかを調べます。

MyRecordset.Delete	' 発見した場合、レコードを削除します。

End If

次のプログラムでは、Index オブジェクトが TableDef オブジェクトに追加され、不要になった時点で削除されます。

Dim MyDB As Database, MyTableDef As TableDef, MyIndex As Index

' データベースを開きます。

Set MyDB = Workspaces(0).OpenDatabase("BIBLIO.MDB")

Set MyTableDef = MyDB.TableDefs("Publishers")	' TableDef オブジェクトを設定します。

Set MyIndex = MyTableDef.CreateIndex("Author Name")

Set MyField = MyIndex.CreateField("Author")

MyIndex.Fields.Append MyField	' Index オブジェクトに Field オブジェクトを追加します。

MyRsDef.Indexes.Append MyIndex	' TableDef オブジェクトに Index オブジェクトを追加します。

...

MyRsDef.Indexes.Delete "Author Name"	' Index オブジェクトを削除します。


OpenRecordset、Edit、Update メソッド、Recordset オブジェクト、 Recordsets コレクションの例

次のプログラムでは、Recordset オブジェクトから検索条件を満たす最初のレコードが検索されます。レコードが見つかった場合、そのレコードは開かれて編集されます。さらに、Update メソッドを使ってTitle フィールドの値が変更され、変更内容は保存されます。

Dim Criteria As String, NewTitle As String

Criteria = "Title = 'My Right Hand'"	' 検索文字列を作成します。

NewTitle = "My Right Foot"	' 新しいタイトルを作成します。

MyRecordset.FindFirst Criteria	' 発見したレコードをカレントにします。

Do While Not MyRecordset.NoMatch

If Not Data1.Recordset.NoMatch Then

MyRecordset.Edit	' レコードを開きます。

MyRecordset.Fields("Title") = NewTitle	' 新しいタイトルを設定します。

MyRecordset.Update	' 変更内容を保存します。

End If

MyRecordset.FindNext Criteria

Loop

次のプログラムでは、Edit メソッドは使いませんが、結果は同じです。

' 検索文字列を作成します。

SQLQuery = "UPDATE Titles SET Title = 'My Right Foot'"

SQLQuery = SQLQuery & " WHERE Title = 'My Right Hand';"

MyDatabase.Execute SQLQuery	' クエリーを実行します。

このプログラムでは、 Recordset オブジェクトを開いて Title フィールドが検索条件と一致するレコードが検索され、コピー バッファにコピーされます。さらに、このプラグラムでは、次の編集作業のためにレコードを用意し、役職名を変更し、Update メソッドを使って変更が保存されます。

Dim Criteria As String, MyDB As Database, MySet As Recordset

Dim NewTitle As String

' 検索式を設定します。

Criteria = "Title = 'Sales Representative'"

NewTitle = "Account Executive"	' 新しい役職名を設定します。

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

' ダイナセットを作成します。

Set MySet = MyDB.OpenRecordset("Employees", dbOpenDynaset)

MySet.FindFirst Criteria	' 一致する最初のレコードを検索します。

' 一致するレコードがなくなるまで、ループします。

Do Until MySet.NoMatch

MySet.Edit	' 編集ができる状態にします。

MySet!Title = NewTitle	' 役職名を変更します。

MySet.Update	' 変更をセーブします。

MySet.FindNext Criteria	' 次のレコードを検索します。

Loop	' ループを終了します。

注   更新 クエリーを使うと、より効果的に役職名を変更することができます。たとえば、次のコードを使って同じ結果を得ることができます。

SQL$ = "Update Employees Set Title = 'Account Executive' " "

& " "WHERE Title = 'Sales Representative' "

MyDb.Execute SQL$


FindFirst、FindLast、FindNext、FindPrevious メソッドの例

次のプログラムでは、FindFirst メソッドを使って、Recordset オブジェクトから、指定された検索条件を満たす最初のレコードが検索されます。次に、FindNext メソッドを使って次のレコードが検索されます。

Dim MyCriteria As String

MyCriteria = "State = 'NY'"	' 検索文字列を設定します。

My.Recordset.FindFirst MyCriteria	' 一致する最初のレコードを検索します。

If Not My.Recordset.NoMatch Then...	' レコードを発見したかどうかを調べます。

...

My.Recordset.FindNext MyCriteria	' 次の一致するレコードを検索します。

次のプログラムでは、ダイナセット タイプの Recordset オブジェクトが作成され、次に FindFirst メソッドを使用して検索条件を満たす最初のレコードが検索されます。

Dim MyCriteria As String, MyDB As Database, MySet As Recordset

MyCriteria = "State = 'NY'" 	' 検索文字列を定義します。

Set MyDB = Workspaces(0).OpenDatabase("BIBLIO.MDB")

' Publishers テーブルを基にダイナセット タイプの Recordset オブジェクトを作成します。

Set MySet = MyDB.OpenRecordset("Publishers",dbOpenDynaset)

MySet.FindFirst MyCriteria	' 一致する最初のレコードを検索します。

If MySet.NoMatch Then...	' レコードを発見したかどうかを調べます。

...

MySet.FindNext MyCriteria	' 次の一致するレコードを検索します。


Update メソッドの例

次のプログラムでは、Recordset オブジェクトのカレント レコードの Title フィールドが変更され、次に Update メソッドを使用してその変更内容が保存されます。

My.Recordset.Edit	' 編集を有効にします。

My.Recordset.Fields("Title") = "My Right Foot"	' タイトルを変更します。

My.Recordset.Update	' 変更内容を保存します。


Append メソッドの例

次のプログラムでは、新しいフィールドが定義され、Fields コレクションに追加されます。

Dim MyDB As Database, Fd As Field

Set MyDB = Workspaces(0).OpenDatabase("BIBLIO.MDB")  ' データベースを開きます。

Fd.Name = "Phone"	' フィールドのプロパティを設定します。

Fd.Type = dbText

Fd.Size = 15

MyDB.TableDefs("Authors").Fields.Append Fd	' フィールドをコレクションに追加します。


CompactDatabase メソッドの例

次のプログラムでは、CompactDatabase メソッドを使用して“PUBS.MDB”という名前のデータベースが最適化され、元のデータベースのバックアップ コピーが保存されます。作成されるデータベースの場所は、ソース データベースと同じですが、暗号化されています。

DBEngine.CompactDatabase "C:\PUBS.MDB","C:\PUBSNEW.MDB","",dbEncrypt

...

Kill "C:\PUBS.BAK"

Name "C:\PUBS.MDB" As "C:\PUBS.BAK"

Name "C:\PUBSNEW.MDB" As "C:\PUBS.MDB"

このプログラムでは、MYDB.MDB という名前のデータベースがコピーされ、そのコピーである、新しい、最適化された MYDB.NEW という名前のデータベースが保持されます。この新しいデータベースは、元のデータベースと同じ照合順序を保持していますが、暗号化されています。

DBEngine.CompactDatabase "C:\MYDB.MDB", "C:\MYDB.NEW", dbLangGeneral, _

dbEncrypt


CreateDatabase メソッドの例

次のプログラムでは、CreateDatabase メソッドを使用して“CurrentDatabase”という名前の、暗号化された Detabase オブジェクトが新しく作成されます。また、作成したデータベースのいくつかのプロパティが変更され、構造が完成した後で、閉じられます。

Dim DefaultWorkspace As Workspace

Dim CurrentDatabase As Database, MyDatabase As Database

Set DefaultWorkspace = DBEngine.Workspaces(0)

Set CurrentDatabase = DefaultWorkspace.Databases(0)

' 暗号化された新規データベースを作成します。

Set MyDatabase = DefaultWorkspace.CreateDatabase ("NEWDB.MDB", _

dbLangGeneral, dbEncrypt)

' 新規データベースにデータを読み込みます。

' カレント データベースのプロパティを設定します。

MyDatabase.QueryTimeout = CurrentDatabase.QueryTimeout

...

' できるだけ CurrentDatabase の構造を使用して、MyDatabase の構造を構築します。

...

MyDatabase.Close


CreateDynaset メソッドの例

次のプログラムでは、SQL ステートメントを使って“New York”の“Publishers”に関する、読み取り専用の Dynaset オブジェクトを作成します。

Dim MyDB As Database, MySet As Dynaset, MyRset as Recordset

Dim MyTable As Table, SQLStmt As String

Const dbReadOnly = 4	' 定数を設定します。

Set MyDB = Workspaces(0).OpenDatabase("BIBLIO.MDB")	' データベースを開きます。

' SQL ステートメントのテキストを設定します。

SQLStmt = "SELECT * FROM Publishers WHERE State = 'NY'"

' 新規 Dynaset オブジェクトを作成します。

以前のバージョンの Dynaset オブジェクトを使わずに、新しいダイナセット タイプの Recordset オブジェクトを使ってコードを変更してください。次のプログラムでは、ダイナセット タイプの Recordset オブジェクトが作成されます。

Set MySet = MyDB.CreateDynaset(SQLStmt, dbReadOnly )

Set MyRset = MyDB.OpenRecordset(SQLStmt, dbOpenDynaset, dbReadOnly )


CreateSnapshot メソッドの例

次のプログラムの最初の部分では、カリフォルニアにある出版社を ZIP コードで並べ替えた Snapshot オブジェクトが作成されます。後半部分では、新しい並べ替え順序で、再び Snapshot オブジェクトがを作成されます。

Dim MyDB As Database, MySet As Snapshot

Dim MyRset as Recordset, MySQL As String

Set MyDB = Workspaces(0).OpenDatabase("BIBLIO.MDB")

MySQL = "SELECT * FROM Publishers WHERE State = 'CA' ORDER BY ZIP;"

Set MySet = MyDB.CreateSnapshot(MySQL)

...

MySet.Sort = "Publisher's Name"

Set MySet = MySet.CreateSnapshot()

以前のバージョンの Snapshot オブジェクトを使わずに、新しい、スナップショット タイプの Recordset オブジェクトを使ってコードを変更してください。次のプログラムでは、スナップショット タイプの Recordset オブジェクトが作成されます。

Set MyRset = MyDB.OpenRecordset(SQLStmt, dbOpenSnapshot)

...

MyRset.Sort = "Publisher's Name"

Set MyRset = MyRSet.OpenRecordset(dbOpenSnapshot)


Execute メソッドの例

次のプログラムでは、データ (Data) コントロールを使います。Titles テーブルの ISBN 列が空のタイトルをすべて更新するアクション クエリーを実行します。エラーが発生した場合、すべての変更が取り消されます。

Dim SQL as String

SQL = "DELETE FROM Titles WHERE ISBN IS NULL"

My.Database.Execute SQL, dbFailOnError


ExecuteSQL メソッドの例

次のプログラムでは、ExecuteSQL メソッドを使います。ODBC 接続で Publishers テーブルにアクセスし、レコードの City フィールドが New York である場合にNY に置換するアクション クエリーが実行されます。

MySQL = "UPDATE Publishers SET City = 'NY' WHERE City = 'New York'"

RecsChanged = MyOracleDB.ExecuteSQL MySQL


OpenTable メソッドの例

次のプログラムでは、OpenTable メソッドを使って“BIBLIO.MDB”データベースの Publishers テーブルが開かれます。

Dim MyDB As Database, MyTable As Table

Set MyDB = Workspaces(0).OpenDatabase("BIBLIO.MDB")	' Database オブジェクトを開きます。

Set MyTable = MyDB.OpenTable("Publishers")	' Table オブジェクトを開きます。

...

MyTable.Close	' Table オブジェクトを閉じます。

以前のバージョンの Table オブジェクトを使わずに、新しい、テーブル タイプの Recordset オブジェクトを使ってコードを変更してください。次のプログラムでは、テーブル タイプの Recordset オブジェクトが作成されます。

Dim MyDB As Database, MyRSTable As Recordset

' テーブル タイプの Recordset オブジェクトを開きます。

Set MyRSTable = MyDB.OpenRecordset("Publishers", dbOpenTable)

...

MyRSTable.Close	' Recordset オブジェクトを閉じます。


UpdateControls メソッドの例

次のプログラムでは、データ (Data) コントロールのデータの変更が取り消され、データが元の値に戻ります。Form オブジェクトの KeyPreview プロパティは、真 (True) に設定されている必要があります。

Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)

Const KEY_ESCAPE = &H1B

If KeyCode = KEY_ESCAPE Then

Data1.UpdateControls

End If

End Sub


Clone メソッドの例

次のプログラムでは、SQL クエリーを使って Recordset オブジェクトが作成されます。次に、2 つのオブジェクト間でブックマークを共有するために、Clone メソッドを使って Recordset オブジェクトの複製が作成されます。この方法は、同時に複数の視点からクエリーの結果を比較しなければならない場合に役立ちます。次のプログラムでは、同一のデータから 2 つの並べ替えられたリストが作成されます。一方のリストは Title フェールドで、もう一方のフィールドは Author フィールドで並べ替えられます。どちらのリストから選択しても、Recordset オブジェクトが同じブックマークを共有しているので、どちらのRecordset オブジェクトのレコードも取得することができます。

Dim Db as Database

Dim Rs1 as Recordset, Rs2 as Recordset

Set Db = Workspaces(0).OpenDatabase("BIBLIO.MDB")

Set Rs1 = Db.OpenRecordset("SELECT * FROM Titles " _

& " WHERE [Year Published] > 1993 ORDER by Title"

Set Rs2 = Rs1.Clone()	' Recordset オブジェクトの複製を作成します。

Rs2.MoveFirst	' カレント レコードを設定します。

Do Until Rs1.EOF

List1.AddItem Rs1!Author	' 自動的に並べ替えを行うリスト ボックスに追加します。

Rs1.MoveNext

Loop

Do Until Rs2.EOF

List1.AddItem Rs2!Title	' リスト ボックスに追加します。

Rs2.MoveNext

Loop


AddNew Method、LastModified プロパティの例

次のプログラムでは、Customers という名前のテーブルにレコードが新しく作成されます。次に、作成したレコードに値が設定され、変更が保存されます。最後に、新しいレコードに移動し、そのレコードが削除されます。

Dim MyDb As Database, MyTable As Recordset

Set MyDb = Workspaces(0).OpenDatabase("MYDB.MDB")

' テーブルを開きます。

Set MyTable = MyDB.OpenRecordset("Customers", dbOpenTable)

MyTable.AddNew	' レコードを新規作成します。

MyTable("Customer ID") = "FINNF"	' レコードのキーを設定します。

MyTable("Company Name") = "Finnegan's Foods"	' company name を設定します。

MyTable.Update	' 変更を保存します。

MyTable.Move 0, MyTable.LastModified	' 作成したレコードに移動します。

MyTable.Delete	' 作成したレコードを削除します。

MyTable.Close	' テーブルを閉じます。

MyDb.Close	' Database オブジェクトを閉じます。


MoveFirst、MoveLast、MoveNext、MovePrevious メソッドの例

次のプログラムでは、Employees という名前のテーブル内の、すべての営業社員の役職名が変更されます。このプログラムでは、テーブルを開いた後、MoveFirst メソッドで最初のレコードに移動し、MoveNext メソッドで次のレコードに移動しながら、条件を満たすそれぞれのレコードに対して、Title フィールドが変更され、Update メソッドを使って変更が保存されます。

SQL ステートメントの WHERE 句を使って更新するレコードを要求する方が、1 レコードずつ調べる方法よりも効率的です。次に示すように、1 つの UPDATE ステートメントで、すべての操作を実行できます。

Dim MyDB As Database, MyTable As Recordset, SQL as String

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

SQL$ = "Select * FROM Employees WHERE Title = 'Sales Representative' "

' レコードセットを開きます。

Set MyTable = MyDB.OpenRecordset(SQL$, dbOpenDynaset)

Do Until MyTable.EOF	' ループを開始します。

MyTable.Edit	' 編集を有効にします。

MyTable!Title = "Account Executive"	' 役職名を変更します。

MyTable.Update	' 変更を保存します。

MyTable.MoveNext	' 次のレコードに移動します。

Loop	' ループの最後です。

MyTable.Close	' テーブルを閉じます。

MyDB.Close

ヒント

役職名の変更に更新クエリーを使うと、さらに効率的です。たとえば、次のコードを使うと、上の例と同じ結果が得られます。

Dim SQL as String

SQL$ = "Update Employees Set Title = 'Account Executive' " _

& "WHERE Title = 'Sales Representative' "

MyDb.Execute SQL$


Close メソッドの例

次のプログラムでは、まず、データベースが開かれます。次に、Customers テーブルのテーブル タイプの Recordset オブジェクトが開かれ、閉じられます。

Dim MyDatabase As Database, MyRecordset As Recordset

' データベースを開きます。

Set MyDatabase = Workspaces(0).OpenDatabase("MYDB.MDB")

' テーブルを開きます。

Set MyRecordset = MyDatabase.OpenRecordset("Customers")

...

MyRecordset.Close	' テーブルを閉じます。

MyDatabase.Close	' データベースを閉じます。


Refresh メソッドの例

次のプログラムでは、他のユーザーが変更を行った場合を考慮して、マルチユーザー環境のデータベースの Tables コレクションを更新します。

Dim MyWorkspace As Workspace, MyDatabase As Database

' 既定の Workspace オブジェクトを取得します。

Set MyWorkspace = Workspaces(0)

' データベースを開きます。

Set MyDatabase = MyWorkspace.OpenDatabase("MYDB.MDB")

...

' 変更されたコレクションを更新します。

MyDatabase.Containers("Tables").Documents.Refresh


BeginTrans、CommitTrans、Rollback メソッドの例

次のプログラムでは、データベースの Employees テーブル内の、すべての営業社員の役職名が変更されます。Employees テーブルについてのすべての変更を独立させるために、BeginTrans メソッドを使ってトランザクションを開始します。その後、CommitTrans メソッドで変更が保存されます。Update メソッドで保存した変更を元に戻すには、Rollback メソッドを使います。

ユーザーが変更を受け入れるまでの間、1 つ以上のテーブルのページが、ロックされた状態になります。したがって、この方法はお勧めできませんが、一例として示します。

Function ChangeTitle

Dim CRLF As String, EmployeeName As String

Dim Message As String, Prompt As String

Dim MyWorkspace As Workspace, MyDatabase As Database, MyTable _

As Recordset

CRLF = Chr$(13) & Chr$(10)

Prompt = "タイトルを Account Executive に変更しますか？"

Set MyWorkspace = Workspaces(0)   ' 既定の Workspace オブジェクトを取得します。

' カレント データベースを取得します。

Set MyDatabase = MyWorkspace.OpenDatabase("MYDB.MDB")

' テーブルを開きます。

Set MyTable = MyDatabase.OpenRecordset("Employees", dbOpenTable)

MyWorkspace.BeginTrans	' トランザクションを開始します。

MyTable.MoveFirst

Do Until MyTable.EOF

If MyTable![Title] = "Sales Representative" Then

EmployeeName = MyTable![Last Name] & ", " & MyTable! _

[First_Name]

Message = "Employee: " & EmployeeName & CRLF & CRLF

If MsgBox(Message & Prompt, vbQuestion + vbYesNo, "役職名の

変更") = YES Then

MyTable.Edit	' 編集を有効にします。

MyTable![Title] = "Account Executive"   ' 役職名を変更します。

MyTable.Update	' 変更を保存します。

End If

End If

MyTable.MoveNext	' 次のレコードに移動します。

Loop

If MsgBox("変更を保存しますか？", vbQuestion + vbYesNo, _

"変更を保存します。") = YES Then

MyWorkspace.CommitTrans	' 変更をコミットします。

Else

MyWorkspace.Rollback	' 変更を取り消します。

End If

MyTable.Close	' テーブルを閉じます。

MyDatabase.Close

End Function


OpenDatabase メソッドの例

次のプログラムでは、既定の Workspace オブジェクト内のデータベースの Employees テーブルが開かれます。マルチユーザー環境で、既に他のユーザーによって排他的アクセスで開かれている場合など、データベースを開くことができないとエラーになり、メッセージが表示されます。データベースを開くと、Employees テーブルの Title フィールドが更新されます。

Function UpdateNorthwind () As Integer

Dim MyWorkspace As Workspace, MyDatabase As Database

Dim MyTable As Recordset

Dim MyFile As String

Dim ErrorCondition As Integer

UpdateDb = True

MyFile = "MYDB.MDB"	' データベース名を定義します。

On Error GoTo DBErrorHandler	' エラー トラップを有効にします。

Set MyWorkspace = Workspaces(0)

' データベースを開きます。

Set MyDatabase = MyWorkspace.OpenDatabase(MyFile)

If Not ErrorCondition Then

On Error GoTo TableErrorHandler	' エラー トラップを有効にします。

' テーブルを開きます。

Set MyTable = MyDatabase.OpenRecordset("Employees")

If Not ErrorCondition Then

On Error GoTo EditErrorHandler	' エラー トラップを有効にします。

Do Until MyTable.EOF

If MyTable![Title] = "Sales Representative" Then

MyTable.Edit	' 編集を有効にします。

MyTable![Title] = "Account Executive"   ' データを変更します。

MyTable.Update	' 変更を保存します。

End If

MyTable.MoveNext	' 次のレコードに移動します。

Loop

MyTable.Close	' テーブルを閉じます。

End If

MyDatabase.Close	' データベースを閉じます。

End If

On Error GoTo 0	' エラー トラップを無効にします。

Exit Function

DBErrorHandler:

ErrorCondition = True

UpdateDb = False

MsgBox "データベースを開くことができません。", vbExclamation

Resume Next

TableErrorHandler:

ErrorCondition = True

UpdateDb = False

MsgBox "Employees テーブルを開くことができません。", vbExclamation

Resume Next

EditErrorHandler:

ErrorCondition = True

UpdateDb = False

MsgBox "Employees テーブルを編集できません。", vbExclamation

Resume Next

End Function


RegisterDatabase メソッドの例

次のプログラムでは、PtLudlow という名前で SQL サーバー データ ソースが登録されます。次に、そのサーバー上の MySQLDb データベース が開かれます。

データ ソース名の作成、変更、または削除には、[データ ソース] ダイアログ ボックスを使ってください。[データ ソース] ダイアログ ボックスを開くには、Microsoft Windows のコントロールパネルの [ODBC] アイコンをクリックします。

Dim MyDatabase As Database

Dim Attribs As String

' キーワード文字列を作成します。

Attribs = "Description=SQL Server on server PtLudlow" & Chr$(13)

Attribs = Attribs & "OemToAnsi=No" & Chr$(13)

Attribs = Attribs & "Network=DBNMP3" & Chr$(13)

Attribs = Attribs & "Address=\\PTLUDLOW\PIPE\SQL\QUERY" & Chr$(13)

Attribs = Attribs & "Database=MySQLDb"

' ODBC.INI を更新します。

DBEngine.RegisterDatabase "PtLudlow", "SQL Server", True, Attribs

...

' データベースを開きます。

Set MyDatabase = Workspaces(0).OpenDatabase("PtLudlow", False, _

False, "ODBC;")


RepairDatabase メソッドの例

次のプログラムでは、MYDB.MDB という名前のデータベースの修復が行われます。

DBEngine.RepairDatabase "C:\MYDB.MDB"


AppendChunk、FieldSize、Getchunk メソッドの例

次のプログラムでは、GetChunk メソッドを使って、MYDB.MDB データベース の Employees テーブルの Notes フィールドから、連続した 16KB のデータのまとまりを取得します。FieldSize メソッドを使って、このまとまり (チャンク) をいくつコピーする必要があるかを決定し、文字列の変更が可能な文字列配列 NoteArray() にコピーします。その後、AppendChunk メソッドを使い、NoteArray() から Notes にコピーします。

' 次の行は、宣言セクションに記述する必要があります。

Option Base 1

Function GetNotes

Const ChunkSize = 16384	' チャンクのサイズを設定します。

Dim NumChunks As Integer, TotalSize As Long, X As Integer

Dim MyDatabase As Database, MyRecordset As Recordset

Set MyDatabase = Workspaces(0).OpenDatabase("MYDB.MDB")

' テーブルを開きます。

Set MyRecordset = MyDatabase.OpenRecordset("Employees")

' フィールド サイズを取得します。

TotalSize = MyRecordset![Notes].FieldSize()

' 必要なチャンクの数を求めます。

NumChunks = TotalSize \ ChunkSize - (TotalSize Mod ChunkSize <> 0)

ReDim NoteArray(NumChunks) As String * ChunkSize

' 現在の Notes フィールドを取得します。

For X = 1 To NumChunks

NoteArray(X) = MyRecordset![Notes].GetChunk((X - 1) * _

ChunkSize, ChunkSize)

Next X

...	' ここで変更を行います。

MyRecordset.Edit	' 編集を有効にします。

MyRecordset!Notes = ""	' Notes フィールドを初期化します。

For X = 1 To NumChunks

' 編集された Notes と置き換えます。

MyRecordset![Notes].AppendChunk NoteArray(X)

Next X

MyRecordset.Update	' 変更を保存します。

MyRecordset.Close	' テーブルを閉じます。

   MyDatabase.Close 	' データベースを閉じます。

End Function


Move メソッドの例

次のプログラムでは、Recordset オブジェクト内のカレント レコードの位置を、指定されたレコード数だけ前後に移動する関数を作成します。オフセットもオプションとして使用できます。

Sub MoveRelative (Distance As Long, Direction As String, MyRecordset _

As Recordset, RelativeBookMark As String)

Dim Here As String

Here = MyRecordset.Bookmark

Direction = UCase(Direction)

Select Case Direction

Case "FWD":  Distance = Abs(Distance)

Case "BACK": Distance = Abs(Distance) * -1

Case Else: MsgBox "引数の値が正しくありません。"

End Select

If UCase(RelativeBookMark) = "HERE" Then

MyRecordset.Move Distance	' カレント レコードの位置を移動します。

Else

' ブックマークへ相対的に移動します。

MyRecordset.Move Distance, RelativeBookMark

End If

' Move メソッドは、失敗する場合もあります。

If MyRecordset.EOF Or MyRecordset.BOF Then Beep

End Sub


RefreshLink メソッドの例

次のプログラムでは、排他的に開いたデータベースに、PDX_Author という名前の Paradox テーブルがアタッチされます。次に、別のディレクトリに移動し、接続情報が再表示されます。

Dim MyDb As Database, MyTable As TableDef

' Open database.

Set MyDb = MyWorkspaces(0).OpenDatabase("C:\CONTACTS\PUBS.MDB")

Set MyTable = MyDB.CreateTableDef("PDX_Author", dbAttachExclusive)

MyTable.SourceTableName = "Author"

MyTable.Connect = "Paradox 3.x; " _

& "DATABASE = C:\PDX\PUBS; PWD=books"

' TableDefs コレクションに追加します。

MyDB.TableDefs.Append MyTable

' 新しいディレクトリに移動します。

MyDB.TableDefs!PDX_Author.Connect = "Paradox 3.x; " _

& "DATABASE = N:\PDX\PUBS; PWD=books"

' 接続情報を更新します。

MyDB.TableDefs!PDX_Author.RefreshLink


CreateField メソッドの例

次のプログラムでは、Field オブジェクトが新しく作成されます。

Dim MyDatabase As Database

Dim MyTableDef As TableDef

Dim MyField As Field

Set MyDatabase = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyTableDef = MyDatabase.TableDefs("MyTable")

' Field オブジェクトを新規作成します。

Set MyField = MyTableDef.CreateField("Phone", dbText)

' MyField のプロパティを設定します。

MyField.Size = 25	' 電話番号の最長の長さより大きい値を設定します。

' Fields コレクションに追加することで、Field オブジェクトの定義を保存します。

MyTableDef.Fields.Append MyField


CreateGroup メソッドの例

次のプログラムでは、Group オブジェクトが新しく作成されます。

Dim MyGroup As Group, ManagersPID As String

ManagersPID = "2222abc"

' Group オブジェクトを新規作成します。

Set MyGroup = Workspaces(0).CreateGroup("Managers", ManagersPID)

' Groups コレクションに追加することで、ワークグループにグループを新規作成します。

DBEngine.Workspaces(0).Groups.Append MyGroup


CreateUser メソッドの例

次のプログラムでは、User オブジェクトが新しく作成されます。

Dim MyUser As User

Dim ManagersPID As String

ManagersPID = "1122aabb"

' ユーザー アカウントを新規作成します。

Set MyUser = Workspaces(0).CreateUser("Senior Partner", ManagersPID)

' MyUser のプロパティを設定します。

MyUser.Password = "NewPassword"

' Users コレクションに追加することで、ユーザー アカウントの定義を保存します。

Workspaces(0).Users.Append MyUser

' あらかじめ定義されているユーザー グループにユーザーを追加します。

MyUser.Groups.Append MyUser.CreateGroup("Users")


CreateIndex メソッドの例

次のプログラムでは、Index オブジェクトが新しく作成されます。

Dim MyIndex As Index

Dim MyField As Field

Dim MyTableDef As TableDef

Dim MyDatabase As Database

Set MyDatabase = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyTableDef = MyDatabase.TableDefs(0)

' Index オブジェクトを新規作成します。

Set MyIndex = MyTableDef.CreateIndex("Another)

Set MyField = MyIndex.CreateField("LastName")

MyIndex.Primary = True

MyIndex.Required = True

MyIndex.Fields.Append MyField

' Indexes コレクションに追加することで、Index オブジェクトの定義を保存します。

MyTableDef.Indexes.Append MyIndex


CreateProperty メソッドの例

次のプログラムでは、Property オブジェクトが新しく作成されます。

Dim MyProperty As Property

Dim MyDatabase As Database

Set MyDatabase = Workspaces(0).OpenDatabase("MYDB.MDB")

' Property オブジェクトを新規作成します。

Set MyProperty = MyDatabase.CreateProperty("Privilege")

' MyProperty のプロパティを設定します。

MyProperty.Type = dbBoolean

MyProperty.Value = True

' Properties コレクションに追加することで、Property オブジェクトの定義を保存します。

MyDatabase.Properties.Append MyProperty


CreateRelation メソッドの例

次のプログラムでは、Relation オブジェクトが新しく作成されます。このプログラムでは、Customers テーブルと ValidStates テーブルの間にリレーションが設定されます。一度リレーションが確立されると、項目を Customers テーブルに追加する前に、Customers.CustState フィールドに対応するフィールドが、ValidStates テーブルにも存在する必要があります。このリレーションに違反する変更を State フィールドに対して行うと、トラップできるエラーが発生します。定数 dbRelationUpdateCascade を設定すると、ValidStates テーブル内の対応する値が変更された場合に、Microsoft Jet データベース エンジンは、主テーブルである Customers.CustState を変更します。たとえば、ValidState テーブルのエントリである TR が TX に変更されると、Customers テーブルの CustState フィールドの値が TR であるすべてのレコードは、TX に変更されます。

Dim MyRelation As Relation

Dim MyDatabase As Database

Dim MyField As Field

Set MyDatabase = Workspaces(0).OpenDatabase("MYDB.MDB")

' Relation オブジェクトを新規作成します。

Set MyRelation = MyDatabase.CreateRelation("TableRelationOne")

MyRelation.Table = "Customers"	'主テーブルに名前を付けます。

MyRelation.ForeignTable = "ValidStates"	'外部キー側のテーブルに名前を付けます。

MyRelation.Attributes = dbRelationUpdateCascade

Set MyField = MyRelation.CreateField("CustState")

MyField.ForeignName = "StateCode"

MyRelation.Fields.Append MyField

' Relations コレクションに追加することで、Relation オブジェクトの定義を保存します。

MyDatabase.Relations.Append MyRelation


CreateTableDef メソッドの例

次のプログラムでは、BIBLIO.MDB データベース内に、TableDef オブジェクトが新しく作成されます。

Dim MyTableDef As TableDef, MyField As Field

Dim MyDatabase As Database

Set MyDatabase = Workspaces(0).OpenDatabase("BIBLIO.MDB")

' TableDef オブジェクトを新規作成します。

Set MyTableDef = MyDatabase.CreateTableDef("Title Detail")

' MyTableDef にフィールドを追加します。

Set MyField = MyTableDef.CreateField("Comments",dbDate)

MyTableDef.Fields.Append MyField

' TableDefs コレクションへの追加によって、TableDef オブジェクトの定義を保存します。

MyDatabase.TableDefs.Append MyTableDef


CreateWorkspace メソッドの例

次のプログラムでは、Special という名前で Workspace オブジェクトが新しく作成され、その UserName プロパティを、既定のワークスペースの UserName プロパティに設定します。さらに、MyUserName にワークスペースのセキュリティ コンテキスト、つまり、MyUserName のパスワードを設定します。

Dim MyWorkspace As Workspace

Dim MyUserName As String

' 既定のワークスペースのユーザー名を取得します。

MyUserName = DBEngine.Workspaces(0).UserName

' この行に .INI ファイルまでのパスを記述します。→Insert the path to your .INI file in this line.

DBEngine.IniPath = "C:\MYAPPDIR\MYAPP.INI"

' ワークスペースを新規作成します。

Set MyWorkspace = DBEngine.CreateWorkspace("Special", MyUserName, _

"SpecialPW")


CacheSize、CacheStart プロパティ、FillCache メソッドの例

次のプログラムでは、ODBC サーバー上にある、Order Detail テーブルを基に Recordset オブジェクトが開かれ、CacheSize プロパティと CacheStart プロパティが設定されます。次に、FillCache メソッドを使って、サーバーからのデータベースのデータがキャッシュに格納されます。

Dim MyRecordset As Recordset, MyDatabase As Database

' アタッチされた ODBC テーブルを含むデータベースを開きます。

Set MyDatabase = Workspaces(0).OpenDatabase("MYDB.MDB")

' ローカルの レコードセットを開きます。

Set MyRecordset = MyDatabase.OpenRecordset("OrderDetail",DbOpenDynaset)

' Customer ID が 1001 のレコードを検索します。

MyRecordset.FindFirst "CustID = 1001"

' Customer ID が 1001 のレコードのキャッシュへの格納を開始します。

MyRecordset.CacheStart = MyRecordset.Bookmark

MyRecordset.CacheSize = 12	' キャッシュのサイズを 12 レコードに設定します。

MyRecordset.FillCache	' キャッシュに格納します。

...	' レコードを表示します。


NewPassword メソッドの例

次のプログラムは、既存のユーザー Pat Smith のパスワードが My Secret から msMSApw に変更されます。ユーザーは Pat Smith というユーザー名で、または Admins グループのメンバーとしてログオンしている必要があります。

Workspaces(0).Users("Pat Smith").NewPassword "My Secret", "msMSApw"


BOF、EOF プロパティ

関連項目	例	対象

BOF プロパティ

カレント レコードの位置が、Recordset オブジェクトの先頭のレコードの前にあるかどうかを示す値を返します。

EOF プロパティ

カレント レコードの位置が、Recordset オブジェクトの最後のレコードの後にあるかどうかを示す値を返します。

これらのプロパティは、以前のバージョンの Dynaset、Snapshot、Table の各オブジェクトでも使用できます。

構文

object.BOF

object.EOF

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

BOF プロパティの戻り値は次のとおりです。

値	内容

True	カレント レコードの位置は、Recordset オブジェクトの先頭のレコードよりも前にあります。

False	カレント レコードの位置は、Recordset オブジェクトの先頭のレコードと同じか、それよりも後ろにあります。

EOF プロパティの戻り値は次のとおりです。

値	内容

True	カレント レコードの位置が、Recordset オブジェクトの末尾のレコードよりも後ろにあります。

False	カレント レコードの位置が、Recordset オブジェクトの末尾のレコードと同じか、それよりも前にあります。

解説

BOF プロパティ、EOF プロパティが返す値は、カレント レコードのポインタの位置によって決まります。

BOF プロパティ、EOF プロパティを使うと、Recordset オブジェクトにレコードが含まれているかどうか、またはレコード位置を移動しているときに Recordset オブジェクトの範囲を超えているかどうかを調べることができます。

BOF プロパティまたは EOF プロパティが真 (True) の場合、カレント レコードはありません。

レコードを持たない Recordset オブジェクトを開くと、BOF プロパティ、EOF プロパティは真 (True) に設定され、レコードセットの RecordCount プロパティの設定は 0 になります。少なくとも 1 つのレコードを持つ Recordset オブジェクトを開くと、先頭のレコードがカレント レコードになり、BOF プロパティ、EOF プロパティは偽 (False) になります。この場合、MovePrevious または MoveNext メソッドを使って、カレント レコードの位置が Recordset オブジェクトの先頭か末尾を超えるまで、BOF プロパティ、EOF プロパティは偽 (False) のままです。レコード セットの先頭または末尾を超えると、カレント レコードもレコードも存在しなくなります。

Recordset オブジェクトの最後のレコードを削除しても、カレント レコードの位置を変更するまで BOF プロパティ、EOF プロパティが偽 (False) のまま、変更されないこともあります。

レコードを持つ Recordset オブジェクトに、MoveLast メソッドを実行すると、最後のレコードがカレント レコードになります。次に MoveNext メソッドを実行すると、カレント レコードは無効になり、EOF プロパティが真 (True) になります。逆に、レコードを持っている Recordset オブジェクトで MoveFirst メソッドを実行すると、先頭のレコードがカレント レコードになります。次に MovePrevious メソッドを実行すると、カレント レコードは無効になり、BOF プロパティは真 (True) に設定されます。

一般に、Recordset オブジェクト内のすべてのレコードを処理するときは、EOF プロパティが真 (True) になるまで、コードで MoveNext メソッドを使ってレコードをループします。

EOF プロパティが真 (True) のときに MoveNext メソッドを使うか、または BOF プロパティが真 (True) のときに MovePrevious メソッドを使うと、エラーが発生します。

次の表に、BOF プロパティ、EOF プロパティのそれぞれの組み合わせについて、有効な Movexxx メソッドを示します。

	MoveFirst、 MoveLast	MovePrevious、 Move < 0	Move 0	MoveNext、 Move > 0
BOF=True、 EOF=False	有効	エラー	エラー	有効
BOF=False、 EOF=True	有効	有効	エラー	エラー
両方とも True	エラー	エラー	エラー	エラー
両方とも False	有効	有効	有効	有効
Movexxx メソッドが“有効”である場合にメソッドを使用しても、レコードを配置できないことがあります。メソッドが“有効”である場合は、指定された Movexxx メソッドが実行できますが、エラーは発生しません。BOF プロパティ、EOF プロパティのフラグの状態は、Movexxx メソッドを実行すると、変更される場合があります。

次に、BOF プロパティ、EOF プロパティの設定が特定のメソッドによって、どのような影響を受けるかを示します。

OpenRecordset メソッドは、内部的に MoveFirst メソッドを実行するので、空のレコードセットに OpenRecordset メソッドを実行すると、BOF プロパティと EOF プロパティが真 (True) に設定されます。MoveFirst メソッドが失敗したときの動作については、次の表を参照してください。

Movexxx メソッドを使って、レコードの配置に成功すると、BOF プロパティ、EOF プロパティは削除 (偽 (False) に設定) されます。

Update メソッドに続けて、AddNew メソッドを使って新しいレコードを挿入すると、EOF プロパティが既に真 (True) に設定されているときのみ BOF プロパティが削除されます。EOF プロパティの状態は変わりません。Microsoft Jet データベース エンジンで定義されているように、空のレコードセットのカレント レコードのポインタはファイルの末尾にあり、新しいレコードはカレント レコードの後に挿入されます。

レコードセットに 1 件だけ残っているレコードを削除する場合も含めて、Delete メソッドによって BOF プロパティと EOF プロパティの設定が変更されることはありません。

次の表に、Movexxx メソッドがレコードの配置に失敗した場合の BOF プロパティ、EOF プロパティの設定状態を示します。

メソッド	BOF	EOF
MoveFirst、MoveLast	真 (True)	真 (True)
Move 0	不変	不変
MovePrevious、Move < 0	真 (True)	不変
MoveNext、Move > 0	不変	真 (True)


関連項目

BOFAction、EOFAction プロパティ

Dynaset オブジェクト

EOF 関数

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

Table オブジェクト


BOF、EOF プロパティの例

次のプログラムでは、BOF プロパティと EOF プロパティを使って、Orders テーブルの先頭と末尾を検索します。まず、ファイルの先頭から末尾まで移動し、次に末尾から先頭に移動します。最初のループが終了した直後は、カレント レコードが存在しません。

Dim MyDB As Database, MyTable As Recordset

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")
Set MyTable = MyDB.OpenRecordset("Orders")	' Recordset オブジェクトを開きます。

Do Until MyTable.EOF	' ファイルの末尾まで繰り返します。
MyTable.MoveNext	' 次のレコードに移動します。
...
Loop

MyTable.MoveLast	' 最後のレコードに移動してカレント レコードを設定します。

Do Until MyTable.BOF	' ファイルの先頭まで繰り返します。
MyTable.MovePrevious	' 前のレコードに移動します。

...
Loop

MyTable.Close	' テーブルを閉じます。

MyDb.Close


BOF、EOF プロパティの対象

Dynaset オブジェクト

Recordset オブジェクト

Snapshot オブジェクト

Table オブジェクト


Bookmark プロパティ (データ アクセス)

関連項目	例	対象

Recordset オブジェクトのカレント レコードを特定するためのブックマークを設定します。値の取得も可能です。また、Recordset オブジェクトのカレント レコードを有効なブックマークに設定します。

構文

object.Bookmark [= value]

Bookmark プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	有効なブックマークへの参照を表す文字列式かバリアント型 (Variant) の式を指定します。この引数は文字列型 (String) またはバリアント型 (Variant) です。

解説

Bookmark プロパティは、Recordset オブジェクトや以前のバージョンの Dynaset、Snapshot、Table オブジェクトでも使用できます。Microsoft Jet データベース エンジンのテーブルを基に作成された Recordset オブジェクトでは、Bookmarkable プロパティの値は真 (True) になっているため、ブックマークを利用できます。しかし、他のデータベース製品では、ブックマークをサポートしていない場合もあります。たとえば、主キーを持たない Paradox のテーブルを基に作成された Recordset オブジェクトでは、ブックマークは使用できません。

Recordset オブジェクトを作成、または開くとき、それぞれのレコードは固有のブックマークを持っています。カレント レコードのブックマークを保存するには、Bookmark プロパティの値を変数に代入します。別のレコードに移動してから、必要なときに元のレコードにすぐに戻るには、Recordset オブジェクトの Bookmark プロパティに、保存しておいた変数の値を設定します。

注   Visual Basic Version 3.0 では、Bookmark プロパティは文字列として処理されていました。Visual Basic Version 4.0 では、Bookmark プロパティはバイト型 (Byte) の配列として、内部的に格納されます。したがって、Bookmark プロパティを使って比較操作すると、トラップできるエラーが発生します。Bookmark プロパティを操作する前に、ブックマークの値を文字列変数にコピーし、この文字列変数を使って、すべて比較してください。たとえば、つぎのコードでは、2 つの Recordset オブジェクトのブックマークを比較します。

Dim Book1 as String, Book2 as String

Dim Rs1 as Recordset, Rs2 as Recordset

Set Rs1 = Db.OpenRecordset("Titles")

Set Rs2 = Rs1.Clone()

Book1 = Rs1.Bookmark

Book2 = Rs2.Bookmark

If Book1 = Book2 Then Print "この比較は有効です。"

設定するブックマークの数に制限はありません。カレント レコード以外のレコードにブックマークを設定するときは、該当するレコードに移動し、その Bookmark プロパティの値を文字列型変数に代入します。

Recordset オブジェクトがブックマークをサポートしていることを確認するには、Bookmark プロパティを使う前に Bookmarkable プロパティの値を確認します。Bookmarkable プロパティが偽 (False) であれば、その Recordset オブジェクトはブックマークをサポートしていないので、Bookmark プロパティを使うとトラップできるエラーが発生します。

Clone メソッドを使って Recordset オブジェクトのコピーを作成すると、複製元と複製先のそれぞれの Recordset オブジェクトの Bookmark プロパティの設定は同じになり、ブックマークを相互に使うことができます。しかし、同じオブジェクトや、同じ SQL ステートメントを使って作成した Recordset オブジェクトでも、異なる Recordset オブジェクトからはブックマークを相互に使うことはできません。

Bookmark プロパティに、削除されたレコードを表す値を設定すると、トラップできるエラーが発生します。

レコードの内容を再表示するには、Bookmark プロパティにその値を再設定します。ただし、この操作を行うと、Edit メソッドまたは AddNew メソッドによって起動された処理中の操作はすべて取り消されます。次に例を示します。

Rst.Bookmark = Rst.Bookmark

Bookmark プロパティの値は、レコード番号とは異なります。

注   Bookmark プロパティは、前方スクロール スナップショット タイプの Recordset オブジェクトでは使えません。


Bookmark プロパティの例

次のプログラムでは、ブックマークを保存することによって、Recordset オブジェクト内の位置を保存します。この保存したブックマークを Bookmark プロパティに代入して、カレント レコードのポインタを Recordset オブジェクト内の任意の場所に再び配置します。FindYear 関数は、渡された値と Recordset オブジェクトを基に Recordset オブジェクトのタイトルを検索し、一致したレコードのブックマークで配列を作成します。

Function FindYear (YearWanted%, Rs As Recordset, Found()) As Integer

Dim i As Integer

Rs.FindFirst "[Year Published] = " & YearWanted

If Rs.NoMatch Or Rs.Bookmarkable = False Then

FindYear = False

Exit Function

Else

Do Until Rs.NoMatch = True

Found(i) = Rs.Bookmark

Rs.FindNext "[Year Published] = " & YearWanted

i = i + 1

Loop

End If

FindYear = i

End Function


関連項目

Bookmarkable プロパティ

Dynaset オブジェクト

RecordCount プロパティ

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

Table オブジェクト


Bookmark プロパティの対象

Dynaset オブジェクト

Recordset オブジェクト

Snapshot オブジェクト

Table オブジェクト


Bookmarkable プロパティ

関連項目	対象

Recordset オブジェクトが、Bookmark プロパティを使って設定するブックマークをサポートしているかどうかを示す値を返します。

構文

object.Bookmarkable

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Bookmarkable プロパティの戻り値は次のとおりです。

値	内容

True	Recordset オブジェクトはブックマークをサポートしています。

False	Recordset オブジェクトはブックマークをサポートしていません。

解説

Bookmarkable プロパティは、Recordset オブジェクト、およびブックマークをサポートする以前のバージョンの Dynaset、Snapshot、Table の各オブジェクトで使用できます。

Bookmark プロパティを設定または確認する前に、Recordset オブジェクトがブックマークをサポートしているかどうかを確認するために Bookmarkable プロパティを調べます。

Microsoft Jet データベース エンジンのテーブルを基に作成している Recordset オブジェクトは、Bookmarkable プロパティの値が真 (True) に設定されているので、ブックマークを使えます。ただし、前方スクロール スナップショットでは、ブックマークは使えません。他のデータベース製品の中には、ブックマークをサポートしていないものもあります。たとえば、主キーを持っていない Paradox のテーブルを基に作成したすべての Recordset オブジェクトでは、ブックマークは使えません。


関連項目

Bookmark プロパティ (データ アクセス)

RecordCount プロパティ

Recordset オブジェクト、Recordsets コレクション


Bookmarkable プロパティの対象

Dynaset オブジェクト

Recordset オブジェクト

Snapshot オブジェクト

Table オブジェクト


DateCreated、LastUpdated プロパティ

関連項目	例	対象

DateCreated プロパティ

ベース テーブルが作成された日付と時刻を返します。

LastUpdated プロパティ

ベース テーブルに対して、最後に行われたデザインの変更の日付と時刻を返します。

構文

object.DateCreated

object.LastUpdated

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

DateCreated プロパティと LastUpdated プロパティは、VarType 7 (日付型)の内部処理形式のバリアント型 (Variant) で値を返します。

解説

DateCreated プロパティと LastUpdated プロパティは、Recordset、TableDef、QueryDef、Document の各オブジェクトで使用できます。また、以前のバージョンの Table オブジェクトでも使用できます。

日付と時刻の設定は、ベース テーブルが作成または最後に更新された、コンピュータで行われます。マルチ ユーザー環境では、DateCreated プロパティと LastUpdated プロパティの設定内容の矛盾を避けるために、これらのプロパティの設定をファイル サーバーから直接取得する必要があります。


関連項目

Document オブジェクト、Documents コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Table オブジェクト

TableDef オブジェクト、TableDefs コレクション


DateCreated、LastUpdated プロパティの例

次のプログラムでは、Employees テーブルが作成された日時と、最後に更新された日時を特定します。

Dim Creation As Variant, DesignChange As Variant, MyTable As Recordset, MyDB As Database

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyTable = MyDB.OpenRecordset("Employees", dbOpenTable)

Creation = MyTable.DateCreated

DesignChange = MyTable.LastUpdated


DateCreated、LastUpdated プロパティの対象

Document オブジェクト

QueryDef オブジェクト

テーブル タイプの Recordset オブジェクト

Table オブジェクト

TableDef オブジェクト


DistinctCount プロパティ

関連項目	例	対象

関連付けられたテーブルに含まれる、Index オブジェクトの一意の値の個数を示す値を返します。

構文

object.DistinctCount

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

DistinctCount プロパティは、長整数型 (Long) の値を返します。

解説

DistinctCount プロパティを調べて、インデックスに設定されている一意の値やキーの数を確認します。インデックスの重複が許可されている場合は、同じ値が複数あることがありますが、どのキーもカウントされるのは 1 回だけです。この情報は、インデックス情報を参照してデータ アクセスを最適化するアプリケーションで役立ちます。

DistinctCount プロパティは、常に実際のキーの数を表しているとは限りません。たとえば、トランザクションのロールバックによって発生する変更は、すぐには DistinctCount プロパティに反映されません。


DistinctCount プロパティの対象

Index オブジェクト


関連項目

Index オブジェクト、Indexes コレクション


DistinctCount プロパティの例

次のプログラムでは、データベースのテーブルを基に開いた TableDef オブジェクトの、現在の Index オブジェクトの DistinctCount プロパティを調べます。

Dim MyDB As Database, MyTD As TableDef, MyIND As Index

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB", True)

Set MyTD = MyDB!Customers

Set MyIND = MyTD.Indexes(0)

Debug.Print MyIND.DistinctCount


Filter プロパティ

関連項目	例	対象

次に開かれる Recordset オブジェクトに含まれるレコードを特定する値を設定します。値の取得も可能です。

構文

object.Filter [= value]

Filter プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	SQL ステートメントの WHERE 句から予約語 WHERE を除いた文字列式を指定します。この引数は文字列型 (String) です。

解説

Filter プロパティを使って、ダイナセット タイプ、スナップショット タイプの Recordset オブジェクト、または以前のバージョンの Dynaset オブジェクト、Snapshot オブジェクトにフィルタを設定します。

既存の Recordset オブジェクトに基づいて、新しい Recordset オブジェクトを開く場合、既存のオブジェクトから取得するレコードを制限するために Filter プロパティを指定します。

次の例は、特定の地域に住む顧客のレコードだけを返す Filter プロパティの使い方を示します。

MyRecordset.Filter = "[Region] = 'NY'"

Set FilteredRecordset = MyRecordset.OpenRecordset()

注

通常、フィルタの抽出条件を含む SQL ステートメントを使って新しい Recordset オブジェクトを開く方が、より早く処理結果が得られます。

日付を含むフィールドを抽出する場合は、U.S. 版以外の Microsoft Jet データベース エンジンを使っているときでも、U.S. の日付形式 (月 - 日 - 年) を使う必要があります。それ以外の場合は、データを指定したとおりに抽出することはできません。簡単に、日付を含むフィールドを抽出するには、次のように Format 関数を使います。

MyDS.Filter = "startdate > #" & Format(mydate, "m/d/yy") & "#"


関連項目

Dynaset オブジェクト

OpenRecordset メソッド

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

Sort プロパティ

WHERE 句 (SQL)


Filter プロパティの例

次のプログラムは、イギリスに出荷するために注文されたレコードだけを含む、ダイナセット タイプの Recordset オブジェクトを作成します。

Dim MyDB As Database, MySet As Recordset, FilteredSet As Recordset

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MySet = MyDB.OpenRecordset("Orders", dbOpenDynaset)	' ダイナセット タイプの Recordset オブジェクトを作成します。

MySet.Filter = "[Ship Country] = 'UK'"	' 抽出条件を設定します。

Set FilteredSet = MySet.OpenRecordset()	' 抽出されたダイナセット タイプの Recordset オブジェクトを作成します。

注   MySet の内容を変更するには、Filter プロパティを設定してから MySet を基にした 2 つめの Recordset オブジェクトを開きます。

ヒント   必要な条件設定を指定して、一度の操作で 2 つめの Recordset オブジェクトを作成する方が効率的な場合もあります。一般に、選択するデータがあらかじめわかっている場合は、SQL ステートメントを使って Recordset オブジェクトを作成する方が効率的です。次の例では、作成する Recordset オブジェクトは 1 つだけですが、結果は上の例と同じになります。

Dim MyDB As Database, MySet As Recordset

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MySet = MyDB.OpenRecordset("SELECT * FROM Orders WHERE [Ship Country] = 'UK';")


Filter プロパティの対象

Dynaset オブジェクト

ダイナセット タイプの Recordset オブジェクト

Snapshot オブジェクト

スナップショット タイプの Recordset オブジェクト


LoginTimeout プロパティ

関連項目	例	対象

ODBC データベースにログインするときに、エラーが発生するまでの秒数を設定します。値の取得も可能です。

構文

object.LoginTimeout [= value]

LoginTimeout プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ログイン タイムアウト エラーが発生するまでの秒数を示す整数型 (Integer) の値を指定します。LoginTimeout プロパティの既定値は 20 秒です。LoginTimeout プロパティを 0 に設定すると、タイムアウトは発生しません。

解説

接続するまでの待機時間の既定値は 20 秒です。しかし、SQL サーバーなどの ODBC データベースにログインするとき、ネットワーク エラーやサーバーが起動されていないなどの理由で、接続に失敗する場合があります。既定値として設定されている 20 秒間待機する代わりに、Microsoft Jet データベース エンジンがエラーを生成するまでの待機時間を指定できます。サーバーへのログインは、外部サーバーのデータベースに対してクエリーを実行するなど、一連のイベントの一部として内部的に起こります。

タイムアウトの値は、アプリケーションの INI ファイルの [ODBC] セクションにある LoginTimeout プロパティの現在の設定によって決定されます。


関連項目

Database オブジェクト、Databases コレクション

DBEngine オブジェクト

ODBCTimeout プロパティ

QueryDef オブジェクト、QueryDefs コレクション

QueryTimeout プロパティ


LoginTimeout プロパティの例

次のプログラムでは、LoginTimeout プロパティを 120 秒に設定し、ODBC サーバーのデータベースに対するクエリーを作成して実行します。

Dim MyDB As Database, MyQuery As QueryDef, MyRecords As Recordset

DBEngine.LoginTimeout = 120	' タイムアウトに必要な時間は 2 分です。

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

' クエリーを作成します。

Set MyQuery = MyDB.CreateQueryDef("All Cust", "SELECT * FROM Customers;")

MyQuery.Connect = "ODBC;DSN=Human Resources; DATABASE=HRSRVR; UID=Smith; PWD=Sesame"

' サーバーにログインして、クエリーを実行します。

Set MyRecords = MyQuery.OpenRecordset()


LoginTimeout プロパティの対象

DBEngine オブジェクト


LockEdits プロパティ

関連項目	例	対象

編集中に有効なロック状態を示す値を設定します。値の取得も可能です。

構文

object.LockEdits [= value]

LockEdits プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ロックの種類を示すブール式を、ブール型 (Boolean) で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	(既定値) 排他的ロックが有効です。Edit メソッドを使うと、編集中のレコードを含む 2KB ページがロックされます。このページは Update メソッド、Close メソッド、または Movexxx メソッド、Findxxx メソッドのうちのいずれかのメソッドを使ったときにアンロックされます。

False	共有的ロックが編集中に有効です。レコードを含む 2KB ページは、Update メソッドを使ってレコードを更新するときだけロックされます。

解説

LockEdits プロパティは、ダイナセット タイプ、テーブル タイプの Recordset オブジェクト、および以前のバージョンの Dynaset オブジェクト、Table オブジェクトで使用できます。

ページがロックされると、他のユーザーはそのページのレコードを編集することができません。LockEdits プロパティを真 (True) に設定した場合に、他のユーザーが既にそのページをロックしていると、Edit メソッドを使ったときにエラーが発生します。他のユーザーはロックされたページのデータを読み込むことができます。

LockEdits プロパティを偽 (False) に設定し、後で他のユーザーがそのページをロックしているときに Update メソッドを使うと、エラーが発生します。他のユーザーがレコードに対して行った変更を確認し、自分が行った変更を無効にするときは、Recordset オブジェクトの Bookmark プロパティをそれ自身に設定します。

ODBC データ ソースで作業をするとき、LockEdits プロパティは常に偽 (False) (共有的ロック) に設定されています。Microsoft Jet データベース エンジンは、外部データベース サーバーのロック機能を制御できません。


関連項目

Bookmark プロパティ (データ アクセス)

Close メソッド

Dynaset オブジェクト

Edit メソッド

FindFirst、FindLast、FindNext、FindPrevious メソッド

IsolateODBCTrans プロパティ

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

Recordset オブジェクト、Recordsets コレクション

Table オブジェクト

Update メソッド (データ アクセス)


LockEdits プロパティの例

次のプログラムでは、ダイナセット タイプの Recordset オブジェクトを開き、LockEdits プロパティを偽 (False) に設定します。この設定を行うと、共有的ロックが有効になり、他のユーザーはいつでもこのデータベースのレコードを変更できます。アプリケーションが Update メソッドを使う前にデータが変更されると、トラップできるエラーが発生します。

Sub ShowLE()

Dim MyDB As Database, MyRecords As Recordset

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyRecords = MyDB.OpenRecordset("Table To Update")

MyRecords.LockEdits = False

MyRecords.Edit	' 編集を開始します。

MyRecords!MyField = "New Stuff"

On Error Goto MyEH

MyRecords.Update	' 変更の書き込みを試みます。

MyRecords.Close

Exit Sub

MyEH:

If Error = 3197 Then	' データが変更されました。

MsgBox "Data changed."

Resume Next

Else

Msgbox "Some other error."

End If

End Sub


LockEdits プロパティの対象

Dynaset オブジェクト

ダイナセット タイプの Recordset オブジェクト

Table オブジェクト

テーブル タイプの Recordset オブジェクト


NoMatch プロパティ

関連項目	例	対象

Seek メソッドまたは Findxxx メソッドを使って、特定のレコードが見つかったかどうかを示す値を取得します。

構文

object.NoMatch

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

NoMatch プロパティの戻り値は次のとおりです。

値	説明

True	指定されたレコードは見つかりませんでした。

False	指定されたレコードが見つかりました。

解説

NoMatch プロパティは、Recordset オブジェクト、以前のバージョンの Dynaset、Snapshot、Table の各オブジェクトで使用できます。

Recordset オブジェクトを開くか、作成したときの NoMatch プロパティは、偽 (False) に設定されています。

レコードを移動するには、テーブル タイプの Recordset オブジェクト、Table オブジェクトには Seek メソッドを使い、ダイナセット タイプ、スナップショット タイプの Recordset、Dynaset、Snapshot オブジェクトには Findxxx メソッドを使います。NoMatch プロパティを調べて、レコードが発見されたかどうかを確認します。

Seek メソッドの操作に失敗し、NoMatch プロパティが真 (True) の場合、操作する前のカレント レコードは無効になります。前に使用していたカレント レコードに戻る必要がある場合は、Seek メソッドを使う前に、カレント レコードのブックマークを取得してください。

Findxxx メソッドの操作に失敗し、NoMatch プロパティが真 (True) の場合、カレント レコードは、Recordset オブジェクトの先頭のレコードに設定されます。元のカレント レコードに戻る必要がある場合は、Findxxx メソッドを使う前に、カレント レコードのブックマークを取得してください。

注   Recordset オブジェクトでは、どの Movexxx メソッドを使っても、NoMatch プロパティの設定は変更されません。


関連項目

BOF、EOF プロパティ

Dynaset オブジェクト

FindFirst、FindLast、FindNext、FindPrevious メソッド

Recordset オブジェクト、Recordsets コレクション

Seek メソッド

Snapshot オブジェクト

Table オブジェクト


NoMatch プロパティの例

次のプログラムでは、Employees テーブルのすべての営業社員の役職名を変更します。まず、ダイナセット タイプの Recordset オブジェクトを作成します。次に、FindFirst メソッドと FindNext メソッドを使って役職名について条件を満たすレコードをすべて取り出します。最後に、それぞれのレコードを編集できるようにしてから、役職名を変更し、Update メソッドを使って変更内容を保存します。

Dim Criteria As String, SaveHere As String

Dim MyDB As Database, MySet As Recordset

Criteria = "Title = 'Sales Representative'"   ' 検索の基準を定義します。

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

' Recordset オブジェクトを作成します。

Set MySet = MyDB.OpenRecordset("Employees", dbOpenDynaset)

SaveHere = MySet.Bookmark	' ブックマークを保存します。

MySet.FindFirst Criteria	' 最初の候補を見つけます。

Do Until MySet.NoMatch	' 一致するレコードがなくなるまで繰り返します。

MySet.Edit	' 編集を有効にします。

MySet!Title = "Account Executive"	' 役職名を変更します。

MySet.Update	' 変更内容を保存します。

MySet.FindNext Criteria	' 次のレコードを見つけます。

Loop	' ループの終了。

MySet.Bookmark = SaveHere

ヒント   更新クエリーを使う方が高速に処理できる場合もあります。


NoMatch プロパティの対象

Dynaset オブジェクト

Recordset オブジェクト

Snapshot オブジェクト

Table オブジェクト


ODBCTimeout プロパティ

関連項目	例	対象

ODBC データベースに対してクエリーが実行されたとき、Microsoft Jet データベース エンジンがタイムアウト エラーを生成するまで待機する秒数を設定します。値の取得も可能です。

構文

object.ODBCTimeout [= value]

ODBCTimeout プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	タイムアウト エラーが発生するまで Microsoft Jet データベース エンジンが待機する秒数を示す整数型 (Integer) の値を指定します。

解説

SQL Server などの ODBC データベースを使っている場合には、ネットワークのトラフィックや ODBC サーバーの使用状況などにより遅延が生じることがあります。Jet データベース エンジンが、いつまでも待機せずに、エラーを生成するまで待機する時間を指定できます。タイムアウトの既定値は 60 秒です。Database オブジェクトの QueryTimeout プロパティを設定すると、この既定値は無効になります。

QueryDef オブジェクトの ODBCTimeout プロパティを設定すると、QueryDef オブジェクトを含む Database オブジェクトの QueryTimeout プロパティの設定値を無効にします。ただし、無効にするのは、その QueryDef オブジェクトの設定だけです。

ODBCTimeout プロパティが 0 に設定されていると、タイムアウトは発生しません。


関連項目

QueryDef オブジェクト、QueryDefs コレクション

QueryTimeout プロパティ


ODBCTimeout プロパティの例

次のプログラムでは、ODBCTimeout プロパティを 120 秒に設定してクエリーを作成し、それを ODBC サーバーのデータベースで実行します。

Dim MyDB As Database, MyQuery As QueryDef, MyRecords As Recordset

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

' クエリーを作成します。

Set MyQuery = MyDB.CreateQueryDef("All Cust", "SELECT * FROM Customers;")

MyQuery.Connect = "ODBC;DSN=Human Resources; SERVER=HRSRVR: UID=Smith; PWD=Sesame"

' サーバーにログインして、クエリーを実行します。

MyQuery.ODBCTimeout = 120

Set MyRecords = MyQuery.OpenRecordset()


ODBCTimeout プロパティの対象

QueryDef オブジェクト


RecordCount プロパティ

関連項目	例	対象

Recordset オブジェクトまたは TableDef オブジェクト内で、アクセスしたレコード数を返します。このプロパティは値の取得のみ可能です。

構文

object.RecordCount

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

RecordCount プロパティは長整数型 (Long) の値を返します。

解説

RecordCount プロパティは、Recordset オブジェクトや TableDef オブジェクト内で、アクセスしたレコード数を確認するときに使います。RecordCount プロパティの返す値は、すべてのレコードにアクセスしない限り、ダイナセット タイプやスナップショット タイプの Recordset オブジェクトに含まれるレコード数と一致しません。

最後のレコードにアクセスすると、RecordCount プロパティは、Recordset オブジェクトまたは TableDef オブジェクト内の、削除されていないレコードを合計した数を示します。最後のレコードに強制的にアクセスするには、その Recordset オブジェクトに対して MoveLast メソッドまたは FindLast メソッドを実行します。また、クエリーが返すレコードのおよその数を取得するには、SQL の Count 関数を使います。

アプリケーションがダイナセット タイプの Recordset オブジェクトや Dynaset オブジェクトのレコードを削除すると、RecordCount プロパティの値は減少します。しかし、他のユーザーがレコードを削除した場合は、削除されたレコードの位置にカレント レコードが移動されるまで、RecordCount プロパティの値には反映されません。RecordCount プロパティの設定に影響するようなトランザクションを実行し、その後でトランザクションをロールバックしても、RecordCount プロパティはレコードの実際の数を反映しません。

スナップショット タイプの Recordset オブジェクト、Snapshot オブジェクトの RecordCount プロパティは、基になっているテーブルの変更に影響されません。

テーブル タイプの Recordset、および Table、TableDef の各オブジェクトの RecordCount プロパティは、常にテーブル内のレコード数を反映し、すべてのユーザーによるレコードの追加や削除をすぐに反映します。

レコードを持たない Recordset オブジェクトや TableDef オブジェクトの RecordCount プロパティは 0 に設定されています。

アタッチ テーブルや ODBC データベースを使用している場合、RecordCount プロパティは常に -1 に設定されています。

Recordset オブジェクトに Requery メソッドを使うと、クエリーが再実行されたときと同様に、RecordCount プロパティがリセットされます。


関連項目

Count 関数 (SQL)

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

Recordset オブジェクト、Recordsets コレクション

Requery メソッド

TableDef オブジェクト、TableDefs コレクション


RecordCount プロパティの例

次のプログラムでは、Employees テーブルに基づいて Recordset オブジェクトを作成してから、Recordset オブジェクトのレコード数を求めます。

Dim MyDB As Database, MyRecords As Recordset, Total As Long

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyRecords = MyDB.OpenRecordset("Employees")

MyRecords.MoveLast

Total = MyRecords.RecordCount

If Total = -1 Then

Debug.Print "Count not available."

End If


RecordCount プロパティの対象

Dynaset オブジェクト

Recordset オブジェクト

Snapshot オブジェクト

Table オブジェクト

TableDef オブジェクト


Sort プロパティ

関連項目	例	対象

Recordset オブジェクトのレコードに、並べ替え順序を設定します。値の取得も可能です。

構文

object.Sort [= value]

Sort プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	SQL ステートメントの ORDER BY 句から予約語 ORDER BY を除いた文字列式を指定します。この引数は文字列型 (String) です。

解説

Sort プロパティは、ダイナセット タイプ、スナップショット タイプの Recordset オブジェクト、および以前のバージョンの Dynaset オブジェクト、Snapshot オブジェクトで使用できます。

オブジェクトにこのプロパティを設定すると、そのオブジェクトから次に Recordset オブジェクトが作成されるときに並べ替えが行われます。Sort プロパティの設定は、QueryDef オブジェクトに指定されたすべての並べ替え順序を無効にします。

特に指定しない限り、並べ替え順序は昇順 (A-Z または 0-100) です。次に、並べ替え順序を昇順と降順 (Z-A または 100-0) に設定する方法を示します。

MySet.Sort = "[Ship Country]"	' 昇順に初期設定します。

MySet.Sort = "[Ship Country] Asc"

MySet.Sort = "[Ship Country] Desc"

Sort プロパティは、テーブル タイプの Recordset オブジェクトには適用されません。テーブル タイプの Recordset オブジェクトを並べ替えるときは、Index プロパティを使います。

ヒント   通常、並べ替えの条件を指定した SQL ステートメントを使って新しい Recordset オブジェクトを開いた方が高速に処理できます。


関連項目

Dynaset オブジェクト

ダイナセット タイプの Recordset オブジェクト

Filter プロパティ

Index プロパティ (データ アクセス)

ORDER BY 句 (SQL)

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

スナップショット タイプの Recordset オブジェクト

SQL プロパティ


Sort プロパティの例

次のプログラムでは、Sort プロパティを使って、Order テーブルに基づいてダイナセット タイプの Recordset オブジェクトを作成し、並べ替え順序を設定します。レコードセット SortedSet 内のレコードは、Ship Country によって昇順に並べ替えられます。

Dim MyDB As Database, MySet As Recordset, SortedSet As Recordset

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MySet = MyDB.OpenRecordset("Orders", dbOpenDynaset)   ' ダイナセットを作成します。

MySet.Sort = "[Ship Country]"	' 並べ替え順序を設定します。

Set SortedSet = MySet.OpenRecordset()	' 2 つめのダイナセットを作成します。

ヒント   任意に条件を指定して、一度の操作で 2 つの Recordset オブジェクトを作成する方が効率的なこともあります。通常、選択するデータがあらかじめわかっている場合は、SQL ステートメントを使って Recordset オブジェクトを作成する方が効率的です。次の例では、作成する Recordset オブジェクトは 1 つだけですが、結果は前の例と同じになります。

Dim MyDB As Database, MySet As Recordset

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MySet = MyDB.OpenRecordset("SELECT * FROM Orders ORDER BY [Ship Country];")


Sort プロパティの対象

Dynaset オブジェクト

ダイナセット タイプの Recordset オブジェクト

Snapshot オブジェクト

スナップショット タイプの Recordset オブジェクト


SQL プロパティ

関連項目	例	対象

QueryDef オブジェクトが実行するクエリーを定義する SQL ステートメントを設定します。値の取得も可能です。

構文

object.SQL [= value]

SQL プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	SQL ステートメントを含む文字列式を指定します。この引数は文字列型 (String) です。

解説

SQL プロパティは、クエリーが実行されるときのレコードの選択、グループ化、並べ替えの方法を決定する SQL ステートメントを保持しています。クエリーは、ダイナセット タイプ、スナップショット タイプの Recordset オブジェクト、または Dynaset オブジェクト、Snapshot オブジェクトに含めるレコードを選択するために使います。レコードを返さずにデータを修正する一括クエリーを定義することもできます。

Recordset オブジェクトの並べ替え、フィルタを実行するときは、ORDER BY 句や WHERE 句を使う方が Sort プロパティ、Filter プロパティを使うよりも効率的です。

SQL パススルー クエリーを作成する場合を除いて、クエリーで使われる SQL の構文は、Microsoft Jet データベース エンジンで定義されている SQL の構文に準拠している必要があります。

ODBC データベースに SQL パススルーで操作を行うときは、QueryDef オブジェクトを使うことをお勧めします。QueryDef オブジェクトの Connect プロパティに ODBC データ ソースを指定すると、外部サーバーに渡されるクエリーに、Microsoft Jet データベース以外の SQL ステートメントを指定できます。たとえば、Microsoft SQL Server または Sybase SQL Server のデータベースでは、TRANSACT SQL ステートメントを引数 value に指定することができます。このステートメントは Jet データベース エンジンでは処理されません。

SQL ステートメントにクエリーに対するパラメータが含まれる場合は、クエリーを実行するときにそのパラメータを設定する必要があります。設定したパラメータは、次にリセットするまで、クエリーを実行するたびに同じ値が使用されます。次のコードは、QueryDef オブジェクトの Parameters コレクションにアクセスして、パラメータを設定します。

MyQuery.Parameters("Order Date") = "10/11/94"   ' パラメータを設定します。

MyQuery.Parameters("Ship Date") = "11/4/94"


関連項目

CreateQueryDef メソッド

Dynaset オブジェクト

Filter プロパティ

OpenRecordset メソッド

Parameter オブジェクト、Parameters コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

SQL を使ったデータの取得

Snapshot オブジェクト

Sort プロパティ


SQL プロパティの例

次のプログラムでは、Orders テーブルに基づいたクエリーを作成します。このクエリーは、Freigh の値が 10 を超える注文をすべて抽出します。

Dim MyDB As Database, MyQuery As QueryDef, MySnapshot As Recordset

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyQuery = MyDB.CreateQueryDef("Large Freight")   ' クエリーを作成します。

MyQuery.SQL = "SELECT * FROM Orders WHERE [Freight] > 10;"

' スナップショットを作成します。

Set MySnapshot = MyDB.OpenRecordset("Large Freight", dbOpenSnapshot)


SQL プロパティの対象

QueryDef オブジェクト


Transactions プロパティ

関連項目	対象

オブジェクトが、後でロールバック (キャンセル) またはコミット (保存) が可能な一連の変更の記録 (トランザクション) をサポートしているかどうかを示す値を返します。

構文

object.Transactions

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Transactions プロパティの戻り値は次のとおりです。

値	内容

True	オブジェクトはトランザクションをサポートします。

False	オブジェクトはトランザクションをサポートしません。スナップショット タイプの Recordset オブジェクトでは、常にこの値が返されます。

解説

Transactions プロパティは、ダイナセット タイプ、スナップショット タイプの Recordset オブジェクト、および以前のバージョンの Dynaset オブジェクト、Table オブジェクトで使用できます。

ダイナセットまたはテーブルが Microsoft Jet データベース エンジンのテーブルを基に作成している場合、Transactions プロパティは真 (True) に設定され、トランザクションを使用できます。他のデータベース エンジンでは、トランザクションをサポートしていない場合もあります。たとえば、Paradox のテーブルに基づいたダイナセット タイプの Recordset オブジェクトでトランザクションは使用できません。

Recordset オブジェクトの Workspace オブジェクトで BeginTrans メソッドを呼び出す前に Transactions プロパティを調べて、トランザクションがサポートされているかどうかを確認してください。トランザクションをサポートしていないオブジェクトに対して BeginTrans、CommitTrans、Rollback メソッドを使っても無効になります。


関連項目

BeginTrans、CommitTrans、Rollback メソッド

Database オブジェクト、Databases コレクション

Dynaset オブジェクト

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

Table オブジェクト

Workspace オブジェクト、Workspaces コレクション


Transactions プロパティの対象

Database オブジェクト

Dynaset オブジェクト

Recordset オブジェクト

Snapshot オブジェクト

Table オブジェクト


Updatable プロパティ

関連項目	例	対象

データ アクセス オブジェクトが更新可能かどうかを示す値を返します。

構文

object.Updatable

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Updatable プロパティの戻り値は次のとおりです。

値	内容

True	オブジェクトは変更または更新可能です。

False	オブジェクトは変更できないか、更新できません。スナップショット タイプの Recordset オブジェクト、Snapshot オブジェクトでは、常にこの値が返されます。

解説

Updatable プロパティの設定が真 (True) の場合、各オブジェクトでの意味は次のとおりです。

指定された Database オブジェクトは変更可能です。

指定された QueryDef オブジェクトのクエリーの定義は変更可能です。

指定された Recordset、Dynaset または Table の各オブジェクトのレコードは更新可能です。

指定された TableDef オブジェクトのテーブルの定義は変更可能です。

Updatable プロパティは、すべての Recordset オブジェクト、および以前のバージョンの Dynaset、Snapshot、Table の各オブジェクトで使用できます。

Updatable プロパティは、新しく作成された TableDef オブジェクトでは、常に真 (True) に設定され、アタッチされた TableDef オブジェクトでは、偽 (False) に設定されます。新規の TableDef オブジェクトは、現在のユーザーが書き込みの権限を持っているデータベースにのみ追加することができます。

オブジェクトの多くは、更新できないフィールドを含めることができます。たとえば、一部のフィールドしか変更できないダイナセット タイプの Recordset オブジェクトを作成できます。これらのフィールドは固定することも、自動的に増加するデータを格納することもできます。また、更新可能なテーブルと更新できないテーブルを組み合わせたクエリーから、ダイナセットを作成することもできます。

更新できないフィールドだけからなるオブジェクトの Updatable プロパティの値は偽 (False) です。更新可能なフィールドが 1 つ以上あるオブジェクトの Updatable プロパティの値は真 (True) です。この場合は、更新可能なフィールドだけが編集できます。更新できないフィールドに新しい値を代入しようとすると、トラップできるエラーが発生します。

クエリーの定義が更新可能なとき、その結果として作成される Recordset オブジェクトが更新できない状態でも、QueryDef オブジェクトの Updatable プロパティは真 (True) に設定されます。

更新可能なオブジェクトは更新できないフィールドを持つことができるので、Recordset オブジェクトのレコードを編集する前には、Recordset オブジェクトの Fields コレクションを調べて、各フィールドの DataUpdatable プロパティを確認します。


関連項目

Dynaset オブジェクト

Field オブジェクト、Fields コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Snapshot オブジェクト

Table オブジェクト

TableDef オブジェクト、TableDefs コレクション

Update メソッド (データ アクセス)


Updatable プロパティの例

次のプログラムでは、オブジェクトの Updatable プロパティが真 (True) に設定されている場合に、Recordset オブジェクトにレコードを追加します。

Dim MyDB As Database, MyData As Recordset

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyData = MyDB.OpenRecordset("Unfamiliar Table")

If MyData.Updatable = True Then

MyData.AddNew

MyData("MyField") = "Some new data"

MyData.Update

End If

MyData.Close

MyDB.Close


Updatable プロパティの対象

Database オブジェクト

Dynaset オブジェクト

QueryDef オブジェクト

Recordset オブジェクト

Snapshot オブジェクト

Table オブジェクト

TableDef オブジェクト


Primary プロパティ

関連項目	例	対象

Index オブジェクトがテーブルの主インデックスを表すかどうかを示す値を設定します。値の取得も可能です。コレクションに追加されていない新しい Index オブジェクトでは、値の取得および設定ともに可能です。Indexes コレクション内の既存の Index オブジェクトでは、値の取得のみ可能です。Index オブジェクトが TableDef オブジェクトに追加されていても、TableDef オブジェクトが TableDefs コレクションに追加されていなければ、Index プロパティは値の取得および設定ともに可能です。

構文

object.Primary [= value]

Primary プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	主インデックスを示すブール式を、ブール型 (Boolean)で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	Index オブジェクトは主インデックスを表します。

False	Index オブジェクトは主インデックスを表しません。

解説

主インデックスは、あらかじめ定義された並べ替え順序で並べ替えられた、テーブル内のすべてのレコードを一意に識別するための 1 つ以上のフィールドで構成されています。インデックス フィールドは一意である必要があるため、Index オブジェクトの Unique プロパティは真 (True) に設定されます。主インデックスが複数のフィールドで構成されている場合、それぞれのフィールドは重複する値を持つことができますが、インデックスに設定されているすべてのフィールドの値の組み合わせは、一意である必要があります。主インデックスはテーブルのキーで構成され、通常は主キーと同じフィールドが設定されています。

ヒント   必ずしも、テーブルにインデックスを作成する必要はありません。ただし、通常、インデックスを設定せずに、テーブル内の特定のレコードにアクセスすると、多くの時間がかかります。Index オブジェクト内の各 Field オブジェクトの Attributes プロパティは、レコードの順序を決定します。その結果として、インデックスに対するアクセス方法が決定されます。データベースに新しくテーブルを作成するときは、各レコードを一意に識別する 1 つのフィールドにインデックスを作成し、Index オブジェクトの Primary プロパティを真 (True) に設定する方法をお勧めします。

テーブルに主キーを設定すると、主キーが自動的にそのテーブルの主インデックスとして定義されます。


Primary プロパティの例

次のプログラムでは、新しく Table オブジェクトと主キーである Index オブジェクトを作成してから、Table オブジェクトを Database オブジェクトの TableDefs コレクションに追加します。

Dim Db As Database , Td As TableDef, Idx As Index

Dim Fd1 As Field, Fd2 As Field

Set Db = Workspaces(0).OpenDatabase("BIBLIO.MDB")   ' データベースを開きます。

Set Td = Db.CreateTableDef("Book Types")

Set Fd1 = Td.CreateField("TypeNum",dbLong)   ' Fd1 フィールドを作成し、プロパティを設定します。

 Td.Fields.Append Fd1	' Fd1 フィールドを TableDef に追加します。

Set Fd2 = Td.CreateField("Type",dbText)   ' Fd2 フィールドを作成し、プロパティを設定します。

 Fd2.Size = 15	' テキスト フィールドの Size プロパティを設定します。

Td.Fields.Append Fd2	' Fd2 フィールドを TableDef オブジェクトに追加します。

Set Idx = Td.CreateIndex("PrimaryKey")

Idx.Name = "PrimaryKey"	' 新しい Index オブジェクトのプロパティを設定します。

Idx.Unique = True

Idx.Primary = True

Idx.Fields = "TypeNum"

Td.Indexes.Append Idx	' Index オブジェクトを TableDefs コレクションに追加します。

Db.TableDefs.Append Td	' TableDefs コレクションをデータベースに追加します。


関連項目

Attributes プロパティ

Clustered プロパティ

Index オブジェクト、Indexes コレクション

Unique プロパティ


Primary プロパティの対象

Index オブジェクト


Attributes プロパティ

関連項目	対象

Field、Relation、TableDef の各オブジェクトの特性を 1 つ以上表す値を設定します。値の取得も可能です。コレクションに追加されていないオブジェクトでは、値の取得および設定ともに可能です。このプロパティの値の取得と設定の詳細については、「解説」を参照してください。

構文

object.Attributes [= value]

Attributes プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	オブジェクトの特徴を表す長整数型 (Long) の定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

Field オブジェクトの場合、引数 value に次に示す定数の和を指定することによって、Field オブジェクトが表すフィールドの特性を指定します。

定数	内容

dbFixedField	(数値フィールドに対する既定値) フィールド サイズは固定長です。

dbVariableField	フィールド サイズは可変長です (テキスト フィールドのみ)。

dbAutoIncrField	新しいレコードのフィールドの値は、変更できない一意の長整数型 (Long) の整数に自動的に増分されます。Microsoft Jet データベースのテーブルに対してのみサポートされています。

dbUpdatableField	フィールドの値は変更できます。

dbDescending	(既定値) フィールドは降順 (Z-A または 100-0) で並べ替えられます。ただし、Index オブジェクトの Fields コレクションの Field オブジェクトのみに適用されます。この定数を省略すると、フィールドは昇順 (A-Z または 0-100) で並べ替えられます。

Relation オブジェクトの場合、引数 value に次に示す定数の和を指定することによって、Relation オブジェクトが表すリレーションの特性を指定します。

定数	内容

dbRelationUnique	リレーションは一対一です。

dbRelationDontEnforce	リレーションは強制的に適用されません。つまり、参照整合性がありません。

dbRelationInherited	リレーションは 2 つのアタッチ テーブルを持つ、カレント データベース以外のデータベースに存在します。

dbRelationLeft	リレーションは左結合です。

dbRelationRight	リレーションは右結合です。

dbRelationUpdateCascade	更新は連鎖します。

dbRelationDeleteCascade	削除は連鎖します。

注   連鎖操作をアクティブにするために Relation オブジェクトの Attributes プロパティを設定すると、Microsoft Jet データベース エンジンは、関連する主キー テーブルが変更されたときに、自動的に他の 1 つ以上のテーブルのレコードの更新や削除を実行します。

たとえば、Customers テーブル と Orders テーブルの間に連鎖削除リレーションを設定する場合、Customers テーブルからレコードを削除すると、その顧客に関連する Orders テーブルのレコードも削除されます。さらに、Orders テーブルと他のテーブルの間に連鎖削除リレーションが設定されている場合、Customers テーブルからレコードを削除すると、これらのテーブルからも自動的にレコードが削除されます。

TableDef オブジェクトの場合、引数 value に次に示す長整数型 (Long) の定数の和を指定することによって、TableDef オブジェクトが表すテーブルの特性を指定します。

定数	内容

dbAttachExclusive	Microsoft Jet データベース エンジンを使うデータベースの場合、テーブルが排他的に開かれたアタッチ テーブルであることを示します。

dbAttachSavePWD	Jet データベースを使うデータベースの場合、接続情報と共に保存されたアタッチ テーブルのユーザー ID とパスワードを示します。

dbSystemObject	テーブルの場合、Jet データベース エンジンが提供するシステム テーブルであることを示します (読み取り専用)。

dbHiddenObject	テーブルの場合、Jet データベース エンジンが提供する非表示のテーブル (一時使用) であることを示します (読み取り専用)。

dbAttachedTable	テーブルの場合、Jet データベースや Paradox データベースのような非 ODBC データベースからのアタッチ テーブルであることを示します。

dbAttachedODBC	テーブルの場合、Microsoft SQL Server などの ODBC データベースからのアタッチ テーブルであることを示します。

解説

これらの定数は、オブジェクト ブラウザのデータ アクセス (DAO) オブジェクト ライブラリにも表示されます。

次の表に示すように、Field オブジェクトに対する Attributes プロパティの使い方は、Field オブジェクトが追加される Fields コレクションを含むオブジェクトに依存します。

オブジェクトの追加先	使い方

Index	読み取り専用。

QueryDef	読み取り専用。

Recordset	読み取り専用。

Relation	サポートされません。

TableDef	読み取り専用。

コレクションに追加された Relation オブジェクトでの Attributes プロパティの設定値は読み取り専用です。

TableDef オブジェクトの場合、次の表に示すように、Attributes プロパティの使い方は、TableDef オブジェクトの状態によって異なります。

TableDef	使い方

ベース テーブル	読み取り専用。

アタッチ テーブル	読み取り専用。

このプロパティの設定値を調べる場合、特定の属性をテストするために And 演算子を使用できます。たとえば、Field オブジェクトのサイズが固定長かどうかを判別するときは、次のコードを使います。

If MyRecordset![FieldName].Attributes And dbFixedField Then...

複数の属性を設定するときは、適切な定数の和を設定することによってそれらの属性を組み合わせることができます。意味のない値を設定すると無視され、エラーも発生しません。たとえば、次のコードでは、Attributes プロパティを使って、Field オブジェクトが表すテキスト型フィールドを、サイズが可変長で、変更可能なフィールドにします。

MyRecordset![FieldName].Attributes = dbVariableField + dbUpdatableField


関連項目

And 演算子

Field オブジェクト、Fields コレクション

Relation オブジェクト、Relations コレクション

TableDef オブジェクト、TableDefs コレクション


Attributes プロパティの対象

Field オブジェクト

Relation オブジェクト

TableDef オブジェクト


CollatingOrder プロパティ

関連項目	対象

文字列比較および並べ替えのための、テキストの並べ替え順序を指定する値を返します。このプロパティは、値の取得のみ可能です。

構文

object.CollatingOrder

CollatingOrder プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	並べ替え順序を示す整数型 (Integer) の定数を指定します。

戻り値

CollatingOrder プロパティの戻り値は次のとおりです。

値	内容

dbSortGeneral	一般的な (英語、フランス語、ドイツ語、ポルトガル語、イタリア語、近代スペイン語による) 並べ替え順序を使います。

dbSortArabic	アラビア語の並べ替え順序を使います。

dbSortCyrillic	ロシア語の並べ替え順序を使います。

dbSortCzech	チェコ語の並べ替え順序を使います。

dbSortDutch	オランダ語の並べ替え順序を使います。

dbSortGreek	ギリシャ語の並べ替え順序を使います。

dbSortHebrew	ヘブライ語の並べ替え順序を使います。

dbSortHungarian	ハンガリー語の並べ替え順序を使います。

dbSortIcelandic	アイスランド語の並べ替え順序を使います。

dbSortJapanese	日本語の並べ替え順序を使います。

dbSortNeutral	ニュートラルな並べ替え順序を使います。

dbSortNorwdan	ノルウェー語またはデンマーク語の並べ替え順序を使います。

dbSortPDXIntl	Paradox International の並べ替え順序を使います。

dbSortPDXNor	Paradox ノルウェー語またはデンマーク語の並べ替え順序を使います。

dbSortPDXSwe	Paradox スウェーデン語またはフィンランド語の並べ替え順序を使います。

dbSortPolish	ポーランド語の並べ替え順序を使います。

dbSortSpanish	スペイン語の並べ替え順序を使います。

dbSortSwedFin	スウェーデン語またはフィンランド語の並べ替え順序を使います。

dbSortTurkish	トルコ語の並べ替え順序を使います。

dbSortUndefined	並べ替え順序は定義されていないか、不明です。

解説

これらの定数は、オブジェクト ブラウザのデータ アクセス (DAO) オブジェクト ライブラリにも表示されます。

次の表に示すように、Field オブジェクトの場合、CollatingOrder プロパティの使い方は、Field オブジェクトが追加される Fields コレクションを含むオブジェクトによって異なります。

オブジェクトの追加先	使用許可

Index	サポートされません。

QueryDef	読み取り専用。

Recordset	読み取り専用。

Relation	サポートされません。

TableDef	読み取り専用。

CollatingOrder プロパティの設定値は、データベースが作成されたときの CreateDatabase メソッド、またはデータベースが最後に最適化されたときの CompactDatabase メソッドの引数 locale に対応しています。

データベースまたはフィールドの文字列比較の方法を確認するときは、Database オブジェクトまたは Field オブジェクトの CollatingOrder プロパティの設定値を調べます。Field オブジェクトの設定値を、それを含む Database オブジェクトの設定値と異なる値に設定するときは、新規に作成した Field オブジェクトの CollatingOrder プロパティを設定します。

Index オブジェクトの Fields コレクションに含まれる Field オブジェクトの CollatingOrder プロパティと Attributes プロパティの設定値は、共にインデックスの並べ替え順序と方向を決定します。ただし、個々のインデックスについての照合順序は設定できません。テーブル全体についてのみ、照合順序の設定ができます。

CollatingOrder プロパティの設定値は、StrComp 関数、InStr 関数の引数 compare として使うことができます。


関連項目

Attributes プロパティ

Database オブジェクト、Databases コレクション

Field オブジェクト、Fields コレクション

InStr 関数

StrComp 関数


CollatingOrder プロパティの対象

Database オブジェクト

Field オブジェクト


OrdinalPosition プロパティ

関連項目	対象

Fields コレクションに追加された Field オブジェクトの、コレクション内での相対的な位置を指定する値を設定します。値の取得も可能です。Fields コレクションに追加されていないオブジェクトでは、値の取得および設定ともに可能です。このプロパティの値の取得と設定の詳細については、「解説」を参照してください。

構文

object.OrdinalPosition [= value]

OrdinalPosition プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	フィールドの順番を示す整数型 (Integer) の値を指定します。既定値は 0 です。

解説

次の表に示すように、Field オブジェクトの場合、OrdinalPosition プロパティの使い方は、Field オブジェクトが追加される Fields コレクションを含むオブジェクトによって異なります。

オブジェクトの追加先	使用許可

Index	サポートされません。

QueryDef	読み取り専用。

Recordset	読み取り専用。

Relation	サポートされません。

TableDef	読み取りと書き込みが可能。

通常は、コレクションに追加するオブジェクトの並び順は、オブジェクトを追加する順序によって決まります。たとえば、最初に追加されたオブジェクトは、1 番めの位置 (0) に、次に追加されたオブジェクトは、2 番めの位置 (1) になります。最後に追加されたオブジェクトの序数位置は count -1 です。この序数位置を示す count -1 は Count プロパティの設定値により指定されるコレクション中のオブジェクトの総数になります。

OrdinalPosition プロパティを使って、コレクションにオブジェクトを追加する順序とは異なる序数位置を、新規の Field オブジェクトに指定できます。これによって、テーブル、クエリー、レコードセットをアプリケーションで使うときに、フィールドの順序を指定することができます。たとえば、SELECT * クエリーがフィールドを返す順序は、現在の OrdinalPosition プロパティに設定されている値によって決まります。

OrdinalPosition プロパティの設定値によって、レコードセットがフィールドを返す順序を常に再設定できます。Microsoft Jet データベース エンジンでは、OrdinalPosition プロパティは、任意の正の整数を受け取ります。負の整数を設定すると、トラップできるエラーが発生します。

他のフィールドに既に割り当てられている数を指定すると、2 つのフィールドは文字コード順に並べられます。同一コレクション内の、2 つ以上の Field オブジェクトの OrdinalPosition プロパティに、同じ値を設定できます。この場合、フィールドは文字コード順に並べ替えられます。たとえば、Age という名前のフィールドを 4 に設定し、Weight という名前のフィールドも 4 に設定すると、Weight は Age の後に返されます。

OrdinalPosition プロパティにはフィールド数 -1 より大きい数を指定できます。フィールドは設定値の大きい順に返されます。たとえば、フィールドが全部で 5 個あり、任意のフィールドの OrdinalPosition プロパティを 20 に設定したとします。他の 2 つのフィールドの OrdinalPosition プロパティを 10 と 30 に設定すると、20 に設定したフィールドは 10 と 30 に設定したフィールドの間に返されます。

OrdinalPosition プロパティの設定値を変更した後で、このプロパティを使って現在の設定値を取得できますが、フィールドは Fields コレクションが再び読み込まれるまでは並べ替えられません。次に例を示します。

TableDefs("Titles").Fields(0).OrdinalPosition = 3

このコードを使うと、4 番めの位置 (1 番めは 0 から) で参照される Field オブジェクトを変更できます。Field(0) は Title だったので、今度は Field(2) が Title を指し、Field(0) は次に続く最初 (最小) のフィールドを指します。

Field オブジェクトの場合、Name プロパティで参照する方が明確に参照できます。たとえば、次のコードは AU_ID フィールドを 3 番めのフィールド位置に割り当てます。

TableDefs("Titles").Fields("AU_ID").OrdinalPosition = 2

注   Fields コレクション内のオブジェクトの、OrdinalPosition プロパティの設定を変更した後は、新しいプロパティの設定を有効にする前に、そのコレクションに対して Refresh メソッドを呼び出す必要がある場合があります。


関連項目

Count プロパティ (データ アクセス)

Field オブジェクト、Fields コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Refresh メソッド (データ アクセス)

TableDef オブジェクト、TableDefs コレクション


OrdinalPosition プロパティの対象

Field オブジェクト


Required プロパティ

関連項目	対象

Field オブジェクトや Index オブジェクトが Null 値以外の値を要求するかどうかを示す値を設定します。値の取得も可能です。コレクションに追加されていないオブジェクトでは、値の取得および設定ともに可能です。Recordset オブジェクトおよび TableDef オブジェクトの Indexes コレクションに追加された Index オブジェクトでは値の取得のみ可能です。このプロパティの値の取得と設定の詳細については、「解説」を参照してください。

構文

object.Required [= value]

Required プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	オブジェクトが Null 値以外の値を要求するかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	Null 値は許可されません。

False	Null 値は許可されます。

解説

次の表に示すように、Field オブジェクトの場合、Required プロパティの使い方は、Field オブジェクトが追加される Fields コレクションを含むオブジェクトによって異なります。

オブジェクトの追加先	使用許可

Index	サポートされません。

QueryDef	読み取り専用。

Recordset	読み取り専用。

Relation	サポートされません。

TableDef	読み取りと書き込みが可能。

Field オブジェクトの場合、そのオブジェクトの Value プロパティに設定できる値の種類を決めるために、Required プロパティを AllowZeroLength、ValidateOnSet、ValidationRule プロパティと共に使用します。Required プロパティが偽 (False) に設定されているとき、このフィールドには Null 値、または AllowZeroLength、ValidationRule プロパティの設定値によって指定された条件を満たす値を設定できます。

ヒント   Index オブジェクトまたは Field オブジェクトのどちらの Required プロパティも設定できるときは、Field オブジェクトの Required プロパティを設定してください。Field オブジェクトの Required プロパティは、Index オブジェクトの Required プロパティよりも先に調べられます。


関連項目

AllowZeroLength プロパティ

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

QueryDef オブジェクト、QueryDefs コレクション

Required プロパティ

ValidateOnSet プロパティ

ValidationRule プロパティ

ValidationText プロパティ

Value プロパティ (データ アクセス)


Required プロパティの対象

Field オブジェクト

Index オブジェクト


QueryTimeout プロパティ

関連項目	例	対象

ODBC データベース上でクエリーを実行するときに、Microsoft Jet データベース エンジンがタイムアウト エラーを生成するまで待機する秒数を設定します。値の取得も可能です。

構文

object.QueryTimeout [= value]

QueryTimeout プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	Jet データベース エンジンがタイムアウトを発生させ、エラーを返すまで待機する秒数を示す整数型 (Integer) の値を指定します。

解説

SQL サーバーなどの ODBC データベースを使っているときは、ネットワークのトラフィックや ODBC サーバーの使用状況などにより遅延が生じることがあります。いつまでも待機するかわりに、Jet データベース エンジンがエラーを生成するまで待機する時間を指定できます。

Database オブジェクトでは、QueryTimeout プロパティにそのデータベースに関連付けられたすべてのクエリーに対する値を指定します。

タイムアウトの既定値は、INI ファイルの設定値にかかわらず、常に 60 秒です。Database オブジェクトの QueryTimeout プロパティを設定すると、既定値は無効になります。


関連項目

Database オブジェクト、Databases コレクション

ODBCTimeout プロパティ


QueryTimeout プロパティの例

次のプログラムでは、指定したデータベースを開いてから、QueryTimeout プロパティを 120 秒に設定します。

Dim MyDB As Database

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

MyDB.QueryTimeout = 120


QueryTimeout プロパティの対象

Database オブジェクト


LastModified プロパティ

関連項目	対象

最後に追加または変更されたレコードを示すブックマークを返します。

構文

object.LastModified

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

このプロパティは、バリアント型 (Variant) または文字列型 (String) の値を返します。LastModified プロパティは、最後に追加または更新されたレコードに移動するために使います。

LastModified プロパティは、Recordset オブジェクトや、以前のバージョンの Dynaset、Snapshot、Table オブジェクトで使用できます。


関連項目

Bookmark プロパティ (データ アクセス)

Bookmarkable プロパティ

DateCreated、LastUpdated プロパティ

Recordset オブジェクト、Recordsets コレクション


LastModified プロパティの対象

Dynaset オブジェクト

ダイナセット タイプの Recordset オブジェクト

Snapshot オブジェクト

Table オブジェクト

テーブル タイプの Recordset オブジェクト


SourceField、SourceTable プロパティ

関連項目	例	対象

SourceField プロパティ

Field オブジェクトのデータの元になっているデータ ソースのフィールド名を示す値を返します。

SourceTable プロパティ

Field オブジェクトのデータの元になっているデータ ソースのテーブル名を示す値を返します。

これらのプロパティは、デザイン時には使えません。実行時には、値の取得のみ可能です。

構文

object.SourceField [= value]

object.SourceTable [= value]

SourceField プロパティと SourceTable プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	データの基になっているデータ ソースのフィールド名、またはテーブル名を示す文字列式を指定します。この引数は文字列型 (String) です。

解説

次に示すように、Field オブジェクトの場合、SourceField プロパティおよび SourceTable プロパティの使い方は、Field オブジェクトが追加される Fields コレクションを含むオブジェクトによって異なります。

オブジェクトの追加先	使用許可

Index	サポートされません。

QueryDef	読み取り専用。

Recordset	読み取り専用。

Relation	サポートされません。

TableDef	読み取り専用。

SourceField プロパティおよび SourceTable プロパティは、Field オブジェクトに関連付けられた、基となるデータ ソースのフィールド名とテーブル名を示します。たとえば、このプロパティを使うと、フィールド名が元のテーブルのフィールド名に関連付けられていない場合、クエリー フィールド内のデータの中から、基となるデータ ソースを特定することができます。


関連項目

Field オブジェクト、Fields コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

SourceTableName プロパティ

TableDef オブジェクト、TableDefs コレクション


SourceField、SourceTable プロパティの例

次のプログラムでは、データベース内の 2 つのテーブルにあるフィールドのエイリアスを作成する SQL ステートメントを使って、Recordset オブジェクトを作成します。

Function SourceInfo () As Integer

Dim MyDatabase As Database

Dim MyRecordset As Recordset, MyField As Field

Dim MySQL As String, I As Integer

' データベースを開きます。

Set MyDatabase = Workspaces(0).OpenDatabase("MYDB.MDB")

' SQL ステートメントを作成します。

MySQL = "SELECT [Employee ID] As EmpID, [Customer ID] As CustID"

MySQL = MySQL & " FROM Employees, Customers;"

Set MyRecordset = MyDatabase.OpenRecordset(MySQL)   ' レコードセットを生成します。

For I = 0 To MyRecordset.Fields.Count - 1

Set MyField = MyRecordset.Fields(I)

Debug.Print MyField.Name	' フィールド名を表示します。

Debug.Print MyField.SourceTable	' 元のソース テーブル名を表示します。

Debug.Print MyField.SourceField	' 元のソース テーブルのフィールド名を表示します。

Next I

SourceInfo = True

End Function


SourceField、SourceTable プロパティの対象

Field オブジェクト


SourceTableName プロパティ

関連項目	例	対象

クエリーの元となるアタッチ テーブルまたはベース テーブルの名前を示す値を設定します。値の取得も可能です。ベース テーブルの場合、値の取得のみ可能です。アタッチ テーブルやコレクションに追加されていないオブジェクトでは、値の取得および設定ともに可能です。

構文

object.SourceTableName [= value]

SourceTableName プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	テーブル名を示す文字列式を指定します。ベース テーブルには、長さ 0 の文字列 ("") を指定します。この引数は文字列型 (String) です。


関連項目

Connect プロパティ

OpenDatabase メソッド

RefreshLink メソッド

SourceField、SourceTable プロパティ

TableDef オブジェクト、TableDefs コレクション


Connect、SourceTableName プロパティ (TableDef オブジェクト) の例

次のプログラムでは、指定されたデータベースに TableDef オブジェクトを作成してから、Connect、Name、SourceTableName の各プロパティを設定し、次にオブジェクトを TableDefs コレクションに追加します。

Function ConnectSource () As Integer

Dim MyDatabase As Database

Dim MyTableDef As TableDef

Dim I As Integer

Set MyDatabase = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyTableDef = MyDatabase.CreateTableDef("PDXAuthor")

' Attach Paradox table Author in database C:\PDX\PUBLISH.

MyTableDef.Connect = "Paradox 4.X;DATABASE=C:\PDX\PUBLISH"

MyTableDef.SourceTableName = "Author"

MyDatabase.TableDefs.Append MyTableDef	' テーブルをアタッチします。

ConnectSource = True

End Function


SourceTableName プロパティの対象

TableDef オブジェクト


Connect プロパティ

関連項目	例	対象

開いているデータベース、パススルー クエリーで使われているデータベース、またはアタッチ テーブルのデータ ソースについての情報を提供する値を設定します。値の取得も可能です。コレクションに追加されていない QueryDef オブジェクト、Database オブジェクト、アタッチ テーブルまたは TableDef オブジェクトの場合、値の取得および設定ともに可能です。ベース テーブルでは、値の取得のみ可能です。

構文

object.Connect = [databasetype;[parameters;]]

Connect プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

databasetype	データベースの種類を示す文字列式を指定します。この引数のデータ型は、文字列型 (String) です。Jet データベースの場合は、この引数を省略します。引数 parameters を指定するときには、プレースホルダとしてセミコロン (;) を使います。

parameters	ODBC や組み込み可能な ISAM ドライバに渡す引数を示す文字列式を指定します。この引数は文字列型 (String) です。引数を区切るにはセミコロン (;) を使います。

設定値

Connect プロパティの設定値は、データベースの種類を指定する文字列と、セミコロンで区切られた 1 つ以上の引数で構成されます。Connect プロパティは、必要に応じて ODBC や ISAM のドライバに付加情報を渡すために使います。Jet データベースでは Connect プロパティを使用しません。ただし、Jet データベースに含まれているアタッチ テーブルでは、SQL パススルー クエリーを使用するために、Connect プロパティが使用されます。

.MDB ファイルにアタッチされているテーブルに、SQL パススルー クエリーを実行するには、まず、アタッチ テーブルのデータベースの Connect プロパティに、有効な ODBC 接続文字列を設定する必要があります。

アタッチ テーブルを表す TableDef オブジェクトの場合、Connect プロパティにそれぞれセミコロンで終わる 1 つまたは 2 つの項目 (データベースの種類を指定する文字列とデータベースへのパス) を指定します。

パスは、下の表に示すように、データベース ファイルを保持しているディレクトリへの絶対パスで、識別子 "DATABASE=" に続けて指定します。Jet、Btrieve、Microsoft Excel などの各データベースを使う場合は、データベースへのパスとして使われる引数に、特定のファイル名が含まれています。

次の表に、Connect プロパティに設定可能なデータベースの種類、それに対応するデータベースの指定文字列とパスを示します。

データベースの種類	指定文字列	パス
Jet データベース エンジンを使うデータベース	";"	"drive:\path\filename.MDB"
dBASE III	"dBASE III;"	"drive:\path"
dBASE IV	"dBASE IV;"	"drive:\path"
Paradox 3.x	"Paradox 3.x;"	"drive:\path"
Paradox 4.x	"Paradox 4.x;"	"drive:\path"
Btrieve	"Btrieve;"	"drive:\path\filename.DDF"
FoxPro 2.0	"FoxPro 2.0;"	"drive:\path"
FoxPro 2.5	"FoxPro 2.5;"	"drive:\path"
FoxPro 2.6	"FoxPro 2.6;"	"drive:\path"
Excel 3.0	"Excel 3.0;"	"drive:\path\filename.XLS"
Excel 4.0	"Excel 4.0;"	"drive:\path\filename.XLS"
Excel 5.0	"Excel 5.0;"	"drive:\path\filename.XLS"
Text	"Text;"	"drive:\path"
ODBC	"ODBC; DATABASE=defaultdatabase; UID=user; PWD=password; DSN=datasourcename LOGINTIMEOUT=seconds"  (これは一例です。すべてのサーバーに対する完全な接続文字列ではありません。)	なし
解説

指定文字列が "ODBC;" のみの場合、ODBC ドライバは登録されているすべての ODBC データ ソースの名前を列挙したダイアログ ボックスを表示し、ユーザーはそこからデータベースを選択できます。

パスワードが要求され、Connect プロパティにパスワードが設定されていない場合、ODBC ドライバが初めてテーブルにアクセスしたとき、または 1 度閉じた接続を再び開いたときにユーザー ID とパスワードを入力するためのダイアログ ボックスが表示されます。

Jet データベースに基づいたテーブルの Connect プロパティの設定値は、長さ 0 の文字列 ("") です。

Database オブジェクトでは、OpenDatabase メソッドの引数 source を指定することで、Connect プロパティを設定できます。この引数を参照することで、データベースの種類、パス、ユーザー ID、パスワード、ODBC データ ソースを確認することができます。

QueryDef オブジェクトでは、Connect プロパティを ReturnsRecords プロパティと共に使い、ODBC の SQL パススルー クエリーを作成できます。引数 databasetype に指定する "ODBC;" の後の接続文字列には、ODBC ドライバ がリモート データにアクセスするために使う情報が含まれています。このドライバの情報については、それぞれのドライバのマニュアルを参照してください。

注   ReturnsRecords プロパティを設定する前に、Connect プロパティを設定する必要があります。


関連項目

外部データベースへのアクセス

Database オブジェクト、Databases コレクション

OpenDatabase メソッド

QueryDef オブジェクト、QueryDefs コレクション

ReturnsRecords プロパティ

TableDef オブジェクト、TableDefs コレクション


Connect プロパティの対象

データ (Data) コントロール

Database オブジェクト

QueryDef オブジェクト

TableDef オブジェクト


Fields プロパティ

関連項目	例	対象

インデックス内のキー フィールドである TableDef オブジェクトのフィールドを示す値を設定します。値の取得も可能です。作成した後で、コレクションに追加されていない Index オブジェクトでは、値の取得および設定ともに可能です。Indexes コレクションの既存の Index オブジェクトでは、値の取得のみ可能です。

注   Fields プロパティは、以前のバージョンとの互換性を保つために、サポートされています。できるだけ、Index オブジェクトの Fields コレクションの Field オブジェクトを使ってください。その場合、各キー フィールドについて Field オブジェクトを作成し、インデックス キーを示すために Index オブジェクトの Fields コレクションに追加します。

構文

index.Fields [ = fieldlist[;fieldlist] ]

Fields プロパティの構文の指定項目は次のとおりです。

指定項目	内容

index	オブジェクトへの参照を表すオブジェクト式を指定します。

fieldlist	インデックスを構成するセミコロン (;) で区切られたフィールド名のリストを含む文字列式を指定します。この引数は文字列型 (String) です。

解説

フィールド名のリスト内で、名前の前にプラス記号 (+) かマイナス記号 (-) を付けると、並べ替え順序を、昇順 (A-Z または 0-100)、または降順 (Z-A または 100-0) に指定できます。既定の並べ替え順序は昇順です。フィールド名は角かっこ ([ ]) で囲むことができます。セミコロンを含むフィールド名は角かっこで囲まなければなりません。

Index オブジェクトは、各レコードのインデックス キーを表す複数のフィールドを持つことができます。


Fields プロパティの対象

Index オブジェクト


関連項目

Append メソッド

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

Name プロパティ (データ アクセス)

Unique プロパティ


Fields プロパティの例

次のプログラムでは、Authors テーブルに新しいインデックスを追加します。

Dim TempIndex As Index	' Index オブジェクトを新規に作成します。

Set TempIndex = MyDb.TableDefs("Authors").CreateIndex("Full Name")

TempIndex.Fields = "LName;FName"

TempIndex.Unique = True

' 新しい Index オブジェクトを Indexes コレクションに追加します。

MyDb.TableDefs("Authors").Indexes.Append TempIndex


Size プロパティ (データ アクセス)

関連項目	例	対象

テキストを含む Field オブジェクトの最大のサイズ、またはテキストか数値を含む Field オブジェクトの固定されたサイズを、バイト数で示す値で設定します。値の取得も可能です。Fields コレクションに追加されていないオブジェクトでは、値の取得および設定ともに可能です。

構文

object.Size [= value]

Size プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	最大サイズを示す整数型 (Integer) の定数または値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は、Field オブジェクトの Type プロパティの設定値によって異なり、次の整数値のいずれかになります。

設定値	値	内容

dbBoolean	1	Yes/No 型

dbByte	1	バイト型

dbInteger	2	整数型 (Integer)

dbLong	4	長整数型 (Long)

dbCurrency	8	通貨型 (Currency)

dbSingle	4	単精度浮動小数点数型 (Single)

dbDouble	8	倍精度浮動小数点数型 (Double)

dbDate	8	日付/時刻型

dbText	1 ～ 255	テキスト型

dbLongBinary	0	OLE オブジェクト型

dbMemo	0	メモ型

解説

これらの定数は、オブジェクト ブラウザのデータ アクセス (DAO) オブジェクト ライブラリにも表示されます。

次の表に示すように、Field オブジェクトに対する、Size プロパティの使い方は、Field オブジェクトが追加される Fields コレクションを含むオブジェクトによって決まります。

オブジェクトの追加先	使用許可

Index	サポートされません。

QueryDef	読み取り専用。

Recordset	読み取り専用。

Relation	サポートされません。

TableDef	読み取り専用。

テキスト型以外のデータ型で Field オブジェクトを作成するとき、Type プロパティの設定値によって、自動的に Size プロパティの設定値が決定されるため、Size プロパティを設定する必要はありません。OLE オブジェクト型とメモ型の Field オブジェクトでは、Size プロパティは常に 0 に設定されています。テキスト型の Field オブジェクトでは、Size プロパティに 255 までの任意の整数を設定でき、Size プロパティによって Field オブジェクトの最大サイズが設定されます。

OLE オブジェクト型とメモ型の Field オブジェクトでは、FieldSize メソッドを使って特定のレコードのデータ サイズを決定します。OLE オブジェクト型とメモ型のフィールドの最大サイズは、システム リソースとデータベースの最大サイズによってのみ限定されます。


関連項目

Attributes プロパティ

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Relation オブジェクト、Relations コレクション

Type プロパティ (データ アクセス)


Size、Type プロパティの例

次のプログラムでは、テキスト フィールド型の Field オブジェクトを新規に作成します。次に、Name プロパティを "Fax Phone" に、Size プロパティを 20 に設定します。次に、データベースの TableDefs コレクションの Employees テーブルの Fields コレクションに追加します。

Function SizeType() As Integer

Dim MyDatabase As Database

Dim MyField As Field, MyTableDef As TableDef

' データベースを開きます。

Set MyDatabase = Workspaces(0).OpenDatabase("MYDB.MDB")

' 既存のテーブルへの参照を取得します。

Set MyTableDef = MyDatabase!Employees

' Field オブジェクトを作成します。

Set MyField = MyTableDef.CreateField("Fax Phone")

' フィールドのプロパティを設定します。

MyField.Type = dbText

MyField.Size = 20

' Fields コレクションに MyField を追加します。

MyTableDef.Fields.Append MyField

SizeType = True

End Function

CreateField メソッドを使って、名前、型、サイズを引数として指定することもできます。

Set MyField = MyTableDef.CreateField("Fax Phone", dbText, 20)


Size プロパティの対象

Field オブジェクト


Type プロパティ (データ アクセス)

関連項目	例	対象

オブジェクトの種類またはデータ型を示す値を設定します。値の取得も可能です。Field オブジェクトまたは Property オブジェクトでは、オブジェクトがコレクションや他のオブジェクトに追加されるまでは値の取得および設定ともに可能で、追加された後は値の取得のみ可能です。Parameter、QueryDef、Recordset オブジェクトの場合、値の取得のみ可能です。

構文

object.Type [= value]

Type プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	オブジェクトの種類またはデータ型を示す整数または定数を指定します。この引数のデータ型は、整数型 (Integer) です。設定する値については、次の「設定値」を参照してください。

設定値

Field、Parameter、Property の各オブジェクトの引数 value の設定値は次のとおりです。

値	設定値	内容

8	dbDate	日付/時刻型

10	dbText	テキスト型

12	dbMemo	メモ型

11	dbBoolean	Yes/No 型

3	dbInteger	整数型 (Integer)

4	dbLong	長整数型 (Long)

5	dbCurrency	通貨型 (Currency)

6	dbSingle	単精度浮動小数点数型 (Single)

7	dbDouble	倍精度浮動小数点数型 (Double)

2	dbByte	バイト型 (Byte)

3	dbLongBinary	OLE オブジェクト型

注   OLE オブジェクト型は、文字列型 (String) と同じですが、OLE オブジェクト型の代わりに、バリアント型 (Variant) を使うことをお勧めします。バリアント型を使うと、Null 値を格納することができます。

QueryDef オブジェクトの引数 Value の設定値は次のとおりです。

設定値	クエリーの種類

dbQSelect	選択クエリー

dbQAction	アクション クエリー

dbQCrosstab	クロス集計クエリー

dbQDelete	削除クエリー

dbQUpdate	更新クエリー

dbQAppend	追加クエリー

dbQMakeTable	テーブル作成クエリー

dbQDDL	データ定義クエリー

dbQSQLPassThrough	パススルー クエリー

dbQSetOperation	ユニオン クエリー

dbQSPTBulk	定数 dbQSQLPassThrough と共に使い、レコードを返さないクエリーを指定します。

Recordset オブジェクトの引数 value の設定値は次のとおりです。

設定値	Recordset オブジェクトの種類

dbOpenTable	テーブル

dbOpenDynaset	ダイナセット

dbOpenSnapshot	スナップショット

解説

これらの定数は、オブジェクト ブラウザのデータ アクセス (DAO) オブジェクト ライブラリにも表示されます。

次に示すように、Type プロパティはオブジェクトによって表す内容が異なります。

オブジェクト	Type プロパティの内容

Field、Parameter、Property	オブジェクトのデータ型

QueryDef	クエリーの種類

Recordset	Recordset オブジェクトの種類

新規に作成した Field、Parameter、Property オブジェクトを Index、QueryDef、Recordset、TableDef オブジェクトのコレクションに追加するときに、そのオブジェクトの基になっているデータベースが、Type プロパティに指定されている内容をサポートしていないと、エラーが発生します。

注   SQL パススルー クエリーを作成するときには、定数 dbSQLPassThrough のフラグを設定する必要はありません。このフラグは、QueryDef オブジェクトを作成して Connect プロパティを設定するときに、Microsoft Jet データベース エンジンが設定します。


関連項目

Field オブジェクト、Fields コレクション

Parameter オブジェクト、Parameters コレクション

Property オブジェクト、Properties コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

データ型の概要


Type プロパティの対象

Field オブジェクト

Parameter オブジェクト

Property オブジェクト

QueryDef オブジェクト

Recordset オブジェクト


Unique プロパティ

関連項目	例	対象

Index オブジェクトがテーブルに対して、一意のインデックス (キー) を表しているかどうかを示す値を設定します。値の取得も可能です。Index オブジェクトでは、オブジェクトがコレクションに追加されるまでは値の取得および設定ともに可能ですが、追加した後は、取得のみ可能になります。

構文

object.Unique [= value]

Unique プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	一意のインデックスを示すブール式を、ブール型 (Boolean) で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	Index オブジェクトは、一意のインデックスを表します。

False	Index オブジェクトは、一意でないインデックスを表します。

解説

一意のインデックスは、すべてのレコードをあらかじめ定義された一意の順序でテーブル内に論理的に配置される、1 つ以上のフィールドで構成されています。インデックスが 1 つのフィールドで構成されている場合、そのフィールドの値はテーブル全体に対して一意でなければなりません。インデックスが複数のフィールドで構成されている場合、各フィールドは重複する値を持つことができますが、すべてのインデックス フィールドで可能な値の組み合わせは一意でなければなりません。

Index オブジェクトの Unique プロパティと Primary プロパティの両方が真 (True) に設定されている場合、そのインデックスは一意であり、主インデックスでもあります。このインデックスによって、既定の論理的な順序でテーブル内のすべてのレコードが識別されます。Primary プロパティが偽 (False) に設定されている場合、このインデックスは二次インデックスです。二次インデックス (キーおよびキー以外のいずれの場合も) は、テーブルのレコードの識別子としては機能せず、レコードをあらかじめ定義された順序で論理的に配置します。

ヒント

テーブルにインデックスを作成する必要はありません。ただし、通常、インデックスを設定せずに、テーブル内の特定のレコードにアクセスすると、時間がかかります。

インデックスのないテーブルから読み込んだレコードは、順不同で返されます。

Index オブジェクトのそれぞれの Field オブジェクトの Attributes プロパティは、レコードの順序を決定します。その結果、その Index オブジェクトに対して使用するアクセス方法も決定します。

一意のインデックスは、レコードの検索を最適化します。

インデックスは、ベース テーブルの物理的な順序には影響しません。インデックスは、特定のインデックスが選択されたとき、または Microsoft Jet データベース エンジンが Recordset オブジェクトを作成するときに、Table オブジェクトがレコードにアクセスする方法にだけ影響します。


関連項目

Attributes プロパティ

Clustered プロパティ

Index オブジェクト、Indexes コレクション

Primary プロパティ


Unique プロパティの対象

Index オブジェクト


Index プロパティ (データ アクセス)

関連項目	例	対象

テーブル タイプの Recordset オブジェクト、または以前のバージョンの Table オブジェクトの、現在の Index オブジェクトの名前を示す値を設定します。値の取得も可能です。

構文

object.Index [ = indexname ]

Index プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

indexname 	Table オブジェクトまたはテーブル タイプの Recordset オブジェクトの、TableDef オブジェクトの Indexes コレクションの Index オブジェクトの名前への参照を表す文字列式です。この引数は文字列型 (String) です。

解説

ベース テーブルのレコードは、順不同で格納されています。Index プロパティを設定すると、データベースから返されるレコードの順序を変更することができます。レコードが格納されている順序には影響はありません。

たとえば、Titles テーブルで、Seek メソッドを使う前に Index プロパティを設定するときは、次のようなコードを使います。

Dim Tb as Recordset, Db as Database

Set Db = Workspaces(0).OpenDatabase("BIBLIO.MDB")

Set Tb = Db.OpenRecordset("Titles",dbOpenTable)

Tb.Index = "PubID"

Tb.Seek "=", 3

指定された Index オブジェクトは、あらかじめ定義されていなければなりません。Index プロパティを、存在していない Index オブジェクトに設定するか、または Seek メソッドを使ったときに Index プロパティが設定されていないと、トラップできるエラーが発生します。

TableDef オブジェクトから作成した、テーブル タイプの Recordset オブジェクトで利用可能な Index オブジェクトを特定するには、TableDef オブジェクトの Indexes コレクションを調べます。

テーブルに新しいインデックスを作成するときは、新しい Index オブジェクトを作成して、プロパティを設定します。次に、基となる TableDef オブジェクトの Indexes コレクションに追加し、Recordset オブジェクトを再び開きます。

Table オブジェクトから返されるレコードは、基になっている TableDef オブジェクトに対して定義されたインデックスによってのみ、並べ替えることができます。レコードを他の順序で並べ替えるには、SQL ステートメントの ORDER BY 句を使って、ダイナセット タイプまたはスナップショット タイプの Recordset オブジェクトを開きます。

Index プロパティがコントロール配列の要素である場合は、データ アクセス オブジェクトの Index プロパティとは異なります。

ヒント

テーブルにインデックスを作成する必要はありません。ただし、通常、テーブルにインデックスを設定せずに、特定のレコードへのアクセスや Recordset オブジェクトの作成を行うと、時間がかかります。一方、あまり多くのインデックスを作成すると、更新、追加、削除の処理を行うときにすべてのインデックスが自動的に更新されるので、処理速度が低下します。

インデックスのないテーブルからレコードを読み込むと、順不同でレコードが返されます。

Index オブジェクトのそれぞれの Field オブジェクトの Attributes プロパティによって、レコードの順序が決まり、その結果、インデックスへのアクセス方法が決まります。

一意のインデックスは、レコードの検索を最適化します。

インデックスは、ベース テーブルの物理的な順序には影響を与えません。インデックスは、特定のインデックスが選択されたとき、または Microsoft Jet データベース エンジンが Recordset オブジェクトを作成するときに、Table オブジェクトがレコードにアクセスする方法にだけ影響を与えます。


Index、Unique プロパティの例

次のプログラムでは、TableDef オブジェクトにインデックスを新規に追加します。次に、そのインデックスをカレント インデックスにし、そのインデックスに基づいて Seek メソッドを使用します。作成した後に Index オブジェクトの Fields コレクションに追加された Field オブジェクトの名前は、テーブルのカレント フィールドの名前に対応しています。

Dim Tb As Recordset, Ix As Index, Fd As Field

Dim MyDb As Database

Set MyDb = Workspaces(0).OpenDatabase("BIBLIO.MDB")

Set Ix = MyDb.TableDefs("Publishers").CreateIndex("PubID Name")

Set Fd = Ix.CreateField("PubID")

Ix.Fields.Append Fd

Set Fd = Ix.CreateField("Name")

Ix.Fields.Append Fd

Ix.Unique = True

Debug.Print Ix.Fields	' Fields コレクションのプロパティを表示します。

' 新しい Index オブジェクトを Indexes コレクションに追加します。

MyDb.TableDefs("Publishers").Indexes.Append Ix

Set Tb = MyDb.OpenRecordset("Publishers",dbOpenTable)  ' テーブルを開きます。

Tb.Index = "PubID Name"	' テーブルのカレント インデックスを設定します。

Tb.Seek "=", "27", "Yourdon Press"	' Publisher を検索します。

If Tb.NoMatch Then

Tb.MoveFirst

Debug.Print "Not found"

Else

Debug.Print Tb.Name

End If

Tb.Close

次のプログラムでは、MyTable のインデックスを主キーに設定します。このとき、PrimaryKey は、テーブルのデザイン ビューで主キーが設定されたときの、Index オブジェクトの既定値の名前です。次に、キー フィールドの値が 10,050 と一致するレコードを検索します。カレント インデックスは、Seek メソッドのような処理を実行する前に、設定する必要があります。

Dim MyDB As Database, MyTable As Recordset

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyTable = MyDB.OpenRecordset("Orders", dbOpenTable)   ' Recordset オブジェクトを開きます。

MyTable.Index = "PrimaryKey"	' カレント インデックスを設定します。

MyTable.Seek "=", 10050	' レコードを検索します。

...

MyTable.Close	' Recordset オブジェクトを閉じます。


Index プロパティの対象

Table オブジェクト

テーブル タイプの Recordset オブジェクト


関連項目

Append メソッド

Index オブジェクト、Indexes コレクション

Primary プロパティ

Recordset オブジェクト、Recordsets コレクション

Seek メソッド

Sort プロパティ

TableDef オブジェクト、TableDefs コレクション


DefaultValue プロパティ

関連項目	対象

Field オブジェクトの既定値を設定します。値の取得も可能です。Fields コレクションに追加されていない Field オブジェクトでは、値の取得および設定ともに可能です。このプロパティの値の取得と設定の詳細については、「解説」を参照してください。

構文

object.DefaultValue [= value]

DefaultValue プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	最大 255 文字までの文字列式で、テキストまたは式を指定します。プロパティの設定値が式の場合は、Microsoft Jet データベース エンジンの定義域集合関数、SQL 集合関数、クエリー、フォーム、他の Field オブジェクトへの参照などの、ユーザー定義関数を含めることはできません。この引数は文字列型 (String) です。

解説

次の表に示すように、Field オブジェクトの場合、DefaultValue プロパティの使い方は、Field オブジェクトが追加される Fields コレクションを含むオブジェクトによって異なります。

オブジェクトの追加先	使用許可

Index	サポートされません。

QueryDef	読み取り専用。

Recordset	読み取り専用。

Relation	サポートされません。

TableDef	読み取りと書き込み。

新しいレコードが作成されると、DefaultValue プロパティの設定値は、自動的にレコード内のフィールドの値として入力されます。フィールドの値は Value プロパティを設定することによって変更できます。

DefaultValue プロパティは、カウンタ フィールド と OLE オブジェクト型のフィールドには適用されません。


関連項目

AllowZeroLength プロパティ

Field オブジェクト、Fields コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Required プロパティ

TableDef オブジェクト、TableDefs コレクション

ValidateOnSet プロパティ

ValidationRule プロパティ

ValidationText プロパティ

Value プロパティ (データ アクセス)


DefaultValue プロパティの対象

DB グリッド (DBGrid) コントロール

Field オブジェクト


CacheSize、CacheStart プロパティ

関連項目	例	対象

CacheSize プロパティ

ODBC データ ソースから、ローカル メモリにキャッシュされるデータを含んだダイナセット タイプの Recordset オブジェクトのレコード数を指定する値を設定します。値の取得も可能です。

CacheStart プロパティ

キャッシュに格納される Recordset オブジェクトの最初のレコードのブックマークを指定する値を設定します。値の取得も可能です。

構文

object.CacheSize [= value]

object.CacheStart [= value]

CacheSize プロパティと CacheStart プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	数値または文字列式を指定します。CacheSize プロパティには、レコード数を長整数型 (Long) で指定します。この値の範囲は 5 ～ 1,200 である必要がありますが、利用可能なメモリより大きくすることはできません。通常は 100 を指定します。設定値を 0 にすると、キャッシュされなくなります。CacheStart プロパティには、ブックマークを文字列型 (String) で指定します。

解説

データをキャッシュに格納すると、ダイナセット タイプの Recordset オブジェクトを通してリモート サーバーからデータを検索するアプリケーションのパフォーマンスが向上します。キャッシュは、アプリケーションが、実行中にデータを再び要求する場合のために、サーバーから取得した最新のデータを格納するローカル メモリの空間です。データが要求されると、Microsoft Jet データベース エンジンは、時間のかかるサーバーからのデータを取得する前に、まず、要求されたデータがキャッシュにあるかどうかを確認します。ODBC データ ソース以外から取得されたデータは、キャッシュに格納されません。

アタッチ テーブルのような ODBC データ ソースは、ローカル キャッシュを持つことができます。キャッシュを作成するには、リモート データ ソースから Recordset オブジェクトを開き、CacheSize プロパティと CacheStart プロパティを設定してから、FillCache メソッドを使うか、Movexxx メソッドを使って先頭レコードから末尾のレコードまで移動します。

CacheSize プロパティの設定値は、アプリケーションが一度に扱うことが可能なレコード数に基づいて設定します。たとえば、Recordset オブジェクトを基にデータを画面に表示するときは、一度に 20 レコードを表示できるように、CacheSize プロパティを 20 に設定します。

CacheStart プロパティの設定値は、キャッシュに格納する Recordset オブジェクトの最初のレコードのブックマークです。CacheStart プロパティの設定には、任意のレコードのブックマークが使用できます。キャッシュを開始するレコードをカレント レコードにし、そのレコードにブックマークを設定してから、CacheStart プロパティにそのブックマークを設定します。

Jet データベース エンジンは、キャッシュの範囲内のレコードを、キャッシュに対して要求し、キャッシュの範囲外のレコードはサーバーに対して要求します。

注

 	キャッシュから取得したレコードには、他のユーザーが元のデータに対して並行して行った変更は反映されません。

すべてのキャッシュ データに対する更新を強制的に実行するには、Recordset オブジェクトの CacheSize プロパティを 0 に設定し、次に、最初に要求したキャッシュ サイズに戻してから FillCache メソッドを実行します。


関連項目

Bookmark プロパティ (データ アクセス)

Bookmarkable プロパティ

Database オブジェクト、Databases コレクション

FillCache メソッド

Recordset オブジェクト、Recordsets コレクション


CacheSize、CacheStart プロパティの対象

ダイナセット タイプの Recordset オブジェクト (ODBC のみ)


Clustered プロパティ

関連項目	対象

Index オブジェクトがテーブルに対するクラスタ化インデックスかどうかを示す値を設定します。値の取得も可能です。作成した後で、まだコレクションに追加されていない Index オブジェクトでは、値の取得および設定ともに可能です。また、Indexes コレクションの既存の Index オブジェクトでは値の取得のみ可能です。

構文

object.Clustered [= value]

Clustered プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	クラスタ化インデックスを表すブール式を、ブール型 (Boolean) で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	Index オブジェクトはクラスタ化インデックスを表します。

False	Index オブジェクトはクラスタ化インデックスを表しません。

解説

クラスタ化インデックスはキーとして使用されない 1 つ以上のフィールドを組み合わせて、あらかじめ定義された順序でテーブル内のすべてのレコードを並べるために使います。クラスタ化インデックスを使うと、インデックスの値が一意ではないテーブルのレコードにも、効率的にアクセスできます。

注

Microsoft Jet データベース エンジンは、クラスタ化インデックスをサポートしていないため、Jet データベース エンジンを使うデータベースでは、Clustered プロパティは無視されます。

このプロパティは ODBC データ ソースには使用できません。

テーブルにインデックスを作成する必要はありません。ただし、通常、インデックスのないテーブルで特定のレコードにアクセスするには、時間がかかります。Index オブジェクトの各 Field オブジェクトの Attributes プロパティによって、レコードの順序が決まり、その結果、インデックスへのアクセス方法が決まります。


関連項目

Attributes プロパティ

Index オブジェクト、Indexes コレクション

Primary プロパティ

Unique プロパティ


Clustered プロパティの対象

Index オブジェクト (Jet データベース以外)


DataUpdatable プロパティ

関連項目	対象

Field オブジェクトが表すフィールドのデータが更新可能かどうかを示す値を返します。

構文

object.DataUpdatable

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

DataUpdatable プロパティの戻り値は次のとおりです。

値	内容

True	フィールドのデータは更新可能です。

False	フィールドのデータは更新できません。

解説

このプロパティを使って、Field オブジェクトの Value プロパティの設定値が変更可能かどうかを確認します。DataUpdatable プロパティは取得専用です。Index オブジェクトおよび Relation オブジェクトの Fields コレクションに追加された Field オブジェクトでは使用できません。


関連項目

Field オブジェクト、Fields コレクション

Recordset オブジェクト、Recordsets コレクション

Updatable プロパティ

Value プロパティ (データ アクセス)


DataUpdatable プロパティの対象

Field オブジェクト


ForeignName プロパティ

関連項目	例	対象

リレーション内で、主テーブルのフィールドに対応する外部キー側のテーブルの Field オブジェクト名を指定する値を設定します。値の取得も可能です。

構文

object.ForeignName [= value]

ForeignName プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	リレーションを設定する TableDef オブジェクトの Fields コレクションの Field オブジェクト名への参照を表す文字列式を指定します。

解説

ForeignName プロパティは、Relation オブジェクトに含まれる Fields コレクションに属している Field オブジェクトだけで使用できます。Relation オブジェクトが Database オブジェクトに追加されていない場合でも、Field オブジェクトが Relation オブジェクトに追加されている場合は、ForeignName プロパティを変更できます。Relation オブジェクトがデータベースに追加されると、Field オブジェクトのプロパティの値は取得のみ可能になります。

Field オブジェクトの Name プロパティ、および ForeignName プロパティの value には、リレーションの主テーブルと外部キー側のテーブルの対応するフィールド名を指定します。Relation オブジェクトの Table プロパティの設定、および ForeignTable プロパティの value に指定された値によって、リレーションの主テーブルと外部キー側のテーブルが決まります。

たとえば、ValidParts テーブルに有効な部品コードの一覧 (PartNo という名前のフィールド) が格納されている場合、部品コードが OrderItem テーブルに入力されると、必ずそれが ValidParts テーブル内に存在するように、OrderItem テーブルとのリレーションを設定できます。部品コードが ValidParts テーブルに存在しない場合、Attributes プロパティを使って参照整合性を強制的に適用しないように指定しておかなければ、トラップできるエラーが発生します。

この場合、ValidParts テーブルは主テーブルであり、Relation オブジェクトの ForeignTable プロパティは OrderItem テーブルに、Relation オブジェクトの Table プロパティは ValidParts テーブルに設定されています。また、Field オブジェクトの Name プロパティと ForeignName プロパティの設定値は、どちらも“PartNo”です。


関連項目

Field オブジェクト、Fields コレクション

ForeignTable プロパティ

Name プロパティ (データ アクセス)

Relation オブジェクト、Relations コレクション

Table プロパティ


ForeignName、ForeignTable、Table プロパティの例

次のプログラムでは、2 つの既存のテーブルの間にリレーションを作成するときに ForeignName、ForeignTable、Table の各プロパティを使います。この例では、指定したデータベースの Table1 (主テーブル) と Table2 (外部キー側のテーブル) の間にリレーションを作成します。Field1 は Table1 の主キーで、Field2 は Table2 の外部キーです。リレーションは一対多で、参照整合性があります。

Function ForeignNameTable () As Integer

Dim MyDb As Database

Dim MyField As Field, MyRelation As Relation

' データベースを取得します。

Set MyDb = Workspaces(0).OpenDatabase("MYDB.MDB")

' 新しいリレーションを作成して、プロパティを設定します。

Set MyRelation = MyDb.CreateRelation("MyRelation")

MyRelation.Table = "Table1"

MyRelation.ForeignTable = "Table2"

' フィールドを作成して、プロパティを設定します。

Set MyField = MyRelation.CreateField("Field1")

MyField.ForeignName = "Field2"

' フィールドをリレーションに、リレーションをデータベースに追加します。

MyRelation.Fields.Append MyField

MyDb.Relations.Append MyRelation

End Function


ForeignName プロパティの対象

Field オブジェクト


ForeignTable プロパティ

関連項目	例	対象

リレーションの外部キー側のテーブルの名前を指定します。このプロパティは、作成した後で、まだコレクションに追加されていない Relation オブジェクトでは、値の取得および設定ともに可能です。また、Relations コレクションの既存の Relation オブジェクトでは、値の取得のみ可能です。

構文

object.ForeignTable [= value]

ForeignTable プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	Database オブジェクトの TableDefs コレクションのテーブル名への参照を表す文字列式を指定します。この引数は文字列型 (String) です。

解説

Relation オブジェクトの ForeignTable プロパティの設定値は、外部キー側のテーブルやクエリーを表す TableDef オブジェクトまたは QueryDef オブジェクトの Name プロパティの設定値です。Table プロパティの設定値は、主テーブル、クエリーを表す TableDef オブジェクトまたは QueryDef オブジェクトの Name プロパティの設定値と同じです。

たとえば、ValidParts テーブルに有効な部品コードの一覧 (PartNo という名前のフィールド) が格納されている場合、部品コードが OrderItem テーブルに入力されると、必ずそれが ValidParts テーブル内に存在するように、OrderItem テーブルとのリレーションを設定できます。部品コードが ValidParts テーブルに存在しない場合、Attributes プロパティに強制的にリレーションを適用しないように指定しておかなければ、トラップできるエラーが発生します。

この場合、ValidParts テーブルは外部キー側のテーブルの例でもあり、Relation オブジェクトの ForeignTable プロパティは ValidParts テーブルに、Relation オブジェクトの Table プロパティは OrderItem テーブルに設定されています。また、Field オブジェクトの Name プロパティと ForeignName プロパティの設定値は、両方とも“PartNo”です。


関連項目

ForeignName プロパティ

Name プロパティ (データ アクセス)

QueryDef オブジェクト、QueryDefs コレクション

Relation オブジェクト、Relations コレクション

Table プロパティ

TableDef オブジェクト、TableDefs コレクション


ForeignTable プロパティの対象

Relation オブジェクト


Inherited プロパティ (データ アクセス)

関連項目	例	対象

Property オブジェクトが、基のオブジェクトから継承されているかどうかを示す値を取得します。このプロパティは、値の取得のみ可能です。

構文

object.Inherited

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Inherited プロパティの戻り値は次のとおりです。

値	内容

True	Property オブジェクトは継承されています。

False	Property オブジェクトは継承されていません。既定プロパティを表す組み込みの Property オブジェクトの場合、常に偽 (False) が返されます。

解説

Inherited プロパティを使うと、ユーザー定義のプロパティが、それを適用するオブジェクトのために作成されたか、または他のオブジェクトのために作成されたかを調べることができます。たとえば、QueryDef オブジェクトのためにプロパティを作成し、QueryDef オブジェクトから Recordset オブジェクトを開くと、このプロパティは Recordset オブジェクトの Properties コレクションの一部になり、その Inherited プロパティは真 (True) に設定されます。これは、このプロパティが Recordset オブジェクトではなく、QueryDef オブジェクトのために作成されたからです。


関連項目

CreateProperty メソッド

Property オブジェクト、Properties コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

TableDef オブジェクト、TableDefs コレクション


Inherited、Value プロパティの例

次のプログラムでは、QueryDef オブジェクトを基に Recordset オブジェクトを作成してから、プロパティを新規に作成し、そのプロパティが継承されたものかどうかを表示します。次に、Recordset オブジェクトの各フィールド名を表示し、その各プロパティについて、Name、Type、Value、Inherited の各プロパティの設定値を表示します。

Dim MyDB As Database, MyQueryDef As QueryDef, MyRecordset As _

Recordset, MyProperty As Property

Dim X, Y As Integer

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyQueryDef = MyDB.QueryDefs(0)

Set MyProperty = MyQueryDef.CreateProperty("Moose",dbBoolean, True)

MyQueryDef.Properties.Append MyProperty

Set MyRecordset = MyQueryDef.OpenRecordset()

Debug.Print "Is MyQueryDef.Moose inherited? "; MyQueryDef.Properties("Moose").Inherited

Debug.Print "Is MyRecordset.Moose inherited? "; MyRecordset.Properties("Moose").Inherited

For X = 0 To MyRecordset.Fields.Count - 1

Debug.Print MyRecordset.Fields(X).Name

On Error Resume Next

For Y = 0 To MyRecordset.Fields(X).Properties.Count - 1

Debug.Print MyRecordset.Fields(X).Properties(Y).Name

Debug.Print MyRecordset.Fields(X).Properties(Y).Type

Debug.Print MyRecordset.Fields(X).Properties(Y).Value

Debug.Print MyRecordset.Fields(X).Properties(Y).Inherited

Next Y

Next X


Inherited プロパティの対象

Container オブジェクト

Property オブジェクト


IgnoreNulls プロパティ

関連項目	対象

レコードのインデックスのインデックス フィールドが Null 値を持つかどうかを示す値を設定します。値の取得も可能です。作成した後で、まだコレクションに追加されていない Index オブジェクトでは、値の取得および設定ともに可能です。また、Indexes コレクションの既存の Index オブジェクトでは、値の取得のみ可能です。

構文

object.IgnoreNulls [= value]

IgnoreNulls プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	インデックスを示すブール式を、ブール型 (Boolean) で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	Null 値を持ったフィールドはインデックスを持ちません。

False	Null 値を持ったフィールドはインデックスを持ちます。

解説

フィールドを使ったレコードの検索を高速に実行するために、フィールドにインデックスを定義できます。インデックスが設定されているフィールドへの Null 値の入力を許可している場合に、多くの Null 値があることが予想されるときは、Index オブジェクトに対する IgnoreNulls プロパティを真 (True) に設定して、インデックスを格納するために占有されるスペースを減らすことができます。

次の表に示すように、IgnoreNulls プロパティと Required プロパティの設定値によって、インデックス値として Null 値を持ったレコードがインデックスを持つかどうかが決まります。

IgnoreNulls	Required	インデックス フィールドの Null 値

True	False	Null 値が許可されますが、インデックスは追加されません。

False	False	Null 値が許可され、インデックスが追加されます。

True または False	True	Null 値は許可されません。また、インデックスも追加されません。


関連項目

Index オブジェクト、Indexes コレクション

Required プロパティ


IgnoreNulls プロパティの対象

Index オブジェクト


Owner プロパティ

関連項目	例	対象

オブジェクトの所有者を示す値を設定します。値の取得も可能です。

構文

object.Owner [= value]

Owner プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	Users コレクションの User オブジェクトの名前か、Groups コレクションの Group オブジェクトの名前への参照を表す文字列式を指定します。この引数は文字列型 (String) です。

解説

オブジェクトの所有者は、他のユーザーには許可されていないアクセス権限を持っています。Owner プロパティの設定値は、適切な権限を持った個々のユーザー アカウント (User オブジェクトによって表される)、またはユーザー アカウントのグループ ( Group オブジェクトによって表される) によって、いつでも変更することができます。


関連項目

セキュリティのアクティブ化

Container オブジェクト、Containers コレクション

Document オブジェクト、Documents コレクション

Group オブジェクト、Groups コレクション

Permissions プロパティ

User オブジェクト、Users コレクション


Owner プロパティの例

次のプログラムは、カレント ユーザーが適切な権限を持っているかどうかの値を取得した後で、Document オブジェクトの Owner プロパティの設定値を変更します。

Dim MyDB As Database, MyDoc As Document

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyDoc = MyDB.Containers(0).Documents(0)

If (MyDoc.Permissions And dbSecWriteOwner) <> 0  Then

MyDoc.Owner = "SomebodyElse"

End If


Owner プロパティの対象

Container オブジェクト

Document オブジェクト


Permissions プロパティ

関連項目	例	対象

Container オブジェクトおよび Document オブジェクトの UserName プロパティが指定するユーザーやグループに権限を確立するための値を設定します。値の取得も可能です。

構文

object.Permissions [= value]

Permissions プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	権限を確立する定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

Container オブジェクトおよび Document オブジェクトの、引数 value の設定値は次のとおりです。

定数	内容

dbSecNoAccess	オブジェクトにアクセスできません。

dbSecFullAccess	オブジェクトに完全にアクセスできます。

dbSecDelete	オブジェクトを削除できます。

dbSecReadSec	オブジェクトのセキュリティ関連の情報の読み取りができます。

dbSecWriteSec	アクセス権限を変更できます。

dbSecWriteOwner	Owner プロパティの設定値を変更できます。

テーブルの Container オブジェクト、および Documents コレクションの任意の Document オブジェクトの引数 value の設定値は次のとおりです。

定数	内容

dbSecCreate	新規にドキュメントを作成できます (Container オブジェクトでのみ有効)。

dbSecReadDef	列とインデックスの情報を含むテーブルの定義の読み取りができます。

dbSecWriteDef	列とインデックスの情報を含むテーブルの定義の変更や削除ができます。

dbSecRetrieveData	Document オブジェクトからのデータの検索ができます。

dbSecInsertData	レコードを追加できます。

dbSecReplaceData	レコードを変更できます。

dbSecDeleteData	レコードを削除できます。

データベースの Container オブジェクト、および Documents コレクションの任意の Document オブジェクトの引数 value の設定値は次のとおりです。

定数	ユーザーまたはグループ

dbSecDBCreate	新規にデータベースを作成できます (システム データベース SYSTEM.MDW のデータベースの Container オブジェクトでのみ有効)。

dbSecDBExclusive	排他的アクセスができます。

dbSecDBOpen	データベースを開くことができます。

解説

これらの定数は、オブジェクト ブラウザのデータ アクセス (DAO) オブジェクト ライブラリにも表示されます。

このプロパティを使うと、UserName プロパティで指定されるユーザーが Container オブジェクトや Document オブジェクトに対して持っている、読み取り、書き込み、および変更の権限の確立や取得を行うことができます。

Container オブジェクトの Inherited プロパティが、ユーザーまたはそのユーザーが属しているグループに設定されている場合、Document オブジェクトはその Container オブジェクトからユーザーに対する権限を継承します。Document オブジェクトの Permissions プロパティと UserName プロパティを設定すると、オブジェクトに関するアクセス制御の内容をさらに詳しく指定することができます。


関連項目

セキュリティのアクティブ化

Container オブジェクト、Containers コレクション

Document オブジェクト、Documents コレクション

Inherited プロパティ (データ アクセス)

UserName プロパティ


Permissions プロパティの例

次のプログラムは、現在のユーザーに対する Document オブジェクトの Permissions プロパティの設定値を表示します。

Dim MyDB As Database, MyDoc As Document

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")
Set MyDoc = MyDB.Containers(0).Documents("MyDoc")

Debug.Print MyDoc.Permissions


Permissions プロパティの対象

Container オブジェクト

Document オブジェクト


Restartable プロパティ

関連項目	例	対象

Recordset オブジェクトが Requery メソッドをサポートしているかどうかを示す値を返します。また、Requery メソッドは Recordset オブジェクトの基となるクエリーを再実行します。

構文

object.Restartable

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Restartable プロパティの戻り値は次のとおりです。

値	内容

True	Recordset オブジェクトは Requery メソッドをサポートします。

False	Recordset オブジェクトは Requery メソッドをサポートしません。テーブル タイプの Recordset オブジェクトでは、常にこの値が返されます。

解説

Recordset オブジェクトに Requery メソッドを使う前に、Restartable プロパティを調べます。Restartable プロパティが偽 (False) に設定されている場合にクエリーを再実行するには、基となる QueryDef オブジェクトに OpenRecordset メソッドを呼び出します。

パラメータの値が変更された後で Requery メソッドを使うと、Recordset オブジェクトの基になるパラメータ クエリーを更新できます。


関連項目

OpenRecordset メソッド

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Requery メソッド


Restartable プロパティ、Requery メソッドの例

次のプログラムは、ダイナセット タイプの Recordset オブジェクトの Restartable プロパティの設定値を取得し、次に Recordset オブジェクトに Requery メソッドを実行します。

Dim MyDB As Database, MyData As Recordset

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyData = MyDB.OpenRecordset("Table That Changes Often", dbOpenDynaset)

If MyData.Restartable = True Then

MyData.Requery

Else

MyData.Close

End If


Restartable プロパティの対象

Recordset オブジェクト


Table プロパティ

関連項目	例	対象

Relation オブジェクトの主テーブルの名前を指定する値を設定します。値の取得も可能です。指定する名前は、TableDef オブジェクトまたは QueryDef オブジェクトの Name プロパティの設定値です。作成した後で、まだコレクションに追加されていない Relation オブジェクトでは、値の取得および設定ともに可能です。また、Relations コレクションの既存の Relation オブジェクトでは、値の取得のみ可能です。

構文

object.Table [= value]

Table プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	TableDefs コレクションのテーブル名への参照を表す文字列式を指定します。この引数は文字列型 (String) です。

解説

Table プロパティを ForeignTable プロパティと共に使用して、2 つのテーブルまたはクエリーのフィールド間のリレーションを表す Relation オブジェクトを定義します。Table プロパティには、主テーブル側の TableDef オブジェクトまたは QueryDef オブジェクトの Name プロパティに設定されている値を設定し、ForeignTable プロパティには、外部の参照する側の TableDef オブジェクト、または QueryDef オブジェクトの Name プロパティの値を設定します。Attributes プロパティは、2 つのオブジェクト間のリレーションの種類を決定します。

たとえば、ValidParts テーブルに有効な部品コードの一覧 (PartNo という名前のフィールド) が格納されている場合、部品コードが OrderItem テーブルに入力されると、必ずそれが ValidParts テーブル内に存在するように、OrderItem テーブルとのリレーションを設定できます。部品コードが ValidParts テーブルに存在しない場合、Attributes プロパティに強制的にリレーションを適用しないように指定しておかなければ、トラップできるエラーが発生します。

この場合、ValidParts テーブルは外部キー側のテーブルであり、Relation オブジェクトの ForeignTable プロパティは ValidParts テーブルに、Relation オブジェクトの Table プロパティは OrderItem テーブルに設定されています。また、Field オブジェクトの Name プロパティと ForeignName プロパティの設定値は、両方とも Part Number に設定されます。

次の図では、ValidParts テーブルが OrderItem テーブルによって参照されているので、主テーブルになります。


関連項目

Attributes プロパティ

Field オブジェクト、Fields コレクション

ForeignTable プロパティ

Name プロパティ (データ アクセス)

QueryDef オブジェクト、QueryDefs コレクション

Relation オブジェクト、Relations コレクション

TableDef オブジェクト、TableDefs コレクション


Table プロパティの対象

Relation オブジェクト


UserName プロパティ

関連項目	例	対象

ユーザーやユーザーのグループ、または Workspace オブジェクトの所有者を示す値を設定します。値の取得も可能です。Container オブジェクトまたは Document オブジェクトでは、値の取得および設定ともに可能です。Workspace オブジェクトでは、オブジェクトがコレクションに追加されていない場合は、値の取得および設定ともに可能です。既存の Workspace オブジェクトでは、値の取得のみ可能です。

構文

object.UserName [= value]

UserName プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	Users コレクションの User オブジェクト、または Groups コレクションの Group オブジェクトの名前への参照を表す文字列式を指定します。この引数は文字列型 (String) です。

解説

UserName プロパティは、オブジェクトによって次のように異なります。

Container オブジェクトや Document オブジェクトのアクセス権を操作するときのユーザーまたはユーザーのグループを表します。

Workspace オブジェクトの所有者を表します。Container オブジェクトや Document オブジェクトでは、読み取りや書き込みの権限を設定するために UserName プロパティを Permissions プロパティと共に使います。

特定のユーザー、またはユーザーのグループの権限を確認または設定するときは、まず調べようとしているユーザーかユーザーのグループの UserName プロパティを設定します。次に、ユーザーかユーザーのグループの Permissions プロパティの設定を調べて、オブジェクトが持っている権限を取得します。また、権限を変更するときには、Permissions プロパティを設定します。

Workspace オブジェクトでは、UserName プロパティの設定を調べて、Workspace オブジェクトの所有者を取得します。オブジェクトを Workspaces コレクションに追加する前に、UserName プロパティを設定して、Workspace オブジェクトの所有者を確立します。


関連項目

セキュリティのアクティブ化

Append メソッド

Container オブジェクト、Containers コレクション

Document オブジェクト、Documents コレクション

Inherited プロパティ (データ アクセス)

Password プロパティ

Permissions プロパティ

Workspace オブジェクト、Workspaces コレクション


UserName プロパティの例

次のプログラムは、指定されたデータベースの MyTable というテーブルに対して、Millicent という名前のユーザーに読み取り専用のアクセス権を設定します。次に、Millicent がレコードを追加する権限を持っているかどうかを調べます。

Dim MyWorkspace As Workspace, MyDatabase As Database

Dim MyDocument As Document

...

Set MyWorkspace = DBEngine.Workspaces(0)

Set MyDatabase = MyWorkspace.OpenDatabase("MYDB.MDB")

...

Set MyDocument = MyDatabase.Containers("Tables")![MyTable]

MyDocument.UserName = "Millicent"

MyDocument.Permissions = dbSecRetrieveData

If(MyDocument.Permissions and dbSecInsertData) > 0 Then

Debug.Print "Millicent can insert data."

Else

Debug.Print "Millicent can't insert data."

End If

...


UserName プロパティの対象

Container オブジェクト

Document オブジェクト

Workspace オブジェクト


ValidateOnSet プロパティ

関連項目	対象

オブジェクトの Value プロパティが設定されたときに、Field オブジェクトの値をすぐに妥当性検査するかどうかを示す値を設定します。値の取得も可能です。ValidateOnSet プロパティの値の取得と設定の両方が可能なのは、Recordset オブジェクトの Field オブジェクトだけです。

構文

object.ValidateOnSet [= value]

ValidateOnSet プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	テーブル タイプまたはダイナセット タイプの Recordset オブジェクトの Field オブジェクトへの参照を表すオブジェクト式を指定します。

value	値を妥当性検査するかどうかを示すブール式をブール型 (Boolean) で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	プロパティが設定されたときに妥当性検査します。

False	プロパティが更新されたときに妥当性検査します。

解説

ValidateOnSet プロパティが真 (True) に設定されると、オブジェクトの Value プロパティを設定するときに、Field オブジェクトの ValidationRule プロパティの設定値によって規定される入力規則が確認されます。

Recordset オブジェクトは複数の Field オブジェクトを持つ Fields コレクションを含むことができます。その Field オブジェクトのValidationRule プロパティの引数 value にフィールドの組み合わせを指定します。ValidateOnSet プロパティが偽 (False) に設定されている場合は、各フィールドの Value プロパティは入力規則に関係なく設定可能で、レコードが更新されるときの最終的な引数 value の設定値を使用して、値を妥当性検査できます。

ValidateOnSet プロパティは、以前のバージョンの Dynaset オブジェクトや Table オブジェクトと関連する Field オブジェクトでは使用できません。


関連項目

AllowZeroLength プロパティ

Field オブジェクト、Fields コレクション

QueryDef オブジェクト、QueryDefs コレクション

Required プロパティ

ValidationRule プロパティ

ValidationText プロパティ

Value プロパティ (データ アクセス)


ValidateOnSet プロパティの対象

Field オブジェクト


ValidationRule プロパティ

関連項目	対象

フィールドのデータが変更されたか、テーブルに追加されたときに、データの妥当性検査を行う値を設定します。値の取得も可能です。Fields コレクションに追加されていないオブジェクトでは、値の取得および設定ともに可能です。このプロパティの値の取得と設定の詳細については、「解説」を参照してください。

構文

object.ValidationRule [= value]

ValidationRule プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	SQL ステートメントの WHERE 句から予約語 WHERE を除いた形式で、比較をするための文字列式を指定します。この引数は文字列型 (String) です。

解説

ValidationText プロパティが設定されている場合は、そこに指定されている文字列がエラー メッセージとして返されます。または ValidationRule プロパティで指定されている文字列式が返されます。

次の表に示すように、Field オブジェクトでは、ValidationRule プロパティの使い方は、Field オブジェクトが追加される Fields コレクションを含むオブジェクトに依存します。

オブジェクトの追加先	使用許可

Index	サポートされません。

QueryDef	読み取り専用。

Recordset	読み取り専用。

Relation	サポートされません。

TableDef	読み取りと書き込みが可能。

Recordset オブジェクトでは、ValidationRule プロパティは値の取得のみ可能です。TableDef オブジェクトでは、ValidationRule プロパティの使い方は、次の表に示すように、TableDef オブジェクトの状態に依存します。

TableDef	使用許可

ベース テーブル	読み取りと書き込みが可能。

アタッチ テーブル	読み取り専用。

“妥当性検査”は、Microsoft Jet データベース エンジンを利用するデータベースだけでサポートされています。

Field オブジェクトの ValidationRule プロパティで指定する文字列式は、その Field オブジェクトのみを参照します。この式で、ユーザー定義の関数、定義域集合関数、SQL 集合関数、またはクエリーを参照することはできません。ValidateOnSet プロパティの設定値が真 (True) のときに Field オブジェクトの ValidationRule プロパティを設定する場合は、この式がフィールド名を暗黙の演算子として正しく解釈され、その値が真 (True) と評価される必要があります。ValidateOnSet プロパティの設定値が偽 (False) の場合、ValidationRule プロパティの設定値は無視されます。

Recordset オブジェクトまたは TableDef オブジェクトの ValidationRule プロパティは、オブジェクトに含まれる複数のフィールドを参照できます。ただし、Field オブジェクトに関する制限事項は適用されます。

テーブル タイプの Recordset オブジェクトの ValidationRule プロパティは、テーブル タイプの Recordset オブジェクトを作成するために使用する TableDef オブジェクトの ValidationRule プロパティの設定値と同じ値になります。

アタッチ テーブルに基づいた TableDef オブジェクトでは、ValidationRule プロパティは基になるベース テーブルの値になります。基になるベース テーブルが“妥当性検査”をサポートしていない場合、このプロパティの値は長さ 0 の文字列 ("") になります。

ValidationRule プロパティは、以前のバージョンの Dynaset オブジェクトや Table オブジェクトに関連する Field オブジェクトでは使用できません。


関連項目

Update メソッド

ValidateOnSet プロパティ

ValidationText プロパティ


ValidationRule プロパティの対象

Field オブジェクト

Recordset オブジェクト

TableDef オブジェクト


Value プロパティ (データ アクセス)

関連項目	例	対象

オブジェクトの値を設定します。値の取得も可能です。

構文

object.Value [= value]

Value プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	Type プロパティで指定されたデータ型として適切な値に評価する式をバリアント型 (Variant) で指定します。

解説

一般に、Value プロパティは Recordset オブジェクトのデータの取得や変更に使用します。

Value プロパティは、Field、Parameter、Property の各オブジェクトの、既定のプロパティです。したがって、次に示すコードの各行はすべて同じ処理を行います。なお、Field1 は最初の位置にあるものとします。

X = MyRecordset!Field1

X = MyRecordset!Field1.Value

X = MyRecordset(0)

X = MyRecordset(0).Value

X = MyRecordset("Field1").Value

X = MyRecordset("Field1")

F$ = "Field1" : X = MyRecordset(F$).Value

X = MyRecordset(F$)


関連項目

Field オブジェクト、Fields コレクション

Name プロパティ (データ アクセス)

Parameter オブジェクト、Parameters コレクション

Property オブジェクト、Properties コレクション

Updatable プロパティ

Value プロパティ (データ アクセス)


Value プロパティの対象

Field オブジェクト

Parameter オブジェクト

Property オブジェクト


Version プロパティ

関連項目	例	対象

オブジェクトに関連付けられたデータベースやデータベース エンジンのバージョンを示す値を返します。

構文

object.Version

オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Version プロパティは、次に示すように、指定されたオブジェクトによって異なる値への参照を表す文字列式を返します。

Database オブジェクト

開いているデータベースのデータ形式のバージョンを返します。

DBEngine オブジェクト

Microsoft Jet データベース エンジンのバージョン番号を指定します。

解説

Database オブジェクトでは、このプロパティはデータベースを作成した Jet データベース エンジンのバージョンを示します。

Version プロパティの設定値は、たとえば "2.0" のように、"major.minor" の形式でバージョン番号を表します。製品のバージョン番号 (たとえば、2.0) は、バージョン番号 (2)、ピリオド、リリース番号 (0) で構成されています。


関連項目

CreateDatabase メソッド

Database オブジェクト、Databases コレクション

DBEngine オブジェクト


Version プロパティの例

次のプログラムは、Jet データベース エンジンのバージョン番号を調べて、それをバージョン番号とリリース番号に分けます。無効な文字列は検査されません。

Dim DBVersion As String, Version As String, Release As String

Dim DotLocation As Integer

...

DBVersion = DBEngine.Version

DotLocation = InStr(DBVersion, ".")

Version = Left$(DBVersion, DotLocation - 1)

Release = Right$(DBVersion, Len(DBVersion) - DotLocation)

...


Version プロパティの対象

Database オブジェクト

DBEngine オブジェクト


ValidationText プロパティ

関連項目	対象

Field オブジェクトの値が、ValidationRule プロパティの設定値で指定されている入力規則に合わない場合、アプリケーションが表示するメッセージのテキストを指定する値を設定します。値の取得も可能です。

コレクションに追加されていないオブジェクトでは、値の取得および設定ともに可能です。Recordset オブジェクトでは、値の取得のみ可能です。また、TableDef オブジェクトでは、アタッチ テーブルの場合は値の取得のみ、ベース テーブルの場合は取得および設定ともに可能です。このプロパティの値の取得と設定の詳細については、「解説」を参照してください。

構文

object.ValidationText [= value]

ValidationText プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	入力された値が無効の場合に表示されるテキストを示す文字列式を指定します。この引数は文字列型 (String) です。

解説

次の表に示すように、Field オブジェクトでは、ValidationText プロパティの使い方は、Field オブジェクトが追加される Fields コレクションを含むオブジェクトによって異なります。

オブジェクトの追加先	使用許可

Index	サポートされません。

QueryDef	読み取り専用。

Recordset	読み取り専用。

Relation	サポートされません。

TableDef	読み取りと書き込みが可能。


関連項目

AllowZeroLength プロパティ

Field オブジェクト、Fields コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Required プロパティ

TableDef オブジェクト、TableDefs コレクション

ValidationRule プロパティ

Value プロパティ (データ アクセス)


ValidationText プロパティの対象

Field オブジェクト

Recordset オブジェクト

TableDef オブジェクト


Name プロパティ (データ アクセス)

関連項目	例	対象

データ アクセス オブジェクトに対するユーザー定義の名前を設定します。値の取得も可能です。コレクションに追加されていないオブジェクトでは、値の取得および設定ともに可能です。このプロパティの値の取得と設定の詳細については、「解説」を参照してください。

構文

object.Name [= value]

Name プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	名前を表す文字列式を指定します。名前は文字で始まり、最大 40 字までです。名前は数字とアンダースコアを含むことができますが、句読点やスペースは含むことはできません。この引数は文字列型 (String) です。

解説

TableDef オブジェクトと QueryDef オブジェクトは同じ名前を持つことができません。User オブジェクトと Group オブジェクトも同じ名前を持つことができません。

SQL ステートメントを使って開かれた Recordset オブジェクトの Name プロパティは、SQL ステートメントの最初の 256 文字です。

コードで Dim ステートメントと一緒にオブジェクトの Name プロパティを使用して、オブジェクトの他のインスタンスを作成することができます。

注   Database オブジェクトではほとんどの場合、Table、Field、または QueryDef オブジェクトの名前のように、Name プロパティは、Database オブジェクトを識別する名前を表します。Database オブジェクトの名前と Database オブジェクトを参照するために使われるオブジェクト変数との間に直接的な関係はありません。Dynaset オブジェクトや Snapshot オブジェクトの名前には、そのオブジェクトを作成するために使う Table オブジェクトまたは QueryDef オブジェクトの Name プロパティか、それを作成するために使う SQL ステートメントの Name プロパティのいずれかの名前が設定されます。

Name プロパティの読み取りと書き込みの使用許可は、適用されるオブジェクトの種類によって異なります。ただし、オブジェクト型に関係なく、一度オブジェクトを作成して組み込むと、Name プロパティは読み取り専用になります。

オブジェクト	使用許可

Container	読み取り専用

Database	読み取り専用

Document	読み取り専用

Field	読み取りと書き込みが可能

Index.Field	読み取り専用

QueryDef.Field	読み取り専用

Recordset.Field	読み取り専用

TableDef.Field (ネイティブ)	読み取りと書き込みが可能

TableDef.Field (アタッチ)	読み取り専用

Relation.Field	読み取り専用

Group	読み取りと書き込みが可能

Index	読み取りと書き込みが可能

Recordset.Index	読み取りと書き込みが可能

Parameter	読み取り専用

Property (組み込み)	読み取り専用

Property (ユーザー定義)	読み取りと書き込みが可能

QueryDef	読み取りと書き込みが可能

Recordset	読み取り専用

Relation	読み取りと書き込みが可能

TableDef (ネイティブ)	読み取りと書き込みが可能

TableDef (アタッチ)	読み取りと書き込みが可能

User	読み取りと書き込みが可能

Workspace	読み取りと書き込みが可能


関連項目

CreateDatabase メソッド

CreateField メソッド

CreateIndex メソッド

CreateQueryDef メソッド

CreateTableDef メソッド


Name プロパティの例

次のプログラムでは、TableDef オブジェクトを作成してから、そのオブジェクトに Parts ID という名前を付けます。

Dim MyDB As Database, MyTD As TableDef, Fd as Field

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyTD = MyDB.CreateTableDef("")

MyTD.Name = "Parts ID"

...	' フィールドを作成します。

MyDB.TableDefs.Append MyTD


Name プロパティの対象

Column オブジェクト

Container オブジェクト

Database オブジェクト

DBEngine オブジェクト

Dynaset オブジェクト

Field オブジェクト

Group オブジェクト

Index オブジェクト

Parameter オブジェクト

Property オブジェクト

QueryDef オブジェクト

Recordset オブジェクト

Snapshot オブジェクト

Table オブジェクト

TableDef オブジェクト

Workspace オブジェクト

User オブジェクト


V1xNullBehavior プロパティ

関連項目	対象

テキスト型またはメモ型のフィールドに格納するために使われる長さ 0 の文字列 ("") を、コードでNull 値に変換するかどうかを示す値を設定します。値の取得も可能です。このプロパティは、Microsoft Jet データベース エンジン Version 2.5 または 3.0 のデータベースに変換された Microsoft Jet データベース エンジン Version 1.x のデータベースのみに適用されます。

注   Version 1.x のデータベースを Version 2.5 または 3.0 のデータベースに変換すると、Jet データベース エンジンによって、自動的にこのプロパティが作成されます。

構文

object.V1xNullBehavior [= value]

V1xNullBehavior プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	長さ 0 の文字列が Null 値に変換されたかどうかを示すブール式を、ブール型 (Boolean) で指定します。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	長さ 0 の文字列は Null 値に変換されます。

False	長さ 0 の文字列は Null 値に変換されません。

Visual Basic では、このプロパティの設定のみ行うことができます。

注   このプロパティの設定値を変更する場合、変更を有効にするためにデータベースを 1 度閉じてから再び開く必要があります。

解説

パフォーマンスを最大限にするには、テキスト型やメモ型のフィールドを長さ 0 の文字列に設定するコードを、フィールドが Null 値に設定されるように変更し、Properties コレクションから V1xNullBehavior プロパティを削除します。


 関連項目

ActiveForm プロパティ

Caption プロパティ

Dim ステートメント

Index プロパティ (データ アクセス)

LinkTopic プロパティ

Me キーワード

Text プロパティ


V1xNullBehavior プロパティの対象

Database オブジェクト


AllowZeroLength プロパティ

関連項目	対象

テキスト型またはメモ型の、Field オブジェクトの Value プロパティに、長さ 0 の文字列 ("") が設定可能か (有効かどうか) を示す値を設定します。値の取得も可能です。Fields コレクションに追加されていないオブジェクトでは、値の取得および設定ともに可能です。

構文

object.AllowZeroLength [= value]

AllowZeroLength プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	値が有効であるかどうかを示すブール式を、ブール型 (Boolean) で指定します。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	長さ 0 の文字列は、有効な値です。

False	長さ 0 の文字列は、有効な値ではありません。

解説

次の表に示すように、Field オブジェクトに対する、AllowZeroLength プロパティの使い方は、Field オブジェクトが追加される Fields コレクションを含むオブジェクトによって異なります。

オブジェクトの追加先	使用許可

Index	サポートされません。

QueryDef	読み取り専用。

Recordset	読み取り専用。

Relation	サポートされません。

TableDef	読み取りと書き込みが可能。

このプロパティを偽 (False) に設定すると、Field オブジェクトの Value プロパティに、必ず長さ 0 の文字列以外の値を設定できます。

このプロパティを Required、ValidateOnSet、または ValidationRule プロパティと共に使って、フィールドの値が有効かどうかを確認することができます。


関連項目

Field オブジェクト、Fields コレクション

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

Required プロパティ

TableDef オブジェクト、TableDefs コレクション

ValidateOnSet プロパティ

ValidationRule プロパティ

ValidationText プロパティ

Value プロパティ (データ アクセス)


AllowZeroLength プロパティの対象

Field オブジェクト


PercentPosition プロパティ

関連項目	例	対象

Recordset オブジェクトのレコードの百分率での割合に基づいて、Recordset オブジェクト内のカレント レコードのおよその位置を示したり、変更する値を設定します。値の取得も可能です。

構文

object.PercentPosition [= value]

PercentPosition プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	0.0 から 100.00 までの数値を指定します。この引数のデータ型は単精度不動小数点数型 (Single) です。

解説

PercentPosition プロパティを調べたり設定したりすると、Recordset オブジェクト内のカレント レコードのおよその位置を示したり、変更したりすることができます。ダイナセット タイプやスナップショット タイプの Recordset オブジェクトを処理するときは、PercentPosition プロパティを設定または調べる前に、まず最後のレコードに移動して Recordset オブジェクトのデータを取得します。Recordset オブジェクトのデータを完全に取得する前に PercentPosition プロパティを使うと、カレント レコードの移動量は、RecordCount プロパティで示されるアクセスされたレコード数に比例します。最後のレコードに移動するには、MoveLast、FindLast メソッドを使ってください。

注   カレント レコードを Recordset オブジェクト内の特定のレコードに移動するために、PercentPosition プロパティを使わないでください。特定のレコードへ移動するには、Bookmark プロパティまたは AbsolutePosition プロパティを使うことをお勧めします。

1 度 PercentPosition プロパティにある値を設定すると、その値に応じたおよその位置のレコードがカレント レコードになり、PercentPosition プロパティに、カレント レコードのおよその位置を示す値が再設定されます。たとえば、レコード数が 5 つだけの Recordset オブジェクトで PercentPosition プロパティの値を 77 に設定しても、PercentPosition プロパティが返す値は 80 で、77 ではありません。

PercentPosition プロパティは、3 種類のすべての Recordset オブジェクトで使用できます。ただし、前方スクロール スナップショットでは使用できません。テーブル タイプの Recordset オブジェクトで Index プロパティを有効な値に設定していない場合、PercentPosition プロパティは常に 50 を返します。PercentPosition プロパティは、以前のバージョンの Dynaset、Snapshot、Table の各オブジェクトでは無効です。

PercentPosition プロパティを使うと、フォーム上のスクロール バーやテキスト ボックスで、Recordset オブジェクト内のカレント レコードの位置を示すことができます。

注   PercentPosition プロパティは、前方スクロール スナップショット タイプの Recordset オブジェクトでは使用できません。また、リモート データベースに対してパススルー クエリー を実行して開いた Recordset オブジェクトでも使用できません。


関連項目

Bookmark プロパティ (データ アクセス)

Index プロパティ (データ アクセス)

Move メソッド

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

Recordset オブジェクト、Recordsets コレクション

TableDef オブジェクト、TableDefs コレクション


PercentPosition プロパティの例

次のプログラムは、Recordset オブジェクトのレコードの現在位置を CurrentPosition という名前のラベルに表示します。

Dim MyDB As Database, MyTable As Recordset

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set MyTable = MyDB.OpenRecordset("Employees",dbOpenTable)   ' テーブルを開きます。

MyTable.Index = "Last Name"

' カレント インデックスを設定します。

MyTable.MoveLast

...

CurrentPosition.Caption = MyTable.PercentPosition   ' 現在位置を表示します。


PercentPosition プロパティの対象

Recordset オブジェクト


Foreign プロパティ

関連項目	対象

Index オブジェクトが、テーブルの外部キーを表しているかどうかを示す値を返します。

構文

object.Foreign

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Foreign プロパティの戻り値は次のとおりです。

値	内容

True	Index オブジェクトは外部キーを表します。

False	Index オブジェクトは外部キーを表しません。

解説

外部キーは、主テーブルのすべての行を一意に識別する外部キー側のテーブル内の、1 つまたは複数のフィールドで構成されます。

Microsoft Jet データベース エンジンは外部キー側のテーブルのために Index オブジェクトを作成し、参照整合性を適用するリレーションを作成するときに、Foreign プロパティを設定します。


関連項目

Index オブジェクト、Indexes コレクション

Primary プロパティ

Relation オブジェクト、Relations コレクション

TableDef オブジェクト、TableDefs コレクション


Foreign プロパティの対象

Index オブジェクト


Password プロパティ

関連項目	対象

このプロパティは現在のバージョンの Visual Basic ではサポートされていません。

このプロパティを使って、パスワードを調べたり、設定することはできません。Workspace オブジェクトにパスワードを設定するには、CreateWorkspace メソッドを使ってください。既存の User オブジェクトの Password プロパティの設定値を変更するときは、NewPassword メソッドを使います。パスワードをクリアするときは、NewPassword メソッドの引数 newpassword に長さ 0 の文字列 ("") を設定します。


関連項目

セキュリティのアクティブ化

NewPassword メソッド

Permissions プロパティ

PID プロパティ

User オブジェクト、Users コレクション

UserName プロパティ

Workspace オブジェクト、Workspaces コレクション


Password プロパティの対象

User オブジェクト

Workspace オブジェクト


PID プロパティ

関連項目	対象

グループまたはユーザー アカウントのユーザー識別子 (PID) を設定します。作成した後で、まだコレクションに追加されていないオブジェクトでは、値の設定のみ可能です。また、既存のオブジェクトでは利用できません。

構文

object.PID = [value]

PID プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	4 ～ 20 文字のアルファベットによる文字列式を指定します。この引数は文字列型 (String) です。

解説

新しく Group オブジェクトを作成する場合、PID プロパティと Name プロパティを設定します。新しく User オブジェクトを作成する場合は、Name プロパティと Password プロパティと共に PID プロパティも設定してください。


関連項目

セキュリティのアクティブ化

Group オブジェクト、Groups コレクション

Name プロパティ (データ アクセス)

Password プロパティ

User オブジェクト、Users コレクション

Workspace オブジェクト、Workspaces コレクション


PID プロパティの対象

Group オブジェクト

User オブジェクト


ReturnsRecords プロパティ

関連項目	例	対象

外部データベースへの SQL パススルー クエリーがレコードを返すかどうかを示す値を設定します。値の取得も可能です。

構文

object.ReturnsRecords [= value]

ReturnsRecords プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	レコードが返されるどうかを示すブール式を、ブール型 (Boolean) で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	(既定値) パススルー クエリーはレコードを返します。

False	パススルー クエリーはレコードを返しません。

解説

SQL パススルー クエリーには、外部データベースのレコードを返さないものがあります。たとえば、SQL の SELECT ステートメントはレコードを返しますが、SQL の UPDATE ステートメントは、レコードを返さずに更新します。クエリーがレコードを返すときは、ReturnsRecords プロパティが真 (True) に設定されます。クエリーがレコードを返さないときは、ReturnsRecords プロパティは偽 (False) に設定されます。

注   ReturnsRecords プロパティを設定する前に Connect プロパティを設定する必要があります。


関連項目

Connect プロパティ

QueryDef オブジェクト、QueryDefs コレクション

QueryTimeout プロパティ

SQL プロパティ


ReturnsRecords プロパティの例

次のプログラムは、外部データベースからレコードを返す SQL パススルー クエリーを作成します。

Dim MyDB As Database, PassThrough As QueryDef

Set MyDB = Workspaces(0).OpenDatabase("MYDB.MDB")

Set PassThrough = MyDB.CreateQueryDef("October _

Orders","SELECT * From Orders WHERE ShipCity = 'London'")

MyDB.Connect = "ODBC; DSN=MySQLDBDSN;  " _

& " UID=Chrissy;PWD=FourOh;"

PassThrough.ReturnsRecords = True


ReturnsRecords プロパティの対象

QueryDef オブジェクト


LogMessages プロパティ

関連項目	対象

ODBC データベースが返すメッセージを記録するかどうかを指定する値を設定します。このプロパティはユーザー定義のプロパティで、一度作成して組み込まれると、値の取得および設定ともに可能になります。

注   ユーザーがこのプロパティを定義するときは、必ず QueryDef オブジェクトで CreateProperty メソッドを使って定義してください。

構文

object.LogMessages [= value]

LogMessages プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	メッセージが記録されるかどうかを示すブール式を、ブール型 (Boolean) で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	ODBC で生成されたメッセージは記録されます。

False	ODBC で生成されたメッセージは記録されません。

解説

パススルー クエリーには、データと共にメッセージを返すものがあります。LogMessages プロパティを真 (True) に設定すると、Microsoft Jet データベース エンジンは返されたメッセージを格納するテーブルを作成します。このテーブル名は、ユーザー名にハイフン (-) と 00 から始まる連続した数を連結したものになります。たとえば、既定のユーザー名が ADMIN の場合、返されるテーブル名は ADMIN-00、ADMIN-01 などとなります。

クエリーがメッセージを返すようにするには、QueryDef オブジェクトに対してユーザー定義の LogMessages プロパティを作成して追加し、データ型としてブール型を指定し、値に真 (True) を設定します。

これらのテーブルの内容の処理が終了したら、テーブルを作成した一時的なクエリーと共にデータベースからテーブルを削除することもできます。

LogMessages プロパティの設定値は、作成時に“dbBoolean (Boolean)”として定義する必要があります。


関連項目

外部データベースへのアクセス

QueryDef オブジェクト、QueryDefs コレクション


LogMessages プロパティの対象

QueryDef オブジェクト


IsolateODBCTrans プロパティ

関連項目	例	対象

同一の ODBC データベースを必要とする、複数のトランザクションを分けるかどうかを示す値を設定します。値の取得も可能です。

構文

object.IsolateODBCTrans [= value]

IsolateODBCTrans プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	トランザクションを分けるかどうかを示すブール式を、ブール型 (Boolean) で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	同一の ODBC データベースを必要とするトランザクションを分けます。

False	(既定値) 同一の ODBC データベースを必要とするトランザクションを分けずに実行します。

解説

同じ ODBC データベースで複数のトランザクションを、同時に待ち状態にする必要がある場合があります。複数のトランザクションを、同時に待ち状態にするには、それぞれのトランザクションに対して個別の Workspace オブジェクトを開く必要があります。Workspace オブジェクトは、個別にデータベースに対する ODBC 接続を持つことができますが、システムのパフォーマンスは低下します。ほとんどの場合、トランザクションを分ける必要はないため、特に指定しない限り、同じユーザーが開いた複数の Workspace オブジェクトでの ODBC 接続が共有されます。

Microsoft SQL Server のような ODBC サーバーでは、1 つの接続で複数のトランザクションを同時に設定することはできません。このような場合に、データベースの複数のトランザクションを同時に待ち状態にする必要があるときは、データベースを開き、すぐにそれぞれの Workspace オブジェクトの IsolateODBCTrans プロパティを真 (True) に設定します。すると、それぞれの Workspace オブジェクトに対して、強制的に ODBC 接続を個別に行うことができます。


IsolateODBCTrans プロパティの対象

Workspace オブジェクト


関連項目

BeginTrans、CommitTrans、Rollback メソッド

Workspace オブジェクト、Workspaces コレクション


IsolateODBCTrans プロパティの例

次のプログラムは、Workspace オブジェクトを開き、トランザクションを開始する前に IsolateODBCTrans プロパティを真 (True) に設定します。

Dim MyDB As Database, MyWS As Workspace, MyQuery As QueryDef

Set MyWS = DBEngine.Workspaces(0)

MyWS.IsolateODBCTrans = True

MyWS.BeginTrans

' ODBC データベースに対するクエリーを実行し、トランザクションを完了します。


AbsolutePosition プロパティ

関連項目	例	対象

Recordset オブジェクトのカレント レコードの先頭からの位置を設定します。値の取得も可能です。

構文

object.AbsolutePosition [= value]

AbsolutePosition プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	0 から object で指定された Recordset オブジェクトに含まれるレコード数までの範囲の長整数型 (Long) の値を指定します。これは、Recordset オブジェクトの先頭からのカレント レコードの位置に相当します。

解説

AbsolutePosition プロパティを使うと、ダイナセット タイプまたはスナップショット タイプの Recordset オブジェクト内の先頭のレコードから数えた番号 (位置) を指定して、特定のレコードにカレント レコード ポインタを置くことができます。また、AbsolutePosition プロパティの設定値を調べると、カレント レコードの番号を取得することもできます。

AbsolutePosition プロパティの設定値は 0 から始まります。Recordset オブジェクトの最初のレコードを参照するには、このプロパティの値を 0 に設定します。Recordset オブジェクト内の取得されたレコードの総数より大きな値を設定すると、トラップできるエラーが発生します。Recordset オブジェクト内の取得されたレコードの総数を確認するには、RecordCount プロパティの値を調べます。

Recordset オブジェクト内にレコードが存在しないなど、カレント レコードがない場合は -1 が返されます。カレント レコードが削除されると、AbsolutePosition プロパティの値は未定義になり、その値を参照するとトラップできるエラーが発生します。新しいレコードはレコードセットの最後に追加されます。

注   このプロパティは、レコード番号の代わりに使うためのものではありません。設定された位置を保持して、そこへ戻るにはブックマークを使ってください。すべての種類の Recordset オブジェクトのそれぞれにカレント レコードを配置できるのは、ブックマークを使った場合に限られます。特に、AbsolutePosition プロパティを使って取得したレコードの位置は、そのレコードよりも前のレコードが削除されると変化します。また、Recordset オブジェクトが再度読み込まれた場合に、AbsolutePosition プロパティを使って取得したレコードの絶対的な位置が以前と同じである保証はありません。これは、Recordset オブジェクト内の個々のレコードの順序は、ORDER BY 句を含んだ SQL ステートメントを使って Recordset オブジェクトを作成しない限り保証されないためです。

前方スクロール スナップショット タイプの Recordset オブジェクトと、リモート データベースへのパススルー クエリーを基にして開いた Recordset オブジェクトでは、AbsolutePosition プロパティを使えません。


AbsolutePosition プロパティの対象

ダイナセット タイプの Recordset オブジェクト

Recordset オブジェクト

スナップショット タイプの Recordset オブジェクト


関連項目

Bookmark プロパティ (データ アクセス)

PercentPosition プロパティ

レコードセットへのデータの取得

RecordCount プロパティ

Recordset オブジェクト、Recordsets コレクション


AbsolutePosition プロパティの例

次のプログラムは、カレント レコードをダイナセット タイプの Recordset オブジェクトの n 番めのレコードに配置します。

Function MoveToRecord (N as Long, Rs as Recordset) As Integer

Rs.MoveLast	' レコードセットに完全にデータを読み込みます。

If Rs.RecordCount > N Then

Rs.AbsolutePosition = N

MoveToRecord = True

Else

MoveToRecord = False

End If

Db.Close


DefaultUser、DefaultPassword プロパティ

関連項目	対象

Workspace オブジェクトが特定のユーザー名とパスワードを指定せずに作成された場合に、Microsoft Jet データベース エンジンが使用するユーザー名とパスワードを設定します。

構文

object.DefaultPassword = value

object.DefaultUser = value

DefaultUser プロパティおよび DefaultPassword プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	有効なユーザー名またはパスワードを持った文字列式を指定します。この引数のデータ型は文字列型 (String) です。

ユーザー名はアルファベット、アクセント記号付き文字、数字、スペースを使って 1 ～ 20 文字で指定できます。ただし、シングル クォーテーション (')、ダブル クォーテーション (")、スラッシュ (/)、バックスラッシュ (\)、角かっこ ([ ])、コロン (:)、縦棒 (|)、山かっこ (< >)、プラス (+)、等号 (=)、セミコロン (;)、カンマ (,)、疑問符 (?)、アスタリスク (*)、制御文字 (ASCII 文字の 00 ～ 31) は使用できません。また、最初にスペースを置くことはできません。

パスワードは 14 文字までで、ASCII 文字の 0 を除く任意の文字が使えます。

解説

通常、ユーザー名に大文字と小文字の区別はありません。ただし、削除されたユーザー アカウントや別のワークグループに作成されたユーザー アカウントを再び作成する場合には、元のユーザー名に大文字と小文字まで正確に一致するユーザー名を使う必要があります。

通常、Workspace オブジェクトは、CreateWorkspace メソッドにユーザー名とパスワードを指定して作成します。しかし、Workspace オブジェクトが開かれていない場合でも、以前のバージョンとの互換性を保つため、またはデータベースに対するセキュリティ機能が利用されていないときのために、Jet データベース エンジンは DefaultUser プロパティおよび DefaultPassword プロパティの値を使用して、Workspace オブジェクトを必要に応じて自動的に作成します。

注   DefaultUser プロパティおよび DefaultPassword プロパティを設定する前に Workspace オブジェクトが参照されても、既定の UserName プロパティと Password プロパティには影響しません。

特に指定しない限り、DefaultUser プロパティは管理者に、DefaultPassword プロパティは長さ 0 の文字列 ("") に設定されています。

DefaultUser プロパティおよび DefaultPassword プロパティは、SetDefaultWorkspace メソッドを呼び出すと設定されます。


DefaultUser、DefaultPassword プロパティの対象

DBEngine オブジェクト


関連項目

セキュリティのアクティブ化

SetDefaultWorkspace ステートメント


EditMode プロパティ

関連項目	例	対象

カレント レコードの編集状態を示す値を取得します。

構文

object.EditMode

object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

EditMode プロパティの戻り値は次のとおりです。

値	内容

dbEditNone	編集操作は行われていません。

dbEditInProgress	Edit メソッドが起動され、カレント レコードはコピー バッファ内にあります。

dbEditAdd	AddNew メソッドが起動されましたが、コピー バッファ内のカレント レコード (新規レコード) は、まだデータベースに保存されていません。

これらの定数はオブジェクト ブラウザのデータ アクセス (DAO) オブジェクト ライブラリにも表示されます。

解説

EditMode プロパティは、データ (Data) コントロールの既定の機能を使用しないときや、Visual Basic Professional Edition でデータ コントロールを使用しないときに役立ちます。この EditMode プロパティと Validate イベント プロシージャの引数 action の値を調べれば、Update メソッドを起動するかどうかを決定できます。

また、現在のデータ ページがロックされているかどうかを確認するには、LockEdits プロパティの値が真 (True) で、EditMode プロパティの値が定数 dbEditInProgress かどうかを調べます。


関連項目

AddNew メソッド

CancelUpdate メソッド

Edit メソッド

LockEdits プロパティ

Update メソッド (データ アクセス)

UpdateRecord メソッド

Validate イベント


EditMode プロパティの対象

データ (Data) コントロール

ダイナセット タイプの Recordset オブジェクト

テーブル タイプの Recordset オブジェクト


EditMode プロパティの例

次のプログラムは、Recordset オブジェクトの EditMode プロパティを調べて、AddNew メソッドが起動されたか、オブジェクトが編集された場合に、更新操作を完了します。

Function PostChange(Rs as Recordset) As Integer

If (Rs.EditMode = dbEditAdd) or  _

(Rs.EditMode = dbEditInProgress) Then

Rs.Update

PostChange = True

Else

PostChange = False

End If

End Function


IniPath プロパティ

関連項目	例	対象

Microsoft Jet データベース エンジンの初期化 (.INI) ファイルの絶対パスとファイル名を設定します。値の取得も可能です。

構文

object.IniPath [= value]

IniPath プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	組み込み可能な ISAM データベースに必要な Jet データベース エンジンの設定やパラメータを格納したユーザーが提供する ASCII ファイルを指定する文字列式を指定します。この引数のデータ型は文字列型 (String) です。

解説

Jet データベース エンジンは、ユーザーが提供する初期化ファイルによって設定を行うことが可能です。初期化ファイルを使うと、ページ タイムアウトやバッファの最大サイズなどのオプションを設定することができます。

また、このファイルは、一部の組み込み可能な ISAM データベース ドライバを初期化するための引数を指定するためにも使用できます。たとえば、Paradox Version 4.0 を使うときは、IniPath プロパティを適切なパラメータを格納している初期化ファイルに設定します。

Jet データベース エンジンの初期化は、次に示すように 16 ビット システムと 32 ビット システムで異なります。

16 ビット システム。

このオプションを有効にするには、システム内のアプリケーションのいずれかがデータ アクセス機能を起動する前に IniPath プロパティを設定しておく必要があります。Jet データベース エンジンが既に初期化されている場合は、トラップできるエラーが発生します。SystemDB オプションの設定を除いたこの初期化ファイルの設定はシステム全体で有効です。また、一度設定されると、Jet データベース エンジンを使用しているすべてのプログラムを再起動しない限り変更できません。SystemDB オプションには、アプリケーションごとに異なる設定をすることができます。

32 ビット システム。

このオプションを有効にするには、システム内のアプリケーションのいずれかがデータ アクセス機能を起動する前に IniPath プロパティを設定しておく必要があります。Jet データベース エンジンが既に初期化されている場合は、トラップできるエラーが発生します。この設定の適用範囲はそれぞれのアプリケーションに限定され、アプリケーションを再起動しない限り変更できません。

Microsoft Access の以前のバージョンが利用する Jet データベース エンジンのバージョンは、Visual Basic Version 4.0 が利用する Jet データベース エンジンと異なりますが、Jet データベース エンジン Version 2.5 または 3.0 を利用する他のアプリケーションからエンジンを初期化できます。

IniPath プロパティは、Visual Basic Version 3.0 で使われている、従来の SetDataAccessOption ステートメントの引数 DB_OPTIONINIPATH の代わりに使用されます。


IniPath プロパティの対象

DBEngine オブジェクト


IniPath プロパティの例

次のプログラムは、IniPath プロパティのパスをアプリケーションの初期化ファイル名 (.INI) に設定します。

Sub SetPathFirst()

DBEngine.IniPath = "C:/MYAPPDIR/MYAPP.INI"

End Sub


関連項目

SetDataAccessOption ステートメント


RecordsAffected プロパティ

関連項目	例	対象

直前に起動された Execute メソッドによって影響を受けた、レコードの総数を取得します。

構文

object.RecordsAffected

object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

RecordsAffected プロパティは、0 から直前の Execute メソッドによって影響を受けた Database オブジェクトまたは QueryDef オブジェクトのレコード数までの範囲の長整数型 (Long) の値を返します。

解説

RecordsAffected プロパティは、アクション クエリーの実行中に削除、更新、または挿入されたレコード数を保持します。Execute メソッドを使って QueryDef オブジェクトを実行すると、それによって影響を受けたレコード数が RecordsAffected プロパティに設定されます。

注   RecordsAffected プロパティには、ExecuteSQL メソッドによって返される値と同じものが設定されます。


関連項目

ExecuteSQL メソッド

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション


RecordsAffected プロパティの対象

Database オブジェクト

QueryDef オブジェクト


RecordsAffected プロパティの例

次のプログラムは、アクション クエリーによって更新されたレコード数を表示します。

Dim Db As Database, Results As Long

Set Db = Workspaces(0).OpenDatabase("BIBLIO.MDB")

Db.Execute "Update Titles Set [Year Published] = 1994 " _

& " WHERE Title = 'To Kill an SQL Query' "

Results = Db.RecordsAffected

Debug.Print Results " レコードが更新されました。"

Db.Close


Description プロパティ (データ アクセス)

関連項目	例	対象

エラーと関連付ける、エラー説明の文字列を設定します。値の取得も可能です。

構文

object.Description [= stringexpression]

Description プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

stringexpression	エラーの説明を含む文字列式を指定します。

解説

Description プロパティには、エラーの簡単な説明を設定します。エラーの処理ができない、または処理を必要としないエラーが発生した場合、このプロパティの内容を表示することにより、ユーザーにエラーの発生を警告することができます。


関連項目

Err オブジェクト

Error 関数

HelpContext、HelpFile プロパティ (データ アクセス)

Number プロパティ (データ アクセス)

Source プロパティ (データ アクセス)


Description プロパティ (データ アクセス) の対象

Error オブジェクト


Description、Number、Source (データ アクセス) プロパティの例

次のプログラムは、Error オブジェクトの Description、Number、Source の各プロパティの値を表示します。

Debug.Print Errors(Count-1).Number

Debug.Print Errors(Count-1).Description

Debug.Print Errors(Count-1).Source


HelpContext、HelpFile プロパティ (データ アクセス)

関連項目	例	対象

HelpContext プロパティは、Microsoft Windows のヘルプ ファイルのトピックに対応するコンテキスト文字列を文字列型 (String) で設定します。値の取得も可能です。

HelpFile プロパティは、ヘルプ ファイルへの絶対パスを設定します。値の取得も可能です。

解説

Microsoft Windows のヘルプ ファイルが HelpFile プロパティに指定されていると、HelpContext プロパティが参照されて、その値の示すヘルプ トピックが自動的に表示されます。

注   一般的なエラーについては、できる限りエラー処理ルーチンを記述して処理してください。オブジェクトを使ってプログラムを作成する場合は、そのオブジェクトのヘルプ ファイルを使って、エラー処理の質を改善したり、エラーが回復不能な場合に適切なメッセージをユーザーに表示することができます。OLE オートメーション オブジェクトを作成する場合には、そのオブジェクトを利用するプログラマ向けにヘルプを作成すると共に、回復不能なエラーが発生したときに表示するための適切なメッセージも提供するようにしてください。


関連項目

Description プロパティ (データ アクセス)

Number プロパティ (データ アクセス)

Source プロパティ (データ アクセス)


HelpContext、HelpFile プロパティ (データ アクセス) の対象

Error オブジェクト


HelpContext、HelpFile プロパティ (データ アクセス) の例

次のプログラムは、Error オブジェクトの HelpContext プロパティと HelpFile プロパティを使って、Microsoft Windows ヘルプ システムを起動します。HelpFile プロパティの既定値は、Microsoft Jet データベース エンジンのエラー メッセージ ヘルプ ファイルのファイル名です。

On Error Resume Next	' デモンストレーションのため、エラーが表示されないようにします。

Err.Raise 3004	' VBA を使って "データーベースが見つかりません" エラーを生成します。

Msg = " F1 キーを押すか、またはヘルプで検索して " & Errors(0).HelpFile & " このエラーに関するトピックを探します"

MsgBox Msg, , "エラー: " & Errors(0).Description & Errors(0).HelpFile & Errors(0).HelpContext


Container プロパティ (データ アクセス)

関連項目	例	対象

Document オブジェクトが属する Container オブジェクトの名前を返します。

構文

object.Container

object プレースホルダには、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Container プロパティの戻り値は、文字列型 (String) の値です。


関連項目

Container オブジェクト、Containers コレクション

Document オブジェクト、Documents コレクション


Container プロパティ (データ アクセス) の対象

Document オブジェクト


Container プロパティ (データ アクセス) の例

次のプログラムは、Document オブジェクトが属する Container オブジェクトの名前を判断します。

Sub Doc_Analyzer(Doc As Document)

Dim ContainerName As String

ContainerName = Doc.Container

Select Case ContainerName

Case "Relations"

...	' Document オブジェクトがリレーションを表す

...	' Container オブジェクトに属する場合、

...	' このコード行は、リレーション固有の処理を

' 行うことができます。

Case "Tables"	' TableDef オブジェクトまたは QueryDef オブジェクト

' の場合。

...

Case "Databases"

...

Case "Forms"

...

End Select

End Sub


Number プロパティ (データ アクセス)

関連項目	例	対象

エラーを表す数値を返します。Number プロパティは、Error オブジェクトの既定のプロパティです。

戻り値

Number プロパティの戻り値は、エラー番号を表す長整数型 (Long) の値です。

解説

Number プロパティは、発生したエラーを調べるときに使います。Number プロパティの値は、エラー条件に対応する固有のトラップ番号に対応します。トラップ番号とエラー条件の一覧については、「トラップできるエラー (データ アクセス)」を参照してください。


関連項目

Description プロパティ (データ アクセス)

HelpContext、HelpFile プロパティ (データ アクセス)

Source プロパティ (データ アクセス)


Number プロパティの対象

Error オブジェクト


Count プロパティ (データ アクセス)

関連項目	例	対象

コレクションの中のオブジェクト数を返します。

構文

object.Count

object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Count プロパティの戻り値は、長整数型 (Long) の値です。

解説

コレクションのメンバには、0 から順に番号が付けられているため、次の例のように、ループでは必ず 0 のメンバから記述します。

For I = 0 to Workspaces(0).Databases.Count - 1 ... Next I

注   次の例のように、For Each object In collection の構文を使い、コレクションのすべてのメンバを 1 つずつ処理する方法もあります。

Dim MyDb as Database

For Each MyDb In Workspaces(0).Databases

' 各要素に対して繰り返します。

Debug.Print MyDb.Name

Next

Count プロパティの値は、Null 値になることはありません。値が 0 の場合は、コレクションにオブジェクトがないことを示しています。


関連項目

Append メソッド

Delete メソッド

Refresh メソッド (データ アクセス)


Count プロパティ (データ アクセス) の例

次のプログラムは、指定したデータベースの TableDef オブジェクトと QueryDef オブジェクトの名前と合計数を表示します。これには、2 とおりの方法があります。2 番めの方法では、Count プロパティを使いません。

Dim MyDB As Database, I As Integer, Td as TableDef

Set MyDB = OpenDatabase("MYDB.MDB")

Debug.Print MyDB.TableDefs.Count

For I = 0 To MyDB.QueryDefs.Count - 1

Debug.Print MyDB.QueryDefs(I).Name

Next I

' または、Count プロパティを参照せずに、次のように記述します。

For Each Td In MyDb.TableDefs	' 各要素に対して繰り返します。

Debug.Print Td.Name

Next

Debug.Print MyDB.QueryDefs.Count


 Count プロパティ (データ アクセス) の対象

Columns コレクション

Containers コレクション

Databases コレクション

Documents コレクション

Errors コレクション

Fields コレクション

Groups コレクション

Indexes コレクション

Parameters コレクション

Properties コレクション

QueryDefs コレクション

Recordsets コレクション

Relations コレクション

SelBookmarks コレクション

TableDefs コレクション

Users コレクション

Workspaces コレクション


SystemDB プロパティ

システム データベース (.MDA) ファイルの絶対パスおよびファイル名を設定します。値の取得も可能です。

構文

object.SystemDB [= value]

SystemDB プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	DBEngine オブジェクトへの参照を表すオブジェクト式を指定します。

value	システム データベース ファイルを文字列式で指定します (通常は "SYSTEM.MDA" という名前です)。これは "ワークグループ ファイル" としても知られています。

解説

Jet データベース エンジンでは、ワークグループを定義し、ワークグループ内の各ユーザーに、データベース内の各オブジェクトへのさまざまな権限を与えることができます。ワークグループは、通常は "SYSTEM.MDA" という名前のワークグループ ファイルによって定義されます。

データベース内のセキュリティが設定されたオブジェクトへの権限をユーザーが取得するには、データベースを指定するワークグループ ファイルの位置を、DAO に対して指定する必要があります。これは、Windows レジストリに指定することによって、または SystemDB プロパティを使用することによって設定できます。

このプロパティは、32 ビット版のみ使用できます。


Source プロパティ (データ アクセス)

関連項目	例	対象

エラー発生元のオブジェクトまたはアプリケーションの名前を返します。

構文

object.Source

object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Source プロパティの戻り値は、エラー発生元のオブジェクトまたはアプリケーションを表す文字列式です。

解説

Source プロパティには、エラー発生元のオブジェクトを表す文字列式が返されます。この文字列式は、通常、オブジェクトのクラス名またはプログラム ID となります。アクセスしているオブジェクトで発生したエラーを処理できないときに Source プロパティを使えば、エラー情報をユーザーに知らせることができます。たとえば、Microsoft Excel にアクセスし、Excel 上で“0 で除算しました”エラーが発生したとき、Microsoft Excel は、対応するエラー コードを Error.Number プロパティに設定し、Excel.Application を Source プロパティに設定します。Microsoft Excel により呼び出された別のオブジェクトで“0 で除算しました”エラーが発生したときは、Microsoft Excel はエラー処理ルーチンに制御を移し、対応する Microsoft Excel のエラー コードを Error.Number プロパティに設定します。ただし、Error オブジェクトの他のプロパティ (Source プロパティを含む) は、エラー発生元のオブジェクトにより設定されます。Source プロパティには必ず、エラー発生元のオブジェクトの名前が設定されます。したがって、そのオブジェクトに付属しているエラー関連のマニュアルに従ってエラー処理ルーチンを作成してください。エラー処理ルーチンで失敗した場合は、Source プロパティなど Error オブジェクトのプロパティを参照することにより、エラー発生元のオブジェクトやそのエラーの説明などの情報をユーザーに知らせることができます。

注   他のオブジェクトへのアクセス中に発生したエラーを処理する場合、On Error GoTo 構文よりも On Error Resume Next 構文の方が適しています。オブジェクトにアクセスするたびに Error オブジェクトの値を確認すると、エラーが発生時にコードがどのオブジェクトにアクセスしていたかが明確になります。したがって、エラー発生元のオブジェクト (Error.Source プロパティに設定されるオブジェクト) だけでなく、どのオブジェクトが Error.Number プロパティにエラー番号を設定したかも確認することができます。


関連項目

Description プロパティ (データ アクセス)

HelpContext、HelpFile プロパティ (データ アクセス)

Number プロパティ (データ アクセス)

On Error ステートメント


Source プロパティ (データ アクセス) の対象

Error オブジェクト


BeginTrans、CommitTrans、Rollback ステートメント

関連項目

BeginTrans ステートメント。

新規にトランザクション を開始します。

CommitTrans ステートメント。

カレント トランザクションを終了します。

Rollback ステートメント。

カレント トランザクションで行われた変更を取り消し、トランザクションを終了します。

注   BeginTrans、CommitTrans、Rollback の各ステートメントは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ Workspace オブジェクトの BeginTrans、CommitTrans、Rollback の各メソッドを使用してください。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。

構文

BeginTrans

CommitTrans

Rollback

解説

これらのステートメントを使った場合と、それに相当するメソッドを使った場合の結果は同じです。トランザクションは、常に広い範囲での Workspace オブジェクトを対象とします。トランザクション中に 1 つ以上のデータベースやレコードセットへの操作がある場合、Rollback ステートメントを使用すると、すべてのデータベースへの操作が元の状態に戻されます。


関連項目

BeginTrans、CommitTrans、Rollback メソッド

CreateWorkspace メソッド

Database オブジェクト、Databases コレクション

Workspace オブジェクト、Workspaces コレクション


CompactDatabase ステートメント

関連項目	例

CompactDatabase ステートメントは、データベース ファイルのコピー、最適化を行い、さらにオプションでバージョン番号、照合順序、暗号化の変更を行います。データベースは閉じられていなければなりません。

注   CompactDatabase ステートメントは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ Workspace オブジェクトの CompactDatabase メソッドを使用してください。CompactDatabase ステートメントと CompactDatabase メソッドの指定項目、引数、機能は同じです。


関連項目

CompactDatabase メソッド


CreateDatabase 関数

関連項目	例

この関数は、新規に Microsoft Jet データベースを作成してディスクに保存し、新規に Database オブジェクトを作成して、排他的な読み取りおよび書き込みアクセスで開いた Database オブジェクトを返します。

注   CreateDatabase 関数は、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ Workspace オブジェクトの CreateDatabase メソッドを使用してください。CreateDatabase 関数と CreateDatabase メソッドの指定項目、引数、機能は同じです。


関連項目

CreateDatabase メソッド


FreeLocks ステートメント

関連項目

データの処理を一時的に停止させ、データベースのロックをレコード ページ単位で解除できるようにします。マルチ ユーザー環境では、ローカルな Dynaset オブジェクトのすべてのデータをカレント データにすることができます。

注   FreeLocks ステートメントは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ定数 dbFreeLocks を指定して Idle メソッドを使用してください。

構文

FreeLocks


関連項目

LockEdits プロパティ


RegisterDatabase ステートメント

関連項目	例

OpenDatabase 関数で使用する ODBC データ ソース名に関する接続情報を作成します。

注   RegisterDatabase ステートメントは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ DBEngine オブジェクトの RegisterDatabase メソッドを使用してください。RegisterDatabase ステートメントと RegisterDatabase メソッドの指定項目、引数、機能は同じです。


関連項目

OpenDatabase メソッド

RegisterDatabase メソッド


RegisterDatabase ステートメントの例

このプログラムでは、"Clinton" という名前の SQL サーバーが登録され、既定のデータベースである Pubs データベースがサーバー上で開かれます。

Dim Att As String, MyDb As Database

Att = "Description = SQL Server on server Clinton" & Chr$(13)

Att = Att & "OemToAnsi=No" & Chr$(13)	' Build keywords string.

Att = Att & "Network=DBNMP3" & Chr$(13)

Att = Att & "Address=\\CLINTON\PIPE\SQL\QUERY" & Chr$(13)

Att = Att & "Database=Pubs"

' Update ODBC.INI.

RegisterDatabase "Clinton", "SQL Server", True, Att

...

Set MyDb = OpenDatabase("Clinton", False, False, "ODBC;")

...


RepairDatabase ステートメント

関連項目

破損した Microsoft Jet データベースの修復を行います。

注   RepairDatabase ステートメントは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ DBEngine オブジェクトの RepairDatabase メソッドを使用してください。RepairDatabase ステートメントと RepairDatabase メソッドの指定項目、引数、機能は同じです。


関連項目

Close メソッド

CompactDatabase ステートメント

RepairDatabase メソッド


SetDataAccessOption ステートメント

関連項目

Microsoft Jet データベース エンジンの初期化 (.INI) ファイルの場所を設定します。

注   SetDataAccessOption ステートメントは、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ DBEngine オブジェクトの IniPath プロパティを使用してください。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。


関連項目

DBEngine オブジェクト

Workspace オブジェクト、Workspaces コレクション


OpenDatabase 関数

関連項目

指定したデータベースを開き、そのデータベースへの参照を表すオブジェクト型の値を返します。

注   OpenDatabase 関数は、Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ Workspace オブジェクトの OpenDatabase メソッドを使用してください。詳細については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。


関連項目

DBEngine オブジェクト

OpenDatabase メソッド


SetDefaultWorkspace ステートメント

関連項目

保護された (セキュリティを有効にした) Microsoft Jet データベースにユーザー ID とパスワードを設定します。使用しているデータベースが保護されていない場合は、このステートメントは無視されます。

注   SetDefaultWorkspace ステートメントは、以前のバージョンとの互換性を保つために、サポートされています。できるだけ Workspace オブジェクトのプロパティを使用してください。

構文

SetDefaultWorkspace username, password

SetDefaultWorkspace ステートメントの指定項目は次のとおりです。

指定項目	内容

username	システム データベースが認識できる形式で、ユーザーを識別する文字列式を指定します。

password	username に対する有効なパスワードを示す文字列を指定します。

解説

保護されたデータベースを使う場合、アプリケーションを実行しているときに、SetDefaultWorkspace ステートメントを最初に使用する必要があります。ただし、事前に、DBEngine オブジェクトの IniPath プロパティを設定しておく必要があります。最初にその他のデータ アクセス コントロール、関数、ステートメントを使うと、既定値として username に管理者が設定され、password には長さが 0 の文字列 ("") が設定されます。それ以降に username や password を設定しても無効になります。

アプリケーションの実行中には複数のデータベースにアクセスすることができますが、username と password は一度設定すると変更できないので、保護されたデータベースに対して、同じ username と password を指定する必要があります。アプリケーション内で複数のユーザー名とパスワードを使う方法については、「Workspace オブジェクト、Workspaces コレクション」を参照してください。

保護されたデータベースを使ったアプリケーションを配布する場合は、適切な設定を行ったシステム データベースのコピーが必要になります。システム データベースがないときにこのステートメントを使うとエラーが発生します。このシステム データベースは、カレント ディレクトリまたはアプリケーションの初期化 (.INI) ファイルで指定されているディレクトリにある必要があります。データ (Data) コントロールと SetDefaultWorkspace ステートメントは、これらを Sub Main プロシージャか、最初の Form_Load イベント プロシージャで使う必要があります。

SetDefaultWorkspace ステートメントは、アプリケーションの既定の Workspace オブジェクトを変更することはありませんが、Workspace オブジェクトのプロパティを設定します。

注   セキュリティ機能を使うには、Microsoft Jet データベース エンジンが SYSTEM.MDW ファイルにアクセスできなければなりません。詳細については、「セキュリティのアクティブ化」を参照してください。


関連項目

CreateWorkspace メソッド

Refresh メソッド (データ アクセス)

SetDataAccessOption ステートメント

Workspace オブジェクト、Workspaces コレクション


トラップできるエラー (データ アクセス)


トラップできるエラー (データ アクセス)

関連項目

Visual Basic 環境でアプリケーションを実行しているときに、または独立した実行可能ファイルとしてアプリケーションを実行しているときに、トラップできるエラーが発生することがあります。これらのエラーは、Visual Basic のデータ アクセス機能を使用した操作を行っているときに発生します。トラップできるエラーをテストし、これに対処するには、On Error ステートメントおよび Err 関数を使用します。Visual Basic の開発環境では、F1 キーを押してメッセージについてのヘルプを表示することができます。

注   最新バージョンの Microsoft Jet データベース エンジンでは、600 個のデータ アクセス エラー メッセージが置き換えられるか、または使用できなくなっています。

エラー番号 2420 ～ 2448

エラー番号 3000 ～ 3099

エラー番号 3100 ～ 3199

エラー番号 3200 ～ 3299

エラー番号 3300 ～ 3399

エラー番号 3400 ～ 3464

エラー番号 3608 ～ 3622

レプリケーション エラー


エラー番号 2420 ～ 2448

関連項目

番号	メッセージ
2420	数値の構文エラーです。
2421	日付の構文エラーです。
2422	文字列の構文エラーです。
2423	'.'、'!'、または '()' の使い方が不正です。
2424	未定義の名前です。
2425	未定義の関数名です。
2426	この関数は式では使えません。
2427	指定のオブジェクトには数値または文字列が必要です。このオブジェクトには値がありません。
2428	定義域関数の引数が不正です。
2429	In 演算子には、かっこ '()' が必要です。
2430	Between 演算子に対応する And がありません。
2431	構文エラーです。
2432	構文エラーです。
2433	構文エラーです。
2434	構文エラーです。
2435	不要な閉じかっこ ')' があります。
2436	')'、']'、または <アイテム> が足りません。
2437	縦棒 '|' の使い方が不正です。
2438	構文エラーです。
2439	関数で使われている引数の数が一致しません。
2440	IIF 関数に対応するかっこ '()' がありません。
2442	かっこ '()' の使い方が不正です。
2443	Is 演算子の使い方が不正です。
2445	式が複雑すぎます。
2446	メモリ不足のため、演算を実行できません。
2447	'.'、'!'、または '()' の使い方が不正です。
2448	値を設定できません。


エラー番号 3000 ～ 3099

関連項目

番号	メッセージ
3000	システムで予約されているエラー <アイテム> です。このエラーに対するメッセージはありません。
3001	引数が正しくありません。
3002	セッションを開始できませんでした。
3003	ネストしているトランザクションが多すぎるため、トランザクションを開始できませんでした。
3005	<データベース名> は不正なデータベース名です。
3006	データベース <データベース名> は排他ロックされています。
3007	ライブラリ データベース <データベース名> を開くことができませんでした。
3008	テーブル <テーブル名> は排他ロックされています。
3009	テーブル <テーブル名> は現在使用されているため、ロックできませんでした。
3010	テーブル <テーブル名> は既に存在します。
3011	オブジェクト <オブジェクト名> は見つかりませんでした。
3012	オブジェクト <オブジェクト名> は既に存在しています。
3013	組み込み可能な ISAM ドライバのファイル名は変更できませんでした。
3014	テーブルはこれ以上開けません。
3015	<インデックス名> はこのテーブルのインデックスではありません。
3016	フィールドがレコードに適合しません。
3017	フィールド サイズが長すぎます。
3018	フィールド <フィールド名> は見つかりませんでした。
3019	カレント インデックスを指定してください。
3020	Update または CancelUpdate メソッドには、対応する AddNew または Edit メソッドが必要です。
3021	カレント レコードがありません。
3022	インデックス、主キー、またはリレーションシップで指定されている値が重複しています。変更はできませんでした。
3023	AddNew または Edit メソッドは、既に適用されています。
3024	ファイル <ファイル名> は見つかりませんでした。
3025	これ以上ファイルを開くことはできません。
3026	ディスクの空き容量が不足しています。
3027	データベースまたはオブジェクトは読み取り専用であるため、更新できませんでした。
3028	アプリケーションを起動できません。システム データベースが存在しないか、または他のユーザーが排他的にシステム データベースを開いています。
3029	アカウント名またはパスワードが不正です。
3030	<アカウント名> は不正なアカウント名です。
3031	パスワードが不正です。
3032	この操作は実行できません。
3033	<名前> に対する権限がありません。
3034	コミットまたはロールバックを実行するには、BeginTrans メソッドが適用されている必要があります。
3036	データベースは最大のサイズに達しました。
3037	これ以上テーブルまたはクエリーを開くことはできません。
3039	定義されているインデックスが多すぎるため、インデックスは作成できませんでした。
3040	読み取り中にディスク I/O エラーが発生しました。
3041	前のバージョンのアプリケーションで作成されたデータベースを開くことはできません。
3042	MS-DOS のファイル ハンドルが不足です。
3043	ディスクまたはネットワークのエラーです。
3044	<パス> は不正なパスです。
3045	<名前> は既に使用されているため、使用できませんでした。
3046	他のユーザーによってロックされているため、保存できませんでした。
3047	レコードが大きすぎます。
3048	これ以上データベースを開くことはできません。
3049	データベース <データベース名> を開くことができません。アプリケーションで認識できるデータベースではないか、ファイルが破損しています。
3051	ファイル <ファイル名> を開くことができませんでした。
3052	MS-DOS ファイルの一度にロックできるファイル数を超えています。SHARE.EXE のロック数を増やしてください。
3053	クライアント タスクが多すぎます。
3054	メモ型または OLE オブジェクト型のフィールドが多すぎます。
3055	ファイル名が不正です。
3056	このデータベースは修復できませんでした。
3057	アタッチ またはリンク テーブルでは、この操作はサポートされていません。
3058	インデックスまたは主キーには、Null 値を使うことができません。
3059	ユーザーによって処理が中止されました。
3060	パラメータ <パラメータ名> のデータ型が間違っています。
3061	パラメータが少なすぎます。<数> を指定してください。
3062	出力エイリアス <エイリアス名> が重複しています。
3063	出力先 <出力先名> が重複しています。
3064	アクション クエリー <クエリー名> を開くことはできません。
3065	非アクション クエリーは実行できません。
3066	クエリーまたはテーブルには、出力するフィールドが 1 つ以上必要です。
3067	クエリーの入力には、1 つ以上のテーブルまたはクエリーが必要です。
3068	エイリアス名が不正です。
3069	アクション クエリー <クエリー名> をデータ ソースとして使うことはできません。
3070	<名前> はバインドできません。
3071	式を評価することができません。
3073	更新可能なクエリーでなければなりません。
3074	FROM 句でテーブル名 <名前> を繰り返すことはできません。
3075	クエリー式 <式> の <メッセージ>
3076	抽出条件の <名前>
3077	式の <メッセージ>
3078	入力テーブルまたはクエリー <名前> は見つかりませんでした。
3079	フィールドの参照 <参照> があいまいです。
3080	結合テーブル <テーブル名> が FROM 句に指定されていません。
3081	同じ名前 <テーブル名> の複数のテーブルを結合することはできません。
3082	JOIN 操作 <操作> は非結合テーブルを参照しています。
3083	内部レポート クエリーは使えません。
3084	アクション クエリーを使ってデータを挿入することはできません。
3085	式に未定義関数  <関数名> があります。
3086	指定されたテーブルから削除できませんでした。
3087	GROUP BY 句の式が多すぎます。
3088	ORDER BY 句の式が多すぎます。
3089	DISTINCT 出力の式が多すぎます。
3090	作成されるテーブルは、複数のカウンタまたは自動番号フィールドを含むことはできません。
3092	TRANSFORM ステートメントで HAVING 句は使えません。
3093	ORDER BY 句 <句> は DISTINCT 句と矛盾しています。
3094	ORDER BY 句 <句> は GROUP BY 句と矛盾しています。
3095	式 <式> で集合関数を使うことはできません。
3096	WHERE 句 <句> で集合関数を使うことはできません。
3097	ORDER BY 句 <句> で集合関数を使うことはできません。
3098	GROUP BY 句 <句> で集合関数を使うことはできません。
3099	JOIN 操作 <操作> で集合関数を使うことはできません。


エラー番号 3100 ～ 3199

関連項目

番号	メッセージ
3100	結合キーに含まれるフィールド <フィールド名> は Null に設定できません。
3101	フィールド <フィールド名> とキーが一致しているレコードがテーブル <テーブル名> にありません。
3102	<クエリー参照> から循環参照が発生しています。
3103	クエリー定義の SELECT で指定されているエイリアス <エイリアス名> が循環参照を引き起こしています。
3104	クロス集計クエリーには、固定列見出し <値> を複数指定できません。
3105	SELECT INTO ステートメント <ステートメント> にデスティネーション フィールド名が見つかりません。
3106	UPDATE ステートメント <ステートメント> にデスティネーション フィールド名が見つかりません。
3107	<名前> にデータを挿入する権限がないため、レコードを追加できません。
3108	<名前> のデータを更新する権限がないため、レコードを編集できません。
3109	<名前> のデータを削除する権限がないため、レコードを削除できません。
3110	テーブルまたはクエリー <名前> の構造を読み取る権限がないため、定義を読み取ることができませんでした。
3111	テーブルまたはクエリー <名前> を作成する権限がないため、作成できませんでした。
3112	<名前> のデータを読み取る権限がないため、レコードを読み取ることができません。
3113	フィールド <フィールド名> は更新できません。
3114	固有の値 <ステートメント> を選択したときは、メモ型または OLE オブジェクト型のフィールドを含むことはできません。
3115	集合関数の引数 <ステートメント> にメモ型または OLE オブジェクト型のフィールドを指定することはできません。
3116	集合関数の抽出条件 <ステートメント> にメモ型または OLE オブジェクト型のフィールドを指定することはできません。
3117	メモ型または OLE オブジェクト型のフィールド <句> で並べ替えを行うことはできません。
3118	メモ型または OLE オブジェクト型 <名前> のフィールドを結合することはできません。
3119	メモ型または OLE オブジェクト型 <句> のフィールドはグループ化できません。
3120	'*' <テーブル名> で選択したフィールドはグループ化できません。
3121	'*' で選択したフィールドはグループ化できません。
3122	<名前> は、集合関数またはグループの一部ではありません。
3123	クロス集計クエリーに '*' を使うことはできません。
3124	内部のレポート クエリー <名前> から入力することはできません。
3125	<名前> は不正な名前です。
3126	<名前> のかっこの使い方が不正です。
3127	INSERT INTO ステートメントに、認識できないフィールド <フィールド名> があります。
3128	削除元のテーブルを指定してください。
3129	SQL ステートメントが不正です; 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT' または 'UPDATE' が必要です。
3130	DELETE ステートメントの構文エラーです。
3131	FROM 句の構文エラーです。
3132	GROUP BY 句の構文エラーです。
3133	HAVING 句の構文エラーです。
3134	INSERT ステートメントの構文エラーです。
3135	JOIN 操作の構文エラーです。
3136	LEVEL 句の構文エラーです。
3138	ORDER BY 句の構文エラーです。
3139	PARAMETER 句の構文エラーです。
3140	PROCEDURE 句の構文エラーです。
3141	SELECT ステートメントの構文エラーです。
3143	TRANSFORM ステートメントの構文エラーです。
3144	UPDATE ステートメントの構文エラーです。
3145	WHERE 句の構文エラーです。
3146	ODBC--呼び出しは失敗しました。
3151	ODBC--<名前> への接続は失敗しました。
3154	ODBC--DLL <DLL ファイル名> は見つかりませんでした。
3155	ODBC--アタッチ (リンク) テーブル <テーブル名> で挿入に失敗しました。
3156	ODBC--アタッチ (リンク) テーブル <テーブル名> で削除に失敗しました。
3157	ODBC--アタッチ (リンク) テーブル <テーブル名> で更新に失敗しました。
3158	他のユーザーによってロックされているため、レコードは保存できませんでした。
3159	ブックマークが不正です。
3160	このテーブルは開いていません。
3161	ファイルを解読できませんでした。
3162	Null 値を使うことはできません。
3163	フィールドに対するデータが長すぎるため、この操作を実行できませんでした。
3164	フィールドを更新できませんでした。
3165	.INF ファイル を開くことができませんでした。
3166	メモ ファイルがありません。
3167	レコードは削除されています。
3168	.INF ファイルが不正です。
3169	式に不正な型があります。
3170	組み込み可能な ISAM ドライバは見つかりませんでした。
3171	ネットワーク パスまたはユーザー名は見つかりませんでした。
3172	PARADOX.NET を開くことができませんでした。
3173	システム データベース ファイルの 'MSysAccounts' テーブルを開くことができませんでした。
3174	システム データベース ファイルの 'MSysGroups' テーブルを開くことができませんでした。
3175	日付が範囲外であるか、書式が不正です。
3176	ファイル <ファイル名> を開くことができませんでした。
3177	テーブル名が不正です。
3179	EOF エラーです。
3180	ファイル <ファイル名> に書き込むことはできませんでした。
3181	範囲が不正です。
3182	ファイル形式が不正です。
3183	テンポラリ ファイルのための空き容量が不足しています。
3184	アタッチまたはリンクするテーブルが見つからなかったため、クエリーを実行できませんでした。
3185	SELECT INTO ステートメントでリモート データベースに作成するときに、作成されるフィールドの数が多すぎます。
3186	マシン <マシン名> のユーザー <ユーザー名> によってロックされているため、保存できませんでした。
3187	マシン <マシン名> のユーザー <ユーザー名> によってロックされているため、読み取れませんでした。
3188	このマシンの他のセッションによってロックされているため、更新できませんでした。
3189	テーブル <テーブル名> は、マシン <マシン名> のユーザー <ユーザー名> によって排他ロックされています。
3190	定義されているフィールドが多すぎます。
3191	同名のフィールドを作ることはできません。
3192	出力テーブル <テーブル名> は見つかりませんでした。
3193	ユーザー名がありません。
3194	コンピュータ名がありません。
3196	データベース <データベース名> は既に使用されているため、使用できませんでした。
3197	データは変更されています; 処理を中止します。
3198	アクティブなセッションが多すぎるため、セッションを開始できませんでした。
3199	参照は見つかりませんでした。


エラー番号 3200 ～ 3299

関連項目

番号	メッセージ
3200	レコードの削除または変更はできません。リレーションシップが設定されたレコードがテーブル <テーブル名> にあり、参照整合性規則に反します。
3201	レコードの追加または変更はできません。参照整合性規則に適合させるためには、テーブル <テーブル名> とリレーションシップが設定されたレコードが必要です。
3202	他のユーザーによってロックされているため、保存できませんでした。
3203	式 <式> にサブクエリーは指定できません。
3204	データベースは既に存在しています。
3205	クロス集計する列のヘッダー <値> が多すぎます。
3206	同じフィールドの間でリレーションシップは作成できません。
3207	この操作は、主キーのない Paradox のテーブルではサポートされていません。
3208	Xbase セクションの Deleted エントリの設定値が不正です。
3209	Xbase セクションの Stats エントリの設定値が不正です。
3210	接続文字列が長すぎます。
3211	テーブル <テーブル名> は現在使用されているため、ロックできませんでした。
3212	テーブル <テーブル名> は、マシン <マシン名> のユーザー <ユーザー名> によって使用されているため、ロックできませんでした。
3213	Xbase セクションの Date エントリの設定値が不正です。
3214	Xbase セクションの Mark エントリの設定値が不正です。
3215	Btrieve のタスクが多すぎます。
3216	パラメータ <名前> はテーブル名でなければなりません。
3217	パラメータ <名前> はデータベース名でなければなりません。
3218	ロックされているため、更新できませんでした。
3219	不正な処理であるため実行できません。
3220	照合順序が不正です。
3221	Btrieve セクションのエントリの設定値が不正です。
3222	クエリーはデータベースのパラメータを含むことはできません。
3223	<パラメータ名> は不正なパラメータ名です。
3224	Btrieve のデータ辞書を読み取ることができません。
3225	Btrieve のテーブルの処理中に、デッドロックが発生しました。
3226	Btrieve DLL の使用中にエラーが発生しました。
3227	Xbase セクションの Century エントリの設定値が不正です。
3228	照合順序が不正です。
3229	Btrieve--フィールドは変更できません。
3230	古い Paradox のロック ファイルです。
3231	ODBC--フィールドが長すぎるため、あふれたデータは切り捨てられました。
3232	ODBC--テーブルを作成できませんでした。
3234	ODBC--サーバーの応答がありません。
3235	ODBC--サーバーがサポートしていないデータ型です。
3238	ODBC--有効範囲外のデータです。
3239	アクティブ ユーザーが多すぎます。
3240	Btrieve-- Btrieve エンジンが見つかりません。
3241	Btrieve--リソースが不足しています。
3242	SELECT ステートメントの参照が不正です。
3243	インポートするフィールド名と一致するフィールドが追加先テーブルにありません。
3244	パスワードで保護されているワークシートをインポートすることはできません。
3245	インポートしたテーブルの先頭行をフィールド名に自動フォーマットできませんでした。
3246	この操作は、トランザクションではサポートされていません。
3247	ODBC--リンクするテーブルの定義は変更されました。
3248	NetworkAccess エントリの設定値が不正です。
3249	PageTimeout エントリの設定値が不正です。
3250	キーを設定することができませんでした。
3251	このオブジェクトに対しては、この操作は実行できません。
3252	フォームを開くことができません。基になっているクエリーで、このフォームの RecordsetClone プロパティの設定または取得を行うユーザー定義関数が見つかりました。
3254	ODBC--すべてのレコードをロックできません。
3256	インデックス ファイルが見つかりません。
3257	WITH OWNERACCESS OPTION 宣言の構文エラーです。
3258	クエリーにあいまいな外部結合があります。
3259	フィールドのデータ型が不正です。
3260	マシン <マシン名> のユーザー <ユーザー名> によってロックされているため、更新できませんでした。
3261	テーブル <テーブル名> は、マシン <マシン名> のユーザー <ユーザー名> によって排他ロックされています。
3262	テーブル <テーブル名> は、マシン <マシン名> のユーザー <ユーザー名> によって使用されているため、ロックできませんでした。
3263	不正なデータベース オブジェクトです。
3264	フィールドが定義されていないため、テーブル定義またはインデックスを追加できません。
3265	このコレクションには項目がありません。
3266	フィールドは、TableDefs コレクションに属しているため、追加できませんでした。
3267	プロパティは、フィールドが Recordset オブジェクトの Fields コレクションに属していないと設定できません。
3268	オブジェクトがコレクションに属しているため、このプロパティは設定できません。
3269	インデックスは TableDefs コレクションに属しているため、追加できませんでした。
3270	プロパティが見つかりませんでした。
3271	プロパティの値が不正です。
3272	オブジェクトはコレクションではありません。
3273	このオブジェクトに対しては使用できないメソッドです。
3274	外部テーブルのフォーマットが不正です。
3275	外部データベース ドライバ <エラー番号> で予期しないエラーが発生しました。
3276	データベース ID が不正です。
3277	1 つのインデックスで使えるフィールドは 10 までです。
3278	データベース エンジンが初期化されていません。
3279	データベース エンジンは既に初期化されています。
3280	インデックスとして使われているフィールドまたはシステムが必要とするフィールドは削除できません。
3281	このフィールドは削除できません。カレント インデックスとして使用されているか、リレーションシップで使用されています。
3282	すでに定義されているテーブルでは、フィールドやインデックスを作成できません。
3283	主キーは既に存在しています。
3284	インデックスは既に存在しています。
3285	インデックスの定義が不正です。
3286	メモ ファイルの形式が、指定されている外部データベースのファイル形式に対応していません。
3287	指定したフィールドにはインデックスを作成できません。
3288	Paradox のインデックスが主インデックスではありません。
3289	CONSTRAINT 句の構文エラーです。
3290	CREATE TABLE ステートメントの構文エラーです。
3291	CREATE INDEX ステートメントの構文エラーです。
3292	フィールド定義の構文エラーです。
3293	ALTER TABLE ステートメントの構文エラーです。
3294	DROP INDEX ステートメントの構文エラーです。
3295	DROP TABLE または DROP INDEX ステートメントの構文エラーです。
3296	結合式がサポートされていません。
3297	テーブルまたはクエリーをインポートできませんでした。レコードが 1 つも見つからないか、またはすべてのレコードにエラーがあります。
3298	同じ名前のテーブルが複数見つかりました。'所有者.テーブル名' の書式で所有者も指定してください。
3299	ODBC の仕様適合エラー <メッセージ> です。


エラー番号 3300 ～ 3399

関連項目

番号	メッセージ
3300	リレーションシップを作成できません。
3301	処理が実行できません。このバージョンの機能には、前のバージョンのデータベースで使用できないものがあります。
3302	このテーブルに対する規則は、現在適用されているため変更できません。
3303	このフィールドは削除できません。1 つ以上のリレーションシップで使用されています。
3304	4 桁 (バイト) 以上、20 桁 (バイト) 以下の PID (パーソナル ID) を入力してください。
3305	パススルー クエリーで使われている接続文字列が不正です。
3306	EXISTS キーワードを使用しないサブクエリーからは、1 つのフィールドしか返されません。
3307	ユニオン クエリーで選択した 2 つのテーブルまたはクエリーの列数が一致しません。
3308	選択クエリーの TOP 引数が不正です。
3309	プロパティは 2KB 以下で設定してください。
3310	このプロパティは、外部データ ソースまたは前のバージョンで作成されたデータベースではサポートされていません。
3311	指定されたプロパティは既に存在しています。
3312	システム テーブルとアタッチ (リンク) テーブルには、入力規則と既定値を設定できません。
3313	このフィールドには設定できない入力規則を指定しています。
3314	フィールド <フィールド名> には Null 値を格納できません。
3315	フィールド <フィールド名> には、長さ 0 の文字列を格納できません。
3316	テーブルでのエラーメッセージです。
3317	<名前> に設定されている入力規則 <規則> に違反する値が 1 つ以上入力されました。
3318	削除クエリーでは、Top 句を使用できません。
3319	ユニオン クエリーの構文エラーです。
3320	テーブル レベル入力規則の <エラー>。
3321	接続文字列または IN 句にデータベースが指定されていません。
3322	クロス集計クエリーに、不正な固定列見出しが 1 つ以上見つかりました。
3323	このクエリーは、データ ソースとして使うことはできません。
3324	このクエリーは DDL クエリーであるため、データ ソースとして使うことはできません。
3325	ReturnsRecords プロパティが True に設定されているパススルー クエリーから、レコードが返されませんでした。
3326	このレコードセットは更新できません。
3334	Version 1.0 形式でしか使用できません。
3336	Btrieve: IndexDDF オプションの設定値が不正です。
3337	DataCodePage オプションの設定値が不正です。
3338	Btrieve: Xtrieve オプションの設定値が不正です。
3339	Btrieve: IndexDeleteRenumber オプションの設定値が不正です。
3340	クエリー <クエリー名> は破損しています。
3341	カレント フィールドは更新されているため、一対多リレーションシップの '一' 側の結合キーと一致しなければなりません。
3342	サブクエリー <サブクエリー名> のメモ型または OLE オブジェクト型のデータが不正です。
3344	テーブル <テーブル名> の入力規則または既定値の参照 <名前> を認識できません。または参照が不正です。
3345	フィールドの参照 <名前> が認識できません。または不正な参照です。
3346	クエリーの値と追加先フィールドの数が一致しません。
3349	数値フィールドがオーバーフローしました。
3350	オブジェクトが不正です。
3351	ORDER BY 式 <式> が非出力フィールドを使用しています。
3352	INSERT INTO ステートメント <ステートメント> に追加先のフィールド名が指定されていません。
3353	Btrieve: FIELD.DDF ファイルが見つかりません。
3354	このサブクエリーでは 1 つのレコードしか返せません。
3355	既定値の構文エラーです。
3356	マシン <マシン名> のユーザー <ユーザー名> によってデータベースは既に開いています。このデータベースを排他的に開くことはできません。
3357	このクエリーは、正しく指定されたデータ定義クエリーではありません。
3358	Microsoft Jet エンジンのシステム データベースを開くことができません。
3359	パススルー クエリーには、必ず 1 文字以上が含まれていなければなりません。
3360	クエリーが複雑すぎます。
3361	サブクエリーでは UNION 句を使用できません。
3362	1 行の更新/削除により、リモート テーブルで 1 行以上が影響を受けました。固有インデックスに重複する値が含まれています。
3364	ユニオン クエリーの SELECT 句では、メモ型あるいは OLE オブジェクト型のフィールド <フィールド名> が使用できません。
3365	リモート オブジェクトには設定できないプロパティです。
3366	フィールドが定義されていないため、リレーションシップは追加できません。
3367	追加しようとしたオブジェクトは、既にコレクションに含まれています。
3368	リレーションシップは、同じデータ型で同じ数のフィールドに設定しなければなりません。
3370	テーブル <テーブル名> のデザインは変更できません。データベースが読み取り専用になっています。
3371	テーブルまたは規則を見つけることができません。
3372	テーブル <テーブル名> に インデックス <インデックス名> は見つかりませんでした。
3373	リレーションシップを作成できません。参照先のテーブル <テーブル名> に主キーがありません。
3374	指定されたフィールドは、テーブル <テーブル名> の固有インデックスではありません。
3375	テーブル <テーブル名> には既に <インデックス名> という名前のインデックスがあります。
3376	テーブル <テーブル名> は存在しません。
3377	テーブル <テーブル名> にリレーションシップ <リレーションシップ名> はありません。
3378	カレント データベースには既に <リレーションシップ名> という名前のリレーションシップが存在します。
3379	参照整合性を設定したリレーションシップは作成できません。テーブル <テーブル名> にある既存のデータが、リレーション テーブル <名前> の参照整合性に違反しています。
3380	フィールド <フィールド名> は、テーブル <テーブル名> に既に存在しています。
3381	テーブル <テーブル名> には、<フィールド名> という名前のフィールドが見つかりません。
3382	フィールド <フィールド名> のサイズには、1 から 255 までの値を指定してください。
3383	フィールド <フィールド名> は削除できません。1 つ以上のリレーションシップで使われています。
3384	組み込みプロパティは削除できません。
3385	ユーザー定義プロパティでは Null 値をサポートできません。
3386	このメソッドは、プロパティ <プロパティ名> を設定してからでないと使用できません。
3388	<名前> に設定されている入力規則あるいは既定値の関数 <名前> が見つかりません。
3389	クエリーがサポートされていません。
3390	既に存在するアカウント名です。
3393	結合、グループ化、並べ替え、インデックスを実行できません。検索または並べ替える値が大きすぎます。
3394	プロパティを保存できません。このプロパティはスキーマ プロパティです。
3396	連鎖処理を実行できません。関連レコードがテーブル <テーブル名> に存在しているため、参照整合性の規則に違反します。
3397	連鎖処理を実行できません。テーブル <テーブル名> に関連レコードが存在する必要があります。
3398	連鎖処理を実行できません。テーブル <テーブル名> のキーが Null 値になります。
3399	連鎖処理を実行できません。テーブル <テーブル名> のキーが重複します。


エラー番号 3400 ～ 3499

関連項目

番号	メッセージ
3400	連鎖処理を実行できません。テーブル <テーブル名> のフィールド <フィールド名> が 2 回更新されます。
3401	連鎖処理を実行できません。フィールド <フィールド名> が Null 値になります。
3402	連鎖処理を実行できません。フィールド <フィールド名> が長さ 0 の文字列になります。
3403	連鎖処理を実行できません： <テキスト>
3404	連鎖処理を実行できません。入力された値は、<名前> に設定されている入力規則 <規則> により禁止されています。
3405	入力規則のエラー <エラー テキスト>。
3406	既定値のエラー <エラー テキスト>。
3407	サーバーの MSysConf テーブルは見つかりましたが、正しい形式のものではありません。システム管理者に問い合わせてください。
3409	インデックスまたはリレーションシップの定義で使用されているフィールド名 <フィールド名> が不正です。
3410	更新用にこのデータベースを開くことができません。
3411	エントリが不正です。フィールド <フィールド名> に入力された値が大きすぎるものであるため、テーブル <テーブル名> で指定された連鎖処理は実行できません。
3413	テーブル <テーブル名> は、マシン <マシン名> のユーザー <ユーザー名> によって使用されているため、連鎖更新は実行できません。
3414	テーブル <テーブル名> は、現在使用されているため、連鎖更新は実行できません。
3415	長さ 0 の文字列は、テキスト型またはメモ型のフィールドでしか使用できません。
3416	予約されているエラーです。
3417	アクション クエリーをデータ ソースとして使うことはできません。
3418	<テーブル名> を開くことができません。他のユーザーが、異なるネットワーク コントロール ファイルあるいは異なるロック形式を使用してテーブルを開いています。
3419	ParadoxNetStyle セクションが 3.x に設定されているため、Paradox 4.x または 5.x のテーブルを開くことができません。
3420	オブジェクトが不正であるか、設定されていません。
3421	データ型の変換エラーが発生しました。
3422	テーブルの構造を変更できません。他のユーザーがテーブルを開いています。
3423	ODBC を使用して、外部 Microsoft Access のテーブルや組み込み可能な ISAM データベースのテーブルをインポートしたり、エクスポートしたり、データベースにリンクすることはできません。
3424	データベースを作成できません。データベースの並び順の設定が不正です。
3428	Jet データベース エンジンでエラーが発生しました。データベースを修復し、最適化を実行してください。
3429	組み込み可能な ISAM ドライバのバージョンに互換性がありません。
3430	Excel ISAM ドライバの読み込み中に、OLE が初期化できませんでした。
3431	Excel 5 形式のファイルではありません。
3432	Excel 5 形式のファイルを開くことができません。
3433	ISAM Engines セクションの設定値が不正です。
3434	指定範囲を広げることはできません。
3435	ワークシートのセルを削除できません。
3436	ファイルを作成できませんでした。
3437	これ以上ワークシートに書き込めません。
3438	エクスポートされるデータが SCHEMA.INI ファイルで設定されている形式に従っていません。
3439	Word の差し込み文書をアタッチまたはインポートすることはできません。
3440	テキスト ファイルに列の指定がありません。
3441	テキスト ファイル形式のフィールド区切り記号に、桁やテキストの区切り記号と同じ記号は使用できません。
3442	テキスト ファイルの指定 <名前> で、<オプション名> オプションの設定値が不正です。
3443	固定長 <名前> の指定で、<列名> 列の列幅が指定されていません。
3444	固定長の指定 <名前> で、列幅が指定されていません。
3445	JET DLL (16 ビット MSAJT200.DLL、32 ビット MSJT2032.DLL) のバージョンが違います。Version 2.5 以降を使う必要があります。エラーが発生したアプリケーションを再セットアップしてください。
3446	Jet VBA ファイル (16 ビット VBAJET.DLL、32 ビット VBAJET32.DLL) が見つかりません。エラーが発生したアプリケーションを再セットアップしてください。
3447	Jet VBA ファイル (16 ビット VBAJET.DLL、32 ビット VBAJET32.DLL) の初期化に失敗しました。エラーが発生したアプリケーションを再セットアップしてください。
3448	OLE システム関数の呼び出しでエラーが発生しました。エラーが発生したアプリケーションを再セットアップしてください。
3449	アタッチ テーブルへの接続文字列で、国番号が指定されていません。
3464	抽出条件でデータ型が一致しません。


エラー番号 3608 ～ 3622

関連項目

番号	メッセージ
3608	インデックス化された Paradox テーブルのレコードが長すぎます。
3609	テーブル <テーブル名> には主キーが設定されていません。
3610	テーブル作成クエリーで 1 つのテーブル <テーブル名> が、基になるテーブルおよび作成されるテーブルの両方として指定されています。
3611	アタッチされているデータ ソースに対してデータ定義ステートメントを実行することはできません。
3612	サブクエリーでは、マルチレベル GROUP BY 句は使えません。
3613	アタッチ (リンク) SQL テーブル間にリレーションシップを設定することはできません。
3614	Find 系メソッドの抽出条件では、GUID は使えません。
3615	JOIN 式で型が一致しません。
3616	この ISAM では、アタッチ (リンク) テーブル内のデータを更新することはできません。
3617	この ISAM では、アタッチ (リンク) テーブル内のデータを削除することはできません。
3620	アタッチされているワークシートを表示するための Excel との接続が切断されました。Excel の実行が終了している可能性があります。
3621	共有モードで開いているテーブルのパスワードを変更することはできません。
3622	IDENTITY 列を持つ SQLServer テーブルにアクセスするときは、OpenDatabase メソッドで dbSeeChanges オプションを指定する必要があります。


レプリケーション エラー

関連項目

番号	メッセージ
3452	このレプリカでは、データベースのデザインを変更することはできません。
3453	レプリケートされているテーブルとローカル テーブルの間にリレーションシップを設定することはできません。
3455	データベースをレプリケート可能にすることができません。
3456	コンテナ <コンテナ名> 中のオブジェクト <オブジェクト名> をレプリケート可能にすることができません。
3457	レプリケート可能なオブジェクトの KeepLocal プロパティを設定することはできません。
3458	データベースの KeepLocal プロパティを設定することはできません。このプロパティは、データベース中のオブジェクトに対してのみ設定できます。
3459	データベースをレプリケート可能に設定した後で、レプリケート不可能に設定しなおすことはできません。
3460	実行しようとした操作は、レプリカを含む既存の操作と矛盾します。
3461	設定または削除しようとしたレプリケーション プロパティは参照のみ可能で、値を変更できません。
3463	DLL <ファイル名> が見つかりません。
3465	指定のディスク ドライブを読み取ることができません。
3472	パス <パス名> のディスクがいっぱいです。
3485	このデータベースはレプリケート不可能なため、このオブジェクトをレプリケート可能にすることはできません。
3486	2 つめの ReplicationID 自動番号フィールドをテーブルに追加することはできません。
3487	レプリケート可能にしようとしているデータベースを変更できません。
3488	指定した値は、レプリカ セットに含まれるレプリカの ReplicaID ではありません。
3489	必要なリソースがないため、指定したオブジェクトをレプリケート可能にすることができません。
3490	コンテナ <コンテナ名> のオブジェクト <オブジェクト名> をレプリケート可能にできないため、新しいレプリカを作成できません。
3491	データベースをレプリケート可能にする前に、排他モードで開く必要があります。
3492	レプリカのデザインを変更することはできないため、同期をとることができませんでした。
3499	レプリカのフル パスを取得できません。
3510	データの交換を実行しようとしているレプリカは、現在他のデータ交換で使われています。
3515	Jet データベース エンジンはコンピュータのシステム クロックを見つけることができませんでした。
3520	レプリカの名前または ID が、現在管理されているレプリカと一致しません。
3521	同期を開始する共通点がないため、この 2 つのレプリカの同期をとることはできません。
3526	システム オブジェクト用に指定した名前は既に使われています。
3531	イベントの待ち時間は終了しました。
3533	プロセスが終了した後も、このプロセスが使用したシステム オブジェクトが損在位します。
3545	同期をとろうとした 2 つのレプリカは、異なるレプリカ セットのものです。
3546	実行しようとしたデータ交換の種類が不正です。
3548	GUID が一致しないか、指定した GUID が見つかりません。
3549	指定したファイル名が長すぎます。
3550	GUID 列にはインデックスがありません。
3552	レジストリ パラメータの値が、指定できる最大値を超えています。
3553	GUID を作成できませんでした。
3555	レプリカ用の有効な名前はすべて使われています。
3559	デスティネーション ディスクがいっぱいなため、書き込むことができません。
3560	同期をとろうとした 2 つのレプリカは同じ ReplicaID を持っています。
3561	同期をとろうとした 2 つのレプリカは両方ともデザイン マスターです。
3566	ネットワーク I/O エラー
3569	このレプリカはレプリカ セットから論理的に削除されているため、使用できません。
3572	環境変数 TEMP で指定されているディレクトリの読み込みまたは書き込み中に、ディスク I/O エラーが発生しました。
3574	このレプリカの ReplicaID は、移動またはコピーの処理中に、再度割り当てられました。
3575	書き込みを行おうとしたディスク ドライブはいっぱいです。
3576	開こうとしたデータベースは、既に他のアプリケーションが使用しています。
3577	レプリケーションのシステム列を更新できません。
3584	メモリ不足のため、操作を完了できません。
3592	パスワードで保護されているデータベースをレプリケート可能にすることはできません。また、レプリケート可能なデータベースにパスワードを設定することはできません。
3593	複数のデータ マスターを設定できるレプリケート可能データベースを、1 つのデータ マスターしか設定できないように変更することはできません。
3594	1 つのデータ マスターしか設定できないレプリケート可能データベースを、複数のデータ マスターを設定できるように変更することはできません。
3595	レプリカのシステム テーブルの信頼性がありません。このレプリカを使うことはできません。
3605	レプリケート可能なデータベースとレプリケート不可能なデータベースの間で同期をとることはできません。データベース <データベース名> はレプリケート不可能です。
3607	削除しようとしたレプリケーション プロパティは参照のみ可能なため、削除できません。
3623	レプリケーション システム テーブル <テーブル名> は既に使われているため、開くことができません。


関連項目

データ アクセス

Error 関数

Error オブジェクト、Errors コレクション

Error ステートメント

On Error ステートメント

Resume ステートメント

トラップできるエラー

Visual Basic ヘルプ


データ (Data) コントロール

関連項目	プロパティ	メソッド	イベント

3 種類の Recordset オブジェクトの 1 つを使用して、データベースに保存されたデータにアクセスします。データ (Data) コントロールを使うと、レコード間を移動したり、レコードを連結コントロールに表示したり、操作できます。データ コントロールを使用しなければ、フォーム上に連結可能コントロールがあっても、自動的にデータをアクセスすることはできません。

構文

Data

解説

データ コントロールを使うと、コードを記述しなくてもほとんどのデータにアクセスできます。データ コントロールに連結された連結コントロールは、カレント レコードや、カレント レコードの前後のレコードの集合についても、1 つ以上のフィールドのデータを自動的に表示します。データ コントロールを使うと、カレント レコードでのすべての操作を行うことができます。

データ コントロールに異なるレコードに移動するように指示すると、すべての連結コントロールから変更内容がデータ コントロールに渡され、変更内容がデータベースに保存されます。データ コントロールは要求されたレコードに移り、カレント レコードのデータを、データを表示する連結コントロールに返します。

データ コントロールは、空のレコードセットの追加、レコードの新規追加、既存のレコードの編集と更新、ある種のエラー処理など、偶発的に発生する多くの事柄を自動的に処理します。ただし、複雑なアプリケーションでは、データ コントロールが処理できないようないくつかのエラー状況をトラップする必要があります。たとえば、権限がない、クエリーをコードの記述どおりに実行できないなど、Microsoft Jet データベース エンジンのデータベース ファイルへのアクセスに関するトラブルがあると、トラップできるエラーが発生します。ユーザーのアプリケーションのプロシージャが開始される前にエラーが発生したり、なんらかの内部エラーが発生したりすると、Error イベントが起動されます。

連結コントロール

DB リスト (DBList)、DB コンボ (DBCombo)、DB グリッド (DBGrid) の各コントロールは、データ コントロールに連結されている場合には、レコードの集合を管理できます。いずれのコントロールも、複数のレコードを一度に表示または操作できます。

チェック ボックス (CheckBox)、テキスト ボックス (TextBox)、ラベル (Label)、ピクチャ (Picture)、イメージ (Image)、リスト ボックス (ListBox)、コンボ ボックス (ComboBox) の各コントロールも連結可能で、データ コントロールが管理する Recordset オブジェクトの単一のフィールドに連結できます。マスク エディット (MaskedEdit) コントロールや 3D チェック ボックス (3DCheckBox) コントロールのように、後から追加可能な連結可能コントロールは、Professional Edition に付属しており、サード パーティ メーカーからの入手も可能です。

操作

アプリケーションを起動すると、Visual Basic はデータ コントロールのプロパティを使って選択されたデータベースを開き、Database オブジェクトおよび Recordset オブジェクトを作成します。データ コントロールの Database プロパティと Recordset プロパティを使用すると、新しく作成された Database オブジェクトと Recordset オブジェクトを参照して、連結コントロールと連結しているかどうかにかかわらず、どのオブジェクトもデータ コントロールを使用せずに操作できます。

Visual Basic が Jet データベース エンジンを使って Recordset オブジェクトを作成するとき、その動作が完了するまで他の Visual Basic の動作やイベントは発生しません。ただし、他の Windows アプリケーションは Recordset オブジェクトが作成されている間にも実行の継続を許可されます。Jet データベース エンジンが Recordset オブジェクトへデータを取得しているときにユーザーが Ctrl + Break キーを押すと、操作が中止され、さらにトラップできるエラーが発生し、データ コントロールの Recordset プロパティに Nothing が設定されます。デザイン時にもう一度 Ctrl + Break キーを押すと、デバッグ ウィンドウが表示されます。

データ コントロールを使って Recordset オブジェクトを作成した場合、または Recordset オブジェクトをコードで作成し、データ コントロールに割り当てた場合、Microsoft Jet データベース エンジンは、自動的に Recordset オブジェクトにデータを取得します。その結果、ブックマークがローカルメモリに保存されます。スナップショット タイプの Recordset オブジェクトの場合は、レコードセットのデータが保存されます。したがって、ユーザーはデータ コントロールを操作する必要はありません。また、コードで MoveLast メソッドを呼び出す必要もありません。Recordset オブジェクトを作成するために使われたページ ロックが解放されるので、他の Recordset オブジェクトから同じデータにアクセスすることができます。コードを使って作成され、データ コントロールに割り当てられていない Recordset オブジェクトの場合、Jet データベース エンジンは自動的にデータを取得しません。その場合は、コードを使って Recordset オブジェクトにデータを取得してください。

データ コントロールをマウスで操作して、レコード間を移動したり、レコードセットの先頭または末尾に移動したりできます。データ コントロールでは、マウスを使って Recordset オブジェクトの両端を超えることができません。また、データ (Data) コントロールにはフォーカスを設定できません。

妥当性検査

Validate イベントと DataChanged プロパティを使うと、データベースに書き込まれるレコードの最終的な検査を行えます。

データ アクセス オブジェクト

データ コントロールによって作成された Database、Recordset の各データ アクセス オブジェクトを、プロシージャ内で使用できます。これらのオブジェクトが持っているプロパティとメソッドを使用して、データを操作するプロシージャを記述できます。

たとえば、Recordset オブジェクトの MoveNext メソッドは、カレント レコードを次のレコードに移動します。このメソッドを呼び出すには、次のようなコードを記述します。

Data1.Recordset.MoveNext

データ コントロールからは、Jet データベース エンジン Version 2.0 が持っている 3 種類の Recordset オブジェクトのすべてにアクセスできます。レコードセットの種類を選択しない場合は、ダイナセット タイプの Recordset オブジェクトが作成されます。

注   データ コントロールの使用時に特定の Recordset オブジェクトの種類を指定するために使われる定数は、作成される Recordset オブジェクトの種類を決定する定数や、OpenRecordset メソッドを使って Recordset オブジェクトを作成するときに使われる定数とは違うものです。

特定の Recordset オブジェクトを選択するには、データ コントロールの RecordsetType プロパティを以下の値に設定します。

Recordset オブジェクトの種類	値	定数

テーブル	0	vbRSTypeTable

ダイナセット	1	(既定値) vbRSTypeDynaset

スナップショット	2	vbRSTypeSnapshot

重要   Visual Basic Version 4.0 では、データ コントロールを使って Dynaset オブジェクトの作成、操作を行えません。このため、いくつかの Dynaset オブジェクトのメソッドは、データ コントロールを使って作成した Recordset オブジェクトではサポートされていません。たとえば、ListFields、ListIndex、CreateDynaset、CreateSnapshot メソッドはサポートされていません。その他の Dynaset オブジェクトのメソッド、プロパティは、ダイナセット タイプの Recordset オブジェクトでもサポートされています。Dynaset オブジェクトで使う場合に有効なプロパティが、データ コントロールで作成した、すべての種類の Recordset オブジェクトに対して有効でないことがあります。たとえば、Sort プロパティは Dynaset オブジェクト、ダイナセット タイプの Recordset オブジェクトに対して有効ですが、テーブル タイプの Recordset オブジェクトに対して無効です。

重要   データ コントロールを使って、オプションとして、定数 dbForwardOnly のビットを設定して作成した Recordset オブジェクトを操作することはできません。

Professional Edition

データ アクセスに関する Visual Basic の Standard Edition と Professional Edition との違いは、データ アクセス オブジェクトを新規作成する機能にあります。Standard Edition では、変数を (Dim キーワードを使って) コード内のデータ アクセス オブジェクトとして宣言することはできません。つまり、データ コントロールだけが Database オブジェクトと Recordset オブジェクトを制御できます。

Visual Basic Version 4.0 Professional Edition では、新しい Recordset オブジェクトを作成し、それをデータ コントロールの Recordset プロパティに割り当てることができます。データ コントロールに接続された連結コントロールを使って、作成された Recordset オブジェクトのレコードを操作できます。連結コントロールの DataField プロパティが、作成された Recordset オブジェクトの有効なフィールド名に設定されていることを確認してください。

保存されたクエリーの実行

データ コントロールを使う場合のもう 1 つの重要なオプションとして、保存されたクエリーを実行する機能があります。あらかじめ QueryDef オブジェクトを作成しておくことで、データ コントロールによる QueryDef オブジェクトの実行が可能になります。また、QueryDef オブジェクトに保存された SQL、Connect、およびその他のプロパティを使って Recordset オブジェクトを作成できます。QueryDef オブジェクトを実行するには、データ コントロールの RecordSource プロパティに QueryDef オブジェクト名を設定し、Refresh メソッドを実行します。

保存された QueryDef オブジェクトにパラメータが含まれている場合は、Recordset オブジェクトを作成して、それをデータ コントロールに渡します。

BOF/EOF の処理

データ コントロールを使って、レコードが存在しない Recordset オブジェクトに対する処理を設定することもできます。データ コントロールの EOFAction プロパティをプログラムで変更して、レコードが存在しない Recordset オブジェクトに対して、自動的に AddNew メソッド操作を行うようにできます。

データ コントロールの Align プロパティを使うと、親フォームの上端または下端に自動的に位置を合わせることができます。親フォームのサイズが変更されると、上端と下端のどちらにある場合にも、データ コントロールの横のサイズは親フォームの幅と常に同じになるように調整されます。このプロパティにより、MDI フォーム上にデータ コントロールを配置する場合にピクチャ (Picture) コントロールで囲む必要がなくなります。


関連項目

Align プロパティ

コントロールのデータ (Data) コントロールへの連結

BOFAction、EOFAction プロパティ

連結可能コントロール

データ アクセスの概要

データ (Data) コントロールを使ってデータベースを開く

SQL を使ったデータの取得

データ (Data) コントロールでのパラメータ クエリーの使い方


データ (Data) コントロールのプロパティ

Align プロパティ

Appearance プロパティ

BackColor、ForeColor プロパティ

BOFAction、EOFAction プロパティ

Caption プロパティ

Connect プロパティ

Database プロパティ

DatabaseName プロパティ

DragIcon プロパティ

DragMode プロパティ

EditMode プロパティ

Enabled プロパティ

Exclusive プロパティ

Font プロパティ

FontBold、FontItalic、FontStrikethru、FontUnderline プロパティ

FontName プロパティ

FontSize プロパティ

Height、Width プロパティ

Index プロパティ

Left、Top プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Options プロパティ

ReadOnly プロパティ

Recordset プロパティ

RecordsetType プロパティ

RecordSource プロパティ

Tag プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ


データ (Data) コントロールのメソッド

Drag メソッド

Move メソッド

Refresh メソッド

ShowWhatsThis メソッド

UpdateControls メソッド

UpdateRecord メソッド

ZOrder メソッド


データ (Data) コントロールのイベント

DragDrop イベント

DragOver イベント

Error イベント

MouseDown、MouseUp イベント

MouseMove イベント

Reposition イベント

Resize イベント

Validate イベント


DB コンボ (DBCombo) コントロール

関連項目	プロパティ	メソッド	イベント

データ (Data) コントロールのフィールドの内容を使用して、リスト ボックス内に自動的にリストを作成します。また、別のデータ コントロールの選択されたフィールドに、データを渡すことができます。選択されたフィールドの内容は、フィールドを編集するための、データ コントロールに連結されたテキスト ボックスにコピーされます。

構文

DBCombo

解説

DB リスト (DBList) コントロール、DB コンボ コントロールには、AddItem メソッドを使わなくても、データが Recordset オブジェクトから自動的に設定されます。これは標準のリスト ボックス (ListBox) コントロールおよびコンボ ボックス (ComboBox) コントロールにはない機能です。さらに、コードを追加せずにリスト内の項目を見つけ出す自動検索機能をサポートしています。

次に、DB コンボ コントロールのプロパティの一覧を示します。これらは、リスト項目の設定と管理、および選択されたデータをデータ コントロールに連結するために使われます。

プロパティ	指定する内容

DataSource	選択が行われた場合に更新されるデータ コントロールの名前を指定します。

DataField	Recordset オブジェクト内の更新する Field オブジェクト名を指定します。Recordset オブジェクトは DataSource プロパティを使って指定します。

RowSource	リスト項目のソース データとして使うデータ コントロールの名前を指定します。

ListField	リストに表示する Recordset オブジェクト内の Field オブジェクトの名前を指定します。Recordset オブジェクトは RowSource プロパティを使って指定します。通常、Field オブジェクトにはコード番号を含むフィールドではなく、文字列を含むフィールドを指定します。たとえば、国番号ではなく国名を指定します。

BoundColumn	リストの項目が選択された場合に、DataField プロパティで指定されたフィールドにデータを返す、Recordset オブジェクトの Field オブジェクト名を指定します。Recordset オブジェクトは RowSource プロパティを使って指定します。

BoundText	BoundColumn プロパティに指定されたフィールドのテキストの値です。リストから項目を選択すると、この値が DataSource プロパティで指定されたデータ コントロールに返され、DataField プロパティで指定されたフィールドを更新します。

Text	リスト内の選択されている項目のテキストの値です。

MatchEntry	リストの検索方法を指定します。

SelectedItem	RowSource プロパティに指定された Recordset オブジェクト内の、選択されている項目のブックマークです。

VisibleCount	リストに表示されている項目数 (全部または一部) です。

VisibleItems	ブックマークの配列。配列の要素は、リストに表示されるそれぞれの項目に対応します。

DB コンボ コントロールでは、ユーザーがコントロールのテキスト ボックス部分に値を入力できます。文字を入力すると、リスト内からその値 (文字) を検索し、その項目が現在のリスト項目になります。項目が見つからない場合は、BoundText プロパティに Null 値が設定されます。

注   少なくとも 1 行のドロップダウン リストを表示できる大きさにコントロールの境界が設定されていない場合、実行時にリストは表示されません。


関連項目

コンボ ボックス (ComboBox) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールの実行

リスト ボックス (ListBox) コントロール

Recordset オブジェクト、Recordsets コレクション

UpdateRecord メソッド


DB コンボ (DBCombo) コントロールのプロパティ

Appearance プロパティ

BackColor プロパティ

BoundColumn プロパティ

BoundText プロパティ

Container プロパティ

DataChanged プロパティ

DataField プロパティ

DataSource プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Font プロパティ

ForeColor プロパティ

Height プロパティ

HelpContextID プロパティ

Index プロパティ

IntegralHeight プロパティ

Left, Top プロパティ

ListField プロパティ

Locked プロパティ

MatchedWithList プロパティ

MatchEntry プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Object プロパティ

Parent プロパティ

RowSource プロパティ

SelectedItem プロパティ

SelLength プロパティ

SelStart プロパティ

SelText プロパティ

Style プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Text プロパティ

Visible プロパティ

VisibleCount プロパティ

VisibleItems プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


DB コンボ (DBCombo) コントロールのメソッド

Drag メソッド

Move メソッド

Refill メソッド

Refresh メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


DB コンボ (DBCombo) コントロールのイベント

Change イベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント


DB リスト (DBList) コントロール

関連項目	プロパティ	メソッド	イベント

データ (Data) コントロールのフィールドの内容を使用して、データ連結リスト ボックス内に自動的にリストを作成します。また、別のデータ コントロールの選択されたフィールドに、データを渡すことができます。

構文

DBList

解説

DB リスト コントロール、DB コンボ (DBCombo) コントロールには、AddItem メソッドを使わなくても、データが Recordset オブジェクトから自動的に設定されます。これは、標準のリスト ボックス (ListBox) コントロール、およびコンボ ボックス (ComboBox) コントロールにはない機能です。さらに、コードを追加せずにリスト内の項目を見つけ出す、自動検索機能をサポートしています。

次に、DB コンボ コントロールのプロパティの一覧を示します。これらは、リスト項目の設定と管理、および選択されたデータをデータ コントロールに連結するために使われます。

プロパティ	指定内容

DataSource	選択が行われた場合に更新されるデータ コントロールの名前を指定します。

DataField	Recordset オブジェクト内の更新される Field オブジェクト名を指定します。Recordset オブジェクトは DataSource プロパティによって指定されます。

RowSource	リスト項目のソース データとして使われるデータ コントロールの名前を指定します。

ListField	リストに表示する Recordset オブジェクト内の Field オブジェクトの名前を指定します。Recordset オブジェクトは RowSource プロパティを使って指定します。通常、Field オブジェクトにはコード番号が含まれるフィールドではなく、文字列が含まれるフィールドを指定します。たとえば、国番号ではなく国名を指定します。DB リスト コントロールでは、ListField プロパティにロング バイナリ型のフィールドを指定できません。

BoundColumn	選択が行われた場合に DataField プロパティで指定したフィールドにデータが戻される Recordset オブジェクトの Field オブジェクト名を指定します。Recordset オブジェクトは RowSource プロパティを使って指定します。DB リスト コントロールでは、BoundColumn プロパティにロング バイナリ型のフィールドを指定できません。

BoundText	BoundColumn プロパティに指定されたフィールドのテキストの値です。選択が行われると、この値が DataSource プロパティで指定されたデータ コントロールに返され、DataField プロパティで指定したフィールドを更新します。

Text	リスト内の選択されている項目のテキストの値です。

MatchEntry	リストの検索方法を指定します。

SelectedItem	RowSource プロパティで指定した Recordset オブジェクト内の、選択されている項目のブックマークです。

VisibleCount	リストに表示されている項目数 (全部または一部) です。

VisibleItems	ブックマークの配列です。配列の要素は、リストに表示されるそれぞれの項目に対応します。

DB リスト コントロールでは、ロング バイナリ型フィールドを使用できません。ListField プロパティまたは BoundColumn プロパティに指定するフィールドに、ロング バイナリ型フィールドは使用できません。ロング バイナリ型フィールドを使用した場合は、リストには何も表示されず、コントロールも動作しません。

注   少なくとも 1 行のドロップダウン リストを表示できる大きさに、コントロールの境界が設定されていない場合、実行時にリストは表示されません。


関連項目

コンボ ボックス (ComboBox) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールの実行

リスト ボックス (ListBox) コントロール

Recordset オブジェクト、Recordsets コレクション

UpdateRecord メソッド


DB リスト (DBList) コントロールのプロパティ

Appearance プロパティ

BackColor プロパティ

BoundColumn プロパティ

BoundText プロパティ

DataChanged プロパティ

DataField プロパティ

DataSource プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Font プロパティ

ForeColor プロパティ

Height プロパティ

HelpContextID プロパティ

Index プロパティ

IntegralHeight プロパティ

Left, Top プロパティ

ListField プロパティ

Locked プロパティ

MatchedWithList プロパティ

MatchEntry プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Parent プロパティ

RowSource プロパティ

SelectedItem プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Text プロパティ

Visible プロパティ

VisibleCount プロパティ

VisibleItems プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


DB リスト (DBList) コントロールのメソッド

Drag メソッド

Move メソッド

Refill メソッド

Refresh メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


DB リスト (DBList) コントロールのイベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント


DB グリッド (DBGrid) コントロール

関連項目	プロパティ	メソッド	イベント

Recordset オブジェクトのレコードとフィールドを表す、一連の行と列のデータに対する操作と表示ができます。

構文

DBGrid

解説

注   Data Grid コントロール (DB グリッド コントロール) を使う前には、[カスタム コントロール] ダイアログ ボックスを使ってそのコントロールをプロジェクトに追加します。次に、[参照設定] ダイアログ ボックスを使ってデータ アクセス オブジェクト (DAO) ライブラリを登録する必要があります。これらの設定は、どちらも AUTOLOAD.VBP ファイルに保存できます。

DB グリッド コントロールとグリッド (Grid) コントロールの外観は似ていますが、DB グリッド コントロールは、その DataSource プロパティにデータ (Data) コントロールを設定し、データと列見出しをデータ コントロールの Recordset オブジェクトから自動的に設定することができます。DB グリッド コントロールは、固定幅の列の集合で、それぞれの行数は変更することができます。

DB グリッド コントロールの各セルはテキストまたはピクチャの値を保持できますが、リンク オブジェクトや埋め込みオブジェクトは保持できません。カレント セルはコードからでも、実行時にマウスか方向キーを使っても指定できます。セルは対話形式でセルに直接入力するか、プログラムを記述して編集できます。また、セルをそれぞれ選択することも行単位で選択することもできます。

テキストがセルに表示できる長さを超えると、そのテキストはセル内で折り返されます。折り返されたテキストを表示するには、セルの Column オブジェクトの Width プロパティと、場合によっては DB グリッド コントロールの RowHeight プロパティの設定値を大きくします。デザイン時には、列の幅を変更するか、Column オブジェクトのプロパティ ページで列の幅を変更すると、対話形式で列の幅を変更できます。

コントロールの列と行の数を確認するには、DB グリッド コントロールの Columns コレクションの Count プロパティと、Recordset オブジェクトの RecordCount プロパティを使います。DB グリッド コントロールには、システム リソースが許す限りの行と、約 1,700 の列を含むことができます。

セルを選択すると、ColIndex プロパティが設定されます。つまり、DB グリッド コントロールの Columns コレクションにある Column オブジェクトの 1 つが選択されます。カレント セルの内容を参照するには、Column オブジェクトの Text プロパティと Value プロパティを使います。Bookmark プロパティを使うと、カレント行のデータにアクセスできます。また、その基となる Recordset オブジェクトにもアクセスできます。デザイン時に列の幅と行の高さを設定できるので、ユーザーには見えない列を作ることもできます。さらに、実行時にユーザーが書式設定を変更できないようにすることもできます。

注   DB グリッド コントロールと Microsoft Visual Basic Version 3.0 のグリッド コントロールの間に互換性はありません。


関連項目

Bookmark プロパティ (データ アクセス)

Column オブジェクト、Columns コレクション

データ (Data) コントロール

グリッド (Grid) コントロール

Recordset オブジェクト、Recordsets コレクション

RowHeight プロパティ

RowSource プロパティ

SelBookmarks コレクション


DB グリッド (DBGrid) コントロールのプロパティ

Align プロパティ

AllowAddNew プロパティ

AllowDelete プロパティ

AllowRowSizing プロパティ

AllowUpdate プロパティ

BackColor プロパティ

Bookmark プロパティ

BorderStyle プロパティ

Caption プロパティ

Col プロパティ

ColumnHeaders プロパティ

Columns プロパティ

Container プロパティ

DataMode プロパティ

DataSource プロパティ

DefColWidth プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

FirstRow プロパティ

Font プロパティ

ForeColor プロパティ

HeadFont プロパティ

HeadLines プロパティ

Height プロパティ

HelpContextID プロパティ

Index プロパティ

Left プロパティ

LeftCol プロパティ

Name プロパティ

Negotiate プロパティ

Object プロパティ

Parent プロパティ

RecordSelectors プロパティ

Row プロパティ

RowDividerStyle プロパティ

RowHeight プロパティ

ScrollBars プロパティ

SelBookmarks プロパティ

SelEndCol プロパティ

SelStartCol プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Top プロパティ

Visible プロパティ

VisibleCols プロパティ

VisibleCount プロパティ

VisibleItems プロパティ

VisibleRows プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


DB グリッド (DBGrid) コントロールのメソッド

ColContaining メソッド

Drag メソッド

GetBookmark メソッド

Move メソッド

Rebind メソッド

Refresh メソッド

RowBookmark メソッド

RowContaining メソッド

RowTop メソッド

Scroll メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


DB グリッド (DBGrid) コントロールのイベント

AfterColUpdate イベント

AfterDelete イベント

AfterInsert イベント

AfterUpdate イベント

BeforeColUpdate イベント

BeforeDelete イベント

BeforeInsert イベント

BeforeUpdate イベント

Change イベント

Click イベント

ColResize イベント

DblClick イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

HeadClick イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント

RowColChange イベント

RowLoaded イベント

RowResize イベント

Scroll イベント

SelChange イベント

UnboundAddData イベント

UnboundDeleteRow イベント

UnboundReadData イベント

UnboundWriteData イベント


SelBookmarks コレクション

関連項目	プロパティ	メソッド

SelBookmarks コレクションは、DB グリッド (DBGrid) コントロールで選択されているそれぞれの行に対応する、ブックマークを格納します。

構文

SelBookmarks

解説

DB グリッド コントロールの SelBookmarks プロパティを使うと、SelBookmarks コレクションが返されます。ブックマークは、選択されている行の順序で、SelBookmarks コレクションに追加されます。DB グリッド コントロールの現在のレコード ポインタに再び戻るには、SelBookmarks コレクションで選択されているブックマークの 1 つを、Bookmark プロパティに設定します。

Add メソッドを使って、SelBookmarks コレクションにブックマークを追加します。ブックマークを SelBookmarks コレクションに追加すると、DB グリッド コントロールに、ブックマークが選択された状態で表示されます。

ブックマークを SelBookmarks コレクションから削除するには、Remove メソッドを使います。ブックマークを SelBookmarks コレクションから削除すると、DB グリッド コントロールに、ブックマークが選択されていない状態で表示されます。

SelBookmarks コレクションは、Add メソッド、Remove メソッド、および Count プロパティをサポートしていす。これらのメソッドとプロパティを使って、DB グリッド コントロールで選択されているリストを操作することができます。たとえば、コードから Add メソッドを呼び出して、追加された項目を選択したり、Count プロパティを使って、選択されている項目の総数を調べることができます。


関連項目

Bookmark プロパティ (データ アクセス)

Column オブジェクト、Columns コレクション

DB グリッド (DBGrid) コントロール

GetBookmark メソッド

RowBookmark メソッド

SelChange イベント

SelBookmarks プロパティ

SelEndCol、SelStartCol、SelEndRow、SelStartRow プロパティ


SelBookmarks のメソッド

Add メソッド (DB グリッド)

Item メソッド

Remove メソッド


SelBookmarks のプロパティ

Count プロパティ


Column オブジェクト、Columns コレクション

関連項目	プロパティ	メソッド

Column オブジェクトは DB グリッド (DBGrid) コントロール内の列を表します。

Columns コレクションは DB グリッド コントロールの保存されている Column オブジェクトをすべて含みます。

構文

Column

Columns

解説

列を操作するには、Column オブジェクトと、そのメソッドおよびプロパティを使います。たとえば、次のようなことができます。

Count プロパティを使って、DB グリッド コントロールの列の総数を取得する。

Columns コレクションの Add メソッドを使って、DB グリッド コントロールに列を追加する。

Columns コレクションの Remove メソッドを使って、DB グリッド コントロールから列を削除する。

Column オブジェクトの Value プロパティを使って、列の値の取得または設定を行う。

DB グリッド コントロールの ColIndex プロパティを使って、現在選択されている Column オブジェクトを調べる。


関連項目

DB グリッド (DBGrid) コントロール


Column オブジェクト、Columns コレクションのプロパティ

凡例

Alignment プロパティ

AllowSizing プロパティ

Caption プロパティ

ColIndex プロパティ

Count プロパティ

DataField プロパティ

DefaultValue プロパティ

DividerStyle プロパティ

Left、Top プロパティ

Locked プロパティ

NumberFormat プロパティ

Text プロパティ

Value プロパティ

Visible プロパティ

Width プロパティ


Column オブジェクト、Columns コレクションのメソッド

凡例

Add メソッド (DB グリッド)

CellText メソッド

CellValue メソッド

Item メソッド

Remove メソッド


Error イベント

関連項目	例	対象

Visual Basic のコードがまったく実行されていない場合に、データ アクセス エラーが発生したときにのみ発生します。

構文

Private Sub object_Error ([index As Integer,] dataerr As Integer, response As Integer)

Error イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

dataerr	エラー番号が渡されます。

response	エラー発生時の対応を示す番号を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 response の設定値は次のとおりです。

定数	値	内容

vbDataErrContinue	0	実行を継続します。

vbDataErrDisplay	1	(既定値) エラー メッセージを表示します。

解説

これらの定数は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

実行時エラーのほとんどはコード内に作成したエラー処理機能で処理しますが、次のような場合、コードがまったく実行されていないときでも実行時エラーが発生することがあります。

ユーザーがデータ (Data) コントロールのボタンをクリックしたとき。

データ コントロールが自動的にデータベースを開き、Form_Load イベントの後で Recordset オブジェクトをロードするとき。

カスタム コントロールが MoveNext メソッド、AddNew メソッド、または Delete メソッドを実行するとき。

以上の操作のいずれかがエラーになると、Error イベントが発生します。

Error イベント プロシージャをコード内に作成しなかった場合は、エラーに関連するメッセージが表示されます。


Error イベントの対象

データ (Data) コントロール


関連項目

AddNew メソッド

データ アクセスの概要

データ (Data) コントロール

Delete メソッド

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

Recordset オブジェクト、Recordsets コレクション

トラップできるエラー (データ アクセス)


Error イベントの例

次のプログラムは、データ (Data) コントロールの DatabaseName プロパティで指定されたデータベースが見つからないときに [ファイルを開く] ダイアログ ボックスを表示します。

Private Sub Data1_Error(DataError As Integer, Response As Integer)

Select Case DataError

Case 3024	' データベース ファイルが見つからない

CMDialog1.Action = 1	' ときは [ファイルを開く] ダイアログ

...	' ボックスを表示します。

End Select

End Sub


Reposition イベント

関連項目	例	対象

レコードがカレント レコードになったときに発生します。

構文

Private Sub object.Reposition ([index As Integer])

Reposition イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

データ (Data) コントロールがロードされると、その Recordset オブジェクトの先頭のレコードがカレント レコードになり、Reposition イベントが発生します。また、データ コントロールのいずれかのボタンをクリックしてレコード間を移動するか、MoveNext メソッドなどの Movexxx メソッド、FindFirst メソッドなどの Findxxx メソッドを使うか、カレント レコードを変更するその他のプロパティやメソッドを使って、カレント レコードが変更されると必ず Reposition イベントが発生します。

反対に、別のレコードに移動する前には Validate イベントが発生します。

Reposition イベントは、カレント レコードの内容に基づいて計算を行ったり、常に最初のカレント レコードのデータをフォームに表示したりするために使うことができます。


Reposition イベントの対象

データ (Data) コントロール


関連項目

AbsolutePosition プロパティ

データ アクセスの概要

DataChanged プロパティ

Error イベント

FindFirst、FindLast、FindNext、FindPrevious メソッド

Move メソッド (データ アクセス)

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

PercentPosition プロパティ

Recordset オブジェクト、Recordsets コレクション

Validate イベント


Reposition イベントの例

次のプログラムは、カレント レコードのデータに基づいてリスト ボックス (ListBox) コントロールの選択項目を変更します。

' 宣言セクションに記述します。

Dim Loading As Integer

Private Sub Form_Load ()

Data1.DatabaseName = "C:\VB\BIBLIO.MDB"

Data1.RecordSource = "SELECT DISTINCT State FROM Publishers"

Loading = True	' パブリック変数の設定します。

' データベースとレコードセットを開きます。

Do While Not Data1.Recordset.EOF

If Not IsNull(Data1.Recordset(0)) Then	' 空白でなければ、

List1.AddItem Data1.Recordset(0)	' リストに追加します。

End If

Data1.Recordset.MoveNext	' 次のレコードに移動します。

Loop

Data1.RecordSource = "Publishers"	' RecordSource プロパティを変更します。

Data1.Refresh	' レコードセットを再構築します。

Text1.DataField = "State"	' テキスト ボックスのフィールドを設定します。

Loading = False	' パブリック変数をオフにします。

End Sub

Private Sub Data1_Reposition ()

Dim I As Integer

If Loading Then Exit Sub	' パブリック変数が設定されていたら、

For I = 0 To List1.ListCount - 1	' リスト ボックスの項目を調べます。

If List1.List(I) = Data1.Recordset("State") Then

List1.ListIndex = I	' 一致する項目を選択します。

Exit For	' リストの検索を停止します。

End If

Next I

End Sub


Validate イベント

関連項目	例	対象

別のレコードがカレント レコードになる前、Update メソッド (UpdateRecord メソッドを使ってデータを保存する場合を除く) が実行される前、Delete、Unload、または Close の各メソッドの操作が実行される前に発生します。

構文

Private Sub object_Validate ([ index As Integer,] action As Integer, save As Integer)

Validate イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

action	イベントを発生させた操作を示す整数が渡されます。渡される値については、次の「設定値」を参照してください。

save	連結されているデータが変更されたかどうかを示すブール式が渡されます。渡される値については、次の「設定値」を参照してください。

設定値

引数 action の設定値は次のとおりです。

定数	値	内容

vbDataActionCancel	0	Sub プロシージャが終了するときに、操作をキャンセルします。

vbDataActionMoveFirst	1	MoveFirst メソッド。

vbDataActionMovePrevious	2	MovePrevious メソッド。

vbDataActionMoveNext	3	MoveNext メソッド。

vbDataActionMoveLast	4	MoveLast メソッド。

vbDataActionAddNew	5	AddNew メソッド。

vbDataActionUpdate	6	UpdateRecord メソッド以外の Update メソッドの操作。

vbDataActionDelete	7	Delete メソッド。

vbDataActionFind	8	Find メソッド。

vbDataActionBookmark	9	Bookmark プロパティが設定されました。

vbDataActionClose	10	Close メソッド。

vbDataActionUnload	11	フォームのアンロード。

引数 save の設定値は次のとおりです。

設定	内容

True	連結されたデータが変更されました。

False	連結されたデータは変更されていません。

解説

これらの定数は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

引数 save は、Validate イベント プロシージャが呼び出された時点では､連結しているデータが変更されたかどうかを示しています。コピー バッファ内のデータが変更されても、この引数は偽 (False) のままです。このイベントを終了するときに引数 save を真 (True) に設定すると、このイベントの終了後に Edit メソッドと UpdateRecord メソッドが実行されます。UpdateRecord メソッドによって保存されるのは、連結コントロール、または DataChanged プロパティが真 (True) に設定されているコピー バッファからのデータだけです。

このイベントは、連結コントロールが変更されていない場合や、存在しない場合にも発生します。このイベントを使うと、値の変更やデータの更新、保存ができます。さらに、イベントを発生させた操作を中止して別の操作に置き換えることもできます。

操作を別の操作に変更するには、引数 action を変更します。変更できるのは、Movexxx メソッドと AddNew メソッドです。これらのメソッドは自由に置換可能で、任意の Move メソッドを AddNew メソッドやその他の Movexxx メソッドに、AddNew メソッドを任意の Movexxx メソッドに変更できます。AddNew メソッドを呼び出しているときに、MoveNext メソッドを実行し、次に別の AddNew メソッドを実行して EditMode プロパティを調べると、Edit メソッドまたは AddNew メソッドの操作が処理かどうかを調べることができます。AddNew メソッドまたは Movexxx メソッドを他の操作に変更しようとすると、無視されるかトラップできるエラーが発生します。任意の操作を中止するには、引数 action を 0 に設定します。

Validate イベント プロシージャ内で、DataChanged プロパティが真 (True) に設定されている連結コントロールのデータを調べて、DataChanged プロパティを偽 (False) に設定すると、データをデータベースに保存しないようにすることができます。

このイベントの発生中は、基になっている Recordset オブジェクトに対してどのようなメソッド (MoveNext メソッドなど) も実行できません。


Validate イベントの対象

データ (Data) コントロール


関連項目

AddNew メソッド

Bookmark プロパティ (データ アクセス)

Close メソッド

データ アクセスの概要

データ (Data) コントロール

Delete メソッド

Edit メソッド

EditMode プロパティ

FindFirst、FindLast、FindNext、FindPrevious メソッド

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

Recordset オブジェクト、Recordsets コレクション

Update メソッド (データ アクセス)

UpdateRecord メソッド


AfterColUpdate イベント

関連項目	例	対象

データが DB グリッド (DBGrid) コントロール内のセルからコントロールのコピー バッファに移動した後に発生します。

構文

Private Sub object_AfterColUpdate ([index As Integer,] colindex As Integer)

AfterColUpdate イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

colindex	コントロールの列を表す整数が渡されます。

解説

Tab キーを押して同じ行の別の列に移動したり、Enter キーを押したり、コントロールがフォーカスを失うなど、ユーザーが DB グリッド コントロールの 1 つのセルでの編集を終了すると、BeforeColUpdate イベントが発生します。このイベント中に取り消しが行なわれない場合は、そのセルの内容がコントロールのコピー バッファに移され、その後に AfterColUpdate イベントが発生します。

AfterColUpdate イベントは、BeforeColUpdate イベントの引数 cancel が真 (True) に設定されていない場合だけ、BeforeColUpdate イベントの後に発生します。

AfterColUpdate イベント プロシージャが起動された時点で、セルのデータが既にコントロールのコピー バッファに移動しているので、それを取り消すことはできません。ただし、データが Recordset オブジェクトにコミットされる前に別の更新処理を行うことはできます。


関連項目

BeforeColUpdate イベント

Change イベント

ColIndex プロパティ

DB グリッド (DBGrid) コントロール

RowColChange イベント


AfterColUpdate イベントの対象

DB グリッド (DBGrid) コントロール


AfterColUpdate イベントの例

次のプログラムでは、1 列の更新を行い、その結果を別の列に保存するときに照合を行います。

Private Sub DataGrid1_AfterColUpdate (ColIndex As Integer)

If ColIndex = 1 Then

Data1.Recordset.FindFirst "PubId = " _

 & DataGrid1.Columns(1).Value

If Not Data1.Recordset.NoMatch Then

DataGrid1.Columns(2).Value = _

 Data1.Recordset.Fields("Publisher")

Else

DataGrid1.Columns(2).Value = "No Match"

End If

End If

End Sub


AfterDelete イベント

関連項目	例	対象

DB グリッド (DBGrid) コントロール内で選択された 1 つのレコードを、ユーザーが削除したときに発生します。

構文

Private Sub object_AfterDelete ([index As Integer,] colindex As Integer)

AfterDelete イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

colindex	列を表す整数が渡されます。

解説

DB グリッド コントロールで、1 つのレコード セレクタを選択してから Del キーまたは Ctrl +  X キーを押すと、選択している行が削除されます。レコードが削除される前には、BeforeDelete イベントが発生し、行を削除すると AfterDelete イベントが発生します。削除される対象として選択された行の内容は、SelBookmarks プロパティを介して取得できるコレクション内にあります。


関連項目

BeforeColUpdate イベント

BeforeDelete イベント

SelBookmarks プロパティ


AfterDelete イベントの対象

DB グリッド (DBGrid) コントロール


AfterDelete イベントの例

次のプログラムでは、メッセージを表示して、レコードが正常に削除されたことを知らせます。

Private Sub DataGrid1_AfterDelete ()

MsgBox "レコードは正常に削除されました。"

End Sub


AfterInsert イベント

関連項目	例	対象

ユーザーが、DB グリッド (DBGrid) コントロールに新しいレコードを挿入した後に発生します。

構文

Private Sub object_AfterInsert (index As Integer)

AfterInsert イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

ユーザーがコントロールの最後の行で新しいレコードを選択し、セルの 1 つに 1 文字入力すると、BeforeInsert イベントが発生し、続いて BeforeUpdate イベント、AfterUpdate イベント、AfterInsert イベントが発生します。

AfterInsert イベントが発生した時点で、レコードは既にデータベースに追加されています。新しいレコードにアクセスする場合は、Bookmark プロパティを使います。

AfterInsert イベントを取り消すことはできません。

AfterInsert イベント プロシージャを使うと、他のテーブルの更新、または他のコントロールに対する更新後の処理を行うことができます。


関連項目

AfterUpdate イベント

BeforeInsert イベント

BeforeUpdate イベント


AfterInsert イベントの対象

DB グリッド (DBGrid) コントロール


AfterInsert イベントの例

次のプログラムでは、ユーザーがグリッド内のある列に値を入力したときに、関連するテーブルにデータ項目を作成します。

Private Sub DataGrid1_AfterInsert ()

If DataGrid1.Columns(1).Value <> "" Then

Data2.Recordset.AddNew

Data2.Recordset.Fields("PubId") = DataGrid1.Columns(1).Value

Data2.Recordset.Update

End If

End Sub


AfterUpdate イベント

関連項目	例	対象

変更されたデータが DB グリッド (DBGrid) コントロールからデータベースに書き込まれた後に発生します。

構文

Private Sub object_AfterUpdate (index As Integer)

AfterUpdate イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

別の列に移動するか、Recordset オブジェクトの Update メソッドを実行すると、データはコントロールのコピー バッファからデータ (Data) コントロールのコピー バッファに移され、さらにデータベースに書き込まれます。この書き込み処理が完了すると、AfterUpdate イベントが発生します。

更新されたレコードにアクセスするときは、DB グリッド コントロールの Bookmark プロパティを使います。

AfterUpdate イベントが発生するのは、BeforeUpdate イベントの後で、コントロールの LostFocus イベント、または、次のタブ オーダーのコントロールの GotFocus イベントが発生する前です。このイベントは、コントロールが連結されていない場合でも発生します。イベントを取り消すことはできませんが、他の更新処理は実行できます。

Change イベントとは異なり、このイベントはコードを使ってコントロールやレコード内のデータを変更した場合には発生しません。


関連項目

BeforeColUpdate イベント

BeforeInsert イベント

BeforeUpdate イベント

Change イベント

GotFocus イベント

LostFocus イベント


AfterUpdate イベントの対象

DB グリッド (DBGrid) コントロール


AfterUpdate イベントの例

次のプログラムでは、グリッド内でなんらかの変更が行われたときにラベルを更新します。

Private Sub DataGrid1_AfterUpdate ()

Label1.Caption = "最後の変更日時 : " & Format$(Now, "Long Date")

End Sub


BeforeColUpdate イベント

関連項目	例	対象

セル内の編集が完了した後、データがセルから DB グリッド (DBGrid) コントロールのコピー バッファに移される前に発生します。

構文

Private Sub object_BeforeColUpdate ([ index As Integer,] colindex As Integer, oldvalue As Variant, cancel As Integer)

BeforeColUpdate イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

colindex	列を表す整数が渡されます。

oldvalue	変更前のセルの内容を含む値が渡されます。

cancel	変更を行うかどうかを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 cancel の設定値は次のとおりです。

設定値	内容

True	変更を取り消します。セルの内容を引数 oldvalue に戻し、コントロールにフォーカスを戻します。

False	(既定値) 変更を継続し、フォーカスを他のコントロールに移動できるようにします。

解説

引数 oldvalue によって指定されるデータは、ユーザーが Tab キーを押して同じ行の別の列に移動したり、Enter キーを押したり、他のコントロールにフォーカスを移動したりして、セル内の編集を完了した時点で、セルからコントロールのコピー バッファに移されます。データがセルからコントロールのコピー バッファにコミットされる前に BeforeColUpdate イベントが発生します。このイベントによって、アプリケーションはグリッドのセルがコントロールのコピー バッファに移される前に、それぞれのセルの内容を調べることができます。

このイベント プロシージャで引数 cancel を真 (True) に設定すると、セルの内容は変更前の値に戻され、フォーカスはコントロール上にとどまり、AfterColUpdate イベントは発生しません。

セルの内容を引数 oldvalue の値に戻し、ユーザーがフォーカスをセルから移動することを許可する場合は、次に示すように、引数 cancel に偽 (False) を代入し、セルに引数 oldvalue の値を代入します。

Cancel = False

DBGrid1.Columns(ColIndex).Value = OldValue

AfterColUpdate イベントは、BeforeColUpdate イベントの後に発生します。

引数 cancel を真 (True) に設定すると、データがコントロールのコピー バッファに確実に戻されたことをアプリケーションが確認するまで、ユーザーがコントロールからフォーカスを移動できなくなります。


関連項目

AfterColUpdate イベント

AfterUpdate イベント

BeforeInsert イベント

BeforeUpdate イベント

ColIndex プロパティ

DB グリッド (DBGrid) コントロール


BeforeColUpdate イベントの対象

DB グリッド (DBGrid) コントロール


BeforeColUpdate イベントの例

次のプログラムでは、ユーザーが入力した値がある範囲内にあることを確認し、それ以外の場合は更新を無効にします。

Private Sub DataGrid1.BeforeColUpdate (ColIndex As Long, OldValue As Variant, Cancel As Integer)

If ColIndex = 1 Then

If DataGrid1.Columns(1).Value < Now Then

Cancel = True

MsgBox "今日以降の日付を入力してください。"

End If

End If

End Sub


BeforeDelete イベント

関連項目	例	対象

DB グリッド (DBGrid) コントロールで選択された 1 つのレコードが削除される前に発生します。

構文

Private Sub object_BeforeDelete ([index As Integer,] cancel As Integer)

BeforeDelete イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

cancel	1 つのレコードを削除するかどうかを表すブール式です。設定する値については、次の「設定値」を参照してください。

設定値

引数 cancel の設定値は次のとおりです。

設定値	内容

True	レコードを削除せずに、フォーカスをコントロールに残します。

False	(既定値) レコードの削除を続行し、フォーカスを他のコントロールに移動できるようにします。

解説

ユーザーがコントロール内で 1 つのレコード セレクタを選択してから Del キーまたは Ctrl + X キーを押すと、選択された行が削除される前に BeforeDelete イベントが発生します。

行が削除されると、AfterDelete イベントが発生します。削除される対象として選択された行は、SelBookmarks プロパティを使用して取得できるコレクション内にあります。

このイベント プロシージャで引数 canceI を真 (True) に設定すると、選択された行は削除されません。

1 つ以上の行が選択されると、“複数の行を削除することはできません。”というエラー メッセージが表示されます。


関連項目

AfterDelete イベント

AfterUpdate イベント

BeforeInsert イベント

BeforeUpdate イベント


BeforeDelete イベントの対象

DB グリッド (DBGrid) コントロール


BeforeDelete イベントの例

次のプログラムでは、グリッド内での削除を確認するメッセージを表示します。

Private Sub DataGrid1_BeforeDelete (Cancel As Integer)

Dim mResult As Integer

mResult = MsgBox("レコード" & DataGrid1.SelectedRows & "を削除しますか。" _

 & DataGrid1.SelectedRows &  " record?", _

 vbYesNo \ vbQuestion, "削除時の確認")

If mResult = vbNo Then Cancel = True

End Sub


BeforeInsert イベント

関連項目	例	対象

DB グリッド (DBGrid) コントロールに、新しいレコードが挿入される前に発生します。

構文

Private Sub object_BeforeInsert ([ index As Integer,] cancel As Integer)

BeforeInsert イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

cancel	レコードを追加するかどうかを表すブール式です。設定する値については、次の「設定値」を参照してください。

設定値

引数 cancel の設定値は次のとおりです。

設定値	内容

True	新しいレコードを追加せずに、フォーカスをコントロールに残します。

False	(既定値) コピーを続行してフォーカスを他のコントロールに移動できるようにします。

解説

ユーザーが DB グリッド コントロールの行の最後で新しいレコードを選択し、セルの 1 つに 1 文字入力すると、BeforeInsert イベントが発生し、続いて BeforeUpdate イベント、AfterUpdate イベント、AfterInsert イベントが発生します。

このイベント プロシージャで引数 canceI を真 (True) に設定すると、行は挿入されず、セルはクリアされます。

BeforeInsert イベントが発生した時点では、レコードはまだデータベースに挿入されていません。新しいレコードは、このイベント プロシージャが終了するまで DB グリッド コントロールのコピー バッファ内にあります。

AfterInsert イベントが終了すると、DB グリッド コントロールの新規レコード行は再初期化され、追加されたレコードが DB グリッド コントロールの最後の行になります。


関連項目

AfterDelete イベント

AfterInsert イベント

AfterUpdate イベント

BeforeUpdate イベント


BeforeInsert イベントの対象

DB グリッド (DBGrid) コントロール


BeforeInsert イベントの例

次のプログラムでは、レコードの追加を確認するメッセージを表示します。

Private Sub DataGrid1_BeforeInsert (Cancel As Integer)

Dim mResult As Integer

mResult = MsgBox("確認: 新しいレコードを追加しますか？", _

 vbYesNo And vbQuestion, "Confirmation")

If mResult = vbNo Then Cancel = True

End Sub


BeforeUpdate イベント

関連項目	例	対象

データが、DB グリッド (DBGrid) コントロールのコピー バッファから移される前に発生します。

構文

Private Sub object_BeforeUpdate ([index As Integer,] cancel As Integer)

BeforeUpdate イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

cancel	データをコピーするかどうかを表すブール式です。設定する値については、次の「設定値」を参照してください。

設定値

引数 cancel の設定値は次のとおりです。

設定値	内容

True	データをコピーせずに、フォーカスをコントロールに残します。

False	(既定値) コピー操作を続行し、フォーカスを他のコントロールに移動できるようにします。

解説

別の行に移動するか、Recordset オブジェクトの Update メソッドが実行されると、データはコントロールのコピー バッファからデータ (Data) コントロールのコピー バッファに移され、データベースに書き込まれます。

データが DB グリッド コントロールのコピー バッファからデータ コントロールのコピー バッファに移される直前に BeforeUpdate イベントが発生します。コピー操作が取り消されなければ、データはデータ コントロールのコピー バッファに返され、データベースに書き込まれた後に AfterUpdate イベントが発生します。更新されたレコードにアクセスする場合は、DB グリッド コントロールの Bookmark プロパティを使います。

BeforeUpdate イベント プロシージャで引数 cancel を真 (True) に設定すると、フォーカスはコントロール上にとどまり、AfterUpdate イベントや LostFocus イベントは発生せず、レコードはデータベースに保存されません。

BeforeUpdate イベントは、コントロールの AfterUpdate イベントまたは LostFocus イベントの前、さらに次のタブ オーダーのコントロールの GotFocus イベントの前に発生します。

このイベントは、コントロールが連結されていない場合にも発生します。

Change イベントとは異なり、このイベントはコードを使ってコントロールやレコード内のデータを変更した場合には発生しません。

このイベントを使うと、ユーザーが連結コントロールのレコードの変更内容をデータ コントロールのコピー バッファにコミットする前にデータを確認できます。引数 cancel を真 (True) に設定すると、データが正常にデータ コントロールのコピー バッファに移されたことをアプリケーションが確認するまで、ユーザーはコントロールからフォーカスを移動できなくなります。


関連項目

AfterUpdate イベント

Change イベント

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

GotFocus イベント

LostFocus イベント


BeforeUpdate イベントの対象

DB グリッド (DBGrid) コントロール


BeforeUpdate イベントの例

次のプログラムでは、メッセージを表示して、グリッドを更新する前に最初の列に値を入力するようにユーザーに通知します。

Private Sub DataGrid1_BeforeUpdate (Cancel As Integer)

If DataGrid1.Columns(1).Value = "" Then

MsgBox "最初の列に値を入力してください。"

Cancel = True

End If

End Sub


ColResize イベント

関連項目	例	対象

ユーザーが DB グリッド (DBGrid) コントロールの列の幅を変更した場合に、Paint イベントの前に発生します。

構文

Private Sub object_ColResize ([ index As Integer,] colindex As Integer, cancel As Integer)

ColResize イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

colindex	列を表す整数が渡されます。

cancel	列のサイズを変更するかどうかを表すブール式です。設定する値については、次の「設定値」を参照してください。

設定値

引数 cancel の設定値は次のとおりです。

設定値	内容

True	変更を取り消し、列の幅を元に戻して、このイベントの後で Paint イベントが発生しないようにします。

False	(既定値) 列幅を変更し、それに続いて Paint イベントを発生させます。

解説

ユーザーが列の幅を変更すると、ColResize イベントが発生します。このイベント プロシージャでは、変更の受け入れ、変更する列の幅の変更、または変更の完全な取り消しが可能です。

引数 cancel を真 (True) に設定すると、列の幅は元に戻され、Paint イベントは発生しません。変更する列幅を異なる値にしたいときは、Column.Width プロパティを設定します。

イベント プロシージャ内で Refresh メソッドを実行すると、引数 cancel が真 (True) に設定されている場合でも、コントロールが再描画されます。


関連項目

ColIndex プロパティ

Paint イベント

RowResize イベント

Height、Width プロパティ


ColResize イベントの対象

DB グリッド (DBGrid) コントロール


ColResize イベントの例

次のプログラムでは、ユーザーが最初の列の幅を変更すると、すべての列の幅を最初の列と同じ幅に合わせます。

Private Sub DataGrid1_ColResize (ColIndex As Integer, Cancel As Integer)

Dim nCol As Column

If ColIndex = 1 Then

For Each nCol In DataGrid1.Columns

nCol.Width = DataGrid.Columns(1).Width

Next

End If

End Sub


HeadClick イベント

関連項目	例	対象

ユーザーが、DB グリッド (DBGrid) コントロールの特定の列の見出し部分をクリックすると発生します。

構文

Private Sub object_HeadClick ([ index As Integer,] colindex As Integer)

HeadClick イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

colindex	列を示す整数が渡されます。

解説

このイベントを使うと、選択した列に基づいて Recordset オブジェクトを並べ直すような操作を行うことができます。


関連項目

Click イベント

ColIndex プロパティ

Recordset プロパティ


HeadClick イベントの対象

DB グリッド (DBGrid) コントロール


HeadClick イベントの例

次のプログラムでは、ユーザーがクリックした列に基づいて、データ (Data) コントロールのレコード ソースの並べ替えを行います。

Private Sub DataGrid1_HeadClick (ColIndex As Integer)

Data1.RecordSource = "Select * From Publishers Order By " & _

 DataGrid1.Columns(ColIndex).DataField

Data1.Refresh

End Sub


RowLoaded イベント

関連項目	対象

DB グリッド (DBGrid) コントロールに、データベースから行がロードされたときに発生します。

構文

Private Sub object_RowLoaded ([ index As Integer,] bookmark As String)

RowLoaded イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます 。

bookmark	ロードされた行のブックマークを表す文字列式が渡されます。

解説

このイベントを使うと、レコードがロードされてから、非連結フィールドへの既定値の入力やその他の操作を、コードで行うことができます。


関連項目

DB グリッド (DBGrid) コントロール


RowLoaded イベントの対象

DB グリッド (DBGrid) コントロール


RowResize イベント

関連項目	例	対象

ユーザーが DB グリッド (DBGrid) コントロールの行の高さを変更したとき、Paint イベントの前に発生します。

構文

Private Sub object_RowResize ([ index As Integer,] cancel As Integer)

RowResize イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

cancel	変更を取り消すかどうかを表すブール式です。設定する値については、次の「設定値」を参照してください。

設定値

引数 cancel の設定値は次のとおりです。

設定値	内容

True	変更を取り消し、行の高さを元に戻して、Paint イベントが発生しないようにします。

False	(既定値) 行の高さを変更し、それに続いて Paint イベントを発生させます。

解説

DB グリッド コントロールの行の高さは、マウスを使って変更できます。ユーザーが高さを変更すると、RowResize イベントが発生します。このイベント プロシージャでは、変更の受け入れ、変更する行の高さの変更、または変更の完全な取り消しが可能です。

コントロール内のすべての行の高さは、DB グリッド コントロールの RowHeight プロパティの設定によって決まります。

引数 cancel を真 (True) に設定すると、行は元の高さに戻され、Paint イベントは発生しません。変更する行の高さを変更するときは、RowHeight プロパティを設定します。

イベント プロシージャ内で Refresh メソッドを実行すると、引数 cancel が真 (True) に設定されている場合でも、コントロールは再描画されます。


関連項目

ColWidth プロパティ

Paint イベント

RowHeight プロパティ


RowResize イベントの対象

DB グリッド (DBGrid) コントロール


RowResize イベントの例

次のプログラムでは、グリッドの高さを調整して、グリッド内に最低でも 5 行表示されるようにします。

Private Sub DataGrid1_RowResize (Cancel As Integer)

If DataGrid1.VisibleRows < 5 Then Cancel = True

End Sub


データベースの作成

関連項目

ここでは、データベースをコードで作成する方法について説明します。

データベース ファイルには、複数のデータ アクセス オブジェクトを含めることができます。データ アクセス オブジェクトには、他のオブジェクトやオブジェクトのコレクションを含めることができるオブジェクトがあります。データベースを作成する前に、データベースにどのような情報を格納するか、その情報を格納し、検索するためにはどのような種類のテーブル、フィールド、およびインデックスが必要か、について具体的な方針をたてておく必要があります。

データ マネージャ

データベースの作成や修正をできるだけ簡単に実行するには、Microsoft Access またはデータ マネージャを使います。データ マネージャを開くには、[アドイン] - [データ マネージャ] コマンドを選択します。

外部 ISAM データベース

外部データベースとは、実際のデータが、Microsoft Jet データベース (.MDB ファイル) ではなく、他のファイルまたはデータベース管理システムに格納されているデータベースです。多くの場合、外部 ISAM データベースはディスク内の固有のディレクトリに格納されます。したがって、新しい ISAM FoxPro データベースを作成するには、Windows のファイル マネージャまたは MkDir ステートメントを使って新しいディレクトリを作成します。このデータベースを開くには、ディレクトリのパスをデータベース名として指定します。個々のテーブルは、テーブルのファイル名を使って参照します。

外部 ODBC データベース

Jet データベース エンジンは、外部 ODBC データベースを作成できません。外部 ODBC データベースの作成は、ユーザーのアプリケーションから SQL パススルーのオプションを指定し、Execute メソッドを使って実行できます。Microsoft SQL Server のインストールでは、システム管理者 (SA) ユーザーは OpenDatabase メソッドを使って Master データベースを SA パスワードで開き、必要な Transact SQL ステートメントを SQL Server に Execute メソッドを使って渡すことができます。Visual Basic からテーブルをデータベースに追加するには、以降で説明するように Connect プロパティに文字列を設定し、直接データベースを開く必要があります。

Professional Edition

Professional Edition を使うと、コードを書いてデータベース構造を作成したり修正したりすることができます。テーブル構成を計画した後、次に示す基本手順を使ってデータベースを作成します。

1.	Dim ステートメントを使って、作成する Database オブジェクトの変数を宣言します。

Dim DB As Database

2.	Workspace オブジェクトの CreateDatabase メソッドを使って、何も格納されていないデータベース ファイルと Database オブジェクトを作成します。CreateDatabase メソッドは、国別情報 (言語) と Jet データベース エンジンのバージョンを設定します。

注   既存の外部データベースで作業している場合は、CreateDatabase メソッドを使って Database オブジェクト変数を設定します。

Set Db = Workspaces(0).CreateDatabase("MyNewDb",  _

  dbLangGeneral,  _	' 一般的な照合順序。

  dbVersion20)	' Jet Version 2.0 形式のデータベースの作成。

3.	データベースの各テーブルを定義します。テーブルを定義するには、まず各テーブルのフィールドを定義する必要があります。次の手順で、データベースのテーブルとフィールドを作成します。

a.	Database オブジェクトの CreateTableDef メソッドを使って、各テーブルの TableDef オブジェクトを作成します。この方法を使うと、データベースに名前が付けられます。

Dim Td as TableDef

Set Td = Db.CreateTableDef("Customer Detail")

b.	新しい TableDef オブジェクトの CreateField メソッドを使って、各フィールドの Field オブジェクトを作成します。次の例は、3 つのフィールドを作成して名前を付けます。フィールドを追加する前に、テキスト フィールドの Size プロパティなどの必要な属性を設定してください。

Dim Fd as Field

Set Fd = Td.CreateField("Cust ID",dbLong)

' これはカウンタ フィールドです。

Fd.Attributes = dbAutoIncrField

Td.Fields.Append Fd

Set Fd = Td.CreateField("Cust Name",dbText,25)

Td.Fields.Append Fd

Set Fd = Td.CreateField("Picture",dbLongBinary)

Td.Fields.Append Fd

c.	.新しい TableDef オブジェクトを Database オブジェクトの TableDefs コレクションに追加します。この段階で、実際にデータベース ファイル内のオブジェクトを作成します。追加した後は、追加したフィールドを変更することはできません。ただし、新しいフィールドを追加したり既存のフィールド定義を削除することはできます。

Db.TableDefs.Append Td

4.	任意に TableDef オブジェクトの CreateIndex メソッドを使って、各テーブルに 1 つ以上の Index オブジェクトを作成できます。各 Index オブジェクトを作成した後、Field オブジェクトを作成して、どのフィールドをキーとして使うかを記述します。インデックスのいずれか 1 つは、Primary プロパティを真 (True) に設定します。選択されたインデックスがテーブル内で重複しないように Jet データベース エンジンに対して指定する場合は、Unique プロパティを真 (True) に設定します。

a.	TableDef オブジェクトの CreateIndex メソッドを使って、Index オブジェクトを作成します。

Dim Ix as Index

Set Ix = Td.CreateIndex("Customer Index")

b.	Index オブジェクトの CreateField メソッドを使って、キーの構成要素であるテーブルの各フィールドに対するオブジェクトを作成します。各 Field オブジェクトを Index オブジェクトの Fields コレクションに追加します。

Set Fd = Ix.CreateField("Cust ID")

Fd.Primary = True

Ix.Fields Append Fd

c.	各 Index オブジェクトを TableDef オブジェクトの Indexes コレクションに Append メソッドで追加します。テーブルは、インデックスを持たないことも、または複数のインデックスを持つこともできます。

Td.Indexes.Append Ix


関連項目

外部データベースへのアクセス

CreateDatabase メソッド

CreateField メソッド

CreateIndex メソッド

CreateTableDef メソッド

データ アクセスの概要

データ (Data) コントロール

Dim ステートメント

Execute メソッド

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

OpenDatabase メソッド

Required プロパティ

Set ステートメント

TableDef オブジェクト、TableDefs コレクション

Unique プロパティ

カウンタ フィールドの使い方


データベースのクエリー

関連項目

データベースのデータで作業する場合に、クエリーを使ってデータの操作や抽出を実行できます。クエリーには、指定された条件と一致するレコードセットをデータベースに問い合わせる選択クエリーと、指定された条件と一致するレコードセットに対して指定された操作を実行するようデータベースに指示するアクション クエリーがあります。どの場合も、SQL ステートメントを使って、どのレコードが必要かと、必要なレコードをどのような順序でグループにするかを定義します。

SQL クエリーを使ってデータを検索すると、Microsoft Jet データベース エンジンはダイナセット タイプまたは スナップショット タイプの Recordset オブジェクトだけを作成します。Recordset オブジェクトが構築された後は、Findxxx メソッドのうちの 1 つを使って、さらに検索を絞り込むか、または一度に 1 つずつレコードを移動することができます。

クエリーを実行するには、次に示すようなさまざまな方法があります。

データ (Data) コントロールの RecordSource プロパティを設定し、Refresh メソッドを使います。

データ コントロールの RecordSource プロパティで、既存の Querydef オブジェクトを使います。

SQL アクション クエリーを Execute メソッドの引数として使います。

ユーザー定義の Querydef オブジェクトを作成し実行します。

SQL ステートメントを OpenRecordset メソッドの引数として使います。

既存の Querydef オブジェクトを OpenRecordset メソッドと一緒に使います。

Standard Edition で使えるのは、最初の 3 つの方法だけです。

データ コントロールでの SQL クエリーの使い方

1.	必要なレコードだけを返すように、SQL クエリーを作成します。

2.	クエリーの SQL ステートメントをデータ コントロールの RecordSource プロパティに入力します。この操作は、デザイン時または実行時に実行できます。たとえば、実行時に次に示すコードを使うことができます。

Data1.RecordSource = "SELECT * FROM Publishers " _

  & " WHERE State = 'NY'"

3.	実行時に、Refresh メソッドを使って Recordset オブジェクトを再作成します。

Data1.Refresh

RecordSource プロパティでの既存の QueryDef オブジェクトの使い方

Querydef オブジェクトは、データを含まないデータベース オブジェクトですが、特定のフィルタと並べ替え順序を使って 1 つ以上のテーブルからデータを検索する SQL ステートメントを含んでいます。一般に、テーブルを参照できる場所ならどこでも Querydef オブジェクトを指定することができます。Querydef オブジェクトで指定したデータをデータ コントロールを使って検索するには、次に示す操作を行います。

1.	QueryDef オブジェクトの名前を RecordSource プロパティに入力します。この操作は、デザイン時や実行時に実行できます。実行時に、次に示すコードを使うことができます。

Data1.RecordSource = "MyQuery"

2.	実行時に Refresh メソッドを使って、基になる Recordset オブジェクトをデータ コントロールに再作成します。

Data1.Refresh

Execute メソッドへの引数としての SQL アクション クエリーの使用

レコードの挿入や削除のように、アクション クエリーを実行してレコードを返さない処理を行う必要がある場合は、SQL ステートメントを Execute メソッドの引数として指定することができます。Execute メソッドは、クエリーがレコードを返さない場合にだけ、データ コントロールや開いている Database オブジェクトで使うことができます。たとえば、指定した条件に一致するテーブルからすべてのレコードを削除する場合、次に示すコードを使います。

Data1.Database.Execute "DELETE FROM Titles " _

& " WHERE [Year Published] = 1869 "

Professional Edition

Professional Edition でも、SQL ステートメントや QueryDef オブジェクトを使うことができます。

新しい QueryDef オブジェクトの作成

QueryDef オブジェクトの SQL プロパティは、次のどちらかの状態に設定できます。

1.	必要なレコードだけをデータベースが返すように、クエリーを作成します。

2.	完全な QueryDef オブジェクトをコードで作成します。

Dim MyQuery As QueryDef, Db As Database, MySQL As String

Set Db = OpenDatabase("C:\VB\BIBLIO.MDB")

MySQL = "SELECT Author FROM Authors WHERE Author LIKE 'A*'"

Set MyQuery = Db.CreateQueryDef("A Names", MySQL)

または空の QueryDef オブジェクトを作成し、後で SQL プロパティを設定します。

1.	必要なレコードだけをデータベースが返すように、クエリーを作成します。

2.	QueryDef オブジェクトをコードで作成します。

Dim MyQuery As QueryDef, Db As Database, Rs as Recordset

Set Db = OpenDatabase("C:\VB\BIBLIO.MDB")

Set MyQuery = Db.CreateQueryDef("A Names")

3.	後で SQL プロパティを設定します。

MyQuery.SQL = "SELECT Author FROM Authors WHERE Left(Author, 1) = 'A'"

4.	次のどちらかの行のコードで、QueryDef オブジェクトを使って Recordset オブジェクトを作成できます。

Set Rs = MyQuery.OpenRecordset()
Set Rs = Db.OpenRecordset("A Names")

また、パラメータ クエリーを作成すると、データベースに保存されているクエリーを変更しなくても、実行時にクエリーを部分的に修正できます。

パラメータを含む QueryDef オブジェクトの作成

1.	必要なレコードだけをデータベースが返すように、パラメータ クエリーを作成します。

2.	パラメータを含む QueryDef オブジェクトをコードで作成します。パラメータにスペースや句読点が含まれているときは、パラメータ [Name Wanted] が引用符で囲まれておらず、角かっこ [ ] でだけで囲まれていることに注意してください。

Dim MyQuery As QueryDef, Db As Database

Dim MySQL As String, Rs As Recordset

Set Db = OpenDatabase("C:\VB\BIBLIO.MDB")

MySQL = "PARAMETERS [Name Wanted] Text;"

MySQL = MySQL & " SELECT Author FROM Authors"

MySQL = MySQL & " WHERE Author = [Name Wanted]"

Set MyQuery = Db.CreateQueryDef("A Name", MySQL)

2.	クエリーを使う前に、パラメータを設定する必要があります。この場合、探している作者は テキスト ボックス (TextBox) コントロールに配置されます。

MyQuery.Parameters![Name Wanted] = Text1.Text

Set Rs = MyQuery.OpenRecordset()

If Rs.Recordcount > 0 Then 	'レコードが見つかりました。


関連項目

CreateQueryDef メソッド

データ アクセスの概要

データ (Data) コントロール

Database オブジェクト、Databases コレクション

Database プロパティ

Execute メソッド

FindFirst、FindLast、FindNext、FindPrevious メソッド

Name プロパティ (データ アクセス)

OpenRecordset メソッド

PARAMETERS 宣言 (SQL)

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

RecordSource プロパティ

ReturnsRecords プロパティ

SQL プロパティ


コントロールのデータ (Data) コントロールへの連結

関連項目

データ コントロールはデータベースを開き、データベースからのデータを含む Recordset オブジェクトを作成します。このデータをフォーム上のコントロールで操作するには、連結可能コントロールのうちの 1 つをデータ コントロールに連結する必要があります。

データ コントロールが Recordset オブジェクトを作成した後は、Recordset オブジェクトを連結可能コントロールに連結すると、Recordset オブジェクトの各フィールドを表示して修正できます。連結可能コントロールの DataSource プロパティにデータ コントロールを設定し、DataField プロパティに Recordset オブジェクトのフィールドのうちの 1 つを設定します。

DataSource プロパティを設定できるのはデザイン時だけですが、DataField プロパティはいつでも設定や修正が行えます。ただし、DataField プロパティに、連結された Recordset オブジェクトのフィールドのいずれか 1 つを設定する必要があります。

テキスト ボックス (TextBox)、チェック ボックス (CheckBox)、イメージ (Image)、ラベル (Label)、ピクチャ ボックス (PictureBox)、リスト ボックス (ListBox)、コンボ ボックス (ComboBox)、DB リスト (DBList)、DB コンボ (DBCombo)、DB グリッド (DBGrid )の各コントロールはすべて連結可能であり、データ コントロールに連結することができます。また連結可能コントロールは、ほかにも Visual Basic Professional Edition やサードパーティのベンダーによって提供されています。

デザイン時にテキスト ボックス コントロールをデータ コントロールに連結するには

1.	フォーム上で、データ コントロールに連結するコントロールを選択します。

2.	プロパティ ウィンドウで DataSource プロパティを選択し、下矢印をクリックして、フォームのデータ コントロールの一覧を表示します。目的のデータ コントロールを選択するか、またはダブルクリックして利用可能なデータ コントロールを順番に表示します。

3.	DataField プロパティを選択し、下矢印をクリックして、データ コントロールで作成された Recordset オブジェクト内の利用可能なフィールドのうち 1 つを選択します。データ コントロールの RecordSource プロパティを設定していない場合は、この一覧には何も表示されません。

実行時にテキスト ボックス コントロールをデータ コントロールに連結するには

1.	デザイン時に、テキスト ボックス コントロールの DataSource プロパティにデータ コントロールの名前 (たとえば“Data1”など) を設定する必要があります。

2.	データ コントロールの DatabaseName プロパティ、RecordSource プロパティ、RecordsetType プロパティを設定します。

Data1.DatabaseName = "C:\VB\BIBLIO.MDB"	' データベースを設定します。

Data1.RecordSource = "Publishers"	' テーブルまたはクエリーを設定します。

Data1.RecordsetType = dbDynasetType ' ダイナセット タイプの Recordset オブジェクトを作成します。

3.	テキスト ボックス コントロールの DataField プロパティに、データ コントロールの Recordset プロパティに設定されているレコードセットのフィールド名を設定します。

Text1.DataField = "State"	' State フィールドに連結します。


関連項目

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

データ アクセスの概要

データ (Data) コントロール

DataField プロパティ

DataSource プロパティ

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

ピクチャ ボックス (PictureBox) コントロール

Recordset プロパティ

RecordSource プロパティ

テキスト ボックス (TextBox) コントロール


データ (Data) コントロールを使ってデータベースを開く

関連項目

Database オブジェクトをデータ コントロールで開くには、次に示すプロパティを設定し、Refresh メソッドをデータ コントロールのオブジェクトで実行する必要があります。この操作は、コードで実行するか、またはデザイン時にプロパティ ウィンドウを使って対話形式で実行することができます。

1.	Fox、Excel、dBASE、Paradox、またはテキストなどの組み込み可能な ISAM を開く場合は、プロパティ ウィンドウの Connect プロパティ、またはコードでデータベースの種類を選択します。デザイン時に DatabaseName プロパティを選択する場合は、Connect プロパティに設定されたデータベースの種類に基づいて、表示されるファイル名にフィルタが適用されます。

組み込み可能な ISAM、ODBC、または他の外部データベースにアクセスする場合は、Connect プロパティを設定して、データソースとそのデータベースの種類に必要な任意のパラメータを指定する必要があります。たとえば、ODBC データベースでは、データベースの種類 (ODBC;) に続けて、UID、PWD、DATABASE などのパラメータを 1 つ以上指定する必要があります。また、DSN を DatabaseName プロパティに指定していない場合は、Connect プロパティに DSN を指定できます。

組み込み可能な ISAM データベースでは、データ コントロールのプロパティ ウィンドウのドロップダウン リストに表示されているようなサポートされているデータベースの種類のうちの 1 つを指定する必要があります。詳細については、Connect プロパティを参照してください。

効率よく外部データベースを操作するには、外部データベースを直接開くのではなく、外部テーブルを Microsoft Jet データベース (.MDB) にアタッチしてください。

2.	DatabaseName プロパティに、データベース ファイルのパスと名前または有効なデータ ソース名を設定します。Connect プロパティでデータベース名を選択すると、プロパティ ウィンドウから DatabaseName プロパティによって表示されるファイル ダイアログ ボックスに、適切なファイル拡張子に対するフィルタが表示されます。このファイル ダイアログ ボックスを使って、有効なファイル名を選択できます。ODBC 外部データベースに対しては、DatabaseName プロパティを使って、アクセスするデータベースが含まれているサーバーのデータ ソース名 (DSN) を指定できます。

3.	RecordSource プロパティにデータベース内の Tableオブジェクト、QueryDefオブジェクト、またはビューの名前を設定します。また、SQL ステートメントを RecordSource プロパティに入力して、Recordset オブジェクトを記述することもできます。QueryDef オブジェクトにパラメータが含まれている場合は、まず Recordset オブジェクトを作成してデータ コントロールの Recordset プロパティに渡してからでないと、QueryDef オブジェクトを使うことができません。

4.	有効な Connect プロパティと DatabaseName プロパティがデータ コントロールに設定されると、有効な RecordSource プロパティの値の一覧がデータ コントロールのプロパティ ウィンドウのドロップダウン リストに表示されます。たとえば Jet データベースの場合、このリストにはすべてのデータベースの Table オブジェクトが表示されます。

5.	RecordsetType プロパティを使って、データ コントロールで作成する Recordset オブジェクトの種類を選択します。

6.	1 つ以上の連結可能コントロールを、操作する各 Recordset オブジェクトのフィールドに対するカレント フォームに追加します。連結可能コントロールを Recordset オブジェクトのすべてのフィールドに対して指定する必要はありません。

7.	各連結可能コントロールの DataSource プロパティを、データ コントロールを指すように変更します。コントロールをデータ コントロールに連結できるのは、デザイン時だけです。データ コントロールは、他のフォーム上の連結可能コントロールに連結することはできません。

8.	各連結可能コントロールで、そのコントロールが操作する Recordset オブジェクト フィールドを DataField プロパティに設定します。プロパティ ウィンドウはデータベースに問い合わせて Recordset オブジェクトを構築し、各フィールドの名前を設定します。DataField プロパティをクリックし、表示されるリストから選択します。

9.	プログラムで空の Recordset オブジェクトを扱う場合は、適切に対応できるように EOFAction プロパティを設定します。

10.	ユーザーが Recordset オブジェクトの先頭より前にスクロールすることを防ぐため、BOFAction プロパティにデータの先頭を越えて移動しないように設定します。

11.	また、必要に応じて Exclusive プロパティ、ReadOnly プロパティ、Options プロパティを設定することができます。

12.	セキュリティ機能を持つデータベースにアクセスする場合は、Jet データベース エンジンが Form_Load イベントでデータ コントロールのデータベースを開こうとする前に、DBEngine オブジェクトの DefaultUser プロパティと DefaultPassword プロパティを使って、有効なユーザー名とパスワードでログ オンする必要があります。データ コントロールは、Workspaces(0) からだけデータベースにアクセスできます。ユーザーがデータベースへのアクセス権を持っていない場合は、トラップできるエラーが発生します。

プロパティ ウィンドウを使ってプロパティを設定したら、アプリケーションを実行します。Visual Basic は、指定されたパラメータを使ってデータベースを開こうとします。コードを使ってデータ コントロールのプロパティを設定した場合は、データ コントロールの Refresh メソッドを使って、データベースを開きます。

データベースを開くことに成功したら、データ コントロールの Database プロパティと Recordset プロパティを、Database オブジェクトと Recordset オブジェクトとして使うことができます。


関連項目

データ アクセス オブジェクトのアクティブ化

BOFAction、EOFAction プロパティ

データ (Data) コントロールの Recordset オブジェクトの種類の選択

Connect プロパティ

CreateWorkspace メソッド

Database オブジェクト、Databases コレクション

DatabaseName プロパティ

DataField プロパティ

DataSource プロパティ

DBEngine オブジェクト

DefaultUser、DefaultPassword プロパティ

Exclusive プロパティ

Options プロパティ

Parameter オブジェクト、Parameters コレクション

Password プロパティ

ReadOnly プロパティ (データ アクセス)

RecordsetType プロパティ

RecordSource プロパティ

Updatable プロパティ

User オブジェクト、Users コレクション


データ (Data) コントロールの Recordset オブジェクトの種類の選択

関連項目

データ コントロールを使って、3 つの種類の Recordset オブジェクトを作成できます。データ コントロールの RecordsetType プロパティを設定して、次の表に示すような種類を指定します。

Recordset の種類	定数	用途

テーブル タイプ	vbRSTypeTable	個々のベース テーブルに対して、直接の読み取/書き込みアクセスができます。テーブル タイプの Recordset オブジェクトを使うと、最も速くデータに対するアクセスや更新が実行できます。Recordset オブジェクトの順序は、Recordset オブジェクトの Index プロパティで決められます。.MDB データベースで作成されたテーブルに対してだけ適用できます。ODBC データベースや ISAM データベースに対しては適用できません。

ダイナセット タイプ	vbRSTypeDynaset	個々のベース テーブル、Querydef オブジェクト、または SQL クエリーに基づいた結果として返されるレコードセットに対して、キーセット ドリブン型の読み取り/書き込みアクセスができます。Recordset オブジェクトの順序は、SQL クエリーの ORDER BY 句で決定されます。キーをメモリに保存します。

スナップショット タイプ	vbRSTypeSnapshot	個々のベース テーブル、Querydef オブジェクト、または SQL クエリーに基づいた結果として返されるレコードセットに対して、データ ドリブン型の読み取り専用アクセスができます。Recordset オブジェクトの順序は、SQL クエリーの ORDER BY 句で決定されます。データをメモリに保存します。

データ コントロールの RecordsetType プロパティを設定すると、データ コントロールが作成する Recordset オブジェクトの種類が優先されます。Microsoft Jet データベース エンジンが必要な種類のレコードセットを作成できない場合は、トラップできるエラーが発生します。

データ コントロールによって Recordset オブジェクトが作成される前にレコードセットの種類を指定していない場合、可能なときは、ダイナセット タイプの Recordset オブジェクトが作成されます。

注   データ コントロールでは以前のバージョンの Dynaset オブジェクトをサポートしていません。特に指定しなくても、Dynaset オブジェクトと完全に互換性があるダイナセット タイプの Recordset オブジェクトが作成されるので、既存コードを修正する必要はありません。

データ コントロールを使わないで、 Recordset オブジェクトを作成し、この新しい Recordset オブジェクトを Recordset プロパティに設定すると、データ コントロールの RecordsetType プロパティには新しい Recordset オブジェクトの Type プロパティが設定されます。

重要    RecordsetType プロパティの引数 value は、Recordset オブジェクトの種類を識別するために使われる値とは対応しません。詳細については、OpenRecordset メソッドまたは Type プロパティを参照してください。


関連項目

データ アクセス オブジェクトのアクティブ化

データ (Data) コントロール

ダイナセット タイプの Recordset オブジェクト

OpenRecordset メソッド

Recordset オブジェクト、Recordsets コレクション

スナップショット タイプの Recordset オブジェクト

テーブル タイプの Recordset オブジェクト

Type プロパティ (データ アクセス)


データ アクセス オブジェクトのアクティブ化

関連項目

Visual Basic を初めてセットアップしたときは、16 ビット版の場合は Microsoft DAO 2.5 Object Library、32 ビット版の場合は Microsoft DAO 3.0 Object Library がアクティブになります。このライブラリは、データ アクセス オブジェクト (DAO) をサポートします。ただし、実行可能ファイルに DAO ライブラリを含めないようにする場合は、[ツール] メニューから [参照設定] ダイアログ ボックスを使って、DAO ライブラリを解放できます。

DAO ライブラリを解放にすると、コード内のどの DAO オブジェクトを参照しても、コンパイル エラー メッセージが表示されます。このメッセージは、通常は定義されていないユーザー定義オブジェクトが存在することを示します。

AUTOLOAD.VBP ファイルを変更して、インストールされた参照の一覧から DAO ライブラリを除いた場合、アプリケーションで DAO オブジェクトをコードで参照するには、[参照設定] ダイアログ ボックスを使って手動で DAO ライブラリをアクティブにする必要があります。

ほとんどの場合、データ コントロールと連結可能コントロールを使うときに、DAO ライブラリは自動的にアクティブになります。ただし .OCX 連結可能コントロールを使うには、手動で DAO ライブラリをアクティブにする必要があります。たとえば、DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールを使うには、まずデザイン モードで Microsoft DBList Controls への参照を追加して、コードを実行する必要があります。

一度ライブラリやカスタム コントロールをアクティブにすると、それらはプロジェクトの一部になります。アクティブにしたライブラリやコントロールを AUTOLOAD.VBP ファイルに含めると、これらのライブラリやコントロールは、ユーザーが特に解放しない限り、作成した各アプリケーションの一部になります。


関連項目

セキュリティのアクティブ化


セキュリティのアクティブ化

関連項目

Microsoft Jet データベース エンジンはさまざまなセキュリティ機能をサポートしており、データベース全体、テーブル、フィールド、ユーザー、またはグループ オブジェクトに対するアプリケーションのアクセスを制限できます。Jet データベース エンジンは SYSTEM.MDW ファイルを使って、どのユーザーがどのオブジェクトにアクセスする権限を持つかを管理します。このファイルは、Visual Basic ではなく Microsoft Access に含まれる特別なユーティリティによって作成されます。

Visual Basic で書かれたアプリケーションは、セキュリティ機能が利用可能な Jet データベースにアクセスできます。ただし、アプリケーションが SYSTEM.MDW ファイルにアクセスできない場合は、セキュリティの設定を作成したり修正したりすることはできません。

注   システム データベース ファイルの拡張子は、.MDA から .MDW に変わりました。

警告   同じプロセス空間にあるすべての DBEngine オブジェクトからの呼び出しによって、同じ Jet データベース エンジンが共有されます。このため、インプロセス OLE サーバーまたは他の DLL によって、次のようにセキュリティが侵される可能性があります。インプロセス OLE サーバーまたは他の DLL は、アプリケーションによって使用されている Workspace オブジェクトを見つけるために、DBEngine オブジェクトの Workspaces コレクションへの参照を不正に繰り返します。次に、セキュリティおよびパスワードによる保護を無視して、Databases コレクション、Recordsets コレクション、Tables コレクション、および Fields コレクションへの参照を繰り返します。このような危険性を回避するには、アプリケーションに Workspace オブジェクトを作成します。ただし、Workspaces コレクションには追加しないでください。コレクションに追加すると、他のコードから参照できなくなります。


関連項目

データ アクセス オブジェクトのアクティブ化

CreateWorkspace メソッド


データ (Data) コントロールでのパラメータ クエリーの使い方

関連項目	例

PARAMETERS 句を含む Querydef オブジェクトがある場合は、実行前に必要なパラメータをクエリーに指定する必要があります。このため、パラメータ化したクエリーの名前をデータ コントロールの RecordSource プロパティに指定することはできません。ここでは、どのようにパラメータに入力し、Recordset オブジェクトを作成してデータ コントロールに引き渡すかを説明します。

Microsoft Access とは異なり、Visual Basic はパラメータ クエリーを実行するときに、パラメータの入力をユーザーに要求するプロンプトを表示しません。Querydefオブジェクトを実行するには、次の操作をコードに記述することが必要です。

クエリーを実行する前に、Querydef オブジェクトの Parameters コレクションの各メンバに対する値を入力して、Querydef オブジェクトにパラメータを指定します。Parameter オブジェクトの Name プロパティを使って、入力を要求する文字列を表示することができます。

データ コントロールの Database オブジェクトの OpenRecordset メソッドを使って、修正した Querydef オブジェクトから新しい Recordset オブジェクトを開きます。

データ コントロールの Recordset プロパティに、新しい Recordset オブジェクトを設定します。

このデータ コントロールに接続している連結可能コントロールの DataField プロパティには、必ず新しい Recordset オブジェクトから返されたフィールド名を設定してください。


関連項目

データ (Data) コントロール

Parameter オブジェクト、Parameters コレクション

Querydef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション


データ (Data) コントロールでのパラメータ クエリーの使用例

このプログラムでは、データ コントロール (Data1) で開かれたデータベースに格納された MyParameterQuery という名前の Querydef オブジエクトに対するパラメータを入力します。ここでは、3 つの異なった構文を使って、引数を Parameter オブジェクトに渡しています。コードは、Recordset オブジェクトを Querydef オブジェクトから構築し、続いてデータ コントロールに渡して戻します。

データ コントロールは参照される前に、Database オブジェクトと関連する Querydef コレクションを作成する必要があります。このプログラムでは、データ ベースのテーブルを RecordSource プロパティで参照し、その後、Refresh メソッドをデータ コントロールに対して使用します。データ コントロールによって既に Database オブジェクトが作成されている場合は、これらのステップは必要ありません。

Sub RunPQuery()

  Dim Qd as Querydef, Rs as Recordset

Data1.RecordSource = "Titles"

Data1.Refresh                    ' Database オブジェクトを作成します。

Set Qd = Data1.Database.QueryDefs("MyParameterQuery")

Qd.Parameter(0) = "Redmond"	' 都市名。

Qd.Parameter("Enter State") = "WA"	' 州名。

Qd.Parameter!County = "King"	' 国名。

'

' 格納された QueryDef オブジェクトに基づいたクエリーから、新しい Recordset オブジェクトを作成します。

'

Set Rs = Qd.OpenRecordset(Qd,dbOpenDynaset)

'

' Recordset オブジェクトをデータ コントロールに渡して戻します。

'

' Recordset オブジェクトをデータ コントロールに渡して戻します。

'

Set Data1.Recordset = Rs

End sub

Sub RunPQuery()

Dim Qd as Querydef, Rs as Recordset

  Set Qd = Data1.Database.QueryDefs("MyParameterQuery")

  Qd.Parameter(0) = "Redmond"	' 都市名。

  Qd.Parameter("Enter State") = "WA"	' 州名。

  Qd.Parameter!County = "King"	' 国名。

'

' クエリーから新しい Recordset オブジェクトを作成します。

'

Set Rs = Data1.Database.OpenRecordset(Qd,dbOpenDynaset)

'

'Recordset オブジェクトをデータ コントロールに渡して戻します。

'

Set Data1.Recordset = Rs

End sub


データ アクセスの概要

関連項目	オブジェクト	プロパティ	イベント	メソッド

Visual Basic を使うと、データベースのデータへのアクセスや操作を行ったり、データベースまたはデータベースのオブジェクトや構造を管理したりすることができます。

プログラムを作成してデータベースにアクセスするために、さまざまな開発オプションが用意されています。次に示すオプションを使うことができます。

Visual Basic のデータ (Data) コントロールを含む、組み込み Microsoft Jet データベース エンジン。

Visual Basic のデータ アクセス オブジェクト (DAO) を含む、Jet データベース エンジン。

ODBC ドライバが組み込まれた外部データベースにアクセスするための ODBC API。

Microsoft SQL Server にアクセスするための VBSQL カスタム コントロールを含む DB-Library ライブラリ API。

データベースにアクセスするためのサードパーティのカスタム コントロールとドライバ。

Jet データベース エンジン

Visual Basic のデータ アクセス オブジェクトやデータ コントロールは、Jet データベース エンジンのデータベース形式である .MDB 形式、または Fox、dBASE、Excel、Btrieve、Paradox、区切り記号付きテキストなどの組み込み可能な ISAM データベース形式のいずれのデータベースの操作にも使うことができます。また Jet データベース エンジンを使うと、同じ DAO コードやデータ コントロールを使って、ODBC ドライバでアクセスできる Microsoft SQL Server などのデータベースにアクセスできます。Jet データベース エンジンは Visual Basic に添付されているので、DLL やドライバを追加する必要はありません。

API ベースのデータベースのインターフェイス

VBSQL カスタム コントロールには、宣言ファイル、ドライバ、および DLL を追加する必要があります。これらのファイルは Visual Basic には含まれていませんが、マイクロソフト社から別途入手できます。ODBC API 宣言ステートメントをグローバル モジュールに含めると、ODBC API を使うことができます。ODBC API 宣言ステートメントも、マイクロソフト社から入手できます。これらの API を使うと、外部データベース サーバーに対するより高度な制御が可能になります。したがって性能を向上させることができますが、コードはいくらか複雑になります。データ コントロールやデータ アクセス オブジェクトを使うことはできませんが、これらの API 機能を使ってコードで連結可能コントロールを入力したり管理したりすることができます。

データ コントロール

ユーザーがデータベースのデータにアクセスするためのアプリケーションを簡単に作成するには、データ コントロールを使います。ほとんどのデータ アクセス操作を、コードをまったく記述しなくても実行できます。データ コントロールに連結されたコントロールは、カレント レコードに対する特定のフィールドのデータを自動的に表示したり、複数のレコードを同時に表示したりすることができます。データ コントロールを別のレコードに移動すると、すべての連結コントロールは自動的に変更されてカレント データを表示します。ユーザーがデータを変更したり新しい情報を入力したりすると、ユーザーが加えた変更はデータ コントロールが新しいレコードに移動したときに自動的にデータベースに保存されます。

すべてのデータ コントロールで操作は Jet データベース エンジンによって実行されるため、組み込み可能な ISAM と ODBC データベースの種類を含めて、Jet データベース エンジンでサポートされているどのデータベースでもコントロールで開いて操作することができます。

重要   プログラムのデータ アクセス オブジェクト、データ コントロール、または連結可能コントロールのいずれかにアクセスするには、使用している開発環境の Microsoft DAO 2.5 Object Library または Microsoft DAO 3.0 Object Library が [参照設定] ダイアログ ボックスで選択されている必要があります。既定では、最初にインストールしたときにこのライブラリが AUTOLOAD.VBP ファイルに含まれています。この参照を含めないと、“ユーザー定義型は定義されていません。”というエラーが発生してコードはコンパイルを行いません。

データ アクセス オブジェクト

Visual Basic の Standard Edition および Professional Edition は、DBEngine オブジェクト、Workspace オブジェクト、Database オブジェクト、TableDef オブジェクト、Field オブジェクト、Index オブジェクト、Recordset オブジェクトなどの、データ アクセス オブジェクト (DAO) をサポートしています。Standard Edition ではキーワード Dim を使って新しいデータ アクセス オブジェクトを宣言することはできませんが、データ コントロールによって作成されたデータ アクセス オブジェクトを操作することはできます。

Database オブジェクトには、テーブルを定義する TableDef オブジェクト、フィールドを定義する Field オブジェクトなどの、たくさんのデータ アクセス オブジェクトが含まれています。各オブジェクトには、プロパティとメソッドのセットが含まれています。他のオブジェクトのコレクションであるプロパティを含むオブジェクトもあります。Form オブジェクトに Controls コレクションが含まれているのと同様に、Database オブジェクトには TableDef オブジェクトの TableDef コレクションが含まれており、TableDef オブジェクトには Fields オブジェクトの Fields コレクションが含まれています。コードを記述するか、またはデータ コントロールを使ってデータベースからデータを取り出す場合、作成する各 Recordset オブジェクトは Recordsets コレクションに追加されます。データベースのデータと構造を操作するには、これらの構造化されたオブジェクトにアクセスするコードを記述します。

たとえば、データ コントロールの Recordset プロパティのカレント レコード内にある PubID フィールドの値を設定するには、次に示すコードを使います。

Data1.Recordset.Fields("PubID").Value = 99

さらに、他のコントロールと同様に、データ アクセス オブジェクトには既定のコレクションまたはプロパティがあります。たとえば、Recordset オブジェクトの既定のコレクションは Fields コレクションで、Fields コレクションの既定のプロパティは Value プロパティです。これらの既定値を利用すると、コードを単純化できます。たとえば、次のコードを使っても、カレント レコード内にある PubID フィールドの値を設定することができます。

Data1.RecordSource = "Publishers"

Data1.Refresh

Data1.Recordset("PubID") = 99

注   Visual Basic Version 4.0 では、Field オブジェクト、Property オブジェクト、Parameter オブジェクトに対してだけ既定のプロパティがサポートされています。たとえば、TableDef オブジェクトは Name プロパティを既定のプロパティとしてサポートしていません。必要な場合には、コードを修正してプロパティを含める必要があります。

Professional Edition

Professional Edition では、どのオブジェクト型に対する新しいデータ アクセス オブジェクト変数でも、Dim ステートメントと Set ステートメントを使って宣言できます。たとえば、次のコードは Databaseオブジェクト、ダイナセット タイプの Recordsetオブジェクト、Field オブジェクトに対するオブジェクト変数を作成します。

Dim MyDb As Database, MyRs As Recordset, MyFd As Field

Set MyDb = OpenDatabase("BIBLIO.MDB")

Set MyRs = MyDb.OpenRecordset("Authors", dbOpenDynaset)

Set MyFd = MyRs.Fields("Au_ID")

オブジェクト変数と他のDDL 機能を使って、データベースの構造を修正できます。たとえば、次のコードを使って、新しい Field オブジェクトを既存のテーブルに追加できます。

Dim MyDb As Database, MyTd as TableDef, MyFd As Field

Set MyDb = OpenDatabase("BIBLIO.MDB")	' データベースを開きます。

Set MyTd = MyDb.TableDefs("Authors")

Set MyFd = MyTd.CreateField("Address", dbText, 20)

MyTd.Fields.Append MyFd	' TableDef オブジェクトのフィールドに追加します。

このコードは Field オブジェクトに対する新しいオブジェクト変数を作成し、Append メソッドで TableDef オブジェクトに追加します。TableDef オブジェクトにはテーブルの定義が含まれているため、テーブルにはデータ入力用に Address という名前のフィールドが追加されます。同様に、新しいテーブルと新しいインデックスを作成できます。

DBEngine オブジェクトと Workspace オブジェクト

すべてのデータ アクセス オブジェクトは、Jet データベース エンジンを表す DBEngine オブジェクトを基にしています。アプリケーションが起動すると、Jet データベース エンジンは、Workspace コレクション (Workspaces(0)) を通して参照できる既定の DBEngine.Workspaces オブジェクトを作成します。Workspace オブジェクトは、必要なだけ追加して開くことができます。各 Workspace オブジェクトには、関連するユーザー ID とパスワードがあります。

注   セキュリティ機能が有効なデータベースまたは別のトランザクションの範囲を作成するデータベースを操作する必要がある場合以外は、DBEngine オブジェクトや Workspace オブジェクトを参照する必要はありません。特別に参照が設定されていない場合は、Visual Basic は既定の DBEngine.Workspaces(0) オブジェクトを使います。たとえば、DAO を使ってデータベースを開き、テーブル タイプの Recordset オブジェクトを作成するには、次のコードを使います。

Dim Db as Database, Rs as Recordset

Set Db = OpenDatabase("BIBLIO.MDB")

Set Rs = Db.OpenRecordset("Titles")

Workspace オブジェクトに対して開かれているすべての Database オブジェクトは、共通のトランザクションの適用範囲を共有しています。すなわち、BeginTrans メソッドを 1 つのデータベースで使うと、Workspace オブジェクトで開かれた他のすべての開いているデータベースにもそのメソッドが適用されます。同様に、1 つのデータベースに対して CommitTrans メソッドを使うと、Workspace オブジェクトで開いているすべての他のデータベースに適用されます。

データ コントロールで作成したすべての Database オブジェクトは、Workspaces(0) に含まれます。ただし、DAO を使って別の Workspace オブジェクトに Recordset オブジェクトを作成した場合は、データ コントロールを使ってそのオブジェクトを管理できます。

セキュリティ

Jet データベース エンジンによって設定され管理されるセキュリティ設定を使って、1 つ以上の .MDB データベースやテーブルへのアクセスを制限することができます。コードで、Group オブジェクトと User オブジェクトを設定し、個々のユーザーに利用可能な権限の適用範囲とレベルをオブジェクトごとに定義できます。たとえば、特定のユーザーに対して、1 つのテーブルには読み取り専用アクセス、別のテーブルにはすべてのアクセスが可能な権限を設定できます。

重要   セキュリティを設定したり変更したりするには、.MDB データベースに関連した SYSTEM.MDW ファイルにアクセスする必要があります。このファイルは、Microsoft Access Version 2.0 に含まれている特別なユーティリティによってだけ作成できます。このファイルがないと、アプリケーションは .MDB データベースに対するセキュリティをアクティブにできません。


関連項目

データ アクセス オブジェクトのアクティブ化

セキュリティのアクティブ化

CreateDatabase メソッド

CreateField メソッド

CreateIndex メソッド

CreateTableDef メソッド

データ (Data) コントロール

Database オブジェクト、Databases コレクション

DBEngine オブジェクト

Dim ステートメント

Execute メソッド

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

OpenDatabase メソッド

Recordset オブジェクト、Recordsets コレクション

Required プロパティ

Set ステートメント

TableDef オブジェクト、TableDefs コレクション

Type プロパティ (データ アクセス)

Unique プロパティ

カウンタ フィールドの使い方

Value プロパティ (データ アクセス)

Workspace オブジェクト、Workspaces コレクション


DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールの実行

関連項目

DB リスト コントロールと DB コンボ コントロールは、ほぼ同様の機能を持っています。異なる点は、ユーザーへのデータの表示方法と、DB コンボ コントロールには値を入力するためのテキスト ボックスが存在することです。

DB リスト コントロールと DB コンボ コントロールには 2 つのモードがあり、個別に使われたり同時に使われたりします。

Auto Fill モード

RowSource プロパティで指定されたデータ (Data) コントロールに管理されるすべてのレコードの選択されたフィールドを、自動的にリストに表示します。

Auto Update モード

コントロール内の選択されたレコードを、DataSource プロパティで指定されたデータ コントロールに管理される Recordset オブジェクトの特定のフィールドに連結します。

通常は両方のモードを使って、データベースのクエリーに基づいた項目のリストを構築します。リスト内の項目が選択されると、DataSource プロパティで指定されたデータ コントロールに対してその項目が有効になります。また選択された項目は、コントロールのテキスト ボックスの部分に表示され、そこで編集することができます。ユーザーが値をテキスト ボックスに入力すると、一致する項目の位置がコントロールのリストの部分で検索されます。一致する項目が見つかると、BoundColumn プロパティに指定されたフィールドに基づいて BoundText プロパティの値が設定されます。一致する項目が見つからない場合は、BoundText プロパティに Null 値が設定されます。

上の図のように、DB コンボ コントロールまたは DB リスト コントロールを使うと、ユーザーは複数の項目のリストから選択し、その項目または RowSource プロパティに指定された Recordset オブジェクトの他のフィールドを、他のデータ コントロールに渡すことができます。

データ コントロールが別のレコードに移動するかまたは更新されると、BoundColumn プロパティの値は DataSource プロパティに指定されたデータ コントロールに渡されます。一致する項目がない場合は、Null 値がデータ コントロールに渡されます。すべての連結可能コントロールと同様に、DataField プロパティにはデータ コントロールに管理されている Recordset オブジェクト内で更新されるフィールドを指定します。

たとえば、DB コンボ コントロールまたは DB リスト コントロールを使って、現在の仕入先のリストを検索して表示できます。そして、このリストから選択した項目を使うか、または新しいベンダーをコントロールのテキスト ボックスの部分に入力して、OrderItem テーブルから作成した Recordset オブジェクトの VendorID フィールドを更新します。この例を実行するには、次の操作を行います。

1.	DB コンボ コントロールと 2 つのデータ コントロールをフォームに追加します。

2.	2 つめのデータ コントロールの各プロパティを設定して、OrderItem テーブルを使って Recordset オブジェクトを作成します。

3.	1 つめのデータ コントロールの各プロパティを設定して、ValidSuppliers テーブルを使ってスナップショット タイプの Recordset オブジェクトを作成します。このコントロールの Visible プロパティを偽 (False) に設定して、DB コンボ コントロール (または DB リスト コントロール) で Recordset オブジェクトを管理するようにします。

4.	DB コンボ コントロールの DataSource プロパティに、2 つめのデータ コントロールを設定します。

5.	DB コンボ コントロールの DataField プロパティに VendorID フィールドを設定します。この操作で DB コンボ コントロールを OrderItem テーブルの Recordset オブジェクトと連結し、DB コンボ コントロールで項目を選択すると VendorID フィールドが更新されるように指定します。

6.	RowSource プロパティに 1 つめのデータ コントロールを設定します。これは、ValidSuppliers テーブルの Recordset オブジェクトをリストに表示するために使われます。

7.	ListField プロパティに Name フィールドを設定します。この操作で、どのフィールドをコントロールのリスト部分に表示するために使うかを指定します。ドロップダウン リストを使う場合は、RowSource プロパティに指定された Recordset オブジェクトのフィールドのうちのいずれかを選択できます。

8.	BoundColumn プロパティに Code フィールドを設定します。BoundColumn プロパティのドロップダウン メニューも、RowSource プロパティに指定された Recordset オブジェクトを基にしていることに注意してください。この操作によって、DB コンボ コントロールから選択された項目を、DataField プロパティで指定した 2 つめのデータ コントロールの Recordset オブジェクトのフィールドに連結します。この場合、DataField プロパティは VendorID フィールドを指し、VendorID フィールドは 2 つめのデータ コントロールが更新されると更新されます。

このプログラムを実行すると、RowSource プロパティと ListField プロパティで指定された Recordset オブジェクトに基づく現在のベンダーのリストが、DB コンボ コントロールに表示されます。2 つめのデータ コントロールを使って、OrderItem テーブルのレコードのうちの 1 つを選択します。次に、DB コンボ コントロールから有効な仕入先の 1 つを選択するか、またはコントロールのテキスト ボックスの部分で選択された項目を変更します。そして、2 つめのデータ コントロールを別のレコードに再配置してから、元のレコードに移動して戻ります。VendorID フィールドが DB コンボ コントロールから選択された VendorID の値に更新されていることを確認してください。リストにない値をテキスト ボックスに入力した場合は、Null 値が設定されます。

2 つめのデータ コントロールを使って、OrderItem テーブルの Recordset オブジェクトのレコード間を移動すると、DataField プロパティに指定したデータ結合フィールドがリストに表示されます。すなわち、データベースから読み込まれた VendorID フィールドの値がリストの検索に使われます。見つかった場合は、項目がリスト内で反転表示され、DB コンボ コントロールの Change イベントが発生します。

ユーザーが DB コンボ コントロールまたは DB リスト コントロールで選択を行うと、選択された値は DataSource プロパティに指定されたデータ コントロールに対して有効になります。続いて、カレント レコードが再配置されたり、UpdateRecord メソッドが実行された場合は、値がデータベースに書き込まれます。

Auto Fill モードと Auto Update モードのどちらも単独で使うことができますが、これらのコントロールに入力するには RowSource プロパティと ListField (または BoundColumn) プロパティが必要なため、Auto Update モードを Auto Fill モードを設定しないで使うとあまり効率がよくありません。AddItem メソッドまたは RemoveItem メソッドをコンボ ボックス (ComboBox) コントロールで使うことはできますが、DB コンボ コントロールまたは DB リスト コントロールで使うことはできません。

Auto Fill モードは単独で使うことができます。この場合、リストは自動的に表示され、ユーザーはコードを Click イベント プロシージャに追加して、選択された項目またはエントリをコントロールのテキスト ボックスの部分で編集されたものとして設定することができます。

選択された項目やリストを構築するために使われた Recordset オブジェクトの他のフィールドは、SelectedItem プロパティに設定されているブックマークを使って参照できます。DB リスト コントロールまたは DB コンボ コントロールの ListField プロパティまたは BoundColumn プロパティの値を変更すると、Refill メソッドが呼び出され、選択された Recordset オブジェクトのフィールドを使用してリストが作成されます。

リストの検索

MatchEntry プロパティを使って拡張検索モードを有効にすると、DB コンボ コントロールまたは DB リスト コントロールによって作成されたリスト内の項目の位置を簡単に知ることができます。リストがフォーカスを得ると、ユーザーが入力するキーはすべて検索引数に結合されます。たとえば、ユーザーが「N」と入力すると、N が検索引数に結合され、リスト内で最初に一致する項目の位置がコントロールによって検索されます。次にユーザーが「E」と入力すると、処理が繰り返され、NE という文字で始まる最初の項目の位置がコントロールによって検索されます。コントロールがフォーカスを得た場合、またはユーザーが BackSpace キーを押すか数秒間何も入力しない場合は、検索引数がクリアされます。

標準検索モードを選択すると、検索引数は 1 文字に制限されます。

リスト内の項目は、一度に 1 項目だけ選択できます。1 つの項目が選択されると、SelectedItem プロパティはその行に対するブックマークを返し、BoundText プロパティに選択された項目のテキストが入力されます。また、リストの項目をコードを使って選択するには、BoundText プロパティにリストの 1 項目を設定します。ただし、リストに何も含まれていない場合や、リストにない値を BoundText プロパティに設定した場合は、トラップできるエラーが発生します。この状態は、ListField プロパティまたは BoundColumn プロパティが有効なデータ ソースを指していない場合に発生します。

表示の制御

項目数が表示可能な数を超えた場合は、自動的にスクロール バーがコントロールに追加されます。一部の行だけを表示するかどうかを指定するには、IntegralHeight プロパティを使います。リストに表示可能な項目数は、VisibleCount プロパティで調べることができます。

ListField プロパティを指定しない場合は、BoundColumn プロパティの値がリストに表示されます。BoundColumn プロパティを指定しないと、トラップできるエラーが発生します。


関連項目

BoundColumn プロパティ

BoundText プロパティ

コンボ ボックス (ComboBox) コントロール

DataField プロパティ

DataSource プロパティ

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

IntegralHeight プロパティ

リスト ボックス (ListBox) コントロール

ListField プロパティ

MatchEntry プロパティ

Recordset オブジェクト、Recordsets コレクション

RowSource プロパティ

SelectedItem プロパティ

Text プロパティ

UpdateRecord メソッド

VisibleCount プロパティ

VisibleItems プロパティ


ODBC データベースへの接続

関連項目

Visual Basic アプリケーションは、ODBC ドライバが組み込まれているどのデータベースとでも接続できます。ODBC データベースのテーブルに接続するには、さまざまな方法があります。

ODBC データベースやビューを Jet データベースにアタッチし、OpenRecordset メソッドを使ってテーブルにアクセスします。

OpenDatabase メソッドを使って、ODBC データベースを直接開きます。

ODBC データベースを参照する Querydef オブジェクトを作成します。

データ (Data) コントロールを使って、アタッチされた ODBC テーブルを開くか、または ODBC データベースを直接開きます。

ODBC プログラマー ツールキットに添付されている ODBC API を使います。

アプリケーションで ODBC データベースにアクセスする前に、ODBC ドライバを組み込み、コントロール パネルまたは RegisterDatabase メソッドを使ってデータ ソース名 (DSN) を作成する必要があります。ODBC データベースを参照するときは、この DSN を使います。DSN には、データベースに接続するために ODBC ドライバと Jet データベース エンジンが使うリンク情報が含まれています。Visual Basic には、ユーザーがアプリケーションを配布する場合に自由にコピーできる ODBC セットアップ ディスクが添付されています。ODBC データベースを開く準備が整ったら、データ コントロールまたは QueryDef オブジェクトの Connect プロパティ、あるいは OpenDatabase メソッドの引数 source で DSN を使います。

たとえば、データ コントロールを使って ODBC データベースを直接開くには、以下に示した文字列を Connect プロパティの下部にプロパティ ウィンドウで入力するか、または次のコードを使います。

Data1.Connect = "ODBC;DSN=MySQLServer;" _

& "UID=Fred;PWD=APlus;DATABASE=MySSDB;"

Data1.Database = ""

Data1.Refresh

同様に、OpenDatabase メソッドに引数 source を指定することができます。

Dim Db as Database, Connect as String

Connect$ = "ODBC;DSN=MySQLServer;" _

  & "UID=Fred;PWD=APlus;DATABASE=MySSDB;"

Set Db = OpenDatabase("", False, False, Connect$)

性能について

できる限り効率をよくするためには、ODBC データベースに直接接続してはいけません。直接接続すると、Jet データベース エンジンはデータベースに問い合わせてテーブル スキーマを決定しなければなりません。各 Recordset オブジェクトが作成されると、アクセスするテーブルとインデックスの構造を決定するために、このプロセスが繰り返されます。この不要なオーバーヘッドによって、ODBC データベースを開いてテーブルからデータを検索するための所要時間がかなり増えます。

効率よく ODBC データベースにアクセスするには、選択した ODBC データベースのテーブルやビューを Jet データベースにアタッチします。この方法を使うと、Jet データベース エンジンは、アタッチされたときにテーブルの構造を決定できます。続いてデータベースを開いたりアクセスしたりすると、Jet データベースに格納されたリンク情報が参照されます。ただし、ODBC データベースの構造を変更した場合は、TableDef オブジェクトの RefreshLink メソッドを使ってリンク情報を再構築します。

Microsoft SQL Server システムで多くの操作をより速く実行するために、ODBC ドライバで 1 つ以上のストアード プロシージャを稼働中のデータベースに作成することができます。プログラムが異常終了した場合、ストアード プロシージャはサーバー上に残ります。一般的に、これらのストアード プロシージャを使わない場合には、手動で削除する方が安全です。

ODBC データベースで作業するときに Jet データベース エンジンで使うパラメータを調整するには、Jet データベース エンジンを使って Visual Basic からアクセスする可能性のある各 ODBC データベースに MSysConf という特別なテーブルを作成します。

SQL ステートメントの直接の実行

Microsoft SQL Server の Transact SQL ステートメントのように ODBC データベースだけで実行できるSQL ステートメントを実行する必要がある場合や、ストアード プロシージャを実行する場合は、データベースを直接開くか、または Connect プロパティに ODBC 接続文字列を含む Querydef オブジェクトを作成します。ExecuteSQL メソッドは、直接開かれた ODBC データベースでだけ機能します。Querydef オブジェクトを使ってプロシージャを実行すると、Jet データベース エンジンは複数の結果のレコードセットとメッセージをストアード プロシージャから返すことができます。

ODBC データベースを使う場合、LockEdits プロパティは常に偽 (False) です。特に指定しない限り、Jet データベース エンジンは共有的ロックを使用します。ODBC データベースのテーブルを更新できるのは、重複しないキーがテーブルに存在する場合だけです。一時的に作成された外部テーブルを使っての更新が必要な場合は、そのテーブルにインデックスを作成してから、テーブルにアタッチしたり、テーブルを直接開いたりします。

Connect 文字列の引数 LOGINTIMEOUT を設定すると、Jet データベース エンジンが ODBC データベースを開くためにかかる時間の上限を設定できます。また、Database オブジェクトの QueryTimeout プロパティを設定するか、Querydef オブジェクトの ODBCTimeout プロパティを設定すると、Jet データベース エンジンが ODBC クエリーを実行するためにかかる時間を設定できます。これらの設定された時間が経過すると、トラップできるエラーが発生します。


関連項目

外部データベースへのアクセス

Connect プロパティ

CreateQueryDef メソッド

データ (Data) コントロール

Database オブジェクト、Databases コレクション

ExecuteSQL メソッド

LockEdits プロパティ

ODBCTimeout プロパティ

OpenDatabase メソッド

OpenRecordset メソッド

QueryDef オブジェクト、QueryDefs コレクション

QueryTimeout プロパティ

RefreshLink メソッド

TableDef オブジェクト、TableDefs コレクション

SQL パススルー クエリーの使い方

SQL データベースでの MSysConf テーブルの使い方


Refill メソッド

関連項目	対象

連結コントロールを強制的に再描画し、再初期化ルーチンを呼び出してリストを再構築します。名前付き引数は指定できません。

構文

object.Refill

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Refill メソッドは、Refresh メソッドとは異なります。Refresh メソッドは、Repaint イベントを強制的に発生させるだけです。


関連項目

データ (Data) コントロール

Refresh メソッド (データ アクセス)


Refill メソッドの対象

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール


UpdateControls メソッド

関連項目	対象

データ (Data) コントロールの Recordset オブジェクトから、カレント レコードを取得して、データ コントロールに連結されたコントロールに適切なデータを表示します。名前付き引数は指定できません。

構文

object.UpdateControls

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

UpdateControls メソッドは、ユーザーがデータを変更してから、それを取り消したい場合などに、連結コントロールの内容を元の値に戻すために使います。このメソッドは、カレント レコードを再設定します。ただし、イベントは発生しません。


関連項目

Edit メソッド

Update メソッド

UpdateRecord メソッド


UpdateControls メソッドの対象

データ (Data) コントロール


UpdateRecord メソッド

関連項目	対象

連結コントロールの現在の値をデータベースに保存します。名前付き引数は指定できません。

構文

object.UpdateRecord

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

このメソッドを使うと、Validate イベント中に再び Validate イベントを発生させずに、連結コントロールの現在の内容をデータベースに保存できます。したがって、イベントの連鎖が発生するのを防ぐことができます。

UpdateRecord メソッドは、Edit メソッドを実行してフィールドを変更した後で Update メソッドを実行するのと同じです。ただし、イベントは発生しません。

このメソッドを使うと、Validate イベントの発生を避けることができます。

データベース内のレコードを更新する場合、データベースに書き込まれるどのレコードも、入力規則に従っている必要があります。この規則を確立するには、ValidationRule プロパティを設定します。Microsoft SQL Server を使用する場合は、Transact SQL プロパティに既定値、入力規則、トリガを記述して、参照整合性とデータの整合性を適用します。

更新が行われない場合もあります。たとえば、操作が参照整合性の制約に違反する場合、レコードが含まれているページがロックされている場合、データベースまたは Recordset オブジェクトが更新不可能な場合、ユーザーがその操作を実行する許可を得ていない場合などです。このような場合、トラップできるエラーが発生します。


関連項目

Update メソッド (データ アクセス)

UpdateControls メソッド


UpdateRecord メソッドの対象

データ (Data) コントロール


CellText メソッド

関連項目	例	対象

DB グリッド (DBGrid) コントロールのセルの内容をリッチ テキストで取得します。名前付き引数は指定できません。

構文

object.CellText bookmark

CellText メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

bookmark	必ず指定します。DB グリッド コントロール内の行を表す文字列式を指定します。

解説

CellText メソッドは、引数 bookmark で指定された行のカレント セルのデータを、リッチ テキストで返します。CellText メソッドは、値を取得するという点で Text プロパティと似ています。ただし、CellText メソッドでは、値を取得する行を直接指定できます。

CellText メソッドが返す値は、Text プロパティから取得した値に、Column オブジェクトの NumberFormat プロパティで指定された書式を適用したものです。

CellText メソッドを使って、特定の DB グリッド コントロールのセルを選択するには、Col プロパティに目的の列番号を設定し、CellText メソッドの引数 bookmark に特定のレコードを設定します。

CellText メソッドを使ってセルの情報を取得しても、カレント セルの位置は移動しません。


関連項目

Add メソッド (DB グリッド)

Bookmark プロパティ (データ アクセス)

CellValue メソッド

Col、Row プロパティ

ColIndex プロパティ

Column オブジェクト、Columns コレクション

データ (Data) コントロール

DB グリッド (DBGrid) コントロール

NumberFormat プロパティ

Text プロパティ

Value プロパティ


CellText メソッドの対象

Column オブジェクト


CellText メソッドの例

次のプログラムでは、DB グリッド (DBGrid) コントロール内に表示されている上端の行と下端の行から情報を取得し、ラベルにその情報を表示します。

Private Sub DataGrid1_Scroll (Cancel As Integer)

Dim TopRow, BottomRow

TopRow = DataGrid1.Columns(1).CellText(DataGrid1.FirstRow)

BottomRow = DataGrid1.Column(1).CellText(DataGrid1.RowBookmark_

 (DataGrid1.VisibleRows - 1))

Label1.Caption = "Records " & TopRow & " to " & _

 BottomRow & " are currently displayed."

End Sub


CellValue メソッド

関連項目	例	対象

DB グリッド (DBGrid) コントロールの指定された行にあるカレント セルのデータを、書式を含まない値で返します。名前付き引数は指定できません。

構文

object.CellValue bookmark

CellValue メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

bookmark	必ず指定します。選択している DB グリッド コントロールのセルに保存されている、書式設定を含まないデータを指定します。

解説

特定の DB グリッド コントロールのセルを選択するには、Col プロパティに目的の列番号を設定し、CellValue メソッドの引数 bookmark に特定のレコードを設定します。

CellValue メソッドは、現在の Column オブジェクトの Value プロパティの設定と同じ値を返します。ただし、CellValue メソッドを使うと、参照する DB グリッド コントロール内の特定の行を直接指定できます。

CellValue メソッドを使ってセルの情報を取得しても、カレント セルの位置は移動しません。


関連項目

Bookmark プロパティ (データ アクセス)

Col、Row プロパティ

ColIndex プロパティ

データ (Data) コントロール

DB グリッド (DBGrid) コントロール

NumberFormat プロパティ

Text プロパティ

Value プロパティ


CellValue メソッドの対象

Column オブジェクト


CellValue メソッドの例

次のプログラムでは、選択された範囲の行から、1 列のすべての値を取得して配列にします。

Private Sub Command1_Click ()

Dim I

ReDim CalcArray (0 to DataGrid1.SelBookmarks.Count - 1)

For I = 0 to DataGrid1.SelBookmarks.Count -1

' 選択された範囲の行のうち、1 行の値を

' 対応する CalcArray のセルに格納します。

CalcArray(I) = _

 DataGrid1.Columns(1).CellValue(DataGrid1.SelBookmarks(I))

Next I

End Sub


ColContaining メソッド

関連項目	例	対象

DB グリッド (DBGrid) コントロールの指定された X 座標の列の ColIndex プロパティの値を返します。DB グリッド コントロールの列には、X 座標の値が指定されています。名前付き引数は指定できません。

構文

object.ColContaining coordinate

ColContaining メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

coordinate	必ず指定します。コンテナの座標系に基づく水平座標 (X 値) を定義する、単精度浮動小数点数型 (Single) の数式を指定します。

解説

ColContaining メソッドは、引数 object で指定されたコントロールの列を表すインデックスの値を返します。この数値は、0 から Columns コレクションの Columns プロパティの設定値より 1 小さい値の範囲内です (0 から Columns.Count -1 まで)。このメソッドは、マウスおよびドラッグ関連のイベントを処理する場合に、ユーザーが DB グリッド コントロール内のどの列をクリックまたはドロップしたかを調べるときに便利です。

引数 coordinate がコンテナの座標系に収まらない場合は、トラップできるエラーが発生します。

注    ColContaining メソッドは、表示されている列ではなく、指定された列の ColIndex プロパティを返します。たとえば、引数 coordinate が最初に表示される列を指している場合に、既に 2 列がコントロールの左端からさらにスクロールされて非表示になっているとします。この場合、ColContaining メソッドは 2 を返します。


関連項目

ColIndex プロパティ

Column オブジェクト、Columns コレクション

データ (Data) コントロール

RowContaining メソッド


ColContaining メソッドの対象

DB グリッド (DBGrid) コントロール


GetBookmark メソッド

関連項目	例	対象

DB グリッド (DBGrid) コントロールの行にある、カレント行からの相対的なブックマークの値を返します。名前付き引数は指定できません。

構文

object.GetBookmark value

GetBookmark メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	必ず指定します。カレント行から相対的な位置にある、DB グリッド コントロールの行を示す長整数型 (Long) の数式を指定します。設定する値については、次の「設定値」を参照して下さい。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

0	カレント行のブックマークを返します。DBGrid1.Bookmark と同じです。

1	カレント行の次の行のブックマークを返します。

-1	カレント行の前の行のブックマークを返します。

n	カレント行から相対的に n 離れた行 (DBGrid1.Row + n) のブックマークを返します。

解説

カレント行が表示されていない場合、GetBookmark メソッドは、RowBookmark メソッドとは異なる値を返します。


関連項目

Bookmark プロパティ (データ アクセス)

データ (Data) コントロール

DB グリッド (DBGrid) コントロール

RowBookmark メソッド


GetBookmark メソッドの対象

DB グリッド (DBGrid) コントロール


GetBookmark メソッドの例

次のプログラムでは、ある列の更新された値を調べて、新しく設定された値が、その前後の行の値の中間にあるかどうかを確認します。

Private Sub DataGrid1_BeforeColUpdate (ColIndex As Integer, _

 OldValue as Variant, PrevVal, NextVal, CurVal, Cancel As Integer)

If ColIndex = 1 Then

PrevVal = DataGrid1.Columns(1).CellValue(_

 DataGrid1.GetBookmark(-1))

NextVal = DataGrid1.Columns(1).CellValue(_

 DataGrid1.GetBookmark(1))

CurVal = DataGrid1.Columns(1).Value

If CurVal > PrevVal Or CurVal < NextVal Then

Cancel = True

MsgBox "値は " & PrevVal & " と " & NextVal & " の間にあります。"

End If

End If

End Sub


Add メソッド (DB グリッド)

関連項目	対象

新しい列を Columns コレクションに追加、または新しいブックマークを DB グリッド (DBGrid) コントロールの SelBookmarks コレクションに追加します。名前付き引数は指定できません。

構文

object.Add(colindex)

object.Add bookmark

Add メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

colindex	必ず指定します。新しい Column オブジェクトを Columns コレクションのどの位置に挿入するかを指定する整数です。

bookmark	コレクションに追加するブックマークです。

設定値

引数 colindex の設定値は次のとおりです。

設定値	内容

0	左端の列として、新しい列を挿入します。

Count	引数 colindex が Count プロパティの設定と同じ場合、新しい列は、右端の列として挿入されます。

n	Columns コレクションの n 番めの列の左に、新しい列を挿入します。その結果、n 番めとそれに続くすべての列は増分されます。

解説

Add メソッドは引数 colindex に基づき、Columns コレクションに新しい Column オブジェクトを追加します。追加される列の Visible プロパティは偽 (False) に設定され、他のすべての列には既定値が設定されます。最初は、DataField プロパティに長さ 0 の文字列 ("")が設定されるので、新しい行は連結されません。Columns コレクションの Count プロパティは、新しい列を反映して増分されます。

SelBookmarks コレクションにブックマークを追加するには、Add メソッドを使用します。SelBookmarks コレクションにブックマークを追加すると、DB グリッド コントロール内でブックマークが選択されます。


関連項目

ColIndex プロパティ

データ (Data) コントロール

DB グリッド (DBGrid) コントロール

Remove メソッド (データ アクセス)


Add メソッド (DBGrid) の対象

Columns コレクション

SelBookmarks コレクション


Rebind メソッド

関連項目	例	対象

DB グリッド (DBGrid) コントロールのプロパティと列を作成し直します。名前付き引数は指定できません。

構文

object.Rebind

解説

Rebind メソッドを実行すると、DB グリッド コントロールの DataSource プロパティを設定した場合と同じ操作が実行されます。DB グリッド コントロールは、現在のデータ (Data) コントロールのプロパティに基づいて、列、見出し、その他のプロパティを初期化します。


関連項目

データ (Data) コントロール

DB グリッド (DBGrid) コントロール

Refresh メソッド (データ アクセス)

Requery メソッド


Rebind メソッドの対象

DB グリッド (DBGrid) コントロール


Rebind メソッドの例

次のプログラムでは、パブリック変数を調べ、ユーザーがテーブルの構成を変更していた場合、元のテーブル情報を使って、テーブルを再構築します。

Private Sub CheckForRebind_Click ()

If UserChangedLayout Then

DataGrid1.Rebind

End If

End Sub


Remove メソッド (データ アクセス)

関連項目	対象

DB グリッド (DBGrid) コントロールで選択されている列の SelBookmarks コレクションから項目を削除します。または、DB グリッド コントロールの Columns コレクションから Column オブジェクトを削除します。名前付き引数は指定できません。

構文

object.Remove index | bookmark

Remove メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	必ず指定します。0 からコレクションの Count プロパティの設定値 -1 までの範囲の整数を指定します。

bookmark	必ず指定します。DB グリッド コントロールの選択されている列に格納されている、書式文字列を指定していないデータを含む文字列式を指定します。

解説

Remove メソッドは、DB グリッド コントロールから行の選択を解除し、SelBookmarks コレクションからブックマークを削除します。また、DB グリッド コントロールの Count プロパティの設定値を減分します。行のインデックス、または行のブックマークを指定して、削除する行を選択することができます。SelBookmarks コレクションに含まれていない行を指定すると、トラップできるエラーが発生します。


関連項目

Add メソッド (DB グリッド)

ColIndex プロパティ

データ (Data) コントロール

DB グリッド (DBGrid) コントロール


 Remove メソッドの対象

Columns コレクション

SelBookmarks コレクション


RowBookmark メソッド

関連項目	例	対象

DB グリッド (DBGrid) コントロールに表示されている行にある、ブックマークの値を返します。名前付き引数は指定できません。

構文

object.RowBookmark value

RowBookmark メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	必ず指定します。0 から DB グリッド コントロールの VisibleRows プロパティの設定値から 1 を引いた値の範囲内の整数を指定します。

解説

RowBookmark(0) は、DB グリッド コントロールの FirstRow プロパティと同じブックマークを返します。カレント行は、DB グリッド コントロールの Bookmark プロパティによって決まります。ただし、カレント行が表示されていない場合、RowBookmark メソッドでは、カレント行のブックマークを取得できないことがあります。

注   DB グリッド コントロールで表示されている行を変更すると、RowBookmark メソッドが返すブックマークも変更されるので、使用するたびに参照してください。


関連項目

Bookmark プロパティ (データ アクセス)

FirstRow プロパティ

GetBookmark メソッド

SelBookmarks コレクション

SelBookmarks プロパティ

VisibleRows プロパティ


RowBookmark メソッドの対象

DB グリッド (DBGrid) コントロール


RowBookmark メソッドの例

次のプログラムでは、グリッド内に現在表示されているすべての行を選択します。

Private Sub SelectAllVisible_Click ()

Dim I

For I = 0 To DataGrid1.VisibleRows - 1

DataGrid1.SelBookmarks.Add DataGrid1.RowBookmark(I)

Next I

End Sub


RowContaining メソッド

関連項目	例	対象

DB グリッド (DBGrid) コントロールの、指定された垂直 (Y) 座標の行番号を返します。名前付き引数は指定できません。

構文

object.RowContaining coordinate

RowContaining メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

coordinate	必ず指定します。コンテナの座標系に基づく垂直座標 (Y 値) を、単精度浮動小数点数型 (Single) の数式で指定します。

解説

RowContaining メソッドは、引数 object で指定されたコントロールの、1 つの列を表すインデックスの値を返します。この値は 0 ～ VisibleRows プロパティの設定値 -1 の範囲内の数値です。このメソッドは、マウスおよびドラッグ関連のイベントを処理する場合に、ユーザーが DB グリッド コントロール内のどの行をクリックまたはドロップしたかを調べるときに便利です。

coordinate がコンテナの座標系に収まらない場合は、トラップできるエラーが発生します。


関連項目

ColContaining メソッド

ColIndex プロパティ

Column オブジェクト、Columns コレクション

データ (Data) コントロール


RowContaining メソッドの対象

DB グリッド (DBGrid) コントロール


RowContaining、ColContaining メソッドの例

次のプログラムでは、ユーザーがドラッグを開始したセルの値を保存します。

Dim SaveValue

Private Sub DataGrid1_MouseDown (Button As Integer, Shift As Integer, _

 X As Single, Y As Single)

Dim RowValue, ColValue

' マウス ポインタがある行と列の値を取得します。

RowValue = DataGrid1.RowContaining (Y)

ColValue = DataGrid1.ColContaining (X)

' 行と列の値が有効な場合、セルのテキストを保存してドラッグを開始します。

If RowValue > 0 And RowValue < DataGrid1.VisibleRows And _

 ColValue > 0 And ColValue < DataGrid1.VisibleCols Then

SaveValue = DataGrid1.Columns(ColValue)._

 CellValue(DataGrid1.RowBookmark(RowValue))

DataGrid1.Drag 1

End If

End Sub


RowTop メソッド

関連項目	例	対象

DB グリッド (DBGrid) コントロールの指定された行の上端の Y 座標の値を返します。名前付き引数は指定できません。

構文

object.RowTop value

RowTop メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	必ず指定します。0 ～ VisibleRows プロパティの設定値 - 1 の範囲内で、行を示す整数を指定します。

解説

RowTop メソッドは、引数 value で指定された行の上端の、コンテナの ScaleMode プロパティに基づく Y 座標の値を返します。

RowTop メソッドを Column オブジェクトの RowHeight プロパティ、Left プロパティ、Width プロパティと共に使うと、DB グリッド コントロールで選択されている、セルの正確な位置と大きさを知ることができます。


関連項目

ColContaining メソッド

Column オブジェクト、Columns コレクション

データ (Data) コントロール

Left、Top プロパティ

RowHeight プロパティ

VisibleRows プロパティ

Height、Width プロパティ


 RowTop メソッドの対象

DB グリッド (DBGrid) コントロール


RowTop メソッドの例

次のプログラムでは、グリッド内でドラッグ操作を開始します。グリッドのセルの位置およびサイズ関連のプロパティを使用すると、セルと同じサイズのラベル (Label) コントロールをドラッグ オブジェクトとして使うことができます。

Private Sub DataGrid1_MouseDown (Button As Integer, Shift As Integer, _

 X As Single, Y As Single)

' 変数を宣言します。

Dim DY, DX, RowValue, ColValue, CellLeft, CellTop

ColValue = DataGrid1.ColContaining(X)

RowValue = DataGrid1.RowContaining(Y)

DY = DataGrid1.RowHeight	' セルの高さを取得します。

DX = DataGrid1.Columns(ColValue).Width	' セルの幅を取得します。

CellLeft = DataGrid1.Columns(ColValue).Left

CellTop = DataGrid1.RowTop(RowValue) + Y - DY /2

Label1.Move CellLeft, CellTop, DX, DY

Label1.Drag	' ラベルの輪郭をドラッグします。

End Sub


Scroll メソッド

関連項目	例	対象

単一の操作で、DB グリッド (DBGrid) コントロールを水平方向および垂直方向へスクロールします。名前付き引数は指定できません。

構文

object.Scroll colvalue, rowvalue

Scroll メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

colvalue	必ず指定します。コントロール内の列を示す、長整数型 (Long) の数式を指定します。

rowvalue	必ず指定します。コントロール内の行を示す、長整数型 (Long) の数式を指定します。

解説

引数 colvalue と rowvalue に正の値を指定すると、、DB グリッド コントロールは右方向または下方向にスクロールします。負の値を指定すると、左方向または上方向にスクロールします。範囲外の値を指定してもエラーは発生せず、DB グリッド コントロールは可能な限りスクロールします。TopRow プロパティおよび Left プロパティを設定しても同じ結果が得られます。ただし、これらのプロパティを使う場合は、1 つずつプロパティを設定する必要があるので、設定されるたびに別々の Paint イベントが発生します。


関連項目

Left、Top プロパティ

TopRow プロパティ


Scroll メソッドの対象

DB グリッド (DBGrid) コントロール


Scroll メソッドの例

次のプログラムでは、2 つのボタンを作成して、DB グリッド (DBGrid) コントロールを対角方向へスクロールできるようにします。ボタンの 1 つを選択すると右斜め下へ、もう一方のボタンを選択すると左斜め上へスクロールします。

Private Sub ScrollDownRight_Click

' 右斜め下にスクロールします。

DataGrid1.Scroll DataGrid1.VisibleCols, DataGrid1.VisibleRows

End Sub

Private Sub ScrollUpLeft_Click

' 左斜め上へスクロールします。

DataGrid1.Scroll -DataGrid1.VisibleCols, -DataGrid1.VisibleRows

End Sub


Database プロパティ

関連項目	例	対象

データ (Data) コントロールの基になる Database オブジェクトへの参照を取得します。

構文

object.Database

Set databaseobject = object.Database (Professional Edition のみ)

Database プロパティの構文の指定項目は次のとおりです。

指定項目	内容

databaseobject	データ コントロールで作成される、有効な Database オブジェクトへの参照を表すオブジェクト式を指定します。

object	オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Database オブジェクトは、データ コントロールの DatabaseName、Exclusive、ReadOnly、Connect の各プロパティに基づいて作成されます。

Database オブジェクトには、データの管理を行うためのプロパティやメソッドがあります。Close メソッドや Execute メソッドのような、Database オブジェクトのすべてのメソッドは、データ コントロールの Database プロパティを通じて使用することができます。Database オブジェクトの内部構造を調べるには、TableDefs コレクション中の各 TableDef オブジェクトの Fields コレクションおよび Indexes コレクションを調べます。

データ コントロールの Recordset プロパティには、作成した Recordset オブジェクトを設定することができます。しかし、データ コントロールの Database プロパティには、データベースを開いて新たに作成した Database オブジェクトを設定することはできません。


Database プロパティの対象

データ (Data) コントロール


関連項目

Connect プロパティ

データ アクセスの概要

データ (Data) コントロール

Database オブジェクト、Databases コレクション

DatabaseName プロパティ

Exclusive プロパティ

Field オブジェクト、Fields コレクション

Index オブジェクト、Indexes コレクション

Name プロパティ

ReadOnly プロパティ (データ アクセス)

Recordset プロパティ

TableDef オブジェクト、TableDefs コレクション


DatabaseName プロパティ

関連項目	例	対象

データ (Data) コントロールのデータ ソースの名前と場所を設定します。値の取得も可能です。

構文

object.DatabaseName [ = pathname ]

DatabaseName プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

pathname	データベース ファイルの場所を表す文字列式を指定します。

解説

ネットワーク システムがネットワークの絶対パス名をサポートしている場合は、引数 pathname に \\MYSERVER\MYSHARE\DATABASE.MDB などの絶対パス名を指定できます。

データベースの種類は、引数 pathname に指定されたファイルやディレクトリによって異なります。

pathname の参照先	データベースの種類

.MDB ファイル	Microsoft Access データベース

.DDF file	Btrieve データベース

.DBF ファイルを含むディレクトリ	dBASE データベース

.XLS ファイルを含むディレクトリ	Microsoft Excel データベース

.DBF ファイルを含むディレクトリ	FoxPro データベース

.PDX ファイルを含むディレクトリ	Paradox データベース

該当するデータベース ファイルを含むディレクトリ	テキスト形式データベース

コントロールの Connect プロパティに、ODBC.INI ファイルに登録されているデータ ソース名 (DSN) が指定されているとき、SQL Server や Oracle のような ODBC データベースの DatabaseName プロパティは、空白にしておくことができます。

コントロールの Database オブジェクトを開いた後でこのプロパティを変更したときは、Refresh メソッドを使って新たにデータベースを開く必要があります。

注   外部データベースにアクセスするときにパフォーマンスを向上させるには、Microsoft Jet データベース エンジンのデータベース (.MDB) に外部データベースのテーブルをアタッチし、このデータベースの名前を DatabaseName プロパティに設定することをお勧めします


DatabaseName プロパティの対象

データ (Data) コントロール


関連項目

外部データベースへのアクセス

Connect プロパティ

データ (Data) コントロール

OpenDatabase メソッド

Refresh メソッド (データ アクセス)

RegisterDatabase メソッド


DataChanged プロパティ

関連項目	対象

連結コントロールのデータが、カレント レコードからデータを取得する以外の処理によって変更されたことを示す値を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.DataChanged [= value]

DataChanged プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	データが変更されたかどうかを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	現在コントロール内にあるデータは、カレント レコード内のデータと異なります。

False	(既定値) 現在コントロール内にあるデータは、カレント レコード内のデータと同じです。

解説

データ (Data) コントロールは、レコード間を移動するときに、データをカレント レコードのフィールドから、特定のフィールドやレコード全体に連結されたコントロールに渡します。データが連結コントロールに表示されたとき、DataChanged プロパティの値は偽 (False) に設定されます。ユーザーまたは他の操作によって連結コントロール内の値が変更されたとき、DataChanged プロパティの値は真 (True) に設定されます。

データ コントロールが他のレコードに移動を開始すると、Validate イベントが発生します。ある連結コントロールに対して、DataChanged プロパティが真 (True) のとき、データ コントロールは Edit メソッドと Update メソッドを自動的に呼び出して、データベースに変更を通知します。

連結コントロールを使ってデータベースに変更を保存しない場合、Validate イベントで DataChanged プロパティを偽 (False) に設定します。

イベントの連鎖を避けるために、連結コントロールと非連結コントロールの Change イベントでは、コード内で DataChanged プロパティの値を調べてください。


DataChanged プロパティの対象

チェック ボックス (CheckBox) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


関連項目

Change イベント

データ アクセスの概要

データ (Data) コントロール

Edit メソッド

Update メソッド (データ アクセス)

UpdateRecord メソッド

Validate イベント


DataField プロパティ

関連項目	対象

カレント レコードのフィールドにコントロールを連結する値を設定します。値の取得も可能です。

構文

object.DataField [= value]

DataField プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	Recordset オブジェクトの 1 つのフィールド名への参照を表す、文字列式を指定します。この Recordset オブジェクトは、データ (Data) コントロールの RecordSource プロパティと DatabaseName プロパティによって指定されています。

解説

連結コントロールを使うと、データベースの特定のデータにアクセスできます。1 つのフィールドを処理する連結コントロールは、一般にカレント レコードの特定のフィールドの値を表示します。連結コントロールの DataSource プロパティは、有効なデータ コントロールの名前を示します。また、DataField プロパティは、データ コントロールによって作成された Recordset オブジェクトの有効なフィールド名を示します。この 2 つのプロパティによって、連結コントロールに表示されるデータが指定されます。

式の結果を返す、QueryDef オブジェクトや SQL ステートメントを使うとき、Microsoft Jet データベース エンジンはフィールド名を自動的に生成します。たとえば、SQL クエリーで SQL 集合関数や式をコードで記述するときは、AS 句を使って集合フィールドをエイリアス名で指定しない限り、フィールド名が自動的に生成されます。通常、式のフィールド名には、Expr1 の後に 000 から始まる 3 文字の数値が続きます。たとえば、最初に返される式には、Expr1000 という名前が付けられます。

SQL クエリーのコードを記述する場合、次に示すように、式の結果として生成される列にエイリアス名を付けることをお勧めします。

Data1.RecordSource = "Select AVG(Sales)  " _

& " AS AverageSales From SalesTable"

MyText.DataField = "AverageSales"

MyText.DataSource = Data1

Data1.Refresh

注   DataField プロパティには、各連結コントロールに対して有効な値を設定する必要があります。データ コントロールの RecordSource プロパティの設定値を変更し、Refresh メソッドを使うと、Recordset プロパティは新しく設定されたオブジェクトを認識します。この操作によって連結コントロールの DataField プロパティの設定値が無効になるため、トラップできるエラーが発生します。


DataField プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


関連項目

コントロールのデータ (Data) コントロールへの連結

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

データ (Data) コントロール

DataSource プロパティ

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

ピクチャ ボックス (PictureBox) コントロール

Recordset プロパティ

SELECT ステートメント (SQL)

テキスト ボックス (TextBox) コントロール


DataSource プロパティ

関連項目	対象

データベースに現在のコントロールを連結するために使用する、データ (Data) コントロールを設定します。実行時には使えません。

解説

実行時に、データベースのフィールドにコントロールを連結するには、デザイン時にプロパティ ウィンドウを使って、DataSource プロパティにデータ コントロールを指定しておく必要があります。

データ コントロールが処理する Recordset オブジェクト内のフィールドと連結するには、DataField プロパティに Field オブジェクト名も指定する必要があります。DataField プロパティとは異なり、実行時には DataSource プロパティを設定できません。


DataSource プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

OLE コンテナ (OLE) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


関連項目

コントロールのデータ (Data) コントロールへの連結

コンボ ボックス (ComboBox) コントロール

データ アクセスの概要

データ (Data) コントロール

DataField プロパティ

リスト ボックス (ListBox) コントロール

Recordset プロパティ

RecordSource プロパティ


Exclusive プロパティ

関連項目	対象

データ (Data) コントロールの基になるデータベースを、シングル ユーザー アクセスとマルチユーザー アクセスのどちらのモードで開くかを設定します。値の取得も可能です。

構文

object.Exclusive [ = value]

Exclusive プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ユーザーのアクセス時のモードを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	シングル ユーザー アクセスでデータベースを開きます。他のユーザーは、そのデータベースが閉じられるまで開くことができません。

False	(既定値) マルチユーザー アクセスでデータベースを開きます。データベースが開かれていても、他のユーザーは、そのデータベースを開いてアクセスすることができます。

解説

このプロパティの値は、データベースを開くときに DatabaseName、ReadOnly、Connect の各プロパティと組み合わせて使います。Professional Edition では、このプロパティは OpenDatabase メソッドの引数 exclusive に対応します。

Exclusive プロパティは、Database オブジェクトを開くときにだけ使います。実行時にこのプロパティの値を変更したときは、Refresh メソッドを使って変更を有効にする必要があります。既に他のユーザーがデータベースを開いているときは、排他的に開くことはできません。また、トラップできるエラーも発生します。

データベースを排他的に開くと、操作が高速になります。

データベースを排他的に開くと、そのアプリケーションはインスタンスを必要な数だけ開くことができます。ただし、システムで実行中の他のアプリケーションは、そのデータベースを開くことができなくなります。

ODBC を通じてデータベースにアクセスすると、Exclusive プロパティは無効になります。


Exclusive プロパティの対象

データ (Data) コントロール


関連項目

Attributes プロパティ

Close メソッド

Connect プロパティ

データ アクセスの概要

DatabaseName プロパティ

OpenDatabase メソッド

ReadOnly プロパティ (データ アクセス)

Refresh メソッド (データ アクセス)


Options プロパティ

関連項目	対象

コントロールの Recordset プロパティで示される、Recordset オブジェクトが持つ 1 つ以上の属性を指定する値を設定します。値の取得も可能です。

構文

object.Options [ = value ]

Options プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	Recordset オブジェクトの属性を指定する、定数または値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

Options プロパティを設定するには、次に示す値を 1 つ以上組み合わせて使います。複数のオプションを使用する場合は、各定数を加算した値を指定します。

定数	値	内容

dbDenyWrite	1	マルチユーザー環境では、他のユーザーが Recordset オブジェクトのレコードを変更することはできません。

dbDenyRead	2	マルチ ユーザー環境では、他のユーザーがレコードを読み取ることができません。(テーブル タイプのレコードセットのみ。)

dbReadOnly	4	Recordset オブジェクトのレコードは変更できません。

dbAppendOnly	8	Recordset オブジェクトに新しいレコードを追加できますが、既存のレコードを読み込むことはできません。

dbInconsistent	16	結合条件に違反するときでも、Recordset オブジェクトのすべてのフィールドが更新されます。

dbConsistent	32	(既定値) 結合条件に違反しないフィールドだけ更新されます。

dbSQLPassThrough	64	データ (Data) コントロールの RecordSource プロパティに SQL ステートメントを指定して使うとき、SQL Server や Oracle データベースのような ODBC データベースに、SQL ステートメントを送って処理します。

dbForwardOnly	256	Recordset オブジェクトは前方にだけスクロールします。使用できる移動メソッドは、MoveNext メソッドだけです。

dbSeeChanges	512	編集中のデータを他のユーザーが変更しようとした場合に、トラップできるエラーを生成します。

解説

これらの定数は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも一覧表示されます。

実行時に Options プロパティを変更したときは、Refresh メソッドを使って変更を有効にする必要があります。

Professional Edition では、このプロパティは OpenRecordset メソッドまたは以前のバージョンの CreateDynaset メソッドの引数 options に対応します。

このプロパティに複数の値を設定する場合、各定数を加算してオプションを組み合わせます。たとえば、定数 dbReadOnly と定数 dbInconsistent の両方を設定するには、次のコードを使います。

Data1.Options = dbAppendOnly + dbInconsistent

このプロパティが特定の値を持っているかどうかを調べるには、And 演算子を使います。たとえば、Recordset オブジェクトが読み取り専用で開かれているかどうかを調べるには、次のコードを使います。

If Data1.Options And dbReadOnly Then...

定数 dbInconsistent と定数 dbConsistent の両方を指定すると、Recordset オブジェクトの既定値である定数 dbConsistent が設定されます。

注   dbSQLPassThrough オプションは、以前のバージョンとの互換性を保つためにサポートされているもので、ダイナセット タイプまたはスナップショット タイプの Recordset オブジェクトを作成するときにだけ使います。パフォーマンスと機能性の向上を図るために、以前に作成された SQL パススルー クエリーの QueryDef オブジェクトを使って、データ コントロールの Recordset プロパティを QueryDef オブジェクトで作成した Recordset オブジェクトに設定してください。


Options プロパティの対象

データ (Data) コントロール


関連項目

CreateQueryDef メソッド

データ アクセスの概要

OpenRecordset メソッド

Recordset プロパティ


ReadOnly プロパティ (データ アクセス)

関連項目	対象

データ (Data) コントロール。

このコントロールの Database プロパティで示されるデータベースが、読み取り専用で開かれているかどうかを示す値を設定します。値の取得も可能です。

ファイル リスト ボックス (FileListBox) コントロール。

ファイル リスト ボックスが、読み取り専用の属性を持つファイルを含んでいるかどうかを示す値を設定します。値の取得も可能です。

構文

object.ReadOnly [= value]

ReadOnly プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	読み取りおよび書き込みのアクセス方法を表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	データ コントロールの場合。

このコントロールの Database オブジェクトは、読み取り専用のデータベースとして開かれます。データの変更はできません。

ファイル リスト ボックス コントロールの場合。

このコントロールのリスト上には、読み取り専用ファイルが表示されます。

False	(既定値) データ コントロールの場合。

このコントロールの Database オブジェクトは、読み取りおよび書き込みの可能なデータベースとして開かれます。

ファイル リスト ボックス コントロールの場合。

このコントロールには、読み取り専用ファイルは表示されません。

解説

データ コントロールの ReadOnly プロパティを使うと、基になっている Database オブジェクトを指定できます。たとえば、データを表示するだけのアプリケーションを作成することができます。また、読み取り専用の Database オブジェクトの方が高速にアクセスできます。

データ コントロールの ReadOnly プロパティは、アプリケーションが最初にデータベースを開くときにだけ使用されます。アプリケーションがデータベースの他のインスタンスを開くときには、無視されます。このプロパティの変更を有効にするには、データベースのすべてのインスタンスを閉じ、Refresh メソッドを使う必要があります。

Professional Edition では、このプロパティは OpenDatabase メソッドの引数 readonly に対応します。

オペレーティング環境で使用されている標準のファイル属性に基づいて、表示するファイルの種類を指定するには、ファイル リスト ボックス コントロールの ReadOnly プロパティを設定します。実行時にこのプロパティを設定すると、リストの内容が初期化されてから、対応する属性を持つファイルだけが表示されます。たとえば、アクセスが制限されているアプリケーションでは、ReadOnly プロパティの値を真 (True) に設定して、読み取り専用のファイルだけを表示することもできます。


ReadOnly プロパティ (データ アクセス) の対象

データ (Data) コントロール

ファイル リスト ボックス (FileListBox) コントロール


関連項目

データ アクセスの概要

Database プロパティ

OpenDatabase メソッド

Path プロパティ

Pattern プロパティ

Refresh メソッド (データ アクセス)


RecordSource プロパティ

関連項目	対象

データ (Data) コントロールの基になるテーブル、SQL ステートメント、または QueryDef オブジェクトを設定します。値の取得も可能です。

構文

object.RecordSource [= value ]

RecordSource プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	名前を表す文字列式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

テーブル名	Database オブジェクトの TableDefs コレクションで定義されているテーブル名を指定します。

SQL クエリー	データベースに対する適切な構文を使用した、有効な SQL 文字列を指定します。

QueryDef	Database オブジェクトの QueryDefs コレクション内の QueryDef オブジェクト名を指定します。

解説

RecordSource プロパティは、フォーム上の連結コントロールを使ってアクセス可能なレコード ソースを指定します。

データベース内の既存のテーブル名を RecordSource プロパティに設定すると、データ コントロールに連結された連結コントロールに、そのテーブルのすべてのフィールドが表示されます。取得されるレコードの順序は、Recordset オブジェクトの Index プロパティを使って選択した、Index オブジェクトによって決まります。Index プロパティを設定しないとき、データは順不同で返されます。

データベースの既存の QueryDef オブジェクトの名前を RecordSource プロパティに設定すると、データ コントロールに連結された連結コントロールに、QueryDef オブジェクトが返すすべてのフィールドが表示されます。取得されるレコードの順序は、QueryDef オブジェクトのクエリーによって決まります。QueryDef オブジェクトに順序が指定されていないとき、データは順不同で返されます。

RecordSource プロパティにレコードを返す SQL ステートメントを設定すると、データ コントロールに連結された連結コントロールに、SQL クエリーが返すすべてのフィールドが表示されます。このステートメントには、ORDER BY 句、レコードに対するフィルタを実行する WHERE 句を含めることができます。これらの句を使ってデータ コントロールによって作成された Recordset オブジェクトが返すレコードの順序を変更することができます。Database プロパティや Connect プロパティに、Microsoft Jet データベース エンジン以外のデータベースが指定されているときや、Options プロパティに dbSQLPassThrough オプションが設定されているときは、SQL クエリーにそのデータベース エンジンが要求する構文を使用してください。

注    QueryDef オブジェクトまたは SQL ステートメントが式から値を返すとき、式のフィールド名は常に Microsoft Jet データベース エンジンによって自動的に作成されます。通常、式のフィールド名には、Expr1 の後に 000 から始まる 3 文字の数値が続きます。たとえば、最初に返される式には、Expr1000 という名前が付けられます。

ほとんどの場合、連結コントロールに連結する列の名前をわかりやすくするために、式にはエイリアス名を付けます。詳細については、SQL の「SELECT ステートメント (SQL)」の AS 句に関する説明を参照してください。

実行時に RecordSource プロパティの値を変更したときは、Refresh メソッドを使って変更を有効にする必要があります。

注   DataField プロパティには、各連結コントロールに対して有効な値を設定する必要があります。データ コントロールの RecordSource プロパティの設定値を変更し、Refresh メソッドを使うと、Recordset プロパティは新しく設定されたオブジェクトを認識します。この操作によって連結コントロールの DataField プロパティの設定値が無効になるため、トラップできるエラーが発生します。


RecordSource プロパティの対象

データ (Data) コントロール


関連項目

DatabaseName プロパティ

DataField プロパティ

DataSource プロパティ

データベースのクエリー

QueryDef オブジェクト、QueryDefs コレクション

Recordset オブジェクト、Recordsets コレクション

SQL を使ったデータの取得

SELECT ステートメント (SQL)

Table オブジェクト


Recordset プロパティ

関連項目	対象

データ (Data) コントロールのプロパティまたは既存の Recordset オブジェクトによって定義された、Recordset オブジェクトを設定します。値の取得も可能です。

構文

object.Recordset [= value ]

Recordset プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	Recordset オブジェクトを表す文字列式を指定します。

解説

アプリケーションを起動すると、データ コントロールは自動的に初期化されます。Connect、DatabaseName、Options、RecordSource、Exclusive、ReadOnly、RecordsetType の各プロパティが有効なとき、または実行時にデータ コントロールのこれらのプロパティを設定して Refresh メソッドを使うとき、Microsoft Jet データベース エンジンはこれらのプロパティに基づいて新しい Recordset オブジェクトを作成しようとします。この Recordset オブジェクトには、データ コントロールの Recordset プロパティを使ってアクセスできます。

Recordset プロパティは、他の Recordset オブジェクトと同じように使うことができます。たとえば、Recordset オブジェクトのメソッドやプロパティを使って、Recordset オブジェクトの基となっているスキーマの構造を調べることができます。

また、データ コントロールの RecordsetType プロパティを設定すると、Recordset オブジェクトの種類を指定できます。特定の種類を指定しないときは、ダイナセット タイプの Recordset オブジェクトが作成されます。RecordsetType プロパティを設定すると、テーブル タイプ、スナップショット タイプ、ダイナセット タイプなど、任意の種類の Recordset オブジェクトを作成できます。ただし、Jet データベース エンジンが要求された種類のオブジェクトを作成できないときは、トラップできるエラーが発生します。

作成される Recordset オブジェクトの種類は、実行時に Recordset オブジェクトの Type プロパティ、またはデータ コントロールの RecordsetType プロパティを調べることによって取得できます。ただし、使用される定数は、作成する Recordset オブジェクトの種類によって異なります。次に例を示します。

If Data1.Recordset.Type = dbOpenDynaset Then ...

If Data1.RecordsetType = dbDynasetType Then ...

ダイナセット タイプまたはテーブル タイプの Recordset オブジェクトを更新しようとしても、Recordset オブジェクトを更新できない場合があります。基になるデータベース、テーブル、フィールドを更新できないときは、Recordset オブジェクトの全体または一部が読み取り専用になります。コードでレコードが変更可能かを判断するには、Database オブジェクトと Recordset オブジェクトの Updatable プロパティ、または Field オブジェクトの DataUpdatable プロパティを調べます。

Recordset オブジェクトが返すレコードの総数を取得するには、最後のレコードに移動し、 Recordset オブジェクトの RecordCount プロパティを調べます。次の例は、Recordset オブジェクトの RecordCount プロパティと Recordset プロパティを組み合わせて、データ コントロールのレコードセットに含まれているレコード数を表示する方法を示します。

Data1.Recordset.MoveLast

MsgBox "レコード: " & Data1.Recordset.RecordCount

Professional Edition

コードまたは別のデータ コントロールを使って Recordset オブジェクトを作成するときは、新しい Recordset オブジェクトを、データ コントロールの Recordset プロパティに設定することができます。データ コントロール内の既存の Recordset オブジェクトと、それに関連付けられた Database オブジェクトは、新しい Recordset オブジェクトが Recordset プロパティに割り当てられたときに解放されます。

注   Recordset プロパティが設定されると、データ コントロールは現在の Recordset オブジェクトや Database オブジェクトを解放しますが閉じることはしません。他にユーザーがいないとき、データベースは自動的に閉じられます。Recordset プロパティを設定する前に、そのデータ コントロールに関連付けられた Recordset オブジェクトや Database オブジェクトを閉じることもできます。

データ コントロールに連結された連結コントロールの DataField プロパティは、新しい Recordset オブジェクトのフィールド名と一致するように設定してください。

たとえば、コード内で Recordset オブジェクトを作成し、それを既存のデータ コントロールに渡すときは、次のようなコードを使います。

Dim Db As Database, Rs As Recordset	' パブリック変数として定義します。

Sub ApplyRecordset()

Set Db = Workspaces(0).OpenDatabase("MYDB.MDB")

Set Rs = Db.OpenRecordset("MyTable") ' 既定値を使って、テーブル タイプの Recordset オブジェクトを開きます。

Set Data1.Recordset = Rs	' Recordset プロパティに割り当てます。

Data1.Recordset.Index = "MyIndex"

Debug.print Rs.Type	' 作成されたレコードセットの種類を表示します。

End Sub

この方法を利用して、MDI の親フォーム上には非表示のデータ コントロールを 1 つ、MDI 子フォーム上には可視のデータ  コントロールを作成し、MDI における親と子のデータ結合を作成できます。MDI 子フォームの Form_Load イベントで、親フォームのデータ コントロールの Recordset プロパティに、子フォームのデータ コントロールの Recordset プロパティを設定します。この設定によって、すべての子フォームとその連結コントロールを親フォームと同期させることができます。

データ コントロールが作成するすべての Recordset オブジェクトは、Workspaces(0) に構築されます。データ コントロールを使って他の Workspace オブジェクトでデータベースを操作する必要がある場合は、上に示した方法を使って、目的の Workspace オブジェクトでデータベースを開いてから新規に Recordset オブジェクトを作成し、データ コントロールの Recordset プロパティに新しい Recordset オブジェクトを設定します。

重要   データ コントロールの Recordset オブジェクトのプロパティは、Recordset プロパティを使って任意に参照できます。Recordset オブジェクトを直接参照すると、Table オブジェクトで使う Index オブジェクト、QueryDef オブジェクトの Parameters コレクション、または Recordset オブジェクトの種類を調べることができます。


Recordset プロパティの対象

データ (Data) コントロール


関連項目

DataField プロパティ

DataUpdatable プロパティ

FindFirst、FindLast、FindNext、FindPrevious メソッド

Index プロパティ (データ アクセス)

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

Options プロパティ

RecordCount プロパティ

Recordset オブジェクト、Recordsets コレクション

RecordsetType プロパティ

RecordSource プロパティ

Type プロパティ (データ アクセス)

Updatable プロパティ


BOFAction、EOFAction プロパティ

関連項目	対象

BOF プロパティまたは EOF プロパティが真 (True) のときに、データ (Data) コントロールが実行する動作を示す値を設定します。値の取得も可能です。

構文

object.BOFAction [= value]

object.EOFAction [= value]

BOFAction プロパティと EOFAction プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	動作を表す定数または値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

BOFAction プロパティの引数 value の設定値は次のとおりです。

定数	値	内容

vbBOFActionMoveFirst	0	(既定値) MoveFirst メソッド。最初のレコードをカレント レコードとして保持します。

vbBOFActionBOF	1	BOF。Recordset オブジェクトの先頭を越えて移動すると、先頭のレコード上でデータ コントロールの Validate イベントが発生し、次に無効なレコード (BOF) 上で Reposition イベントが発生します。このとき、データ コントロール上の <前のレコード> ボタンは無効になります。

EOFAction プロパティの引数 value の設定値は次のとおりです。

定数	値	内容

vbEOFActionMoveLast	0	(既定値) MoveLast メソッド。最後のレコードをカレント レコードとして保持します。

vbEOFActionEOF	1	EOF。Recordset オブジェクトの末尾を越えて移動すると、最後のレコード上でデータ コントロールの Validate イベントが発生し、次に無効なレコード (EOF) 上で Reposition イベントが発生します。このとき、データ コントロール上の <次のレコード> ボタンは無効になります。

vbEOFActionAddNew	2	AddNew メソッド。最後のレコードを越えて移動すると、カレント レコード上でデータ コントロールの Validate イベントが発生し、次に AddNew メソッドが自動的に実行され、追加されたレコード上で Reposition イベントが発生します。

解説

これらの定数は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリに一覧表示されます。

EOFAction プロパティに定数 vbEOFActionAddNew を設定し、データ コントロールを使って、カレント レコード ポインタを EOF に移動すると、カレント レコードは新しいレコードとしてコピー バッファに格納されます。このとき、新規に追加されたレコードが編集可能になります。新規レコードを変更し、データ コントロールを使って、カレント レコード ポインタを移動すると、レコードは Recordset オブジェクトに自動的に追加されます。新規レコードを変更せずに他のレコードにカレント レコードを移動すると、そのレコードは破棄されます。新規レコード上で、データ コントロールを使って別のレコードに移動すると、新規レコードが作成されます。

コードを使って、データ コントロールで作成された Recordset オブジェクトを操作する場合、EOFAction プロパティは無効です。EOFAction プロパティは、マウスでデータ コントロールを操作する場合のみ有効です。

データ コントロールの Recordset オブジェクトがレコードを持たないときや、すべてのレコードが削除されたときに、EOFAction プロパティに定数 vbEOFActionAddNew を指定すると、新しいレコードを常にカレント レコードとして編集できるので、コードを大幅に簡略化できます。


関連項目

BOF、EOF プロパティ

MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

RecordCount プロパティ

Recordset オブジェクト、Recordsets コレクション

RecordSource プロパティ

Type プロパティ (データ アクセス)


BOFAction、EOFAction プロパティの対象

データ (Data) コントロール


IntegralHeight プロパティ

関連項目	対象

コントロールにすべての項目を表示するか、一部の項目を表示するかを設定します。値の取得も可能です。実行時には値の取得のみ可能です。

構文

object.IntegralHeight [= value ]

IntegralHeight プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	リストの高さを変更するかどうかを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	(既定値) すべての項目がリストに表示できるように、実際の項目数に合わせてリストの高さが自動的に変更されます。

False	項目数が多くてすべてを表示できないときでも、リストの高さは変更されません。


関連項目

コントロールのデータ (Data) コントロールへの連結

連結可能コントロール

データ (Data) コントロール


IntegralHeight プロパティの対象

コンボ ボックス (ComboBox) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

リスト ボックス (ListBox) コントロール


MatchEntry プロパティ

関連項目	対象

DB コンボ (DBCombo) コントロールまたは DB リスト (DBList) コントロールが、ユーザーの入力に基づいて検索を行う方法を設定します。値の取得も可能です。

構文

object.MatchEntry [= value ]

MatchEntry プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ユーザーがフォーカスのあるコントロールに 1 文字以上入力したときのコントロールの動作を定義する、定数または値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbMatchEntrySimple	0	(既定値) 基本マッチング。コントロールは、リスト内の項目の最初の文字が、入力された文字と一致する次の候補を検索します。同じ文字を繰り返し入力すると、その文字で始まるリスト内のすべての候補を続けて検索できます。

vbMatchEntryExtended	1	拡張マッチング。コントロールは、入力されたすべての文字と一致する項目を検索します。検索は文字が入力されるたびに行われ、より詳細に検索を行うことができます。

解説

MatchEntry プロパティに定数 vbMatchEntryExtended が設定されているとき、ユーザーが Backspace キーを入力するか、数秒以上入力がないと、検索文字列はリセットされます。


関連項目

コントロールのデータ (Data) コントロールへの連結

連結可能コントロール

データ (Data) コントロール


MatchEntry プロパティの対象

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール


RecordsetType プロパティ

関連項目	例	対象

データ (Data) コントロールが作成する、Recordset オブジェクトの種類を示す値を設定します。値の取得も可能です。

構文

object.RecordsetType [= value ]

RecordsetType プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	Recordset オブジェクトの種類を表す定数または値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbRSTypeTable	0	テーブル タイプの Recordset オブジェクトが作成されます。

vbRSTypeDynaset	1	(既定値) ダイナセット タイプの Recordset オブジェクトが作成されます。

vbRSTypeSnapshot	2	スナップショット タイプの Recordset オブジェクトが作成されます。

解説

Microsoft Jet データベース エンジンが指定された種類の Recordset オブジェクトを作成できないときは、トラップできるエラーが発生します。

データ コントロールが Recordset オブジェクトを作成する前に RecordsetType プロパティを指定しないときは、ダイナセット タイプの Recordset オブジェクトが作成されます。

Recordset オブジェクトを作成してから、新しい Recordset オブジェクトの Recordset プロパティに設定したとき、そのデータ コントロールの RecordsetType プロパティは、新しい Recordset オブジェクトの Type プロパティに設定されます。

重要   RecordsetType プロパティの value の値は、Recordset オブジェクトの種類を確認するために使われる値とは一致しません。詳細については、「OpenRecordset メソッド」または「Type プロパティ(データ アクセス)」を参照してください。

注   データ コントロールは、以前のバージョンの Dynaset オブジェクトをサポートしていません。特に指定しない限り、Dynaset オブジェクトと完全に互換性のあるダイナセット タイプの Recordset オブジェクトが作成されるので、既存のコードを修正する必要はありません。


関連項目

ダイナセット タイプの Recordset オブジェクト

OpenRecordset メソッド

Recordset オブジェクト、Recordsets コレクション

Refresh メソッド (データ アクセス)

Requery メソッド

スナップショット タイプの Recordset オブジェクト

テーブル タイプの Recordset オブジェクト

Type プロパティ (データ アクセス)


RecordsetType プロパティの対象

データ (Data) コントロール


AllowAddNew プロパティ

関連項目	例	対象

DB グリッド (DBGrid) コントロールの基になる Recordset オブジェクトに、ユーザーが新しいレコードを追加できるかどうかを示す値を設定します。値の取得も可能です。

構文

object.AllowAddNew [= value]

AllowAddNew プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ユーザーが新しいレコードを追加できるかどうかを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	ユーザーは DB グリッド コントロールの基になる Recordset オブジェクトに、新しいレコードを追加できます。

False	ユーザーは、新しいレコードを追加できません。

解説

DB グリッド コントロールの表示されている最後の行は空白で、ユーザーが新しいレコードを入力できるようになっています。AllowAddNew プロパティが偽 (False) に設定されているとき、この行はフォーカスを持つことができません。

AllowAddNew プロパティが真 (True) に設定されていても、基になる Recordset オブジェクトが挿入を許可していないときがあります。このとき、ユーザーがレコードを追加しようとすると、エラーが発生します。


関連項目

AllowDelete プロパティ

AllowUpdate プロパティ

データ (Data) コントロール


AllowAddNew プロパティの対象

DB グリッド (DBGrid) コントロール


AllowAddNew、AllowDelete、AllowUpdate プロパティの例

次のプログラムでは、チェック ボックスの値を調べ、値が偽 (False) の場合、ユーザーがグリッドの内容を変更できないようにします。

Private Sub Form_Load ()

If Check1.Value = 0 Then

DataGrid1.AllowDelete = False

DataGrid1.AllowAddNew = False

DataGrid1.AllowUpdate = False

End If

End Sub


AllowDelete プロパティ

関連項目	対象

DB グリッド (DBGrid) コントロールの基になる Recordset オブジェクトから、ユーザーがレコードを削除できるかどうかを示す値を設定します。値の取得も可能です。

構文

object.AllowDelete [= value]

AllowDelete プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ユーザーがレコードを削除できるかどうかを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	ユーザーは、DB グリッド コントロールの基になる Recordset オブジェクトからレコードを削除できます。

False	ユーザーは、Recordset オブジェクトからレコードを削除できません。

解説

DB グリッド コントロールを使って、Recordset オブジェクトからレコードを削除できないようにするには、AllowDelete プロパティを設定します。

AllowDelete プロパティが真 (True) に設定されていても、基になる Recordset オブジェクトが削除を許可していないときもあります。このとき、ユーザーがレコードを削除しようとすると、エラーが発生します。


関連項目

AllowAddNew プロパティ

AllowUpdate プロパティ

データ (Data) コントロール


AllowDelete プロパティの対象

DB グリッド (DBGrid) コントロール


AllowSizing プロパティ

関連項目	例	対象

ユーザーが、DB グリッド (DBGrid) コントロールの列の幅を変更できるかどうかを示す値を設定します。値の取得も可能です。

構文

object.AllowSizing [= value]

AllowSizing プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	列の幅を変更できるかどうかを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	ユーザーは、列の幅を変更できます。

False	ユーザーは、列の幅を変更できません。

解説

AllowSizing プロパティが真 (True) のとき、指定された列の境界線上にマウス ポインタを置くと、ポインタが左右 2 方向の矢印に変わり、ユーザーは境界線をドラッグしてその列の幅を変更できます。列の幅を変更すると、ColResize イベントが必ず発生します。

DB グリッド コントロールのすべての行の高さは、常に同じになります。この値は、RowHeight プロパティで設定できます。


関連項目

AllowRowSizing プロパティ

ColResize イベント

データ (Data) コントロール

DefColWidth プロパティ

RowHeight プロパティ

RowResize イベント

VisibleRows プロパティ


AllowSizing プロパティの対象

Column オブジェクト


AllowSizing プロパティの例

次のプログラムでは、ユーザーがグリッドの先頭の 3 列の幅を変更または編集できないようにします。

Private Sub Form_Load ()

Dim I

For I = 0 to 2

DataGrid1.Columns(I).AllowSizing = False

DataGrid1.Columns(I).Locked = False

Next I

End Sub


AllowRowSizing プロパティ

関連項目	例	対象

ユーザーが、DB グリッド (DBGrid) コントロールの行の高さを変更できるかどうかを設定します。値の取得も可能です。

構文

object.AllowRowSizing [= value]

AllowRowSizing プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	行の高さを変更できるかどうかを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	ユーザーは、行の高さを変更できます。

False	ユーザーは、行の高さを変更できません。

解説

AllowRowSizing プロパティが真 (True) のとき、任意のレコード セレクタの間の行の境界線上にマウス ポインタを置くと、ポインタは上下 2 方向の矢印に変わり、ユーザーは境界線をドラッグして行の高さを変更できます。行の高さを変更すると、RowResize イベントが必ず発生します。

DB グリッド コントロールのすべての行の高さは、常に同じになります。この値は、RowHeight プロパティで設定できます。


関連項目

データ (Data) コントロール

DefColWidth プロパティ

RowHeight プロパティ

RowResize イベント

VisibleRows プロパティ


AllowRowSizing プロパティの対象

DB グリッド (DBGrid) コントロール


AllowRowSizing プロパティの例

次のプログラムでは、データベースにメモ型のフィールドがあるかどうかを調べ、存在しない場合は、ユーザーが行の高さを変更できないようにします。

Private Sub Form_Load

Dim Fld As Field

DataGrid1.AllowRowSizing = False

For Each Fld in Data1.Recordset.Fields

If Fld.Type = dbMemo Then

DataGrid1.AllowRowSizing = True

DataGrid1.RowHeight = DataGrid1.RowHeight * 2

Exit For

End If

Next

End Sub


AllowUpdate プロパティ

関連項目	対象

ユーザーが、DB グリッド (DBGrid) コントロールのデータを変更できるかどうかを設定します。値の取得も可能です。

構文

object.AllowUpdate [= value]

AllowUpdate プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ユーザーがデータを変更できるかどうかを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	ユーザーは、DB グリッド コントロールのデータを修正できます。

False	ユーザーは、データを変更できません。

解説

AllowUpdate プロパティが偽 (False) に設定されているとき、DB グリッド コントロールをスクロールしてデータを選択できても、値の変更はできません。グリッド内のデータを変更しようとしても無視されます。

Column オブジェクトのプロパティを設定して、DB グリッド コントロールの各列を読み取り専用にすることもできます。ただし、AllowUpdate プロパティの設定が列に対する設定よりも優先されます。このとき、列のプロパティの設定値は変更されません。

注   DB グリッド コントロールの AllowUpdate プロパティが真 (True) に設定されていても、Recordset オブジェクトが更新を許可していない場合があります。このとき、ユーザーがレコードを変更しようとすると、トラップできるエラーが発生します。


関連項目

AllowAddNew プロパティ

AllowDelete プロパティ

データ (Data) コントロール

Locked プロパティ


AllowUpdate プロパティの対象

DB グリッド (DBGrid) コントロール


ColIndex プロパティ

関連項目	対象

DB グリッド (DBGrid) コントロールの Columns コレクション内の列の位置と、DB グリッド コントロールの列の表示位置 (左から右) を示す値を設定します。値の取得も可能です。

構文

object.ColIndex [= value]

ColIndex プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	0 (左端の列) から Count プロパティの設定値までの範囲内の整数を指定します。

解説

ColIndex プロパティの値を変更して、列の順序を変更することができます。ColIndex プロパティに 0 を設定すると、その列は一番左に配置され、左にあったすべての列の ColIndex プロパティは 1 だけ大きくなります。

このプロパティを DB グリッド コントロールの Columns コレクションの Count プロパティと同じ値に設定すると、その列は一番右に配置され、右にあったすべての列の ColIndex プロパティは 1 だけ小さくなります。

このプロパティを 0 と DB グリッド コントロールの Columns コレクションの Count プロパティの値との間の数値 n に設定すると、その列はこれまで n の位置にあった列の左に配置されます。また、移動した列の元の位置と n の間のすべての列は、それに応じて再配置されます。


関連項目

Count プロパティ (データ アクセス)

Column オブジェクト、Columns コレクション

Col、Row プロパティ

データ (Data) コントロール

DB グリッド (DBGrid) コントロール


ColIndex プロパティの対象

Column オブジェクト


ColumnHeaders プロパティ

関連項目	対象

DB グリッド (DBGrid) コントロールに列見出しを表示するかどうかを設定します。値の取得も可能です。

構文

object.ColumnHeaders [= value]

ColumnHeaders プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	列見出しを表示するかどうかを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	DBグリッド コントロールに列見出しを表示します。

False	列見出しを表示しません。


関連項目

Column オブジェクト、Columns コレクション

Columns プロパティ (DB グリッド)

データ (Data) コントロール


ColumnHeaders プロパティの対象

DB グリッド (DBGrid) コントロール


Columns プロパティ (DB グリッド)

関連項目	対象

Column オブジェクトのコレクションを取得します。

構文

object.Columns

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Columns プロパティには、文字列型 (String) かバリアント型 (Variant) の値を設定します。

Column オブジェクトのプロパティを変更すると、DB グリッド (DBGrid) コントロールのほとんどの属性を処理できます。


関連項目

Col、Row プロパティ

Column オブジェクト、Columns コレクション

データ (Data) コントロール

Add メソッド (DB グリッド)

Remove メソッド


Columns プロパティの対象

DB グリッド (DBGrid) コントロール


DefColWidth プロパティ

関連項目	対象

DB グリッド (DBGrid) コントロールのすべての列に、既定値の列の幅を設定します。値の取得も可能です。

構文

object.DefColWidth [= value]

DefColWidth プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	コントロールの座標系に基づいた整数を指定します。

解説

DefColWidth プロパティを 0 に設定すると、コントロールは列見出しの幅または基になるフィールドの Size プロパティの設定値のどちらか大きい方と同じになるように、自動的にすべての列の幅を変更します。たとえば、列の幅の既定値を先頭の列の幅に設定するときは、次のようにします。

DataGrid1.DefColWidth = DataGrid1.Columns(0).Width


関連項目

AllowRowSizing プロパティ

Column オブジェクト、Columns コレクション

データ (Data) コントロール

Field オブジェクト、Fields コレクション

Size プロパティ (データ アクセス)


DefColWidth プロパティの対象

DB グリッド (DBGrid) コントロール


DividerStyle プロパティ

関連項目	例	対象

DB グリッド (DBGrid) コントロールの、選択された列の右側に表示される境界線の形式を指定します。値の取得も可能です。

構文

object.DividerStyle [= value]

DividerStyle プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	境界線のスタイルを表す整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

0	境界線なし。

1	(既定値) 黒い線。

2	暗い灰色の線。

3	浮き出し表示。

4	くぼみ表示。

5	ForeColor プロパティに指定されている色を使って、分割線を表示します。

解説

DividerStyle プロパティの設定値は、境界線をドラッグできるかどうかには影響しません。浮き出し表示またはくぼみ表示を設定したときの境界線の色は、Microsoft Windows によって決定されます。


関連項目

データ (Data) コントロール

RowDividerStyle プロパティ


DividerStyle プロパティの対象

Column オブジェクト


DividerStyle プロパティの例

次のプログラムでは、ユーザーが見出しをクリックするたびに、列の境界線のスタイルが変更されます。

Private Sub DataGrid1_HeadClick (ColIndex As Long)

If DataGrid1.RowDividerStyle <> 5 Then

DataGrid1.Columns(ColIndex).DividerStyle = _

 DataGrid1.Columns(ColIndex).DividerStyle + 1

Else

DataGrid1.Columns(ColIndex).DividerStyle = 0

End If

End Sub


FirstRow プロパティ

関連項目	対象

DB グリッド (DBGrid) コントロール内で最初に表示される行の、ブックマークの値を設定します。値の取得も可能です。デザイン時には利用できません。

構文

object.FirstRow [= value]

FirstRow プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	DB グリッド コントロールで、最初に表示される行に対応する、ブックマークを含む文字列式を指定します。

解説

FirstRow プロパティを設定すると、指定された行が DB グリッド コントロールの一番上になるように、DB グリッド コントロールがスクロールされます。


関連項目

RowBookmark メソッド


FirstRow プロパティの対象

DB グリッド (DBGrid) コントロール


HeadBackColor プロパティ

関連項目	例	対象

DB グリッド (DBGrid) コントロールの、選択された列の背景色を設定します。値の取得も可能です。

構文

object.HeadBackColor [= color]

HeadBackColor プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

color	オブジェクトの背景色や前景色を表す値または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

Microsoft Visual Basic では、色の指定に Microsoft Windows の RGB 方式を採用しています。引数 color の設定値は次のとおりです。

設定値	内容

通常の RGB カラー	カラー パレット、またはコードで RGB 関数や QBColor 関数を使って指定される色です。

システム カラー	オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリ に一覧表示されている、システム カラー定数で指定される色です。既定値は定数 vbButtonFace です。ユーザーが指定した色は、Windows によって、コントロール パネルの設定に基づいて変換されます。

解説

通常の RGB カラーの有効な値の範囲は、0 ～ 16,777,215 (&HFFFFFF) です。この範囲の値の最上位バイトは 0 です。下位の 3 バイトが、最下位バイトから最上位バイトに向かって順に赤、緑、青の強さをそれぞれ決定します。赤、緑、青の各要素は 0 ～ 255 (&HFF) の値で表されます。最上位バイトが 0 でないとき、Visual Basic は、コントロール パネルで設定されたシステム カラー、およびオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリ に一覧表示されるシステム カラーを使います。


関連項目

BackColor、ForeColor プロパティ

データ (Data) コントロール

HeadForeColor プロパティ


HeadBackColor プロパティの対象

Column オブジェクト


HeadBackColor、HeadForeColor プロパティの例

次のプログラムでは、[色の設定] コモン ダイアログ ボックスが表示され、カレント列の BackColor プロパティと ForeColor プロパティが設定されます。また、HeadBackColor と HeadForeColor プロパティが、それぞれ ForeColor プロパティと BackColor プロパティと同じ色に設定されます。

Sub ReSetColors ()

CMDialog1.DialogTitle = "列の背景色"

CMDialog1.Action = 3	' [色の設定] ダイアログ ボックスを表示します。

DataGrid1.Columns(DataGrid1.ColIndex).BackColor = CMDialog1.Color

DataGrid1.Columns(DataGrid1.ColIndex).HeadForeColor = _

 CMDialog1.Color

CMDialog1.DialogTitle = "列の前景色"

CMDialog1.Action = 3	' [色の設定] ダイアログ ボックスを表示します。

DataGrid1.Columns(DataGrid1.ColIndex).ForeColor = CMDialog1.Color

DataGrid1.Columns(DataGrid1.ColIndex).HeadBackColor = _

 CMDialog1.Color

End Sub


HeadFont プロパティ

関連項目	対象

DB グリッド (DBGrid) コントロールの列見出しに使うフォントを設定します。値の取得も可能です。

構文

object.HeadFont [= value]

HeadFont プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	Font オブジェクトへの参照を表すオブジェクト式を指定します。

解説

HeadFont プロパティを変更すると、新しく設定したフォントが表示できるように、見出しの高さが変更されることもあります。


関連項目

Column オブジェクト、Columns コレクション

データ (Data) コントロール

DefColWidth プロパティ

Font オブジェクト

Font プロパティ


HeadFont プロパティの対象

DB グリッド (DBGrid) コントロール


HeadForeColor プロパティ

関連項目	例	対象

DB グリッド (DBGrid) コントロールの、選択された列の前景色を設定します。値の取得も可能です。

構文

object.HeadForeColor [= color]

HeadForeColor プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

color	オブジェクトの背景色または前景色を表す値または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

Microsoft Visual Basic では、色の指定に Microsoft Windows の RGB 方式を採用しています。引数 color の設定値は次のとおりです。

設定値	内容

標準 RGB カラー	カラー パレット、またはコードで RGB 関数や QBColor 関数を使って指定される色です。

システム カラー	オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリ に一覧表示されている、システム カラー定数で指定される色です。既定値は定数 vbButtonFace です。ユーザーが指定した色は、Windows によって、コントロール パネルの設定に基づいて変換されます。

解説

通常の RGB カラーの有効な値の範囲は、0 ～ 16,777,215 (&HFFFFFF) です。この範囲の値の最上位バイトは 0 です。下位の 3 バイトが、最下位バイトから最上位バイトに向かって順に赤、緑、青の強さをそれぞれ決定します。赤、緑、青の各要素は 0 ～ 255 (&HFF) の値で表されます。最上位バイトが 0 でないとき、Visual Basic は、コントロール パネルで設定されたシステム カラー、およびオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリ に一覧表示されるシステム カラーを使います。


関連項目

Column オブジェクト、Columns コレクション

データ (Data) コントロール

BackColor、ForeColor プロパティ

HeadBackColor プロパティ


HeadForeColor プロパティの対象

DB グリッド (DBGrid) コントロール


HeadLines プロパティ

関連項目	例	対象

DB グリッド (DBGrid) コントロールの見出しに表示されるテキストの行数を設定します。値の取得も可能です。

構文

object.HeadLines [= value]

HeadLines プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	0 ～ 10 の範囲の単精度浮動小数点数型 (Single) を指定します。既定値は 1 です。この値を設定すると、コントロールの見出しに、各列の基になるフィールド名が表示されます。0 を設定すると、見出しは表示されなくなります。

解説

HeadLines プロパティは、DB グリッド コントロールの列の上に、複数のテキスト行を表示するために使うことができます。

既定値の 1 を無効にするには、各列の Caption プロパティを明示的に設定します。


関連項目

Column オブジェクト、Columns コレクション

Columns プロパティ (DB グリッド)

データ (Data) コントロール

DefColWidth プロパティ

HeadBackColor プロパティ

HeadForeColor プロパティ


HeadLines プロパティの対象

DB グリッド (DBGrid) コントロール


HeadLines プロパティの例

次のプログラムでは、チェック ボックスの値が調べられ、グリッドに見出しを表示するかどうかが指定されます。

Private Sub Check1_Click ()

If Check1.Value = vbChecked Then	' チェック ボックスがオンの場合、

DataGrid1.HeadLines = 2	' 見出しに 2 行表示します。

Else

DataGrid1.HeadLines = 0	' 見出しは表示しません。

End If

End Sub


NumberFormat プロパティ

関連項目	例	対象

DB グリッド (DBGrid) コントロールの Column オブジェクトの書式文字列を設定します。値の取得も可能です。

構文

object.NumberFormat [= value]

NumberFormat プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	Value プロパティの式の書式を定義する文字列式を指定します。既定値は長さ 0 の文字列 ("") です。

解説

Value プロパティに適用される書式を NumberFormat プロパティに設定すると、Text プロパティの値をその書式で表示できます。NumberFormat プロパティに無効な文字列を設定すると、セル内のデータは、#ERR# と表示され、Value プロパティの設定値は変更されません。有効な書式文字列の詳細については、「Format 関数」を参照してください。


関連項目

Column オブジェクト、Columns コレクション

データ (Data) コントロール

Format 関数

Text プロパティ

Value プロパティ (データ アクセス)


NumberFormat プロパティの対象

Column オブジェクト


NumberFormat プロパティの例

次のプログラムでは、データベースに新しいフィールドが追加され、続いて新しい列が追加されます。

Private Sub Command1_Click ()

Dim MyDB As Database, Fd Field, NewCol As Integer

Set MyDB = OpenDatabase("BIBLIO.MDB")	' データベースを開きます。

Set Fd = MyDB.TableDefs!Authors.CreateField("Phone",dbText,15)

' TableDefs コレクションにフィールドを追加します。

MyDB.TableDefs("Authors").Fields.Append Fd

NewCol = DataGrid1.Columns.Count	' 列を追加する位置を取得します。

DataGrid1.Add NewCol	' グリッドに新しい列を追加します。

DataGrid1.Columns(NewCol).DataField = "Phone"

DataGrid1.Columns(NewCol).Visible = True	' 既定値は False です。

DataGrid1.Columns(NewCol).Width = Fd.Size

DataGrid1.Columns(NewCol).NumberFormat = "(###) ###-####"

End Sub


RecordSelectors プロパティ

関連項目	対象

DB グリッド (DBGrid) コントロールに、レコード セレクタを表示するかどうかを示す値を設定します。値の取得も可能です。

構文

object.RecordSelectors [= value]

RecordSelectors プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	レコード セレクタを表示するかどうかを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	DB グリッド コントロールにレコード セレクタを表示します。

False	レコード セレクタを表示しません。

解説

レコード セレクタは、DB グリッド コントロール内の、行の左側に表示されます。ユーザーがレコード セレクタを選択すると、レコード全体、つまり、DB グリッド コントロールの 1 行が選択されます。


関連項目

Column オブジェクト、Columns コレクション

データ (Data) コントロール

SelBookmarks プロパティ

SelEndCol、SelStartCol、SelEndRow、SelStartRow プロパティ


RecordSelectors プロパティの対象

DB グリッド (DBGrid) コントロール


RowDividerStyle プロパティ

関連項目	例	対象

選択された DB グリッド (DBGrid) コントロールの行間に表示される境界線の形式を指定します。値の取得も可能です。

構文

object.RowDividerStyle [= value]

RowDividerStyle プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	境界線の形式を表す整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

0	境界線なし。

1	黒の線。

2	(既定値) 暗い灰色の線。

3	浮き出し表示。

4	くぼみ表示。

5	ForeColor プロパティに設定されている色を使って、境界線を描画します。

解説

RowDividerStyle プロパティの設定は、境界線のドラッグには影響しません。浮き出し表示またはくぼみ表示を付けたときの境界線の色は、Microsoft Windows によって決定されます。


関連項目

Column オブジェクト、Columns コレクション

データ (Data) コントロール

DividerStyle プロパティ


RowDividerStyle プロパティの対象

DB グリッド (DBGrid) コントロール


RowDividerStyle プロパティの例

次のプログラムでは、コマンド ボタンをクリックするたびに、行間の境界線の表示形式が切り替えられます。

Private Sub ChangeStyle_Click ()

If DataGrid1.RowDividerStyle < 5 Then

DataGrid1.RowDividerStyle = DataGrid1.RowDividerStyle + 1

Else

DataGrid1.RowDividerStyle = 0

End If

End Sub


SelBookmarks プロパティ

関連項目	例	対象

DB グリッド (DBGrid) コントロール内で選択されたすべてのレコードが持つブックマークのコレクションを示す値を取得します。

構文

object.SelBookmarks

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

DB グリッド コントロールでレコードを選択すると、選択したレコードのブックマークが、SelBookmarks プロパティによって取得されるコレクションに追加されます。たとえば、DB グリッド コントロールが作成した Recordset オブジェクトの複製を作成するときに、SelBookmarks プロパティのコレクションから取得されるブックマークを使って、複製された Recordset オブジェクトを再配置して各データ レコードを処理することができます。


関連項目

Add メソッド (DB グリッド)

Bookmark プロパティ (データ アクセス)

データ (Data) コントロール

Recordset オブジェクト、Recordsets コレクション

Remove メソッド (データ アクセス)

SelBookmarks コレクション


SelBookmarks プロパティの対象

DB グリッド (DBGrid) コントロール


SelBookmarks プロパティの例

次のプログラムでは、ループが使われ、ユーザーが選択した行がデータベースから削除されます。

Private Sub DeleteRows_Click ()

Do While DataGrid1.SelBookmarks.Count <> 0

Data1.Recordset.Bookmark = DataGrid1.SelBookmarks(0)

Data1.Recordset.Delete

Data1.Refresh

Loop

End Sub


VisibleCols プロパティ

関連項目	例	対象

DB グリッド (DBGrid) コントロールの、表示可能な列の総数を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.VisibleCols [= value]

VisibleCols プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	0 から DB グリッド コントロールの Cols プロパティの設定値までの範囲の整数を指定します。

解説

VisibleCols プロパティの値は、実際に列全体が表示されているかどうかにかかわらず、DB グリッド コントロールに表示される列の数を示します。


 VisibleCols プロパティの対象

DB グリッド (DBGrid) コントロール


関連項目

データ (Data) コントロール

Visible プロパティ

VisibleRows プロパティ


VisibleCols プロパティの例

次のプログラムでは、グリッドをページ単位で左または右に移動するボタンが定義されます。

Private Sub PageRight_Click ()

' グリッドを 1 ページ右に移動します。

If DataGrid1.LeftCol + DataGrid1.VisibleCols < _

 DataGrid1.Columns.Count Then

DataGrid1.LeftCol = DataGrid1.LeftCol + _

 DataGrid1.VisibleCols

End If

End Sub

Private Sub PageLeft_Click ()

' グリッドを 1 ページ左に移動します。

If DataGrid1.LeftCol - DataGrid1.VisibleCols >= 0 Then

DataGrid1.LeftCol = DataGrid1.LeftCol - _

 DataGrid1.VisibleCols

End If

End Sub


VisibleRows プロパティ

関連項目	例	対象

DB グリッド (DBGrid) コントロールの、表示可能な行の総数を取得します。

構文

object.VisibleRows

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

VisibleRows プロパティは、0 から DB グリッド コントロールの Rows プロパティの設定値までの範囲の整数値を返します。VisibleRows プロパティの値は、実際に行全体が表示されているかどうかにかかわらず、DB グリッド コントロールに表示される行の数を示します。


関連項目

データ (Data) コントロール

RowHeight プロパティ

Visible プロパティ

VisibleCols プロパティ


VisibleRows プロパティの対象

DB グリッド (DBGrid) コントロール


VisibleRows プロパティの例

次のプログラムでは、現在グリッド上で表示されている行がすべて選択されます。

Private Sub SelectVisible_Click ()

Dim I

For I = 0 To DataGrid1.VisibleRows - 1

DataGrid1.SelBookmarks.Add DataGrid1.RowBookmark(I)

Next I

End Sub


BoundColumn プロパティ

関連項目	対象

他の Recordset オブジェクトにデータの値を与える、Recordset オブジェクト内のソース フィールド名、または DB リスト (DBList) コントロールや DB コンボ (DBCombo) コントロールにリストを表示するフィールド名を設定します。値の取得も可能です。

構文

object.BoundColumn [= value]

BoundColumn プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	データ (Data) コントロールで作成した Recordset オブジェクト内のフィールド名を表す文字列式を指定します。データ コントロールは RowSource プロパティによって指定されます。

解説

通常、DB リスト コントロールまたは DB コンボ コントロールを使うときには、データ コントロールを 2 つ使います。まず、1 つめのデータ コントロールを RowSource プロパティに設定します。このデータ コントロールを使って、リストを作成するためのフィールドを持つ Recordset オブジェクトを処理します。ListField プロパティにはリスト ボックスに表示するフィールドを指定します。次に 2 つめのデータ コントロールを DataSource プロパティに設定します。この 2 つめのデータ コントロールを使って、更新されるフィールドを持つ Recordset オブジェクトを処理します。ユーザーがリスト ボックスから項目を 1 つ選択すると、1 つめのデータ コントロールの指定したフィールドのデータが、2 つめのデータ コントロールの指定したフィールドに設定されます。このようにして、同じ Recordset オブジェクト内で、リストに表示するためのフィールドと、項目が選択されたときに他の Recordset オブジェクトのフィールドにデータを渡す、もう 1 つのフィールドを指定します。

ListField プロパティが設定されていないとき、BoundColumn プロパティに指定したフィールドは、コントロールのリストの内容を表示するためにも使われます。

BoundColumn プロパティに指定したフィールドが、Recordset オブジェクト内にないときは、トラップできるエラーが発生します。

2 つのデータ コントロールを使うと、1 つをリストの内容を表示するために使い、もう 1 つを更新する Recordset オブジェクトを処理するために使用できるので、更新するレコードに渡す値と、リストを作成する値は同じでなくてもかまいません。たとえば、リストの表示には説明フィールドを使い、その説明フィールドに対応するコード化された数値を使って、連結されたレコードを更新することができます。


関連項目

コンボ ボックス (ComboBox) コントロール

データ (Data) コントロール

DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールの実行

リスト ボックス (ListBox) コントロール

ListField プロパティ

Recordset オブジェクト、Recordsets コレクション

RecordSource プロパティ


BoundColumn プロパティの対象

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール


ListField プロパティ

関連項目	対象

DB コンボ (DBCombo) コントロールのリスト部分、または DB リスト (DBList) コントロールの内容を表示するために使われる Recordset オブジェクト内のフィールド名を設定します。値の取得も可能です。

構文

object.ListField [= value]

ListField プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	データ (Data) コントロールで作成した Recordset オブジェクト内のフィールド名を表す文字列式を指定します。データ コントロールは、RowSource プロパティによって指定されます。

解説

ListField プロパティを使うと、コントロールのリスト ボックス部分にリストを表示する、Recordset オブジェクトのフィールドを選択できます。このプロパティは、RowSource プロパティと組み合わせて使います。RowSource プロパティに指定したデータ コントロールが作成した Recordset オブジェクトを使ってリストを表示します。ListField プロパティが設定されていないときは、BoundColumn プロパティに指定したフィールドは、コントロールのリストの内容を表示するためにも使われます。

通常、DB リスト コントロールや DB コンボ コントロールと 2 つの Recordset オブジェクトを組み合わせて使います。Recordset オブジェクトの 1 つは、有効な項目を選択できるように読み込み専用リストを持っています。もう 1 つの Recordset オブジェクトは、リストを選択すると更新されます。たとえば、DB リスト コントロールの内容を、有効な項目番号とそれらに関する説明のリストを返すクエリーから作成することができます。ListField プロパティに Recordset オブジェクトの説明フィールドを指定すると、実際の項目番号を表示しません。BoundColumn プロパティは、Recordset オブジェクト内で更新する必要がある、項目番号フィールドを指しています。ListField プロパティに指定したフィールドが、Recordset オブジェクト内にないときは、トラップできるエラーが発生します。

ListField プロパティが設定されていないときは、BoundColumn プロパティがリストの内容を表示するために使われます。これらの 2 つのプロパティが設定されていない場合に、このコントロールに最新のデータが表示されると、リストにはなにも表示されません。


関連項目

コンボ ボックス (ComboBox) コントロール

データ (Data) コントロール

DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールの実行

リスト ボックス (ListBox) コントロール

RecordSource プロパティ

RowSource プロパティ

Recordset オブジェクト、Recordsets コレクション


ListField プロパティの 対象

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール


RowSource プロパティ

関連項目	対象

DB リスト (DBList) コントロール、DB コンボ (DBCombo) コントロールに表示するリストの元となる、データ (Data) コントロールを指定する値を設定します。実行時には使えません。

解説

DB リスト コントロール、DB コンボ コントロールにリストを表示するには、デザイン時にプロパティ ウィンドウを使って、RowSource プロパティにデータ コントロールを指定する必要があります。

データ コントロールによって管理されている Recordset オブジェクトのフィールドとの接続を完了するには、ListField または BoundColumn プロパティの Field オブジェクトの名前も指定する必要があります。ListField プロパティは実行時に設定できますが、RowSource プロパティは実行時に設定できません。


関連項目

BoundColumn プロパティ

コンボ ボックス (ComboBox) コントロール

データ (Data) コントロール

DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールの実行

ListField プロパティ

リスト ボックス (ListBox) コントロール

RecordSource プロパティ

Recordset オブジェクト、Recordsets コレクション


RowSource プロパティの対象

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール


SelectedItem プロパティ

関連項目	対象

DB コンボ (DBCombo) コントロールの、選択されたレコードを表すブックマークを表す値を取得します。

構文

object.SelectedItem

object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

DB コンボ コントロールのリスト部分から項目を選択するとき、SelectedItem プロパティには、ブックマークを表す値が設定されます。このブックマークを使うと、RowSource プロパティで指定した Recordset オブジェクト内の、選択されたレコードに移動することができます。


関連項目

Bookmark プロパティ (データ アクセス)

データ (Data) コントロール

DB リスト (DBList) コントロール

DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールの実行

Recordset オブジェクト、Recordsets コレクション


SelectedItem プロパティの 対象

DB コンボ (DBCombo) コントロール


VisibleItems プロパティ

関連項目	対象

DB コンボ (DBCombo) コントロールのリスト ボックス部分、または DB リスト (DBList) コントロールの、すべての表示される項目に対応するブックマークの配列を返します。

構文

object.VisibleItems

object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

これらのブックマークを使うと、リストの内容を表示するために使う Recordset オブジェクトから、各レコードを取得できます。


関連項目

データ (Data) コントロール

DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールの実行

VisibleCount プロパティ


VisibleItems プロパティの 対象

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール


VisibleCount プロパティ

関連項目	対象

DB コンボ (DBCombo) コントロールのリスト ボックス部分、または DB リスト (DBList) コントロールの、表示される項目の総数を返します。

構文

object.VisibleCount

object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

VisibleCount プロパティは、0 からコントロールに表示可能な項目数までの範囲の整数を返します。IntegralHeight プロパティの値に偽 (False) が設定されていて、テキストの一部分だけが表示されているときでも、項目は表示可能と見なされます。


関連項目

データ (Data) コントロール

DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールの実行

IntegralHeight プロパティ

VisibleItems プロパティ


VisibleCount プロパティの対象

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール


MatchedWithList プロパティ

対象

BoundText プロパティの現在の内容が、コントロールのリスト部分に含まれているレコードの 1 つと一致すると、真 (True) を返します。

構文

object.MatchedWithList

object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

MatchedWithList プロパティの戻り値は次のとおりです。

値	内容

True	BoundText プロパティの内容が、リスト中のレコードの 1 つと一致した場合。

False	BoundText プロパティの内容が、リスト中のレコードのどれとも一致しない場合。

解説

DB コンボ (DBCombo) コントロールのテキスト部分に値を入力したとき、その入力した値がリスト中の項目の 1 つと一致すると、MatchedWithList プロパティが真 (True) に設定されます。このプロパティを使うと、リストに一覧されている値以外の入力を制御したり、新規データをソース テーブルに追加するコードを記述することができます。


 MatchedWithList プロパティの対象

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール


BoundText プロパティ

関連項目	対象

DB コンボ (DBCombo) コントロールまたは DB リスト (DBList) コントロールで選択を行ったときに、BoundColumn プロパティと DataField プロパティとの間で受け渡される値を設定します。値の取得も可能です。

構文

object.BoundText [= value]

BoundText プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	データの値を指定する文字列式を指定します。

解説

DB リスト コントロールまたは DB コンボ コントロールで選択を行うと、BoundText プロパティには、BoundColumn プロパティで指定されたフィールドのデータ内容が格納されます。通常、コントロールのリスト部分は、データベース クエリーを基に構築されています。リスト内の項目を選択すると、その項目は、DataSource プロパティで指定されたデータ (Data) コントロールに引き渡されます。選択した項目が編集可能な場合には、コントロールのテキスト ボックス部分にも表示されます。テキスト ボックスに値を入力すると、一覧から一致する項目を探します。一致する項目があると、BoundColumn プロパティで指定されたフィールドに基づき、BoundText プロパティが設定されます。一致する項目がない場合は、BoundText プロパティには Null 値が設定されます。


関連項目

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

コンボ ボックス (ComboBox) コントロール

データ (Data) コントロール

DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールの実行

リスト ボックス (ListBox) コントロール

ListField プロパティ

Recordset オブジェクト、Recordsets コレクション

RecordSource プロパティ


 BoundText プロパティの対象

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール


Recordset プロパティの例

次のプログラムでは、1994 年に発行されたすべての書籍名を含む Recordset オブジェクトが、データ (Data) コントロールを使って作成されます。データ コントロールの Recordset プロパティを参照すると、作成された Recordset オブジェクトにアクセスできます。

Dim Rs As Recordset

Data1.Database = "BIBLIO.MDB"

Data1.RecordSource =  _

"Select * From TITLES where [Year Published] = 1994"

Data1.Refresh

Set Rs = Data1.Recordset

If Rs.RecordCount > 0 Then

Do Until Rs.EOF

Debug.Print Rs("Title")

Rs.MoveNext

Loop

Else

MsgBox "1994 年に発行された書籍はありません。"

End If


Exclusive プロパティの例

次のプログラムでは、Database プロパティがシングル ユーザー (排他) モードとして開かれ、その後、マルチ ユーザー アクセス (共有) モードに変更されます。

Data1.DatabaseName = "BIBLIO.MDB"

Data1.RecordSource = "Publishers"

Data1.Exclusive = True

Data1.Refresh

...

Data1.Exclusive = False

Data1.Refresh


Database、DatabaseName プロパティの例

次のプログラムでは、データ (Data) コントロールの Database プロパティが調べられ、データベースに含まれるすべての TableDef オブジェクトの名前が、デバッグ ウィンドウに表示されます。

Sub PrintTableNames ()

Dim Td As TableDef

Data1.DatabaseName = "BIBLIO.MDB"	' データベース ファイルを設定します。

Data1.Refresh	' データベースを開きます。

' データベースに含まれるすべてのテーブルの名前を読み取って表示します。

For Each Td in Data1.Database.TableDefs

Debug.Print Td.Name

Next

End Sub


LastModified プロパティの例

次のプログラムでは、ユーザーが最後に修正したレコードに戻ります。

Data1.Recordset.Bookmark = Data1.Recordset.LastModified


DataChanged プロパティと Validate イベントの例

次のプログラムでは、簡単なデータの妥当性検査が示されています。BIBLIO.MDB データベースの Authors テーブル中には、Au_ID、Author という 2 つのフィールドがあります。Au_ID フィールドの値は、書籍の著者を一意に識別するために使われるので、この値が変更されないようにします。このプログラムでは、Au_ID フィールドはテキスト ボックス (TextBox) コントロール (Text1) に連結されていますが、Au_ID フィールドの値を変更することはできません。

Private Sub Data1_Validate (Action As Integer, Save As Integer)

If Text1.DataChanged Then	' データが変更されたかどうかを調べます。

MsgBox "ID 番号を変更できません。"

Text1.DataChanged = False	' 変更されたデータは保存しません。

End If

...

End Sub


RecordsetType プロパティの例

次のプログラムでは、データ (Data) コントロールを使って Recordset オブジェクトが作成され、データ コントロールの RecordsetType プロパティと、作成された Recordset オブジェクトの Type プロパティが調べられます。さらに、作成されたレコードセットの種類が判別されて表示されます。

Function NewRecordsetType() As Integer

Data1.Recordset.Close	' 既存の Recordset オブジェクトを閉じます。

' 必要な Recordset オブジェクトの種類を指定します。

Data1.RecordsetType = vbRSTypeDynaset

Data1.DatabaseName = "MYDB.MDB"

Data1.RecordSource = "MyTable"

Data1.Refresh

Select Case Data1.Recordset.Type

Case dbOpenTable Debug.print "テーブル タイプの Recordset が作成されました。"

Case dbOpenDynaset Debug.print "ダイナセット タイプの Recordset オブジェクトが作成されました。"

Case dbOpenSnapshot Debug.print "スナップショット タイプの Recordset オブジェクトが作成されました。"

End Select

Select Case Data1.RecordsetType

Case vbRSTypeTable Debug.print "テーブル タイプの Recordset オブジェクトが作成されました。"

Case vbRSTypeDynaset Debug.print "ダイナセット タイプの Recordset オブジェクトが作成されました。"

Case vbRSTypeSnapshot Debug.print "スナップショット タイプの Recordset オブジェクトが作成されました。"

End Select


データ アクセス定数

関連項目

組み込み定数の一覧を参照するには、オブジェクト ブラウザを使います。[表示] - [オブジェクト ブラウザ] コマンドを選択し、次に参照するライブラリを選択してから Constants オブジェクトを選択します。[メソッド / プロパティ一覧] ボックスの一覧をスクロールすると、すべての定数を参照できます。

データ アクセス オブジェクトには、メソッドやプロパティで指定可能な定数が組み込まれています。この定数は必ず“db”という文字で始まり、マニュアルでは、指定されるメソッドやプロパティの項目で説明されています。

Visual Basic には、メソッドやプロパティで指定可能な定数が組み込まれています。この定数は必ず“vb”という文字で始まり、マニュアルでは、指定されるメソッドやプロパティの項目で説明されています。

データ アクセス オブジェクトの定数

データ (Data) コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数


関連項目

Visual Basic 定数

Visual Basic for Applications の定数


データ アクセス オブジェクトの定数

関連項目

Recordset オブジェクトの Type プロパティの定数

定数	値	内容

dbOpenTable 	1	テーブル タイプの Recordset オブジェクトを開きます。

dbOpenDynaset 	2	ダイナセット タイプの Recordset オブジェクトを開きます。

dbOpenSnapshot	4	スナップショット タイプの Recordset オブジェクトを開きます。

OpenRecordset メソッドのオプション引数の定数

定数	値	内容

dbDenyWrite	1	ほかのユーザーはダイナセットのレコードを変更できません。

dbDenyRead	2	ほかのユーザーはダイナセットのレコードの値を取得できません。

dbReadOnly	4	ダイナセットを読み取り専用で開きます。

dbAppendOnly	8	ダイナセットに新規レコードを追加できますが、既存レコードの値は取得できません。

dbInconsistent	16	ダイナセットの全フィールドを更新します。ほかのレコードに影響を与える場合があります。

dbConsistent	32	ダイナセット内のほかのレコードに影響しないフィールドだけを更新します。

dbSQLPassThrough	64	SQL ステートメントを ODBC データベースに送ります。

dbFailOnError	128	エラーが発生した場合に、変更をロールバックします。

dbForwardOnly	256	前方向だけにスクロールするスナップショット タイプの Recordset オブジェクトを作成します。

dbOptionINIPath	1	アプリケーション初期化ファイル名 (.INI) とパスを設定します。

Attributes プロパティの定数

Field オブジェクトの Attributes プロパティ

定数	値	内容

dbFixedField     	1	フィールドを固定長フィールドにします。数値型フィールドの既定値です。

dbVariableField  	2	フィールドを可変長フィールドにします。テキスト型フィールドだけに適用されます。

dbAutoIncrField  	16	一意の長整数型 (Long) の値に増分した値を新しいレコードのフィールド値にします (カウンタ型フィールド)。

dbUpdatableField 	32	フィールドは更新 (読み取りまたは書き込み) 可能です。

dbDescending	1	フィールドを降順に並べ替えます。

Type プロパティの定数 (Field オブジェクト、Parameter オブジェクトおよび Property オブジェクトの Type プロパティ)

定数	値	内容

dbBoolean	1	ブール型 (Boolean) データ (真 (True) または偽 (False))

dbByte	2	バイト型 (Byte) データ (8 ビット)

dbInteger	3	整数型 (Integer) データ

dbLong	4	長整数型 (Long) データ

dbCurrency	5	通貨型 (Currency) データ

dbSingle	6	単精度浮動小数点数型 (Single) データ

dbDouble	7	倍精度浮動小数点数型 (Double) データ

dbDate	8	日付型 (Date) データ

dbText	10	テキスト型データ (可変長)

dbLongBinary	11	ロング バイナリ型データ (ビットマップ)

dbMemo	12	メモ型データ (拡張テキスト)

Relation オブジェクトの Attributes プロパティの定数

定数	値	内容

dbRelationUnique	1	一対一リレーション。

dbRelationDontEnforce 	2	リレーションの適用を行いません。参照整合性はありません。

dbRelationInherited 	4	カレント データベース以外で、2 つのアタッチ テーブルが入っているデータベースにリレーションが存在します。

dbRelationUpdateCascade 	256	連鎖更新します。

dbRelationDeleteCascade 	4096	連鎖削除します。

dbRelationLeft	16777216	リレーションは左結合です。

dbRelationRight	33554432	リレーションは右結合です。

TableDef オブジェクトの Attributes プロパティの定数

定数	値	内容

dbAttachExclusive	65536	アタッチされた Microsoft Jet データベース エンジンのテーブルが排他モードで開いています。

dbAttachSavePWD	131072	アタッチ テーブルのユーザー ID とパスワードを保存します。

dbSystemObject	2147483650	システム テーブル。

dbHiddenObject	1	隠しテーブル。一時的に使用します。

dbTable	1	Table オブジェクト。

dbQueryDef	5	QueryDef オブジェクト。

dbAttachedTable	1073741824	ODBC 以外のデータベースのアタッチ テーブル。

dbAttachedODBC	536870912	ODBC データベースのアタッチ テーブル。

QueryDef オブジェクトの Type プロパティの定数

定数	値	内容

dbQSelect	0	選択クエリー

dbQAction	240	アクション クエリー

dbQCrosstab	16	クロス集計クエリー

dbQDelete	32	削除クエリー

dbQUpdate	48	変更クエリー

dbQAppend	64	追加クエリー

dbQMakeTable	80	テーブル作成クエリー

dbQDDL	96	データ定義言語 (DDL) クエリー

dbQSQLPassThrough	112	SQL パススルー クエリー

dbQSetOperation	128	ユニオン クエリー

dbQSPTBulk	144	一括更新クエリー

CompactDatabase および CreateDatabase メソッドのオプション引数の定数

定数	値	内容

dbVersion10	1	Microsoft Jet データベース エンジン Version 1.0。

dbEncrypt	2	データベースを暗号化します。

dbDecrypt	4	圧縮中にデータベースを解読します。

dbVersion11	8	Microsoft Jet データベース エンジン Version 1.1。

dbVersion20	16	Microsoft Jet データベース エンジン Version 2.0 および Version 2.5。

dbVersion30	32	Microsoft Jet データベース エンジン Version 3.0。

Container オブジェクトの Permissions プロパティ

定数	値	内容

dbSecNoAccess	0	オブジェクトにアクセスできません。

dbSecFullAccess	1048575	オブジェクトに完全にアクセスできます。

dbSecDelete	65536	オブジェクトを削除できます。

dbSecReadSec	131072	オブジェクトのセキュリティ関連情報を取得できます。

dbSecWriteSec	262144	アクセス権を変更できます。

dbSecWriteOwner	524288	Owner プロパティの設定値を変更できます。

Databases Container オブジェクトの Permissions プロパティの定数

定数	値	内容

dbSecDBCreate	1	データベースを新規作成できます。SYSTEM.MDW など、システム データベース内の Container オブジェクトでのみ有効です。

dbSecDBOpen	2	データベースを開くことができます。

dbSecDBExclusive	4	排他的にアクセスします。

dbSecCreate	1	新しいドキュメントを作成します。テーブルに相当する Container オブジェクトでのみ有効です。

dbSecReadDef	4	列やインデックスの情報を含むテーブル定義を取得します。

dbSecWriteDef	8	列やインデックスの情報を含むテーブル定義を修正または削除します。

dbSecRetrieveData 	16	Document オブジェクトからデータを取得します。

dbSecInsertData	32	レコードを追加します。

dbSecReplaceData	64	レコードを修正します。

dbSecDeleteData	128	レコードを削除します。

EditMode プロパティの定数

定数	値	内容

dbEditNone	0	有効な編集操作はありません。

dbEditInProgress	1	Edit メソッドが起動しています。

dbEditAdd	2	AddNew メソッドが起動しています。

CollatingOrder プロパティの定数

定数	値	内容

dbSortArabic	1025	アラビア語の照合順序。

dbSortCyrillic	1049	ロシア語の照合順序。

dbSortCzech	1029	チェク語の照合順序。

dbSortDutch 	1043	オランダ語の照合順序。

dbSortGeneral	1033	英語、ドイツ語、フランス語、ポルトガル語の照合順序。

dbSortGreek	1032	ギリシャ語の照合順序。

dbSortHebrew	1037	ヘブライ語の照合順序。

dbSortHungarian	1038	ハンガリー語の照合順序。

dbSortIcelandic	1039	アイスランド語の照合順序。

dbSortJapanese	1041	日本語の照合順序。

dbSortNeutral	1024	ニュートラルな照合順序。

dbSortNorwdan	1030	ノルウェー語、デンマーク語の照合順序。

dbSortPDXIntl	1033	Paradox の照合順序。

dbSortPDXNor	1030	Paradox のノルウェー語、デンマーク語の照合順序。

dbSortPDXSwe	1053	Paradox のスウェーデン語、フィンランド語の照合順序。

dbSortPolish	1045	ポーランド語の照合順序。

dbSortSpanish	1034	スペイン語の照合順序。

dbSortSwedFin	1053	スウェーデン語、フィンランド語の照合順序。

dbSortTurkish	1055	トルコ語の照合順序。

dbSortUndefined	-1	照合順序未設定または不明。

CompactDatabase メソッドおよび CreateDatabase メソッドの国別情報引数の定数

定数	値	内容

dbLangArabic	LANGID0x0401CP1256COUNTRY0	アラビア語の照合順序。

dbLangCzech	LANGID0x0405CP1250COUNTRY0	チェク語の照合順序。

dbLangDutch	LANGID0x0413CP1252COUNTRY0	オランダ語の照合順序。

dbLangGeneral	LANGID0x0409CP1252COUNTRY0	英語、ドイツ語、フランス語、ポルトガル語、イタリア語、現代スペイン語の照合順序。

dbLangGreek	LANGID0x0408CP1253COUNTRY0	ギリシャ語の照合順序。

dbLangHebrew	LANGID0x040DCP1255COUNTRY0	ヘブライ語の照合順序。

dbLangHungarian	LANGID0x040ECP1250COUNTRY0	ハンガリー語の照合順序。

dbLangIcelandic	LANGID0x040FCP1252COUNTRY0	アイスランド語の照合順序。

dbLangJapanese	LANGID0x0411CP932COUNTRY0	日本語の照合順序。

dbLangNordic	LANGID0x041DCP1252COUNTRY0	北欧語の照合順序。

dbLangNorwdan	LANGID0x0414CP1252COUNTRY0	ノルウェー語、デンマーク語の照合順序。

dbLangPolish	LANGID0x0415CP1250COUNTRY0	ポーランド語の照合順序。

dbLangCyrillic	LANGID0x0419CP1251COUNTRY0	ロシア語の照合順序。

dbLangSpanish	LANGID0x040ACP1252COUNTRY0	スペイン語の照合順序。

dbLangSwedfin	LANGID0x040BCP1252COUNTRY0	スウェーデン語、フィンランド語の照合順序。

dbLangTurkish	LANGID0x041FCP1254COUNTRY0	トルコ語の照合順序。

Idle メソッドの引数の定数

定数	値	内容

dbFreeLocks	1	ページ ロックが解放されるまでバックグラウンド処理を延期します。

Synchronize メソッドの ExchgType 引数の定数

定数	値	内容

dbRepExportChanges	1	ターゲット データベースのレプリカをカレント データベースに同期させます。

dbRepImportChanges	2	カレント データベースをターゲット データベースのレプリカに同期させます。

dbRepImpExpChanges	4	カレント データベースと目標のデータベースのレプリカの同期を双方向にとります。

CreateReplica メソッドのオプション引数の定数

定数	値	内容

dbRepMakeReadOnly	2	新しく作成されたデータベースのレプリケート可能な要素は変更できません。


関連項目

データ (Data) コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数


データ (Data) コントロールの定数

関連項目

Error イベントの定数

定数	値	内容

vbDataErrContinue	0	処理を続行します。

vbDataErrDisplay	1	(既定値) エラー メッセージを表示します。

EditMode プロパティの定数

定数	値	内容

vbDataEditNone	0	処理中の編集操作はありません。

vbDataEditMode	1	Edit メソッドが起動しています。カレント レコードがコピー バッファにあります。

vbDataEditAdd	2	AddNew メソッドが起動しています。カレント レコードは保存されていません。

Options プロパティの定数

定数	値	内容

vbDataDenyWrite	1	ほかのユーザーはレコードセットのレコードを変更できません。

vbDataDenyRead	2	ほかのユーザーはレコードセットのレコードの値を取得できません。

vbDataReadOnly	4	レコードセットのレコードを変更できません。

vbDataAppendOnly	8	レコードセットに新規レコードを追加できますが、既存レコードの値は取得できません。

vbDataInconsistent	16	レコードセットの全フィールドを更新します。

vbDataConsistent	32	レコードセットのほかのレコードに影響しないフィールドだけを更新します。

vbDataSQLPassThrough	64	SQL ステートメントを ODBC データベースに送ります。

Validate イベントの動作を示す定数

定数	値	内容

vbDataActionCancel	0	Sub プロシージャが終了するときに操作を取り消します。

vbDataActionMoveFirst	1	MoveFirst メソッド。

vbDataActionMovePrevious	2	MovePrevious メソッド。

vbDataActionMoveNext	3	MoveNext メソッド。

vbDataActionMoveLast	4	MoveLast メソッド。

vbDataActionAddNew	5	AddNew メソッド。

vbDataActionUpdate	6	更新操作。UpdateRecord メソッドではありません。

vbDataActionDelete	7	Delete メソッド。

vbDataActionFind	8	Findxxx メソッド。

vbDataActionBookmark	9	Bookmark プロパティが設定されます。

vbDataActionClose	10	Close メソッド。

vbDataActionUnload	11	フォームをアンロードします。

BOF 定数

定数	値	内容

vbMoveFirst	0	先頭のレコードに移動します。

vbBOF	1	ファイルの先頭に移動します。

EOF 定数

定数	値	内容

vbMoveLast	0	末尾のレコードに移動します。

vbEOF	1	ファイルの終端に移動します。

vbAddNew	2	ファイルの終端に新規レコードを追加します。

レコードセットの種類を示す定数

定数	値	内容

vbRSTypeTable	0	テーブル タイプのレコードセット。

vbRSTypeDynaset	1	ダイナセット タイプのレコードセット。

vbRSTypeSnapShot	2	スナップショット タイプのレコードセット。


関連項目

データ アクセス オブジェクトの定数


DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

関連項目

Appearance プロパティの定数

定数	値	内容

dblFlat	0	3-D 効果なしでDB リスト コントロールまたは DB コンボ コントロールを描画します。

dbl3D	1	DB リスト コントロールまたは DB コンボ コントロールを描画するときに、3-D 効果を持たせます。

位置を表す定数 (DB コンボのみ)

定数	値	内容

dbcAreaButton	0	Click イベントまたは DblClick イベントが発生したときの DB コンボ コントロールのボタンの位置を返します。

dbcAreaEdit	1	Click イベントまたは DblClick イベントが発生したときの DB コンボ コントロールのテキスト ボックスの位置を返します。

dbcAreaList	2	Click イベントまたは DblClick イベントが発生したときの DB コンボ コントロールのリスト ボックスの位置を返します。

Match Entry プロパティの定数

定数	値	内容

dblBasicMatching	0	基本マッチング

dblExtendedMatching	1	拡張マッチング

MousePointer プロパティの定数

定数	値	内容

dblDefault	0	(既定値) 形状はオブジェクトによって決定されます。

dblArrow	1	矢印。

dblCross	2	クロス。十文字のポインタです。

dblIBeam	3	I- ビーム。アルファベットの I の形のポインタです。

dblIcon	4	アイコン。2 重の四角形のポインタです。

dblSize	5	サイズ (上下左右)。上下左右を指している矢印のポインタです。

dblSizeNESW	6	サイズ (右上 - 左下)。斜めに 2 方向を指している矢印のポインタです。

dblSizeNS	7	サイズ (上下)。上下 2 方向を指している矢印のポインタです。

dblSizeNWSE	8	サイズ (左上 - 右下)。斜めに 2 方向を指している矢印のポインタです。

dblSizeEW	9	サイズ (左右)。左右 2 方向を指している矢印のポインタです。

dblUpArrow	10	上矢印。

dblHourglass	11	砂時計 (待機)。

dblNoDrop	12	禁止。

dblArrowHourglass	13	矢印と砂時計。

dblArrowQuestion	14	矢印と疑問符。

dblSizeAll	15	サイズ (すべて)。Microsoft Windows NT Version 3.51 のユーザー定義のポインタです。

dblCustom	99	MouseIcon プロパティによって設定するユーザー定義のアイコンです。

Style プロパティの定数

定数	値	内容

dblDropdownCombo	0	ドロップダウン コンボ

dblSimpleCombo	1	シンプル コンボ

dblDropdownList	2	ドロップダウン リスト


関連項目

データ アクセス オブジェクトの定数

データ (Data) コントロールの定数


DB グリッド (DBGrid) コントロールの定数

関連項目

Alignment プロパティの定数

定数	値	内容

dbgLeft	0	左揃え

dbgRight	1	右揃え

dbgCenter	2	中央揃え

dbgGeneral	3	一般

BorderStyle プロパティの定数

定数	値	内容

dbgNone	0	None

dbgFixedSingle	1	FixedSingle

連結状況を示す定数

定数	値	内容

dbgBound	0	連結

dbgUnbound	1	非連結

DividerStyle プロパティの定数

定数	値	内容

dbgNoDividers	0	境界線なし。

dbgBlackLine	1	黒い線。

dbgDarkGrayLine	2	暗い灰色の線。

dbgRaised	3	浮き出し表示。

dbgInset	4	くぼみ表示。

dbgUseForeColor	5	ForeColor プロパティに指定されている色を使って、分割線を表示します。

RowDividerStyle プロパティの定数

定数	値	内容

dbgNoDividers	0	境界線なし。

dbgBlackLine	1	黒の線。

dbgDarkGrayLine	2	暗い灰色の線。

dbgRaised	3	浮き出し表示。

dbgInset	4	くぼみ表示。

dbgUseForeColor	5	ForeColor プロパティに設定されている色を使って、描画されます。

Scroll Bars プロパティの定数

定数	値	内容

dbgNone	0	なし

dbgHorizontal	1	水平

dbgVertical	2	垂直

dbgBoth	3	両方

dbgAutomatic	4	自動


関連項目

データ アクセス オブジェクトの定数

データ (Data) コントロールの定数


数値の構文ｴﾗｰです。(Error 2420)

呼び出した数値が無効です。指定した式に数値以外の値が含まれていると、このエラーが発生します。


日付の構文ｴﾗｰです。(Error 2421)

指定した日付の構文が間違っています。無効な日付を指定すると、このエラーが発生します。たとえば、9 月は 30 日までなので、9/31/94 という指定は無効です。


文字列の構文ｴﾗｰです。(Error 2422)

入力した式に無効な文字列が含まれています。入力した式が正しいかどうかを確認してください。


'.'、'!'、または '()' の使い方が不正です。(Error 2423)

区切り記号を式に正しく使用していません。データ オブジェクトのプロパティを参照するには、."<name>" 構文を使用することをお勧めします。


未定義の名前です。(Error 2424)

入力した式に、認識できないフィールド名またはプロパティ名が含まれています。オブジェクトが存在するかどうかを確認してください。または、入力した式が正しいかどうかを確認してください。


未定義の関数名です。(Error 2425)

入力した式に認識できない関数名が含まれています。その関数が存在するかどうかを確認してください。または、入力した式が正しいかどうかを確認してください。


この関数は式では使えません。(Error 2426)

入力した関数は、この式では使用できません。式の中では、DoEvents、LBound、UBound、Spc、および Tab の各関数は使用できません。


指定のｵﾌﾞｼﾞｪｸﾄには数値または文字列が必要です。このｵﾌﾞｼﾞｪｸﾄには値がありません。(Error 2427)

入力した式に値を持たないオブジェクトの識別子が含まれています。オブジェクトは、既定プロパティの値を持つ場合と、既定のメンバ関数を返す場合とがあります。

入力した式が正しいかどうかを確認してください。


定義域関数の引数が不正です。(Error 2428)

定義域関数に入力した引数が無効です。関数の引数については、「定義域集合関数 (SQL)」を参照し、関数名を選択してください。


In 演算子には、かっこ '()' が必要です。(Error 2429)

In 演算子を含む SQL ステートメントを指定する場合、調べる項目のリストはかっこで囲んで指定してください。たとえば、値が、値のセットに含まれるかどうかを確認するには、SQL クエリーの WHERE 節に次のコードを記述します。

WHERE Publishers.State In ('TX', 'CA', 'WA')

このコードは、State フィールドに、Texas、California、および Washington の省略形のいずれかが含まれるかどうかを調べています。


Between 演算子に対応する And がありません。(Error 2430)

Between 演算子を使用して、指定範囲内に式の値があるかどうかを調べる場合、範囲の上限および下限は、予約語 And で区切って指定します。たとえば、"A" ～ "C" の範囲のコードを調べるには、次のコードを記述します。

WHERE MyField Between "A" And "C"


構文ｴﾗｰです。(Error 2431)

式またはステートメントに演算子を指定していません。


構文ｴﾗｰです。(Error 2432)

式またはステートメントに不要なカンマを指定しました。または、引数を区切るカンマを指定していません。


構文ｴﾗｰです。(Error 2433)

コマンドの指定または区切り記号が無効です。演算子を指定していないか、または指定した演算子が存在しない場合があります。


構文ｴﾗｰです。(Error 2434)

式またはステートメントに演算子を指定していません。


不要な閉じかっこ ')' があります。(Error 2435)

入力した式に余分な閉じかっこ ( )) 式が含まれています。開きかっこが対応していない閉じかっこはすべて削除してください。


')'、']'、または <ｱｲﾃﾑ> が足りません。(Error 2436)

入力した式に、必要な閉じかっこ ( ))、角かっこ ([])、または垂直バー (|) が含まれていません。入力した式が正しいかどうかを確認してください。


縦棒 '|' の使い方が不正です。(Error 2437)

入力した式に無効な垂直バー (|) が含まれています。入力した式が正しいかどうかを確認してください。


構文ｴﾗｰです。(Error 2438)

入力した式に無効な構文が含まれています。たとえば、演算数または演算子が指定されていない、無効な文字またはカンマを入力した、文字列を引用符 (") で囲まずに入力したなどの場合が考えられます。入力した式が正しいかどうかを確認してください。


関数で使われている引数の数が一致しません。(Error 2439)

入力した式に引数の個数が違う関数が含まれています。指定した関数の引数の個数を確認してください。または、入力した式が正しいかどうかを確認してください。


IIF 関数に対応するかっこ '()' がありません。(Error 2440)

IIf 関数に指定する引数は、IIf( expr, truepart, falsepart ) のように、かっこで囲んで指定してください。


かっこ '()' の使い方が不正です。(Error 2442)

入力した式に無効なかっこが含まれています。たとえば、クエリー内の識別子に対して、かっこを使用しています。クエリー内では、標準の識別子の構文のみを使用してください。


Is 演算子の使い方が不正です。(Error 2443)

Is 演算子は、式が Null 値であるかどうかを判断するのに使用します。式の中で Is 演算子と共に使用できるのは、Null 値または Not Null 値のみです。


式が複雑すぎます。(Error 2445)

この式は、Microsoft Jet データベース エンジンにとっては複雑すぎます。式を単純にしてください。


ﾒﾓﾘ不足のため、演算を実行できません。(Error 2446)

計算を完了するためのアプリケーションのメモリが不足しています。十分な RAM および仮想スワップ ファイルが設定されているかどうかを確認してください。他のプログラムの終了、デスクトップの壁紙用のビットマップの削除、不要な TSR (メモリ常駐プログラム) またはデバイス ドライバの削除を行って、十分なメモリを復元する必要がある場合もあります。


'.'、'!'、または '()' の使い方が不正です。(Error 2447)

区切り記号を式に正しく使用していません。データ オブジェクトのプロパティを参照するには、."<name>" 構文を使用することをお勧めします。


値を設定できません。(Error 2448)

読み取り専用の、または値を持たないオブジェクトに対して値を割り当てようとしています。


ｱﾀｯﾁされているﾜｰｸｼｰﾄを表示するための Excel との接続が切断されました。Excel の実行が終了している可能性があります。(Error 3620)

アタッチされている Microsoft Excel のワークシートを表示するための接続が切断されました。Excel の実行が終了しているかどうかを確認してください。


共有ﾓｰﾄﾞで開いているﾃｰﾌﾞﾙのﾊﾟｽﾜｰﾄﾞを変更することはできません。(Error 3621)

このエラーの原因と解決法は次のとおりです。

指定したフィールド名が無効です。指定したフィールド名を確認してください。

カウンタ フィールドを更新しようとしました。カウンタ フィールドは更新できません。


IDENTIFY 列を持つ SQLServer ﾃｰﾌﾞﾙにｱｸｾｽするときは、OpenDatabase ﾒｿｯﾄﾞで dbSeeChanges ｵﾌﾟｼｮﾝを指定する必要があります。(Error 3622
IDENTIFY 列を持つ SQLServer ﾃｰﾌﾞﾙにｱｸｾｽするときは、OpenDatabase ﾒｿｯﾄﾞで dbSeeChanges ｵﾌﾟｼｮﾝを指定する必要があります。(Error 3622)

アタッチ (またはリンク) テーブルへの接続文字列の中に、国別番号が指定されていません。指定したフィールド名を確認してください。


ｼｽﾃﾑで予約されているｴﾗｰ <ｱｲﾃﾑ> です。このｴﾗｰに対するﾒｯｾｰｼﾞはありません。(Error 3000)

予期しないエラーが発生しました。表示されたコードはこのエラーが発生した状態を表します。


引数が正しくありません。(Error 3001)

DLL のルーチンを必要とする操作を実行しようとしましたが、ルーチンの引数の 1 つが無効です。引数を正しく指定しているかどうかを確認して再度操作を行ってください。

このエラーは、お互いに排他的な定数をメソッドへの引数に使用する場合にも発生します。OpenRecordset メソッドの引数 options に、定数 dbConsistent および定数 dbInconsistent の両方を指定した場合にこのエラーが発生します。


ｾｯｼｮﾝを開始できませんでした。(Error 3002)

新しいセッションを必要とする操作を実行しようとしましたが、一度に実行できるセッション数の上限に達しています。他の操作が終了するのを待つか、または他の操作をいったん中止して再度操作を行ってください。


ﾈｽﾄしているﾄﾗﾝｻﾞｸｼｮﾝが多すぎるため、ﾄﾗﾝｻﾞｸｼｮﾝを開始できませんでした。(Error 3003)

トランザクションのネスト レベルが 5 を超えています。CommitTrans メソッドまたは Rollback メソッドを使用してカレント トランザクションを保存またはロール バックしてから新しいトランザクションを開始してください。


<ﾃﾞｰﾀﾍﾞｰｽ名> は不正なﾃﾞｰﾀﾍﾞｰｽ名です。(Error 3005)

指定したデータベース名がファイル名に関する標準の名前付け規則に合っていません。パスおよびファイル名を格納するバッファに対して、ファイル名が長すぎる場合があります。名前付け規則に合った名前を入力して再度操作を行ってください。


ﾃﾞｰﾀﾍﾞｰｽ <ﾃﾞｰﾀﾍﾞｰｽ名> は排他ﾛｯｸされています。(Error 3006)

他のユーザーが排他アクセスを指定して開いているデータベースを使用しようとしました。他のユーザーによるデータベースの操作が終了してから再度操作を行ってください。


ﾗｲﾌﾞﾗﾘ ﾃﾞｰﾀﾍﾞｰｽ <ﾃﾞｰﾀﾍﾞｰｽ名> を開くことができませんでした。(Error 3007)

指定したデータベースは Microsoft Jet データベース エンジンのライブラリの内部データベースです。このデータベースを開くことはできません。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は排他ﾛｯｸされています。(Error 3008)

他のユーザーが排他アクセスを指定して開いているテーブルを使用しようとしました。または、ユーザー インターフェイスを使用して開いているテーブルを、プログラムで操作しようとしました。状況に応じた条件を指定して再度操作を行ってください。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は現在使用されているため、ﾛｯｸできませんでした。(Error 3009)

テーブルが開いている状態のままでロックしようとしましたが、現在使用中のためロックできません。しばらくしてから再度操作を行ってください。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は既に存在します。(Error 3010)

既にデータベースに存在する名前を使用して、テーブルの作成または名前の変更を実行しようとしました。別の名前を選択して再度操作を行ってください。

このエラーは、マルチユーザー環境で使用するデータベースの場合、ユーザーがテーブルを削除した後に、削除したテーブルと同じ名前のテーブルを別のユーザーが作成し、テーブルを削除したユーザーがその処理をロール バックしようとしたときに発生します。テーブルを復元するには、復元するテーブルと同じ名前のテーブルを他のユーザーが削除するか、または新しいテーブル名に変更してから、再度ロール バック操作を行ってください。


ｵﾌﾞｼﾞｪｸﾄ <ｵﾌﾞｼﾞｪｸﾄ名> は見つかりませんでした。(Error 3011)

このエラーの原因と解決法は次のとおりです。

指定したオブジェクトが存在しません。

オブジェクト名の指定が間違っています。アンダースコア (_) などの区切り記号が適切かどうかを確認してください。また、余分なスペースを先頭に入力していないかどうかも確認してください。

Btrieve のテーブルを開こうとしている場合は、データ定義のファイル FILE.DDF に指定されているパスが適切でないことがあります。データ (.DAT) ファイルが適切なディレクトリにあることを確認してください。


ｵﾌﾞｼﾞｪｸﾄ <ｵﾌﾞｼﾞｪｸﾄ名> は既に存在しています。(Error 3012)

データベースに既に存在する名前を使用してオブジェクトを作成しようとしました。別の名前を選択して再度操作を行ってください。


組み込み可能な ISAM ﾄﾞﾗｲﾊﾞのﾌｧｲﾙ名は変更できませんでした。(Error 3013)

Btrieve、dBASE、または Paradox のテーブルの名前を変更しようとしましたが、テーブルを含むファイル名を変更できませんでした。

このエラーの原因は次のとおりです。

ファイルは、オペレーティング システムまたはネットワーク環境によって読み取り専用に定義されています。

ネットワーク環境でファイルへの書き込み特権が与えられていません。


ﾃｰﾌﾞﾙはこれ以上開けません。(Error 3014)

一度に開くことができるテーブル数の上限に達しています。1 つ以上のテーブルを閉じて再度操作を行ってください。


<ｲﾝﾃﾞｯｸｽ名> はこのﾃｰﾌﾞﾙのｲﾝﾃﾞｯｸｽではありません。(Error 3015)

インデックス以外の値を使用しようとしました。有効なインデックス名を判断するには、TableDef オブジェクトの Indexes コレクションを調べてください。


ﾌｨｰﾙﾄﾞがﾚｺｰﾄﾞに適合しません。(Error 3016)

インポートまたは貼り付けようとしているフィールドが大きすぎます。フィールドを分割し、データのインポートまたは貼り付けを実行してからフィールドを操作するか、あるいはフィールドのデータ型を変更することをお勧めします。


ﾌｨｰﾙﾄﾞ ｻｲｽﾞが長すぎます。(Error 3017)

254 文字を超える長さのテキスト フィールドを定義または作成しようとしました。1 ～ 254 の範囲の値を使用して再度操作を行うか、またはデータ型をメモ型に指定してフィールドを作成してください。


 ﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> は見つかりませんでした。(Error 3018)

このエラーの原因は次のとおりです。

指定したフィールドが存在しません。

フィールド名の指定が無効です。アンダースコア (_) などの区切り記号が適切かどうかを確認してください。また、余分なスペースを先頭に入力していないかどうかを確認してください。

無効なフィールド識別子を入力しました。たとえば、「MyTable![My Field]」と入力しないで、「[My Table]_[My Field]」と入力しました。


ｶﾚﾝﾄ ｲﾝﾃﾞｯｸｽを指定してください。(Error 3019)

Index プロパティを設定して再度操作を行ってください。


Update または CancelUpdate ﾒｿｯﾄﾞには、対応する AddNew または Edit ﾒｿｯﾄﾞが必要です。(Error 3020)

AddNew メソッドまたは Edit メソッドを使用しないで、レコードへの変更を保存しようとしました。あらかじめこれらのメソッドを実行してから、Update メソッドまたは CancelUpdate メソッドを使用してください。


ｶﾚﾝﾄ ﾚｺｰﾄﾞがありません。(Error 3021)

基になるレコードセットにレコードがないか、またはレコードが削除されたため、FindFirst メソッド、FindLast メソッド、FindNext メソッド、FindPrevious メソッド、または Seek メソッドを正しく実行できませんでした。他のレコードに移動するか、または他のレコードを選択して再度操作を行ってください。


ｲﾝﾃﾞｯｸｽ、主ｷｰ、またはﾘﾚｰｼｮﾝｼｯﾌﾟで指定されている値が重複しています。変更はできませんでした。(Error 3022)

基になっているテーブルの、主キーまたは重複が許されないインデックスのフィールドで、重複する値を指定しようとしました。そのフィールドのデータまたは重複するデータを含むフィールドのデータを変更するか、インデックスを削除するか、または重複するエントリが許されるインデックスを再定義して再度操作を行ってください。


AddNew または Edit ﾒｿｯﾄﾞは、既に適用されています。(Error 3023)

カレント レコードへの変更を、保存またはロールバック (更新前の状態に戻す) しないで、他のレコードを追加または変更しようとしています。Rollback メソッドまたは Update メソッドを使用してから、AddNew メソッドまたは Edit メソッドを使用してください。


ﾌｧｲﾙ <ﾌｧｲﾙ名> は見つかりませんでした。 (Error 3024)

このエラーの原因は次のとおりです。

指定したファイルが存在しません。

ファイル名の指定が無効です。アンダースコア ( _ ) などの区切り記号が適切かどうかを確認してください。また、余分なスペースを先頭に入力していないかどうかも確認してください。ファイル名が長すぎる場合があります。MS-DOS ベースのシステムの場合、ファイル名は 8 文字以内で 3 文字の拡張子をピリオド (.) で区切って指定します。


これ以上ﾌｧｲﾙを開くことはできません。(Error 3025)

一度に開くことができるファイル数の上限に達しています。1 つ以上のファイルを閉じて再度操作を行ってください。


ﾃﾞｨｽｸの空き容量が不足しています。(Error 3026)

操作に必要なディスクの容量が不足しています。ディスクから不要なファイルを削除するか、またはデータベースを圧縮してから再度操作を行ってください。


ﾃﾞｰﾀﾍﾞｰｽまたはｵﾌﾞｼﾞｪｸﾄは読み取り専用であるため、更新できませんでした。(Error 3027)

読み取り専用アクセスを設定して開いているデータベースで、変更を保存しようとしました。

データベースは、次のような場合に、読み取り専用になります。

OpenDatabase 関数を使用して読み取り専用アクセスでデータベースを開きました。

データ (Data) コントロールを使用している場合は、ReadOnly プロパティを真 (True) に設定しています。

データベースのファイルが、オペレーティング システムで、またはネットワークによって、読み取り専用として定義されています。

データベースのファイルが読み取り専用のメディアに保存されています。

ネットワーク環境で、データベースのファイルへの書き込み特権が与えられていません。

セキュリティが考慮されたデータベースの場合は、データベース、テーブル、またはフィールドが読み取り専用に設定されている場合があります。現在使用しているユーザー名およびパスワードでは、このデータにアクセスできる権限が与えられていない場合があります。

データベースを閉じて、読み取り専用の設定を解除してから、読み取りアクセス/書き込みアクセスを指定してデータベースを再度開いてください。


ｱﾌﾟﾘｹｰｼｮﾝを起動できません。ｼｽﾃﾑ ﾃﾞｰﾀﾍﾞｰｽが存在しないか、または他のﾕｰｻﾞｰが排他的にｼｽﾃﾑ ﾃﾞｰﾀﾍﾞｰｽを開いています。(Error 3028)

Microsoft Jet データベース エンジンで作成されたデータベースでの参照整合性を確認するには、Jet データベースの SYSTEM.MDW ファイルをアプリケーションが読み取る必要があります。ファイルが、レジストリの SystemDB エントリで指定される格納場所にあるかどうかを確認してください。


ｱｶｳﾝﾄ名またはﾊﾟｽﾜｰﾄﾞが不正です。 (Error 3029)

無効なアカウント名 (ユーザー名) またはパスワードが入力されました。

ユーザー名

ユーザー名は、1 ～ 20 文字以内の、英文字、アクセント記号、数字、スペース、および記号で指定します。ただし、次に示す記号は使用できません。

"  /  \  [  ]  |  <  >  +  =  ;  ,  :  ?  *

文字列の先頭のスペース

制御文字

大文字および小文字は、ユーザー名では区別されません。

パスワード

パスワードは 14 文字以下の任意の文字の組み合わせです。パスワードに制御文字は指定できません。パスワードでは、大文字および小文字が区別されます。


<ｱｶｳﾝﾄ名> は不正なｱｶｳﾝﾄ名です。(Error 3030)

指定されたアカウント名 (ユーザー名) が無効です。ユーザー名は、1 ～ 20 文字以内の、英文字、アクセント記号、数字、スペース、および記号で指定します。ただし、次に示す記号は使用できません。

"  /  \  [  ]  |  <  >  +  =  ;  ,  :  ?  *

文字列の先頭のスペース

制御文字

大文字および小文字はユーザー名では区別されません。


ﾊﾟｽﾜｰﾄﾞが不正です。(Error 3031)

入力したパスワードが無効です。パスワードは 14 文字以下の任意の文字の組み合わせです。パスワードに制御文字は指定できません。パスワードでは大文字および小文字が区別されます。


この操作は実行できません。(Error 3032)

このエラーの原因は次のとおりです。

グループ Admins 内の唯一のユーザー アカウントを削除しようとしました。グループ Admins には、少なくとも 1 つのユーザー アカウントが含まれている必要があります。このアカウントを削除するには、アカウントを新しく作成してこれをグループ Admins に追加するか、または既存のアカウントをグループ Admins に追加してから、目的のアカウントを削除します。

User オブジェクトの Groups コレクションに対してこのコレクションの中の Group オブジェクトと同じ名前の Group オブジェクトを追加することによって、または、Group オブジェクトの Users コレクションに対してこのコレクションの中の User オブジェクトと同じ名前の User オブジェクトを追加することによって、既に属しているグループにユーザーを設定しようとしました。


<名前> に対する権限がありません。(Error 3033)

指定したオブジェクトに対して必要な権限が与えられていません。権限を変更するには、システム管理者またはオブジェクトの作成者に問い合わせてください。


ｺﾐｯﾄまたはﾛｰﾙﾊﾞｯｸを実行するには、BeginTrans ﾒｿｯﾄﾞが適用されている必要があります。(Error 3034)

コミットまたはロールバックしようとしたトランザクションが、BeginTrans ステートメントで開始されていません。


ﾃﾞｰﾀﾍﾞｰｽは最大のｻｲｽﾞに達しました。(Error 3036)

このデータベースにデータを追加するには、まずデータを削除してそのサイズを縮小する必要があります。


これ以上ﾃｰﾌﾞﾙまたはｸｴﾘｰを開くことはできません。(Error 3037)

一度に開くことができるテーブル数およびクエリー数の上限に達しました。1 つ以上のテーブルまたはクエリーを閉じて再度操作を行ってください。


定義されているｲﾝﾃﾞｯｸｽが多すぎるため、ｲﾝﾃﾞｯｸｽは作成できませんでした。(Error 3039)

このテーブルに対しては別のインデックスを作成できません。既存のインデックスを削除してから新しいインデックスを作成してください。


読み取り中にﾃﾞｨｽｸ I/O ｴﾗｰが発生しました。(Error 3040)

内部ディスクまたはドライブの障害によって、ディスクを読み取ることができません。

このエラーの原因は次のとおりです。

ネットワーク ドライブから読み取ろうとしましたが、ネットワークが一時的にビジー状態にあるか、またはネットワークとの接続が切断されています。ネットワークとの接続状態を確認して再度操作を行ってください。

ディスクまたはドライブに障害があります。


前のﾊﾞｰｼﾞｮﾝのｱﾌﾟﾘｹｰｼｮﾝで作成されたﾃﾞｰﾀﾍﾞｰｽを開くことはできません。(Error 3041)

以前のバージョンのデータベースにアクセスしようとしました。データベースを最適化して再度操作を行ってください。


MS-DOS のﾌｧｲﾙ ﾊﾝﾄﾞﾙが不足です。(Error 3042)

いくつかのファイルを閉じるか、他のアプリケーションを終了するか、または使用できる MS-DOS のファイル ハンドル数を増やしてください。

ファイル ハンドル数を増やすには

1.	Microsoft Windows のメモ帳または他のテキスト エディタを使用して、CONFIG.SYS ファイルを編集します。通常、CONFIG.SYS ファイルは起動するドライブのルート ディレクトリにあります。システムに CONFIG.SYS ファイルがない場合は、このファイルを作成して、ステップ 2 に示す行を設定してください。

2.	FILES = x が指定されている行を検索します。x には数値が指定されています。FILES コマンドで指定されるこの数値を増やします。正確なハンドル数は、実行するアプリケーションおよび同時に開くことができるファイル数に依存します。他のアプリケーションでも複数のファイルを開く場合は、より大きなファイル ハンドル数を指定する必要があります。

ファイル ハンドル数を増やすと、より多くのメモリを消費することに注意してください。詳細については、オペレーティング システムのマニュアルを参照してください。

3.	Microsoft Windows を終了します。

4.	システムを再起動して再度操作を行ってください。


ﾃﾞｨｽｸまたはﾈｯﾄﾜｰｸのｴﾗｰです。(Error 3043)

内部ディスクまたはドライブの障害によって、ディスクの読み取りまたは書き込みができません。

このエラーの原因は次のとおりです。

ネットワーク ドライブを使用しようとしましたが、ネットワークが一時的にビジー状態にあるか、またはネットワークとの接続が切断されています。ネットワークとの接続状態を確認して再度操作を行ってください。

ディスクまたはドライブに障害があります。


<ﾊﾟｽ> は不正なﾊﾟｽです。(Error 3044)

このエラーの原因は次のとおりです。

入力したファイル指定に無効なパスが含まれています。たとえば、存在しないパスを入力しました。または、パスを構成する要素の指定が間違っています。

指定したファイルはネットワーク ドライブ上のファイルです。そのネットワークとの接続が切断されています。ネットワークが接続されていることを確認して再度操作を行ってください。


<名前> は既に使用されているため、使用できませんでした。(Error 3045)

指定したファイルは、他のユーザーまたはセッションによって、現在使用されています。ファイルに対する他のユーザーまたはセッションの操作が終了してから再度操作を行ってください。


他のﾕｰｻﾞｰによってﾛｯｸされているため、保存できませんでした。(Error 3046)

現在他のユーザーがロックしているデータベースのページの情報を保存しようとしました。変更を保存するには、他のユーザーの操作が終了してから再度操作を行ってください。


ﾚｺｰﾄﾞが大きすぎます。(Error 3047)

定義したテーブルのレコードが大きすぎてサポートできません。このエラーは、レコードにデータを入力するときに発生し、テーブル構造を定義するときには発生しません。フィールドの一部分を小さくするか、または不要なフィールドを削除して、テーブルを再定義してください。


これ以上ﾃﾞｰﾀﾍﾞｰｽを開くことはできません。 (Error 3048)

一度に開くことができるデータベース数の上限に達しています。1 つ以上のデータベースを閉じて再度操作を行ってください。


ﾃﾞｰﾀﾍﾞｰｽ <ﾃﾞｰﾀﾍﾞｰｽ名> を開くことができません。ｱﾌﾟﾘｹｰｼｮﾝで認識できるﾃﾞｰﾀﾍﾞｰｽではないか、ﾌｧｲﾙが破損しています。(Error 3049)

このエラーの原因は次のとおりです。

Btrieve、dBASE、Paradox データベースまたはテーブルを開こうとしました。データベースまたはテーブルを既存の Microsoft Jet データベースにアタッチ (またはリンク) してください。

Paradox データベースまたはテーブルをインポートまたはアタッチ (またはリンク) しようとしましたが、関連する .PX ファイルが見つかりませんでした。Paradox データベースまたはテーブルと同じディレクトリに .PX ファイルがあることを確認してから再度操作を行ってください。

指定されたデータベースが Microsoft Jet データベースの場合、破損しています。データベースを修復してください。データベースを修復できない場合、バックアップ コピーからデータベースを復元するか、または新しくデータベースを作成してください。


ﾌｧｲﾙ <ﾌｧｲﾙ名> を開くことができませんでした。(Error 3051)

このエラーの原因は次のとおりです。

指定したファイルのデータを表示するには、そのファイルに対するデータの読み取り権限が必要です。権限を変更するには、システム管理者あるいはテーブルまたはクエリーの作成者に問い合わせてください。

指定したファイルを排他的に開こうとしましたが、このファイルは他のユーザーが既に開いています。


MS-DOS ﾌｧｲﾙの一度にﾛｯｸできるﾌｧｲﾙ数を超えています。SHARE.EXE のﾛｯｸ数を増やしてください。(Error 3052)

SHARE.EXE をロードするには

1.	Microsoft Windows を終了します。

2.	テキスト エディタを使用して、AUTOEXEC.BAT ファイルに次の行を追加します。

SHARE.EXE /L:500

システムに AUTOEXEC.BAT ファイルがない場合は、Microsoft Windows を起動する前に、この行をコマンド プロンプトに入力します。実際に使用するロックの正確な数は、実行するアプリケーションおよび同時にロックするファイル数によって異なります。他のアプリケーションでもファイルをロックする場合は、ロックの数は 500 を超える値に設定してください。

3.	SHARE.EXE のロードを AUTOEXEC.BAT ファイルに追加した場合は、システムを再起動してください。

4.	Microsoft Windows を再起動して再度操作を行います。


ｸﾗｲｱﾝﾄ ﾀｽｸが多すぎます。(Error 3053)

一度に実行している、Visual Basic または Visual Basic アプリケーションのインスタンスの数が多すぎます。1 つ以上のインスタンスを閉じてください。


ﾒﾓ型または OLE ｵﾌﾞｼﾞｪｸﾄ型のﾌｨｰﾙﾄﾞが多すぎます。(Error 3054)

実行しようとしている Btrieve の操作には、関連するメモ型または OLE オブジェクト型のフィールドの数が多すぎます。メモ型および OLE オブジェクト型のフィールドの数を減らして再度操作を行ってください。


ﾌｧｲﾙ名が不正です。(Error 3055)

指定したファイル名が使用しているオペレーティング システムの名前付け規則に沿っていません。名前付け規則に従ったファイル名を入力して再度操作を行ってください。


このﾃﾞｰﾀﾍﾞｰｽは修復できませんでした。(Error 3056)

このデータベースは破損しています。または、Microsoft Jet データベースではありません。破損した Microsoft Jet データベースはバックアップ コピーから復元するか、または新しくデータベースを作成してください。


ｱﾀｯﾁ またはﾘﾝｸ ﾃｰﾌﾞﾙでは、この操作はｻﾎﾟｰﾄされていません。(Error 3057)

テーブルからデータをインポートして再度操作を行ってください。


ｲﾝﾃﾞｯｸｽまたは主ｷｰには、Null 値を使うことができません。(Error 3058)

このエラーの原因は次のとおりです。

主キーのフィールドに Null 値を追加しようとしました。

主キーを含む列に値を入力しないで、新しいレコードを追加しようとしました。

主キーのフィールドに Null 値を設定するクエリーを実行しました。


ﾕｰｻﾞｰによって処理が中止されました。(Error 3059)

操作が正常に終了する前に、操作を中止しました。データの変更が保存されていない場合があります。


ﾊﾟﾗﾒｰﾀ <ﾊﾟﾗﾒｰﾀ名> のﾃﾞｰﾀ型が間違っています。(Error 3060)

使用した引数のデータ型が、このパラメータについて定義されているデータ型と異なります。たとえば、数値型の引数が定義されているパラメータに文字列式を使用しました。定義されているデータ型の引数を使用して再度操作を行ってください。


ﾊﾟﾗﾒｰﾀが少なすぎます。<数> を指定してください。(Error 3061)

このパラメータ クエリーは、必要なパラメータの数が指定されています。必要な数のパラメータを指定してクエリーを再度実行してください。

認識できないフィールド名または式がクエリーのパラメータとして解釈されてこのエラーが生成される場合があります。スペースまたは区切り記号を含むフィールド名は、角かっこ ([]) で囲んで指定してください。


出力ｴｲﾘｱｽ <ｴｲﾘｱｽ名> が重複しています。(Error 3062)

同じ名前のエイリアスが複数含まれる SQL ステートメントを実行しようとしました。たとえば、次のようなステートメントを実行すると、このエラーが発生します。

SELECT LastName AS Name, FirstName AS Name FROM Employees;

エイリアスの名前を変更して再度操作を行ってください。


出力先 <出力先名> が重複しています。(Error 3063)

同じ名前の出力フィールドが複数含まれるクエリーを実行しようとしました。

このエラーの原因と解決法は次のとおりです。

作成した SQL ステートメントに、指定したフィールド名を 2 回以上記述した INSERT INTO ステートメント、SELECT...INTO ステートメント、または UPDATE ステートメントが含まれています。

重複するフィールド名を削除するか、または出力フィールド名にエイリアスを指定してから、再度操作を行ってください。


ｱｸｼｮﾝ ｸｴﾘｰ <ｸｴﾘｰ名> を開くことはできません。(Error 3064)

OpenQueryDef メソッドを使用してアクション クエリーを開こうとしました。OpenQueryDef メソッドは、以前のバージョンと互換性を保つために用意されている、選択クエリーにのみ有効なメソッドです。アクション クエリーを実行するには、できるだけ QueryDef オブジェクトの Execute メソッドを使用してください。


非ｱｸｼｮﾝ ｸｴﾘｰは実行できません。(Error 3065)

選択クエリーで Execute メソッドを使用しようとしました。Execute メソッドは、アクション クエリーにのみ有効です。アクション クエリーはレコードを返しません。これに対し、選択クエリーには SELECT ステートメントが含まれ、レコードを返します。


ｸｴﾘｰまたはﾃｰﾌﾞﾙには、出力するﾌｨｰﾙﾄﾞが 1 つ以上必要です。(Error 3066)

作成したクエリーに出力フィールド名の指定がないと、このエラーが発生します。1 つ以上の出力フィールドを選択し、指定してください。


ｸｴﾘｰの入力には、1 つ以上のﾃｰﾌﾞﾙまたはｸｴﾘｰが必要です。(Error 3067)

作成したクエリーにテーブル名の指定がないと、このエラーが発生します。1 つ以上のテーブルまたはクエリーを選択し、指定してください。


ｴｲﾘｱｽ名が不正です。(Error 3068)

指定したエイリアスが標準の名前付け規則に沿っていません。新しい名前を入力して再度操作を行ってください。


ｱｸｼｮﾝ ｸｴﾘｰ <ｸｴﾘｰ名> をﾃﾞｰﾀ ｿｰｽとして使うことはできません。(Error 3069)

アクション クエリーの名前は使用できません。選択クエリーの名前を使用してください。アクション クエリーを実行するには、FROM 句にアクション クエリーを指定しないで、Execute メソッドを使用します。


<名前> はﾊﾞｲﾝﾄﾞできません。(Error 3070)

指定した名前はフィールド名として認識されません。または、式が無効です。クエリーの中に、データベース、テーブル、またはフィールドを正しく参照していない名前が指定されると、このエラーが発生します。たとえば、「BIBLIO.*」と入力すると、このエラーが発生します。この場合は、OpenDatabase メソッドで BIBLIO.MDB と指定してください。


式を評価することができません。(Error 3071)

このエラーの原因は次のとおりです。

入力した式に無効な構文式が含まれています。たとえば、演算数たは演算子を指定していない、無効な文字またはカンマを入力している、テキストを引用符 (") で囲まないで入力しているなどの場合が考えられます。入力した式が正しいかどうかを確認してください。

入力した式が複雑すぎます。たとえば、数値式に複雑な部分式が数多く含まれています。部分式のいくつかを変数に代入して式を単純にしてください。


更新可能なｸｴﾘｰでなければなりません。(Error 3073)

更新できないクエリーに対して、実行、変更、または開く処理をしようとしました。

このエラーの原因は次のとおりです。

更新できないフィールドを更新するクエリーを実行しました。たとえば、一対多リレーションシップの“一”の側にあるフィールドを更新するクエリーを作成した場合などがあります。

読み取り専用アクセスを設定して開いているデータベースのクエリーで、以前のバージョンの OpenQueryDef メソッドを使用しました。

データベースは、次のような場合に読み取り専用になります。

1.	OpenDatabase 関数またはデータ (Data) コントロールを使用して、読み取り専用アクセスを設定してデータベースを開きました。

2.	MS-DOS またはネットワーク オペレーティング システムで、データベース ファイルが読み取り専用に定義されています。

3.	ネットワーク環境で、データベース ファイルへの書き込み特権が与えられていません。

データベースを閉じて、読み取り専用の設定を解除してから、読み取りアクセスおよび書き込みアクセスの両方を指定してデータベースを再度開いてください。

クエリーを変更するには、クエリーの定義を変更できる権限が必要です。権限を変更するには、システム管理者またはクエリーの作成者に問い合わせてください。


FROM 句でﾃｰﾌﾞﾙ名 <名前> を繰り返すことはできません。(Error 3074)

テーブル名を繰り返すことはできません。余分なテーブル名を削除するか、またはエイリアスを使用してください。テーブルをそのテーブル自体と結合する場合は、テーブルを 2 回めに参照する部分でエイリアスを使用します。


ｸｴﾘｰ式 <式> の <ﾒｯｾｰｼﾞ> (Error 3075)

入力した式は、表示されたメッセージの理由によって無効です。フィールド名および区切り記号を正しく入力しているかどうかを確認して再度操作を行ってください。


抽出条件の <名前> (Error 3076)

入力した式は、表示されたメッセージの理由によって無効です。フィールド名および区切り記号を正しく入力しているかどうかを確認して再度操作を行ってください。


式の <ﾒｯｾｰｼﾞ> (Error 3077)

入力された式は、メッセージに表示された理由で無効です。フィールド名および区切り記号が正しく入力されていることを確認して再度操作を行ってください。


入力ﾃｰﾌﾞﾙまたはｸｴﾘｰ <名前> は見つかりませんでした。(Error 3078)

このエラーの原因は次のとおりです。

指定したテーブルまたはクエリーが存在しません。

テーブルまたはクエリーの指定が無効です。アンダースコア ( _ ) などの区切り記号が適切かどうかを確認してください。また、余分なスペースを先頭に入力していないかどうかも確認してください。


ﾌｨｰﾙﾄﾞの参照 <参照> があいまいです。(Error 3079)

指定したフィールドの参照が、SQL ステートメントの FROM 句に指定している複数のテーブルを参照しています。次のコード例では、Order ID フィールドが、Orders テーブルおよび Order Details テーブルの両方に存在します。ステートメントでは、どちらのテーブルに Order ID が属しているかを指定していないため、このエラーが発生します。

SELECT OrderID

FROM Orders, [Order Details];

この操作を完了するには、テーブル名を追加して指定するフィールドの参照を正確に指定します。次に例を示します。

SELECT Orders.OrderID

FROM Orders, [Order Details];


結合ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> が FROM 句に指定されていません。(Error 3080)

指定したテーブル名をクエリーの FROM 句に追加して再度操作を行ってください。


同じ名前 <ﾃｰﾌﾞﾙ名> の複数のﾃｰﾌﾞﾙを結合することはできません。(Error 3081)

同じ名前の複数のテーブルを結合しようとしました。別のテーブルを選択するか、いずれかのテーブルの名前を変更するか、またはエイリアスを使用するかして、再度操作を行ってください。テーブルをそのテーブル自体と結合する場合は、テーブルを 2 回めに参照する場所でテーブル エイリアスを使用します。


JOIN 操作 <操作> は非結合ﾃｰﾌﾞﾙを参照しています。(Error 3082)

実行した SQL ステートメントに無効な結合が含まれています。結合テーブルにないフィールド上で結合を作成しようとすると、このエラーが発生します。たとえば、次のコードを実行するとこのエラーが発生します。

SELECT Authors.FirstName, Titles.ISBN

FROM Authors, Titles, AuthorTitles,

Authors INNER JOIN Titles ON Authors.ID = AuthorTitles.ISBN;

結合は Authors テーブルおよび Titles テーブルに含まれていますが、結合フィールドは Authors テーブルおよび AuthorTitles テーブル内にあるため、エラーが発生します。


内部ﾚﾎﾟｰﾄ ｸｴﾘｰは使えません。(Error 3083)

許可されていない内部レポート クエリーへの明示的な参照を含む SQL ステートメントを使用しました。無効な参照を削除して再度操作を行ってください。


ｱｸｼｮﾝ ｸｴﾘｰを使ってﾃﾞｰﾀを挿入することはできません。(Error 3084)

入力に対して、アクション クエリーを使用して追加クエリーを実行しようとしました。アクション クエリーを選択クエリーに置き換えて再度操作を行ってください。


式に未定義関数 <関数名> があります。(Error 3085)

入力した SQL 式に認識できない関数プロシージャ名が含まれています。指定した関数が存在しているかどうか、また、その関数が SQL 式で使用できるかどうかを確認してください。または、入力した式が正しいかどうかを確認してください。


指定されたﾃｰﾌﾞﾙから削除できませんでした。(Error 3086)

1 つ以上のテーブルからデータを削除しようとしましたが、削除できませんでした。

このエラーの原因は次のとおりです。

テーブルを変更する権限が与えられていません。権限を変更するには、システム管理者またはテーブルの作成者に問い合わせてください。

読み取り専用アクセスを設定してデータベースを開いています。データベースは、次のような場合に読み取り専用になります。

1.	OpenDatabase 関数を使用して読み取り専用アクセスでデータベースを開きました。

2.	データベースのファイルが、データベース サーバー オペレーティング システムで、またはネットワークによって、読み取り専用として定義されています。

3.	ネットワーク環境で、データベースのファイルへの書き込み特権が与えられていません。

4.	Visual Basic でデータ (Data) コントロールを使用して、ReadOnly プロパティを真 (True) に設定しています。

データを削除するには、データベースを閉じて、読み取り専用の設定を解除してから、読み取り/書き込みアクセスを指定してデータベースを再度開いてください。


GROUP BY 句の式が多すぎます。(Error 3087)

作成した SQL ステートメントの GROUP BY 句に 10 個を超えるフィールドを指定しました。GROUP BY 句に指定したフィールドをいくつか削除してください。


ORDER BY 句の式が多すぎます。(Error 3088)

作成した SQL ステートメントの ORDER BY 句に 10 個を超える式を指定しました。ORDER BY 句に指定したフィールドをいくつか削除してください。


DISTINCT 出力の式が多すぎます。(Error 3089)

作成した SQL ステートメントの述語 ALL、述語 DISTINCT、または述語 DISTINCTROW に 10 個を超える式を指定しました。予約語 DISTINCT を削除するか、または述語 DISTINCT に指定したフィールドをいくつか削除してください。


作成されるﾃｰﾌﾞﾙは、複数のｶｳﾝﾀまたは自動番号ﾌｨｰﾙﾄﾞを含むことはできません。(Error 3090)

カウンタ型または自動番号型のフィールドを複数持つテーブルを作成するクエリーを実行しました。クエリーは、カウンタ フィールドまたは自動番号フィールドを 1 つだけ含むように変更してください。


TRANSFORM ｽﾃｰﾄﾒﾝﾄで HAVING 句は使えません。(Error 3092)

選択条件を指定する場合は、WHERE 句を使用してください。


ORDER BY 句 <句> は DISTINCT 句と矛盾しています。(Error 3093)

作成しれた SQL ステートメントには、述語 ALL、述語 DISTINCT、または述語 DISTINCTROW、そして SELECT ステートメントに指定していないフィールドを含む ORDER BY 句を指定しました。予約語 DISTINCT を削除するか、または指定したフィールドを ORDER BY 句から削除してください。


ORDER BY 句 <句> は GROUP BY 句と矛盾しています。(Error 3094)

選択クエリーを作成し、グループ化していないフィールドを並べ替えてからグループ化フィールドを指定すると、このエラーが発生します。たとえば、SQL ステートメントを作成する場合の指定フィールドの順序が、ORDER BY 句の中の順序と異なるときなどです。指定したフィールドをグループ化していないフィールドの左に移動するか、または指定したフィールドを ORDER BY 句から削除してください。


式 <式> で集合関数を使うことはできません。(Error 3095)

この式では、集合関数は使用できません。


WHERE 句 <句> で集合関数を使うことはできません。(Error 3096)

SQL ステートメントの WHERE 句の中では、集合関数は使用できません。


ORDER BY 句 <句> で集合関数を使うことはできません。(Error 3097)

SQL ステートメントの ORDER BY 句の中では、集合関数は使用できません。


GROUP BY 句 <句> で集合関数を使うことはできません。(Error 3098)

SQL ステートメントの GROUP BY 句の中では、集合関数は使用できません。


JOIN 操作 <操作> で集合関数を使うことはできません。(Error 3099)

SQL ステートメントの JOIN 操作では、集合関数は使用できません。


結合ｷｰに含まれるﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> は Null に設定できません。(Error 3100)

テーブルを結合する場合、結合するフィールドに Null 値を含めることはできません。別のフィールドを選択するか、またはフィールドにデータを入力してから再度操作を行ってください。


ﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> とｷｰが一致しているﾚｺｰﾄﾞがﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> にありません。(Error 3101)

一対多リレーションシップの中で、“一”側テーブルに対応するレコードがないデータを、“多”側テーブルに入力しました。たとえば、CustomerID フィールドを使用して Customers テーブルおよび Orders テーブルを結合してから、Customers テーブルに存在しない CustomerID を使用して Order フィールドにデータを追加すると、このエラーが発生します。


<ｸｴﾘｰ参照> から循環参照が発生しています。(Error 3102)

データがクエリー自体に依存するクエリーを実行しようとしました。たとえば、次のようなクエリーを実行すると、このエラーが発生します。

Query1

SELECT * FROM Employees, Query2;

Query2

SELECT * FROM Query1;

依存性が少なくなるようにクエリーを再作成してください。


ｸｴﾘｰ定義の SELECT で指定されているｴｲﾘｱｽ <ｴｲﾘｱｽ名> が循環参照を引き起こしています。(Error 3103)

指定したエイリアスによって、解決できない参照が作成されました。たとえば、次のような SQL ステートメントを実行すると、このエラーが発生します。A は循環参照を表します。

SELECT A + B AS C, C + D AS E, E + F AS A
FROM MyTable;

SELECT week1 + week2 as hours, hours + overtime as gross, gross + ytdpay as week1

FROM EmployeePay


ｸﾛｽ集計ｸｴﾘｰには、固定列見出し <値> を複数指定できません。(Error 3104)

固定列見出しを持つクロス集計クエリーを作成するには、重複しない値を指定する必要があります。重複する複数の列見出しを変更して再度操作を行ってください。


SELECT INTO ｽﾃｰﾄﾒﾝﾄ <ｽﾃｰﾄﾒﾝﾄ> にﾃﾞｨｽﾃｨﾈｰｼｮﾝ ﾌｨｰﾙﾄﾞ名が見つかりません。(Error 3105)

指定したステートメントにディスティネーション フィールド名を指定して再度操作を行ってください。


UPDATE ｽﾃｰﾄﾒﾝﾄ <ｽﾃｰﾄﾒﾝﾄ> にﾃﾞｨｽﾃｨﾈｰｼｮﾝ ﾌｨｰﾙﾄﾞ名が見つかりません。(Error 3106)

指定したステートメントにディスティネーション フィールド名を指定して再度操作を行ってください。


<名前> にﾃﾞｰﾀを挿入する権限がないため、ﾚｺｰﾄﾞを追加できません。(Error 3107)

指定したテーブルまたはクエリーにデータを挿入するには、このテーブルまたはクエリーに対するデータ挿入の権限が必要です。権限を変更するには、システム管理者、あるいはテーブルまたはクエリーの作成者に問い合わせてください。


<名前> のﾃﾞｰﾀを更新する権限がないため、ﾚｺｰﾄﾞを編集できません。(Error 3108)

指定したテーブルまたはクエリーのデータを更新するには、このテーブルまたはクエリーに対するデータ更新の権限が必要です。権限を変更するには、システム管理者、あるいはテーブルまたはクエリーの作成者に問い合わせてください。


<名前> のﾃﾞｰﾀを削除する権限がないため、ﾚｺｰﾄﾞを削除できません。(Error 3109)

指定したテーブルまたはクエリーのデータを削除するには、このテーブルまたはクエリーに対するデータ変更の権限が必要です。権限を変更するには、システム管理者、あるいはテーブルまたはクエリーの作成者に問い合わせてください。


ﾃｰﾌﾞﾙまたはｸｴﾘｰ <名前> の構造を読み取る権限がないため、定義を読み取ることができませんでした。(Error 3110)

指定したテーブルまたはクエリーの定義を読み取るには、このテーブルまたはクエリーに対する定義読み取りの権限が必要です。権限を変更するには、システム管理者、あるいはテーブルまたはクエリーの作成者に問い合わせてください。


ﾃｰﾌﾞﾙまたはｸｴﾘｰ <名前> を作成する権限がないため、作成できませんでした。(Error 3111)

指定したテーブルまたはクエリーを作成するには、このテーブルまたはクエリーに対する定義変更の権限が必要です。権限を変更するには、システム管理者、あるいはテーブルまたはクエリーの作成者に問い合わせてください。


<名前> のﾃﾞｰﾀを読み取る権限がないため、ﾚｺｰﾄﾞを読み取ることができません。(Error 3112)

指定されたテーブルまたはクエリーのデータを表示するには、このテーブルまたはクエリーに対するデータ読み取りの権限が必要です。権限を変更するには、システム管理者、あるいはテーブルまたはクエリーの作成者に問い合わせてください。


ﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> は更新できません。(Error 3113)

このエラーの原因は次のとおりです。

指定したフィールドは、更新できない TableDef オブジェクトの一部またはダイナセット タイプの Recordset オブジェクトの一部です。たとえば、Counter フィールドを更新しようとすると、このエラーが発生します。

更新できる Tabledef オブジェクトと更新できない Tabledef オブジェクトとを結合するクエリーを実行して作成された、ダイナセット タイプの Recordset オブジェクトのフィールドを更新しようとしました。


固有の値 <ｽﾃｰﾄﾒﾝﾄ> を選択したときは、ﾒﾓ型または OLE ｵﾌﾞｼﾞｪｸﾄ型のﾌｨｰﾙﾄﾞを含むことはできません。(Error 3114)

ステートメントから予約語 DISTINCT を削除するか、あるいはメモ型のフィールドまたは OLE オブジェクト型のフィールドを削除してください。


集合関数の引数 <ｽﾃｰﾄﾒﾝﾄ> にﾒﾓ型または OLE ｵﾌﾞｼﾞｪｸﾄ型のﾌｨｰﾙﾄﾞを指定することはできません。(Error 3115)

集合関数では、メモ型のフィールドまたは OLE オブジェクト型のフィールドは使用できません。


集合関数の抽出条件 <ｽﾃｰﾄﾒﾝﾄ> にﾒﾓ型または OLE ｵﾌﾞｼﾞｪｸﾄ型のﾌｨｰﾙﾄﾞを指定することはできません。(Error 3116)

SQL ステートメントの HAVING 句では、メモ型のフィールドまたは OLE オブジェクト型のフィールドは使用できません。


ﾒﾓ型または OLE ｵﾌﾞｼﾞｪｸﾄ型のﾌｨｰﾙﾄﾞ <句> で並べ替えを行うことはできません。(Error 3117)

SQL ステートメントの ORDER BY 句では、メモ型のフィールドまたは OLE オブジェクト型のフィールドは使用できません。


ﾒﾓ型または OLE ｵﾌﾞｼﾞｪｸﾄ型 <名前> のﾌｨｰﾙﾄﾞを結合することはできません。(Error 3118)

メモ型のフィールドまたは OLE オブジェクト型のフィールドを結合することはできません。2 つ以上のテーブルを論理的に結合するには、文字型や整数型などの別のデータ型のフィールドを使用してください。


ﾒﾓ型または OLE ｵﾌﾞｼﾞｪｸﾄ型 <句> のﾌｨｰﾙﾄﾞはｸﾞﾙｰﾌﾟ化できません。(Error 3119)

SQL ステートメントの GROUP BY 句では、メモ型のフィールドまたは OLE オブジェクト型のフィールドは使用できません。


'*' <ﾃｰﾌﾞﾙ名> で選択したﾌｨｰﾙﾄﾞはｸﾞﾙｰﾌﾟ化できません。(Error 3120)

1 つのテーブルのフィールドのすべてをアスタリスク (*) で選択してグループ化するまたは集計する SELECT ステートメントを実行しようとしました。たとえば、次のような SQL ステートメントを実行すると、このエラーが発生します。

SELECT Orders.* FROM Orders GROUP BY ShipVia;


'*' で選択したﾌｨｰﾙﾄﾞはｸﾞﾙｰﾌﾟ化できません。(Error 3121)

すべてのテーブルのすべてのフィールドをアスタリスク (*) で選択してグループ化するまたは集計する SELECT ステートメントを実行しようとしました。

このエラーの原因は次のとおりです。

アスタリスクで選択したフィールドを参照する集合関数または GROUP BY 句を含む SQL ステートメントが作成されました。たとえば次のような SQL ステートメントを実行すると、このエラーが発生します。

SELECT * FROM Orders GROUP BY ShipVia;


<名前> は、集合関数またはｸﾞﾙｰﾌﾟの一部ではありません。(Error 3122)

指定した式が集合関数またはグループに含まれていないクエリーを実行しようとしました。

このエラーの原因は次のとおりです。

TRANSFORM ステートメントに集合関数を入力していません。


ｸﾛｽ集計ｸｴﾘｰに '*' を使うことはできません。(Error 3123)

アスタリスク ( * ) で選択したフィールドをグループ化するまたは集計するクエリーを実行しようとしました。特定のフィールドを選択して再度操作を行ってください。


内部のﾚﾎﾟｰﾄ ｸｴﾘｰ <名前> から入力することはできません。(Error 3124)

許可されていない内部のレポート クエリーへの明示的な参照を含む SQL ステートメントを使用しました。


<名前> は不正な名前です。(Error 3125)

指定した名前が標準の名前付け規則に沿っていません。または、パラメータまたはエイリアス名が有効ではありません。エントリに無効な文字または区切り記号が含まれていないかどうかを確認してください。また、名前が長すぎないかどうかも確認してください。


<名前> のかっこの使い方が不正です。(Error 3126)

指定した名前を角かっこで囲むことはできません。または角かっこが左右で対応していません。角かっこが左右で対応しているかどうかを確認して再度操作を行ってください。


INSERT INTO ｽﾃｰﾄﾒﾝﾄに、認識できないﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> があります。(Error 3127)

指定したフィールド名で INSERT INTO ステートメントを使用しようとしましたが、このフィールドは出力テーブルに存在しません。入力したフィールドの名前を確認して再度操作を行ってください。


削除元のﾃｰﾌﾞﾙを指定してください。(Error 3128)

削除クエリーを実行しようとしましたが、削除するレコードを含むテーブル名をクエリーに指定していません。

このエラーの原因は次のとおりです。

述語 ALL、述語 DISTINCT、および述語 DISTINCTROW の各テーブルに対してアスタリスクを入力しないでフィールド名を入力しています。たとえば、「Customers.*」と入力する代わりに「Customers.Address」と入力しました。


SQL ｽﾃｰﾄﾒﾝﾄが不正です; 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT' または 'UPDATE' が必要です。(Error 3129)

指定されている予約語で始まっていないため、SQL ステートメントを認識できません。


DELETE ｽﾃｰﾄﾒﾝﾄの構文ｴﾗｰです。(Error 3130)

入力した SQL ステートメントに無効な DELETE ステートメントが含まれています。Visual Basic では、操作が実行されません。

このエラーの原因は次のとおりです。

予約語または引数名の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


FROM 句の構文ｴﾗｰです。(Error 3131)

入力した SQL ステートメントに無効な FROM 句が含まれています。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


GROUP BY 句の構文ｴﾗｰです。(Error 3132)

入力した SQL ステートメントに無効な GROUP BY 句が含まれています。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


HAVING 句の構文ｴﾗｰです。(Error 3133)

入力した SQL ステートメントに無効な HAVING 句が含まれています。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


INSERT ｽﾃｰﾄﾒﾝﾄの構文ｴﾗｰです。(Error 3134)

入力した SQL ステートメントに無効な INSERT INTO ステートメントが含まれています。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


JOIN 操作の構文ｴﾗｰです。(Error 3135)

入力した SQL ステートメントに無効な結合操作が含まれています。結合操作には、内部結合、外部結合、または自己結合があります。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


LEVEL 句の構文ｴﾗｰです。(Error 3136)

入力した SQL ステートメントに無効な予約語の句が含まれています。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


ORDER BY 句の構文ｴﾗｰです。(Error 3138)

入力した SQL ステートメントに無効な ORDER BY 句が含まれています。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


PARAMETER 句の構文ｴﾗｰです。(Error 3139)

入力した SQL ステートメントに無効な PARAMETERS 宣言が含まれています。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


PROCEDURE 句の構文ｴﾗｰです。(Error 3140)

入力した SQL ステートメントに無効な PROCEDURE 句が含まれています。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


SELECT ｽﾃｰﾄﾒﾝﾄの構文ｴﾗｰです。(Error 3141)

入力した SQL ステートメントに無効な SELECT ステートメントが含まれています。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


TRANSFORM ｽﾃｰﾄﾒﾝﾄの構文ｴﾗｰです。(Error 3143)

入力した SQL ステートメントに無効な TRANSFORM ステートメントが含まれています。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


UPDATE ｽﾃｰﾄﾒﾝﾄの構文ｴﾗｰです。(Error 3144)

入力した SQL ステートメントに無効な UPDATE ステートメントが含まれています。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


WHERE 句の構文ｴﾗｰです。(Error 3145)

入力した SQL ステートメントに無効な WHERE 句が含まれています。

このエラーの原因は次のとおりです。

予約語または引数の指定が間違っているか、または指定されていません。

区切り記号が間違っています。


ODBC--呼び出しは失敗しました。(Error 3146)

ODBC を使用中に、SQL データベースのデータに対して操作を実行しようとしました。SQL データベースがネットワーク ドライブ上にあり、ネットワークとの接続が切断していると、このエラーが発生します。ネットワークが接続しているかどうかを確認して再度操作を行ってください。


ODBC--<名前> への接続は失敗しました。(Error 3151)

ODBC を使用中に、指定した SQL データベースまたはテーブルへの接続を作成できませんでした。SQL データベースがネットワーク ドライブ上にある場合は、ネットワークが接続しているかどうかを確認して再度操作を行ってください。


ODBC--DLL <DLL ﾌｧｲﾙ名> は見つかりませんでした。(Error 3154)

ODBC を使用中に、指定した DLL を必要とする操作を実行しようとしました。

このエラーの原因は次のとおりです。

DLL ファイルがネットワーク ドライブ上にあり、ネットワークとの接続が切断しています。ネットワークが接続しているかどうかを確認して再度操作を行ってください。

DLL ファイルが正しくインストールされていません。ODBC ドライバをインストールし直して再度操作を行ってください。


ODBC--ｱﾀｯﾁ (ﾘﾝｸ) ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> で挿入に失敗しました。(Error 3155)

ODBC を使用中に、SQL データベースにデータを挿入しようとしましたが、挿入できませんでした。

このエラーの原因は次のとおりです。

規則違反のため挿入できませんでした。

SQL データベースが読み取り専用であるか、または、データベースにデータを挿入する権限を取得していません。SQL データベースの読み取り専用の設定を解除するか、またはシステム管理者やデータベースの作成者に問い合わせて必要な権限を取得してください。

SQL データベースがネットワーク ドライブ上にあり、ネットワークとの接続が切断しています。ネットワークが接続しているかどうかを確認して再度操作を行ってください。


ODBC--ｱﾀｯﾁ (ﾘﾝｸ) ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> で削除に失敗しました。(Error 3156)

ODBC を使用中に、SQL データベースからデータを削除しようとしましたが、削除できませんでした。

このエラーの原因は次のとおりです。

規則違反のため削除できませんでした。

SQL データベースが読み取り専用であるか、または、データベースからデータを削除する権限を取得していません。SQL データベースの読み取り専用の設定を解除するか、またはシステム管理者やデータベースの作成者に問い合わせて必要な権限を取得してください。

SQL データベースがネットワーク ドライブ上にあり、ネットワークとの接続が切断しています。ネットワークが接続しているかどうかを確認して再度操作を行ってください。


ODBC--ｱﾀｯﾁ (ﾘﾝｸ) ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> で更新に失敗しました。(Error 3157)

ODBC を使用中に、SQL データベース内のデータを更新しようとしましたが、更新できませんでした。

このエラーの原因は次のとおりです。

規則違反のため更新できませんでした。

SQL データベースが読み取り専用であるか、または、データベース内のデータを更新する権限を取得していません。SQL データベースの読み取り専用の設定を解除するか、またはシステム管理者やデータベースの作成者に問い合わせて、必要な権限を取得してください。

SQL データベースがネットワーク ドライブ上にあり、ネットワークとの接続が切断しています。ネットワークが接続しているかどうかを確認して再度操作を行ってください。


他のﾕｰｻﾞｰによってﾛｯｸされているため、ﾚｺｰﾄﾞは保存できませんでした。(Error 3158)

現在他のユーザーがロックしているデータベースのページのレコードを保存しようとしました。変更を保存するには、レコードに対する他のユーザーの操作が終了してから再度操作を行ってください。


ﾌﾞｯｸﾏｰｸが不正です。(Error 3159)

ブックマークを無効な文字列に設定しようとしました。

Bookmark プロパティを以前に取得してからまだ保存していない文字列にBookmark プロパティを設定すると、このエラーが発生します。たとえば次のようなコードを実行すると、このエラーが発生します。

Sub MyFunction

Dim dbsBiblio As Database, rstEmployees As Recordset

Dim strPlaceholder As String

Set dbsBiblio = OpenDatabase("biblio.mdb")

Set rstEmployees = dbsBiblio.OpenRecordset("Employees",

_dbOpenDynaset)

strPlaceholder = "1"

rstEmployees.Bookmark = strPlaceholder	' 無効なブックマークです。

End Sub


このﾃｰﾌﾞﾙは開いていません。(Error 3160)

開いていないテーブルに対して操作を行おうとしました。テーブルを開いてから再度操作を行ってください。


ﾌｧｲﾙを解読できませんでした。(Error 3161)

暗号化されている、Btrieve テーブルまたは Paradox テーブルにアクセスしようとしましたが、入力したパスワードが間違っています。有効なパスワードを入力して再度操作を行ってください。


Null 値を使うことはできません。(Error 3162)

Null 値を代入しようとした変数がバリアント型 (Variant) ではありません。Dim ステートメントを使用して、変数をバリアント型 (Variant) として宣言して再度操作を行ってください。


ﾌｨｰﾙﾄﾞに対するﾃﾞｰﾀが長すぎるため、この操作を実行できませんでした。(Error 3163)

データを挿入または貼り付けようとしたフィールドは、そのデータを保持する大きさがありません。挿入または貼り付けるデータを短くして再度操作を行ってください。


ﾌｨｰﾙﾄﾞを更新できませんでした。(Error 3164)

このエラーの原因は次のとおりです。

現在他のユーザーがロックしているレコードまたはテーブルのフィールドを更新しようとしました。レコードまたはテーブルに対する他のユーザーの操作が終了してから再度操作を行ってください。

Locked プロパティを真 (True) に設定しているコントロールの値を変更しようとしました。


.INF ﾌｧｲﾙを開くことができませんでした。(Error 3165)

dBASE テーブルをアタッチ (リンク) しようとしましたが、そのテーブルについてのインデックス情報を含む、関連する .INF ファイルを開くことができませんでした。または、.INF ファイルを作成できませんでした。

このエラーの原因は次のとおりです。

.INF ファイルを作成するためのディスクの空き容量がありません。

ネットワーク環境で、ネットワーク ドライブへの書き込み権限を取得していません。


ﾒﾓ ﾌｧｲﾙがありません。(Error 3166)

dBASE (.DBF) ファイルにアクセスしようとしましたが、ファイルに関連するメモ (.DBT) ファイルが見つかりませんでした。.DBT ファイルが .DBF ファイルと同じディレクトリにあるかどうかを確認して再度操作を行ってください。


ﾚｺｰﾄﾞは削除されています。(Error 3167)

削除したレコード、またはマルチユーザー環境で他のユーザーが削除したレコードを参照しました。他のレコードに移動して再度操作を行ってください。


.INF ﾌｧｲﾙが不正です。(Error 3168)

dBASE テーブルにアクセスしようとしましたが、関連する .INF ファイルが、無効または壊れています。有効なインデックスを指定し、テーブルを再度アタッチ (リンク) してください。


式に不正な型があります。(Error 3169)

実行しようとした SQL ステートメントに無効なデータ型のフィールドが含まれています。

このエラーの原因は次のとおりです。

式では、メモ型のフィールドまたは OLE オブジェクト型のフィールドは指定できません。

Sum や StDev などの数値型の集合関数を使用して、テキスト型のフィールドに対して計算を実行しようとしました。別の集合関数を選択してください。


組み込み可能な ISAM ﾄﾞﾗｲﾊﾞは見つかりませんでした。(Error 3170)

組み込み可能な ISAM ドライバの DLL ファイルが見つかりませんでした。このファイルは外部テーブル (ODBC または Microsoft Jet データベース テーブル以外) をアタッチ (またはリンク) するのに必要なファイルです。ISAM ドライバの格納場所はすべて、Windows レジストリに格納されています。これらのエントリは、アプリケーションをインストールすると自動的に作成されます。これらのドライバの格納場所を変更する場合は、アプリケーションのセットアップ プログラムを修正して格納場所の変更を反映し、レジストリに有効なエントリを設定してください。

このエラーの原因は、次のとおりです。

レジストリのエントリが無効です。たとえば、Paradox 外部データベースを使用している場合、存在しないディレクトリまたはドライバを Paradox エントリに指定すると、このエラーが発生します。アプリケーションを終了し、レジストリを修正して再度操作を行ってください。

レジストリのエントリはネットワーク ドライバを指定していますが、そのネットワークの接続が切断しています。ネットワークが接続しているかどうかを確認して再度操作を行ってください。


ﾈｯﾄﾜｰｸ ﾊﾟｽまたはﾕｰｻﾞｰ名は見つかりませんでした。(Error 3171)

レジストリの [ISAM Engines\Paradox] セクションのエントリが無効です。無効なエントリを修正して再度操作を行ってください。


PARADOX.NET を開くことができませんでした。(Error 3172)

このエラーの原因は次のとおりです。

レジストリの [Paradox ISAM] セクションの ParadoxNetPath エントリが無効です。Paradox 外部データベースを使用している場合、存在しないディレクトリを Paradox エントリに指定すると、このエラーが発生します。アプリケーションを終了し、無効なエントリを修正して再度操作を行ってください。

レジストリの [Paradox ISAM] セクションの ParadoxNetPath エントリはネットワーク ドライブを指定していますが、そのネットワーク ドライブが接続されていません。ネットワーク ドライブが接続しているかどうかを確認して再度操作を行ってください。


ｼｽﾃﾑ ﾃﾞｰﾀﾍﾞｰｽ ﾌｧｲﾙの 'MSysAccounts' ﾃｰﾌﾞﾙを開くことができませんでした。(Error 3173)

この操作には、Microsoft Jet データベース テーブルのセキュリティ設定およびオプション設定を含む SYSTEM.MDW ファイルを必要とします。

このエラーの原因は次のとおりです。

レジストリの SystemDB エントリに、接続していないネットワーク ドライブを指定しています。ネットワーク ドライブが接続しているかどうかを確認して再度操作を行ってください。

SYSTEM.MDW ファイルが壊れています。SYSTEM.MDW ファイルのバックアップ コピーがある場合は、レジストリの SystemDB エントリに指定している格納場所にコピーします。


ｼｽﾃﾑ ﾃﾞｰﾀﾍﾞｰｽ ﾌｧｲﾙの 'MSysGroups' ﾃｰﾌﾞﾙを開くことができませんでした。(Error 3174)

この操作は、Microsoft Jet データベース テーブルのセキュリティ設定およびオプション設定を含む SYSTEM.MDW ファイルを必要とします。

このエラーの原因は、次のとおりです。

レジストリの SystemDB エントリに、接続していないネットワーク ドライブを指定しています。ネットワーク ドライブが接続しているかどうかを確認して再度操作を行ってください。

SYSTEM.MDW ファイルが壊れています。SYSTEM.MDW ファイルのバックアップ コピーがある場合は、レジストリの SystemDB エントリに指定している格納場所にコピーします。


日付が範囲外であるか、書式が不正です。(Error 3175)

有効な日付は 100 年 1 月 1 日～ 9999 年 12 月 1 日の範囲の日付です。

このエラーの原因は次のとおりです。

入力した日付が有効な日付の範囲外です。

有効な日付が入力されましたが、書式が認識できません。日付が正しく入力されているかどうかを確認して再度操作を行ってください。


ﾌｧｲﾙ <ﾌｧｲﾙ名> を開くことができませんでした。(Error 3176)

指定したテキスト ファイルまたはスプレッドシート ファイルを開くことができませんでした。指定したファイル名が無効である、他のユーザーがファイルにアクセスしている、ファイルに対する読み取り権限を取得していない、などの場合があります。他のユーザーがファイル操作を終了してから再度操作を行ってください。あるいは、システム管理者またはネットワーク管理者に問い合わせてください。


ﾃｰﾌﾞﾙ名が不正です。(Error 3177)

指定したテーブルの名前が、標準の名前付け規則に沿っていません。名前付け規則に従った新しい名前を入力して再度操作を行ってください。


EOF ｴﾗｰです。(Error 3179)

ファイルの終端記号が含まれるファイルをインポートしようとした位置が適切ではありません。

このエラーの原因は次のとおりです。

インポート ファイルが壊れています。インポート ファイルのバックアップ コピーを復元して再度操作を行ってください。

使用しているインポート/エクスポートの指定が、インポート ファイルのデータと一致しません。インポート/エクスポートの指定を編集して再度操作を行ってください。


ﾌｧｲﾙ <ﾌｧｲﾙ名> に書き込むことはできませんでした。(Error 3180)

指定されたテキスト ファイルまたはスプレッドシート ファイルにデータをエクスポートしようとしましたが、ファイルを変更できませんでした。

このエラーの原因は次のとおりです。

現在他のユーザーがファイルにアクセスしています。ファイルに対する他のユーザーの操作が終了してから再度操作を行ってください。

オペレーティング システムで、またはネットワークによって、ファイルが読み取り専用として定義されています。読み取り専用の設定を解除して再度操作を行ってください。

ネットワーク環境で、ファイルへの書き込み権限を取得し与ていません。

システム管理者またはネットワーク管理者に問い合わせる必要がある場合もあります。


範囲が不正です。(Error 3181)

無効な範囲のスプレッドシート セルをインポートしようとしました。


ﾌｧｲﾙ形式が不正です。(Error 3182)

このエラーの原因は、次のとおりです。

読み取りまたはアタッチ (リンク) しようとしたファイルが壊れています。ファイルのバックアップ コピーを復元して、操作をやり直してください。

ファイルの形式が認識できません。 Btrieve、dBASE、または Paradox のファイルの場合、セットアップを実行して組み込み可能な ISAM をインストールし、ファイルを再度アタッチ (リンク) してください。


ﾃﾝﾎﾟﾗﾘ ﾌｧｲﾙのための空き容量が不足しています。(Error 3183)

実行しようとした操作に必要なディスクの空き容量が、テンポラリ ディスクで使用できる容量を超えています。テンポラリ ディスクの場所は、システムの起動時に設定される環境変数 TEMP DOS に基づきます。

たとえば、作成するクエリーが、テンポラリ ディスクの空き容量を超えるテンポラリ ファイルを作成する場合があります。一度にアクセスするデータ量を少なくすることによってテンポラリ ファイルのサイズを小さくするか、またはテンポラリ ディスクの容量を増やしてください。

使用できるテンポラリ ディスクの容量は、次に示す方法で増やすことができます。

選択するレコードを減らします。ダイナセット タイプおよびスナップショット タイプの Recordset オブジェクトは、キーおよびデータをテンポラリ ディスクに格納します。

別のドライブをテンポラリ ディスクとして選択します。

テンポラリ ディスクが RAM ディスクの場合、 RAM ディスクのサイズを増やすか、またはハード ディスクに移動します。

データベースからデータを削除するか、または不要なテーブル、クエリー、フォーム、マクロ、およびモジュールを削除することによって、空き容量を確保します。

データベースから削除されたレコードを圧縮することによって、空き容量を確保します。

さらに空き容量が必要な場合は、使用していないファイルをディスクから削除することをお勧めします。


ｱﾀｯﾁまたはﾘﾝｸするﾃｰﾌﾞﾙが見つからなかったため、ｸｴﾘｰを実行できませんでした。(Error 3184)

このエラーの原因は次のとおりです。

アタッチ テーブルまたはリンク テーブルが存在しません。または、名前が変更されたか移動されました。テーブルをアタッチし直してクエリーを再度実行してください。

アタッチ テーブルまたはリンク テーブルがネットワーク ドライブ上にあり、ネットワークの接続が切断しています。ネットワークが接続しているかどうかを確認して再度クエリーを実行してください。


SELECT INTO ｽﾃｰﾄﾒﾝﾄでﾘﾓｰﾄ ﾃﾞｰﾀﾍﾞｰｽに作成するときに、作成されるﾌｨｰﾙﾄﾞの数が多すぎます。(Error 3185)

Microsoft Jet データベースでは、1 つのテーブルにつき最大で 255 個のフィールドをサポートしますが、他のデータベースではこれほどのフィールド数をサポートしません。SELECT...INTO ステートメントで作成したテーブルのフィールド数は、リモート データベースがサポートできるフィールド数を超えています。SELECT...INTO ステートメントを使用して作成する列の個数を減らして再度操作を行ってください。


ﾏｼﾝ <ﾏｼﾝ名> のﾕｰｻﾞｰ <ﾕｰｻﾞｰ名> によってﾛｯｸされているため、保存できませんでした。(Error 3186)

このエラーの原因は次のとおりです。

現在他のユーザーがロックしている 2KB のデータベース ページのレコードを保存しようとしました。レコードに対する他のユーザーの操作が終了してから再度操作を行ってください。


ﾏｼﾝ <ﾏｼﾝ名> のﾕｰｻﾞｰ <ﾕｰｻﾞｰ名> によってﾛｯｸされているため、読み取れませんでした。(Error 3187)

現在、指定したユーザーがロックしているデータベース ページの情報を読み取ろうとしました。そのユーザーの操作が終了してから再度操作を行ってください。


このﾏｼﾝの他のｾｯｼｮﾝによってﾛｯｸされているため、更新できませんでした。(Error 3188)

現在他のセッションがロックしている情報を更新しようとしました。他のセッションが終了してから、または他のセッションを閉じてから、再度操作を行ってください。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は、ﾏｼﾝ <ﾏｼﾝ名> のﾕｰｻﾞｰ <ﾕｰｻﾞｰ名> によって排他ﾛｯｸされています。(Error 3189)

他のユーザーによって排他的にロックされているため、指定したテーブルにアクセスできません。そのユーザーに問い合わせるか、または、そのユーザーがロックを解除してから再度操作を行ってください。


定義されているﾌｨｰﾙﾄﾞが多すぎます。(Error 3190)

実行しようとした操作に関するフィールド数が 255 を超えています。フィールド数を減らして再度操作を行ってください。


同名のﾌｨｰﾙﾄﾞを作ることはできません。(Error 3191)

重複するフィールド名を持つテーブルを作成しようとしました。テーブルのフィールドには、それぞれ異なる名前を指定してください。


出力ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は見つかりませんでした。(Error 3192)

指定したテーブルに対して INSERT INTO ステートメントを使用しようとしましたが、このテーブルは存在しません。テーブル名が正しく入力されているかどうかを確認して再度操作を行ってください。


ﾕｰｻﾞｰ名がありません。(Error 3193)

実行しようとした操作は、セキュリティが考慮されて有効なユーザー名が要求されます。


ｺﾝﾋﾟｭｰﾀ名がありません。(Error 3194)

Microsoft Jet データベース エンジンでは、ネットワークに登録される場合にコンピュータに割り当てられる名前を認識できませんでした。


ﾃﾞｰﾀﾍﾞｰｽ <ﾃﾞｰﾀﾍﾞｰｽ名> は既に使用されているため、使用できませんでした。(Error 3196)

指定したデータベースは、他のユーザーまたは他のセッションによって現在使用されています。データベースに対する他のユーザーまたは他のセッションの操作が終了してから再度操作を行ってください。


ﾃﾞｰﾀは変更されています; 処理を中止します。(Error 3197)

マルチユーザー環境で、このエラーが発生します。

更新しようとしているデータが他のユーザーによって変更されました。複数のユーザーが、テーブルを開いたり、Recordset を作成したり、共有的ロック状態を使用したりすると、このエラーが発生します。Edit メソッドおよび Update メソッドを使用する間に、他のユーザーによって更新しようとしたデータが変更されました。

他のユーザーによる変更を置き換えるには、Update メソッドを再び実行してください。


ｱｸﾃｨﾌﾞなｾｯｼｮﾝが多すぎるため、ｾｯｼｮﾝを開始できませんでした。(Error 3198)

新しいセッションを開始する操作を実行しようとしましたが、これ以上のセッションを同時には実行できません。1 つ以上のセッションが終了してから再度操作を行ってください。


参照は見つかりませんでした。(Error 3199)

ファイル、テーブル、またはフィールドの参照を入力しましたが、見つかりませんでした。名前および区切り記号など、参照が正しく入力されているかどうかを確認して再度操作を行ってください。


ﾚｺｰﾄﾞの削除または変更はできません。ﾘﾚｰｼｮﾝｼｯﾌﾟが設定されたﾚｺｰﾄﾞがﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> にあり、参照整合性規則に反します。(Error 3200)

関連テーブルの参照整合性規則に反する操作を実行しようとしました。たとえば、一対多リレーションシップで、“多”の側のテーブルに関連するレコードがある“一”の側のテーブルのレコードを削除または変更しようとすると、このエラーが発生します。

レコードを削除または変更するには、まず、“多”の側のテーブルから関連レコードを削除してください。


ﾚｺｰﾄﾞの追加または変更はできません。参照整合性規則に適合させるためには、ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> とﾘﾚｰｼｮﾝｼｯﾌﾟが設定されたﾚｺｰﾄﾞが必要です。
ﾚｺｰﾄﾞの追加または変更はできません。参照整合性規則に適合させるためには、ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> とﾘﾚｰｼｮﾝｼｯﾌﾟが設定されたﾚｺｰﾄﾞが必要です。(Error 3201)

関連テーブルの参照整合性規則に反する操作を実行しようとしました。たとえば、一対多リレーションシップで、“一”の側のテーブルに関連レコードのないレコードを“多”の側のテーブルで変更または追加しようとすると、このエラーが発生します。

レコードを追加または変更するには、まず、“多”の側のテーブルに追加または変更するフィールドに対応するレコードを“一”の側のテーブルに追加してください。


他のﾕｰｻﾞｰによってﾛｯｸされているため、保存できませんでした。(Error 3202)

このエラーの原因の原因は、次のとおりでのとおりです。

現在他のユーザーがロックしている 2KB のデータベース ページのレコードを保存しようとしました。レコードに対する他のユーザーの操作が終了してから再度操作を行ってください。


式 <式> にｻﾌﾞｸｴﾘｰは指定できません。(Error 3203)

指定した式に、サブクエリーまたはサブクエリーとして機能する式が含まれています。

このエラーの原因の原因は、次のとおりです。

SELECT ステートメントの集合関数が、他の集合関数を参照しています。たとえば、次のようなステートメントを実行すると、このエラーが発生します。

TRANSFORM Sum([OrderAmount]) AS Sum1

SELECT Sum([Sum1]) AS Sum2, OrderID, Sum([Sum2]) AS Expr1

FROM Orders

GROUP BY OrderID

PIVOT ShipName;

この例で表示されるメッセージの 'expression' パラメータには、SELECT 句の中の式 Sum([Sum2]) が代入されます。式 Sum([Sum2]) は、同じ SELECT ステートメントの中で使用するエイリアスを参照し、Sum([Sum1]) に対してサブクエリーとして機能するためです。


ﾃﾞｰﾀﾍﾞｰｽは既に存在しています。(Error 3204)

既に存在する名前を使用して、データベースを作成または名前を変更しようとしました。別の名前を入力して再度操作を行ってください。


ｸﾛｽ集計する列のﾍｯﾀﾞｰ <値> が多すぎます。(Error 3205)

SQL ステートメントを使用して作成する列数が多すぎます。メッセージに表示される値は、エラーの原因となる列を表します。

WHERE 句に新しい条件を追加すると列数を減らすことができます。WHERE 句がない場合には、WHERE 句を新しく作成してください。


同じﾌｨｰﾙﾄﾞの間でﾘﾚｰｼｮﾝｼｯﾌﾟは作成できません。(Error 3206)

同一のフィールドに対してリレーションシップを作成しようとしました。主テーブルまたは関連テーブルの別のフィールドを選択して再度操作を行ってください。


この操作は、主ｷｰのない Paradox のﾃｰﾌﾞﾙではｻﾎﾟｰﾄされていません。(Error 3207)

テーブルを作成したアプリケーションを実行し、テーブルに主キーを追加してから再度操作を行ってください。


Xbase ｾｸｼｮﾝの Deleted ｴﾝﾄﾘの設定値が不正です。(Error 3208)

操作を完了するには、次の手順に従ってください。

1.	アプリケーションを終了します。

2.	レジストリの [dBASE ISAM] セクションの Deleted エントリを修正します。

3.	アプリケーションを再起動して再度操作を行います。


Xbase ｾｸｼｮﾝの Stats ｴﾝﾄﾘの設定値が不正です。(Error 3209)

操作を完了するには、次の手順に従ってください。

1.	アプリケーションを終了します。

2.	レジストリの [dBASE ISAM] セクションの Stats エントリを修正します。

3.	アプリケーションを再起動して再度操作を行います。


接続文字列が長すぎます。(Error 3210)

SQL ステートメントの IN 句では、255 文字を超える接続文字列は指定できません。エントリを修正して再度操作を行ってください。ODBC 接続文字列ビルダを使用することもできます。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は現在使用されているため、ﾛｯｸできませんでした。(Error 3211)

この操作を完了するには、現在他のユーザーが使用しているテーブルをロックする必要があります。テーブルに対する他のユーザーの操作が終了してから再度操作を行ってください。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は、ﾏｼﾝ <ﾏｼﾝ名> のﾕｰｻﾞｰ <ﾕｰｻﾞｰ名> によって使用されているため、ﾛｯｸできませんでした。(Error 3212)

テーブルは、現在使用されているためロックできません。他のユーザーのトランザクションが終了してから再度操作を行ってください。


Xbase ｾｸｼｮﾝの Date ｴﾝﾄﾘの設定値が不正です。(Error 3213)

操作を完了するには、次の手順に従ってください。

1.	アプリケーションを終了します。

2.	レジストリの [dBASE ISAM] セクションの Date エントリを修正します。

3.	アプリケーションを再起動して再度操作を行います。


Xbase ｾｸｼｮﾝの Mark ｴﾝﾄﾘの設定値が不正です。(Error 3214)

操作を完了するには、次の手順に従ってください。

1.	アプリケーションを終了します。

2.	レジストリの [dBASE ISAM] セクションの Mark エントリを修正します。

3.	アプリケーションを再起動して再度操作を行います。


Btrieve のﾀｽｸが多すぎます。(Error 3215)

Btrieve ドライバを使用しているアプリケーションが多すぎます。マルチユーザー環境で、同じドライバにアクセスするユーザーが多すぎる場合に、このエラーが発生します。システム管理者またはネットワーク管理者に問い合わせてください。


ﾊﾟﾗﾒｰﾀ <名前> はﾃｰﾌﾞﾙ名でなければなりません。(Error 3216)

作成したパラメータ クエリーに無効な種類のパラメータが指定されています。次のようなステートメントを実行すると、このエラーが発生します。

PARAMETERS Param1 Text;

INSERT INTO Param1

SELECT *

FROM Customers;

この例では、Param1 はテキスト型のパラメータですが、INSERT INTO ステートメントにはテーブル名の指定が必要です。

パラメータのタイプを Text から TableID に変更して再度操作を行ってください。


ﾊﾟﾗﾒｰﾀ <名前> はﾃﾞｰﾀﾍﾞｰｽ名でなければなりません。(Error 3217)

作成したパラメータ クエリーに無効な種類のパラメータが指定されています。次のようなステートメントを実行すると、このエラーが発生します。

PARAMETERS Param1 Text;

SELECT CustomerID

FROM Customers IN Param1;

Param1 はテキスト型のパラメータですが、FROM 句にはデータベースのパラメータの指定が必要です。

パラメータのタイプを Text から Database に変更して再度操作を行ってください。


ﾛｯｸされているため、更新できませんでした。(Error 3218)

現在ロックされているページのデータを更新しようとしました。

このエラーの原因は、次のとおりです。

他のユーザーによって使用されているクエリーを保存しようとしました。クエリーを保存するには、他のユーザーの操作が終了してからか、または、別の名前を入力して再度操作を行ってください。

既に開いている、またはロックされているレコードを含むデータ ページで、Edit メソッドを使用しようとしました。


不正な処理であるため実行できません。(Error 3219)

このエラーの原因は、次のとおりです。

読み取り専用プロパティに書き込もうとしました。プロパティについてのヘルプを参照して、このプロパティが読み取り/書き込みのどちらもできるプロパティであるかどうかを確認してください。

メソッドまたはプロパティを適用できないタイプの Recordset オブジェクトに対して、メソッドまたはプロパティを使用しようとしました。「Recordset オブジェクト、Recordsets コレクション」についてのヘルプを参照し、指定したタイプの Recordset オブジェクトに適用できるメソッドおよびプロパティを確認してください。

ユーザー定義のプロパティをサポートしていないオブジェクトの Properties コレクションに対して、プロパティを追加しようとしました。


照合順序が不正です。(Error 3220)

使用している並べ替え順序と異なる各国対応の並べ替え順序で作成された Paradox テーブルをアタッチ (リンク) しようとしました。


Btrieve ｾｸｼｮﾝのｴﾝﾄﾘの設定値が不正です。(Error 3221)

レジストリの [Btrieve] セクションのエントリが無効です。たとえば、エントリのオプション内の /l: 設定または /f: 設定が無効の場合に、このエラーが発生します。アプリケーションを終了し、無効なエントリを修正してから、アプリケーションを再起動して再度操作を行ってください。


ｸｴﾘｰはﾃﾞｰﾀﾍﾞｰｽのﾊﾟﾗﾒｰﾀを含むことはできません。(Error 3222)

このパラメータ クエリーのパラメータのフィールドのデータ型を、有効なフィールドのデータ型に変更して再度操作を行ってください。


<ﾊﾟﾗﾒｰﾀ名> は不正なﾊﾟﾗﾒｰﾀ名です。(Error 3223)

指定したパラメータ名が 64 文字を超えているか、または無効な文字を含んでいます。パラメータの名前を修正して再度操作を行ってください。


Btrieve のﾃﾞｰﾀ辞書を読み取ることができません。(Error 3224)

DDF ファイルのバックアップ コピーを復元して再度操作を行ってください。


Btrieve のﾃｰﾌﾞﾙの処理中に、ﾃﾞｯﾄﾞﾛｯｸが発生しました。(Error 3225)

アタッチしている Btrieve テーブルでの更新操作、挿入操作、または削除操作でレコードをロックしようとしましたが、他のユーザーも同じレコードをロックしようとしています。操作をキャンセルし、他のユーザーの操作が終了してから再度操作を行ってください。


Btrieve DLL の使用中にｴﾗｰが発生しました。(Error 3226)

アタッチしている Btrieve テーブルのデータにアクセスしようとして、予期しないエラーが発生しました。再度操作を行うか、あるいは、システム管理者またはネットワーク管理者に問い合わせてください。


Xbase ｾｸｼｮﾝの Century ｴﾝﾄﾘの設定値が不正です。(Error 3227)

操作を完了するには、次の手順に従ってください。

1.	アプリケーションを終了します。

2.	レジストリの [dBASE ISAM] セクションの Century エントリを修正します。

3.	アプリケーションを再起動して再度操作を行います。


照合順序が不正です。(Error 3228)

レジストリの [Paradox ISAM] セクションの Collating Sequence エントリの設定が間違っています。

操作を完了するには、次の手順に従ってください。

1.	アプリケーションを終了します。

2.	レジストリの [Paradox ISAM] セクションの CollatingSequence エントリを、ASCII または International に変更します。

3.	アプリケーションを再起動して再度操作を行います。


Btrieve--ﾌｨｰﾙﾄﾞは変更できません。(Error 3229)

Btrieve テーブルの変更できないインデックスの一部である フィールドを更新しようとしました。Novell Xtrieve または他のプログラムを使用し、変更できないインデックスの属性を変更して再度操作を行ってください。


古い Paradox のﾛｯｸ ﾌｧｲﾙです。(Error 3230)

Paradox テーブルを使用しようとしましたが、テーブルに関連するロック (.LCK) ファイルが古い形式のファイルです。.LCK ファイルを削除して再度操作を行ってください。


ODBC--ﾌｨｰﾙﾄﾞが長すぎるため、あふれたﾃﾞｰﾀは切り捨てられました。(Error 3231)

ODBC 操作を実行し、長すぎるフィールドが作成されました。データは、処理に差し支えない最大の長さ以上は切り捨てられます。


ODBC--ﾃｰﾌﾞﾙを作成できませんでした。(Error 3232)

SQL データベースにテーブルをエクスポートしようとしましたが、テーブルを作成できませんでした。SQL データベースが読み取り専用であるとき、またはデータベースの中でテーブルを作成する権限を取得していないときにこのエラーが発生します。SQL データベースの読み取り専用の設定を解除するか、あるいはシステム管理者またはデータベースの作成者に問い合わせて必要な権限を取得してください。


ODBC--ｻｰﾊﾞｰの応答がありません。(Error 3234)

ODBC サーバーが正常にインストールされていない場合があります。またはネットワークとの接続が切断されています。ネットワークとの接続状態を確認するか、またはシステム管理者に問い合わせて再度操作を行ってください。


ODBC--ｻｰﾊﾞｰがｻﾎﾟｰﾄしていないﾃﾞｰﾀ型です。(Error 3235)

データベース エンジンまたはアプリケーションがサポートしている SQL データ型を、ODBC サーバーがサポートしていません。データはサーバーには配置されません。


ODBC--有効範囲外のﾃﾞｰﾀです。(Error 3238)

ODBC を使用中に、SQL データベースにデータを読み書きしようとしましたが、そのデータが有効な範囲内にありません。


ｱｸﾃｨﾌﾞ ﾕｰｻﾞｰが多すぎます。(Error 3239)

マルチユーザー環境で、Microsoft Jet データベースは最大 255 名のユーザーを同時にサポートします。複数のユーザーがシステムの使用を終了してから再度操作を行ってください。


Btrieve-- Btrieve ｴﾝｼﾞﾝが見つかりません。(Error 3240)

指定したファイルを必要とする操作を実行しようとしました。データ アクセスを使用して Btrieve ファイルにデータを読み書きするには、スタンドアロンの Btrieve for Windows エンジンのコピーが必要です。このファイルは、各コンピュータの \WINDOWS\SYSTEM ディレクトリに格納してください。

このファイルをお持ちでない場合は、お近くのソフトウェア販売店で購入することができます。


Btrieve--ﾘｿｰｽが不足しています。(Error 3241)

Btrieve ファイルを操作中に、必要なリソースをアプリケーションが使用してリソースが不足していますた。アプリケーションを終了し、レジストリの [Btrieve] セクションのリソースの設定を増やしてください。アプリケーションを再起動して再度操作を行ってください。

詳細については、Btrieve のマニュアルを参照してください。


SELECT ｽﾃｰﾄﾒﾝﾄの参照が不正です。(Error 3242)

SELECT ステートメントに無効なフィールド参照またはテーブル参照が含まれています。たとえば、参照の指定が間違っているかまたは存在しない参照を指定しました。


ｲﾝﾎﾟｰﾄするﾌｨｰﾙﾄﾞ名と一致するﾌｨｰﾙﾄﾞが追加先ﾃｰﾌﾞﾙにありません。(Error 3243)

インポート テーブルと追加先テーブルとのフィールド名が、1 つ以上一致している必要があります。


ﾊﾟｽﾜｰﾄﾞで保護されているﾜｰｸｼｰﾄをｲﾝﾎﾟｰﾄすることはできません。(Error 3244)

ワークシートを保存するために使用したアプリケーションに戻り、パスワードを指定しないでワークシートを保存し直してから、再度ワークシートのインポート操作を行ってください。


ｲﾝﾎﾟｰﾄしたﾃｰﾌﾞﾙの先頭行をﾌｨｰﾙﾄﾞ名に自動ﾌｫｰﾏｯﾄできませんでした。(Error 3245)

データの先頭行に無効なフィールド名が含まれています。同じフィールド名の中に、引用符で囲まれた文字列および囲まれていない文字列がある場合などです。次の例では、3 番めおよび 4 番めのフィールド名は自動フォーマットできません。

"Name", Date, "ID " Number, Phone" Number"

先頭の 2 つのフィールドは有効ですが、3 番めおよび 4 番めのフィールドは、引用符の外側にスペース以外の文字があるため無効です。

引用符が正しく対応しているかどうか、インポート テーブルを確認して再度インポート操作を行ってください。


この操作は、ﾄﾗﾝｻﾞｸｼｮﾝではｻﾎﾟｰﾄされていません。(Error 3246)

トランザクションの中で無効な操作を実行しようとしました。トランザクションには、BeginTrans ステートメントを使用して作成するトランザクションと、1 回の操作で複数のレコードを削除する場合に Microsoft Jet データベース エンジンによって内部的に作成されるトランザクションとがあります。


ODBC--ﾘﾝｸするﾃｰﾌﾞﾙの定義は変更されました。(Error 3247)

アタッチ テーブル (リンク テーブル) の定義または構造が、リンクを作成した後で変更されました。リンクを削除して、テーブルを再度アタッチしてください。


NetworkAccess ｴﾝﾄﾘの設定値が不正です。(Error 3248)

操作を完了するには、次の手順に従ってください。

1.	アプリケーションを終了します。

2.	レジストリの NetworkAccess エントリを修正します。エントリは ON または OFF のどちらかにしてください。

使用する組み込み可能な ISAM ドライバの種類に応じて、[Btrieve] セクション、[dBASE ISAM] セクション、[Paradox ISAM] セクションのいずれかのエントリが無効です。

3.	アプリケーションを再起動して再度操作を行います。


PageTimeout ｴﾝﾄﾘの設定値が不正です。(Error 3249)

操作を完了するには、次の手順に従ってください。

1.	アプリケーションを終了します。

2.	Microsoft Windows メモ帳または他のテキスト エディタを使用して、レジストリ内の NetworkAccess エントリを修正します。エントリは ON または OFF のどちらかにしてください。

使用する組み込み可能な ISAM ドライバの種類に応じて、[Btrieve] セクション、[dBASE ISAM] セクション、[Paradox ISAM] セクションのいずれかのエントリが無効です。

3.	アプリケーションを再起動して再度操作を行います。


ｷｰを設定することができませんでした。(Error 3250)

主インデックスを作成する場合に、Microsoft Jet データベース エンジンが主キーを作成できませんでした。キー フィールドの名前を正しく指定し、このキーに対してレコードが重複していないかどうかを確認してください。

Seek メソッドを使用している場合、インデックスの一部でないフィールドの値を引き渡すと、このエラーが発生します。たとえば、基になっているテーブルの LastName フィールドをカレント インデックスに使用している Recordset オブジェクトで、次のように Seek メソッドを使用します。

rstEmployees.Seek "=", "Smith", "Joe"

Jet データベース エンジンは 2 つの列から主キーを作成しようとしますが、1 つの列にインデックスが設定されているため、操作は失敗してこのエラーが発生します。


このｵﾌﾞｼﾞｪｸﾄに対しては、この操作は実行できません。(Error 3251)

通常は有効なメソッドを、オブジェクトに対して実行、またはプロパティに値を割り当てようとしました。この操作は、このインスタンスの中ではサポートされません。たとえば、Edit メソッドは Recordset オブジェクトに対して一般的には有効ですが、スナップショット タイプの Recordset オブジェクトに対しては無効です。オブジェクトのタイプまたは状態によって操作が許されない場合にも、このエラーが発生します。前方スクロール スナップショット タイプの Recordset オブジェクトで MovePrevious メソッドを使用する場合などです。


ﾌｫｰﾑを開くことができません。基になっているｸｴﾘｰで、このﾌｫｰﾑの RecordsetClone ﾌﾟﾛﾊﾟﾃｨの設定または取得を行うﾕｰｻﾞｰ定義関数が見つかり
ﾌｫｰﾑを開くことができません。基になっているｸｴﾘｰで、このﾌｫｰﾑの RecordsetClone ﾌﾟﾛﾊﾟﾃｨの設定または取得を行うﾕｰｻﾞｰ定義関数が見つかりました。(Error 3252)

ユーザー定義の関数を出力先に含むクエリーを実行し、そのクエリーに基づいてフォームを作成すると、このエラーが発生します。


ODBC--すべてのﾚｺｰﾄﾞをﾛｯｸできません。(Error 3254)

ODBC を使用中に、SQL データベースのすべてのレコードをロックしようとしました。


ｲﾝﾃﾞｯｸｽ ﾌｧｲﾙが見つかりません。(Error 3256)

dBASE テーブルにアクセスしようとしましたが、テーブルに関連する .INF ファイルに記述されているインデックスの 1 つが見つかりませんでした。インデックスが移動、削除、または名前を変更された場合があります。テーブルをアタッチ (リンク) し直すか、または Microsoft Windows メモ帳などのテキスト エディタを使用して .INF ファイルを更新してください。


WITH OWNERACCESS OPTION 宣言の構文ｴﾗｰです。(Error 3257)

このエラーの原因は次のとおりです。

WITH OWNERACCESS OPTION 宣言が間違っています。または“OWNER”と“ACCESS”の間にスペースが含まれています。

SQL ステートメントの不適切な位置に WITH OWNERACCESS OPTION 宣言を指定しています。次に例を示します。

SELECT * WITH OWNERACCESS OPTION FROM [My Table];

WITH OWNERACCESS OPTION 宣言は SQL ステートメントの末尾に指定し、ORDER BY 句がある場合は ORDER BY 句の後に指定してください。

SELECT * FROM [My Table] WITH OWNERACCESS OPTION;


ｸｴﾘｰにあいまいな外部結合があります。(Error 3258)

複数の結合を含む SQL ステートメントを実行しようとしました。クエリーの結果は、それぞれの結合が実行された順序によって異なります。たとえば次のような SQL ステートメントを実行すると、このエラーが発生します。

SELECT * FROM Customers, Orders, [Order Details],

Customers LEFT JOIN Orders

ON Customers.CustomerID = Orders.CustomerID,

Orders INNER JOIN [Order Details]

ON Orders.OrderID = [Order Details].OrderID;

このステートメントを実行すると、結合の順序が曖昧なためにエラーが発生します。特定の結合を最初に実行するには、最初の結合を実行するクエリーを別に作成し、これを SQL ステートメントに含めます。次の例では、INNER JOIN 操作が LEFT JOIN 操作および RIGHT JOIN 操作の前に実行されるように、先行して INNER JOIN 操作を実行するクエリーを作成しています。

Query1

SELECT * FROM Orders, [Order Details],

Orders INNER JOIN [Order Details]

ON Orders. OrderID = [Order Details].OrderID;

Query2

SELECT * FROM Customers, Query1,

Customers LEFT JOIN Query1

ON Customers.CustomerID = Orders.CustomerID;


ﾌｨｰﾙﾄﾞのﾃﾞｰﾀ型が不正です。(Error 3259)

Field オブジェクトの Type プロパティに指定されているデータ型が無効です。有効なデータ型については、「Type プロパティ (データ アクセス)」を参照してください。


ﾏｼﾝ <ﾏｼﾝ名> のﾕｰｻﾞｰ <ﾕｰｻﾞｰ名> によってﾛｯｸされているため、更新できませんでした。(Error 3260)

現在ロックされているページのデータを更新しようとしました。

このエラーの原因は次のとおりです。

現在他のユーザーが使用しているクエリーを保存しようとしました。クエリーを保存するには、他のユーザーの操作が終了してからまたは別の名前を入力して再度操作を行ってください。

既に開いているまたはロックされているレコードを含むデータ ページで Edit メソッドを使用しようとしました。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は、ﾏｼﾝ <ﾏｼﾝ名> のﾕｰｻﾞｰ <ﾕｰｻﾞｰ名> によって排他ﾛｯｸされています。(Error 3261)

現在、表示されるユーザーが排他的アクセスを設定して開いているテーブルを、使用しようとしました。テーブルに対する他のユーザーの操作が終了してから再度操作を行ってください。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は、ﾏｼﾝ <ﾏｼﾝ名> のﾕｰｻﾞｰ <ﾕｰｻﾞｰ名> によって使用されているため、ﾛｯｸできませんでした。(Error 3262)

開かれているテーブルをロックしようとしましたが、テーブルは現在使用中のためロックできません。しばらくしてから再度操作を行ってください。


不正なﾃﾞｰﾀﾍﾞｰｽ ｵﾌﾞｼﾞｪｸﾄです。(Error 3263)

指定した Database オブジェクトは OpenDatabase メソッドで作成されたものではありません。または変更されて、無効なオブジェクトです。


ﾌｨｰﾙﾄﾞが定義されていないため、ﾃｰﾌﾞﾙ定義またはｲﾝﾃﾞｯｸｽを追加できません。(Error 3264)

Tabledef オブジェクトは、フィールドを定義するまで追加できません。CreateField メソッドを使用してフィールドを作成し、このフィールドを TableDef オブジェクトに追加してから、TableDef オブジェクトを TableDefs コレクションに追加します。


このｺﾚｸｼｮﾝには項目がありません。(Error 3265)

コレクション内の名前を参照しようとして失敗しました。

このエラーの原因は次のとおりです。

このコレクションにはオブジェクトが存在しません。オブジェクトを参照する前に、そのオブジェクトをコレクションに追加します。

コレクションに指定した名前のオブジェクトが複数あるため、その名前を使用しても正しく参照できません。コレクション内の配置の順序でオブジェクトを参照してください (たとえば、Recordsets(3) など)。


ﾌｨｰﾙﾄﾞは、TableDefs ｺﾚｸｼｮﾝに属しているため、追加できませんでした。(Error 3266)

Append メソッドに対する引数として Field オブジェクトを指定しましたが、このオブジェクトは既存の Fields コレクションのメンバです。Dim ステートメントおよび CreateField メソッドを使用し、新しい Field オブジェクトの宣言およびオブジェクトの値を指定してから、新しい Field オブジェクトに対して再度操作を行ってください。


ﾌﾟﾛﾊﾟﾃｨは、ﾌｨｰﾙﾄﾞが Recordset ｵﾌﾞｼﾞｪｸﾄの Fields ｺﾚｸｼｮﾝに属していないと設定できません。(Error 3267)

このプロパティは、Recordset オブジェクトの Fields コレクションの一部である Field オブジェクトに対してのみ有効です。他の Fields コレクションで使用できるプロパティの一覧については、「Field オブジェクト、Fields コレクションの要約」を参照してください。


ｵﾌﾞｼﾞｪｸﾄがｺﾚｸｼｮﾝに属しているため、このﾌﾟﾛﾊﾟﾃｨは設定できません。(Error 3268)

既にコレクションに追加されているオブジェクト (TableDef、Field など) のプロパティの値を変更しようとしました。


ｲﾝﾃﾞｯｸｽは TableDefs ｺﾚｸｼｮﾝに属しているため、追加できませんでした。(Error 3269)

Append メソッドに対する引数として Index オブジェクトを指定しましたが、このオブジェクトは既存の Indexes コレクションのメンバです。Dim ステートメントおよび CreateIndex メソッドを使用し、新しい Index オブジェクトの宣言およびオブジェクトの値を指定してから、新しい Index オブジェクトに対して再度操作を行ってください。


ﾌﾟﾛﾊﾟﾃｨが見つかりませんでした。(Error 3270)

指定したプロパティが見つかりませんでした。

このエラーの原因は次のとおりです。

プロパティが存在しません。プロパティが、コードで正しく指定されているかどうかを確認してください。

プロパティがユーザー定義である場合、コレクションから削除されていることがあります。


ﾌﾟﾛﾊﾟﾃｨの値が不正です。(Error 3271)

このエラーの原因は次のとおりです。

Parameter オブジェクトの Value プロパティの設定値が長すぎるかまたは間違っています。

Index オブジェクトの名前が長さ 0 の文字列 (" ") です。Index オブジェクトを Indexes コレクションに追加する場合は、オブジェクト名を入力してください。

Workspace オブジェクト名が長さ 0 の文字列 (" ") です。Workspace オブジェクトを Workspaces コレクションに追加する場合は、オブジェクト名を入力してください。


ｵﾌﾞｼﾞｪｸﾄはｺﾚｸｼｮﾝではありません。(Error 3272)

オブジェクトをコレクションを参照する場合と同じように参照しました。たとえば、MyQuery.Refresh または MyQuery(2) のようなステートメントを実行すると、このエラーが発生します。


このｵﾌﾞｼﾞｪｸﾄに対しては使用できないﾒｿｯﾄﾞです。(Error 3273)

オブジェクトに対して、サポートされていないメソッドを使用しようとしました。オブジェクトに対して有効なメソッドの一覧については、「概要」を参照してください。


外部ﾃｰﾌﾞﾙのﾌｫｰﾏｯﾄが不正です。(Error 3274)

テーブルの書式が、アタッチ (またはリンク) した後で変更されました。テーブルをアタッチ (またはリンク) し直して再度操作を行ってください。


外部ﾃﾞｰﾀﾍﾞｰｽ ﾄﾞﾗｲﾊﾞ <ｴﾗｰ番号> で予期しないｴﾗｰが発生しました。(Error 3275)

(指定した) 外部データベース ドライバでエラーが発生しました。このタイプの外部データベースでサポートされていない操作を実行すると、このエラーが発生します。


ﾃﾞｰﾀﾍﾞｰｽ ID が不正です。(Error 3276)

指定した Database オブジェクトは OpenDatabase メソッドで作成されたものではありません。または変更されて無効なオブジェクトです。


1 つのｲﾝﾃﾞｯｸｽで使えるﾌｨｰﾙﾄﾞは 10 までです。(Error 3277)

10 フィールドを超えるインデックスを定義しました。フィールドの数を 10 以下に減らしてください。


ﾃﾞｰﾀﾍﾞｰｽ ｴﾝｼﾞﾝが初期化されていません。(Error 3278)

データベース エンジンを初期化できません。

このエラーの原因は次のとおりです。

Microsoft Jet データベース エンジンを使用する他のアプリケーションとの間でコンフリクトが発生しています。他のすべてのアプリケーションを終了してから、アプリケーションを再起動してください。

インストールおよびセットアップ中にエラーが発生しました。アプリケーションを再度インストールしてください。


ﾃﾞｰﾀﾍﾞｰｽ ｴﾝｼﾞﾝは既に初期化されています。(Error 3279)

データ アクセス エンジンを初期化しようとしましたが、既に初期化されています。


ｲﾝﾃﾞｯｸｽとして使われているﾌｨｰﾙﾄﾞまたはｼｽﾃﾑが必要とするﾌｨｰﾙﾄﾞは削除できません。(Error 3280)

インデックスの一部であるフィールドを削除するには、まずインデックスを削除してください。


このﾌｨｰﾙﾄﾞは削除できません。ｶﾚﾝﾄ ｲﾝﾃﾞｯｸｽとして使用されているか、ﾘﾚｰｼｮﾝｼｯﾌﾟで使用されています。(Error 3281)

インデックスがリレーションシップの中で使用されている場合、そのインデックスを削除するには、まずリレーションシップを削除する必要があります。インデックスが Index プロパティによってカレント インデックスとして指定されている場合、そのインデックスを削除するには、Index プロパティを他のインデックスに設定する必要があります。


すでに定義されているﾃｰﾌﾞﾙでは、ﾌｨｰﾙﾄﾞやｲﾝﾃﾞｯｸｽを作成できません。(Error 3282)

データを含むアタッチ テーブル (またはリンク テーブル) に、フィールドを追加したり、インデックスを作成したりすることはできません。テーブルにデータを設定した後で、テーブルの構成またはインデックスを変更することはできません。変更するデザインでテーブルを新しく作成し、アクション クエリーを使用してテーブルにデータを転送してください。


主ｷｰは既に存在しています。(Error 3283)

このテーブルに対して 2 番めの主キーを定義しようとしました。各テーブルの主キーは、それぞれ 1 つのみです。2 番めの主キーへの参照を削除してください。


ｲﾝﾃﾞｯｸｽは既に存在しています。(Error 3284)

テーブルに同じ名前の 2 つのインデックスを持つことはできません。一方のインデックスの名前を変更してください。


ｲﾝﾃﾞｯｸｽの定義が不正です。(Error 3285)

このエラーの原因は次のとおりです。

インデックスまたはリレーションシップの中で、同じ列を 2 回使用していますが、Microsoft Jet データベース エンジンでは認識されません。

データ型が一致しない列を使用してリレーションシップを作成しています。Microsoft Jet データベースの場合、同じデータ型の列を関連付けるか、またはカウンタ型の列を長整数型 (Long) に設定されている数値型の列に関連付けることのみできます。


ﾒﾓ ﾌｧｲﾙの形式が、指定されている外部ﾃﾞｰﾀﾍﾞｰｽのﾌｧｲﾙ形式に対応していません。(Error 3286)

アプリケーションでは、インポートまたはアタッチ (リンク) しようとしているデータベースに関連するメモ ファイルを読み取ることができません。このため、ファイルをインポートまたはアタッチ (リンク) できません。メモ ファイルの形式が異なっている場合があります。たとえば、dBASE IV をデータ ソースとして選択し、メモ ファイルは FoxPro 形式の場合などです。


指定したﾌｨｰﾙﾄﾞにはｲﾝﾃﾞｯｸｽを作成できません。(Error 3287)

メモ型のフィールドまたは OLE オブジェクト型のフィールドにインデックスを作成しようとしました。他のフィールドを指定して再度操作を行ってください。

Btrieve テーブルで、1 バイトのフィールドにインデックスを作成しようとする場合も、このエラーが発生します。


Paradox のｲﾝﾃﾞｯｸｽが主ｲﾝﾃﾞｯｸｽではありません。(Error 3288)

他にインデックスが定義されていない Paradox テーブルに、インデックスを作成しようとしました。Paradox テーブル上に最初に作成するインデックスは、主インデックスとして作成してください。

このエラーの解決法は次のとおりです。

インデックスを主インデックスとして再定義します。

作成しようとしているインデックスが主インデックスでない場合、まず主インデックスを作成します。


CONSTRAINT 句の構文ｴﾗｰです。(Error 3289)

入力した SQL ステートメントに無効な CONSTRAINT 句が含まれています。

このエラーの原因は次のとおりです。

予約語または引数名の指定が間違っているかまたは指定されていません。

区切り記号が間違っています。


CREATE TABLE ｽﾃｰﾄﾒﾝﾄの構文ｴﾗｰです。(Error 3290)

入力した SQL ステートメントに無効な CREATE TABLE ステートメントが含まれています。

このエラーの原因は次のとおりです。

予約語または引数名の指定が間違っているかまたは指定されていません。

区切り記号が間違っています。


CREATE INDEX ｽﾃｰﾄﾒﾝﾄの構文ｴﾗｰです。(Error 3291)

入力した SQL ステートメントに無効な CREATE INDEX ステートメントが含まれています。

このエラーの原因は次のとおりです。

予約語または引数名の指定が間違っているかまたは指定されていません。

区切り記号が間違っています。


ﾌｨｰﾙﾄﾞ定義の構文ｴﾗｰです。(Error 3292)

CREATE TABLE ステートメントまたは ALTER TABLE ステートメントのフィールド定義で構文エラーが発生しました。

このエラーの原因は次のとおりです。

予約語または引数名の指定が間違っているかまたは指定されていません。

区切り記号が間違っています。


ALTER TABLE ｽﾃｰﾄﾒﾝﾄの構文ｴﾗｰです。(Error 3293)

入力した SQL ステートメントに無効な ALTER TABLE ステートメントが含まれています。

このエラーの原因は次のとおりです。

予約語または引数名の指定が間違っているかまたは指定されていません。

区切り記号が間違っています。


DROP INDEX ｽﾃｰﾄﾒﾝﾄの構文ｴﾗｰです。(Error 3294)

入力した SQL ステートメントに無効な DROP INDEX ステートメントが含まれています。

このエラーの原因は次のとおりです。

予約語または引数名の指定が間違っているかまたは指定されていません。

区切り記号が間違っています。


DROP TABLE または DROP INDEX ｽﾃｰﾄﾒﾝﾄの構文ｴﾗｰです。(Error 3295)

入力した SQL ステートメントに無効な DROP ステートメントが含まれています。

このエラーの原因は次のとおりです。

予約語または引数名の指定が間違っているかまたは指定されていません。

区切り記号が間違っています。


結合式がｻﾎﾟｰﾄされていません。(Error 3296)

このエラーの原因は次のとおりです。

複数の結合を含む SQL ステートメントを実行しようとしました。クエリーの結果は、それぞれの結合が実行された順序によって異なります。最初の結合を実行するクエリーを別に作成し、これを SQL ステートメントのクエリーに含めることができます。

JOIN 操作の ON ステートメントが完全でないか、または含まれるテーブルが多すぎます。ON 式は WHERE 句に設定することができます。


ﾃｰﾌﾞﾙまたはｸｴﾘｰをｲﾝﾎﾟｰﾄできませんでした。ﾚｺｰﾄﾞが 1 つも見つからないか、またはすべてのﾚｺｰﾄﾞにｴﾗｰがあります。(Error 3297)

Microsoft Jet データベース エンジンは、インポートしようとしたテーブルまたはクエリーを見つけることができませんでした。指定したパスを確認して再度操作を行ってください。


同じ名前のﾃｰﾌﾞﾙが複数見つかりました。'所有者.ﾃｰﾌﾞﾙ名' の書式で所有者も指定してください。(Error 3298)

指定した名前のテーブルが、リモート ODBC データベースに複数存在します。アクセスするテーブルを特定するには、owner.table 構文を使用して、テーブルの所有者を指定します。


ODBC の仕様適合ｴﾗｰ <ﾒｯｾｰｼﾞ> です。(Error 3299)

このエラーは、ODBC ドライバによって発生します。メッセージに表示されたエラー番号を記録してドライバのベンダに問い合わせてください。


ﾘﾚｰｼｮﾝｼｯﾌﾟを作成できません。(Error 3300)

不適切なリレーションシップを作成しようとしました。たとえば、テーブルが別のデータベースに存在する場合があります。


処理が実行できません。このﾊﾞｰｼﾞｮﾝの機能には、前のﾊﾞｰｼﾞｮﾝのﾃﾞｰﾀﾍﾞｰｽで使用できないものがあります。(Error 3301)

この機能をサポートしていない以前のバージョンの Microsoft Jet データベース エンジンを使用して、データベースが保存されました。データベースを Microsoft Jet Version 2.0 または Version 3.0 の形式に変換するか、またはサポートされていない機能を使用しないように操作の内容を変更してください。


このﾃｰﾌﾞﾙに対する規則は、現在適用されているため変更できません。(Error 3302)

このテーブルのレコードは、他のユーザーによって、またはアプリケーションの別のセッションで変更され、現在はロックされています。テーブルのレコードがロックされている間は、テーブルの規則を変更できません。

別のセッションでレコードをロックしている場合は、レコードを保存してから変更を加えます。他のユーザーによってレコードがロックされている場合は、他のユーザーの操作が終了してから、規則の変更を保存します。


このﾌｨｰﾙﾄﾞは削除できません。1 つ以上のﾘﾚｰｼｮﾝｼｯﾌﾟで使用されています。(Error 3303)

データベース内でリレーションシップが定義されているフィールドを削除しようとしました。フィールドを削除するには、まずそのリレーションシップを削除する必要があります。


4 桁 (ﾊﾞｲﾄ) 以上、20 桁 (ﾊﾞｲﾄ) 以下の PID (ﾊﾟｰｿﾅﾙ ID) を入力してください。(Error 3304)

パーソナル ID (PID) は、4 ～ 20 文字の範囲で指定してください。


ﾊﾟｽｽﾙｰ ｸｴﾘｰで使われている接続文字列が不正です。(Error 3305)

パススルー クエリーの接続文字列は、"ODBC;" で開始しないでください。


EXISTS ｷｰﾜｰﾄﾞを使用しないｻﾌﾞｸｴﾘｰからは、1 つのﾌｨｰﾙﾄﾞしか返されません。(Error 3306)

メイン クエリーの FROM 句の中で予約語 EXISTS を使用せずに、複数のフィールドを返すことができるサブクエリーを作成しました。1 つのフィールドだけを要求するように、サブクエリーの SELECT ステートメントを変更してください。


ﾕﾆｵﾝ ｸｴﾘｰで選択した 2 つのﾃｰﾌﾞﾙまたはｸｴﾘｰの列数が一致しません。(Error 3307)

UNION 操作で結合される 2 つのテーブルまたはクエリーでは、同じ個数の列を生成する必要があります。列数が多すぎる SELECT ステートメントから列を削除するか、または列数が少ない SELECT ステートメントに列を加えてください。

ヒント   列数が少ない SELECT ステートメントでは、列の代わりに定数を指定することができます。たとえば、次に示すユニオン クエリーでは、最初の SELECT ステートメントから 3 つの列を生成しますが、2 番めの SELECT ステートメントは 1 つの列および 2 つの定数を生成します。クエリーは、Employees テーブルおよび Regions テーブルのすべての国を返します。Employees テーブルからは、従業員のファースト ネームおよびラスト ネームも返します。しかし、国の値が Regions テーブルからの場合、First Name 列および Last Name 列には Null 値を返します。

SELECT Country, FirstName, LastName FROM Employees

UNION SELECT Country, NULL, NULL FROM Regions;


選択ｸｴﾘｰの TOP 引数が不正です。(Error 3308)

SELECT ステートメントの TOP 句に無効なパラメータを指定しています。予約語 TOP の後には、正の整数を指定してください。予約語 PERCENT も使用している場合は、100 を超える整数を指定することはできません。


ﾌﾟﾛﾊﾟﾃｨは 2KB 以下で設定してください。(Error 3309)

オブジェクトのプロパティ値を、許容される最大のサイズの 2KB を超える大きさに設定しました。プロパティ値の大きさを小さくしてください。


このﾌﾟﾛﾊﾟﾃｨは、外部ﾃﾞｰﾀ ｿｰｽまたは前のﾊﾞｰｼﾞｮﾝで作成されたﾃﾞｰﾀﾍﾞｰｽではｻﾎﾟｰﾄされていません。(Error 3310)

Microsoft Jet データベース Version 1.x、または Version 2.x で保存されているデータベース、あるいは外部データ ソースの中の、このオブジェクトでは利用できないプロパティを設定または参照しようとしました。有効なプロパティの一覧については、このオブジェクトの「概要」を参照してください。


指定されたﾌﾟﾛﾊﾟﾃｨは既に存在しています。(Error 3311)

コレクションに対して新しい Property オブジェクトを追加しようとしましたが、このコレクションには同じ名前のプロパティが含まれています。新しい Property オブジェクトの Name プロパティの指定が正しいかどうかを確認してください。または、同じ名前の既存のプロパティについてヘルプを参照し、新しい Property オブジェクトを作成する必要があるかどうかを確認してください。


ｼｽﾃﾑ ﾃｰﾌﾞﾙとｱﾀｯﾁ (ﾘﾝｸ) ﾃｰﾌﾞﾙには、入力規則と既定値を設定できません。(Error 3312)

アプリケーションでは禁止されているテーブル、フィールド、または他のオブジェクトに対して DefaultValue プロパティ、ValidationRule プロパティ、ValidationText プロパティ、または Required プロパティを設定しようとしました。たとえば、システム オブジェクトに対してプロパティを設定する場合などです。


このﾌｨｰﾙﾄﾞには設定できない入力規則を指定しています。(Error 3313)

入力検査を行うプロパティは設定できないフィールド (カウンタ型のフィールドまたは OLE オブジェクト型のフィールドなど) に入力検査プロパティを設定しようとしました。データの入力検査を行うには、別のフィールドを使用してください。または、テーブルにデータを追加していない場合は、フィールドのデータ型を再定義してください。


ﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> には Null 値を格納できません。(Error 3314)

このフィールドの Required プロパティが真 (True) に設定されているため、フィールドに Null 値を入力することはできません。フィールドに値を入力してください。


ﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> には、長さ 0 の文字列を格納できません。(Error 3315)

このフィールドの AllowZeroLength プロパティが偽 (False) に設定されているため、フィールドに長さ 0 の文字列 (" ") を入力することはできません。フィールドに別の値を入力してください。


ﾃｰﾌﾞﾙでのｴﾗｰﾒｯｾｰｼﾞです。(Error 3316)

テーブル レベルの入力規則に違反しました。


<名前> に設定されている入力規則 <規則> に違反する値が 1 つ以上入力されました。(Error 3317)

このフィールドの ValidationRule プロパティには、フィールドに入力する値を制限する式が含まれています。式で禁止されていない値を入力してください。


削除ｸｴﾘｰでは、Top 句を使用できません。(Error 3318)

SELECT ステートメントの TOP 句で指定する値は、削除クエリーでは指定できません。


ﾕﾆｵﾝ ｸｴﾘｰの構文ｴﾗｰです。(Error 3319)

ユニオン クエリーの SQL 文字列に構文エラーがあります。

このエラーの原因は次のとおりです。

予約語または引数名の指定が間違っています。

予約語または引数が指定されていません。

区切り記号が間違っています。


ﾃｰﾌﾞﾙ ﾚﾍﾞﾙ入力規則の <ｴﾗｰ>。(Error 3320)

テーブル レベルの入力規則式または既定値の式でエラーが発生しました。このエラーは、構文エラーまたは他の種類のエラーである場合があります。


接続文字列または IN 句にﾃﾞｰﾀﾍﾞｰｽが指定されていません。(Error 3321)

接続するデータベース名を指定していないため、Microsoft Jet データベース エンジンでは、外部の ISAM データベースに接続できません。外部のデータ ソースに接続する場合は、データベース名を指定してください。

このエラーの原因は次のとおりです。

SELECT ステートメントの FROM 句の接続文字列にパラメータ“DATABASE= ”を指定していません。

SELECT ステートメントの IN 句にデータベースのタイプを表す引数 (外部データベースからのデータの選択を指定する) は指定されていますが、データベース名を表す引数が指定されていません。


ｸﾛｽ集計ｸｴﾘｰに、不正な固定列見出しが 1 つ以上見つかりました。(Error 3322)

クロス集計クエリー (TRANSFORM ステートメント内の PIVOT 句) の固定列見出しのリストが無効です。

このエラーの原因は次のとおりです。

リストが指定してありません。PIVOT 句の予約語 IN に続くかっこには、列見出しを生成するための値を 1 つ以上指定してください。

リストに空白が指定されています。行の中でカンマ (,) を 2 つ続けて指定すると (,,)、空白の指定になります。

リストに 64 文字を超えるフィールド名を指定しています。

PIVOT 句を修正して、クエリーを再度実行してください。


このｸｴﾘｰは、ﾃﾞｰﾀ ｿｰｽとして使うことはできません。(Error 3323)

このエラーの原因は次のとおりです。

行 (レコード) ソースとして使用するクエリーが、アクション クエリーまたはデータ定義クエリーです。

Jet データベース エンジン Version 1.x で使用するコードの場合、アクション クエリーまたはデータ定義クエリーに対して ListFields メソッドを使用しました。


このｸｴﾘｰは DDL ｸｴﾘｰであるため、ﾃﾞｰﾀ ｿｰｽとして使うことはできません。(Error 3324)

Execute メソッドを使用しないで、アクション クエリーまたはデータ定義クエリーを実行しようとしました。


ReturnsRecords ﾌﾟﾛﾊﾟﾃｨが True に設定されているﾊﾟｽｽﾙｰ ｸｴﾘｰから、ﾚｺｰﾄﾞが返されませんでした。(Error 3325)

ReturnsRecords プロパティが真 (True) に設定されているパススルー クエリーからレコードが返されませんでした。パススルー クエリーからレコードが返されない場合、ReturnsRecords プロパティを偽 (False) に設定してください。


このﾚｺｰﾄﾞｾｯﾄは更新できません。(Error 3326)

スナップショット タイプの Recordset オブジェクトに結合しているフィールドのデータを編集しようとしました。スナップショットのフィールドは編集できません。


Version 1.0 形式でしか使用できません。(Error 3334)

アプリケーションの現在のバージョンではサポートされていない機能を使用しようとしました。この作業を完了するために、現在使用できる方法については、「Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例」を参照してください。


Btrieve: IndexDDF ｵﾌﾟｼｮﾝの設定値が不正です。(Error 3336)

初期化ファイルまたはレジストリの [Btrieve ISAM] セクションの IndexDDF エントリが無効です。IndexDDF エントリでは、インデックスが作成または削除されたときに更新される INDEX.DDF ファイルを、Btrieve 外部 ISAM データベースがどのように処理するのかを指定します。

有効な設定値は次のとおりです。

Require
INDEX.DDF ファイルは、FILE.DDF ファイルおよび FIELD.DDF ファイルと共に、データベース ディレクトリに必要です。

Maintain
INDEX.DDF ファイルが存在する場合は更新します。存在しない場合はエラーを生成します。

Ignore
INDEX.DDF ファイルの有無に関わらず、更新しません。


DataCodePage ｵﾌﾟｼｮﾝの設定値が不正です。(Error 3337)

使用しようとしている外部データ ソースに対する DataCodePage オプションの設定値が無効です。この設定値は、レジストリの対応する ['external data source' ISAM] セクション (たとえば [Btrieve ISAM] など) にあります。

有効な設定値は次のとおりです。

OEM
データは OEM データとして格納されます。OemToAnsi および AnsiToOem 変換が行われます。

ANSI
データは ANSI データとして格納されます。OemToAnsi および AnsiToOem 変換は行われません。


Btrieve: Xtrieve ｵﾌﾟｼｮﾝの設定値が不正です。(Error 3338)

レジストリ内の XTRPATH エントリ、XTRENV エントリ、および XTRPINDEX エントリのいくつかが無効です。

このエラーの原因と解決法は次のとおりです。

XTRPATH はデータ ファイルを検出するためのディレクトリ検索パスです。このエントリの形式は次のとおりです。

XTRPATH=dir1;dir2;dir3

ここで、dir1、dir2、および dir3 はディレクトリの絶対パスを指定します (たとえば XTRPATH=C:\DATA;D:\FILES;E:\DATA など)。

XTRENV は Xtrieve 環境ファイルのディレクトリおよびファイル名を指定します (たとえば XTRENV=C:\XTRV\XTRIEVE.ENV など)。

XTRPINDX は新しい Xtrieve テーブルが作成されるディレクトリを指すポインタで、XTRPATH のディレクトリに対応する数値で表されます。先頭のディレクトリの XTRPINDX は 1、2 番めの XTRPINDX は 2、以降についても同様です。前に示した XTRPATH の場合、XTRPINDX 値に 2 を指定すると、ディレクトリ D:\FILES に新しい Xtrieve テーブルが作成されます。


Btrieve: IndexDeleteRenumber ｵﾌﾟｼｮﾝの設定値が不正です。(Error 3339)

初期化ファイルまたはレジストリの [Btrieve ISAM] セクション内の IndexDeleteRenumber エントリの設定値が無効です。IndexDeleteRenumber エントリは、インデックスが削除された場合、残りのインデックスが改めて番号付けされるかどうかを指定します。

有効な設定値は次のとおりです。

On
番号を付け直します。

Off
番号を付け直しません。

On は、Btrieve Version 5.1x の動作と一致します。Off は、Btrieve Version 6.0 の動作と一致します。


ｸｴﾘｰ <ｸｴﾘｰ名> は破損しています。(Error 3340)

定義していないクエリー名を参照しました。QueryDefs コレクションに一覧されているクエリーを調べて、有効なクエリー名を参照していることを確認してください。


ｶﾚﾝﾄ ﾌｨｰﾙﾄﾞは更新されているため、一対他ﾘﾚｰｼｮﾝｼｯﾌﾟの '一' 側の結合ｷｰと一致しなければなりません。(Error 3341)

"一" の側のテーブルの結合フィールドに対応する値がない、外部結合の多側のみテーブルの結合フィールドに、値を入力しようとしました。まず、要求されたキー値で "一" の側のテーブルにレコードを入力してください。次に、"多側のみ" テーブルの要求される結合フィールドでエントリを作成してください。


ｻﾌﾞｸｴﾘｰ <ｻﾌﾞｸｴﾘｰ名> のﾒﾓ型または OLE ｵﾌﾞｼﾞｪｸﾄ型のﾃﾞｰﾀが不正です。(Error 3342)

サブクエリーでは、メモ型または OLE オブジェクト型のデータを返すことができません。さらに、式の中でメモ型または OLE オブジェクト型とは比較できません。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> の入力規則または既定値の参照 <名前> を認識できません。または参照が不正です。(Error 3344)

指定した式で、間違ったフィールドを参照しているか、または存在しないフィールドを参照しています。指定したフィールド名が有効であり、フィールド名の指定が正しいかどうかを確認してください。


ﾌｨｰﾙﾄﾞの参照 <名前> が認識できません。または不正な参照です。(Error 3345)

指定した式で、間違ったフィールドを参照しているか、または存在しないフィールドを参照しています。フィールド名の指定が正しいかどうかを確認してください。


ｸｴﾘｰの値と追加先ﾌｨｰﾙﾄﾞの数が一致しません。(Error 3346)

INSERT INTO (追加) クエリーで、十分な追加先のフィールドが指定されていません。あるいは、VALUES リストまたは SELECT リストのフィールドが追加先テーブルのフィールドよりも多くなっています。フィールド数が一致するように指定してください。


数値ﾌｨｰﾙﾄﾞがｵｰﾊﾞｰﾌﾛｰしました。(Error 3349)

Btrieve フィールドのデータが大きすぎて、アプリケーションの中では表示できません。


ｵﾌﾞｼﾞｪｸﾄが不正です。(Error 3350)

アタッチ テーブル (リンク テーブル) 以外のオブジェクトに対して RefreshLink メソッドを使用しようとしました。オブジェクトが無効になるのは、そのオブジェクトが破棄されたとき、およびそのオブジェクトに関連するデータ オブジェクトが閉じるか、または現在の適用範囲 (スコープ) 外になったときです。


ORDER BY 式 <式> が非出力ﾌｨｰﾙﾄﾞを使用しています。(Error 3351)

ユニオン クエリーで、ORDER BY 式に非出力フィールドを指定しました。ORDER BY 式に指定できるのは、最初のクエリーで要求したフィールドのみです。


INSERT INTO ｽﾃｰﾄﾒﾝﾄ <ｽﾃｰﾄﾒﾝﾄ> に追加先のﾌｨｰﾙﾄﾞ名が指定されていません。(Error 3352)

INSERT INTO ステートメントの SELECT 句の式に、有効な追加先のフィールド名を指定していません。


Btrieve: FIELD.DDF ﾌｧｲﾙが見つかりません。(Error 3353)

Btrieve ドライバは、FILE.DDF ファイルが指定する FIELD.DDF ファイルを見つけることができません。

このエラーの解決法は次のとおりです。

FIELD.DDF ファイルが存在する場合、Novell Xtrieve などの .DDF ファイル作成プログラムを使用して、FILE.DDF ファイルでの参照を修正します。

FIELD.DDF ファイルが存在しない場合、Novell Xtrieve などの .DDF ファイル作成プログラムを使用して、このファイルを作成します。


このｻﾌﾞｸｴﾘｰでは 1 つのﾚｺｰﾄﾞしか返せません。(Error 3354)

この種類のサブクエリーは、1 つのレコードのみ返します。サブクエリーの SELECT ステートメントで要求するレコードを 1 つのみに修正してください。


既定値の構文ｴﾗｰです。(Error 3355)

このエラーの原因は次のとおりです。

テーブル レベルの入力検査の既定値の式に、認識できない関数名を指定しました。

テーブル レベルの入力検査の既定値の式に、構文の間違いがあります。


ﾏｼﾝ <ﾏｼﾝ名> のﾕｰｻﾞｰ <ﾕｰｻﾞｰ名> によってﾃﾞｰﾀﾍﾞｰｽは既に開いています。このﾃﾞｰﾀﾍﾞｰｽを排他的に開くことはできません。(Error 3356)

このエラーの原因は、次のとおりです。

表示されたユーザーによって既に排他的に開かれているデータベースを開こうとしました。他のユーザーがデータベースを閉じるまで、このデータベースを開くことはできません。

表示されたユーザーによって既に共有 (非排他的) モードで開かれているデータベースを排他的に開こうとしました。他のユーザーがデータベースを閉じるまでは、このデータベースは共有モードでのみ開くことができます。


Microsoft Jet ｴﾝｼﾞﾝのｼｽﾃﾑ ﾃﾞｰﾀﾍﾞｰｽを開くことができません。(Error 3358)

セキュリティに関する処理を実行しようとしましたが、その処理に必要なシステム データベース (通常は、SYSTEM.MDW) が見つかりませんでした。


ﾊﾟｽｽﾙｰ ｸｴﾘｰには、必ず 1 文字以上が含まれていなければなりません。(Error 3359)

パススルー クエリーの SQL 文字列には、1 文字以上を指定してください。


ｸｴﾘｰが複雑すぎます。(Error 3360)

クエリーが複雑すぎます。SELECT 句の中のフィールド数を減らしてください。


ｻﾌﾞｸｴﾘｰでは UNION 句を使用できません。(Error 3361)

サブクエリーで UNION 操作は使用できません。サブクエリーでユニオン クエリーを使用するには、まず、ユニオン クエリーを作成して名前付きクエリーとして保存します。次に、その名前をサブクエリー式で指定してください。


1 行の更新/削除により、ﾘﾓｰﾄ ﾃｰﾌﾞﾙで 1 行以上が影響を受けました。固有ｲﾝﾃﾞｯｸｽに重複する値が含まれています。(Error 3362)

更新クエリーまたは削除クエリーが、アタッチしている SQL テーブルの複数のレコードに影響します。更新および削除は、一度に 1 つのレコードにのみ行われます。


ﾕﾆｵﾝ ｸｴﾘｰの SELECT 句では、ﾒﾓ型あるいは OLE ｵﾌﾞｼﾞｪｸﾄ型のﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> が使用できません。(Error 3364)

SQL ステートメントの UNION クエリーの SELECT 句で指定したフィールドのデータ型が、メモ型または OLE オブジェクト型です。このデータ型のフィールドは指定できません。


ﾘﾓｰﾄ ｵﾌﾞｼﾞｪｸﾄには設定できないﾌﾟﾛﾊﾟﾃｨです。(Error 3365)

このプロパティは、ODBC データベースに関連するオブジェクトでは利用できません。


ﾌｨｰﾙﾄﾞが定義されていないため、ﾘﾚｰｼｮﾝｼｯﾌﾟは追加できません。(Error 3366)

フィールドを持たない Relation オブジェクトを Relations コレクションに追加しようとしました。

Relation オブジェクトを追加するには

1.	CreateRelation メソッドを使用して Relation オブジェクトを作成します。

2.	Relation オブジェクトの、Table プロパティ、ForeignTable プロパティ、および Attributes プロパティを CreateRelation メソッドへの引数として指定していないで作成した場合、これらのプロパティを設定します。

3.	CreateField メソッドを使用して、リレーションシップの主キーおよび外部キーの各フィールドに対して、新しい Field オブジェクトを作成します。

4.	Field オブジェクトの Name プロパティ (CreateField メソッドへの引数として指定していない場合) および ForeignName プロパティに、リレーションシップの各フィールドの主キーおよび外部キーの Field オブジェクトの対応する Name プロパティの設定値を設定します。

5.	Field オブジェクトを、Append メソッドを使用して Relation オブジェクトの Fields コレクションに保存します。

6.	Relation オブジェクトを、Append メソッドを使用してデータベースの Relations コレクションに保存します。


追加しようとしたｵﾌﾞｼﾞｪｸﾄは、既にｺﾚｸｼｮﾝに含まれています。(Error 3367)

コレクションにオブジェクトを追加しようとしましたが、このコレクションには同じ名前のオブジェクトが含まれています。コレクションに対して Refresh メソッドを使用して、追加しようとするオブジェクトが既に存在するかどうかを確認してください。または、オブジェクトの Name プロパティの設定値を変更してください。


ﾘﾚｰｼｮﾝｼｯﾌﾟは、同じﾃﾞｰﾀ型で同じ数のﾌｨｰﾙﾄﾞに設定しなければなりません。(Error 3368)

リレーションシップを作成するために使用している CONSTRAINT 句のフィールド数がテーブルごとに異なっています。または、各フィールドのデータ型がそれぞれ異なっています。CONSTRAINT 句のフィールド数およびフィールドのデータ型を調べて、これらが一致することを確認して再度操作を行ってください。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> のﾃﾞｻﾞｲﾝは変更できません。ﾃﾞｰﾀﾍﾞｰｽが読み取り専用になっています。(Error 3370)

読み取り専用のデータベースのテーブルは変更できません。


ﾃｰﾌﾞﾙまたは規則を見つけることができません。(Error 3371)

指定したテーブルまたはリレーションシップが存在しません。有効なテーブル名または入力規則名を指定してください。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> にｲﾝﾃﾞｯｸｽ <ｲﾝﾃﾞｯｸｽ名> は見つかりませんでした。(Error 3372)

指定したインデックスが、指定したテーブルに存在しません。テーブルおよびインデックスの指定が正しいかどうかを確認してください。


ﾘﾚｰｼｮﾝｼｯﾌﾟを作成できません。参照先のﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> に主ｷｰがありません。(Error 3373)

CONSTRAINT 句で参照したテーブルには主キーがありません。リレーションシップを作成するには、参照先のテーブルに主キーを作成するか、またはリレーションシップで使用する 1 つまたはそれ以上の重複しないインデックス フィールドを参照するかしてください。


指定されたﾌｨｰﾙﾄﾞは、ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> の固有ｲﾝﾃﾞｯｸｽではありません。(Error 3374)

CONSTRAINT 句の参照先のテーブルの指定したフィールドのインデックスは、重複しています。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> には既に <ｲﾝﾃﾞｯｸｽ名> という名前のｲﾝﾃﾞｯｸｽがあります。(Error 3375)

既に存在しているインデックスを作成しようとしています。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は存在しません。(Error 3376)

指定したテーブルが存在しません。指定したテーブルの名前を確認してください。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> にﾘﾚｰｼｮﾝｼｯﾌﾟ <ﾘﾚｰｼｮﾝｼｯﾌﾟ名> はありません。(Error 3377)

指定したリレーションシップは、このデータベースの中には存在しません。指定した名前を確認してください。


ｶﾚﾝﾄ ﾃﾞｰﾀﾍﾞｰｽには既に <ﾘﾚｰｼｮﾝｼｯﾌﾟ名> という名前のﾘﾚｰｼｮﾝｼｯﾌﾟが存在します。(Error 3378)

データ定義クエリーを使用してデータベースに追加するリレーションシップには、それぞれ他と重複しない名前を指定してください。


参照整合性を設定したﾘﾚｰｼｮﾝｼｯﾌﾟは作成できません。ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> にある既存のﾃﾞｰﾀが、ﾘﾚｰｼｮﾝ ﾃｰﾌﾞﾙ <名前> の参照整合性に違反してい
参照整合性を設定したﾘﾚｰｼｮﾝｼｯﾌﾟは作成できません。ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> にある既存のﾃﾞｰﾀが、ﾘﾚｰｼｮﾝ ﾃｰﾌﾞﾙ <名前> の参照整合性に違反しています。(Error 3379)

ALTER TABLE ステートメントの CONSTRAINT 句を使用してリレーションシップを作成しようとしています。2 つのテーブルの既存のデータが、参照整合性の規則に違反しています。たとえば、関連テーブルには従業員に関するレコードがありますが、主テーブルには対応する従業員のレコードがない場合などです。

リレーションシップを作成するには、すべての関連レコードに対して主レコードが存在するようにデータを編集してください。


ﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> は、ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> に既に存在しています。(Error 3380)

同じフィールド名を 2 回入力しました。各フィールドの名前が重複しないようにコードを記述し直してください。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> には、<ﾌｨｰﾙﾄﾞ名> という名前のﾌｨｰﾙﾄﾞが見つかりません。(Error 3381)

指定したテーブルには指定したフィールドが含まれていません。フィールド名の指定が正しいかどうかを確認してください。


ﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> のｻｲｽﾞには、1 から 255 までの値を指定してください。(Error 3382)

Microsoft FoxPro テーブルのテキスト フィールドのサイズは 254 文字以下で、Microsoft Jet テーブルの場合は 255 文字以下です。フィールドのサイズを再定義してください。


ﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> は削除できません。1 つ以上のﾘﾚｰｼｮﾝｼｯﾌﾟで使われています。(Error 3383)

データベース内でリレーションシップが定義されているフィールドを削除しようとしました。フィールドを削除するには、まずそのリレーションシップを削除してください。


組み込みﾌﾟﾛﾊﾟﾃｨは削除できません。(Error 3384)

Microsoft Jet データベース エンジンで定義される Property オブジェクトを削除しようとしました。

ユーザー定義プロパティ (アプリケーション定義プロパティを含む) のみ削除できます。また、プロパティを削除するには、そのプロパティに対して構造の変更権限が必要です。ただし、権限が不要なプロパティもあります。


ﾕｰｻﾞｰ定義ﾌﾟﾛﾊﾟﾃｨでは Null 値をｻﾎﾟｰﾄできません。(Error 3385)

ユーザー定義の Property オブジェクトに Null 値は設定できません。コレクションからプロパティを削除するには、ユーザー定義プロパティに対して Delete メソッドを使用します。


このﾒｿｯﾄﾞは、ﾌﾟﾛﾊﾟﾃｨ <ﾌﾟﾛﾊﾟﾃｨ名> を設定してからでないと使用できません。(Error 3386)

新しい Property オブジェクトをコレクションに追加しようとしました。まず新しいオブジェクトの Value プロパティ、Type プロパティ、および Name プロパティをすべて設定してから再度操作を行ってください。


<名前> に設定されている入力規則あるいは既定値の関数 <名前> が見つかりません。(Error 3388)

参照している関数は、指定した名前が無効または間違っているために認識できないか、あるいは ValidationRule プロパティまたは DefaultValue プロパティに対して無効な種類の関数です。このような種類の関数には、ユーザー定義関数、SQL 集合関数、定義域関数があります。


ｸｴﾘｰがｻﾎﾟｰﾄされていません。(Error 3389)

QueryDef オブジェクトの Relation オブジェクトに対して参照整合性を確立しようとしましたが、この操作はサポートされていません。

Relation オブジェクトの Attributes プロパティの設定値を dbRelationDontEnforce に変更してください。


既に存在するｱｶｳﾝﾄ名です。(Error 3390)

このエラーはセキュリティに関連して発生します。既に存在する名前を使用してユーザー アカウントを確立しようとしました。別のユーザー名を使用して再度操作を行ってください。


結合、ｸﾞﾙｰﾌﾟ化、並べ替え、ｲﾝﾃﾞｯｸｽを実行できません。検索または並べ替える値が大きすぎます。(Error 3393)

結合、グループ化、または並べ替えに使用するフィールドの結合できる最大の長さは 255 バイトです。結合、グループ化、または並べ替えに使用するフィールド数を減らすか、フィールドのデータ型およびサイズを小さくしてください。


ﾌﾟﾛﾊﾟﾃｨを保存できません。このﾌﾟﾛﾊﾟﾃｨはｽｷｰﾏ ﾌﾟﾛﾊﾟﾃｨです。(Error 3394)

スキーマ プロパティを設定または変更しようとしました。スキーマ プロパティを新しく作成する場合は、このプロパティを設定または削除できるように、CreateProperty メソッドの 4 番めの引数として真 (True) を設定してください。


連鎖処理を実行できません。関連ﾚｺｰﾄﾞがﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> に存在しているため、参照整合性の規則に違反します。(Error 3396)

実行しようとしている連鎖処理は、指定したテーブルとの参照整合性の規則に違反します。更新または削除しようとしている値を調べて、参照整合性の規則に合うように修正してください。


連鎖処理を実行できません。ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> に関連ﾚｺｰﾄﾞが存在する必要があります。(Error 3397)

実行しようとしている連鎖処理は、指定したテーブルの関連レコードを必要とする参照整合性の規則に違反します。更新または削除しようとしている値を調べて、参照整合性の規則に合うように修正してください。


連鎖処理を実行できません。ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> のｷｰが Null 値になります。(Error 3398)

実行しようとしている連鎖処理によって、指定したテーブルの主キーに Null 値が設定されます。このテーブルには Null 値を設定できません。更新しようとしている値を調べて、Null 値以外の値を作成するように修正してください。


連鎖処理を実行できません。ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> のｷｰが重複します。(Error 3399)

実行しようとしている連鎖処理によって、指定したテーブルに重複するキーが作成されます。このテーブルには重複する主キーを作成できません。更新しようとしている値を調べて、重複するキーを作成しないように修正してください。


連鎖処理を実行できません。ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> のﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> が 2 回更新されます。(Error 3400)

実行しようとしている連鎖処理によって、指定したフィールドに対して 2 つの異なる更新が発生するため、この操作は完了できません。更新しようとしている値を調べて、次のいずれかの条件を満たすように修正してください。

フィールドは 1 回だけ更新されます。

フィールドが 2 回以上更新される場合は、フィールドに対するそれぞれの更新の結果は同じになります。


連鎖処理を実行できません。ﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> が Null 値になります。(Error 3401)

実行しようとしている連鎖処理によって、指定したフィールドに Null 値が設定されます。このフィールドには Null 値を設定できません。更新しようとしている値を調べて、Null 値以外の値を設定するように修正してください。


連鎖処理を実行できません。ﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> が長さ 0 の文字列になります。(Error 3402)

実行しようとしている連鎖処理によって、指定したフィールドに長さ 0 の文字列が設定されます。このフィールドには長さ 0 の文字列を設定できません。更新しようとしている値を調べて、このフィールドに長さ 0 の文字列を設定しないように修正してください。


連鎖処理を実行できません: <ﾃｷｽﾄ> (Error 3403)

実行しようとしている連鎖処理によって、無効なデータが作成されます。更新しようとしている値を調べて、入力規則に合うように修正してください。


連鎖処理を実行できません。入力された値は、<名前> に設定されている入力規則 <規則> により禁止されています。(Error 3404)

実行しようとしている連鎖処理によって、指定したフィールドに無効なデータが設定されます。このフィールドは、フィールドの入力規則によって確立されています。更新しようとしている値を調べて、入力規則に合うように修正してください。


入力規則のｴﾗｰ <ｴﾗｰ ﾃｷｽﾄ>。(Error 3405)

表示されるメッセージが原因のため、式を正しく評価できません。たとえば、エラー テキストに“型が一致しません。”が表示される場合、プロパティの設定値と、フィールドに対して定義されているデータ型とが一致していません。


既定値のｴﾗｰ <ｴﾗｰ ﾃｷｽﾄ>。(Error 3406)

DefaultValue プロパティに設定しようとしている式が無効です。DefaultValue プロパティに有効な式を設定してください。


ｻｰﾊﾞｰの MSysConf ﾃｰﾌﾞﾙは見つかりましたが、正しい形式のものではありません。ｼｽﾃﾑ管理者に問い合わせてください。(Error 3407)

Microsoft Jet データベース エンジンおよびアタッチされている SQL データベースとの間の制御通信を促進するためにサーバーに作成された MSysConf テーブルは、きわめて特殊な形式のテーブルです。


ｲﾝﾃﾞｯｸｽまたはﾘﾚｰｼｮﾝｼｯﾌﾟの定義で使用されているﾌｨｰﾙﾄﾞ名 <ﾌｨｰﾙﾄﾞ名> が不正です。(Error 3409)

このエラーの原因は次のとおりです。

指定したフィールド名が間違っている場合があります。フィールド名を正しく指定しているかどうかを確認してください。

カウンタ フィールドを更新しようとしました。カウンタ フィールドは更新できません。


更新用にこのﾃﾞｰﾀﾍﾞｰｽを開くことができません。(Error 3410)

このデータベースはシステムが一時的に使用しています。しばらくしてから、データベースを再度開いてください。


ｴﾝﾄﾘが不正です。ﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> に入力された値が大きすぎるものであるため、ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> で指定された連鎖処理は実行できません
ｴﾝﾄﾘが不正です。ﾌｨｰﾙﾄﾞ <ﾌｨｰﾙﾄﾞ名> に入力された値が大きすぎるものであるため、ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> で指定された連鎖処理は実行できません。(Error 3411)

リレーションシップに含まれる主キーに値を保存しようとしました。リレーションシップに対して Cascade Update Related Fields オプションを設定しているため、アプリケーションは関連テーブルの対応するフィールドを更新しようとします。

このフィールドに対する変更を保存するには、入力する文字列の大きさを、アプリケーションによって更新される関連フィールドのフィールド サイズの大きさ以下にしてください。このエラーが発生する場合、関連フィールドのフィールド サイズは、更新しようとしているフィールドのフィールド サイズより小さい状態です。このエラーの発生を防ぐには、対応するフィールドの両方の Size プロパティを同じ値に設定してください。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は、ﾏｼﾝ <ﾏｼﾝ名> のﾕｰｻﾞｰ <ﾕｰｻﾞｰ名> によって使用されているため、連鎖更新は実行できません。(Error 3413)

リレーションシップに含まれる主キーに値を保存しようとしました。リレーションシップに対して Cascade Update Related Fields オプションを設定しているため、アプリケーションは関連テーブルの対応するフィールドを更新しようとします。

対応するフィールドは、他のユーザーとのロック コンフリクトのために更新できません。レコードを保存するには、他のユーザーによる関連テーブルの使用が終了してから再度操作を行ってください。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は現在使用されているため、連鎖更新は実行できません。(Error 3414)

リレーションシップに含まれる主キーに値を保存しようとしました。リレーションシップに対して Cascade Update Related Fields オプションを設定しているため、アプリケーションは関連テーブルの対応するフィールドを更新しようとします。

対応するフィールドは、コンピュータ上で開いているかまたはロックしているために更新できません。レコードを保存するには、まず、関連テーブルを閉じてください。


長さ 0 の文字列は、ﾃｷｽﾄ型またはﾒﾓ型のﾌｨｰﾙﾄﾞでしか使用できません。(Error 3415)

テキスト型またはメモ型以外のデータ型のフィールドに、長さ 0 の文字列を入力しようとしました。代わりに Null 値を入力できる場合があります。


ｱｸｼｮﾝ ｸｴﾘｰをﾃﾞｰﾀ ｿｰｽとして使うことはできません。(Error 3417)

このエラーの原因は次のとおりです。

行 (レコード) ソースとして使用するクエリーが、アクション クエリーまたはデータ定義クエリーです。


<ﾃｰﾌﾞﾙ名> を開くことができません。他のﾕｰｻﾞｰが、異なるﾈｯﾄﾜｰｸ ｺﾝﾄﾛｰﾙ ﾌｧｲﾙあるいは異なるﾛｯｸ形式を使用してﾃｰﾌﾞﾙを開いています。(Erro
<ﾃｰﾌﾞﾙ名> を開くことができません。他のﾕｰｻﾞｰが、異なるﾈｯﾄﾜｰｸ ｺﾝﾄﾛｰﾙ ﾌｧｲﾙあるいは異なるﾛｯｸ形式を使用してﾃｰﾌﾞﾙを開いています。(Error 3418)

現在テーブルを開いている他のユーザーの初期化設定と、使用しているマシンの初期化設定との間に矛盾があるために、Microsoft Jet データベース エンジンでは外部 Paradox テーブルを開くことができません。レジストリの [Paradox ISAM] セクションの ParadoxNetPath オプションおよび ParadoxNetStyle オプションの設定は、データベースを共有するすべてのユーザー間で一致させてください。使用しているマシンの初期化設定が、データベースを共有する他のすべてのユーザーの初期化設定と一致するかどうかを確認して再度操作を行ってください。


ParadoxNetStyle ｾｸｼｮﾝが 3.x に設定されているため、Paradox 4.x または 5.x のﾃｰﾌﾞﾙを開くことができません。(Error 3419)

テーブルのバージョンおよびレジストリの [Paradox ISAM] セクションの ParadoxNetStyle の初期化設定値との間に矛盾があるために、Microsoft Jet データベース エンジンでは外部 Paradox テーブルを開くことができません。

問題を解決するには

1.	アプリケーションを終了します。

2.	レジストリの [Paradox ISAM] セクションで、ParadoxNetStyle の設定値を 4.x に変更します。

ParadoxNetStyle の設定値は、データベースを共有するすべてのユーザーで一致させてください。

3.	アプリケーションを再起動します。

4.	テーブルを再度開きます。


ｵﾌﾞｼﾞｪｸﾄが不正であるか、設定されていません。(Error 3420)

無効なオブジェクト、または設定されていないオブジェクトを参照しようとしています。

このエラーの原因は次のとおりです。

オブジェクトは閉じています。

オブジェクトはとり残されています (親の関係にあるオブジェクトが閉じているか、または削除されています)。

コレクションのメソッドまたはプロパティを参照しようとしていますが、変数に割り当てていません。たとえば、Name プロパティを参照するには、次のコードを記述します。

Dim dbsPublish As Database

Set dbsPublish = OpenDatabase("BIBLIO.MDB")

dbname = dbsPublish.Name


ﾃﾞｰﾀ型の変換ｴﾗｰが発生しました。(Error 3421)

Microsoft Jet データベース エンジンでは、メソッドまたはプロパティに必要なデータ型にデータを変換できません。メソッドまたはプロパティに特定のデータ型を渡す必要がある場合に別のデータ型の引数を使用すると、このエラーが発生します。


ﾃｰﾌﾞﾙの構造を変更できません。他のﾕｰｻﾞｰがﾃｰﾌﾞﾙを開いています。(Error 3422)

現在、他のユーザーがテーブルを開いているために、Microsoft Jet データベース エンジンではテーブルの構造を変更できませんでした。他のユーザーがテーブルを閉じてから再度操作を行ってください。


ODBC を使用して、外部 Microsoft Access のﾃｰﾌﾞﾙや組み込み可能な ISAM ﾃﾞｰﾀﾍﾞｰｽのﾃｰﾌﾞﾙをｲﾝﾎﾟｰﾄしたり、ｴｸｽﾎﾟｰﾄしたり、ﾃﾞｰﾀﾍﾞｰｽにﾘﾝｸ
ODBC を使用して、外部 Microsoft Access のﾃｰﾌﾞﾙや組み込み可能な ISAM ﾃﾞｰﾀﾍﾞｰｽのﾃｰﾌﾞﾙをｲﾝﾎﾟｰﾄしたり、ｴｸｽﾎﾟｰﾄしたり、ﾃﾞｰﾀﾍﾞｰｽにﾘﾝｸすることはできません。(Error 3423)

外部 Microsoft Access テーブルまたは外部 ISAM データベース テーブル (dBASE、FoxPro、Paradox、Btrieve など) との間で、データのリンクまたはインポート、あるいはデータのエクスポートを実行しようとしていますが、データ ソースとして SQL データベース を指定しています。アタッチまたはリンクしようとしているデータに該当するデータ ソースを選択してください。


Jet ﾃﾞｰﾀﾍﾞｰｽ ｴﾝｼﾞﾝでｴﾗｰが発生しました。ﾃﾞｰﾀﾍﾞｰｽを修復し、最適化を実行してください。(Error 3428)

使用しようとしているデータベースに問題があるため、データベースは破損しているものと見なされます。

問題を解決するには

1.	データベースを閉じます。

2.	RepairDatabase メソッドでデータベースを修復します。

3.	CompactDatabase メソッドでデータベースを最適化します。

重要   修復と最適化のどちらも行ってください。


組み込み可能な ISAM ﾄﾞﾗｲﾊﾞのﾊﾞｰｼﾞｮﾝに互換性がありません。(Error 3429)

現在のバージョンの Microsoft Jet データベース エンジンと共に、以前のバージョンの組み込み可能な ISAM ドライバを使用しようとしました。再度セットアップを実行して、適切なバージョンの組み込み可能な ISAM ドライバをインストールしてください。


Excel ISAM ﾄﾞﾗｲﾊﾞの読み込み中に、OLE が初期化できませんでした。(Error 3430)

Microsoft Excel の組み込み可能な ISAM ドライバをロードしているときに、OLE オートメーションを初期化できませんでした。OLE DLL ファイルを再度インストールしてください。


Excel 5 形式のﾌｧｲﾙではありません。(Error 3431)

Microsoft Excel Version 5.0 のファイルとしてファイルを読み取ろうとしましたが、ファイルの形式が違います。


Excel 5 形式のﾌｧｲﾙを開くことができません。(Error 3432)

Microsoft Excel Version 5.0 ファイルを開いているときに OLE エラーが発生しました。


[ISAM Engines] ｾｸｼｮﾝの設定値が不正です。(Error 3433)

初期化ファイルまたはレジストリの [Excel ISAM] セクションのオプションの 1 つが無効です。初期化ファイルを編集して、すべてのパラメータが有効であるかどうかを確認してください。


指定範囲を広げることはできません。(Error 3434)

Microsoft Excel Version 5.0 の名前が付けられたセル範囲に行を追加しようとしている場合に、空でないセルが発生しました。このようなセルに追加処理で上書きすることはできません。


ﾜｰｸｼｰﾄのｾﾙを削除できません。(Error 3435)

指定した Microsoft Excel のワークシートのセル範囲のデータを削除できません。これらのセルには、数式が含まれているか、または保護されている場合があります。


ﾌｧｲﾙを作成できませんでした。(Error 3436)

Microsoft Excel のファイルまたはテキスト ファイル、あるいは Lotus の組み込み可能な ISAM ファイルを作成しようとしている場合に、エラーが発生しました。

このエラーの原因は次のとおりです。

必要なディスク容量が不足しています。

ネットワークに障害があります。


これ以上ﾜｰｸｼｰﾄに書き込めません。(Error 3437)

Microsoft Excel Version 3.0 または Version 4.0 のファイルに、レコードを新しく追加しようとしましたが、ファイルがいっぱいです。これらの種類のファイルが保持できるレコードは、最高で 16,384 レコードです。


ｴｸｽﾎﾟｰﾄされるﾃﾞｰﾀが SCHEMA.INI ﾌｧｲﾙで設定されている形式に従っていません。(Error 3438)

エクスポートするデータが、SCHEMA.INI ファイルに記述されている形式に一致することを確認してください。


Word の差し込み文書をｱﾀｯﾁまたはｲﾝﾎﾟｰﾄすることはできません。(Error 3439)

Microsoft Word の差し込み文書ファイルをアタッチまたはインポートしようとしました。このようなファイルは、エクスポートすることはできますが、アタッチまたはインポートすることはできません。


ﾃｷｽﾄ ﾌｧｲﾙに列の指定がありません。(Error 3440)

空のテキスト ファイルをインポートまたはアタッチしようとしました。テキスト ファイルをインポートまたはアタッチするには、データが含まれているファイルを指定してください。


ﾃｷｽﾄ ﾌｧｲﾙの指定 <名前> で、<ｵﾌﾟｼｮﾝ名> ｵﾌﾟｼｮﾝの設定値が不正です。(Error 3442)

テキスト ISAM に対するテキスト ファイルの指定のオプションの 1 つが無効です。この設定は、各種の方法で設定できます。

他の Jet ホスト アプリケーションの場合、これらの値は SCHEMA.INI ファイルに格納されます。


固定長 <名前> の指定で、<列名> 列の列幅が指定されていません。(Error 3443)

テキスト ISAM に対するテキスト ファイルの指定の固定長パラメータが、無効または列幅を指定していません。この設定は、各種の方法で設定できます。

他の Jet ホスト アプリケーションの場合、これらの値は SCHEMA.INI ファイルに格納されます。


固定長の指定 <名前> で、列幅が指定されていません。(Error 3444)

テキスト ISAM に対するテキスト ファイルの指定で、列幅のパラメータを指定していません。または幅が無効です。この設定は、各種の方法で設定できます。

他の Jet ホスト アプリケーションの場合、これらの値は SCHEMA.INI ファイルに格納されます。


このｸｴﾘｰは、正しく指定されたﾃﾞｰﾀ定義ｸｴﾘｰではありません。(Error 3357)

このクエリーは、正しく指定されたデータ定義クエリーではありません。


予約されているｴﾗｰです。(Error 3416)

このエラーは、Microsoft Jet データベース エンジンの現在使用しているバージョン以降にリリースされたアプリケーションによって生成されました。


ｱｸｼｮﾝ ｸｴﾘｰをﾃﾞｰﾀ ｿｰｽとして使うことはできません。(Error 3417)

このエラーの原因は次のとおりです。

行 (レコード) ソースとして使用するクエリーが、アクション クエリーまたはデータ定義クエリーです。


ﾃﾞｰﾀﾍﾞｰｽを作成できません。ﾃﾞｰﾀﾍﾞｰｽの並び順の設定が不正です。(Error 3424)

指定した引数 locale が無効です。引数 locale に、有効なデータ アクセス定数を指定しているかどうかを確認してください。


ﾃｷｽﾄ ﾌｧｲﾙ形式のﾌｨｰﾙﾄﾞ区切り記号に、桁やﾃｷｽﾄの区切り記号と同じ記号は使用できません。(Error 3441)

テキスト ISAM で使用される、次に示す区切り記号の設定のうち 2 つ以上が同じ記号です。

TxtDelimiter

NumberDecimalSymbol

CurrencyDecimalSymbol

Format


JET DLL (16 ﾋﾞｯﾄ MSAJT200.DLL、32 ﾋﾞｯﾄ MSJT2032.DLL) のﾊﾞｰｼﾞｮﾝが違います。Version 2.5 以降を使う必要があります。ｴﾗｰが発生したｱﾌﾟ
JET DLL (16 ﾋﾞｯﾄ MSAJT200.DLL、32 ﾋﾞｯﾄ MSJT2032.DLL) のﾊﾞｰｼﾞｮﾝが違います。Version 2.5 以降を使う必要があります。ｴﾗｰが発生したｱﾌﾟﾘｹｰｼｮﾝを再ｾｯﾄｱｯﾌﾟしてください。(Error 3445)

Jet DLL (16 ビット バージョンは MSAJT200.DLL、32 ビット バージョンは MSJT2032) には、Version 2.5 以降を使用する必要があります。エラーを返したアプリケーションを再度インストールしてください。


Jet VBA ﾌｧｲﾙ (16 ﾋﾞｯﾄ VBAJET.DLL、32 ﾋﾞｯﾄ VBAJET32.DLL) が見つかりません。ｴﾗｰが発生したｱﾌﾟﾘｹｰｼｮﾝを再ｾｯﾄｱｯﾌﾟしてください。(Error
Jet VBA ﾌｧｲﾙ (16 ﾋﾞｯﾄ VBAJET.DLL、32 ﾋﾞｯﾄ VBAJET32.DLL) が見つかりません。ｴﾗｰが発生したｱﾌﾟﾘｹｰｼｮﾝを再ｾｯﾄｱｯﾌﾟしてください。(Error 3446)

Jet VBA ファイル (16 ビット バージョンは VBAJET.DLL、32 ビット バージョンは VBAJET32.DLL) が見つかりません。エラーを返したアプリケーションを再度インストールしてください。


Jet VBA ﾌｧｲﾙ (16 ﾋﾞｯﾄ VBAJET.DLL、32 ﾋﾞｯﾄ VBAJET32.DLL) の初期化に失敗しました。ｴﾗｰが発生したｱﾌﾟﾘｹｰｼｮﾝを再ｾｯﾄｱｯﾌﾟしてください。(
Jet VBA ﾌｧｲﾙ (16 ﾋﾞｯﾄ VBAJET.DLL、32 ﾋﾞｯﾄ VBAJET32.DLL) の初期化に失敗しました。ｴﾗｰが発生したｱﾌﾟﾘｹｰｼｮﾝを再ｾｯﾄｱｯﾌﾟしてください。(Error 3447)

Jet VBA ファイル (16 ビット バージョンは VBAJET.DLL、32 ビット バージョンは VBAJET32.DLL) が呼び出されたときに初期化されませんでした。エラーを返したアプリケーションを再度インストールしてください。


OLE ｼｽﾃﾑ関数の呼び出しでｴﾗｰが発生しました。ｴﾗｰが発生したｱﾌﾟﾘｹｰｼｮﾝを再ｾｯﾄｱｯﾌﾟしてください。(Error 3448)

呼び出された OLE オートメーション関数が失敗しました。エラーを返したアプリケーションを再度インストールしてください。


ｱﾀｯﾁ ﾃｰﾌﾞﾙへの接続文字列で、国番号が指定されていません。(Error 3449)

アタッチ テーブル (またはリンク テーブル) に対する接続文字列に国番号が見つかりませんでした。


抽出条件でﾃﾞｰﾀ型が一致しません。(Error 3464)

Find メソッドの抽出条件式で、フィールドと値とを比較しようとしました。フィールドのデータ型と値のデータ型が異なります。


ｲﾝﾃﾞｯｸｽ化された Paradox ﾃｰﾌﾞﾙのﾚｺｰﾄﾞが長すぎます。(Error 3608)

インデックス化された Paradox テーブルの最大レコード長は 1,350 バイトです。テキスト型のフィールドまたはメモ型のフィールドのサイズを小さくしてください。


ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> には主ｷｰが設定されていません。(Error 3609)

テーブル間のリレーションシップを作成する場合、主テーブルの参照フィールドには、重複しないインデックスを設定する必要があります。詳細については、「Index オブジェクト、Indexes コレクション」および「Primary プロパティ」を参照してください。


ﾃｰﾌﾞﾙ作成ｸｴﾘｰで 1 つのﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> が、基になるﾃｰﾌﾞﾙおよび作成されるﾃｰﾌﾞﾙの両方として指定されています。(Error 3610)

SELECT INTO ステートメントのソース テーブルの 1 つを、作成されるテーブルとしても指定しています。ソース テーブルの指定からこのテーブルを削除するか、または作成されるテーブルの名前を変更してください。


ｱﾀｯﾁされているﾃﾞｰﾀ ｿｰｽに対してﾃﾞｰﾀ定義ｽﾃｰﾄﾒﾝﾄを実行することはできません。(Error 3611)

Microsoft Jet データベース エンジンでは、アタッチされている (またはリンクされている) ISAM テーブルあるいは重複しないインデックスが既に設定されている ODBC テーブルには、インデックスを作成できません。


ｻﾌﾞｸｴﾘｰでは、ﾏﾙﾁﾚﾍﾞﾙ GROUP BY 句は使えません。(Error 3612)

SQL サブクエリーは、GROUP BY 句に複数のフィールドを指定できません。


ｱﾀｯﾁ (ﾘﾝｸ) SQL ﾃｰﾌﾞﾙ間にﾘﾚｰｼｮﾝｼｯﾌﾟを設定することはできません。(Error 3613)

Microsoft Jet データベース エンジンは、ODBC データ ソース テーブルのアタッチ テーブル (またはリンク テーブル) に対してリレーションシップを作成できません。


Find 系ﾒｿｯﾄﾞの抽出条件では、GUID は使えません。(Error 3614)

Find メソッドの抽出条件式は GUID を参照できません。


JOIN 式で型が一致しません。(Error 3615)

JOIN 式では、データ型に互換性がない列で、2 つのテーブルを結合しようとしています。


この ISAM では、ｱﾀｯﾁ (ﾘﾝｸ) ﾃｰﾌﾞﾙ内のﾃﾞｰﾀを更新することはできません。(Error 3616)

使用している組み込み可能な ISAM では、外部テーブルのレコードをの更新することはできません。ただし、レコードを新しく追加することはできます。


この ISAM では、ｱﾀｯﾁ (ﾘﾝｸ) ﾃｰﾌﾞﾙ内のﾃﾞｰﾀを削除することはできません。(Error 3617)

使用している組み込み可能な ISAM では、外部テーブルのレコードを削除することはできません。ただし、レコードを新しく追加することはできます。


設定または削除しようとしたﾚﾌﾟﾘｹｰｼｮﾝ ﾌﾟﾛﾊﾟﾃｨは参照のみ可能で、値を変更できません。(Error 3461)

レプリケーションに関連するプロパティの多くは、内部での使用のみ、または開発者には読み取り専用のプロパティとしてのみ使用できます。プログラムのコードを調べて、プロパティの値の変更ではなく読み取りを行っているかどうかを確認してください。


このﾃﾞｰﾀﾍﾞｰｽはﾚﾌﾟﾘｹｰﾄ不可能なため、このｵﾌﾞｼﾞｪｸﾄをﾚﾌﾟﾘｹｰﾄ可能にすることはできません。(Error 3485)

データベースをまずレプリケート可能に設定しない限り、そのデータベースのオブジェクトをレプリケート可能にすることはできません。データベースをレプリケート可能にするには、Replicable プロパティを真 (True) に設定します。

データベースをレプリケート可能に設定する場合、そのデータベースのすべてのオブジェクトは、オブジェクトに対して KeepLocal プロパティを設定しない限り、レプリケート可能です。


このﾚﾌﾟﾘｶでは、ﾃﾞｰﾀﾍﾞｰｽのﾃﾞｻﾞｲﾝを変更することはできません。(Error 3452)

レプリケート可能なデータベースのデザインは、デザイン マスター レプリカに対してのみ変更できます。変更しようとしているレプリカは、デザイン マスターではありません。デザイン マスター レプリカを指定し、変更を加えてください。


2 つめの ReplicationID 自動番号ﾌｨｰﾙﾄﾞをﾃｰﾌﾞﾙに追加することはできません。(Error 3486)

変更しようとしているテーブルには、ReplicationID 自動番号 (または GUID) のデータ型を使用するフィールドが既に 1 つあります。外部キーとして役立つ 2 つめの ReplicationID フィールドを作成する場合、データ型は自動番号型の代わりに数値型を使用してください。


ﾚﾌﾟﾘｹｰﾄ可能にしようとしているﾃﾞｰﾀﾍﾞｰｽを変換できません。(Error 3487)

Microsoft Jet データベース エンジン Version 3.0 で作成されたデータベースに限って、レプリケート可能にすることができます。組み込み可能な ISAM を使用してデータベースを開くことはできますが、これをレプリケート可能な形式に変換することはできません。データベースが Microsoft Jet データベース エンジン の以前のバージョンで作成されている場合、Version 3.0 の形式に変換してください。データベースの形式が異なる場合には、データを新しい Microsoft Jet データベースにエクスポートして再度操作を行ってください。


ﾚﾌﾟﾘｹｰﾄされているﾃｰﾌﾞﾙとﾛｰｶﾙ ﾃｰﾌﾞﾙの間にﾘﾚｰｼｮﾝｼｯﾌﾟを設定することはできません。(Error 3453)

レプリケート可能なテーブルとレプリケート不可能なテーブルとの間でリレーションシップを確立しようとしています。レプリケーションでは、次のようなテーブル間のリレーションシップは設定できません。

レプリケート可能なテーブルとローカル テーブル。

レプリケート可能な 2 つのローカル テーブル。

KeepLocal プロパティの設定値がそれぞれ異なる 2 つのテーブル。

2 つのテーブル間のリレーションシップを削除してから、操作を継続してください。


指定した値は、ﾚﾌﾟﾘｶ ｾｯﾄに含まれるﾚﾌﾟﾘｶの ReplicaID ではありません。(Error 3488)

予期しないエラーが発生しました。詳細については、マイクロソフト社のテクニカル サポートにご連絡ください。


ﾚﾌﾟﾘｹｰﾄ可能なｵﾌﾞｼﾞｪｸﾄの KeepLocal ﾌﾟﾛﾊﾟﾃｨを設定することはできません。(Error 3457)

レプリケート可能なオブジェクトの KeepLocal プロパティを設定することはできません。データベースがレプリケート可能な形式に変換された後で、ローカル オブジェクトの KeepLocal プロパティを設定しても、オブジェクトには適用されません。オブジェクトをレプリカ セット内の他のレプリカにレプリケートされないようにするには、オブジェクトの Replicable プロパティを偽 (False) に設定します。


ﾃﾞｰﾀの交換を実行しようとしているﾚﾌﾟﾘｶは、現在他のﾃﾞｰﾀ交換で使われています。(Error 3510)

レプリカは、一度に 1 つの同期にのみ使用できます。レプリカがロックされている場合、2 番めのデータ交換を実行することはできませんが、レプリカの使用を続けることはできます。しばらくしてから、データ交換の操作を再度行ってください。


Jet ﾃﾞｰﾀﾍﾞｰｽ ｴﾝｼﾞﾝはｺﾝﾋﾟｭｰﾀのｼｽﾃﾑ ｸﾛｯｸを見つけることができませんでした。(Error 3515)

Jet データベース エンジンでは、特定の内部処理にコンピュータのシステム クロックを使用します。コンピュータのシステム クロックを読み取ることができませんでした。コンピュータをシャットダウンして、再起動してください。


ﾈｯﾄﾜｰｸ I/O ｴﾗｰ (Error 3566)

コンピュータとネットワークとの間の通信に問題が発生しました。ネットワークが正常に動作し、コンピュータにネットワーク ケーブルを正確に接続しているかどうかを確認してください。コンピュータをシャットダウンし、電源を切って再起動してください。


このﾚﾌﾟﾘｶはﾚﾌﾟﾘｶ ｾｯﾄから論理的に削除されているため、使用できません。(Error 3569)

使用しようとしたレプリカが削除されています。原因としては、指定された日数 (保有期間) の間に同期をとらなかった、または 2 つの異なるデザイン マスター レプリカでレプリカの同期をとったことが挙げられます。この場合、レプリカはコンピュータから削除されます。

他のレプリカとの同期をとらなかったレプリカの中にデータがある場合、そのデータをレプリカ セット内の他のレプリカに手動で入力してください。各テーブルの s_Generation フィールドを調べると、同期をとっていないデータを持つレコードを判断できます。s_Generation フィールドの値が 0 の場合、新しいレコードで、レプリカ セット内の他のレプリカとの同期をとっていないことを表します。

レプリカがデザイン マスター レプリカである場合、レプリカの構造をレプリカ セット内の他のレプリカと比較し、同期をとっていないデザインの変更があるかどうかを調べてください。


環境変数 TEMP で指定されているﾃﾞｨﾚｸﾄﾘの読み込み又は書き込み中に、ﾃﾞｨｽｸ I/O ｴﾗｰが発生しました。(Error 3572)

コンピュータ上の TEMP ディレクトリへのアクセスに問題があります。TEMP ディレクトリへの有効なパスを設定しているかどうかを確認してください。


ｺﾝﾃﾅ <ｺﾝﾃﾅ名> 中のｵﾌﾞｼﾞｪｸﾄ <ｵﾌﾞｼﾞｪｸﾄ名> をﾚﾌﾟﾘｹｰﾄ可能にできないため、新しいﾚﾌﾟﾘｶを作成できません。(Error 3490)

Microsoft Jet データベース エンジンではレプリカの作成中でした。エラー メッセージに表示されるオブジェクトおよびコンテナを処理しようとして失敗しました。


ﾃﾞｰﾀﾍﾞｰｽをﾚﾌﾟﾘｹｰﾄ可能にすることができません。(Error 3455)

Microsoft Jet データベース エンジンでは、オブジェクトをレプリケート可能にする処理中でした。必要なリソースが不足したために処理は失敗しました。対象のオブジェクトがテーブルの場合、レプリケーション後のフィールド総数が 255 を超えないこと、およびレコード内のバイト総数が 2,048 を超えないことを確認してください。


ﾃﾞｰﾀﾍﾞｰｽをﾚﾌﾟﾘｹｰﾄ可能にする前に、排他ﾓｰﾄﾞで開く必要があります。(Error 3491)

共有モードで開いたデータベースをレプリケート可能にしようとしました。いったんデータベースを閉じてから、排他モードで再度開き、データベースをレプリケート可能にしてください。


ﾚﾌﾟﾘｶのﾃﾞｻﾞｲﾝを変更することはできないため、同期をとることができませんでした。(Error 3492)

Microsoft Jet データベース エンジンは、レプリカの 1 つについてデータベースのデザインを更新しようとしました。デザインを更新できない場合、次のような理由などが考えられます。

レプリケート可能なテーブルの名前が、既存のローカル テーブルの名前と同じ場合があります。

更新するオブジェクトは、既にレプリカで開いています。

同期失敗に関する情報の詳細については、MSysSchemaProb テーブルを参照してください。


実行しようとした操作は、ﾚﾌﾟﾘｶを含む既存の操作と矛盾します。(Error 3460)

他のユーザーまたは他のアプリケーションが、既にレプリカに対して同じ操作を実行しています。しばらくしてから、再度操作を行ってください。


ﾃﾞｰﾀﾍﾞｰｽをﾚﾌﾟﾘｹｰﾄ可能に設定した後で、ﾚﾌﾟﾘｹｰﾄ不可能に設定しなおすことはできません。(Error 3459)

Replicable プロパティを真 (True) に設定してレプリケート可能に設定したデータベースは、レプリケート不可能に設定することはできません。データベースの Replicable プロパティを偽 (False) または他の値に設定しても、レプリケート可能なデータベースには適用されません。プロパティ、フィールド、テーブルなど、レプリケーションに関連する特性を持たないデータベースのコピーを使用する場合は、最初にレプリケート可能な形式に変換する前に作成したデータベースのバックアップ コピーを開いてください。


ﾃﾞｰﾀﾍﾞｰｽの KeepLocal ﾌﾟﾛﾊﾟﾃｨを設定することはできません。このﾌﾟﾛﾊﾟﾃｨは、ﾃﾞｰﾀﾍﾞｰｽ中のｵﾌﾞｼﾞｪｸﾄに対してのみ設定できます。(Error 3458
ﾃﾞｰﾀﾍﾞｰｽの KeepLocal ﾌﾟﾛﾊﾟﾃｨを設定することはできません。このﾌﾟﾛﾊﾟﾃｨは、ﾃﾞｰﾀﾍﾞｰｽ中のｵﾌﾞｼﾞｪｸﾄに対してのみ設定できます。(Error 3458)

レプリケート不可能なデータベース内のオブジェクトに対して、KeepLocal プロパティを真 (True) に設定します。このプロパティをデータベース全体に対して設定することはできません。


ｺﾝﾃﾅ <ｺﾝﾃﾅ名> 中のｵﾌﾞｼﾞｪｸﾄ <ｵﾌﾞｼﾞｪｸﾄ名> をﾚﾌﾟﾘｹｰﾄ可能にすることができません。(Error 3456)

Microsoft Jet データベース エンジンでは、オブジェクトをレプリケート可能にする処理中でした。オブジェクトを操作するリソースが不足しために処理は失敗しました。対象のオブジェクトがテーブルの場合、レプリケーション後のフィールド総数が 255 を超えないこと、およびレコード内のバイト総数が 2,048 を超えないことを確認してください。フィールド数および文字数がこの制限に達していない場合は、レコードのサイズを小さくしてください。


ﾚﾌﾟﾘｶの名前または ID が、現在管理されているﾚﾌﾟﾘｶと一致しません。(Error 3520)

予期しないエラーが発生しました。詳細については、マイクロソフト社のテクニカル サポートにご連絡ください。


同期を開始する共通点がないため、この 2 つのﾚﾌﾟﾘｶの同期をとることはできません。(Error 3521)

この 2 つのレプリカの同期を最後にとられてから、時間が経過しすぎています。Microsoft Jet データベース エンジンでは、データベースの内容または構造に変更を適用しようとしましたが、参照する共通点がありません。


ｼｽﾃﾑ ｵﾌﾞｼﾞｪｸﾄ用に指定した名前は既に使われています。(Error 3526)

予期しないエラーが発生しました。詳細については、マイクロソフト社のテクニカル サポートにご連絡ください。


ｲﾍﾞﾝﾄの待ち時間は終了しました。(Error 3531)

予期しないエラーが発生しました。詳細については、マイクロソフト社のテクニカル サポートにご連絡ください。


ﾌﾟﾛｾｽが終了した後も、このﾌﾟﾛｾｽが使用したｼｽﾃﾑ ｵﾌﾞｼﾞｪｸﾄが存在します。(Error 3533)

予期しないエラーが発生しました。詳細については、マイクロソフト社のテクニカル サポートにご連絡ください。


同期をとろうとした 2 つのﾚﾌﾟﾘｶは、異なるﾚﾌﾟﾘｶ ｾｯﾄのものです。(Error 3545)

異なるレプリカ セットからの 2 つのレプリカについて同期をとることはできません。選択した、同期をとるレプリカが適切かどうかを確認してください。


実行しようとしたﾃﾞｰﾀ交換の種類が不正です。(Error 3546)

パラメータの種類が無効なため、要求される交換を実行できません。プログラムの中で有効な交換の種類を使用してください。


GUID が一致しないか、指定した GUID が見つかりません。(Error 3548)

予期しないエラーが発生しました。詳細については、マイクロソフト社のテクニカル サポートにご連絡ください。


指定したﾌｧｲﾙ名が長すぎます。(Error 3549)

短いファイル名を使用してください。


指定のﾃﾞｨｽｸ ﾄﾞﾗｲﾌﾞを読み取ることができません。(Error 3465)

アクセスしようとしたディスクがフロッピー ディスクの場合には、ディスク ドライブのドアが閉じているかどうかを確認してください。アクセスしようとしたディスクがハード ディスクの場合には、ディスクに障害がある場合があります。


書き込みを行おうとしたﾃﾞｨｽｸ ﾄﾞﾗｲﾌﾞはいっぱいです。(Error 3575)

操作に必要なディスク容量が不足しています。不要なファイルをディスクから削除して、操作に必要な容量を開放してください。保存するまたは処理するファイルの容量を超える容量を確保してください。


開こうとしたﾃﾞｰﾀﾍﾞｰｽは、既に他のｱﾌﾟﾘｹｰｼｮﾝが使用しています。(Error 3576)

データ ベースを排他モードで開こうとしたときに、他のアプリケーションがそのデータ ベースを使用している場合があります。データ ベースを共有モードで開こうとしたときには、他のアプリケーションがそのデータ ベースを排他モードで使用している場合があります。このデータ ベースを使用している他のアプリケーションを終了して再度操作を行ってください。


DLL <ﾌｧｲﾙ名> が見つかりません。(Error 3463)

指定した .DLL ファイルがパスにあることを確認してください。


ﾊﾟｽ <ﾊﾟｽ名> のﾃﾞｨｽｸがいっぱいです。(Error 3472)

ディスク ドライブからファイルを削除して、ディスク容量を開放してください。


必要なﾘｿｰｽがないため、指定したｵﾌﾞｼﾞｪｸﾄをﾚﾌﾟﾘｹｰﾄ可能にすることができません。(Error 3489)

予期しないエラーが発生しました。詳細については、マイクロソフト社のテクニカル サポートにご連絡下さい。


ﾚﾌﾟﾘｶのﾌﾙ ﾊﾟｽを取得できません。(Warning 3499)

予期しない警告が発生しました。詳細については、マイクロソフト社のテクニカル サポートにご連絡下さい。


ﾚｼﾞｽﾄﾘ ﾊﾟﾗﾒｰﾀの値が、指定できる最大値を超えています。(Error 3552)

レジストリの各引数の値が最大値です。使用しようとしている設定値は、設定できる最大値を超えています。設定する引数の大きさの制限を確認してください。


同期をとろうとした 2 つのﾚﾌﾟﾘｶは同じ ReplicaID を持っています。(Error 3560)

レプリカの同期をとるには、別のレプリカを使用してください。


同期をとろうとした 2 つのﾚﾌﾟﾘｶは両方ともﾃﾞｻﾞｲﾝ ﾏｽﾀｰです。(Error 3561)

2 つのデザイン マスター レプリカのどちらか一方を削除してください。


ﾚﾌﾟﾘｶ用の有効な名前はすべて使われています。(Error 3555)

1 つのレプリカ セットで開くことができるレプリカ数の上限 (32,768) に達しました。新しいレプリカ セットを生成してください。


このﾚﾌﾟﾘｶの ReplicaID は、移動またはｺﾋﾟｰの処理中に、再度割り当てられました。(Warning 3574)

予期しない警告が発生しました。詳細については、マイクロソフト社のテクニカル サポートにご連絡下さい。


複数のﾃﾞｰﾀ ﾏｽﾀｰを設定できるﾚﾌﾟﾘｹｰﾄ可能ﾃﾞｰﾀﾍﾞｰｽを、1 つのﾃﾞｰﾀ ﾏｽﾀｰしか設定できないように変更することはできません。(Error 3593)

レプリケート可能なデータベースが、データをすべてのレプリカで一度に変更できるような、複数のデータ マスターを設定できるデータベースなのか、または、デザイン マスター レプリカでのみ変更できるような、1 つのデータ マスターのみ設定できるデータベースであるのかは、データベースが最初にレプリケート可能形式に変換されたときに決定します。データベースが変換された後では、単一データ マスターまたは複数データ マスターの属性は変更できません。


1 つのﾃﾞｰﾀ ﾏｽﾀｰしか設定できないﾚﾌﾟﾘｹｰﾄ可能ﾃﾞｰﾀﾍﾞｰｽを、複数のﾃﾞｰﾀ ﾏｽﾀｰを設定できるように変更することはできません。(Error 3594)

レプリケート可能なデータベースが、データをすべてのレプリカで一度に変更できるような、複数のデータ マスターを設定できるデータベースなのか、または、デザイン マスター レプリカでのみ変更できるような、1 つのデータ マスターのみ設定できるデータベースであるのかは、データベースが最初にレプリケート可能形式に変換されたときに決定します。データベースが変換された後では、単一データ マスターまたは複数データ マスターの属性は変更できません。


ﾃﾞｽﾃｨﾈｰｼｮﾝ ﾃﾞｨｽｸがいっぱいなため、書き込むことができません。(Error 3559)

予期しないエラーが発生しました。詳細については、マイクロソフト社のテクニカル サポートにご連絡下さい。


ﾚﾌﾟﾘｶのｼｽﾃﾑ ﾃｰﾌﾞﾙの信頼性がありません。このﾚﾌﾟﾘｶを使うことはできません。(Error 3595)

使用しようとしたレプリカは破損しています。Microsoft Jet データベース エンジンによってレプリカが要求されたときに、いくつかのシステム テーブルが変更される場合があります。このレプリカを削除して、新しいレプリカを使用して下さい。


ﾚﾌﾟﾘｹｰﾄ可能なﾃﾞｰﾀﾍﾞｰｽとﾚﾌﾟﾘｹｰﾄ不可能なﾃﾞｰﾀﾍﾞｰｽの間で同期をとることはできません。ﾃﾞｰﾀﾍﾞｰｽ <ﾃﾞｰﾀﾍﾞｰｽ名> はﾚﾌﾟﾘｹｰﾄ不可能です。(Erro
ﾚﾌﾟﾘｹｰﾄ可能なﾃﾞｰﾀﾍﾞｰｽとﾚﾌﾟﾘｹｰﾄ不可能なﾃﾞｰﾀﾍﾞｰｽの間で同期をとることはできません。ﾃﾞｰﾀﾍﾞｰｽ <ﾃﾞｰﾀﾍﾞｰｽ名> はﾚﾌﾟﾘｹｰﾄ不可能です。(Error 3605)

レプリケート可能なデータベースとレプリケート不可能なデータベースの間で同期をとろうとしたか、2 つのレプリケート不可能なデータベースの間で同期をとろうとしました。同期をとれるのは、同一のレプリケート可能なデータベースから作成されたレプリカだけです。

データベースの 1 つが既にレプリケートされている場合、2 つめのデータベースはそのデータベースのレプリカとして作成してください。

データベースが両方ともレプリケートされていない場合は、一方のデータベースを選択し、レプリカ セットのデザイン マスターとして使用してください。レプリケートする前の 2 つのデータベースのもう一方をレプリケートして 2 つのデータベースの同期をとらないでください。正確に同期をとるには、2 つめのデータベースは 1 つめのデータベースのレプリカである必要があります。


ﾒﾓﾘ不足のため、操作を完了できません。(Error 3584)

データ ベースをレプリケートするために必要なメモリが不足しています。他のアプリケーションを終了してから、再度操作を行ってください。


ﾚﾌﾟﾘｹｰｼｮﾝ ｼｽﾃﾑ ﾃｰﾌﾞﾙ <ﾃｰﾌﾞﾙ名> は既に使われているため、開くことができません。(Error 3623)

処理に必要なシステム テーブルは既に使用されています。しばらく待ってから、再度操作を行ってください。


ﾚﾌﾟﾘｹｰｼｮﾝのｼｽﾃﾑ列を更新できません。(Error 3577)

更新しようとした列はシステム列であり、読み取り専用です。


削除しようとしたﾚﾌﾟﾘｹｰｼｮﾝ ﾌﾟﾛﾊﾟﾃｨは参照のみ可能なため、削除できません。(Error 3607)

適切なプロパティを削除しているかどうかを確認してください。


ﾊﾟｽﾜｰﾄﾞで保護されているﾃﾞｰﾀﾍﾞｰｽをﾚﾌﾟﾘｹｰﾄ可能にすることはできません。また、ﾚﾌﾟﾘｹｰﾄ可能なﾃﾞｰﾀﾍﾞｰｽにﾊﾟｽﾜｰﾄﾞを設定することはできませ
ﾊﾟｽﾜｰﾄﾞで保護されているﾃﾞｰﾀﾍﾞｰｽをﾚﾌﾟﾘｹｰﾄ可能にすることはできません。また、ﾚﾌﾟﾘｹｰﾄ可能なﾃﾞｰﾀﾍﾞｰｽにﾊﾟｽﾜｰﾄﾞを設定することはできません。(Error 3592)

データ ベースのパスワードがレプリカにも設定してある場合、そのパスワードを解除してください。


GUID を作成できませんでした。(Error 3553)

予期しないエラーが発生しました。詳細については、マイクロソフト社のテクニカル サポートにご連絡下さい。


GUID 列にはｲﾝﾃﾞｯｸｽがありません。(Error 3550)

予期しないエラーが発生しました。詳細については、マイクロソフト社のテクニカル サポートにご連絡下さい。


AllPermissions プロパティ

関連項目	対象

ユーザー固有の権限およびグループ メンバーシップから継承される権限を含めて、Container オブジェクトまたは Document オブジェクトの現在の UserName プロパティに設定されているユーザーまたはユーザー グループに適用されるすべての権限を返します。

構文

object.AllPermissions

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Container オブジェクトまたは Document オブジェクトの戻り値は次のとおりです。

定数	内容

dbSecReadDef	列およびインデックスの情報を含むテーブルの定義を読み取ることができます。

dbSecWriteDef	列およびインデックスの情報を含むテーブルの定義を変更または削除することができます。

dbSecRetrieveData	Document オブジェクトからデータを取得することができます。

dbSecInsertData	レコードを追加できます。

dbSecReplaceData	レコードを変更できます。

dbSecDeleteData	レコードを削除できます。

さらに、Databases コレクションの Container オブジェクト、および Documents コレクションの Document オブジェクトの場合の戻り値は、次のとおりです。

定数	内容

dbSecDBAdmin	データベースをレプリケート可能にする権限と、データベースのパスワードを変更する権限をユーザーに与えます。

dbSecDBCreate	新しいデータベースを作成できます。これはシステム データベース SYSTEM.MDW の Databases コレクションの Container オブジェクトの場合のみ有効です。

dbSecDBExclusive	排他的にアクセスできます。

dbSecDBOpen	データベースを開くことができます。

解説

これらの定数は、オブジェクト ブラウザのデータ アクセス (DAO) オブジェクト ライブラリに一覧表示されます。

AllPermissions プロパティは Permissions プロパティとは異なります。Permissions プロパティでは、ユーザーに固有の権限だけを取得できます。ただし、グループ内のユーザーが保有している権限は含まれません。UserName プロパティにグループが設定されている場合、AllPermissions プロパティは Permissions プロパティと同じ値を返します。


関連項目

Permissions プロパティ

UserName プロパティ


 AllPermissions メソッドの対象

Container オブジェクト

Document オブジェクト


ConflictTable プロパティ

関連項目	例	対象

2 つのレプリカが同期している間に競合が発生すると、競合したデータベースのレコードはサイド テーブルに格納されます。ConflictTable プロパティは、サイド テーブルの名前を返します。サイド テーブルが存在しない場合、あるいはデータベースがレプリケート不可能な場合、長さ 0 の文字列を返します。

構文

object.ConflictTable

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

別のレプリカを使用している 2 人のユーザーがデータベースの同じレコードを変更した場合、一方のユーザーが行った変更は、もう一方のレプリカには反映されません。このため、変更に失敗したユーザーは、競合を解決する必要があります。

競合はフィールド間で発生するのではなく、レコード間で発生します。たとえば、あるユーザーが Address フィールドを変更し、別のユーザーが同じレコードの Phone フィールドを更新した場合、どちらかの変更が拒否されます。競合はレコード間で発生します。成功した変更と拒否された変更によって、実際に情報の競合が引き起こされる可能性は低い場合にも、拒否が発生します。

交換の過程では、レコードの競合の処理を、変更が成功していればテーブルに格納されていたはずの情報を含む競合テーブルを作成することによって行います。競合テーブルを 1 行ずつ調べ、必要に応じて修正を行ってください。

サイド テーブル名はすべて xxxx _conflict になります。xxxx は、テーブル名の最大の長さに合わせて切り捨てられた元のテーブルの名前です。


ConflictTable プロパティの例

次のプログラムでは、レプリカが同期している間に更新されなかったレコードを含む競合テーブルの名前を検索し、競合を解決するために記述したルーチンを呼び出して競合テーブルのレコードを削除し、すべてのレコードの処理が終了した後で、競合テーブルを削除します。

Sub Resolve (dbsResolve As Database)

Dim tdfTest As TableDef, rstConflict As Recordset

For Each tdfTest In dbsResolve.TableDefs

If (tdfTest.ConflictTable <> " ") Then

Set rstConflict = dbsResolve.OpenRecordset _

(tdfTest.ConflictTable)

rstConflict.MoveFirst	' 各レコードを処理します。

While Not rstConflict.EOF

.

.	' 競合を解決します。

.

rstConflict.Delete	' 競合が発生したレコードを削除します。

rstConflict.MoveNext

Wend

rstConflict.Close

End If

Next tdfTest

End Sub


関連項目

同期の競合の解決


ConflictTable プロパティの対象

TableDef オブジェクト


GetRows メソッド

関連項目	例	対象

Recordset オブジェクトの複数の行を取得して配列に格納します。

構文

myarray = object.GetRows (numrows)

GetRows メソッドの構文の指定項目は次のとおりです。

指定項目	内容

myarray	取得したデータを格納するバリアント型 (Variant) の変数名を指定します。

object 	オブジェクトへの参照を表すオブジェクト式を指定します。

numrows	取得する行数を指定します。

解説

GetRows メソッドを使用すると、Recordset オブジェクトからレコード全体を 1 つまたは複数コピーすることができます。このメソッドを使用すると、二次元の配列を取得できます。次のように、1 つめの添え字を使用してフィールドを指定し、2 つめの添え字を使用して行番号を指定します。

avarRecords(intField, intRecord)

返された 2 行めの列の最初のフィールドの値を取得するには、次のように記述します。

field1 = avarRecords(0,1)

返された 1 行めの列の 2 番めのフィールドの値を取得するには、次のように記述します。

field2 = avarRecords(1,0)

取得できる行数よりも多い行数を指定した場合、取得できるな行数だけが返されます。配列の大きさは返された行数によって決定されます。実際に返された行数を調べるには、Ubound プロパティを使用してください。たとえば、varA というバリアント型変数に取得結果を格納した場合、実際に取得した行数を調べるには、次のように記述します。

numReturned = Ubound(varA,2) + 1

+ 1 を指定するのは、取得した最初のデータが配列の 0 番めの要素に格納されるためです。使用可能なメモリによって、取得できる行数は制限されます。したがって、アプリケーションに合わせて取得する行数を決定する必要があります。大きなテーブルの場合、GetRows メソッドを使用して取得したテーブル全体を配列に格納することができないことがあります。

配列には、メモ型およびロング バイナリ型のフィールドを含むレコードセットのすべてのフィールドが取得されるので、取得する列を限定するクエリーを使用する必要がある場合もあります。

GetRows メソッドを呼び出した後のカレント レコードは、次の読み込まれていない行に移動します。つまり、GetRows メソッドを使用すると、行数を指定して Move メソッドを実行した場合と同じようにカレント レコードの位置が移動します。

GetRows メソッドを複数回呼び出してすべての行を取得する場合、EOF プロパティを使用して、カレント レコードの位置が Recordset オブジェクトの末尾のレコードより後ろにあるかどうかを確認してください。Recordset オブジェクトの末尾のレコードよりも後ろ、または指定した範囲に取得できない行が存在する場合、GetRows メソッドは、指定した行数よりも少ない行を返します。たとえば、取得する 10 個のレコードのうち 5 番めのレコードが取得できない場合、GetRows メソッドは 4 つのレコードを返して、5 番めのレコードをカレント レコードにします。実行時エラーは発生しません。このような動作は、ダイナセットのレコードが他のユーザーによって削除された場合に発生する可能性があります。


関連項目

BOF、EOF プロパティ

FillCache メソッド

Move メソッド (データ アクセス)

Value プロパティ (データ アクセス)


 GetRows メソッドの対象

Recordset オブジェクト


GetRows メソッドの例

次のプログラムでは、SQL ステートメントを使用してテーブルのフィールドを取得し、レコードを選択して二次元の配列に格納します。GetRows メソッドを使用する場合、配列の次元またはサイズを指定する必要はありません。レコードを取得するときに、次元およびサイズの指定が自動的に行われます。このプログラムでは、取得した Recordset オブジェクトのデータを 1 度 GetRows メソッドで読み込むだけなので、前方スクロール スナップショットを使用します。

Dim dbsCurrent As Database, rstEmployee As Recordset

Dim avarRecords As Variant

Dim intFields As Integer, intRows As Integer

dbsCurrent = CurrentDB()

Set rstEmployee = dbsCurrent.OpenRecordset("SELECT FirstName, " & _

"LastName, SSN FROM Employees", dbOpenSnapshot + _

dbForwardOnly)

intField = 0

intRecord = 0

avarRecords = rstEmployee.GetRows(50)

...

...	' 変数 intField および intRecord を配列のインデックスとして使用し、

...	' 取得したレコードの列挙、特定の値の検索などを行います。


Inherit プロパティ

関連項目	例	対象

新しい Document オブジェクトが Permissions プロパティの既定の設定値を継承するかどうかを決定する値を返します。

構文

object.Inherit

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

戻り値のデータ型はブール型 (Boolean) です。

解説

新しい Document オブジェクトが作成したときに与えられる権限を定義するには、Inherit プロパティを Permissions プロパティと共に使用します。Container オブジェクトの Inherit プロパティを真 (True) に設定した後で、権限を設定すると、その Container オブジェクト内で新しく作成されるすべての Document オブジェクトに同じ権限が設定されます。この方法は、オブジェクトの権限をあらかじめ設定しておく場合に役立ちます。

ただし、Inherit プロパティを設定しても、Container オブジェクト内の既存の Document オブジェクトの設定は変更されません。Inherit プロパティを真 (True) にし、新しい権限を設定していた場合、Container オブジェクト内のすべての既存の Document オブジェクトのすべての権限は変更されません。Inherit プロパティを設定した後で新しく作成した Document オブジェクトにだけ Permissions プロパティの設定値が継承されます。


Inherit プロパティの例

次のプログラムでは、コンテナである Table オブジェクトの Inherit プロパティを真 (True) に設定した後、Document オブジェクトのセキュリティ設定をユーザーが変更できるように Permissions プロパティを設定します。

Dim dbsBiblio As Database, conTables As Container

Set dbsBiblio =  DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")

Set conTables = dbsBiblio.Containers("Tables")

conTables.Inherit = True

conTables.Permissions = dbSeeWriteSec


関連項目

Document オブジェクト、Documents コレクション

Permissions プロパティ


Inherit プロパティの対象

Container オブジェクト


Synchronize メソッド

関連項目	対象

現在のレプリケート可能なデータベースと、引数 pathname に対応する .MDB ファイルのデータベースの同期をとります。引数 exchange の指定に従って、3 種類の情報交換を実行できます。この引数を省略すると、双方向 (インポートとエクスポート) の交換が行われます。

構文

database.Synchronize(pathname [,exchange])

Synchronize メソッドの構文の指定項目は次のとおりです。

指定項目	内容

database	同期をとるレプリカ名を指定します。

pathname	引数 database で指定したデータベースと同期をとるデータベースのパスを指定します。Unicode またはネットワーク ディレクトリ名を含めて指定できます。拡張子 .MDB は省略できます。

exchange	2 つのデータベース間で、変更内容の同期をとる方向を示す定数を指定します。以下の整数型 (Integer) の定数のいずれかを指定できます。

定数 dbRepExportChanges を指定すると、カレント データベースから、引数 pathname で指定したデータベースに変更内容を送ることができます。

定数 dbRepImportChanges を指定すると、引数 pathname で指定したデータベースから変更内容を受け取ることができます。

(既定値) 定数 dbRepImExpChanges を指定すると、双方向の情報交換を行うことができます。

解説

Synchronize メソッドでは、データベースと引数 pathname で指定した .MDB ファイルの間で、データとスキーマの変更内容の交換を行います。通常、スキーマの変更内容が先に処理されます。データを交換するには、両方のデータベースが同じスキーマを持つ必要があります。たとえば、定数 dbRepExportChanges を指定して交換を行うと、データの変更内容は現在のレプリカから指定した送り先に送られるだけですが、現在のレプリカでスキーマの変更を引き起こす可能性があります。

引数 pathname で指定したレプリカは、同じレプリカ セットの一部である必要があります。2 つのレプリカの ReplicaID プロパティの設定値が同じ場合、あるいは両方ともデザイン マスタの状態である場合、同期をとることはできません。


関連項目

レプリカの同期化


Synchronize メソッドの対象

Database オブジェクト


MakeReplica メソッド

関連項目	対象

指定したファイル名を使用して、現在のレプリケート可能なデータベースに基づく新しいレプリカを作成します。

構文

database.MakeReplica(replica[, dbRepMakeReadOnly])

MakeReplica メソッドの構文の指定項目は次のとおりです。

指定項目	内容

database	既存のレプリケート可能な Database オブジェクトの名前を指定します。

replica	新しいレプリカを格納するパスとファイル名を指定します。既存のファイル名を指定すると、MakeReplica メソッドは失敗してエラー メッセージが返されます。

解説

定数 dbRepMakeReadOnly を指定した場合、新しく作成されたデータベースのレプリケート可能な要素は変更できません。

このメソッドが正しく機能するためには、ほとんどのレプリケーションを行うためのメソッドおよびプロパティと同様に、データベースがレプリケート可能である必要があります。


関連項目

レプリカの追加作成


MakeReplica メソッドの対象

Database オブジェクト


KeepLocal プロパティ

関連項目	対象

データベースをレプリケート可能な形式に変換するときに、ローカル化する TableDef オブジェクト、QueryDef オブジェクト、またはテーブル、クエリー、フォーム、レポート、マクロ、モジュールに対して、設定します。値の取得も可能です。

注意   QueryDef オブジェクトに CreateProperty メソッドを使って、このプロパティをセットアップする必要があります。

構文

object.KeepLocal [= boolean]

KeepLocal プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	オブジェクトがレプリカに対してローカルに管理されるかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	オブジェクトはローカル化され、その他のすべてのオブジェクトはレプリケート可能になります。ただし、レプリケート可能な形式に変換したオブジェクトに対して、KeepLocal プロパティを使用することはできません。

False	(既定値) オブジェクトはレプリケート可能なオブジェクトに変換されます。

解説

Database、TableDef、または QueryDef オブジェクトでは、オブジェクトの Properties コレクションに KeepLocal プロパティを作成し、追加します。

ホスト アプリケーションによって定義されるフォーム、レポート、マクロ、またはモジュールでは、各オブジェクトを表す Document オブジェクトの Properties コレクションに KeepLocal プロパティを作成し、追加します。たとえば、次のコードではモジュールを表す Document オブジェクトの Properties コレクションに KeepLocal プロパティを追加しています。

Dim dbs as database, doc as document, prp as property

Set dbs = currentdb

set doc = dbs.Containers!Modules.Documents![ユーティリティ関数]

set prp = doc.CreateProperty("KeepLocal", dbText, "T")

doc.properties.append prp

KeepLocal プロパティを設定する前に、Replicable プロパティの値を確認してください。

ローカル オブジェクトは作成元のレプリカに残り、レプリカ セットにはコピーされません。レプリカ セットに新しいレプリカが作成されるたびに、レプリカ元のレプリケート可能なオブジェクトはすべて新しいレプリカに含まれますが、ローカル オブジェクトは含まれません。

KeepLocal プロパティが設定されているオブジェクトは、他のオブジェクトから KeepLocal プロパティを継承している場合があります。しかし、他のオブジェクトで設定されたプロパティの値は、ローカル化するオブジェクトの動作に影響を与えません。したがって、直接各オブジェクトにプロパティを設定する必要があります。


関連項目

データベースのレプリケート可能形式への変換

データベースをレプリケート可能形式に変換する前にオブジェクトをローカルに設定する

オブジェクトをレプリケート可能またはローカルに設定する

Replicable プロパティ

ReplicaID プロパティ


KeepLocal プロパティの対象

Database オブジェクト


Replicable プロパティ

関連項目	対象

データベースまたはデータベース内のオブジェクトがレプリケート可能であるかどうかを設定します。値の取得も可能です。

Database オブジェクトの場合、Replicable プロパティはフィールド、テーブルおよびプロパティをデータベースに追加します。

TableDef オブジェクト、QueryDef オブジェクト、またはデータベースのテーブル、クエリー、フォーム、レポート、マクロ、モジュールの場合、Replicable プロパティはオブジェクトをローカルからレプリケート可能に変更します。

注意   QueryDef オブジェクトに CreateProperty メソッドを使って、このプロパティをセットアップする必要があります。

構文

object.Replicable [= boolean]

Replicable プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	データベースまたはローカル オブジェクトのレプリカを作成するかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	データベースまたはローカル オブジェクトはレプリケート可能です。Database オブジェクトの場合、設定を変更できません。その後で、このプロパティを偽 (False) に設定しようとすると、エラー メッセージが返されます。データベースのオブジェクトの場合、オブジェクトおよびそのオブジェクトに行った変更がレプリカ セットのすべてのレプリカで使用できるようになります。

False	(既定値) データベースまたはローカル オブジェクトはレプリケート不可能です。

解説

Replicable プロパティを設定する前に、そのデータベースのバックアップを作成してください。Replicable プロパティの設定に失敗した場合は、そのデータベースを削除し、バックアップから新しいコピーを作成してから、もう一度設定してください。

Database、TableDef、または QueryDef オブジェクトでは、オブジェクトの Properties コレクションに Replicable プロパティを作成し、追加します。

ホスト アプリケーションによって定義されるフォーム、レポート、マクロ、またはモジュールでは、オブジェクトを表す Document オブジェクトの Properties コレクションに Replicable プロパティを作成し、追加します。たとえば、次のコードではモジュールを表す Document オブジェクトの Properties コレクションに Replicable プロパティを追加しています。

Dim dbs as database, doc as document, prp as property

Set dbs = currentdb

set doc = dbs.Containers!Modules.Documents![Utility Functions]

set prp = doc.CreateProperty("Replicable", dbText, "T")

doc.properties.append prp

オブジェクトに Replicable プロパティが既に設定されている場合は、コードの中で Replicable プロパティを設定することはできません。

新しいテーブル、クエリー、フォーム、レポート、マクロ、モジュールをレプリカに作成すると、そのオブジェクトはローカルと見なされ、そのレプリカにのみ保存されます。他のレプリカのユーザーもそのオブジェクトを使用できるようにするには、そのオブジェクトをローカルからレプリケート可能に変更する必要があります。このためには、デザイン マスターにそのオブジェクトを作成するか、またはそのオブジェクトをデザイン マスターにインポートし、その後に Replicable プロパティに文字列 "T" を設定します。

Replicable プロパティが設定されているオブジェクトは、他のオブジェクトから Replicable プロパティを継承している場合があります。しかし、他のオブジェクトで設定されたプロパティの値は、ローカル化するオブジェクトの動作に影響を与えません。したがって、直接各オブジェクトにプロパティを設定する必要があります。


関連項目

データベースのレプリケート可能形式への変換

KeepLocal プロパティ

レプリカをレプリカ セットのデザイン マスターに設定する

レプリカの追加作成

オブジェクトをレプリケート可能またはローカルに設定する

ReplicaID プロパティ


Replicable プロパティの対象

Database オブジェクト


ReplicaID プロパティ

関連項目	対象

Microsoft Jet データベース エンジンによって作成される、レプリカを識別するための 16 バイトの OLE 2 GUID を返します。

構文

object.ReplicaID

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

ReplicaID プロパティを DesignMasterID プロパティと共に使用して、レプリカ セットのデザイン マスタを変更することができます。


関連項目

KeepLocal プロパティ

デザイン マスターの状態を他のレプリカに転送する

Replicable プロパティ

DesignMasterID プロパティ


ReplicaID プロパティの対象

Database オブジェクト


DesignMasterID プロパティ

関連項目	対象

Microsoft Jet データベース エンジン によって作成される、レプリカ セットのデザイン マスタ レプリカを識別するための 16 バイトの OLE 2 GUID を設定します。値の取得も可能です。

構文

object.DesignMasterID [= value]

DesignMasterID プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	デザイン マスタに指定するデータベース オブジェクトを表す 16 バイトの ReplicaID プロパティの値を指定します。

解説

DesignMasterID プロパティの設定値は、システム テーブル (MSysReplicas) に格納されます。次の例のように、DesignmasterID プロパティの値を別のデータベースの ReplicaID プロパティに設定すると、そのデータベースは、レプリカ セットのデザイン マスタの状態になります。

' 現在のデザイン マスタを排他モードで開きます。

Set dbs = DBEngine(0).OpenDatabase(strOldDM, True)

' 新しいデザイン マスタを開きます。

set newdmdb = DBEngine(0).OpenDatabase(strNewDB)

dbs.DesignmasterID = newdmdb.ReplicaID

dbs.Synchronize strNewDB,dbRepImpExpChanges

dbs.Close

newdmdb.Close

警告   このプロパティは、現在のデザイン マスタ レプリカにだけ設定してください。デザイン マスタ レプリカが既に存在する場合、別のレプリカにこのプロパティを設定すると、レプリカ セットが 2 つの矛盾するレプリカ セットに分割され、その後のデータの同期が妨げられる可能性があります。元のデザイン マスタ レプリカが失われたり削除されたりした場合にのみ、別のレプリカにこのプロパティを設定します。この場合、現在のレプリカを新しいデザイン マスタに指定します。


関連項目

KeepLocal プロパティ

デザイン マスターの状態を他のレプリカに転送する

レプリカをレプリカ セットのデザイン マスターに設定する

ReplicaID プロパティ

Replicable プロパティ


DesignMasterID プロパティの対象

Database オブジェクト


DataMode プロパティ

関連項目	対象

DB グリッド (DBGrid) コントロールが連結している状態、または連結していない状態 (非連結) で動作するかを設定します。このプロパティは、実行時には使えません。

設定値

DataMode プロパティの設定値は次のとおりです。

設定値	内容

0	連結したデータ ソースから有効なデータが表示されます。

1	連結していない DB グリッド コントロールのイベントを使用して、表示するデータの取得および更新が行われます。

解説

DB グリッド コントロールがデータ ソースに連結している場合、DataMode プロパティに 1 を設定するとエラーが発生します。


関連項目

RowBuffer オブジェクト

UnboundAddData イベント

UnboundDeleteRow イベント

UnboundReadData イベント

UnboundWriteData イベント


DataMode プロパティの対象

DB グリッド (DBGrid) コントロール


UnboundAddData イベント

関連項目	例	対象

データベースと連結していない DB グリッド (DBGrid) コントロールに行が新しく追加されるときに発生します。このイベントは、新しいデータ行をデータベースに追加する必要があることをアプリケーションに通知します。

構文

Private Sub object.UnboundAddData(rowbuf As RowBuffer, newrowbookmark As Variant)

UnboundAddData イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

rowbuf	取得したデータ行を格納する RowBuffer オブジェクトを指定します。

newrowbookmark	各データ行の識別子として固有のブックマークを指定します。

解説

取得する行数は、RowCount プロパティに指定します。このイベントの場合、一度に追加できる行数は 1 行です。したがって、常に、値は 1 に設定されます。

AllowAddNew プロパティが真 (True) の場合、データ セットに新しいデータ行を追加できます。

引数 rowbuf には、データ セットに書き込まれる 1 行のデータが格納されます。このイベントを終了する前に、引数 newrowbookmark に、新しく追加された行のブックマークを設定する必要があります。


UnboundAddData イベントの対象

DB グリッド (DBGrid) コントロール


関連項目

AllowAddNew プロパティ

Bookmark プロパティ (DB グリッド)

RowBuffer オブジェクト

RowCount プロパティ

UnboundDeleteRow イベント

UnboundReadData イベント

UnboundWriteData イベント


UnboundAddData イベントの例

次のプログラムでは、UnboundAddData イベントを使用して、データベースにデータ行を追加します。使用しているデータベースは、単純な配列です。

Private Sub DBGrid1_UnboundAddData(ByVal RowBuf As RowBuffer, NewRowBookmark As Variant)

RowCount = RowCount + 1

ReDim Preserve UserData(MAXCOLS, RowCount) ' 配列のデータベース。

NewRowBookmark = RowCount ' 最後の行にブックマークを設定します。

 ' 次のループで、データベースに新しいレコードを追加します。

For i% = 0 To MAXCOLS - 1

If Not IsNull(RowBuf.Value(0, i%)) Then

UserData(i%, RowCount - 1) = RowBuf.Value(0, i%)

End If

Next i%

End Sub


UnboundDeleteRow イベント

関連項目	例	対象

データベースと連結していない DB グリッド (DBGrid) コントロールからデータ行が削除されるときに発生します。このイベントは、データベースからデータ行を削除する必要があることをアプリケーションに通知します。

構文

Private Sub object.UnboundDeleteRow(bookmark As Variant)

UnboundDeleteRow イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

bookmark 	削除される行のブックマークを表す値を指定します。

解説

引数 bookmark は、UnboundReadData イベントで行が取得されたとき、または UnboundAddData イベントで行が追加されたときに指定されたブックマーク値に設定します。


関連項目

Bookmark プロパティ (DB グリッド)

UnboundAddData イベント

UnboundReadData イベント

UnboundWriteData イベント


UnboundDeleteRow イベントの対象

DB グリッド (DBGrid) コントロール


UnboundDeleteRow イベントの例

次のプログラムでは、UnboundDeleteRow イベントを使用して、データベースからデータ行を削除します。使用しているデータベースは、単純な配列です。

Private Sub DBGrid1_UnboundDeleteRow(Bookmark As Variant)

For i% = Bookmark + 1 To RowCount - 1 	' 前の行にブックマークを設定します。

For j% = 0 To MAXCOLS - 1

UserData(j%, i% - 1) = UserData(j%, i%)

Next j%

Next i%

RowCount = RowCount - 1

End Sub


UnboundReadData イベント

関連項目	例	対象

DB グリッド (DBGrid) コントロールの表示のスクロールなど、データベースと連結していない DB グリッド コントロールが表示用のデータを必要とするときに発生します。

構文

Private Sub object.UnboundReadData(rowbuf As RowBuffer, startlocation As Variant, readpriorrows As Boolean)

UnboundReadData イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

rowbuf 	取得したデータを格納する RowBuffer オブジェクトを指定します。取得する行数は、RowCount プロパティに指定します。

startlocation 	前方フェッチの場合は取得する行の直前、後方フェッチの場合は直後の行を表すブックマークを指定します。引数 startlocation が Null 値の場合、前方フェッチはデータ セットの先頭から、後方フェッチはデータ セットの末尾から発生します。

readpriorrows 	データを前方向に取得する場合は真 (True)、後方向に取得する場合は偽 (Fals) を指定します。

解説

取得されたデータは、DB グリッド コントロールのキャッシュに格納されます。

行バッファをすべて埋める必要はありません。返す行がまったくない場合もあります。要求した行数よりも少ない行が返されるように RowBuffer オブジェクトの RowCount プロパティに値を設定できます。この場合、DB グリッド コントロールは、指定された方向で、取得する行がこれ以上ないと判断します。したがって、すべての行を取得していない場合は、行バッファをすべて埋める必要があります。

取得する各行に、後で参照するために使用するブックマークを設定する必要があります。ブックマークを指定するには、取得する各行に、RowBuffer オブジェクトの Bookmark プロパティを設定します。データを指定するには、取得する行の各データ列に、RowBuffer オブジェクトの Value プロパティを設定します。


関連項目

Bookmark プロパティ (DB グリッド)

RowBuffer オブジェクト

UnboundAddData イベント

UnboundDeleteRow イベント

UnboundWriteData イベント

Value プロパティ (RowBuffer オブジェクト)


UnboundReadData イベントの対象

DB グリッド (DBGrid) コントロール


UnboundReadData イベントの例

次のプログラムでは、UnboundReadData イベントを使用して、データベースからデータ行を読み取ります。使用しているデータベースは、単純な配列です。

Private Sub DBGrid1_UnboundReadData(ByVal RowBuf As RowBuffer, StartLocation As Variant, ByVal ReadPriorRows As Boolean)

rowsFetched% = 0

If ReadPriorRows Then

incr% = -1

Else

incr% = 1

End If

If IsNull(StartLocation) Then

If ReadPriorRows Then

curRow% = RowCount - 1

Else

curRow% = 0

End If

Else

curRow% = StartLocation + incr%

End If

For i% = 0 To RowBuf.RowCount - 1

If curRow% < 0 Or curRow% >= RowCount Then Exit For

For j% = 0 To 3

RowBuf.Value(i%, j%) = UserData(j%, curRow%)

Next j%

RowBuf.Bookmark(i%) = curRow%

curRow% = curRow% + incr%

rowsFetched% = rowsFetched% + 1

Next i%

RowBuf.RowCount = rowsFetched%

End Sub


UnboundWriteData イベント

関連項目	例	対象

データベースと連結していない DB グリッド (DBGrid) コントロールが、データベースに書き込む必要のある、行全体の変更データを持つときに発生します。このイベントは、編集された既存のデータ行をデータベースで更新する必要があることをアプリケーションに通知します。

構文

Private Sub object.UnboundReadData(rowbuf As RowBuffer, writelocation As Variant)

UnboundWriteData イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

rowbuf	変更したデータ行を格納する RowBuffer オブジェクトを指定します。

writelocation	UnboundReadData イベントおよび UnboundWriteData イベントで指定されたデータ行の、固有のブックマークを表す値を指定します。

解説

一度に更新できるデータ行数は 1 行です。したがって、RowBuffer オブジェクトの RowCount プロパティの値は、常に、1 に設定されます。

UnboundWriteData イベントを取り消すには、RowBuffer オブジェクトの RowCount プロパティに 0 を設定します。この設定によって、書き込みの失敗を DB グリッド コントロール に対して知らせます。


関連項目

Bookmark プロパティ (DB グリッド)

RowBuffer オブジェクト

RowCount プロパティ

UnboundAddData イベント

UnboundDeleteRow イベント

UnboundReadData イベント


UnboundWriteData イベントの対象

DB グリッド (DBGrid) コントロール


UnboundWriteData イベントの例

次のプログラムでは、UnboundWriteData イベントを使用して、データベースからデータ行を書き込みます。使用しているデータベースは、単純な配列です。

Private Sub DBGrid1_UnboundWriteData(ByVal RowBuf As RowBuffer, WriteLocation As Variant)

s$ = "UnboundWriteData: " & WriteLocation

Debug.Print s$

For i% = 0 To MAXCOLS - 1

If Not IsNull(RowBuf.Value(0, i%)) Then

UserData(i%, WriteLocation) = RowBuf.Value(0, i%)

End If

Next i%

End Sub


RowBuffer オブジェクト

関連項目	プロパティ

RowBuffer オブジェクトを使用すると、取得した 1 行以上のデータを格納し、これをアプリケーションおよびデータベースに連結していない DB グリッド (DBGrid) コントロール間で転送することができます。

注  RowBuffer オブジェクトは、他のアプリケーションで使用できる挿入可能なオブジェクトではありません。データベースに連結していない DB グリッド コントロールでのみ使用できる内部クラスです。

構文

DBGrid.RowBuffer

解説

RowBuffer オブジェクトは、次の方法で使用します。

RowBuffer オブジェクトは、引数として UnboundReadData イベントに渡され、RowBuffer オブジェクトに 1 行以上のデータが格納されます。DB グリッド コントロールによってキャッシュにデータが格納されます。

DB グリッド コントロール内でデータが更新されると、RowBuffer オブジェクトが UnboundWriteData イベントに渡されます。一度に 1 つのデータ行だけが更新され、更新された行には、行が取得されたときに設定された元のブックマークが設定されます。

行が新しく追加されると、新しく追加されたデータが RowBuffer オブジェクトに格納され、UnboundAddData イベントに渡されます。

どの場合も、RowBuffer オブジェクトは、データベースに連結していない DB グリッド コントロールによってユーザーに渡されます。このデータのデータベースへの追加 (UnboundReadData イベントによって渡される場合)、またはデータベース内の既存のデータの更新 (UnboundWriteData、UnboundAddData、または UnboundDeleteRow イベントによって渡される場合) は、各アプリケーションで行う必要があります。


関連項目

RowCount プロパティ

UnboundAddData イベント

UnboundDeleteRow イベント

UnboundReadData イベント

UnboundWriteData イベント


RowBuffer オブジェクトのプロパティ

RowCount プロパティ

ColumnCount プロパティ

Bookmark プロパティ

ColumnName プロパティ

Value プロパティ


Bookmark プロパティ (DB グリッド)

関連項目	例	対象

データベースに連結していない DB グリッド (DBGrid) コントロールの RowBuffer オブジェクト内の、指定された行にブックマークを設定します。値の取得も可能です。

構文

object.Bookmark (row) [= value]

Bookmark プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

row	ブックマークを設定する行を整数で指定します。この値は、0 ～ RowCount プロパティの値 - 1 の範囲で指定します。

value	指定された row に対するブックマークをバリアント型 (Variant) で指定します。

解説

ブックマークには、各データ行を識別するユーザー定義の値が保持されています。これは、データベースの変更が要求される、データベースに連結していない DB グリッド コントロールのイベント内で渡されます。

UnboundReadData イベントを使用する場合、複数の行を使用するときは、各行に対してブックマークを設定する必要があります。

UnboundWriteData イベントでは、更新するデータ行を識別するために、ブックマークを渡します。

UnboundAddData イベントでは、追加する行を識別するために、ブックマークが渡されます。


関連項目

Bookmark プロパティ (DB グリッド)

RowCount プロパティ

UnboundAddData イベント

UnboundReadData イベント

UnboundWriteData イベント


Bookmark プロパティの対象

DB グリッド (DBGrid) コントロール

RowBuffer オブジェクト


Bookmark プロパティ (DB グリッド) の例

次のプログラムでは、手動でデータベースから行を削除できます。ユーザーが DB グリッド (DBGrid) コントロール内の行を削除すると、UnboundDeleteRow イベントが発生します。使用しているデータベースは、単純な配列です。次のコードは、ブックマークが UnboundDeleteRow イベント内の引数としてどのように渡され、削除する行を識別するかを示しています。

Private Sub DBGrid1_UnboundDeleteRow(Bookmark As Variant)

For i% = Bookmark + 1 To RowCount - 1

For j% = 0 to MAXCOLS - 1

UserData(j%, I% - 1) = UserData(j%, I%)

Next j%

Next I%


ColumnName プロパティ

関連項目	対象

データベースに連結していない DB グリッド (DBGrid) コントロール内の RowBuffer オブジェクト内で、指定された列の名前を返します。

構文

object.ColumnName (column)

ColumnName プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

column	必要な列の名前を文字列で指定します。

解説

指定された列の名前を取得できます。


関連項目

Bookmark プロパティ (DB グリッド)

RowCount プロパティ

UnboundAddData イベント

UnboundReadData イベント

UnboundWriteData イベント


ColumnName プロパティの対象

RowBuffer オブジェクト


ColumnCount プロパティ

関連項目	対象

データベースに連結していない DB グリッド (DBGrid) コントロール内の RowBuffer オブジェクトに含まれる列数を返します。

構文

object.ColumnCount

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。


関連項目

ColumnName プロパティ

DB グリッド (DBGrid) コントロール

RowCount プロパティ


ColumnCount プロパティの対象

RowBuffer オブジェクト


RowCount プロパティ

関連項目	例	対象

データベースに連結していない DB グリッド (DBGrid) コントロール内の RowBuffer オブジェクトに含まれる行数を設定します。値の取得も可能です。

構文

object.RowCount [= number]

RowCount プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照項目を表すオブジェクト式を指定します。

number	行数を長整数型 (Long) で指定します。

解説

UnboundWriteData イベントと共に使用する場合、このプロパティには書き込む行数を指定します。一度に書き込むことのできるデータの行数は 1 行なので、常に、RowCount プロパティに 1 を設定します。書き込み操作の失敗を表す場合には、0 に設定することもできます。

UnboundAddData イベントと共に使用する場合、一度に追加できる行は 1 行なので、常に、RowCount プロパティに 1 を設定します。追加操作の失敗を表す場合には、0 に設定することもできます。

UnboundReadData イベントと共に使用する場合、RowCount プロパティには、設定に必要な行数を指定します。この行を設定した後で、RowCount プロパティに、RowBuffer オブジェクトに実際に格納された行数を設定する必要があります。


関連項目

RowBuffer オブジェクト

UnboundAddData イベント

UnboundReadData イベント

UnboundWriteData イベント


RowCount プロパティの対象

RowBuffer オブジェクト


RowCount プロパティの例

次のプログラムでは、RowBuffer オブジェクトの RowCount プロパティを調べて、次の行を実行するかどうかを確認します。

For i% = 0 To RowBuf.RowCount - 1

If curRow% < 0 Or curRow% >= RowCount Then Exit For


Value プロパティ (RowBuffer オブジェクト)

関連項目	例	対象

データベースに連結していない DB グリッド (DBGrid) コントロールの RowBuffer オブジェクト内で、データ項目の値を設定します。値の取得も可能です。

構文

object.Value (row, column) [= value]

Value プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

row	項目の行番号を 0 ～ RowCount プロパティの値 - 1 の範囲で指定します。

column	項目の列番号を 0 ～ ColumnCount プロパティの値 - 1 の範囲で指定します。

value	引数 row および column に指定したセルに入力または表示するバリアント型 (Variant) の値を指定します。

解説

RowBuffer オブジェクトは、複数の列および複数の行のデータを含むことができます。

UnboundWriteData イベントおよび UnboundAddData イベントと共に使用する場合、ユーザーは、Value プロパティの設定値を連結していない DB グリッド コントロールに入力します。この値を使用して、データベースの更新を行います。

UnboundReadData イベントと共に使用する場合、連結していない DB グリッド コントロールが要求する引数 row および column の値を設定します。


関連項目

DB グリッド (DBGrid) コントロール

UnboundAddData イベント

UnboundReadData イベント

UnboundWriteData イベント


Value プロパティ (RowBuffer オブジェクト) の対象

RowBuffer オブジェクト


Value プロパティ (RowBuffer オブジェクト) の例

次のプログラムでは、Value プロパティに含まれている、前に読み取られた行を、データベースに追加します。なお、このデータベースは単純な配列です。次のコード例では、RowBuffer オブジェクトが行を含む場合 (Not IsNull)、行がデータベースに書き込まれます。

For i% = 0 To MAXCOLS - 1

If Not IsNull(RowBuf.Value(0, i%)) Then

UserData(i%, RowCount - 1) = RowBuf.Value(0, i%)

End If

Next i%


Array 関数

関連項目	例

配列が格納されたバリアント型 (Variant) を返します。

構文

Array(arglist)

引数 arglist には、バリアント型に格納される配列の各要素に代入する、値のリストを指定します。値を複数指定するときは、カンマ (,) で区切ります。引数 arglist を指定しない場合は、長さ 0 の配列が作成されます。

解説

配列を格納したバリアント型は、バリアント型の要素を持つ配列とは概念的に異なりますが、各要素に対する処理方法は同じです。要素を参照するには、変数名の後にかっこを付け、かっこの中に参照したい要素のインデックス番号を指定します。次の例の最初のステートメントでは、バリアント型の変数 A を宣言しています。2 番めのステートメントでは、変数 A に配列を代入しています。最後のステートメントでは、配列の 2 番めの要素に格納されている値を、別の変数に代入しています。

Dim A As Variant

A = Array(10,20,30)

B = A(2)

Array 関数で作成された配列のインデックスの最小値は、Option Base ステートメントの設定によって決まります。

注   配列として宣言していないバリアント型に、配列を格納することができます。また、バリアント型変数には、固定長文字列およびユーザー定義型以外の型の配列を格納できます。


関連項目

Deftype ステートメント

Dim ステートメント

Let ステートメント

Option Base ステートメント

バリアント型 (Variant)


Const ステートメント

関連項目	例

リテラル値の代わりに使う定数を宣言します。“リテラル値”とは、256、-20、"終了" など、コード内に直接記述して数値や文字列を表すための値を指します。

構文

[Public | Private] Const constname [As type] = expression

Const ステートメントの指定項目は次のとおりです。

指定項目	内容

Public	すべてのモジュール内のすべてのプロシージャから参照できる定数を宣言するときに指定します。モジュール レベルで使用します。プロシージャ内では指定できません。

Private	宣言が行われたモジュール内のすべてのプロシージャからのみ参照できる定数を宣言するときに指定します。モジュール レベルで使用します。プロシージャ内では指定できません。

constname	定義する定数の名前を指定します。変数の標準的な名前付け規則に従って付けてください。

type	定数のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (String)、バリアント型 (Variant) のいずれかを指定できます。As type 節は、宣言する各定数に指定してください。

expression	リテラル値、その他の定数、算術演算子や論理演算子 (Is を除く) を組み合わせた式を指定します。

解説

既定では、定数はプライベート定数として扱われます。プロシージャ内では、定数は常にプライベート定数として扱われ、適用範囲 (スコープ) を変更することはできません。標準モジュールでは、モジュール レベル定数の既定の適用範囲をキーワード Public で変更することができます。一方、クラス モジュールでは、定数はプライベート定数としてのみ使用でき、適用範囲をキーワード Public で変更することはできません。

複数の定数定義をカンマ (,) で区切ると、1 行で定義できます。このように複数の定数定義を 1 行で行った場合、キーワード Public やキーワード Private を指定すると、すべての定数定義に対して、指定されたキーワードが適用されます。

定数に代入する式の中に、変数、ユーザー定義関数、Visual Basic の組み込み関数 (Chr など) を含めることはできません。

ヒント   定数を使うと、プログラムがわかりやすく、修正もしやすくなります。定数は、変数と違ってプログラムの実行中に値を変更することはできません。

As type で定数のデータ型を明示的に宣言しない場合は、指定した式の評価の結果、最も適切なデータ型が割り当てられます。

Sub プロシージャ、Function プロシージャ、Property プロシージャ内で宣言した定数は、そのプロシージャ内でのみ参照できます。プロシージャの外で宣言された定数は、宣言されたモジュール内ならばどこからでも参照できます。定数は、式が使える場所であればどこででも使えます。


関連項目

#Const ディレクティブ

Deftype ステートメント

Function ステートメント

Let ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


Declare ステートメント

関連項目	例

ダイナミック リンク ライブラリ (DLL) 内の外部プロシージャへの参照を宣言します。モジュール レベルで使用します。

構文 1

[Public | Private ] Declare Sub name Lib "libname" [Alias "aliasname" ][([arglist])]

構文 2

[Public | Private ] Declare Function name Lib "libname" [Alias "aliasname" ] [([arglist])][As type]

Declare ステートメントの指定項目は次のとおりです。

指定項目	内容

Public	すべてのモジュール内のすべてのプロシージャから参照できるプロシージャを宣言するときに指定します。

Private	宣言が行われたモジュール内でのみ参照できるプロシージャを宣言するときに指定します。

Sub	外部プロシージャが値を返さないことを示します。

Function	外部プロシージャが値を返し、式の中で使えることを示します。

name	任意の有効なプロシージャ名を指定します。

Lib	宣言するプロシージャが DLL に含まれていることを示します。Lib 節は、すべての宣言において必要です。

libname	宣言するプロシージャが含まれている DLL の名前を指定します。

Alias	呼び出すプロシージャが、DLL の中で別の名前を持つことを示します。Alias を指定することにより、外部プロシージャの名前が Visual Basic のキーワードと同じ場合でも、そのプロシージャを呼び出すことができます。Alias は、DLL プロシージャの名前がパブリック変数やパブリック定数、同じ適用範囲内の他のプロシージャと同じときにも使えます。また、DLL の名前付け規則で許されない文字が DLL プロシージャ名に含まれているときにも便利です。

aliasname	DLL 内のプロシージャの名前を指定します。

先頭の文字が # でない場合は、引数 aliasname には DLL 内で定義されているプロシージャ名を指定します。先頭の文字が # の場合は、2 文字め以降の文字は DLL 内でのプロシージャの登録番号を指定します。

arglist	プロシージャを呼び出すときに、プロシージャに渡される引数を表す変数のリストを指定します。

type	Function プロシージャの戻り値のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (String) (可変長のみ)、オブジェクト型、バリアント型 (Variant)、ユーザー定義型、オブジェクトの種類のいずれかを指定できます。

引数 arglist の構文と指定項目は次のとおりです。

[Optional][ByVal | ByRef][ParamArray] varname[( )][As type]

指定項目	内容

Optional	指定した引数が省略可能であることを示します。キーワード Optional を指定した場合は、引数 arglist のそれ以降の引数も省略可能でなければならず、すべてキーワード Optional を付けて宣言しなければなりません。キーワード Optional が指定された引数はすべてバリアント型でなければなりません。キーワード ParamArray を使った場合は、どの引数に対してもキーワード Optional は指定できません。

ByVal	その引数が、値渡しで渡されることを示します。

ByRef	その引数が、参照渡しで渡されることを示します。

ParamArray	引数 arglist の最後に指定する引数としてのみ使用され、その引数がバリアント型の要素を持つ省略可能 (Optional) な配列であることを示します。キーワード ParamArray を使うと、任意の数の引数を渡すことができます。ByVal、ByRef、Optional の各キーワードを一緒に使うことはできません。

varname	プロシージャに渡す引数を表す変数の名前を指定します。変数の標準的な名前付け規則に従って指定してください。

type	プロシージャに渡す引数のデータ型を指定します。バイト型、ブール型、整数型、長整数型、通貨型、単精度浮動小数点数型、倍精度浮動小数点数型、日付型、文字列型 (可変長のみ)、オブジェクト型、バリアント型 、ユーザー定義型、オブジェクトの種類のいずれかを指定できます。

解説

Function プロシージャでは、プロシージャのデータ型が戻り値のデータ型になります。Function プロシージャの戻り値のデータ型の指定は、引数 arglist の後の As 節で行います。引数 arglist 内では、As 節を使ってプロシージャに渡す引数のデータ型を指定できます。また引数 arglist 内では、標準のデータ型以外に As Any も指定できます。Any を指定すると、データ型のチェックを禁止し、任意のデータ型をプロシージャに渡せます。

かっこだけで引数 arglist を省略すると、Sub プロシージャまたは Function プロシージャは引数を取らず、引数が渡されないように引数を調べることを表します。次の例では、Sub プロシージャ First は引数を取りません。引数を指定して First を呼び出すと、エラーが発生します。

Declare Sub First Lib "MyLib" ()

引数リストを指定すると、そのプロシージャが呼び出されるたびに引数の個数とデータ型が調べられます。次の例では、First は長整数型の引数を 1 つ取ります。

Declare Sub First Lib "MyLib" (X As Long)

注   Declare ステートメントのパラメータ リストの中に固定長文字列を指定することはできません。プロシージャに渡せるのは可変長文字列だけです。プロシージャの引数として固定長文字列を指定することはできますが、その場合は、プロシージャに渡される前に可変長文字列に変換されます。

外部プロシージャを呼び出す場合、外部プロシージャによって 0 の値を持つ文字列が要求されるときは、Visual Basic で提供されている定数 vbNullString を使用します。0 の値を持つ文字列は、長さ 0 の文字列 ("") とは異なります。

ダイナミック リンク ライブラリ (DLL) のプロシージャ名は、32 ビットの Microsoft Windows では、大文字と小文字が区別されます。16 ビットの Windows (Microsoft Windows Version 3.1) では、区別されません。


関連項目

Call ステートメント

Function ステートメント

Sub ステートメント


Deftype ステートメント

関連項目	例

変数、プロシージャに渡す引数、Function プロシージャおよび Property Get プロシージャの戻り値のうち、指定した文字で始まる名前を持つものに対して、既定のデータ型を設定します。モジュール レベルで使用します。

構文

DefBool letterrange[, letterrange] . . .

DefByte letterrange[, letterrange] . . .

DefInt letterrange[, letterrange] . . .

DefLng letterrange[, letterrange] . . .

DefCur letterrange[, letterrange] . . .

DefSng letterrange[, letterrange] . . .

DefDbl letterrange[, letterrange] . . .

DefDate letterrange[, letterrange] . . .

DefStr letterrange[, letterrange] . . .

DefObj letterrange[, letterrange] . . .

DefVar letterrange[, letterrange] . . .

引数 letterrange の構文は次のとおりです。

letter1[-letter2]

引数 letter1 と引数 letter2 には、既定のデータ型を適用する名前の頭文字の範囲を指定します。この 2 つの引数は、それぞれ、変数名、引数名、Function プロシージャ名、または Property Get プロシージャ名の頭文字を表します。どちらの引数にも任意の英字が指定でき、大文字と小文字の区別はありません。

解説

次のように、ステートメント名によってデータ型が決まります。

ステートメント	データ型

DefBool	ブール型 (Boolean)

DefByte	バイト型 (Byte)

DefInt	整数型 (Integer)

DefLng	長整数型 (Long)

DefCur	通貨型 (Currency)

DefSng	単精度浮動小数点数型 (Single)

DefDbl	倍精度浮動小数点数型 (Double)

DefDate	日付型 (Date)

DefStr	文字列型 (String)

DefObj	オブジェクト型 (Object)

DefVar	バリアント型 (Variant)

たとえば、次のコードでは Message は文字列型の変数になります。

DefStr A-Q

. . .

Message = "シカゴへようこそ !"

Deftype ステートメントは、Deftype ステートメントを記述したモジュールの中でだけ有効です。たとえば、あるモジュールに記述した DefInt ステートメントは、そのモジュールで宣言した変数、プロシージャへの引数、Function プロシージャや Property Get プロシージャの戻り値の型に対してのみ有効で、他のモジュールで宣言した変数、引数、戻り値の型には影響しません。変数、引数、Function プロシージャ、および Property Get プロシージャのデータ型の既定値は、バリアント型です。

文字の範囲を指定すると、通常、文字セットの最初の 128 文字のいずれかが名前の先頭に使われている変数のデータ型が定義されます。しかし、範囲を A-Z と指定すると、文字セットの拡張部分 (128 ～ 255) に含まれる各国対応の文字で始まる変数を含め、すべての変数に対して適用する既定のデータ型を設定できます。

範囲を A-Z と指定すると、Deftype ステートメントで他の変数の範囲を定義することはできなくなります。実際に、ある範囲を指定した後で、その範囲の文字を含む範囲を別の Deftype ステートメントで指定すると、エラーが発生します。ただし、Dim ステートメントで As type 節を指定すれば、どの変数 (定義済みであってもなくても) のデータ型も明示的に指定できます。たとえば、次のコードを宣言セクションに記述すると、既定のデータ型は整数型に指定されていますが、変数 TaxRate を明示的に倍精度浮動小数点数型として定義できます。

DefInt A-Z

Dim TaxRate As Double

ユーザー定義型の要素はデータ型を明示的に宣言しなければならないため、Deftype ステートメントはユーザー定義型の要素に対しては影響しません。


関連項目

ASCII 文字セット (0 - 127)

Function ステートメント

Let ステートメント

Property Get ステートメント


Dim ステートメント

関連項目	例

変数を宣言し、それらにメモリ領域を割り当てます。

構文

Dim varname[([subscripts])][As [New] type][, varname[([subscripts])][As [New] type]] . . .

Dim ステートメントの指定項目は次のとおりです。

指定項目	内容

varname	定義する変数の名前を指定します。変数の標準的な名前付け規則に従って付けてください。

subscripts	配列変数の次元を指定します。指定できる次元数の最大値は 60 です。引数 subscripts の構文は次のとおりです。

[lower To] upper [,[lower To] upper] . . .

引数 lower を省略した場合、配列のインデックス番号の最小値は Option Base ステートメントによって制御されます。Option Base ステートメントが記述されていなければ、インデックス番号の最小値は 0 になります。

New	宣言したオブジェクト変数が Visual Basic のオブジェクトの新しいインスタンス、または外部から作成できる OLE オートメーション オブジェクトであることを指定するためのキーワードです。キーワード New では、組み込みデータ型の変数や、外部から作成できない OLE オートメーション オブジェクトを宣言することはできません。

type	変数のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (可変長の場合は String、固定長の場合は String * length)、オブジェクト型、バリアント型 (Variant)、ユーザー定義型、オブジェクトの種類のいずれかを指定できます。As type 節は宣言する各変数に指定してください。

解説

Dim ステートメントを使ってモジュール レベルで宣言した変数は、宣言したモジュール内のすべてのプロシージャから参照できます。プロシージャ レベルで宣言した変数は、宣言したプロシージャ内でのみ参照できます。

変数のデータ型を宣言するには、モジュール レベルかプロシージャ レベルに Dim ステートメントを記述してください。次の例では、整数型の変数を宣言しています。

Dim NumberOfEmployees As Integer

Dim ステートメントは、変数のオブジェクトの種類を宣言するときにも使います。次の例では、ワークシートの新しいインスタンスを表す変数を宣言しています。

Dim X As New Worksheet

キーワード New を使わずにオブジェクト変数を宣言した場合、そのオブジェクトのインスタンスは実際には存在しません。オブジェクトを参照する変数を使う場合は、あらかじめ Set ステートメントで既存のオブジェクトを変数に代入しておく必要があります。宣言したオブジェクト変数にオブジェクトが代入されるまでは、その変数には Nothing という特殊な値が与えられます。Nothing は、その変数がオブジェクトの特定のインスタンスを参照していないことを示します。

Dim ステートメントを空のかっこと組み合わせて使うと、動的配列を宣言することができます。宣言した動的配列の次元と要素の数をプロシージャ内で定義するには、ReDim ステートメントを使います。ただし、Private ステートメント、Public ステートメント、または Dim ステートメントで明示的にサイズを指定した配列変数の次元を再び宣言しようとすると、エラーが発生します。

データ型やオブジェクトの種類を指定しないで、モジュール内に Deftype ステートメントも記述されていない場合は、変数のデータ型は既定のバリアント型になります。

変数の初期化時には、数値変数は 0 に、可変長文字列は長さ 0 の文字列に初期化され、固定長文字列は 0 で埋められます。また、バリアント型変数は Empty 値に初期化されます。ユーザー定義型変数の各要素は、別々の変数であるかのように初期化されます。

ヒント   プロシージャ内に Dim ステートメントを記述するときは、プロシージャの先頭に記述したほうが、コードが読みやすくなります。


関連項目

Array 関数

Option Base ステートメント

Private ステートメント

Public ステートメント

ReDim ステートメント

Set ステートメント

Static ステートメント

Type ステートメント


Erase ステートメント

関連項目	例

静的配列の要素を再初期化したり、動的配列に割り当てたメモリを解放します。

構文

Erase arraylist

引数 arraylist には、消去する配列変数を指定します。複数指定するときは、カンマ (,) で区切ります。

解説

Erase ステートメントの動作は配列の型によって異なりますので、実行する前に配列が静的配列 (通常の配列) か動的配列かを確認しておくことが大切です。静的配列の場合、Erase ステートメントはメモリを解放しません。静的配列の要素は、次のように設定されます。

配列の型	Erase ステートメントの実行結果

静的数値配列	要素はすべて 0 に設定されます。

静的文字列配列 (可変長)	要素はすべて長さ 0 の文字列 ("") に設定されます。

静的文字列配列 (固定長)	要素はすべて 0 に設定されます。

静的バリアント型 (Variant) 配列	要素はすべて Empty 値に設定されます。

ユーザー定義型配列	要素はすべて別々の変数のように設定されます。

オブジェクト配列	要素はすべて特別な値 Nothing に設定されます。

Erase ステートメントは動的配列が使っていたメモリを解放します。この配列を再度参照するには、ReDim ステートメントを使って再びこの配列変数の次元を宣言する必要があります。


関連項目

Array 関数

Dim ステートメント

Nothing キーワード

Private ステートメント

Public ステートメント

ReDim ステートメント

Static ステートメント


Function ステートメント

関連項目	例

Function プロシージャの名前、引数とそのデータ型、戻り値のデータ型を宣言し、Function プロシージャの始まりを示します。

構文

[Public | Private] [Static] Function name [(arglist)] [As type]
[statements]
[name = expression]
[Exit Function]
[statements]
[name = expression]
End Function

Function ステートメントの指定項目は次のとおりです。

指定項目	内容

Public	すべてのモジュールのすべてのプロシージャから参照できるプロシージャを宣言するときに指定します。

Private	Function プロシージャを記述したモジュール内のプロシージャ内でのみ参照できるプロシージャを宣言するときに指定します。

Static	Function プロシージャ内のローカル変数が、次に呼び出されるまで保持されることを示します。Function プロシージャの外部で宣言された変数は、Function プロシージャの中で使われている場合でも、Static によって影響を受けることはありません。

name	定義する Function プロシージャの名前を指定します。変数の標準的な名前付け規則に従って付けてください。

arglist	Function プロシージャを呼び出すときに、Function プロシージャに渡す引数を表す変数のリストを指定します。複数の変数を指定するときはカンマ (,) で区切ります。

type	Function プロシージャの戻り値のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (String) (可変長のみ)、オブジェクト型、バリアント型 (Variant)、ユーザー定義型のいずれかを指定できます。また、バリアント型を指定すると、配列を返すこともできます。バリアント型以外のデータ型の配列を返すことはできません。

statements	Function プロシージャ内で実行される、一連のステートメントを指定します。

expression	関数の戻り値を指定します。

引数 arglist の構文と指定項目は次のとおりです。

[Optional][ByVal | ByRef][ParamArray] varname[( )][As type]

指定項目	内容

Optional	指定した引数が省略可能であることを示します。キーワード Optional を指定した場合は、引数 arglist のそれ以降の引数も省略可能でなければならず、すべてキーワード Optional を付けて宣言しなければなりません。キーワード Optional が指定された引数はすべてバリアント型でなければなりません。キーワード ParamArray を使った場合は、どの引数に対してもキーワード Optional は指定できません。

ByVal	その引数が、値渡しで渡されることを示します。

ByRef	その引数が、参照渡しで渡されることを示します。

ParamArray	引数 arglist の最後に指定する引数としてのみ使用され、その引数がバリアント型の要素を持つ省略可能 (Optional) な 配列であることを示します。キーワード ParamArray を使うと、任意の数の引数を渡すことができます。ByVal、ByRef、Optional の各キーワードを一緒に使うことはできません。

varname	引数を表す変数名を指定します。変数の標準的な名前付け規則に従って付けてください。

type	プロシージャに渡す引数のデータ型を指定します。バイト型、ブール型、整数型、長整数型、通貨型、単精度浮動小数点数型、倍精度浮動小数点数型、日付型、文字列型 (可変長のみ)、オブジェクト型、バリアント型、ユーザー定義型、オブジェクトの種類のいずれかを指定できます。

解説

キーワード Public またはキーワード Private を指定しない場合、Function プロシージャは、パブリック プロシージャになります。キーワード Static を指定しない場合、ローカル変数の値は Function プロシージャの実行が終わると破棄されます。

実行可能なコードはすべてプロシージャ内に記述しなければなりません。また、Function プロシージャを他の Function プロシージャ、Sub プロシージャ、Property プロシージャの中で定義することはできません。

キーワード Exit Function は、Function プロシージャを直ちに終了します。プログラムの実行は、その Function プロシージャを呼び出したステートメントの次のステートメントから継続されます。Exit Function ステートメントは、Function プロシージャ内の任意の場所に必要に応じていくつでも指定できます。

Function プロシージャと Sub プロシージャには、似た点と異なる点があります。引数を受け取って一連のステートメントを実行し、引数の値を変える点は似ています。しかし、Function プロシージャは Sub プロシージャと異なり、戻り値を使いたい場合に、Sqr、Cos、Chr などの組み込み関数と同じように 1 つの式の中で右辺に記述することができます。

Function プロシージャを呼び出すには、式の中で、関数名に引数リストをかっこで囲んで付けて指定します。Function プロシージャの呼び出し方法については、Call ステートメントを参照してください。

注意   Function プロシージャは、再帰的に使うことができます。つまり、そのプロシージャ自体を呼び出すことができます。ただし、再帰呼び出しを行うと、スタックがオーバーフローする可能性があります。キーワード Static は、通常、再帰的な Function プロシージャでは使いません。

Function プロシージャから値を返すには、値を Function プロシージャ名 name に代入してください。引数 name への代入は、Function プロシージャ内の任意の場所で必要に応じて何回でも行えます。引数 name に値を代入しない場合は既定の戻り値が返されます。既定の戻り値は、Function プロシージャが数値型の場合は 0、文字列型の場合は長さ 0 の文字列 ("")、バリアント型の場合は Empty 値です。オブジェクトへの参照を返す Function プロシージャでは、プロシージャ内で Set ステートメントを使って引数 name にオブジェクトへの参照を代入していない場合は、Nothing が返されます。

次の例では、Function プロシージャ名 BinarySearch に戻り値を代入しています。この例では、値が見つからなかったことを示すために False をFunction プロシージャ名に代入しています。

Function BinarySearch(. . .) As Boolean

. . .

'値が見つからないときは False を返します。

BinarySearch = False

Exit Function

End If

. . .

End Function

Function プロシージャで使う変数には、Function プロシージャ内で明示的に宣言される変数と、それ以外の変数の 2 種類があります。プロシージャ内で、Dim などのステートメントで明示的に宣言された変数は、そのプロシージャの中だけで有効です (ローカル変数)。プロシージャ内で明示的に宣言せずに使われている変数も、そのプロシージャの外部のさらに上のレベルで明示的に宣言されていない限りは、ローカル変数となります。

注意   プロシージャ内で明示的に宣言していない変数をプロシージャ内で使うことはできますが、その変数と同じ名前の変数などがモジュール レベルで定義されている場合、名前の競合が発生します。あるプロシージャから、他のプロシージャ、定数または変数、モジュール レベルの定数または変数、オブジェクトのいずれかと同じ名前を持つ未宣言の変数を参照した場合、そのモジュール レベルの名前を参照していると見なされます。このような名前の競合を避けるために、変数は明示的に宣言してください。Option Explicit ステートメントを使うと、変数の明示的な宣言が強制されます。

注意   Visual Basic では、演算効率を高めるために数式が自動的に並べ替えられることがあります。このため、変数の値を変えてしまうような Function プロシージャは、数式の中で使わないでください。


関連項目

Call ステートメント

Dim ステートメント

Nothing キーワード

Option Explicit ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Set ステートメント

Static ステートメント

Sub ステートメント


LBound 関数

関連項目	例

配列の指定した次元で使うことのできるインデックス番号の最小値を返します。

構文

LBound(arrayname[, dimension])

LBound 関数の指定項目は次のとおりです。

指定項目	内容

arrayname	配列変数の名前を指定します。変数の標準的な名前付け規則に従って付けてください。

dimension	インデックス番号の最小値を調べたい配列の次元を示す整数を指定します。最初の次元なら 1、2 番めの次元なら 2 というように指定します。引数 dimension を省略すると、1 が指定されたものと見なされます。

解説

LBound 関数は、UBound 関数と組み合わせて、配列のサイズを調べるために使います。インデックス番号の最大値を調べるには、UBound 関数を使ってください。

次のような配列が宣言されているとき、LBound 関数は、下の表のような値を返します。

Dim A(1 To 100, 0 To 3, -3 To 4)

ステートメント	戻り値

LBound(A, 1)	1

LBound(A, 2)	0

LBound(A, 3)	-3

配列のインデックス番号の最小値の既定値は 0 または 1 です。この値は、Option Base ステートメントの設定によって決まります。

Dim、Private、Public、ReDim、Static のいずれかのステートメントで To 節を使って配列を宣言すると、インデックス番号の最小値としてどの整数値でも指定できます。


関連項目

Dim ステートメント

Option Base ステートメント

Private ステートメント

Public ステートメント

ReDim ステートメント

Static ステートメント

UBound 関数


Let ステートメント

関連項目	例

式の値を変数またはプロパティに代入します。

構文

[Let] varname = expression

Let ステートメントの指定項目は次のとおりです。

指定項目	内容

varname	変数名またはプロパティ名を指定します。変数の標準的な名前付け規則に従って付けてください。

expression	変数またはプロパティに代入する値を指定します。

解説

Visual Basic のコードを簡潔にするため、通常、キーワード Let は省略します。

変数やプロパティに式を代入できるのは、その式が返す値が変数やプロパティのデータ型と一致するときだけです。文字列式を数値変数に代入したり、数式を文字列変数に代入することはできません。異なるデータ型同士で代入すると、コンパイル時にエラーが発生します。

バリアント型 (Variant) の変数には、文字列式でも数式でも代入できますが、その逆は必ずしも当てはまりません。文字列変数には、Null 値以外ならどのようなバリアント型でも代入できますが、数値変数には、数値として解釈可能な値が格納されたバリアント型しか代入できません。数値に変換できるバリアント型かどうかを調べるには、IsNumeric 関数を使ってください。

注意   ある数値データ型の式を別の数値データ型の変数に代入すると、式の値は代入先の変数のデータ型に強制的に変換されます。

Let ステートメントを使って、ユーザー定義型の変数同士の代入もできます。ただし、両方の変数は、同じユーザー定義型である必要があります。異なるユーザー定義型の変数を代入するには、LSet ステートメントを使ってください。オブジェクトの参照を変数に代入するには、Set ステートメントを使ってください。


関連項目

Const ステートメント

データ型の概要

IsNumeric 関数

LSet ステートメント

Set ステートメント

バリアント型 (Variant)


Option Base ステートメント

関連項目	例

配列のインデックス番号の最小値の既定値を設定します。モジュール レベルで使用します。

構文

Option Base {0 | 1}

解説

Option Base ステートメントを使う場合は、モジュール内で変数の宣言や定数の定義を行うステートメントよりも前に記述する必要があります。

インデックス番号の既定の最小値は 0 なので、Option Base ステートメントは必ずしも必要ではありません。使用する場合は、モジュールの中で 1 度しか使うことができません。Option Base ステートメントは、配列の次元を宣言する前に実行してください。

ヒント   Dim、Private、Public、ReDim、Static などの各ステートメントで To 節を使うと、より柔軟に配列のインデックス番号の範囲を設定できます。しかし、To 節で配列のインデックス番号の最小値を明示的に設定しないときは、Option Base ステートメントを使って最小値を 1 に設定し、これを既定値とすることができます。

Option Base ステートメントは、それが記述されているモジュール内の配列のインデックス番号の最小値にのみ影響を与えます。


関連項目

Dim ステートメント

LBound 関数

Option Compare ステートメント

Option Explicit ステートメント

Private ステートメント

Public ステートメント

ReDim ステートメント

Static ステートメント


Option Compare ステートメント

関連項目	例

文字列データの比較方法を設定します。モジュール レベルで使用します。

構文

Option Compare {Binary | Text}

解説

Option Compare ステートメントを使う場合は、モジュール内で変数の宣言や定数の定義を行うステートメントよりも前に記述する必要があります。

Option Compare ステートメントは、モジュール内での文字列の比較方法 (Binary モードまたは Text モード) を指定するものです。Option Compare ステートメントが記述されていないモジュールでは、既定の文字列比較方法である Binary モードが使われます。

Binary モードでは、文字列比較の並べ替え順序は、バイナリ文字コードのコード順によって行われます。

Text モードでは、文字列比較は、オペレーティング システムの国別情報によって決まり、日本の場合は 50 音順で、大文字小文字、文字幅、カタカナひらがなを区別しない並べ替え順になります。Text モードでの並べ替えの例を次に示します。

(*=＊) < (0=０) < (9=９) < (A=a=Ａ=ａ) < (B=b=Ｂ=ｂ) < (ｱ=ア=あ) < (ﾝ=ン=ん) < 亜


関連項目

ASCII 文字セット (0 - 127)

比較演算子

InStr 関数

Option Base ステートメント

Option Explicit ステートメント

StrComp 関数


Option Explicit ステートメント

関連項目	例

モジュール内のすべての変数の明示的な宣言を強制します。モジュール レベルで使用します。

構文

Option Explicit

解説

Option Explicit ステートメントを使う場合は、モジュール内で変数の宣言や定数の定義を行うステートメントよりも前に記述する必要があります。

Option Explicit ステートメントを使わない場合で、Deftype ステートメントで既定のデータ型が指定されていないとき、明示的に宣言されていない変数のデータ型はすべてバリアント型 (Variant) になります。

Option Explicit ステートメントを記述した場合、変数は、Dim、Private、Public、ReDim、Static などの各ステートメントで明示的に宣言する必要があります。宣言されていない変数名を使うと、コンパイル時にエラーが発生します。

ヒント   Option Explicit ステートメントを利用することにより、既存の変数名の入力ミスや、変数の適用範囲 (スコープ) がわかりにくいコードでの変数名の混乱を避けることができます。


関連項目

Const ステートメント

Deftype ステートメント

Dim ステートメント

Function ステートメント

Option Base ステートメント

Option Compare ステートメント

Private ステートメント

Public ステートメント

ReDim ステートメント

Static ステートメント

Sub ステートメント


Option Private ステートメント

Option Private ステートメントは、Visual Basic for Applications オブジェクト ライブラリで参照することができます。ただし、Visual Basic Version 4.0 では使用できません。


Private ステートメント

関連項目	例

プライベート変数を宣言し、メモリ領域を割り当てます。モジュール レベルで使用します。

構文

Private varname[([subscripts])][As [New] type][, varname[([subscripts])][As [New] type]] . . .

Private ステートメントの指定項目は次のとおりです。

指定項目	内容

varname	宣言する変数の名前を指定します。変数の標準的な名前付け規則に従って付けてください。

subscripts	配列変数の次元を指定します。指定できる次元数の最大値は 60 です。引数 subscripts の構文は次のとおりです。

[lower To] upper [,[lower To] upper] . . .

引数 lower を省略した場合、配列のインデックス番号の最小値は Option Base ステートメントによって制御されます。Option Base ステートメントが記述されていなければ、インデックス番号の最小値は 0 になります。

New	宣言したオブジェクト変数が Visual Basic のオブジェクトの新しいインスタンス、または外部から作成できる OLE オートメーション オブジェクトであることを指定するためのキーワードです。キーワード New では、組み込みデータ型の変数や、外部から作成できない OLE オートメーション オブジェクトを宣言することはできません。

type	変数のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (可変長の場合は String、固定長の場合は String * length)、オブジェクト型、バリアント型 (Variant)、ユーザー定義型、オブジェクトの種類のいずれかを指定できます。As type 節は宣言する各変数に指定してください。

解説

プライベート変数は、宣言されたモジュール内でのみ参照できます。

変数のデータ型の宣言には、Private ステートメントを使ってください。次の例では、変数を整数型で宣言しています。

Private NumberOfEmployees As Integer

Private ステートメントは、変数のオブジェクトの種類を宣言するときにも使います。次の例では、ワークシートの新しいインスタンスとして変数を宣言しています。

Private X As New Worksheet

キーワード New を使わずにオブジェクト変数を宣言した場合、そのオブジェクトのインスタンスは実際には存在しません。オブジェクトを参照する変数を使う場合は、あらかじめ Set ステートメントで既存のオブジェクトを変数に代入しておく必要があります。宣言したオブジェクト変数にオブジェクトが代入されるまでは、その変数には Nothing という特殊な値が与えられます。Nothing は、その変数がオブジェクトの特定のインスタンスを参照していないことを示します。

Private ステートメントをかっこ内を空にして使うと、動的配列を宣言することができます。宣言した動的配列の次元と要素の数をプロシージャ内で定義するには、ReDim ステートメントを使います。ただし、Private ステートメント、Public ステートメント、または Dim ステートメントで明示的にサイズを指定した配列変数の次元を再宣言しようとすると、エラーが発生します。

データ型やオブジェクトの種類を指定しないで、モジュール内に Deftype ステートメントも記述されていない場合は、変数のデータ型は既定のバリアント型になります。

変数の初期化時には、数値変数は 0 に、可変長文字列は長さ 0 の文字列に初期化され、固定長文字列は 0 で埋められます。また、バリアント型変数は Empty 値に初期化されます。ユーザー定義型変数の各要素は、別々の変数であるかのように初期化されます。

ヒント   プロシージャ内に Private ステートメントを記述するときは、プロシージャの先頭に記述したほうが、コードが読みやすくなります。


関連項目

Array 関数

Const ステートメント

Dim ステートメント

Function ステートメント

Option Base ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Public ステートメント

ReDim ステートメント

Set ステートメント

Static ステートメント

Sub ステートメント

Type ステートメント


Property Get ステートメント

関連項目	例

Property Get プロシージャの名前、引数とそのデータ型、戻り値のデータ型を宣言し、Property Get プロシージャの始まりを示します。Property Get プロシージャはプロパティの値を取得します。

構文

[Public | Private][Static] Property Get name [(arglist)][As type]
[statements]
[name = expression]
[Exit Property]
[statements]
[name = expression]
End Property

Property Get ステートメントの指定項目は次のとおりです。

指定項目	内容

Public	すべてのモジュールのすべてのプロシージャから参照できるプロシージャを宣言するときに指定します。

Private	Property Get プロシージャを記述したモジュール内でのみ参照できるプロシージャを宣言するときに指定します。

Static	Property Get プロシージャ内のローカル変数が、次に呼び出されるまで保持されることを示します。Property Get プロシージャの外部で宣言された変数は、Property Get プロシージャの中で使われている場合でも、Static によって影響を受けることはありません。

name	定義する Property Get プロシージャの名前を指定します。変数の標準的な名前付け規則に従って指定してください。ただし、同じモジュール内の Property Let プロシージャや Property Set プロシージャと同じ名前であってもかまいません。

arglist	Property Get プロシージャを呼び出すときに、Property Get プロシージャに渡す引数を表す変数のリストを指定します。複数の変数を指定するときはカンマ (,) で区切ります。Property Get ステートメントに対応する Property Let ステートメントが記述されている場合、Property Get ステートメントの各引数は Property Let ステートメントの各引数と同じデータ型でなければなりません。

type	Property Get プロシージャの戻り値のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (String) (可変長のみ)、オブジェクト型、バリアント型 (Variant)、ユーザー定義型のいずれかを指定できます。バリアント型を指定すると、配列を返すこともできます。ただし、バリアント型以外のデータ型の配列を返すことはできません。

対応する Property Let プロシージャがある場合、Property Get プロシージャの戻り値のデータ型は、Property Let プロシージャの最後の引数 (指定されている引数が 1 つだけの場合はその引数) のデータ型と同じでなければなりません。なお、この最後の引数には、オブジェクトへの参照式の右辺に記述された、プロパティに設定される実際の値が入ります。

statements	Property Get プロシージャ内で実行される一連のステートメントを指定します。

expression	Property Get プロシージャによって返されるプロパティの値を指定します。

引数 arglist の構文と指定項目は次のとおりです。

[ByVal | ByRef] varname[( )][As type]

指定項目	内容

ByVal	その引数が、値渡しで渡されることを示します。

ByRef	その引数が、参照渡しで渡されることを示します。

varname	Property Get プロシージャに渡す引数を表す変数名を指定します。変数の標準的な名前付け規則に従って指定してください。

type	Property Get プロシージャに渡す引数のデータ型を指定します。バイト型、ブール型、整数型、長整数型、通貨型、単精度浮動小数点数型、倍精度浮動小数点数型、日付型、文字列型 (可変長のみ)、オブジェクト型、バリアント型、ユーザー定義型、オブジェクトの種類のいずれかを指定できます。

解説

キーワード Public またはキーワード Private を指定しない場合、Property プロシージャは、パブリック プロシージャになります。キーワード Static を指定しない場合、ローカル変数の値は Property プロシージャの実行が終わると破棄されます。

実行可能なコードはすべてプロシージャ内に記述しなければなりません。また、Property Get プロシージャを他の Property プロシージャ、Sub プロシージャ、Function プロシージャの中で定義することはできません。

キーワード Exit Property は、Property Get プロシージャを直ちに終了します。プログラムの実行は、その Property Get プロシージャを呼び出したステートメントの次のステートメントから継続されます。Exit Property ステートメントは、Property Get プロシージャ内の任意の場所に必要に応じていくつでも記述できます。

Property Get プロシージャと、Sub プロシージャや Property Let プロシージャには、似た点と異なる点があります。引数を受け取って一連のステートメントを実行し、引数の値を変える点は似ています。しかし、Property Get プロシージャは Sub プロシージャや Property Let プロシージャと異なり、プロパティの値を返したい場合、Function プロシージャやプロパティ名と同じように式の右辺に記述することができます。


関連項目

Function ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


Property Let ステートメント

関連項目	例

Property Let プロシージャの名前、引数とそのデータ型を宣言し、Property Let プロシージャの始まりを示します。Property Let プロシージャは、プロパティに値を設定します。

構文

[Public | Private][Static] Property Let name [(arglist)]
[statements]
[Exit Property]
[statements]
End Property

Property Let ステートメントの指定項目は次のとおりです。

指定項目	内容

Public	すべてのモジュールのすべてのプロシージャから参照できるプロシージャを宣言するときに指定します。

Private	Property Let プロシージャを記述したモジュール内でのみ参照できるプロシージャを宣言するときに指定します。

Static	Property Let プロシージャ内のローカル変数が、次に呼び出されるまで保持されることを示します。Property Let プロシージャの外部で宣言された変数は、Property Let プロシージャの中で使われている場合でも、Static によって影響を受けることはありません。

name	定義する Property Let プロシージャの名前を指定します。変数の標準的な名前付け規則に従って指定してください。ただし、同じモジュール内の Property Get プロシージャや Property Set プロシージャと同じ名前であってもかまいません。

arglist	Property Let プロシージャを呼び出すときに、Property Let プロシージャに渡す引数を表す変数のリストを指定します。複数の引数を指定するときはカンマ (,) で区切ります。Property Let プロシージャの各引数 (最後の引数以外) の名前とデータ型は、Property Get プロシージャの対応する引数に一致しなければなりません。引数 arglist の一番最後の引数には、オブジェクトへの参照式の右辺に記述された、プロパティに設定される実際の値が入ります。最後の引数 (指定されている引数が 1 つだけの場合はその引数) のデータ型は、対応する Property Get プロシージャの戻り値の型と一致しなければなりません。

statements	Property Let プロシージャ内で実行される、一連のステートメントを指定します。

引数 arglist の構文と指定項目は次のとおりです。

[ByVal | ByRef] varname[( )][As type]

指定項目	内容

ByVal	その引数が、値渡しで渡されることを示します。

ByRef	その引数が、参照渡しで渡されることを示します。

varname	Property Let プロシージャに渡す引数を表す変数名を指定します。変数の標準的な名前付け規則に従って指定してください。

type	Property Let プロシージャに渡す引数のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (String) (可変長のみ)、オブジェクト型、バリアント型 (Variant)、ユーザー定義型、オブジェクトの種類のいずれかを指定できます。

注   Property Let ステートメントを使って作成する Property Let プロシージャには、引数が少なくとも 1 つは必要です。この引数 (引数が 2 つ以上ある場合は一番最後の引数) には、Property Let プロシージャが呼び出されたときに、プロパティに設定される実際の値が入ります。

解説

キーワード Public またはキーワード Private を指定しない場合、Property プロシージャは、パブリック プロシージャになります。キーワード Static を指定しない場合、ローカル変数の値は Property プロシージャの実行が終わると破棄されます。

実行可能なコードはすべてプロシージャ内に記述しなければなりません。また、Property Let プロシージャを他の Property プロシージャ、Sub プロシージャ、Function プロシージャの中で定義することはできません。

キーワード Exit Property は、Property Let プロシージャを直ちに終了します。プログラムの実行は、その Property Let プロシージャを呼び出したステートメントの次のステートメントから継続されます。Exit Property ステートメントは、Property Let プロシージャ内の任意の場所に必要に応じていくつでも記述できます。

Property Let プロシージャと、Function プロシージャや Property Get プロシージャには、似た点と異なる点があります。引数を受け取って一連のステートメントを実行し、引数の値を変える点は似ています。しかし、Property Let プロシージャは値を返す Function プロシージャや Property Get プロシージャと異なり、プロパティの値を設定する式や Let ステートメントの左辺にしか記述できません。


関連項目

Function ステートメント

Let ステートメント

Property Get ステートメント

Property Set ステートメント

Sub ステートメント


Property Set ステートメント

関連項目	例

Property Set プロシージャの名前、引数とそのデータ型を宣言し、Property Set プロシージャの始まりを示します。Property Set プロシージャは、オブジェクトへの参照を設定します。

構文

[Public | Private][Static] Property Set name [(arglist)]
[statements]
[Exit Property]
[statements]
End Property

Property Set ステートメントの指定項目は次のとおりです。

指定項目	内容

Public	すべてのモジュールのすべてのプロシージャから参照できるプロシージャを宣言するときに指定します。

Private	Property Set プロシージャを記述したモジュール内でのみ参照できるプロシージャを宣言するときに指定します。

Static	Property Set プロシージャ内のローカル変数が、次に呼び出されるまで保持されることを示します。Property Set プロシージャの外部で宣言された変数は、Property Set プロシージャの中で使われている場合でも、Static によって影響を受けることはありません。

name	定義する Property Set プロシージャの名前を指定します。変数の標準的な名前付け規則に従って指定してください。ただし、同じモジュール内の Property Get プロシージャや Property Let プロシージャと同じ名前であってもかまいません。

arglist	Property Set プロシージャを呼び出すときに、Property Set プロシージャに渡す引数を表す変数のリストを指定します。複数の変数を指定するときはカンマ (,) で区切ります。arglist の一番最後の引数には、オブジェクトへの参照式の右辺に記述された、プロパティに設定される実際の値が入ります。

statements	Property Set プロシージャ内で実行される、一連のステートメントを指定します。

引数 arglist の構文と指定項目は次のとおりです。

[ByVal | ByRef] varname[( )][As type]

指定項目	内容

ByVal	その引数が、値渡しで渡されることを示します。

ByRef	その引数が、参照渡しで渡されることを示します。

varname	Property Set プロシージャに渡す引数を表す変数の名前を指定します。変数の標準的な名前付け規則に従って指定してください。

type	Property Set プロシージャに渡す引数のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (String) (可変長のみ)、オブジェクト型、バリアント型 (Variant)、ユーザー定義型、オブジェクトの種類のいずれかを指定できます。

注   Property Set ステートメントを使って作成する Property Set プロシージャには、引数が少なくとも 1 つは必要です。この引数 (引数が 2 つ以上ある場合は一番最後の引数) には、Property Set プロシージャが呼び出されたときに、そのプロパティに対するオブジェクトへの実際の参照が入ります。

解説

キーワード Public またはキーワード Private を指定しない場合、Property プロシージャは、パブリック プロシージャになります。キーワード Static を指定しない場合、ローカル変数の値は Property プロシージャの実行が終わると破棄されます。

実行可能なコードはすべてプロシージャ内に記述しなければなりません。また、Property Set プロシージャを他の Property プロシージャ、Sub プロシージャ、Function プロシージャの中で定義することはできません。

キーワード Exit Property は、Property Set プロシージャを直ちに終了します。プログラムの実行は、その Property Set プロシージャを呼び出したステートメントの次のステートメントから継続されます。Exit Property ステートメントは、Property Set プロシージャ内の任意の場所に必要に応じていくつでも記述できます。

Property Set プロシージャと、Function プロシージャや Property Get プロシージャには、似た点と異なる点があります。引数を受け取って一連のステートメントを実行し、引数の値を変える点は似ています。しかし、Property Set プロシージャは値を返す Function プロシージャや Property Get プロシージャと異なり、オブジェクトへの参照を代入するステートメント (Set ステートメント) の左辺にしか記述できません。


関連項目

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Set ステートメント

Sub ステートメント


Public ステートメント

関連項目	例

パブリック変数を宣言し、メモリ領域を割り当てます。モジュール レベルで使用します。

構文

Public varname[([subscripts])][As [New] type][, varname[([subscripts])][As [New] type]] . . .

Public ステートメントの指定項目は次のとおりです。

指定項目	内容

varname	宣言する変数の名前を指定します。変数の標準的な名前付け規則に従って指定してください。

subscripts	配列変数の次元を指定します。指定できる次元数の最大値は 60 です。引数 subscripts の構文は次のとおりです。

[lower To] upper [,[lower To] upper] . . .

引数 lower を省略した場合、配列のインデックス番号の最小値は Option Base ステートメントによって制御されます。Option Base ステートメントが記述されていなければ、インデックス番号の最小値は 0 になります。

New	宣言したオブジェクト変数が Visual Basic のオブジェクトの新しいインスタンス、または外部から作成できる OLE オートメーション オブジェクトであることを指定するためのキーワードです。キーワード New では、組み込みデータ型の変数や、外部から作成できない OLE オートメーション オブジェクトを宣言することはできません。

type	変数のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (可変長の場合は String、固定長の場合は String * length)、オブジェクト型、バリアント型 (Variant)、ユーザー定義型、オブジェクトの種類のいずれかを指定できます。As type 節は宣言する各変数に指定してください。

解説

Public ステートメントで宣言された変数は、モジュールに Option Private Module が記述されていない限り、すべてのアプリケーションのすべてのモジュールのすべてのプロシージャから参照できます。

注意   Public ステートメントをクラス モジュールで使って、固定長文字列変数を宣言することはできません。

変数のデータ型の宣言には、Public ステートメントを使ってください。次の例では、変数を整数型で宣言しています。

Public NumberOfEmployees As Integer

Public ステートメントは、変数のオブジェクトの種類を宣言するときにも使います。次の例では、ワークシートの新しいインスタンスとして変数を宣言しています。

Public X As New Worksheet

キーワード New を使わずにオブジェクト変数を宣言した場合、そのオブジェクトのインスタンスは実際には存在しません。オブジェクトを参照する変数を使う場合は、あらかじめ Set ステートメントで既存のオブジェクトを変数に代入しておく必要があります。宣言したオブジェクト変数にオブジェクトが代入されるまでは、その変数には Nothing という特殊な値が与えられます。Nothing は、その変数がオブジェクトの特定のインスタンスを参照していないことを示します。

Public ステートメントを空のかっこと組み合わせて使うと、動的配列を宣言することができます。宣言した動的配列の次元と要素の数をプロシージャ内で定義するには、ReDim ステートメントを使います。ただし、Private ステートメント、Public ステートメント、または Dim ステートメントで明示的にサイズを指定した配列変数の次元を再宣言しようとすると、エラーが発生します。

データ型やオブジェクトの種類を指定しないで、モジュール内に Deftype ステートメントも記述されていない場合は、変数のデータ型は既定のバリアント型になります。

変数の初期化時には、数値変数は 0 に、可変長文字列は長さ 0 の文字列に初期化され、固定長文字列は 0 で埋められます。また、バリアント型変数は Empty 値に初期化されます。ユーザー定義型変数の各要素は、別々の変数であるかのように初期化されます。


関連項目

Array 関数

Const ステートメント

Dim ステートメント

Option Base ステートメント

Option Private ステートメント

Private ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

ReDim ステートメント

Set ステートメント

Static ステートメント

Type ステートメント


ReDim ステートメント

関連項目	例

動的配列変数を宣言し、そのメモリ領域の割り当てや再割り当てを行います。プロシージャ レベルで使用します。

構文

ReDim [Preserve] varname(subscripts) [As type][, varname(subscripts) [As type]] . . .

ReDim ステートメントの指定項目は次のとおりです。

指定項目	内容

Preserve	次元の大きさを変更しても、その配列に既に格納されている値をそのまま残しておきたいときに指定します。

varname	宣言する変数の名前を指定します。変数の標準的な名前付け規則に従って付けてください。

subscripts	配列変数の次元を指定します。最大 60 次元までの宣言をすることができます。引数 subscripts の構文は次のとおりです。

[lower To] upper [,[lower To] upper] . . .

引数 lower を省略した場合、配列のインデックス番号の最小値は Option Base ステートメントによって制御されます。Option Base ステートメントが記述されていなければ、インデックス番号の最小値は 0 になります。

type	変数のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (可変長の場合は String、固定長の場合は String * length)、オブジェクト型、バリアント型 (Variant)、ユーザー定義型、オブジェクトの種類のいずれかを指定できます。As type 節は宣言する各変数に指定してください。配列を格納するバリアント型の場合、type で指定するのは配列の各要素のデータ型です。この引数でバリアント型を他のデータ型に変えることはできません。

解説

通常、ReDim ステートメントは、Private、Public、または Dim の各ステートメントで、かっこだけでインデックス番号を省略して明示的に宣言された動的配列の大きさの指定や変更に使います。

ReDim ステートメントは、配列の要素数や次元数を変更するために何度でも使うことができます。ただし、バリアント型に格納されている配列を例外として、1 度、あるデータ型で宣言された配列のデータ型を ReDim ステートメントで別のデータ型に変更することはできません。バリアント型に格納された配列の場合は、As type 節を使って要素のデータ型を変更することができます。

キーワード Preserve を指定した場合、配列の最後の次元のサイズだけを変更できます。たとえば、次元が 1 つしかない配列の場合、その次元は最後の唯一の次元なので、その次元のサイズを変更できます。しかし、次元が 2 つ以上ある配列の場合、最後の次元のサイズだけを変更して、その配列の内容をそのまま残すことは可能ですが、他の次元の大きさを変更することはできません。次の例では、既に格納されている値を消さずに、動的配列の最後の次元のサイズを増やします。

ReDim X(10, 10, 10)

. . .

ReDim Preserve X(10, 10, 15)

注意   配列のサイズを変更して小さくすると、削除された要素に格納されていたデータは失われます。

変数の初期化時には、数値変数は 0 に、可変長文字列は長さ 0 の文字列に初期化され、固定長文字列は 0 で埋められます。また、バリアント型変数は Empty 値に初期化されます。ユーザー定義型変数の各要素は、別々の変数のように初期化されます。オブジェクトを参照する変数は、あらかじめ Set ステートメントで既存のオブジェクトを代入しておく必要があります。オブジェクト変数は、既存のオブジェクトが代入されるまで、特殊な値である Nothing が格納されています。これは、オブジェクト変数がオブジェクトの特定のインスタンスを参照していないことを表す値です。

注   バリアント型に格納された配列のサイズを変更するには、まず最初にバリアント型変数を明示的に宣言する必要があります。


関連項目

Array 関数

Dim ステートメント

Option Base ステートメント

Private ステートメント

Public ステートメント

Set ステートメント

Static ステートメント


Rem ステートメント

例

プログラム内にコメントを記述することを示します。

構文

Rem comment

次の構文を使うこともできます。

' comment

引数 comment には、プログラムを読みやすくするための説明文 (コメント) を記述します。Rem ステートメントと引数 comment の間にはスペースが必要です。

解説

Rem ステートメントの行に行番号 や行ラベルを付けることにより、GoTo ステートメントや GoSub ステートメントの分岐先として使うことができます。この場合、Rem ステートメントの後ろの行にある、最初の実行可能なステートメントに制御が移ります。

構文の例に示したように、キーワード Rem の代わりにシングル クォーテーション (') を使うことができます。同じ行の他のステートメントの後にキーワード Rem を記述するときは、他のステートメントとキーワード Rem をコロン (:) で区切る必要があります。ただし、キーワード Rem の代わりにシングル クォーテーション (') を使うときは、コロンは必要ありません。


Set ステートメント

関連項目	例

オブジェクトの参照を、変数またはプロパティに代入します。

構文

Set objectvar = {[New] objectexpression | Nothing}

Set ステートメントの指定項目は次のとおりです。

指定項目	内容

objectvar	変数名またはプロパティ名を指定します。名前は変数の標準的な名前付け規則に従って付けてください。

New	Visual Basic のオブジェクトの新しいインスタンス、または外部から作成できる OLE オートメーション オブジェクトを作成するためのキーワードです。キーワード New では、組み込みデータ型の変数や、外部から作成できない OLE オートメーション オブジェクトを宣言することはできません。

objectexpression	オブジェクト名、参照するオブジェクトと同じオブジェクトの種類の宣言済みの他の変数名、同じオブジェクトの種類のオブジェクトを返す関数名またはメソッド名などで構成される式を指定します。

Nothing	引数 objectvar と特定のオブジェクトとの関係を切るために使用します。引数 objectvar に Nothing を代入すると、他の変数が参照していないとき、それまでに参照されていたオブジェクトに割り当てられていたすべてのシステム リソースおよびメモリ リソースを解放します。

解説

引数 objectvar は、代入されるオブジェクトと同じオブジェクトの種類でなければなりません。

Dim、Private、Public、ReDim、Static の各ステートメントは、オブジェクトを参照するための変数を宣言するだけです。Set ステートメントを使うことで、変数が実際のオブジェクトを参照するようになります。

次の例では、Dim ステートメントを使って変数 MyDatabase を Database オブジェクトとして宣言しています。Database オブジェクトのインスタンスは、実際には存在しません。そこで、Set ステートメントを使って、変数 MyDatabase に Database オブジェクトの新しいインスタンスへの参照を代入しています。

Dim MyDatabase As Database

Set MyDatabase = New Database

一般に、Set ステートメントでオブジェクトの参照を変数に代入したときは、そのオブジェクトのコピーは作成されず、オブジェクトへの参照が作成されます。複数のオブジェクト変数が同じオブジェクトを参照してもかまいません。このオブジェクト変数は、オブジェクトのコピーではなく、オブジェクトの参照なので、オブジェクトに変更を加えると、変更点はオブジェクトを参照しているすべての変数に反映されます。

しかし、Set ステートメントにキーワード New を使うと、オブジェクトのインスタンスが実際に作成されます。この新しいインスタンスは、そのインスタンスへの参照、またはオブジェクトのメンバのいずれかへの参照が行われるまでは読み込まれません。


関連項目

Dim ステートメント

Let ステートメント

Private ステートメント

Public ステートメント

ReDim ステートメント

Static ステートメント


Static ステートメント

関連項目	例

変数を宣言し、それらにメモリ領域を割り当てます。プロシージャ レベルで使用します。Static ステートメントで宣言した変数 (静的変数) の値は、プログラムの実行中は保持されます。

構文

Static varname[([subscripts])][As [New] type][, varname[([subscripts])][As [New] type]] . . .

Static ステートメントの指定項目は次のとおりです。

指定項目	内容

varname	宣言する変数の名前を指定します。変数の標準的な名前付け規則に従って指定してください。

subscripts	配列変数の次元を指定します。指定できる次元数の最大値は 60 です。引数 subscripts の構文は次のとおりです。

[lower To] upper [,[lower To] upper] . . .

引数 lower を省略した場合、配列のインデックス番号の最小値は Option Base ステートメントによって制御されます。Option Base ステートメントが記述されていなければ、インデックス番号の最小値は 0 になります。

New	宣言したオブジェクト変数が Visual Basic のオブジェクトの新しいインスタンス、または外部から作成できる OLE オートメーション オブジェクトであることを指定するためのキーワードです。キーワード New では、組み込みデータ型の変数や、外部から作成できない OLE オートメーション オブジェクトを宣言することはできません。

type	変数のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (可変長の場合は String、固定長の場合は String * length)、オブジェクト型、バリアント型 (Variant)、ユーザー定義型、オブジェクトの種類のいずれかを指定できます。As type 節は宣言する各変数に指定してください。

解説

モジュール内のコードが実行されると、Static ステートメントで宣言された変数の値は、モジュールがリセットされるか再実行されるまで保持されます。静的変数を明示的に宣言するときは、静的でないプロシージャ (キーワード Static を指定しないで定義したプロシージャ) の中で Static ステートメントを使います。

静的変数のデータ型を宣言するには、プロシージャ内で Static ステートメントを使います。たとえば、次のステートメントは整数型のサイズ固定型の配列を宣言します。

Static EmployeeNumber(200) As Integer

Static ステートメントは、変数のオブジェクトの種類を宣言するときにも使います。次の例では、ワークシートの新しいインスタンスとして変数を宣言しています。

Static X As New Worksheet

キーワード New を使わずにオブジェクト変数を宣言した場合、そのオブジェクトのインスタンスは実際には存在しません。オブジェクトを参照する変数を使う場合は、あらかじめ Set ステートメントで既存のオブジェクトを変数に代入しておく必要があります。宣言したオブジェクト変数にオブジェクトが代入されるまでは、その変数には Nothing という特殊な値が与えられます。Nothing は、その変数がオブジェクトの特定のインスタンスを参照していないことを示します。

データ型やオブジェクトの種類を指定しないで、モジュール内に Deftype ステートメントも記述されていない場合は、変数のデータ型は既定のバリアント型になります。

注   Static ステートメントとキーワード Static では、いずれも変数の有効期間に影響を与えますが、それぞれ機能は異なります。キーワード Static で (Static Sub CountSales () のように) プロシージャを宣言すると、そのプロシージャ内のすべてのローカル変数のメモリ領域は一度だけ割り当てられ、変数の値はプログラムの実行中は保持されます。静的でないプロシージャの場合、変数のメモリ領域はプロシージャが呼び出されるたびに割り当てられ、プロシージャを抜け出すと解放されます。Static ステートメントは、静的でないプロシージャ内のローカル変数の宣言に使われ、その変数の値をプログラムの実行中保持します。

変数の初期化時には、数値変数は 0 に、可変長文字列は長さ 0 の文字列に初期化され、固定長文字列は 0 で埋められます。また、バリアント型変数は Empty 値に初期化されます。ユーザー定義型変数の各要素は、別々の変数のように初期化されます。

ヒント   プロシージャ内に Static ステートメントを記述するときは、Dim ステートメントと一緒にプロシージャの先頭に記述するとプログラムが読みやすくなります。


関連項目

Array 関数

Dim ステートメント

Function ステートメント

Option Base ステートメント

Private ステートメント

Public ステートメント

ReDim ステートメント

Sub ステートメント


Sub ステートメント

関連項目	例

Sub プロシージャの名前、引数とそのデータ型を宣言し、Sub プロシージャの始まりを示します。

構文

[Private | Public] [Static] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub

Sub ステートメントの指定項目は次のとおりです。

指定項目	内容

Public	すべてのモジュールのすべてのプロシージャから参照できるプロシージャを宣言するときに指定します。

Private	Sub プロシージャを宣言したモジュール内でのみ参照できるプロシージャを宣言するときに指定します。

Static	Sub プロシージャ内のローカル変数が、次に呼び出されるまで保持されることを示します。Sub プロシージャの外部で宣言された変数は、Sub プロシージャの中で使われている場合でも、Static によって影響を受けることはありません。

name	定義する Sub プロシージャの名前を指定します。変数の標準的な名前付け規則に従って付けてください。

arglist	Sub プロシージャを呼び出すときに、Sub プロシージャに渡す引数を表す変数のリストを指定します。複数の変数を指定するときはカンマ (,) で区切ります。

statements	Sub プロシージャ内で実行される、一連のステートメントを指定します。

引数 arglist の構文と指定項目は次のとおりです。

[Optional][ByVal | ByRef][ParamArray] varname[( )][As type]

指定項目	内容

Optional	指定した引数が省略可能であることを示します。キーワード Optional を指定した場合は、引数 arglist のそれ以降の引数も省略可能でなければならず、すべてキーワード Optional を付けて宣言しなければなりません。キーワード Optional が指定された引数はすべてバリアント型 (Variant) でなければなりません。キーワード ParamArray を使った場合は、どの引数に対してもキーワード Optional は指定できません。

ByVal	その引数が、値渡しで渡されることを示します。

ByRef	その引数が、参照渡しで渡されることを示します。

ParamArray	引数 arglist の最後に指定する引数としてのみ使用され、その引数がバリアント型の要素を持つ省略可能 (Optional) な 配列であることを示します。キーワード ParamArray を使うと、任意の数の引数を渡すことができます。ByVal、ByRef、Optional の各キーワードを一緒に使うことはできません。

varname	引数として渡す変数名を指定します。変数の標準的な名前付け規則に従って付けてください。

type	プロシージャに渡す引数のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (String) (可変長のみ)、オブジェクト型、バリアント型 (Variant)、ユーザー定義型、オブジェクトの種類のいずれかを指定できます。

解説

キーワード Public またはキーワード Private を指定しない場合、Sub プロシージャは、パブリック プロシージャになります。キーワード Static を指定しない場合、ローカル変数の値は Sub プロシージャの実行が終わると破棄されます。

実行可能なコードはすべてプロシージャ内に記述しなければなりません。また、Sub プロシージャを他の Sub プロシージャ、Function プロシージャ、Property プロシージャの中で定義することはできません。

キーワード Exit Sub は、Sub プロシージャを直ちに終了します。プログラムの実行は、その Sub プロシージャを呼び出したステートメントの次のステートメントから継続されます。Exit Sub ステートメントは、Sub プロシージャ内の任意の場所に必要に応じていくつでも指定できます。

Sub プロシージャと Function プロシージャには、似た点と異なる点があります。引数を受け取って一連のステートメントを実行し、引数の値を変えることができる点は似ています。しかし、Sub プロシージャは値を返す Function プロシージャと異なり、式の中で使うことはできません。

Sub プロシージャを呼び出すには、プロシージャ名の後ろに引数リストを付けて指定します。Sub プロシージャの呼び出し方法については、Call ステートメントを参照してください。

注意   Sub プロシージャは、再帰的に使うことができます。つまり、そのプロシージャ自体を呼び出すことができます。ただし、再帰呼び出しを行うと、スタックがオーバーフローする可能性があります。キーワード Static は、通常、再帰的な Sub プロシージャでは使いません。

Sub プロシージャで使う変数には、Sub プロシージャ内で明示的に宣言される変数と、それ以外の変数の 2 種類があります。プロシージャ内で明示的に宣言された変数は、ローカル変数 (そのプロシージャの中だけで有効) になります。プロシージャ内で明示的に宣言されていない変数も、そのプロシージャの外部のさらに上のレベルで明示的に宣言されていない限りは、ローカル変数となります。

注意   プロシージャ内で明示的に宣言していない変数をプロシージャ内で使うことはできますが、その変数と同じ名前の変数などがモジュール レベルで定義されている場合、名前の競合が発生します。あるプロシージャから、他のプロシージャ、定数または変数、オブジェクトのいずれかと同じ名前を持つ未宣言の変数を参照した場合、そのモジュール レベルの名前を参照していると見なされます。このような名前の競合を避けるために、変数は明示的に宣言してください。Option Explicit ステートメントを使うと、変数の明示的な宣言が強制されるようになります。

注   GoSub、GoTo、Return などのステートメントによって、Sub プロシージャに入ったり、Sub プロシージャから抜けたりすることはできません。


関連項目

Call ステートメント

Dim ステートメント

Function ステートメント

Option Explicit ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Static ステートメント


Type ステートメント

関連項目	例

1 つまたは複数の要素を持つユーザー定義のデータ型 (ユーザー定義型) を宣言します。モジュール レベルで使用します。

構文

[Private | Public] Type varname
  elementname [([subscripts])] As type
[ elementname [([subscripts])] As type]
. . .
End Type

Type ステートメントの指定項目は次のとおりです。

指定項目	内容

Public	すべてのプロジェクトのすべてのモジュールのすべてのプロシージャから参照できるユーザー定義型を宣言するときに指定します。

Private	宣言が行われたモジュール内でのみ参照できるユーザー定義型を宣言するときに指定します。

varname	宣言するユーザー定義型の名前を指定します。変数の標準的な名前付け規則に従って付けてください。

elementname	ユーザー定義型を構成する要素を指定します。要素名は、変数の標準的な名前付け規則に従って付けてください。キーワードを使うこともできます。

subscripts	配列の要素の次元を指定します。動的配列を宣言するときは、かっこだけを指定してください。引数 subscripts の構文は次のとおりです。

[lower To] upper [,[lower To] upper] . . .

引数 lower を省略した場合、配列のインデックス番号の最小値は Option Base ステートメントによって制御されます。Option Base ステートメントが記述されていなければ、インデックス番号の最小値は 0 になります。

type	要素のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (可変長の場合は String、固定長の場合は String * length)、オブジェクト型、バリアント型 (Variant)、他のユーザー定義型、オブジェクトの種類のいずれかを指定できます。

解説

Type ステートメントはモジュール レベルでのみ使用できます。Type ステートメントでユーザー定義型を宣言すると、その適用範囲内であればどの場所でも、その型の変数を宣言できるようになります。ユーザー定義型の変数の宣言には、Dim、Private、Public、ReDim、Static のいずれかのステートメントを使います。

標準モジュールでは、ユーザー定義型は既定ではパブリックになり、適用範囲はキーワード Public で変更できます。クラス モジュールでは、ユーザー定義型は常にプライベートになり、適用範囲をキーワード Public で変更することはできません。

Type...End Type ブロック内では行番号と行ラベルは使えません。

ユーザー定義型は、データ型の異なる多数の関連する要素で構成されるデータ レコードによく使われます。

次の例は、ユーザー定義型の中にサイズ固定型の配列を含めたものです。

Type StateData

CityCode (1 To 100) As Integer 	' サイズ固定型 (静的) 配列を宣言します。

County As String * 30

End Type

Dim Washington(1 To 100) As StateData

この例では、StateData にはサイズ固定型の配列 CityCode が含まれており、また、レコード Washington は StateData と同じ構造を持っています。

ユーザー定義型の中でサイズ固定型の配列を宣言するときは、次元は変数ではなく数値定数で宣言する必要があります。

ユーザー定義型に含まれる配列のインデックス番号の最小値は、Option Base ステートメントの設定によって決まります。


関連項目

データ型の概要

Dim ステートメント

Option Base ステートメント

Private ステートメント

Public ステートメント

ReDim ステートメント

Static ステートメント


UBound 関数

関連項目	例

配列の指定した次元で使うことのできるインデックス番号の最大値を返します。

構文

UBound(arrayname[, dimension])

UBound 関数の指定項目は次のとおりです。

指定項目	内容

arrayname	配列変数の名前を指定します。変数の標準的な名前付け規則に従って付けてください。

dimension	インデックス番号の最大値を調べたい配列の次元を示す整数を指定します。最初の次元なら 1、2 番めの次元なら 2 というように指定します。dimension を省略すると、1 が指定されたものと見なされます。

解説

UBound 関数は、LBound 関数と組み合わせて、配列のサイズを調べるために使います。インデックス番号の最小値を調べるには、LBound 関数を使ってください。

次のような配列が宣言されているとき、UBound 関数は、下の表のような値を返します。

Dim A(1 To 100, 0 To 3, -3 To 4)

ステートメント	戻り値

UBound(A, 1)	100

UBound(A, 2)	3

UBound(A, 3)	4


関連項目

Dim ステートメント

Public ステートメント

LBound 関数

Option Base ステートメント

ReDim ステートメント

Static ステートメント


変換関数

Asc 関数

CBool 関数

CByte 関数

CCur 関数

CDate 関数

CDbl 関数

Chr 関数

CInt 関数

CLng 関数

CSng 関数

CStr 関数

CVar 関数

CVErr 関数

Format 関数

Hex 関数

Oct 関数

Str 関数

Val 関数


Asc 関数

関連項目	例

指定した文字列の、最初の文字の文字コードを返す変換関数です。

構文

Asc(string)

引数 string には、任意の文字列式を指定します。引数 string に文字が含まれていないときは、実行時エラーが発生します。

注   文字列に含まれたバイト データを取得するには、AscB 関数を使用します。AscB 関数は、最初の文字の文字コードではなく、最初のバイト データを返します。

注   Visual Basic for Applications 2.0 では Asc 関数および AscB 関数に加えて AscW 関数が新たに提供されています。AscW 関数は 32 ビット オペレーティング システム上では Unicode を返します。16 ビット オペレーティング システム上では、Asc 関数と同じ文字コードを返します。


関連項目

ASCII 文字セット (0 - 127)

Chr 関数

変換関数


CBool 関数

関連項目	例

指定した式を、ブール型 (Boolean) に変換した値を返す変換関数です。

構文

CBool(expression)

引数 expression には、任意の数式や文字列式を指定します。文字列式は、“True”または“False”、および数値として解釈できる値を設定します。

解説

引数 expression が 0 のときは、偽 (False) が返されます。それ以外のときは、真 (True) が返されます。引数 expression が数値として扱えないときは、実行時エラーが発生します。


関連項目

変換関数

データ型の概要


CByte 関数

関連項目	例

指定した式を、バイト型 (Byte) に変換した値を返す変換関数です。

構文

CByte(expression)

引数 expression には、任意の数式や文字列式を指定します。文字列式は、“True”または“False”、および数値として解釈できる値を設定します。

解説

ある操作結果を既定のデータ型ではなく特定のデータ型として表す必要がある場合には、通常データ型変換関数を使用してコードを記述します。たとえば、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、または整数型 (Integer) で演算が行われる場合に、CByte 関数を使用して強制的にバイト型で演算を行います。

国別情報に対応するために他のデータ型からバイト型に変換するには、Val 関数の代わりに CByte 関数を使用します。たとえば、数値の区切り記号はシステムの国別情報の設定に応じて適切に認識されます。

引数 expression にバイト型の許容範囲を超える値が指定されている場合、エラーが発生します。


関連項目

変換関数

データ型の概要


CCur 関数

関連項目	例

指定した式を、通貨型 (Currency) に変換した値を返す変換関数です。

構文

CCur(expression)

引数 expression には、任意の数式や文字列式を指定します。

解説

CCur 関数を使うと、通常は単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、整数型 (Integer) を使う計算の中で、通貨型 (Currency) の数値を使うことができます。

他のデータ型を通貨型に変換するときは、Val 関数ではなく、国別情報を基に変換を行う CCur 関数を使うようにしてください。これにより、コンピュータの国別情報の設定に従って、その国で使われている小数点記号や千単位の区切り記号が正しく処理されます。

引数 expression の値が、通貨型の値の範囲を超えると、エラーが発生します。


関連項目

変換関数

データ型の概要

国別情報


CDate 関数

関連項目	例

指定した式を、日付型 (Date) に変換した値を返す変換関数です。

構文

CDate(date)

引数 date には、任意の日付式を指定します。

解説

CDate 関数は、日付/時刻リテラル、および日付と解釈できる数値を引数として受け取ります。数値を日付に変換するとき、整数部の値が日付に変換されます。小数点以下の値は、午前 0 時から始まる時間に変換されます。IsDate 関数を使うと、引数 date に指定する値が日付や時間に変換できるかどうかを調べられます。

CDate 関数は、国別情報に基づいて、日付の形式を認識します。認識できない日付の設定があるときには、年、月、日の表示の順番を正しく決定できないこともあります。また、日付の形式が曜日を含む長い形式の場合も認識できません。

注   Visual Basic の以前のバージョンとの互換性を保つため、CVDate 関数も用意されています。ただし、現在はデータ型に日付型があるため、今後は CVDate 関数は必要ではありません。CVDate 関数の構文は、CDate 関数と同じです。異なる点は、CVDate 関数は VarType 7 (日付) のバリアント型 (Variant) を返すのに対して、CDate 関数は日付型を返すということです。CVDate 関数の戻り値は、式を日付型に変換し、さらにバリアント型に変換したものと同じです。この方法は、他のすべてのデータ型をバリアント型の内部処理形式に変換する処理と同じです。


関連項目

変換関数

データ型の概要

IsDate 関数

DateSerial 関数

国別情報


CDbl 関数

関連項目	例

指定した式を、倍精度浮動小数点数型 (Double) に変換した値を返す変換関数です。

構文

CDbl(expression)

引数 expression には、任意の数式や文字列式を指定します。

解説

CDbl 関数または CSng 関数を使うと、通常は通貨型 (Currency) または整数型 (Integer) を使う計算の中で、倍精度浮動小数点数型 (Double)、単精度浮動小数点数型 (Single) の数値を使うことができます。

他のデータ型を倍精度浮動小数点数型に変換するときは、Val 関数ではなく、国別情報を基に変換を行う CDbl 関数を使うようにしてください。これにより、システムの国別情報の設定に従って、その国で使われている小数点記号や千単位の区切り記号が正しく処理されます。


関連項目

変換関数

データ型の概要

国別情報


CInt 関数

関連項目	例

指定した式を、整数型 (Integer) に変換した値を返す変換関数です。

構文

CInt(expression)

引数 expression には、任意の数式や文字列式を指定します。

解説

CInt 関数または CLng 関数を使うと、通常は通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double) を使う計算の中で、整数型 (Integer) の数値を使うことができます。

他のデータ型を整数型に変換するときは、Val 関数ではなく、国別情報を基に変換を行う CInt 関数を使うようにしてください。これにより、コンピュータの国別情報の設定に従って、その国で使われている小数点記号や千単位の区切り記号が正しく処理されます。

引数 expression の値が、整数型の値の範囲を超えると、エラーが発生します。

注   CInt 関数は小数部分を丸めますが、Fix 関数と Int 関数は小数部分を切り捨てます。小数部分がちょうど 0.5 のとき、CInt 関数は常に最も近い偶数に値を丸めます。たとえば、0.5 を 0 に、1.5 を 2 に、それぞれ丸めます。


関連項目

変換関数

データ型の概要

Int、Fix 関数

国別情報


CLng 関数

関連項目	例

指定した式を、長整数型 (Long) に変換した値を返す変換関数です。

構文

CLng(expression)

引数 expression には、任意の数式や文字列式を指定します。

解説

CInt 関数または CLng 関数を使うと、通常は通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double) を使う計算の中で、整数型 (Integer) の数値を使うことができます。

他のデータ型を長整数型に変換するときは、Val 関数ではなく、国別情報を基に変換を行う CLng 関数を使うようにしてください。これにより、システムの国別情報の設定に従って、その国で使われている小数点記号や千単位の区切り記号が正しく処理されます。

引数 expression の値が、長整数型の値の範囲を超えると、エラーが発生します。

注   CLng 関数は小数部分を丸めますが、Fix 関数と Int 関数は小数部分を切り捨てます。小数部分がちょうど 0.5 のとき、CLng 関数は常に最も近い偶数に値を丸めます。たとえば、0.5 を 0 に、1.5 を 2 に、それぞれ丸めます。


関連項目

変換関数

データ型の概要

Int、Fix 関数

国別情報


CSng 関数

関連項目	例

指定した式を、単精度浮動小数点数型 (Single) に変換した値を返す変換関数です。

構文

CSng(expression)

引数 expression には、任意の数式や文字列式を指定します。

解説

CSng 関数または CDbl 関数を使うと、通常は通貨型 (Currency) または整数型 (Integer) を使う計算の中で、倍精度浮動小数点数型 (Double)、単精度浮動小数点数型 (Single) の数値を使うことができます。

他のデータ型を単精度浮動小数点数型に変換するときは、Val 関数ではなく、国別情報を基に変換を行う CSng 関数を使うようにしてください。これにより、システムの国別情報の設定に従って、その国で使われている小数点記号や千単位の区切り記号が正しく処理されます。

引数 expression の値が単精度浮動小数点数型の値の範囲を超えると、エラーが発生します。


関連項目

変換関数

データ型の概要

国別情報


CStr 関数

関連項目	例

指定した式を、文字列型 (String) に変換した値を返す変換関数です。

構文

CStr(expression)

引数 expression には、任意の数式や文字列式を指定します。

解説

CStr 関数を使うと、引数に指定された式を文字列型に変換します。

他のデータ型を文字列型に変換するときは、Str 関数ではなく、国別情報を基に変換を行う CStr 関数を使うようにしてください。これにより、システムの国別情報の設定に従って、その国で使われている小数点記号や千単位の区切り記号が正しく処理されます

次の表は、引数 expression に指定された式と、CStr 関数の戻り値を示しています。

expression	CStr の戻り値

ブール型 (Boolean)	真 (True) または偽 (False) を表す文字列。

日付型 (Date)	国別情報で設定されている短い形式の日付を表す文字列。

Null 値	実行時エラーが発生します。

Empty 値	長さ 0 の文字列 ("")。

エラー値	“エラー値”という文字列 (国別情報により異なります) と、エラー値として格納されている数値を合わせた文字列。

数式以外	数値を表す文字列。


関連項目

変換関数

データ型の概要

Str 関数

国別情報


CVar 関数

関連項目	例

指定した式を、バリアント型 (Variant) に変換した値を返す変換関数です。

構文

CVar(expression)

引数 expression には、任意の数式や文字列式を指定します。

解説

CVar 関数を使うと、引数 expression に指定した式をバリアント型に変換します。


関連項目

変換関数

データ型の概要


CVErr 関数

関連項目	例

指定した数値 (エラー番号) を、バリアント型 (Variant) の特殊な内部処理形式であるエラー値に変換した値を返す変換関数です。

構文

CVErr(errornumber)

引数 errornumber には、任意の数値 (エラー番号) を指定します。

注   引数 errornumber に指定する値は、Visual Basic で定義されていないエラー番号を使用してください。また、Visual Basic の将来のバージョンで新しいエラーが定義されると、使われるエラー番号の数も増えることになるため、大きい番号から小さい番号へ順に指定するようにしてください。

解説

CVErr 関数を使用して、作成したプロシージャ内でユーザー定義のエラーを作成できます。たとえば、複数の引数を受け取り、1 つの文字列を返す関数を作成したときに、入力された引数の値が許容範囲内にあるかどうかを評価することができます。引数が許容範囲内にない場合、作成した関数は予期する値を返しません。このような場合、CVErr 関数を使用することにより、どのような動作が行われたかを知らせるエラー番号を返すことができます。

注   Error 関数の暗黙の変換はできません。たとえば、CVErr 関数の戻り値をバリアント型以外の変数に直接割り当てることはできません。ただし、CVErr 関数の戻り値を明示的に変換 (CInt 関数、CDbl 関数などで変換) することで、適切なデータ型の変数に割り当てることができます。


関連項目

変換関数

データ型の概要

IsError 関数


Val 関数

関連項目	例

指定された文字列中の数値として解釈できるものを、数値に変換した値を返す変換関数です。

構文

Val(string)

引数 string には、任意の文字列式を指定します。

解説

文字列中に数字以外の文字が見つかると、Val 関数は読み込みを中止します。円記号 (\) やカンマ (,) など、通常は数値の一部と見なされる記号や文字も、Val 関数は数値として解釈しません。ただし、Val 関数は基数を示すプリフィックス &O (8 進数) や &H (16 進数) は認識します。引数の文字列中に含まれるスペース、タブ、ライン フィードは無視されます。

次のように指定すると、Val 関数は 1615198 という値を返します。

Val("    1615 198th Street N.E.")

次のコードでは Val 関数は 16 進数の値を、10 進数の -1 にして返します。

Val("&HFFFF")

注   Val 関数は、ピリオド (.) だけを有効な小数点の記号として認識します。ピリオドと異なる小数点の記号が使われている可能性があるときは、Val 関数で文字列を数値に変換するよりも、CDbl 関数を使うようにしてください。


関連項目

CDbl 関数

Str 関数


オブジェクト変数の作成

関連項目

オブジェクト変数は、参照するオブジェクトと同じように扱うことができます。つまり、オブジェクトのプロパティの値を取得または設定したり、そのオブジェクトのメソッドを使用できます。

オブジェクト変数を作成するには

1.	オブジェクト変数を宣言します。

2.	オブジェクト変数に対して参照するオブジェクトを代入します。

オブジェクト変数の宣言

オブジェクト変数は、Dim ステートメント、またはその他の宣言ステートメントの Public、Private、Static を使って宣言します。オブジェクト変数は、バリアント型 (Variant)、総称オブジェクト型 (Object)、固有オブジェクト型のいずれかのデータ型でなければなりません。有効な宣言の例を次に示します。

Dim MyObject	' バリアント型で宣言します。

Dim MyObject As Object	' 総称オブジェクト型で宣言します。

Dim MyObject As Font	' 固有オブジェクト型 (Font) で宣言します。

注   他の変数の場合と同じように、明示的に宣言していないオブジェクト変数のデータ型はバリアント型になります。

総称オブジェクト型で宣言した変数は、任意のオブジェクトを参照することができます。総称オブジェクト型のオブジェクト変数は、プロシージャを実行するまでオブジェクトの種類が特定できない場合に使います。

参照するオブジェクトの種類が事前にわかっている場合は、そのオブジェクトの種類を指定して固有オブジェクト型として変数を宣言してください。たとえば、Sample オブジェクトを利用するアプリケーションで、そのオブジェクトを参照するオブジェクト変数を宣言するときは、次のどちらのステートメントも使用できます。

Dim MyObject As Object	' 総称オブジェクト型で宣言します。

Dim MyObject As Sample	' 固有オブジェクト型 (Sample) で宣言します。

特定オブジェクトを指定して固有オブジェクト型として宣言すると、型チェックが自動的に行われると共に、コードの実行速度やコードの読みやすさも向上します。

参照オブジェクトをオブジェクト変数へ代入

参照するオブジェクトをオブジェクト変数に代入するには、Set ステートメントを使用します。オブジェクト変数に代入できるのは、オブジェクト式か Nothing のいずれかです。オブジェクト変数への代入の例を次に示します。

Set MyObject = YourObject	' 参照オブジェクトを代入します。

Set MyObject = Nothing	' 変数とオブジェクトとの関係を無効にします。

オブジェクト変数に Nothing を代入すると、そのオブジェクト変数と、その変数が参照していたオブジェクトとの関係が無効になります。オブジェクト変数に Nothing を代入しておくと、変数の内容を変更したために参照していたオブジェクトに誤って変更を加えてしまうのを防ぐことができます。また、オブジェクトを閉じた後は、そのオブジェクトを参照しているオブジェクト変数に必ず Nothing を代入するようにすれば、オブジェクト変数が有効なオブジェクトを参照しているかどうかを簡単に調べることができます。次に例を示します。

If Not MyObject Is Nothing Then	' オブジェクト変数が有効なオブジェクトを

' 参照している場合。

. . .

End If

オブジェクトの現在のインスタンスを参照するには

現在コードが実行されているオブジェクトの現在のインスタンスを参照するには、キーワード Me を使用します。現在のオブジェクトを参照しているすべてのプロシージャには、キーワード Me で参照できるオブジェクトへのアクセス権があります。キーワード Me は、複数のオブジェクトを利用するアプリケーションで、現在コードが実行されているオブジェクトを指定するために使われます。特に、動作中のオブジェクトに関する情報を他のモジュール内のプロシージャに渡すときなどは、キーワード Me が役立ちます。たとえば、コード モジュール内に次のようなプロシージャがある場合を考えます。

Sub ChangeObjectColor(MyObjectName As Object)

MyObjectName.BackColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)

End Sub

次のステートメントを実行すると、プロシージャを呼び出して、現在のオブジェクトを引数として渡すことができます。

ChangeObjectColor Me


関連項目

CreateObject 関数

GetObject 関数

Me キーワード

Nothing キーワード

オブジェクト型 (Object)

Set ステートメント


配列の作成

関連項目

特にデータ型を指定しないで配列を宣言すると、配列の要素はバリアント型 (Variant) になります。バリアント型の配列では、各要素にそれぞれ 16 バイトのメモリが割り当てられます。各種の配列のサイズについて、次に例を示します。

' この整数型の配列のサイズは 22 バイトです。

' (要素数 11 * 2 バイト)。

ReDim MyIntegerArray(10) As Integer

' この倍精度浮動小数点数型の配列のサイズは 88 バイトです。

' (要素数 11 * 8 バイト)。

ReDim MyDoubleArray(10) As Double

' このバリアント型の配列のサイズは 最低 176 バイトです。

' (要素 11 * 16 バイト)。

ReDim MyVariantArray(10)

' この整数型の配列のサイズは 20,000 バイトです。

' (100 * 100 * 2 バイト)。

ReDim MyIntegerArray (99, 99) As Integer

' この倍精度浮動小数点数型の配列のサイズは 80,000 バイトです。

' (100 * 100 * 8 バイト)。

ReDim MyDoubleArray (99, 99) As Double

' このバリアント型の配列のサイズは最低 160,000 バイトです。

' (100 * 100 * 16 バイト)。

ReDim MyVariantArray(99, 99)

配列の最大サイズは、オペレーティング システム、また使用可能メモリのサイズに依存します。


関連項目

Array 関数

Dim ステートメント

Private ステートメント

Public ステートメント

ReDim ステートメント

Static ステートメント

効率のよいデータ型の使い方


再帰プロシージャの作成

関連項目

再帰プロシージャとは、自分自身を呼び出すようにプログラミングされたプロシージャのことをいいます。プロシージャが使用できる変数用のメモリ領域のサイズは限られています。プロシージャが自分自身を呼び出すと、そのたびに、消費される変数用の領域も多くなるので、無限に自分自身を呼び出す再帰プロシージャは、最終的にはエラーになります。次に例を示します。

Function RunOut(Maximum)

RunOut = RunOut(Maximum)	' 終了せずに自分自身を呼び出し続けるため

End Function	' エラーとなります。

2 つのプロシージャが互いを無限に呼び出し合う場合、また、再帰呼び出しを制限する条件を指定していてもその条件が満たされることがない場合などは、このようなエラーを検出することが難しくなります。このような問題はありますが、再帰呼び出しを使うと便利な場合もあります。次の例は、階乗を計算する再帰プロシージャです。

Function Factorial (N)

If N <= 1 Then	' 再帰呼び出しの終了条件。

Factorial = 1	' (N = 0) が真なので, それぞれの呼び出しを終了します。

Else	' N > 0 の場合は再度 Factorial を呼び出します。

Factorial = Factorial(N - 1) * N

End If

End Function

再帰プロシージャを使うときは、再帰呼び出しのネスト (入れ子) が深くなりすぎてメモリ不足にならないように、事前に十分なテストをするようにしてください。エラーが発生した場合は、まず、そのプロシージャで再帰呼び出しが無限に行われていないことを確認してください。再帰呼び出しの終了条件に問題がなかったときには、次のようにしてメモリの使用量を抑えてください。

不要な変数を取り除く。

バリアント型 (Variant) 以外のデータ型を使う。

プロシージャの論理 (ロジック) や構造を見直す。再帰を使う代わりにループをネスト (入れ子) させて解決できる場合が多い。


関連項目

For...Next ループの高速化

効率のよいデータ型の使い方


For...Next ループの高速化

関連項目

整数型 (Integer) は、バリアント型 (Variant) よりもサイズが小さいだけでなく、演算処理も速くなります。各演算の処理速度の違いはわずかですが、大量の処理を行うような場合、この差は顕著になります。次に例を示します。

Dim CountFaster As Integer	' ここでは整数型を使っています。

For CountFaster = 0 to 32766

Next CountFaster

Dim CountSlower As Variant	' ここではバリアント型を使っています。

For CountSlower = 0 to 32766

Next CountSlower

最初の例は 2 番めの例に比べて多少高速に実行されます。ただし、変数 CountFaster の値が 32,767 を超えるとエラーが発生します。この問題を解決するには、変数 CountFaster のデータ型を、整数型よりも値の範囲が広い長整数型 (Long) に変更します。ただし、長整数型の変数は、整数型の変数に比べて演算処理速度は遅くなります。一般に、サイズの小さなデータ型ほど演算処理に要する時間は少なくて済みます。バリアント型は、同等のデータ型と比べて演算処理速度が多少遅くなります。


関連項目

データ型の概要

効率のよいデータ型の使い方


モジュール レベルの適用範囲 (スコープ)

関連項目

モジュールの宣言セクションで定義されているモジュール レベルの変数やオブジェクトは、同一モジュール内のすべてのプロシージャから参照できます。プロシージャ レベル (ローカル) の変数と同名のモジュール レベルの変数を参照するときは、変数名の前にモジュール名を付ける必要があります。たとえば、モジュール MyModule 内で宣言されたモジュール レベル変数 MyVar と、プロシージャ内で宣言された変数 MyVar が混在する場合、プロシージャ内でモジュール レベル変数 MyVar を使うときは、MyModule.MyVar と表記して区別します。ただし、同名のローカル変数が存在しないプロシージャ内では、モジュール レベルの変数をこのように区別して表記する必要はありません。モジュール レベルの変数は常に Static であり、プログラムの実行中は常にメモリ上に存在します。

プロシージャ名は常にモジュール レベルで定義され、初期設定ではプロジェクト内のどこからでも参照できます (呼び出せます)。複数のモジュール内で同じプロシージャ名が使われているときには、呼び出したいプロシージャを明確に識別するために、プロシージャ名をモジュール名で修飾しなければなりません。たとえば、MyModule.MyProc と指定することにより MyModule 内のプロシージャ MyProc であることを識別します。

プロシージャを定義したモジュール内でだけ参照できるようにするには、Private として定義することにより、プロジェクト内の他のモジュールのプロシージャから呼び出されないようにすることができます。プロシージャの有効期間は、そのモジュールが実行中のプログラムの一部であれば、Static 変数の有効期間と同じになります。

変数と記号定数 (Const ステートメントで宣言された定数) は、特に指定しない限り、プライベート (Private) になります。プロシージャは、特に指定しない限り、パブリック (Public) になります。ユーザー定義型 (Type ステートメントで宣言される型) は、特に指定しない限りパブリック (Public) になります。


関連項目

Const ステートメント

Private ステートメント

プロシージャ レベルの適用範囲 (スコープ)

Public ステートメント

適用範囲と参照可能範囲

Static ステートメント

Type ステートメント


名前の二重定義によるエラー

関連項目

Option Explicit を指定して明示的に変数を宣言するようにしていても、名前の二重定義によるエラーが発生することがあります。たとえば、宣言していない識別子をプロシージャの For...Next ループ内で使うとき、その変数により適用範囲 (スコープ) の広い変数が同じ名前で存在すると、適用範囲 (スコープ) の広い方の変数を変更してしまう可能性があります。

Option Explicit	' 変数を使う前に強制的に宣言させます。

Dim X	' X のモジュール レベル宣言。

Sub AnyProc()

' この位置で Dim X として宣言すればエラー防止になります。

For X = 0 to 25	' ループ カウンタ X はプロシージャ レベルで宣言されていません。

Print X	' この X はモジュール レベルの X と同じです。

Next X

Call AnotherProc

End Sub

Sub AnotherProc()

X = X + 1

Print X	' この X は AnyProc 内のループ カウンタの値をとります。

End Sub


関連項目

For...Next ステートメント

Option Explicit ステートメント

名前の二重定義の回避

適用範囲と参照可能範囲


OLE オートメーション

関連項目

OLE オートメーションは、アプリケーション OLE オブジェクトを、開発ツール、マクロ言語、および OLE オートメーションに対応している他のアプリケーションに対して、提供するための標準機能です。たとえば、表計算アプリケーションでは、ワークシート、グラフ、セル、セル範囲などが、それぞれ異なる型のオブジェクトとして提供されます。また、ワード プロセッサであれば、アプリケーション、文書、段落、文、ブックマーク、選択範囲などのオブジェクトが提供されます。

OLE オートメーションに対応しているアプリケーションが提供するオブジェクトは、Microsoft Visual Basic で参照して操作することができます。Visual Basic でオブジェクトを操作するには、オブジェクトに対してメソッドを実行したり、オブジェクトのプロパティの値を取得または設定したりします。たとえば、MyObj という OLE オートメーション オブジェクトを作成すると、次のようなコードでこのオブジェクトを操作することができます。

MyObj.Insert "Hello, world."	' テキストの挿入。

MyObj.Bold = True	' 書式の設定。

MyObj.SaveAs  "C:\WORDPROC\DOCS\TESTOBJ.DOC"	' オブジェクトの保存。

J.DOC"	' オブジェクトの保存。

OLE オートメーション オブジェクトを利用する関数は次のとおりです。

関数	内容

CreateObject	指定した種類のオブジェクトを新規に作成します。

GetObject	オブジェクトをファイルから取得します。

アプリケーションで利用できるオブジェクト、関数、プロパティ、メソッドは、通常、アプリケーションのオブジェクト ライブラリで定義されます。


関連項目

CreateObject 関数

GetObject 関数

Set ステートメント


効率的な引数の引き渡し

関連項目

すべての引数は、特に指定しない限り参照渡しによってプロシージャに渡されます。参照渡しでは、引数のデータ型に関係なく、すべての引数が渡されるときの所要時間とプロシージャ内のメモリ領域の大きさ (4 バイト) が同じであるため効率的です。

プロシージャの宣言にキーワード ByVal を含めると、引数を参照渡しではなく値渡しで渡すことができます。値渡しでは、引数のデータ型に応じてプロシージャ内で 2 ～ 16 バイトのメモリ領域を占有します。データ型が大きくなると、小さいデータ型よりも引き渡し時間が若干長くなります。このため、一般に文字列型 (String) とバリアント型 (Variant) では値渡しを使用せず、参照渡しを使用します。

引数を値渡しすると、元の変数のコピーが呼び出されたプロシージャに渡されます。

プロシージャ内で引数に変更を行っても、元の変数には反映されません。次に例を示します。

Function Factorial (ByVal MyVar As Integer)	' 関数の宣言。

MyVar = MyVar - 1

If MyVar = 0 Then

Factorial = 1

Exit Function

End If

Factorial = Factorial(MyVar) * (MyVar + 1)

End Function

' 変数 S を使って Factorial を呼び出します。

S = 5

Print Factorial(S)	' 120 (5 の因数) が表示されます。

Print S	' 5 が表示されます。

関数の宣言内で ByVal を指定しなければ、上記の 2 つの Print ステートメントによってそれぞれ 1 と 0 が表示されます。これは、MyVar が変数 S を参照し、変数 S は 0 に等しくなるまで 1 ずつ減算されるからです。

キーワード ByVal によって引数がコピーされるので、上記の Factorial 関数にバリアント型を渡すことができます。この引数を宣言するプロシージャが別のデータ型であれば、バリアント型を参照渡しすることはできません。

一般に、引数は値渡し (ByVal) を使って渡した方が高速ですが、参照渡し (ByRef) を使って渡した方が、渡す動作は高速になります。


関連項目

ByRef キーワード

ByVal キーワード

データ型の概要

効率のよいデータ型の使い方


プロシージャ レベルの適用範囲 (スコープ)

関連項目

プロシージャ レベル (プロシージャの中) で定義された変数やオブジェクトは、定義されたプロシージャからのみ参照することができ、そのプロシージャの外側からは参照できません。また、変数が Static として宣言されると、そのモジュールが実行中のプログラムの一部であれば、必ずその変数が存在します。それ以外の場合、ローカル変数はプロシージャが開始されるたびに作成され、プロシージャが終了するたびに破棄されます。

プロシージャを他のプロシージャ内でネスト (入れ子) することはできません。


関連項目

モジュール レベルの適用範囲 (スコープ)

適用範囲と参照可能範囲

Static ステートメント


名前の二重定義の回避

関連項目

Microsoft Visual Basic によって定義済みとして認識される識別子を作成しようとしたり、使おうとすると、名前付けの競合が発生します。名前付けの競合によって、“名前が適切ではありません。”などのエラーが生成されることがあります。名前付けの競合は検出されないことがあります。特に、すべての変数を明示的に宣言せずに変数を使うと、コード内に名前付けの競合が発生し、間違った結果が生じる可能性があります。

名前付けの競合のほとんどは、データ、オブジェクト、およびプロシージャの識別子の適用範囲 (スコープ) の特性を理解することで解決できます。Visual Basic には、プロシージャ レベルとモジュール レベルという 2 つのスコープ レベルがあります。

名前付けの競合は、次のような識別子に関連して発生することがあります。

複数のスコープ レベルで表示される識別子。

同じレベルで 2 つの異なる意味をもつ識別子。

たとえば、別々のモジュール内のプロシージャは、同じ名前を持つことができます。したがって、プロシージャ MySub をモジュール Mod1 および Mod2 内で定義することができます。プロシージャが固有のモジュールからのみ呼び出されるときは、競合は発生しません。しかし、MySub が第 3 のモジュールから呼び出されるときに、2 つの MyStub プロシージャを区別する修飾子を与えなければ、エラーが発生することがあります。たとえば、MySub (Mod1 および Mod2 モジュールの両方で定義されたプロシージャ) を Mod5 から呼び出すには、単に呼び出し内で Mod1.MySub または Mod2.MySub として指定します。

Visual Basic は、識別子へのそれぞれの参照を、それに対応する識別子の“最も近い”宣言と一致させます。たとえば、MyID がプロジェクト内の 2 つのモジュール (Mod1 と Mod2) 内で Public として宣言されているときは、Mod2 内で修飾しなくても Mod2 内で宣言された MyID を指定できますが、このプロシージャを Mod1 内で指定するには Mod2.MyID として修飾しなければなりません。このことは、Mod2 が異なるプロジェクト内にあるときにも、直接の参照先プロジェクトであるときにも適用されます。ただし、Mod2 が間接的な参照先プロジェクト内にあるときは、その変数 MyID への参照をプロジェクト名で必ず修飾しなければなりません。第 3 の直接の参照先モジュールから MyID を参照すると、次のものを検索し、検出された最初の宣言とマッチされます。

[ツール] - [参照設定] ダイアログ ボックスに表示される順に、直接参照先プロジェクトが検索されます。

各プロジェクトのモジュールが検索されますが、プロジェクト内のモジュールには固有の順序がないので注意してください。

ホスト アプリケーション オブジェクト (Microsoft Excel の R1C1 など) を異なるスコープ レベルで再利用することはできません。

各モジュールの始めにステートメント Option Explicit を与えると、各変数が使われる前にそれを明示的に宣言させることによって、名前付けの競合と識別子に関連する不具合いを防ぐことができます。

一般に、名前付けの競合は、次のように、名前の前にそのモジュール名をつけることによって解決することができます。

YourModule.YourSub MyProject.MyModule.MyVar

上記のコードは、Sub プロシージャ YourSub を呼び出し、引数として MyVar を渡します。同じ識別子を区別できる修飾子を任意に組み合わせて使うことができます。

名前付けの競合によって発生する典型的なエラーには、あいまいな名前によるエラー、宣言を複製するときのエラー、識別子が宣言されていないためのエラー、プロシージャが見つからないためのエラーなどがあります。


関連項目

名前の二重定義によるエラー

Option Explicit ステートメント

Public ステートメント

適用範囲と参照可能範囲

Sub ステートメント


文字列を返す関数

関連項目

関数によっては 2 つの形式を持つものがあります。第 1 の形式はバリアント型 (Variant) を返し、第 2 の形式は文字列型 (String) を返します。バリアント型の形式は、異なるデータ型の変換が自動的に処理されるので、最も便利に使うことができます。

次のような場合には、文字列型の形式を使うことを検討してください。

プログラムが極端に大きく、多くの変数を使う場合。

ある型のデータが別の型に変換される位置を検出したい場合。

データをランダム アクセス ファイルに直接書き込みたい場合。

次の関数は、関数名にドル記号 ($) を追加すると、文字列型の値を返します。これらの関数は、ドル記号を付けずに使うと、バリアント型の値を返します。使い方と構文は、文字列型もバリアント型も同じです。

Chr$	ChrB$	CurDir$	Date$

Dir$	Error$	Format$	Hex$

Input$	InputB$	LCase$	Left$

LeftB$	Trim$	Mid$	MidB$

Oct$	Right$	RightB$	RTrim$

Space$	Str$	String$	Time$

Trim$	UCase$

注   InputB$、LeftB$、MidB$、RightB$ の各関数は、バイト単位で処理するため、2 バイト (全角) 文字の 1 バイトめと 2 バイトめとが分離されてしまうことがあります。


関連項目

データ型の概要

メモリ消費量の少ないデータ型

ファイルへのデータの書き込み


メモリ消費量の少ないデータ型

関連項目

バイト型 (Byte) が最もメモリ消費量の少ないデータ型です。ただし、ほとんどのコンピュータでは、ワード単位 (2 バイト) でデータをメモリに格納するため、メモリ領域を節約するためにデータ型を工夫する必要はありません。つまり、1 バイトだけのデータを格納しても 2 バイトのメモリを消費することになり、メモリ領域の節約はできません。メモリ領域の節約になるのは、バイト型の配列を使用する場合です。この場合、連続した配列の要素は、同時に 2 バイトづつワード単位で格納され、約 50% の節約になります。

ほとんどの場合、整数型 (Integer) は、メモリ領域の節約になるデータ型です。たとえば、バリアント型 (Variant) 1 つで消費するメモリ (16 バイト) は、整数型の変数 8 個分 (8 * 2 バイト) に相当します。ただし、データ型を工夫してメモリ領域を節約できる値は限られています。一般に、極端に大きい配列や再帰プロシージャがコードに含まれているか、または不注意からそれらを作成しない限り、メモリ記憶域の制限が問題になることはありません。


関連項目

配列の作成

再帰プロシージャの作成

データ型の概要

効率のよいデータ型の使い方


適用範囲と参照可能範囲

関連項目

Microsoft Visual Basic には、2 つの適用範囲と 2 つの参照可能範囲があり、各範囲によって識別子が認識される場所と時期が異なります。

適用範囲	プライベート	パブリック
プロシージャ レベル	すべての識別子は宣言されたプロシージャ内部でだけ参照でき、変更できません。	適用されません。
モジュール レベル	識別子は、宣言されたモジュール内でだけ参照できます。	識別子は、1 つのプロジェクトのすべてのモジュールで参照することができます。
Visual Basic では、認識される識別子を宣言するために多数のキーワードが使われます。次の表は、Visual Basic のキーワード、宣言する内容、初期設定での参照可能範囲、および使い方の例を示しています。

キーワード	対象	参照可能範囲 (初期設定)	例
Const	定数	プライベート	Const Pi = 3.1415
Dim	変数	プライベート	Dim A As Variant
Sub	Sub プロシージャ	パブリック	Sub MyProc(A As Integer) ... End Sub
Function	Function プロシージャ	パブリック	Function Sqrt(A) As Double ... End Function
Property	Property プロシージャ	パブリック	Property Get PCol() As String ... End Property
Type	ユーザー定義型	パブリック	Type EmployeeRecord    ID As Integer    Name As String End Type
キーワード Private を任意のキーワード (Dim を除く) と共に修飾子として使って、Public の初期設定での参照可能範囲を無効にすることができます。また、キーワード Public を任意のキーワード (Dim を除く) と共に修飾子として使って、Private の参照可能範囲を無効にすることができます。

Dim ステートメントは、宣言したモジュール内で参照可能なモジュール レベルの変数を宣言するときにだけ使います。ただし、他の 2 つのステートメントを使うと、宣言しようとするモジュール レベルの変数の参照可能範囲を明示的に宣言することができます。モジュール レベルの変数を、宣言したモジュール内のプロシージャでだけ参照できるように宣言するには、Private ステートメントを使います。変数を、それが宣言されるモジュールの外側にある他のプロシージャにも汎用として利用できるように宣言するには、Public ステートメントを使います。

変数と記号定数 (Const ステートメントで宣言された定数) は、特に指定しない限り、プライベート (Private) な適用範囲を持ちます。ユーザー定義型 (Type ステートメントで宣言された型) とプロシージャは、特に指定しない限りパブリック (Public) な適用範囲を持ちます。


関連項目

Const ステートメント

モジュール レベルの適用範囲 (スコープ)

Private ステートメント

プロシージャ レベルの適用範囲 (スコープ)

Public ステートメント

名前の二重定義の回避

Static ステートメント

Type ステートメント


効率のよいデータ型の使い方

関連項目

特に指定しない限り、宣言していない変数はバリアント型 (Variant) になります。バリアント型を使うとプログラムを簡単に作成できますが、常に効果的であるとは限りません。

次のような場合には、他のデータ型を使うことを検討してください。

プログラムが極端に大きく、多くの変数を使う場合。

プログラムをできるだけ高速で実行する必要がある場合。

ある型のデータが別の型に変換される位置を検出したい場合。

ランダム アクセス ファイルに直接書き込みたい場合。

バリアント型の他にサポートしているデータ型には、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、通貨型 (Currency)、日付型 (Date)、オブジェクト型 (Object)、および文字列型 (String) があります。特定の型の変数を宣言するには、次のように Dim ステートメントを使います。

Dim X As Integer

このステートメントは、-32,768 ～ 32,767 の範囲の整数である変数 X を宣言します。X をこの範囲外の数値に設定しようとすると、エラーが発生します。X を小数に設定しようとすると、その数値は次のように丸められます。

X = 32768 	' エラーが発生。

X = 5.9	' X に 6 が設定されます。


関連項目

データ型の概要

For...Next ループの高速化

メモリ消費量の少ないデータ型

ファイルへのデータの書き込み


アプリケーション間の連係

関連項目

Microsoft Visual Basic では、次の Microsoft 社製アプリケーションから新しいオブジェクトを作成したり、取得したりできます。

アプリケーション	オブジェクト型	クラス
Microsoft Access for Windows 95	Application	Access Application
Microsoft Excel Version 5.0	Application	Excel.Application
	Worksheet	Excel.Sheet
	Chart	Excel.Chart
Microsoft Project Version 4.0 (米国版)	Application	MSProject.Project
Microsoft Word Version 6.0	WordBasic	Word.Basic
これらの製品の最新バージョンでは、Visual Basic を使って他のアプリケーションからオブジェクトを作成または取得できます。また、他のアプリケーションでも、Visual Basic を使って作成できるオブジェクトを提供しているものもあります。詳細については、アプリケーションのマニュアルを参照してください。

新しいオブジェクトを作成、または既存のオブジェクトを別のアプリケーションから取得するには、CreateObject 関数または GetObject 関数を使います。

' Microsoft Excel を起動して新しい Worksheet オブジェクトを作成します。

Set ExcelWorksheet = CreateObject("Excel.Sheet")

' Microsoft Excel を起動して既存の Worksheet オブジェクトを開きます。

Set ExcelWorksheet = GetObject("SHEET1.XLS")

' Microsoft Word を起動します。

Set WordBasic = CreateObject("Word.Basic")

CreateObject 関数や GetObject 関数で起動されたアプリケーションの動作は、アプリケーションごとに異なります。たとえば、Microsoft Excel では起動時の表示は行われませんが、Microsoft Word では表示が行われます。Excel の場合、非表示のままにしていると、画面やアプリケーションの切り替えダイアログ ボックスには表示されません。Excel を表示するためには、次の例のように Visible プロパティを真 (True) に設定します。

ExcelWorksheet.Application.Visible = True

Visible プロパティを偽 (False) に設定すると、Excel は画面上に表示されなくなり、アプリケーションの切り替えダイアログ ボックスからも削除されます。このような状態にしても、Excel は終了しないので、Visual Basic から参照できます。

Word の場合は、作成または取得したオブジェクト変数に Nothing が設定されるか、あるいはそのオブジェクト変数の適用範囲 (スコープ) のコードが終了した時点で Word が終了します。終了する前に、次のような方法で変更内容の保存を行わないと、編集結果は失われます。

' 変更結果を保存したうえで、Microsoft Word を終了します。

WordBasic.FileSaveAll

Set WordBasic = Nothing

Excel の場合は、非表示のときに、作成または取得したオブジェクト変数に Nothing が設定されるか、あるいはそのオブジェクト変数の適用範囲 (スコープ) のコードが終了した時点で Excel が終了します。

' Microsoft Excel が非表示のとき終了します。表示中のときは終了しません。

Set ExcelWorksheet = Nothing

ほとんどのアプリケーションには Exit メソッドや Quit メソッドがあり、これらのメソッドを使うと、表示されているかどうかにかかわらず、アプリケーションを終了できます。アプリケーションの提供するオブジェクト、メソッド、プロパティについては、各アプリケーションのマニュアルまたはオンライン ヘルプを参照してください。

アプリケーションによっては、キーワード New を使って、タイプ ライブラリ内の任意のクラスのオブジェクトを作成できます。次にその例を示します。

Dim X As New Field

この場合、Field オブジェクトはデータ アクセス用のタイプ ライブラリ内のクラスの例です。Field オブジェクトの新しいインスタンスは、この構文を使って作成されます。どのオブジェクト クラスをこの方法で作成できるかについては、アプリケーションのマニュアルを参照してください。


関連項目

CreateObject 関数

GetObject 関数

New キーワード

Nothing キーワード

Set ステートメント


ファイルへのデータの書き込み

関連項目

大量のデータを扱う場合には、ファイルを利用すると便利です。Open ステートメントを使うと、ファイルを直接作成したり、直接操作したりすることができます。Open ステートメントでは、次の 3 種類の方法でファイルにアクセスすることができます。

シーケンシャル アクセス (Input モード、Output モード、Append モード)。エラー ログやレポートといった単純なテキスト ファイルの書き込みによく使います。

ランダム アクセス モード (Random)。ファイルを開いたままデータを読み書きする必要があるときに使います。ランダム アクセス ファイルでは、データはレコードの形で扱われます。したがって、情報へのアクセスが迅速に、しかも簡単に行えます。

バイナリ アクセス モード (Binary)。ビットマップ イメージの格納や表示を行う場合など、バイト単位でファイル内の任意の位置を読み書きする必要がある特殊な用途の場合に使います。

ファイルのデータの読み書きの際に使われる代表的なステートメントを次の表に示します。

アクセス方法	データの書き込み	データの読み込み

シーケンシャル アクセス	Print #、Write #	Input #

ランダム アクセス	Put	Get

バイナリ アクセス	Put	Get


関連項目

データ型の概要

Get ステートメント

Input # ステートメント

Open ステートメント

Print # ステートメント

Put ステートメント

Write # ステートメント


Call ステートメント

関連項目	例

Sub プロシージャ、Function プロシージャ、ダイナミック リンク ライブラリ (DLL) プロシージャに制御を渡すフロー制御ステートメントです。

構文

[Call] name [argumentlist]

Call ステートメントの指定項目は次のとおりです。

指定項目	内容

Call	省略可能なキーワードです。指定するときは、次に示すように引数リスト (argumentlist) をかっこで囲む必要があります。

Call MyProc(0)

name	呼び出すプロシージャの名前を指定します。

argumentlist	プロシージャに引き渡す変数リスト、配列、式のいずれかを指定します。複数指定するときは、カンマ (,) で区切ります。argumentlist に指定する各項目には、キーワード ByVal または ByRef を使ってプロシージャに引数の値をどのように渡すかを指定できます。ただし、キーワード ByVal および ByRef は、DLL プロシージャを呼び出すときだけ Call ステートメントと共に使うことができます。

解説

プロシージャを呼び出すとき、キーワード Call は省略できます。キーワード Call を使って、引数が必要なプロシージャを呼び出す場合は、引数リスト (argumentlist) をかっこで囲む必要があります。キーワード Call を省略するときは、引数リストを囲むかっこも省略しなければなりません。Call 構文で組み込み関数またはユーザー定義型関数を呼び出す場合、その関数の戻り値を取得することはできません。

配列全体を引数として渡す場合は、配列名の後ろに空のかっこを付けてください。


関連項目

Declare ステートメント


DoEvents 関数

関連項目	例

発生したイベントがオペレーティング システムによって処理されるように、プログラムで占有していた制御をオペレーティング システムに渡すフロー制御関数です。

構文

DoEvents( )

注   Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

解説

Visual Basic Standard Edition および Professional Edition では、DoEvents 関数は、開かれているフォームの数を返します。他のすべてのアプリケーションでは、DoEvents 関数は 0 を返します。DoEvents 関数は、開かれているフォームの数を返します。

DoEvents 関数は、オペレーティング システムに制御を渡します。オペレーティング システムがキュー (処理の待ち行列) に入っているイベントの処理を終了し、SendKeys ステートメントのキューに入っているすべてのキー入力が送られるまで制御は戻りません。

DoEvents 関数は、ある処理の実行中に発生したキー入力や、マウスのクリックなどのイベントに対してオペレーティング システムが正常に応答できるように、実行中の処理に割り込みをかけるときに使用します。プログラムの中に長時間かかる処理がある場合には、DoEvents 関数を使用して、オペレーティング システムに制御を渡してください。

注意   DoEvents 関数で最初に呼び出した処理から制御が戻ってくるまでは、DoEvents 関数を使って割り込みをかけたプロシージャがプログラムの別の箇所で実行されることがないように注意する必要があります。別の箇所で実行された場合、結果は予測できません。また、制御をオペレーティング システムに渡している間、他のアプリケーションが、確認できない方法でプロシージャとやり取りを行う可能性があるときは、DoEvents 関数は使わないでください。


関連項目

Idle メソッド

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

SendKeys ステートメント


Do...Loop ステートメント

関連項目	例

指定した条件が真 (True) である間、または条件が真 (True) になるまで、一連のステートメントを繰り返し実行するフロー制御ステートメントです。

構文

Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop

または、次の構文を使用できます。

Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]

Do...Loop ステートメントの指定項目は次のとおりです。

指定項目	内容

condition	真 (True) または偽 (False) を評価する数式、あるいは文字列式を指定します。引数 condition の値が Null なら、condition は偽 (False) であるとみなされます。

statements	引数 condition が真 (True) である間、または condition が真 (True) になるまで繰り返し実行される、任意の行数のステートメントを記述します。

解説

Exit Do ステートメントは、制御構造 Do...Loop 内でだけ使われ、引数 condition で指定した以外の条件で Do...Loop を終了させることができます。Exit Do ステートメントは、Do...Loop 内の任意の場所に何回でも使うことができます。Exit Do は条件の評価 (たとえば If...Then など) と共に使われることが多く、Loop ステートメントの直後のステートメントに制御を渡します。

Do...Loop ステートメントはネスト (入れ子) 構造にすることができます。つまり、Do...Loop の内部に別の Do...Loop を入れることができます。ネスト (入れ子) 構造にしたときに Exit Do が実行されると、その Exit Do を囲んでいる 1 番内側のループから抜け出します。


関連項目

Exit ステートメント

For...Next ステートメント

While...Wend ステートメント


End ステートメント

関連項目	例

プロシージャやブロック (一連のステートメントの集まり) を終了させるフロー制御ステートメントです。

構文

End

End Function

End If

End Property

End Select

End Sub

End Type

End With

各 End ステートメントは次のとおりです。

ステートメント	内容

End	プログラムの実行を終了させます。この場合、End ステートメントは必ずしも必要ではありませんが、プロシージャ内の任意の場所に指定でき、Open ステートメントで開いたファイルを閉じたり、変数の値をクリアすることができます。

End Function	Function ステートメントを終了させます。

End If	ブロック形式の If...Then...Else ステートメントを終了させます。

End Property	Property Let、Property Get、または Property Set プロシージャを終了させます。

End Select	Select Case ステートメントを終了させます。

End Sub	Sub ステートメントを終了させます。

End Type	ユーザー定義型の定義 (Type ステートメント) を終了させます。

End With	With ステートメントを終了させます。

注   Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

解説

End ステートメントを実行すると、すべてのモジュール内のすべてのモジュール レベル変数および静的変数が初期化されます。デバッグを行うときなど、これらの変数の値を保持する必要がある場合は、End ステートメントの代わりに Stop ステートメントを使用してください。変数の値を保持したまま、実行を再開できます。

End ステートメントは、Unload イベント、QueryUnload イベント、または Terminate イベントを起動せずに、実行を中断します。End ステートメントは、Visual Basic コードをまったく実行せずに終了します。このため、フォームおよびクラス モジュールのUnload イベント、QueryUnload イベント、および Terminate イベントに指定されているコードが実行されることはありません。クラス モジュールから作成されたオブジェクトは破棄され、Open ステートメントで開かれたファイルは閉じられ、プログラムで使用されたメモリは解放されます。他のプログラムからのオブジェクト参照は無効になります。


関連項目

Exit ステートメント

Function ステートメント

If...Then...Else ステートメント

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Select Case ステートメント

Stop ステートメント

Sub ステートメント

Type ステートメント

With ステートメント


Exit ステートメント

関連項目	例

Do...Loop および For...Next ループ、Function、Sub、Property の各プロシージャを抜けるフロー制御ステートメントです。

構文

Exit Do

Exit For

Exit Function

Exit Property

Exit Sub

各 Exit ステートメントは次のとおりです。

ステートメント	内容

Exit Do	Do...Loop ループを抜け、Loop ステートメントの次のステートメントに制御を移します。Do...Loop ステートメントの中でだけ使用できます。Do...Loop ステートメントがネスト (入れ子) 構造になっているときは、Exit Do のあるループの 1 つ外側のループに制御を移します。

Exit For	For Each...Next または For...Next ループを抜け、Next ステートメントの次のステートメントに制御を移します。For Each...Next または For...Next ループの中でだけ使用できます。For Each...Next または For...Next ループがネスト (入れ子) 構造になっているときは、Exit For のあるループの 1 つ外側のループに制御を移します。

Exit Function	このステートメントのある Function プロシージャを直ちに抜けます。制御は Function プロシージャを呼び出したステートメントの次のステートメントに移ります。

Exit Property	このステートメントのある Property プロシージャを直ちに抜けます。制御は Property プロシージャを呼び出したステートメントの次のステートメントに移ります。

Exit Sub	このステートメントのある Sub プロシージャを直ちに抜けます。制御は Sub プロシージャを呼び出したステートメントの次のステートメントに移ります。

解説

Exit ステートメントと End ステートメントを混同しないでください。Exit は構造の終わりを定義するものではありません。


関連項目

Do...Loop ステートメント

End ステートメント

For...Next ステートメント

For Each...Next ステートメント

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Stop ステートメント

Sub ステートメント


For Each...Next ステートメント

関連項目	例

配列やコレクションの各要素に対して、一連のステートメントを繰り返し実行するフロー制御ステートメントです。

構文

For Each element In group
[statements]
[Exit For]
[statements]
Next [element]

For Each...Next ステートメントの指定項目は次のとおりです。

指定項目	内容

element	コレクションや配列の各要素を繰り返す変数を指定します。コレクションの場合、引数 element にはバリアント型 (Variant) 変数、総称オブジェクト型変数、または固有オブジェクト型の OLE オートメーション オブジェクトの変数を指定できます。また、配列の場合は、引数 element にはバリアント型のみ指定できます。

group	オブジェクト コレクション名または配列名 (ユーザー定義型の配列を除く) を指定します。

statements	引数 group の各メンバに対して実行するステートメントを指定します。

解説

引数 group に要素が 1 つでもある場合、For Each ブロックは始まります。ループがいったん開始されると、引数 group の最初の要素に対して、ループ内のすべてのステートメントは実行されます。引数 group の中に要素がある限り、ループ内のステートメントは、各要素に対して実行を続けます。引数 group の中にもう要素がなくなったとき、ループは終了し Next ステートメントの次のステートメントに実行は移ります。

Exit For は、制御構造 For Each...Next または For...Next 内でのみ使用できるステートメントで、ループから抜けるフロー制御ステートメントです。Exit For ステートメントは、For Each...Next または For...Next ループ内の任意の場所に何回でも使うことができます。Exit For は条件の評価 (たとえば If...Then) と共に使われることが多く、Next の直後のステートメントに制御を渡します。

For Each...Next ループはネスト (入れ子) 構造にすることができます。つまり、For Each...Next ループの内部に別の For Each...Next ループを入れることができます。ループをネスト (入れ子) 構造にするときは、それぞれの引数 element に別の変数名を指定してください。

注   Next ステートメントの引数 element を省略すると、引数 element が指定されているかのように実行を継続します。Next ステートメントが対応する For ステートメントよりも前にあると、エラーが発生します。

For... Each ステートメントをユーザー定義型の配列に使用することはできません。バリアント型は、ユーザー定義型の配列を持つことができないためです。


関連項目

データ型の概要

Do...Loop ステートメント

Exit ステートメント

For...Next ステートメント

While...Wend ステートメント


For...Next ステートメント

関連項目	例

指定した回数だけ、一連のステートメントを繰り返すフロー制御ステートメントです。

構文

For counter = start To end [Step step]
[statements]
[Exit For]
[statements]
Next [counter]

For...Next ステートメントの指定項目は次のとおりです。

指定項目	内容

counter	ループ カウンタに使う数値変数を指定します。

start	引数 counter の初期値を指定します。

end	引数 counter の最終値を指定します。

step	ループを繰り返すごとに引数 counter に加算される値を指定します。引数 step を省略すると、ループを繰り返すごとに引数 counter には 1 が加算されます。

statements	ループ内で実行される一連のステートメントで、For と Next の間に記述します。ここに記述したステートメントは、For...Next で指定した回数だけ実行されます。

解説

引数 step には正の数、負の数を指定できます。引数 step で指定した値によりループの実行は次のように制御されます。

値	実行条件

正の数または 0	counter <= end

負の数	counter >= end

プログラムの実行がループに移り、ループ内の一連のステートメントがすべて実行されると、引数 step の値が引数 counter に加算されます。この時点で、終了条件が満たされていない場合にはループ内のステートメントが再び実行され、それ以外は、ループから抜け出して Next ステートメントの次のステートメントに制御が移ります。

ヒント   ループ内で引数 counter の値を変えると、プログラムの内容の理解やデバッグが困難になりますので注意してください。

Exit For ステートメントは、制御構造 For Each...Next または For...Next 内でだけ使用でき、指定した回数以外の条件で、For...Next を終了させることができます。Exit For ステートメントは、For Each...Next または For...Next ループ内の任意の場所で何回でも指定できます。Exit For は条件の評価 (たとえば If...Then など) と共に使われることが多く、Next の直後のステートメントに制御を渡します。

For...Next ループはネスト (入れ子) 構造にすることができます。つまり、For...Next ループの内部に別の For...Next ループを入れることができます。ループをネスト (入れ子) させるときは、それぞれの引数 counter に別の変数名を指定してください。正しいステートメントの例を次に示します。

For I = 1 To 10

For J = 1 To 10

For K = 1 To 10

. . .

Next K

Next J

Next I

注   Next ステートメントの引数 counter を省略すると、引数 counter が指定されているかのように実行を継続します。Next ステートメントが対応する For ステートメントよりも前にあると、エラーが発生します。


関連項目

Do...Loop ステートメント

Exit ステートメント

For Each...Next ステートメント

While...Wend ステートメント


GoSub...Return ステートメント

関連項目	例

プロシージャ内のサブルーチンへの分岐と復帰を行うフロー制御ステートメントです。

構文

GoSub line
. . .
line
. . .
Return

引数 line には、行ラベルまたは行番号を指定します。

解説

GoSub と Return はプロシージャの任意の場所に置くことができますが、GoSub とそれに対応する Return は同じプロシージャ内になければなりません。1 つのサブルーチン内に、複数の Return ステートメントを記述してもかまいません。ただし、プログラムの流れは、最初の Return ステートメントによって最後に実行された GoSub ステートメントの直後のステートメントに戻ります。

注   GoSub...Return で、Sub プロシージャに入ったり Sub プロシージャから抜け出すことはできません。GoSub ステートメントは、サブルーチンに制御を移すために使用するステートメントであり、Sub ステートメントで定義される Sub プロシージャを呼び出すものでないことに注意してください。

ヒント   GoSub...Return を使うよりも、独立した 1 つのプロシージャ (Sub またはFunction プロシージャ) を作成して呼び出す方が、より構造化された方法といえます。


関連項目

GoTo ステートメント

On...GoSub、On...GoTo ステートメント

Sub ステートメント


GoTo ステートメント

関連項目	例

プロシージャ内の指定した行に無条件に分岐するフロー制御ステートメントです。

構文

GoTo line

引数 line は、どの行ラベル、または行番号でも指定できます。

解説

GoTo ステートメントの分岐先は、同じプロシージャ内だけです。他のプロシージャには分岐できません。

注   GoTo ステートメントを多用するとプログラムは読みにくくなり、デバッグが困難になります。できるだけ構造化された制御ステートメント (Do...Loop、For...Next、If...Then...Else、Select Case) を使ってください。


関連項目

Do...Loop ステートメント

For...Next ステートメント

GoSub...Return ステートメント

If...Then...Else ステートメント

Select Case ステートメント


If...Then...Else ステートメント

関連項目	例

式の値に基づいて、条件付きの実行を行うフロー制御ステートメントです。

構文

If condition Then statements [Else elsestatements ]

または、次に示すブロック形式の構文を使用することもできます。

If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements]] . . .
[Else
[elsestatements]]
End If

If...Then...Else ステートメントの指定項目は次のとおりです。。

指定項目	内容

condition	次の 2 種類の式のいずれかを指定します。

真 (True) か偽 (False) を評価する数式または文字列式。引数 condition の値が Null の場合、引数 condition は偽 (False) であるとみなされます。

TypeOf objectname Is objecttype 形式の式。引数 objectname は任意のオブジェクトの参照であり、引数 objecttype は任意の有効なオブジェクト型です。この式は、引数 objectname が引数 objecttype で指定されたオブジェクト型であれば真 (True) を返し、それ以外のときには偽 (False) を返します。

statements	引数 condition が真 (True) のとき、実行されます。コロン (:) で区切られた一連のステートメントを指定します。

condition-n	引数 condition に同じ。

elseifstatements	引数 condition-n が真 (True) のときに実行される、一連のステートメントを指定します。

elsestatements	Else 以前に定義されている条件 (引数 condition または引数 condition-n) がどれも真 (True) でないときに実行される、一連のステートメントを指定します。

解説

1 行の If...Then...Else ステートメント (第 1 の構文) は、短く簡単な条件判断を行うときに使用します。ブロック形式の If...Then...Else ステートメント (第 2 の構文) は、1 行の構文に比べ、より構造化された柔軟な記述ができます。また、コードの読みやすさや保守性が向上し、デバッグもしやすくなります。

注   第 1 の構文でも 1 つの条件に対して複数のステートメントを記述することができますが、その場合は、次のようにコロンで区切って 1 行に記述する必要があります。

If A > 10 Then A = A + 1 : B = B + A : C = C + B

ブロック形式の If (第 2 の構文) が実行されると、最初に引数 condition が評価されます。引数 condition が真 (True) のとき、Then に続くステートメントが実行されます。引数 condition が偽 (False) のとき、代わりに ElseIf で指定した条件 (condition-n) が評価されます。いずれかの条件が真 (True) のとき、対応する Then に続くステートメントが実行されます。ElseIf で指定された条件式がいずれも偽 (False) のとき (または、ElseIf 節がないとき) は、Else に続くステートメントが実行されます。Then または Else に続くステートメントの実行が終わると、End If の次のステートメントからプログラムの実行が続けられます。

Else 節と ElseIf 節はどちらも必要に応じて定義します。また、ブロック形式の If では、ElseIf 節はいくつ指定してもかまいません。ただし、Else 節の後ろには ElseIf 節を指定することはできません。また、ブロック形式の If はネスト (入れ子) 構造にすることができます。

If ステートメントがブロック形式であるかどうかは、Then キーワードの後ろに記述があるかどうかによって判断しています。Then キーワードの後ろにコメント以外のものが置かれていると、1 行の If ステートメントであると見なされます。

ブロック形式の If ステートメントは行の先頭に置く必要があります。Else、ElseIf、End If の前には、行ラベルや行番号以外のものを記述することはできません。ブロック形式の If の最後には、End If ステートメントがなければなりません。

ヒント   1 つの条件式の値によって、複数の処理のいずれかを実行させるには、Select Case ステートメントの方が適しています。ただし、TypeOf objectname Is objecttype 節を Select Case ステートメントと共に使用することはできません。


関連項目

Select Case ステートメント


On...GoSub、On...GoTo ステートメント

関連項目	例

式の値に応じて、指定した複数の行のうちのいずれかに分岐させるフロー制御ステートメントです。

構文

On expression GoSub destinationlist

On expression GoTo destinationlist

On...GoSub、On...GoTo ステートメントの指定項目は次のとおりです。

指定項目	内容

expression	0 ～ 255 の範囲の値に評価される任意の数式を指定します。式は、On...GoSub ステートメントや On...GoTo ステートメントが評価される前に整数値に丸められます。引数 expression の値により、引数 destinationlist 中のどの行に分岐するかが決まります。

destinationlist	カンマ (,) で区切った分岐先を示す行番号または行ラベルのリストを指定します。

解説

引数 expression の値は、引数 destinationlist のどの行に分岐させるかを決めます。引数 expression の値が 1 未満か、引数 destinationlist で指定された項目数以上のときは、次のように処理されます。

expression の値	結果
0	プログラムの制御が On...GoSub または On...GoTo の次のステートメントに移ります。
destinationlist の項目数以上	プログラムの制御が On...GoSub または On...GoTo の次のステートメントに移ります。
負の数	エラーが発生します。
256 以上	エラーが発生します。
行番号と行ラベルを同じ引数 destinationlist に混在させることができます。On...GoSub やOn...GoTo で指定できる行番号と行ラベルの数は、実際には制限がありません。しかし 1 行に含めることができない数の行番号と行ラベルを指定する場合は、行継続文字を使って物理的な次の行を論理的な継続行として指定しなくてはなりません。

ヒント   条件によって複数の分岐を行うときは、Select Case ステートメントを使うと、より構造化された柔軟なプログラムを作成できます。


関連項目

GoSub...Return ステートメント

GoTo ステートメント

Select Case ステートメント


Select Case ステートメント

関連項目	例

条件式の値に従って、複数のステートメント ブロックのいずれかを実行させるフロー制御ステートメントです。

構文

Select Case testexpression
[Case expressionlist-n
[statements-n]] . . .
[Case Else
[elsestatements]]
End Select

Select Case ステートメントの指定項目は次のとおりです。

指定項目	内容

testexpression	任意の数式または文字列式を指定します。

expressionlist-n	次の形式で指定します。複数指定するときはカンマ (,) で区切ります。
expression
expression To expression
Is comparisonoperator expression

引数 expression には数式または文字列を、引数 comparisonoperator には比較演算子を指定します。キーワード To は、値の範囲を指定するキーワードです。キーワード To を使って値の範囲を指定するときは、小さいほうの値を先 (左側) に指定してください。キーワード Is は、値の範囲を指定するキーワードで、Is 演算子と Like 演算子以外の比較演算子と共に使われます。キーワード Is は指定しなくても自動的に設定されます。

statements-n	引数 testexpression が引数 expressionlist-n のいずれかと一致するとき、一致した引数 statements-n のステートメントが実行されます。

elsestatements	引数 testexpression が Case 節のいずれとも一致しないとき、引数 elsestatements のステートメントが実行されます。

解説

引数 testexpression が Case 節のいずれかの引数 expressionlist に一致すると、次の Case 節または End Select ステートメントまでの引数 statements が実行されます。ブロックの実行が終わると、制御は End Select の次のステートメントに移ります。引数 testexpression が複数の Case 節に一致するときは、最初に一致した Case 節に続くステートメントだけが実行されます。

Case Else 節は、引数 testexpression がどの Case 節の引数 expressionlist にも一致しなかったときに実行する引数 statements を指定します。Case Else ステートメントがなく、引数 testexpression がどの Case 節の式にも一致しなかったときは、End Select の次のステートメントから実行が続けられます。

Case Else ステートメントは必ずしも必要ではありませんが、予測できない引数 testexpression の値を処理するために、Select Case ブロックに Case Else ステートメントを記述したほうが安全です。

Case 節には複数の式や範囲を指定できます。たとえば、次の行は有効なステートメントです。

Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber

注   比較演算子 Is と、Select Case ステートメントで使われるキーワード Is は、同じものではありません。

また、文字列の範囲や複数の文字列式を指定することもできます。次に示す Case 節では、“everything”と、アルファベット順に並んだ“nuts”から“soup”の間にある文字列、TestItem の現在の値、のいずれかに完全に等しい文字列が一致します。

Case "everything", "nuts" To "soup", TestItem

Select Case ステートメントはネスト (入れ子) 構造にすることができます。このとき、各 Select Case ステートメントには、それぞれ対応する End Select ステートメントが必要です。


関連項目

If...Then...Else ステートメント

On...GoSub、On...GoTo ステートメント


Shell 関数

関連項目	例

指定した実行可能プログラムを起動するフロー制御関数です。

構文

Shell(pathname[, windowstyle])

Shell 関数は、次の名前付き引数から構成されます。

指定項目	内容

pathname	実行するプログラム名、必要な引数名またはコマンド ラインのスイッチを指定します。また、ディレクトリまたはドライブを含めて指定できます。実行可能なプログラムと関連するファイル名も指定できます。たとえば、Microsoft Word と文書ファイル名 (*.DOC) を指定できます。

windowstyle	プログラムを実行するときのウィンドウの形式を次に示す番号または定数を使用して指定します。Microsoft Windows では、引数 windowstyle を指定しないと、プログラムはフォーカスを持った最小化ウィンドウで開かれています。引数 windowstyle を指定しないと、プログラムはフォーカスを持った最小化ウィンドウで開かれています。

引数 windowstyle の値とウィンドウの形式は次のとおりです。

定数	値	内容

vbHide	0	フォーカスを持ち、隠されたウィンドウ。

vbNormalFocus	1	フォーカスを持ち、元のサイズと位置に表示されているウィンドウ。

vbMinimizedFocus	2	フォーカスを持ち、最小化されるウィンドウ。

vbMaximizedFocus	3	フォーカスを持ち、最大化されるウィンドウ。

vbNormalNoFocus	4	最後にウィンドウを閉じたときのサイズと位置に復元されるウィンドウ。現在アクティブなウィンドウは、アクティブのままです。

vbMinimizedNoFocus	6	アイコンとして表示されているウィンドウ。現在アクティブなウィンドウは、アクティブのままです。

解説

指定したプログラムが問題なく実行できると、プログラムのタスク ID が返されます。タスク ID は、実行中のプログラムを識別する重複しない番号です。指定されたプログラムが実行できないと、エラーが発生します。

注   Shell 関数は、プログラムを非同期的に実行します。Shell 関数で起動したプログラムが終了するまで、次のコードが実行されないわけではありません。Shell 関数が実行された後は、起動されたプログラムが終了したかどうかにかかわらず、次のコードに制御が移ります。


関連項目

AppActivate ステートメント


Stop ステートメント

関連項目	例

実行を中断するフロー制御ステートメントです。

構文

Stop

注   Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

解説

Stop ステートメントは、プロシージャ内の任意の場所に置くことができます。Stop ステートメントはプログラム コードのブレークポイントと同じ働きをします。

Stop ステートメントはプログラムの実行を中断しますが、End ステートメントと異なり、コンパイル済みの実行可能ファイル (.EXE) 内にない限り、ファイルを閉じたり変数のクリアを行ったりはしません。


関連項目

End ステートメント

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)


While...Wend ステートメント

関連項目	例

指定した条件が真 (True) である間、一連のステートメントの実行を繰り返すフロー制御ステートメントです。

構文

While condition
[statements]
Wend

While...Wend ステートメントの指定項目は次のとおりです。

指定項目	内容

condition	真 (True) または偽 (False) を評価する数式あるいは文字列式を指定します。引数 condition の値が Null のときは、引数 condition は偽 (False) であると見なされます。

statements	引数 condition が真 (True) の間に実行する 1 つまたは複数のステートメントを指定します。

解説

引数 condition が真 (True) のときは、Wend ステートメントになるまで引数 statements 内のすべてのステートメントが実行されます。実行が Wend ステートメントに達すると、制御は再び While ステートメントに戻り、引数 condition がチェックされます。引数 condition がまだ真 (True) であれば、このプロセスが繰り返されます。真 (True) でないときは、Wend ステートメントの次のステートメントに制御が移ります。

While...Wend ループは任意のレベルでネスト (入れ子) 構造にすることができます。Wend ステートメントは最後に実行された While ステートメントに対応します。

ヒント   Do...Loop ステートメントを使うと、より構造化された柔軟なループを記述することができます。


関連項目

Do...Loop ステートメント

With ステートメント


With ステートメント

関連項目	例

オブジェクトやユーザー定義型に対して一連のステートメントを実行するフロー制御ステートメントです。

構文

With object
[statements]
End With

With ステートメントの指定項目は次のとおりです。

指定項目	内容

object	オブジェクト名またはユーザー定義型名を指定します。

statements	引数 object に対して実行するステートメントを指定します。複数のステートメントを記述できます。

解説

With ステートメントは、指定したオブジェクトに対してオブジェクト名を再定義することなく、一連のステートメントを実行することができます。たとえば、あるオブジェクトの複数の異なるプロパティを変更する場合、プロパティを設定するたびに同じオブジェクトを指定するよりも、With 制御構造でプロパティを設定するステートメントを指定して、オブジェクトを 1 度だけ参照するほうが効率的です。次の例では With ステートメントを使って、1 つのオブジェクトに複数のプロパティを設定しています。

With MyLabel

.Height = 2000

.Width = 2000

.Caption = "これは MyLabel です"

End With

注   1 つの With ブロックで指定できる引数 object は、1 つだけです。したがって、単一の With ステートメントを使って、複数のオブジェクトに対する操作を行うことはできません。

With 制御構造の内部に別の With 制御構造を入れて、ネスト (入れ子) 構造にすることができます。ただし、同じオブジェクトに対する処理をネスト構造にすることはできません。ネスト構造にする場合は、それぞれの With ステートメントに異なるオブジェクトを指定する必要があります。

重要  With ステートメントを呼び出さずに With 制御構造内のステートメントを呼び出したり、End With ステートメントを呼び出さずに With 制御構造外のステートメントを呼び出さないでください。With または End With ステートメントを実行しないで With 制御構造内のステートメントを実行すると、エラーや予想外の動作が発生する可能性があります。


関連項目

Do...Loop ステートメント

While...Wend ステートメント


Date 関数

関連項目	例

現在のシステムの日付を返します。

構文

Date

解説

現在の日付を設定するには、Date ステートメントを使います。


関連項目

CDate 関数

Date ステートメント

Format 関数

Now 関数

文字列を返す関数

Time 関数

Time ステートメント


Date ステートメント

関連項目	例

現在のシステムの日付を設定するステートメントです。

構文

Date = date

MS-DOS 環境では、引数 date は、必ず 1980 年 1 月 1 日から 2099 年 12 月 31 日までの任意の日付を指定します。それ以外の値を指定すると、エラーが発生します。Microsoft Windows NT では、引数 date は、必ず 1980 年 1 月 1 日から 2079 年 12 月 31 日までの任意の日付を指定します。

解説

Version 3.3 以前の MS-DOS を使用している場合、Date ステートメントで変更した設定は、その変更を再度変更するまでの間、またはコンピュータの電源を切るまでの間だけ有効です。ただし、通常はバッテリ電力式の CMOS RAM により電源を切っても日付および時刻などの情報は保持されているため、以前のバージョンの MS-DOS を使用している場合でも、セットアップ ユーティリティなどを利用することにより、日付の設定を保持しておくことができます。使用中のシステムのマニュアルを参照してください。


関連項目

Date 関数

Time 関数

Time ステートメント


DateSerial 関数

関連項目	例

引数に指定した年、月、日に対応する日付 (日付型 (Date)) を返す関数です。

構文

DateSerial(year, month, day)

DateSerial 関数は、次の名前付き引数から構成されます。

指定項目	内容

year	年を表す 100 ～ 9999 の範囲の数値または数式

month	月を表す 1 ～ 12 の範囲の数値または数式

day	日を表す 1 ～ 31 の範囲の数値または数式

解説

DateSerial 関数の各引数は、それぞれ正しい範囲内になければなりません。月については 1 ～ 12、日については 1 ～ 31 です。また、ある日付からの相対的な年、月、日を表す数式を引数に指定することもできます。

次の例では、直接日付を指定するのではなく、数式を用いて相対的に指定しています。1990 年の 10 年前 (1990 - 10) の 8 月から 2 ヶ月前 (8 - 2) の最初の日の前日 (1 - 1) の日付、すなわち1980 年 5 月 31 日を返します。

DateSerial(1990 - 10, 8 - 2, 1 - 1)

名前付き引数 year に 0 ～ 99 の範囲の数値を指定すると、1900 ～ 1999 と読み替えられます。その範囲外の数値を名前付き引数 year に指定するには、完全な 4 桁の数値 (たとえば 1800) にしてください。各引数に指定する値が正しい範囲内にない場合、指定された値は引数に従って加算されます。たとえば、名前付き引数 day に 35 と指定すると、指定した年と月によって、ひと月とその月から超過する分の日数として扱われます。ただし、各引数の値が -32,768 ～ 32,767 の範囲を超える場合、またはこの 3 つの引数で直接または相対的に指定された日付が正しい日付の範囲内にない場合には、エラーが発生します。


関連項目

Date 関数

Date ステートメント

DateValue 関数

Day 関数

Month 関数

Now 関数

TimeSerial 関数

TimeValue 関数

Weekday 関数

Year 関数


DateValue 関数

関連項目	例

日付 (日付型 (Date)) を返します。

構文

DateValue(date)

引数 date には通常、100 年 1 月 1 日から 9999 年 12 月 31 日までの範囲の日付を表す文字列式を指定します。また、この範囲内の日付や時刻、または日付と時刻の両方を表す式を指定することもできます。

解説

引数 date に時刻の値を含むとき、DateValue 関数はその時刻を戻り値に含めません。ただし、引数 date に正しくない時刻 (たとえば "89:89") を指定したときには、エラーが発生します。引数 date が有効な日付の区切り記号によって区切られた数字だけの文字列の場合、その引数の年、月、日の順番は、コントロール パネルで設定した短い日付の書式に従って認識されます。また DateValue 関数は、日付に月の名前がそのまま記述してあっても、また省略した形であっても認識します。たとえば、"1991/12/30" や "91/12/30" だけでなく、"平成 3 年 12 月 30 日" や "H3 - 12 - 30" などの形式で指定することもできます。

引数 date から年を省略すると、DateValue 関数はシステムの日付から現在の年を使います。


関連項目

CDate 関数

Date 関数

Date ステートメント

DateSerial 関数

Day 関数

Month 関数

Now 関数

TimeSerial 関数

TimeValue 関数

Weekday 関数

Year 関数


Day 関数

関連項目	例

月の何日かを表す 1 ～ 31 の範囲の整数を返します。

構文

Day(date)

引数 date には、日付を表す数式または文字列式を指定します。引数 date が有効な値を含まないとき、Null 値を返します。


関連項目

Date 関数

Date ステートメント

Hour 関数

Minute 関数

Month 関数

Now 関数

Second 関数

Weekday 関数

Year 関数


Hour 関数

関連項目	例

1 日の時刻を表す 0 ～ 23 の範囲の整数を返します。

構文

Hour(time)

引数 time には、時刻を表す数式または文字列式を指定します。引数 time が有効な値を含まないとき、Null 値を返します。


関連項目

Day 関数

Minute 関数

Now 関数

Second 関数

Time 関数

Time ステートメント


Minute 関数

関連項目	例

分を表す 0 ～ 59 の範囲の整数を返します。

構文

Minute(time)

引数 time には、時刻を表す数式または文字列式を指定します。引数 time が Null 値を含むときは、Null 値を返します。


関連項目

Day 関数

Hour 関数

Now 関数

Second 関数

Time 関数

Time ステートメント


Month 関数

関連項目	例

1 ～ 12 の範囲の整数で何月になるかを返します。

構文

Month(date)

引数 date には、日付 を表す数式または文字列式を指定します。引数 date が Null 値を含むときは、Null 値を返します。


関連項目

Date 関数

Date ステートメント

Day 関数

Now 関数

Weekday 関数

Year 関数


Now 関数

関連項目	例

システムの設定に基づいて、現在の日付と時刻の値を返します。

構文

Now


関連項目

Date 関数

Date ステートメント

Day 関数

Hour 関数

Minute 関数

Month 関数

Second 関数

Time 関数

Time ステートメント

Weekday 関数

Year 関数


Second 関数

関連項目	例

秒を表す 0 ～ 59 の範囲の整数を返します。

構文

Second(time)

引数 time には、時刻を表す数式または文字列式を指定します。引数 time が Null 値を含むときは、Null 値を返します。


関連項目

Day 関数

Hour 関数

Minute 関数

Now 関数

Time 関数

Time ステートメント


Time 関数

関連項目	例

現在のシステムの時刻を返します。

構文

Time

解説

システムの時刻を設定するには、Time ステートメントを使います。


関連項目

Date 関数

Date ステートメント

文字列を返す関数

Time ステートメント

Timer 関数


Time ステートメント

関連項目	例

システムの時刻を設定するステートメントです。

構文

Time = time

引数 time には、時刻を表す数式または文字列式を指定します。

解説

引数 time が文字列の場合、Time ステートメントはコントロール パネルで設定した時刻の区切り記号に従って引数を時刻に変換します。変換できない場合には、エラーが発生します。Version 3.3 以前の MS-DOS を使用している場合、Time ステートメントで変更した設定は、その変更を再度変更するまでの間、またはコンピュータの電源を切るまでの間だけ有効です。ただし、通常はバッテリ電力式の CMOS RAM により電源を切っても日付および時刻などの情報は保持されているため、以前のバージョンの MS-DOS を使用している場合でも、セットアップ ユーティリティなどを利用することにより、日付の設定を保持しておくことができます。使用中のシステムのマニュアルを参照してください。


関連項目

Date 関数

Date ステートメント

Time 関数


Timer 関数

関連項目	例

午前 0 時 (真夜中) から経過した秒数を返します。

構文

Timer


関連項目

Time 関数


TimeSerial 関数

関連項目	例

引数に指定した時、分、秒に対応する時刻 (日付型 (Date)) を返します。

構文

TimeSerial(hour, minute, second)

TimeSerial 関数は、次の名前付き引数から構成されます。

指定項目	内容

hour	時を表す 0 (12:00 AM) ～ 23 (11:00 PM) の範囲の数値または数式

minute	分を表す 0 ～ 59 の範囲の数値または数式

second	秒を表す 0 ～ 59 の範囲の数値または数式

解説

TimeSerial 関数の各引数は、それぞれ正しい範囲内になければなりません。時については 0 ～ 23、分、秒については 0 ～ 59 です。また、ある時刻からの相対的な時、分、秒を表す数式を引数に指定することもできます。

次の例では、直接日付を指定するのではなく、数式を用いて相対的に指定しています。正午の 6 時間前 (12 - 6) から 15 分前 (0 - 15) の時刻、すなわち午前 5:45:00 を返します。

TimeSerial(12 - 6, -15, 0)

各引数に指定する値が正しい範囲内にない場合、指定された値は引数に従って加算されます。たとえば名前付き引数 minute に 75 と指定すると、1 時間と 15 分として扱われます。ただし、各引数の値が -32,768 ～ 32,767 の範囲を超える場合、またはこの 3 つの引数で直接または相対的に指定された時刻が正しい範囲内にない場合には、エラーが発生します。


関連項目

DateSerial 関数

DateValue 関数

Hour 関数

Minute 関数

Now 関数

Second 関数

TimeValue 関数


TimeValue 関数

関連項目	例

時刻 (日付型 (Date)) を返します。

構文

TimeValue(time)

引数 time には、通常 0:00:00 (12:00:00 AM) ～ 23:59:59 (11:59:59 PM) の範囲の時刻を表す文字列式を指定します。また、この範囲で時刻を表す式を指定することもできます。引数 time に Null 値が含まれると、Null 値を返します。

解説

12 時間制、24 時間制のどちらを使って時刻を指定してもかまいません。たとえば、“2:24PM”と“14:24”は、両方とも有効な引数となります。

引数 time が日付の値を含むとき、TimeValue 関数はその日付を戻り値に含めません。ただし引数 time に正しくない値を指定したときには、エラーが発生します。


関連項目

DateSerial 関数

DateValue 関数

Hour 関数

Minute 関数

Now 関数

Second 関数

TimeSerial 関数


Weekday 関数

関連項目	例

何曜日であるかを表す 1 (日曜) ～ 7 (土曜) の範囲の整数を返します。

構文

Weekday(date, [firstdayofweek])

Weekday 関数は、次の名前付き引数から構成されます。

指定項目	内容

date	日付を表す数式または文字列式を指定します。引数 date が Null 値を含むとき、Null 値を返します

firstdayofweek	週の第 1 日目の曜日を指定する定数です。設定する値については、次の「設定値」を参照してください。この定数を省略すると、定数 vbSunday を指定したとみなされます。

設定値

名前付き引数 firstdayofweek の設定値は次のとおりです。

定数	値	内容

vbUseSystem	0	NLS APIの 設定値を使います。

vbSunday	1	日曜。

vbMonday	2	月曜。

vbTuesday	3	火曜。

vbWednesday	4	水曜。

vbThursday	5	木曜。

vbFriday	6	金曜。

vbSaturday	7	土曜。

戻り値

Weekday 関数は、次のいずれかの値を返します。

定数	値	内容

vbSunday	1	日曜。

vbMonday	2	月曜。

vbTuesday	3	火曜。

vbWednesday	4	水曜。

vbThursday	5	木曜。

vbFriday	6	金曜。

vbSaturday	7	土曜。


関連項目

Date 関数

Date ステートメント

Day 関数

Month 関数

Now 関数

Year 関数


Year 関数

関連項目	例

年を表す整数を返します。

構文

Year(date)

引数 date には、日付を表す数式または文字列式を指定します。引数 date が Null 値を含むとき、Null 値を返します。


関連項目

Date 関数

Date ステートメント

Day 関数

Month 関数

Now 関数

Weekday 関数


ブール型 (Boolean)

関連項目

ブール型 (Boolean) の変数は 16 ビット (2 バイト) の変数です。ブール型変数が格納できる値は真 (True) または偽 (False) だけです。ブール型変数は、Print # ステートメントでは Trueまたは Falseとして表示され、Write # ステートメントでは #TRUE# または #FALSE# として表示されます。ブール型変数に真か偽の状態を代入する場合は、True または False キーワードを使用します。

他の数値データ型をブール型の値に変換すると、0 は偽になり、0 以外の値はすべて真になります。一方、ブール型の値を他のデータ型に変換すると、偽は 0 になり、真は -1 になります。


関連項目

CBool 関数

データ型の概要

Deftype ステートメント

整数型 (Integer)


バイト型 (Byte)

関連項目

バイト型 (Byte) の変数は単精度で正の 8 ビット (1 バイト) の変数です。バイト型の変数は、0 ～ 255 の範囲の値をとります。

バイト型は、ダイナミック リンク ライブラリ (DLL) および OLE オートメーション オブジェクトとバイナリデータをやりとりする場合に役立つデータ型です。


関連項目

CByte 関数

データ型の概要

Deftype ステートメント

整数型 (Integer)


通貨型 (Currency)

関連項目

通貨型 (Currency) の変数は 64 ビット (8 バイト) の変数で、整数形式で表され、10,000 倍されて整数として記憶された、15 桁の整数部分と 4 桁の小数部分を持つ固定小数点数です。-922,337,203,685,477.5808 ～ 922,337,203,685,477.5807 の範囲の値をとります。通貨型の型宣言文字は @ です。

通貨型は、固定小数点数の精度で正確さが特に重要とされる金額の計算などに役立つデータ型です。


関連項目

CCur 関数

データ型の概要

Deftype ステートメント

長整数型 (Long)


データ型の概要

関連項目

Visual Basic で使用できるデータ型と、それぞれの記憶領域のサイズおよび値の範囲を、次の表に示します。

データ型	記憶領域のサイズ	範囲
バイト型 (Byte)	1 バイト	0 ～ 255
ブール型 (Boolean)	2 バイト	真 (True) または偽 (False)
整数型 (Integer)	2 バイト	-32,768 ～ 32,767
長整数型 (Long)	4 バイト	-2,147,483,648 ～ 2,147,483,647
単精度浮動小数点数型 (Single)	4 バイト	-3.402823E38 ～ -1.401298E-45 (負の値) 1.401298E-45 ～ 3.402823E38 (正の値)
倍精度浮動小数点数型 (Double)	8 バイト	-1.79769313486232E308 ～ -4.94065645841247E-324 (負の値) 4.94065645841247E-324 ～ 1.79769313486232E308 (正の値)
通貨型 (Currency)	8 バイト	-922,337,203,685,477.5808 ～ 922,337,203,685,477.5807
日付型 (Date)	8 バイト	西暦 100 年 1 月 1 日～西暦 9999 年 12 月 31 日
オブジェクト型 (Object)	4 バイト	オブジェクトを参照するデータ型。
文字列型 (String) (可変長)	10 バイト + 文字列の長さ	0 ～ 2GB。Windwos Version 3.1 では、0 ～ 65,400 バイト。
文字列型 (String) (固定長)	文字列の長さ	1 ～ 2GB。Windwos Version 3.1 では、1 ～ 65,400 バイト。
バリアント型 (Variant) (数値)	16 バイト	倍精度浮動小数点数型 (Double) の範囲と同じ。
バリアント型 (Variant) (文字列)	22 バイト + 文字列の長さ	可変長の文字列型 (String) の範囲と同じ。
ユーザー定義型	要素に依存	それぞれの要素の範囲はそのデータ型の範囲と同じ。
注   どのデータ型の配列にも、20 バイトのメモリ、各配列の次元ごとの 4 バイト、およびデータそのものが占めるバイト数の合計メモリが必要です。データが占めるメモリのバイト数は、要素数に各要素のサイズを掛けて計算することができます。たとえば、それぞれ 2 バイトの 4 つの整数型 (Integer) の要素からなる 1 次元配列のデータは、8 バイトを占めます。データに必要な 8 バイトとオーバーヘッドの 24 バイトの和により、この配列の合計メモリ必要量は 32 バイトになります。

配列を含むバリアント型 (Variant) には、配列のみのときに比べて 12 バイト大きいメモリが必要です。


関連項目

ブール型 (Boolean)

バイト型 (Byte)

通貨型 (Currency)

日付型 (Date)

Deftype ステートメント

倍精度浮動小数点数型 (Double)

整数型 (Integer)

長整数型 (Long)

オブジェクト型 (Object)

単精度浮動小数点数型 (Single)

文字列型 (String)

Type ステートメント

ユーザー定義型

バリアント型 (Variant)


日付型 (Date)

関連項目

日付型 (Date) の変数は IEEE 64 ビット (8 バイト) の浮動小数点数の変数で、西暦 100 年 1 月 1 日～西暦 9999 年 12 月 31 日の範囲の日付と、0:00:00 ～ 23:59:59 の範囲の時刻を表すことができます。日付型の変数には、日付リテラルとして認識可能な任意の値を代入できます。日付リテラルの形式は、#1993 January 1# または #93 Jan 1 # のようにシャープ記号 (#) で囲む必要があります。

日付型の変数では、日付はコントロール パネルで設定されている短い日付形式に従って表示されます。時刻はコントロール パネルで設定されている時刻の形式 (12 時間制か 24 時間制) に従って表示されます。

日付型以外の数値データ型の変数を日付型に変換すると、整数部の値は日付を、小数部の値は時刻を表すように変換されます。午前 0 時は 0 で、正午は 0.5 です。負の整数は 1899 年 12 月 30 日より前の日付を表します。


関連項目

CDate 関数

データ型の概要

Deftype ステートメント

倍精度浮動小数点数型 (Double)

バリアント型 (Variant)


倍精度浮動小数点数型 (Double)

関連項目

倍精度浮動小数点数型 (Double) の変数は IEEE 64 ビット (8 バイト) の浮動小数点数の変数で、負の値は -1.79769313486232E308 ～ -4.94065645841247E-324、正の値は 4.94065645841247E-324 ～ 1.79769313486232E308 の範囲の値をとります。倍精度浮動小数点数型の型宣言文字は # です。


関連項目

CDbl 関数

データ型の概要

Deftype ステートメント

単精度浮動小数点数型 (Single)


整数型 (Integer)

関連項目

整数型 (Integer) の変数は 16 ビット (2 バイト) の変数で、-32,768 ～ 32,767 の範囲の値をとります。整数型の型宣言文字は % です。

整数型の変数を列挙型の値として使うこともできます。列挙値には、プログラムの内部において特定の意味を持つ、一定数の数値を定義できます。列挙値を用いることによって、一定数の選択肢を表現しやすくなります。たとえば、ユーザーにリストから色を選択させる場合、0 を黒、1 を白というように定義しておきます。

列挙型のそれぞれの値は、Const ステートメントで定数として定義しておくと読みやすいコードが作成できます。


関連項目

CInt 関数

データ型の概要

Deftype ステートメント

長整数型 (Long)

バリアント型 (Variant)


長整数型 (Long)

関連項目

長整数型 (Long) の変数は 32 ビット (4 バイト) の変数で、-2,147,483,648 ～ 2,147,483,647 の範囲の値をとります。長整数型の型宣言文字は & です。


関連項目

CLng 関数

データ型の概要

Deftype ステートメント

整数型 (Integer)


オブジェクト型 (Object)

関連項目

オブジェクト型 (Object) の変数は 32 ビット (4 バイト) の変数で、アプリケーション中の OLE オートメーション オブジェクトを参照します。オブジェクト型で宣言された変数には、Set ステートメントを使用してアプリケーションが認識する任意のオブジェクトを割り当て、それを参照することができます。


関連項目

データ型の概要

Deftype ステートメント

IsObject 関数

バリアント型 (Variant)


単精度浮動小数点数型 (Single)

関連項目

単精度浮動小数点数型 (Single) の変数は IEEE 32 ビット (4 バイト) の浮動小数点数の変数で、負の値は -3.402823E38 ～ -1.401298E-45、正の値は 1.401298E-45 ～ 3.402823E38 の範囲の値をとります。単精度浮動小数点数型の型宣言文字は ! です。


関連項目

CSng 関数

データ型の概要

Deftype ステートメント

倍精度浮動小数点数型 (Double)

バリアント型 (Variant)


文字列型 (String)

関連項目

文字列には次に示す 2 種類があります。

可変長文字列。この文字列には、約 2GB (2^31) までの文字を格納することができます。Windows 3.1 では、約 64KB (2^16) までです。

固定長文字列。この文字列には、1 ～ 約 2GB (2^31) の文字を格納することができます。Windows 3.1 では、1 ～ 約 64KB (2^16) です

注   クラス モジュールでは、Public キーワードを使って固定長文字列を宣言できません。

文字列型の型宣言文字は $ です。文字のデータはすべて文字コード(1 バイトは ASCII コード、2 バイトはシフト JIS コード) で構成されます。


関連項目

CStr 関数

データ型の概要

Deftype ステートメント

String 関数

バリアント型 (Variant)


ユーザー定義型

関連項目

Type ステートメントを使って、異なるデータ型を組み合わせた独自のデータ型を作成できます。ユーザー定義型には、基本的なデータ型、通常の配列、別のユーザー定義型などの要素を複数含むことができます。

Type MyType

MyName As String	' 文字列型変数に名前を格納します。

MyBirthDate As Date	' 日付型変数に生年月日を格納します。

MySex As Integer	' 整数型変数 に性別 (0 が女性で

End Type	' 1 が男性) を格納します。


関連項目

データ型の概要

Type ステートメント


バリアント型 (Variant)

関連項目

バリアント型 (Variant) は、Dim、Private、Public、Static の各ステートメントを使って明示的にデータ型を宣言していない変数に対して、初期設定として適用されるデータ型です。バリアント型には、型宣言文字はありません。

バリアント型は特殊なデータ型で、固定長の文字列型 (String) データとユーザー定義型を除く、あらゆる種類のデータを格納することができます。また、バリアント型には、特殊な値 Empty 値 、Null 値、およびエラー値や Nothing なども格納することができます。バリアント型のデータがどのように処理されるかは、VarType 関数または TypeName 関数を使って調べることができます。

バリアント型として格納されている数値データは、-1.797693134862315E308 ～ -4.94066E-324 (負の値)、4.94066E-324 ～ 1.797693134862315E308 (正の値) の範囲のすべての整数または実数の値をとることができます。通常、数値データはバリアント型として格納される場合でも、その数値本来のデータ型でバリアント型の変数に格納されます。たとえば、整数型 (Integer) の値をバリアント型の変数に代入した場合、続く操作でその変数は整数型として処理されます。ただし、バイト型 (Byte)、整数型、長整数型 (Long)、単精度浮動小数点数型 (Single) のいずれかの数値データを含むバリアント型の変数を演算処理したとき、演算結果が元の数値本来のデータ型の範囲を超えた場合、バリアント型の内部処理形式として、その値を保持できるだけのデータ範囲を持つより大きなデータ型が割り当てられます。すなわち、バイト型は整数型になり、整数型は長整数型になり、長整数型および単精度浮動小数点数型は倍精度浮動小数点数型になります。通貨型 (Currency) および倍精度浮動小数点数型 (Double) の値を保持しているバリアント型の変数がそれぞれの値の範囲を超えた場合は、エラーになります。

特定のデータ型の代わりにバリアント型を用いることにより、より柔軟な方法でデータを処理できます。バリアント型変数の内容が数値であれば、次のように、状況に応じて数値のときや、実際の値の文字列表現のときがあります。

Dim MyVar As Variant

MyVar = 98052

上の例で、MyVar が保持している値は、"数字" (98052) です。このように数値とも数字 (文字列) とも解釈できる値をバリアント型の変数が保持している場合、このバリアント型の変数に対しても数値演算を正常に行うことができます。例えば、+ 演算子を使って MyVar に数値データを保持している他のバリアント型変数や通常の数値データ型を持つ変数を加えれば、その結果は 2 つの値の合計になります。バリアント型に対する加算演算子および連結演算子の使い方については、各演算子の説明を参照してください。

Empty 値は、初期化されていない (初期値が代入されていない) バリアント型の変数を示します。Empty 値を含むバリアント型の変数は、数値データと共に使われるときは 0、文字列データと共に使われるときは長さ 0 の文字列 ("") として扱われます。

Empty 値を Null 値と混同しないでください。Null 値は、バリアント型変数に有効なデータが意図的に格納されていないことを示します。

バリアント型では、エラー値はプロシージャ内でエラー条件が発生したことを示すために使われる特殊な値です。ただし、他のエラーとは異なり、通常のアプリケーション レベルのエラー処理は行われません。このため、ユーザーまたはアプリケーションそのものが、エラー値に基づいてなんらかの代替操作を実行できます。エラー値は、CVErr 関数を使って実数を変換することによって作成されます。


関連項目

CVar 関数

CVErr 関数

データ型の概要

Deftype ステートメント

Dim ステートメント

Nothing キーワード

演算子の概要

Private ステートメント

Public ステートメント

Static ステートメント

TypeName 関数

VarType 関数


ANSI 文字セット

Microsoft Windows で使用される ANSI (米国規格協会 : American National Standards Institute) の 8 ビットの文字セットです。この文字セットにより、キーボードを使って 256 個の文字 (0 ～ 255) が表現できます。


引数

プロシージャに渡される定数、変数、式を指します。


配列

定義済みの同じデータ型を持つ要素の集合で、各要素には順番にインデックス番号が付きます。各要素を識別するには、配列名とインデックス番号を使います。ある要素に変更を加えても、他の要素には影響しません。


ASCII 文字セット

ASCII コード (情報交換用米国標準コード : American Standard Code for Information Interchange) と呼ばれる 7 ビットの文字セットです。ANSI で定めた 128 文字 (0 ～ 127) で構成されます。ASCII 文字セットには、アルファベット、数字、特殊文字、その他の文字が含まれます。Microsoft Windows では、1 バイト (日本語フォントの半角) 文字は ASCII コードで表され、2 バイト (日本語フォントの全角) 文字はシフト JIS コードで表されます。


自動フォーマット

入力されたコードを自動的に整える機能です。たとえば、キーワードを入力したときは、先頭の 1 文字は自動的に大文字に変換されます。また、スペースの調整、必要な記号の挿入、前景色や背景色を設定どおりに変更する処理なども自動的に行われます。


ビット単位の比較

2 つの数式の値を、対応するビットごとに比較することです。


ブール式

真 (True) と偽 (False) のどちらか一方の値に評価される式です。


中断モード

開発環境において、プログラムの実行が中断されている状態を指します。中断モードに入ると、デバッグ ツールを使って実行中のプログラムの状態を調べたり、変数の値を変更したり、ステートメントを 1 つずつ実行したりすることができ、また、実行を継続することもできます。次のいずれかの場合には、中断モードに入ることができます。

ブレークポイントが設定されている行に実行が到達したとき。

プログラムの実行中に、Microsoft Windows では Ctrl + Break キーまたは Esc キー、Macintosh では [image] + . (ピリオド) キーまたは esc キーを押したとき。

プログラムの実行中に Stop ステートメントが実行されたとき、または、トラップされない実行時エラーが発生したとき。

[ウォッチ式の追加] ダイアログ ボックスの [式が True の時に中断] オプション ボタンを選択して追加したウォッチ式 (ブレーク式) の値が、実行時に真 (True) に評価されたとき。

[ウォッチ式の追加] ダイアログ ボックスで、[式の内容が変化した時に中断] オプション ボタンを選択して追加したウォッチ式 (ブレーク式) の値が、実行時に変化したとき。


ブレークポイント

プログラムの実行が自動的に中断されるように、コード内の特定の行に設定するものです。プログラムの実行は、ブレークポイントが設定された行に到達すると、自動的に中断モードに切り替わります。ブレークポイントは、コードと一緒には保存されません。


参照渡し

プロシージャに引数として変数を渡す方法の 1 つです。参照渡し (参照による引き渡し) で変数をプロシージャに渡すと、その変数の内容は、呼び出されたプロシージャ内で変更することができます。参照渡しでは、呼び出されたプロシージャ内では、渡された変数のメモリ内の格納場所に対して直接操作を行えるようになります。したがって、呼び出されたプロシージャ内で渡された変数の値を変更すると、呼び出し側のプロシージャで参照する元の変数の値も変化します。


値渡し

プロシージャに引数として変数を渡す方法の 1 つです。値渡し (値による引き渡し) で変数をプロシージャに渡すと、渡された変数のコピーが作られ、呼び出されたプロシージャに渡されます。したがって、呼び出されたプロシージャ内で渡された変数の値を変更しても、呼び出し側のプロシージャが参照する元の変数の値は変更されません。


文字コード

ANSI 文字セットなどの文字セット内の各文字を表す番号です。


クラス

オブジェクトを正式に定義したものです。オブジェクトのインスタンスを実行時に作成するとき、クラスがそのインスタンスのテンプレートとなります。オブジェクトのプロパティおよびメソッドは、クラスによって定義され、オブジェクトの動作を制御します。


クラス モジュール

新規のクラス インターフェイス (関数セット) が含まれます。これらは、OLE オートメーションにより他のオブジェクトへ公開できます。


クリップボード

モジュール間やアプリケーション間でやり取りする文字列などの情報を一時的に入れる場所です。クリップボードに入っている情報は、別のモジュールやアプリケーションに貼り付けることができます。


コード モジュール

同一プロジェクト内の、すべてのモジュールで共有するパブリック コードが記述されているモジュールです。新しいバージョンの Visual Basic では、標準モジュールと呼びます。


コレクション

同じ種類のオブジェクト (要素) の集合です。コレクション内における各オブジェクトの位置 (順番) は、コレクションが変更されると変わることがあります。したがって、コレクション内の特定のオブジェクトの位置は必ずしも一定していません。これに対し、配列の各要素の位置は明示的に変更しない限り変わらないので、コレクションと配列はこの点で異なります。


コマンド ライン

プログラムを実行するときにコマンドを入力する行を指します。コマンド ラインには、パス、ファイル名、引数など、プログラムを実行するときに必要な情報を指定します。


コメント

モジュール内のコードに関する説明を記述した文字列です。コメントを入力するには、先頭にシングル クォーテーション (') を入力するか、Rem ステートメントで指定します。


比較演算子

2 つの式や値を比較する演算子です。

記号	内容

<	より小さい

<=	以下

>	より大きい

>=	以上

<>	等しくない

=	等しい

等価演算子 Is と文字列比較演算子 Like も比較演算子に含まれます。ただし、Select Case ステートメントの中では、Is と Like を比較演算子として使うことはできません。


コンパイル時

ソース コードを実行可能なコードへ変換することをコンパイルと呼び、コンパイルを実行するときを“コンパイル時”といいます。


条件付きコンパイラ定数

コンパイラ ディレクティブ #Const、またはホスト アプリケーションの中で定義される Visual Basic の識別子です。条件付きコンパイラ定数は、ステートメント ブロックをどのような条件に基づいてコンパイルすべきか判断するために他のコンパイラ ディレクティブと共に使用します。


定数

特定の値の代わりに使われる名前です。変数の値はプログラムの実行中に変化するのに対し、定数の値は常に同じです。ホスト アプリケーションは、それぞれ独自に定数を定義することができます。Visual Basic には、各種の組み込みの定数が用意されています。また、Const ステートメントを使って、独自の定数を定義することもできます。組み込みの定数もユーザー定義の定数も、コード内に直接値を入力する代わりに使うことができます。定数では、文字列、数値、他の定数や、これらを算術演算子や論理演算子 (Is 演算子を除く) で組み合わせた式を表すことができます。定数を宣言する Const ステートメントの例を次に示します。

Const A = "MyString"

このように名前を定義する定数に対し、コード内に直接入力する値 (12 や "abc" など) のことを“リテラル定数”と呼ぶことがあります。


コントロール パネル

システム設定を行うプログラムです。コントロール パネルを使うと、画面の色やデザインの設定、フォントの設定、プリンタの設定、日付と時刻の設定、各国対応の設定 (言語や各種の単位) など、ハードウェアやソフトウェアに関するさまざまな設定を行うことができます。


コントロール メニュー ボックス

Microsoft Windows で、ウィンドウのタイトル バーの左側に表示されるボックスです。コントロール メニュー ボックスをクリックするとコントロール メニューが開きます。

アプリケーションのコントロール メニューに表示されるコマンド (コントロール メニュー コマンド) では、そのアプリケーション用のウィンドウのサイズ変更、移動、終了などを行うことができるほか、他の Windows 対応のアプリケーションへの切り替えも行うことができます。

アプリケーションの中で表示される各ウィンドウのコントロール メニュー ボックスでは、アクティブ ウィンドウのサイズ変更、移動、終了などを行うことができます。


データ型

変数や定数、関数の戻り値などのデータの特性を指し、属性や保持できるデータの種類を決定します。主なデータ型としては、バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date)、文字列型 (String)、オブジェクト型、バリアント型 (Variant) (既定値)、ユーザー定義型、固有オブジェクト型があります。


データ型の値の範囲

データ型ごとに、指定できる値の範囲が決まっています。

データ型	範囲
バイト型 (Byte)	0 ～ 255
ブール型 (Boolean)	真 (True) または偽 (False)
整数型 (Integer)	-32,768 ～ 32,767
長整数型 (Long)	-2,147,483,648 ～ 2,147,483,647
単精度浮動小数点数型 (Single)	-3.402823E38 ～ -1.401298E-45  (負の値) 1.401298E-45 ～ 3.402823E38 (正の値)
倍精度浮動小数点数型 (Double)	-1.79769313486232E308 ～ -4.94065645841247E-324  (負の値) 4.94065645841247E-324 ～ 1.79769313486232E308 (正の値)
通貨型 (Currency)	-922,337,203,685,477.5808 ～ 922,337,203,685,477.5807
日付型 (Date)	西暦 100 年 1 月 1 日 ～ 西暦 9999 年 12 月 31 日
オブジェクト型	任意のオブジェクトへの参照
文字列型 (String) (可変長)	0 ～ 2,000,000,000 文字 (Windows Version 3.1 では 0 ～ 65,535 文字)
バリアント型 (Variant) (固定長)	1 ～ 64K 文字
ユーザー定義型 (Type で定義)	それぞれの要素の範囲はそのデータ型の範囲と同じ


日付式

日付として解釈可能な式を指します。日付式は、日付リテラル、日付と解釈できる数値、日付と解釈できる文字列、関数によって返される日付の任意の組み合わせです。1 つの日付式で表すことのできる日付の範囲は、西暦 100 年 1 月 1 日 ～ 西暦 9999 年 12 月 31 日です。

日付は実数の一部として格納されます。整数部の値は日付を表し、小数部の値は時刻を表します。負の整数を指定すると、1899 年 12 月 30 日より前の日付を表します。


日付/時刻リテラル

シャープ記号 (#) で囲まれた有効な形式の文字列です。有効な形式とは、共通日付形式のことです。

たとえば、#12/31/94# は 1994 年 12 月 31 日を表す日付リテラルです。日付リテラルを使うと、各国の言語間で汎用的に使用できる日付を表すことができます。


日付の区切り記号

日付の表示形式を指定するときに、年月日を区切る記号です。コントロール パネルで設定するか、Format 関数で指定します。


日付と時刻

日付と時刻は、実数の整数部と小数部として格納されます。

整数部の値は、西暦 100 年 1 月 1 日～西暦 9999 年 12 月 31 日の範囲の日付を表します。負の整数は 1899 年 12 月 30 日より前の日付を表します。

小数部の値は、0:00:00 ～ 23:59:59 の範囲の時刻を表します。正午は 0.5 として表されます。


宣言

定数、変数、プロシージャの名前および属性 (データ型など) を定義することを“宣言する”といいます。DLL プロシージャを宣言するときは、名前、ライブラリ、引数を指定します。


デザイン時

Visual Basic で、コントロールの作成、コントロールやフォームのプロパティの設定、コードの記述など、アプリケーションのデザイン (設計) を行っているときを、“デザイン時”と呼びます。デザイン時には、メイン ウィンドウのタイトルに“[デザイン]”と表示されます。これに対して、アプリケーションを Visual Basic で実行しているときを、“実行時”と呼びます。


ダイナミック データ エクスチェンジ (DDE)

ダイナミック データ エクスチェンジ (DDE) は、Microsoft Windows で動作している複数のアプリケーション間でデータを交換するための機能です。


ダイナミック リンク ライブラリ (DLL)

ダイナミック リンク ライブラリ (DLL) は、実行時に読み込まれてアプリケーションにリンクされるルーチンで構成される、ライブラリ ファイルです。DLL は、C、MASM、FORTRAN などの言語で作成されています。


Empty 値

バリアント型 (Variant) 変数に格納できる特殊な値の 1 つです。その変数が初期化されていないことを示し、VarType 0 で示されます。この値は、数値としては 0 と評価され、文字列としては長さ 0 の文字列と評価されます。


エラー番号

0 ～ 65,535 の整数で、Err オブジェクトの Number プロパティに対応しています。Err オブジェクトの Name プロパティと組み合わせると、特定のエラー メッセージを表します。


式

文字列、数値、オブジェクトのいずれかに評価され、キーワード、演算子、変数、定数の組み合わせを指します。計算、文字列の処理、データのテストなどを行うときに式が使われます。


ファイル番号

Open ステートメントを使ってファイルを開くときに、そのファイルに割り当てられる番号を指します。1 ～ 255 のファイル番号を割り当てると、そのファイルは他のアプリケーションからはアクセスできなくなります。256 ～ 511 のファイル番号を割り当てると、そのファイルは他のアプリケーションからでもアクセスできるようになります。


フォーカス

Microsoft Windows では、マウスのクリックやキーボード入力を受け取ることができるのは、一度に 1 つのウィンドウやオブジェクトだけです。入力を受け取ることができるオブジェクトは“フォーカスを持っている”といいます。フォーカスは、ユーザーかアプリケーションによって設定されます。通常、フォーカスを持っているオブジェクトは、キャプションかタイトル バーが強調表示されます。


ホスト アプリケーション

Microsoft Visual Basic Programming System Applications Edition (アプリケーション用に開発された Microsoft Visual Basic) をサポートしているアプリケーションを指します。たとえば、Microsoft Excel Version 5.0 や Microsoft Project Version 4.0 などがあります。


カーソル

入力したテキストが挿入される位置 (挿入ポイント) を示します。


キーワード

キーワードとは、プログラミング言語の一部として認識される文字列または記号のことです。ステートメント名、関数名、演算子などがあります。


凡例

オブジェクトにのみ適用します。

コレクションにのみ適用します。

オブジェクトおよびコレクションに適用します。


行継続文字

スペースとアンダスコアの組み合わせ ( _) を指し、開発環境において 1 つの論理行を 2 行以上の物理行に分けるために使います。文字列の途中に行継続文字を使うことはできません。


行ラベル

コードの各行を識別するために使われる文字列です。行ラベルには、文字 (英字、漢字、ひらがな、カタカナ) で始まりコロン (:) で終わる任意の文字の組み合わせを使うことができます。行ラベルの長さは半角で 40 文字以内でなければならず、同一モジュール内で重複する行ラベルを使うことはできません。大文字小文字は区別されません。また、行ラベルは、行頭から記述しなければなりません。


行番号

コードの各行を識別するために使われる番号です。行番号には、同一モジュール内で重複しない任意の数字の組み合わせを使うことができます。行番号は、行頭から記述しなければなりません。


国別情報

特定の言語および国に対応する情報の集合を指します。

オペレーティング システムの国別情報は、国別情報の設定によって異なる動作をする機能に影響し、コードの実行時の動作もこの設定に従います。たとえば、数値を表示するときや文字列を日付に変換するときに使われます。オペレーティング システムのコントロール パネルで設定します。


論理エラー

構文的には正しいが、目的どおりの正しい結果が得られない、プログラミング上のエラーです。エラーの原因としては、変数名の重複、変数のデータ型の誤り、無限ループ、論理比較の誤り、配列の問題などが考えられます。


長整数型 (Long)

4 バイトで、-2,147,483,648 ～ 2,147,483,647の範囲の整数を表すデータ型です。キーワードは Long で、型宣言文字は & です。


メンバ

コレクション、オブジェクト、またはユーザー定義型を構成する要素です。


メソッド

特定のオブジェクトに属するプロシージャです。

メソッドは主にオブジェクトを表示したり、図形の描画や文字列を入力する処理に使われます。ステートメントや関数と似ていますが、対象となるオブジェクトによって行う処理が異なります。


モジュール

宣言とプロシージャの集まりです。


モジュール レベル

フォーム モジュールおよびコード モジュールの宣言セクションを指します。言い換えると、プロシージャに含まれないコードです。モジュール レベルに対して、プロシージャに含まれる部分をプロシージャ レベルと呼びます。例を次に示します。

Dim X As Integer	' モジュール レベルの変数の宣言。

Const RO = "ReadOnly"	' モジュール レベルの定数の宣言。

Type MyType	' モジュール レベルのユーザー定義型

' の宣言。

MyString As String

MyAge As Integer

End Type


モジュール レベル変数

Function プロシージャ、Property プロシージャ、または、Sub プロシージャの外で宣言されている変数をモジュール レベル変数といいます。モジュール レベル変数は、モジュール内のプロシージャの外で宣言しなければなりません。モジュール レベル変数は、モジュールが読み込まれている間、存在し、それが宣言されたモジュール内のすべてのプロシージャから参照できます。


名前付き引数

あらかじめ指定されている名前を持った引数を指します。名前付き引数を使うと、構文で決まっている順序と関係なく、任意の順序で必要な引数だけを指定することができます。たとえば、引数を 3 つ受け取る次のようなメソッドがあるとします。

DoSomeThing namedarg1, namedarg2, namedarg3

名前付き引数を使うと、次のように引数を指定することができます。

DoSomeThing namedarg3 := 4, namedarg2 := 5, namedarg1 := 20

この例では、名前付き引数を使って、構文とは異なる順序で目的の引数だけを指定しています。


Null 値

バリアント型 (Variant) 変数に格納できる特殊な値の 1 つです。その変数に有効なデータが格納されていないことを示します。Null 値が取得されるのは、次のような場合です。

変数に Null 値を明示的に代入した場合。

Null 値が含まれる式を使って演算を行った場合。


数式

1 つの数値と評価される式です。キーワード、変数、定数、演算子の任意の組み合わせで構成されます。


数値型

組み込みの数値型、およびバリアント型 (Variant) の内部処理形式の数値型を指します。組み込みの数値型には、バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、日付型 (Date) があります。バリアント型の内部処理形式で数値型と見なされるものには、Empty 値、整数型、長整数型、単精度浮動小数点数型、倍精度浮動小数点数型、通貨型、日付型、エラー値、ブール型、バイト型があります。


オブジェクト ブラウザ

現在のプロジェクトで利用できるすべてのオブジェクト、プロシージャ、メソッド、プロパティなどの項目の一覧を表示するダイアログ ボックスです。


オブジェクト式

特定のオブジェクトを指定する式です。オブジェクト式には、その構成要素としてオブジェクトのコンテナが含まれることもあります。たとえば、Application オブジェクトの中に Document オブジェクトが含まれ、Document オブジェクトの中に Text オブジェクトが含まれる場合、次のオブジェクト式はいずれも有効な式です。

Application.Document.Text

Application.Text

Document.Text

Text


オブジェクト ライブラリ

OLE クライアント アプリケーション (Visual Basic など) に、利用可能な OLE オートメーション オブジェクトについての情報を渡すファイルで、拡張子は .OLB です。オブジェクト ブラウザを使うと、特定のオブジェクト ライブラリの内容を調べて、利用可能なオブジェクトについて知ることができます。


オブジェクトの種類

OLE オートメーションに対応しているアプリケーションによって、提供されるオブジェクトの種類を指します。たとえば、Application、File、Range、Sheet などがあります。使用できるオブジェクトの一覧については、各アプリケーション (Microsoft Excel Version 5.0、Microsoft Project Version 4.0、Microsoft Word Version 6.0 など) のマニュアルまたはオンライン ヘルプを参照してください。


OLE オートメーション オブジェクト

OLE オートメーション インターフェイスによって他のアプリケーションやプログラミング ツールに公開されるオブジェクトを指します。


パラメータ

プロシージャを呼び出すときに渡す値を“引数”、プロシージャを定義するときに引数として宣言する変数を“パラメータ”と呼んで区別することがあります。パラメータは、プロシージャに渡される引数の値を受け取ります。パラメータの適用範囲 (スコープ) は、そのプロシージャ内になります。ただし、ほとんどの場合は、“引数”と“パラメータ”の両方を区別せずに“引数”と呼んでいます。


パス

ディレクトリの位置を指定する文字列式です。ドライブ名を含むこともあります。パスにはファイル名は含まれません。パスは次の例のように指定します。

C:\MAIN\SUBDIR\MYSUBDIR


パイ (π)

パイ (π) は、円周率を表します。約 3.1415926535897932 です。


印字領域

印字領域は 14 桁ごとに始まります。各桁の幅は、選択されているフォントのポイント サイズにおけるすべての文字の幅を平均したものになります。


プロシージャ

実行時に 1 つの単位として処理されるコードの集まりです。プロシージャには、Function プロシージャ、Property プロシージャ、Sub プロシージャの 3 種類があります。


プロシージャ レベル

Function プロシージャ、Property プロシージャ、または、Sub プロシージャ内に記述されているステートメントは、プロシージャ レベルのステートメントです。通常、宣言を先に記述し、その後に代入ステートメントなど、実際の操作を行うコードを記述します。

Sub MySub()	' Sub プロシージャ ブロックの宣言。

Dim A	' Sub プロシージャ ブロックの始まり。

A = "My variable"	' プロシージャ レベルのコード。

Debug.Print A	' プロシージャ レベルのコード。

End Sub	' Sub プロシージャ のブロックの終わり。

注   プロシージャ レベルに対して、プロシージャの外に記述されているステートメント (たとえば、Sub...End Sub の範囲外の部分) をすべて、“モジュール レベル”(パブリックの宣言も含む) と呼ぶことがあります。宣言セクションはモジュール レベルです。


プロジェクト

モジュールの集まりです。


プロパティ

特定のオブジェクトの属性を表す名前です。プロパティの値によって、オブジェクトの動作や外観 (サイズ、色、画面上の位置、選択可能かどうかなど) が決まります。


レジストリ

Windows Version 3.1 では、OLE の登録情報とファイルの関連付けはレジストリに格納されます。プログラムの設定は、Windows の SYSTEM ディレクトリの初期化ファイル (.INI) に格納されます。Windows 95 では、レジストリはユーザー、アプリケーション、およびマシン固有の情報を格納するための集中構成情報データベースとして機能します。Windows 95 のレジストリには、Windows Version 3.1 のレジストリと初期化ファイルの両方に含まれる情報が格納されています。


実行時

コードが実行されているときを“実行時”と呼びます。


実行時エラー

コードの実行時に発生するエラーです。実行時エラーは、コード内に実行できない操作や演算があったときに発生します。


SCODE

インターフェイス メンバまたは API 関数を呼び出した側に詳細情報を渡すために使用する長整数型の値です。OLE インターフェイスおよび API に対するステータス コードは、FACILITY_ITF に定義されています。


適用範囲 (スコープ)

プログラム内で、変数、プロシージャ、オブジェクトが有効である範囲を適用範囲と呼び、変数、プロシージャ、オブジェクトが宣言された方法や場所によって決まります。たとえば、変数が Public ステートメントで宣言されていて、モジュールに Option Private Module が記述されていないとき、すべてのモジュールのすべてのプロシージャがその変数の適用範囲となり、その変数はそれらのプロシージャから参照できます。プロシージャの中で宣言された変数は、そのプロシージャの実行中だけ有効で、キーワード Static により静的変数として宣言されていない限り、プロシージャの実行が終わると値は破棄されます。


シード

擬似乱数の生成に使われる初期値を指します。たとえば、Randomize ステートメントを使うと、Rnd 関数が重複しない擬似乱数系列を生成するために使うシード値が生成されます。


並べ替え順序

データの並べ替えの規則を指します。たとえば、文字コード順、五十音順、数値順や、昇順、降順などがあります。


標準モジュール

プロシージャ、型、データの宣言と定義のみが記述されたモジュールです。標準モジュール内に記述されたモジュール レベルの宣言と定義は、特に指定しない限り、適用範囲はパブリックになります。標準モジュールは、以前のバージョンの Visual Basic では、コード モジュールと呼ばれています。


ステートメント

コードにおいて、なんらかの操作、宣言、定義を行うための、完結した構文を持つ最小単位です。通常は、1 行に 1 つのステートメントを記述します。ステートメント同士をコロン (:) で区切ると、1 行に複数のステートメントを記述することができます。また、行継続文字であるスペースとアンダスコアの組み合わせ ( _) を使うと、1 つの論理行を 2 行以上の物理行に分けて記述することができます。


文字列比較

2 つの文字列を比較することをいいます。文字列比較には、バイナリ モードとテキスト モードの 2 つの方法があります (Option Compare ステートメントで指定)。バイナリ モードでは大文字と小文字、半角と全角、ひらがなとカタカナが区別される ASCII コード順に比較され、テキスト モードでは大文字と小文字、半角と全角、ひらがなとカタカナが区別されない五十音順に比較されます。


文字列定数

連続する文字の並びで構成され、数値ではなく文字の集まりと解釈される定数を指します。キーワード Const で定義します。次の例の定数 A は文字列定数です。

Const A = "MyString"


文字列式

1 つの文字列に評価される式です。文字列を返す関数、リテラル文字列、文字列定数、文字列変数、VarType 8 (文字列) のバリアント型 (Variant) の変数や関数、文字列演算子の組み合わせで構成されます。


リテラル文字列

連続する文字の並びで構成され、文字列そのものと解釈される式を指し、二重引用符 (") で囲まれています。リテラル文字列の例を次に示します。

"MyString"


文字列型 (String)

データ型の 1 つで、文字列型の変数や定数には、数値ではなく実際の文字自体を表す文字の並びで構成される値を格納できます。文字列には、漢字、ひらがな、カタカナ、英字、数字、スペース、記号を使うことができます。


構文チェック

コードを 1 行入力するたびに、構文が正しいかどうかを自動的にチェックする機能です。構文チェックが有効になっていれば、構文的に間違ったコードを入力するとエラー メッセージが表示され、疑わしい部分が強調表示されます。


構文エラー

入力したコードの構文が正しくないときに発生するエラーです。

注   各キーワードの構文については、関連するヘルプ項目の構文を参照してください。モジュール内に入力している特定のキーワードを選択して F1 キーを押すと、そのキーワードのヘルプを表示することができます。


時刻式

時刻として解釈可能な式を指します。時刻式は、時刻リテラル、時刻と解釈できる数値、時刻と解釈できる文字列、関数によって返される時刻の任意の組み合わせです。

時刻は実数の一部として格納されます。小数部の値が時刻を表します。正午 (午後 12:00) は 0.5 として表されます。


タイトル バー

ウィンドウの最上部に表示されている水平のバーです。ここには、そのウィンドウの名前 (タイトル)、またはキャプションが表示されます。


型宣言文字

変数、定数、関数名の末尾に付ける、データ型を示す文字を指します。型宣言文字などを使った明示的なデータ型の指定がされていない変数のデータ型は、バリアント型 (Variant)、または、Deftype ステートメントの対象となっているときはその既定のデータ型になります。

型宣言文字	データ型

なし	ブール型 (Boolean)

なし	バイト型 (Byte)

%	整数型 (Integer)

&	長整数型 (Long)

!	単精度浮動小数点数型 (Single)

#	倍精度浮動小数点数型 (Double)

なし	日付型 (Date)

@	通貨型 (Currency)

$	文字列型 (String)

なし	オブジェクト型

なし	バリアント型 (Variant)


タイプ ライブラリ

公開されているオブジェクト、プロパティ、メソッドについての、OLE オートメーションの標準的な記述を内容とするファイルまたは別ファイルに含まれているコンポーネントです。タイプ ライブラリは、オブジェクト ライブラリ ファイル (.OLB) に含まれています。


共通日付形式

#yyyy-mm-dd hh:mm:ss# の形式を指します。日付部分 (#yyyy-mm-dd#) と時刻部分 (#hh:mm:ss#) は別個に表すことができます。


ユーザー定義型

Type ステートメントで定義されたデータ型を指します。ユーザー定義型には、1 つ以上の任意のデータ型の要素を含めることができます。ユーザー定義型やその他のデータ型を要素とする配列は、Dim ステートメントで作成します。ユーザー定義型の中には、任意のデータ型の配列を含めることができます。


変数

値を格納するための場所を表します。変数には格納する値のデータ型を指定することができ、変数に格納される値はプログラムの実行中に変更することができます。

変数名は次の規則に従って付けてください。

変数名には、文字 (英数字、漢字、ひらがな、カタカナ) とアンダスコア (_) を使うことができます。スペースや記号は使えません。

変数名の先頭の文字は、英字、漢字、ひらがな、カタカナのいずれかでなければなりません。

同一適用範囲 (スコープ) 内で同じ変数名を複数使うことはできません。

変数名の長さは、半角で 255 文字以内でなければなりません。


バリアント型 (Variant)

数値および文字列の基本的なデータ型以外に、日付や、Empty や Null の特別な値を持つことができる、特別なデータ型です。バリアント型 (Variant) の変数に格納されている値がどのように扱われるかは、VarType 関数で調べることができます。変数は、データ型を明示的に指定しない場合はバリアント型になります。


バリアント型 (Variant) の式

数値および文字列の基本的なデータ型以外に、日付や、Empty や Null の特別な値に評価できる式です。


VarType 関数

VarType 関数は、バリアント型 (Variant) の変数に格納された値のデータ型 (内部処理形式) を表す値を返します。VarType 関数の戻り値と、それに対応する定数、および戻り値の意味を次の表に示します。

定数	戻り値	内容

vbEmpty	0	Empty (未初期化)

vbNull	1	Null (無効値)

vbInteger	2	整数型 (Integer)

vbLong	3	長整数型 (Long)

vbSingle	4	単精度浮動小数点数型 (Single)

vbDouble	5	倍精度浮動小数点数型 (Double)

vbCurrency	6	通貨型 (Currency)

vbDate	7	日付型 (Date)

vbString	8	文字列型 (String)

vbObject	9	OLE オートメーション オブジェクト

vbError	10	エラー値

vbBoolean	11	ブール型 (Boolean)

vbVariant	12	バリアント型 (Variant) (バリアント型配列にのみ使用)

vbDataObject	13	非 OLE オートメーション オブジェクト

vbByte	17	バイト型 (Byte)

vbArray	8192	配列

注   定数 vbArray は、配列のデータ型を表すために他の定数との組み合わせで使われます。


ウォッチ式

デバッグ時に定義します。ウォッチ式を使うと、プロシージャ内の変数や式の状態を観察できます。たとえば、a と b が変数であるとき、次の 3 つの式はいずれも有効なウォッチ式です。

a

a*b

3*a = b-2

ウォッチ式は、デバッグ ウィンドウのウォッチ ペインに表示され、中断モードに入ると自動的に更新されます。ウォッチ ペインには、その時点で対象となっているモジュール、プロシージャにおけるウォッチ式の値が表示されます。ウォッチ式はコードと一緒には保存されません。ウォッチの種類により、プログラムの実行を、式が真 (True) に評価されたときに中断するようにしたり、式の内容が変化したときに中断するようにしたりすることもできます。


Close ステートメント

関連項目	例

Open ステートメントで開いたファイルへの入出力を終了して、ファイルを閉じるファイル入出力ステートメントです。

構文

Close [filenumberlist]

引数 filenumberlist には、任意のファイル番号を 1 つまたは複数指定します。複数のファイル番号を指定するときは、次に示す構文を使用します。

[[#]filenumber][, [#]filenumber] . . .

解説

引数 filenumberlist を省略すると、Open ステートメントで開いたすべてのファイルが閉じられます。

シーケンシャル出力モード (Output または Append) で開いたファイルを閉じたとき、出力バッファに残っているデータは、そのファイルに対するオペレーティング システム バッファに書き込まれます。閉じたファイルが使用していたバッファ領域はすべて解放されます。

Close ステートメントでファイルを閉じると、そのファイルに割り当てられていたファイル番号は解放されます。


関連項目

End ステートメント

Open ステートメント

Reset ステートメント

Stop ステートメント


EOF 関数

関連項目	例

現在位置がファイルの末尾かどうかを調べて値を返すファイル入出力関数です。

構文

EOF(filenumber)

引数 filenumber には、任意のファイル番号を指定します。

解説

EOF 関数は、ファイルから読み込みを行っているとき、読み込み位置がファイルの末尾に達していないかどうか確かめるために使用します。ファイルの末尾に達しているとき、EOF 関数は真 (True) を返します。ファイルの末尾に達していなければ、偽 (False) を返します。

ランダム アクセス モード (Random) またはバイナリ モード (Binary) で開いたファイルで EOF 関数を使う場合、最後に実行した Get ステートメントがレコード全体を読み込めなかったときに真 (True) を返します。その他の場合は偽 (False) を返します。


関連項目

BOF、EOF プロパティ

Get ステートメント

Input # ステートメント

Loc 関数

LOF 関数

Open ステートメント


FileAttr 関数

関連項目	例

Open ステートメントで開いたファイルの、ファイル モードまたはオペレーティング システムで管理しているファイル ハンドルの情報を返すファイル入出力関数です。

構文

FileAttr(filenumber, returntype)

FileAttr 関数の名前付き引数は次のとおりです。

指定項目	内容

filenumber	任意のファイル番号を指定します。指定する番号は、Open ステートメントで指定した番号です。

returntype	取得するファイル情報の種類を示す、1 または 2 を指定します。

1	ファイル モードを示す値を返します。

2	ファイル ハンドルを返します。

戻り値

引数 returnType に 1 を指定すると、ファイル モードを示す次の値を返します。

値	ファイル モード

1	シーケンシャル入力モード (Input)

2	シーケンシャル出力モード (Output)

4	ランダム アクセス モード (Random)

8	シーケンシャル出力モード (Append)

32	バイナリ モード (Binary)


関連項目

GetAttr 関数

Open ステートメント

SetAttr ステートメント


FreeFile 関数

関連項目	例

使用可能なファイル番号を返すファイル入出力関数です。

構文

FreeFile[(rangenumber)]

引数 rangenumber には、使用するファイルに応じて次に示す値を指定します。

rangenumber	ファイル番号の範囲

0 (既定値)	1 ～ 255 の範囲のファイル番号が返されます。

1	256 ～ 511 の範囲のファイル番号が返されます。

解説

FreeFile 関数を使って使用できるファイル番号を調べることにより、既に使われているファイル番号を重複して使うのを防ぐことができます。


関連項目

Open ステートメント


Get ステートメント

関連項目	例

ディスク ファイルからデータを読み込み、それを変数に格納するファイル入出力ステートメントです。

構文

Get [#]filenumber, [recnumber], varname

Get ステートメントの指定項目は次のとおりです。

指定項目	内容

filenumber	任意のファイル番号を指定します。指定する番号は、Open ステートメントで指定した番号です。

recnumber	読み込みを始めるレコード番号 (ランダム アクセス モード) や バイト位置 (バイナリ モード) を指定します。

varname	読み込んだデータを格納する変数名を指定します。

解説

引数 recnumber には、ファイル内の先頭のレコード番号 (またはバイト位置) を 1、2 番めのレコード番号 (またはバイト位置) を 2 のように指定します。recnumber を省略すると、次のレコードまたはバイト (直前に実行した Get または Put ステートメントで指定したレコードまたはバイト位置、あるいは直前に実行した Seek 関数で取得したレコードまたはバイト位置) が読み込まれます。次に示すように recnumber を省略するときでも、各指定項目を区切るカンマ (,) は省略できません。

Get #4,,FileBuffer

ランダム アクセス モード (Random) で開いたファイルの場合は、次の規則が適用されます。

読み込むデータの長さが Open ステートメントの Len 節で指定したレコード長を超えない限り、Get ステートメントはレコード長の終端から次のレコードを読み込むことができます。レコードの終わりと次のレコードの先頭の間には、ファイル バッファの内容が埋め込まれます。埋め込まれるデータの量は指定できないため、通常はレコード長を読み込むデータ長に合わせます。

可変長文字列変数を使う場合、Get ステートメントは文字列の長さを示す 2 バイトの記述子を読み込んでから、変数に格納するデータを読み込みます。Open ステートメントの Len 節では、文字列の実際の長さより 2 バイト以上大きな値を指定する必要があります。

数値型のバリアント型 (Variant) 変数を使う場合、Get ステートメントは、バリアント型の内部処理形式 (VarType) を示す 2 バイトのデータを読み込んでから、変数に格納するデータを読み込みます。たとえば、VarType 3 のバリアント型を読み込む場合、Get ステートメントは 6 バイトのデータを読み込みます。このうち 2 バイトは、バリアント型が VarType 3 (長整数型) であることを示すデータ、4 バイトは、長整数型データです。Open ステートメントの Len 節では、実際にデータを格納するために、必要なバイト数より 2 バイト以上大きな値を指定する必要があります。

注   Get ステートメントを使用すると、バリアント型の配列をディスクから読み込むことができます。ただし、バリアント型の値が数値で、配列を含む場合、ディスクから読み込むことはできません。また、Get ステートメントを使用してオブジェクトを読み込むことはできません。

０

VarType 8 (文字列型) のバリアント型の変数を使う場合、Get ステートメントは、バリアント型の内部処理形式を示す 2 バイトのデータを読み込んでから、文字列の長さを示す 2 バイトのデータを読み込み、その後文字列データを読み込みます。Open ステートメントの Len 節では、文字列の実際の長さより 4 バイト以上大きな値を指定する必要があります。

Get ステートメントを使用して動的配列に変数を読み込むと、記述子が読み込まれます。この記述子の長さは、2 に 8 と次元数の積を加えた値 (2 + 8 * 配列の次元数) に等しくなります。Open ステートメントの Len 節で指定するレコード長は、データと配列の記述子を読み込むために必要なバイト数の合計、またはそれ以上である必要があります。たとえば、次の配列を定義すると、配列がディスクに書き込まれる場合、118 バイトを必要とします。

Dim MyArray(1 To 5,1 To 10) As Integer

118 バイトは、記述子のための 18 バイト (2 + 8 * 2)、データのための 100 バイト (5 * 10 * 2) を合わせた値です。

読み込まれる変数が固定サイズの配列の場合、Get ステートメントは、データだけを読み込みます。記述子は読み込みません。

その他の型の変数 (可変長文字列変数とバリアント型の変数以外) を使う場合、Get ステートメントは、変数データだけを読み込みます。Open ステートメントの Len 節では、読み込むデータの長さ以上の値を指定する必要があります。

ユーザー定義型の要素を Get ステートメントを使って読み込む場合、各要素は独立しているように読み込まれます。ただし、各要素の間には何も埋め込まれません。Put ステートメントを使用してユーザー定義型に含まれる動的配列をディスクに書き込むと、記述子が前置されます。この記述子の長さは、2 に 8 と次元数の積を加えた値 (2 + 8 * 配列の次元数) に等しくなります。Open ステートメントの Len 節で指定するレコード長は、データと配列の記述子を読み込むために必要なバイト数の合計、またはそれ以上である必要があります。

バイナリ モード (Binary) で開いたファイルの場合は、次に示す規則を除いて、ランダム アクセス ファイルの規則がすべて適用されます。

バイナリ モードでは、Open ステートメントの Len 節は無視されます。Get ステートメントはディスクからすべての変数を連続的に読み込みます。レコードとレコードの間には何も埋め込まれません。

ユーザー定義型の配列以外の配列の場合、Get ステートメントは、データだけを読み込みます。記述子は読み込みません。

ユーザー定義型の要素でない可変長文字列を使う場合、Get ステートメントは、データ長を示す 2 バイトの記述子を認識せずに、文字列変数の持つ値の文字数と同じバイト数を読み込みます。たとえば、次のステートメントは、ファイル番号 1 のファイルから 10 バイトのデータを読み込みます。

VarString = String(10," ")

Get #1,,VarString


関連項目

Input # ステートメント

Line Input # ステートメント

Open ステートメント

Put ステートメント

Seek 関数

Type ステートメント

VarType 関数


Input # ステートメント

関連項目	例

シーケンシャル入力モード (Input) で開いたファイルからデータを読み込んで、それを変数に格納するファイル入出力ステートメントです。

構文

Input #filenumber, varlist

Input # ステートメントの指定項目は次のとおりです。

指定項目	内容

filenumber	任意のファイル番号を指定します。指定する番号は、Open ステートメントで指定したファイル番号です。番号の前には、シャープ記号 (#) が必要です。

varlist	ファイルから読み込んだデータを格納するための変数を、1 つまたは複数指定します。複数指定するときは、カンマ (,) で区切って指定します。配列変数、ユーザー定義型の変数、オブジェクト変数を指定することはできません。ただし、配列の要素またはユーザー定義型の要素は指定できます。

解説

Input # ステートメントは、シーケンシャル入力モード (Input) またはバイナリ モード (Binary) で開いたファイルに対してだけ使用します。

ファイルからデータを読み込む場合、通常、文字列データは文字列型 (String) の変数、数値データは数値データ型の変数として格納されます。これ以外のデータを読み込んだ場合、次に示すようにデータによって変数に割り当てられる型が異なります。

データ	変数に格納される値
カンマのみ、または空白行	Empty 値 (VarType 0)
#NULL#	Null 値 (VarType 1)
#TRUE# または #FALSE#	真 (True) または偽 (False)
#yyyy-mm-dd hh:mm:ss#	式によって表された日付と時刻
#ERROR errornumber#	errornumber (エラー値として格納されたバリアント型 (Variant))
入力データ内のダブル クォーテーション (") は無視されます。

ファイル内のデータ項目の順番は、引数 varlist で指定した変数の順番と一致していなければなりません。また、ファイル内の各データ項目のデータ型は、対応する変数のデータ型と一致していなければなりません。たとえば、変数が数値データ型で読み込むデータが数値データ型でない場合、変数には 0 が代入されます。

データ項目の入力中にファイルの末尾に達すると、入力が中断されエラーが発生します。

注   Input # ステートメントを使用してファイルから変数へデータを正しく読み込むことができるように、データをファイルに書き込むには、Print # ステートメントではなく、必ず Write # ステートメントを使用してください。Write # ステートメントを使用すると、ファイルにデータを書き込むときに、各データ項目の間に正しくカンマ (,) が挿入されます。


関連項目

Input 関数

Open ステートメント

Print # ステートメント

Write # ステートメント


Input 関数

関連項目	例

シーケンシャル入力モード (Input) またはバイナリ モード (Binary) で開いたファイルから指定した文字数の文字列を読み込み、その文字列を返すファイル入出力関数です。

構文

Input(number, [#]filenumber)

Input 関数の指定項目は次のとおりです。

指定項目	内容

number	ファイルから読み込む文字数を示す任意の数式を指定します。

filenumber	任意のファイル番号を指定します。指定する番号は、Open ステートメントで指定した番号です。

解説

Input 関数は、シーケンシャル入力モードまたはバイナリ モードで開いたファイルに対してだけ使用します。

Input # ステートメントと異なり、Input 関数は読み込んだすべての文字を返します。カンマ (,)、キャリッジ リターン (Chr(13))、ライン フィード (Chr(10))、ダブル クォーテーション (")、先頭のスペースも返します。

注   文字列をバイナリ データとして扱いたいときは InputB 関数を使用してください。InputB 関数を使うと、読み込むバイト数を引数 number に指定できます。


関連項目

Get ステートメント

Input # ステートメント

文字列を返す関数


Line Input # ステートメント

関連項目	例

シーケンシャル入力モード (Input) で開いたファイルから行全体を読み込み、文字列型 (String) の変数に代入するファイル入出力ステートメントです。

構文

Line Input #filenumber, varname

Line Input # ステートメントの指定項目は次のとおりです。

指定項目	内容

filenumber	任意のファイル番号を指定します。指定する番号は、Open ステートメントで指定した番号です。

varname	文字列型変数の名前を指定します。

解説

Line Input # ステートメントは、ファイルからキャリッジ リターン (Chr(13)) または 改行コード (Chr(13)) + Chr(10)) の直前までのすべての文字を読み込みます。キャリッジ リターンと改行コードは、変数に読み込まれる文字列に追加されるのではなく、読み飛ばされます。


関連項目

Chr 関数

Input # ステートメント


Loc 関数

関連項目	例

開いているファイル内の現在位置を返すファイル入出力関数です。

構文

Loc(filenumber)

引数 filenumber には、調べたいファイルのファイル番号を指定します。

解説

各ファイル モードでの戻り値は次のとおりです。

ファイル モード	戻り値

ランダム アクセス モード (Random)	ファイルに対して直前に入出力を行ったレコードの番号を返します。

シーケンシャル 入力モード (Input)	ファイル内の現在のバイト位置を 128 で割った値を返します (シーケンシャル ファイル入力モードのファイルに対する Loc 関数の戻り値)。

バイナリ モード (Binary)	直前に入出力を行ったバイト位置を返します。


関連項目

EOF 関数

LOF 関数

Open ステートメント


Lock、Unlock ステートメント

関連項目	例

Open ステートメントで開いたファイルの一部、または全部に対する他のプロセスからのアクセスを制御するファイル入出力ステートメントです。

構文

Lock [#]filenumber[, recordrange]
. . .
Unlock [#]filenumber[, recordrange]

Lock ステートメントおよび Unlock ステートメントの指定項目は次のとおりです。

指定項目	内容

filenumber	任意のファイル番号を指定します。指定する番号は、Open ステートメントで指定した番号です。

recordrange	ロックまたはロックを解除するレコードの範囲を指定します。

設定値

引数 recordrange の指定項目は次のとおりです。

recnumber | [start] To end

指定項目	内容

recnumber	ロックまたはロックを解除するレコード番号 (ランダム アクセス モード (Random) のファイル) またはバイト位置 (バイナリ モード (Binary) のファイル) を指定します。

start	ロックまたはロックを解除する先頭のレコード番号またはバイト位置を指定します。

end	ロックまたはロックを解除する末尾のレコード番号またはバイト位置を指定します。

解説

Lock ステートメントおよび Unlock ステートメントは、複数のプロセスが同じファイルにアクセスする環境で使います。

Lock ステートメントおよび Unlock ステートメントは、必ず 2 つ 1 組で使用します。Lock ステートメントおよび Unlock ステートメントに指定する引数は一致している必要があります。

ファイルの中で先頭のレコード番号またはバイト位置は 1 になり、2 番めのレコード番号またはバイト位置は 2 になります。指定したレコードが 1 つだけのときは、そのレコードだけがロックまたはロックを解除されます。レコードの範囲を指定して先頭のレコード (start) を省略すると、ファイルの先頭から指定範囲の最後のレコード (end) までがロックまたはロックを解除されます。Lock ステートメントで recnumber を省略すると、ファイル全体がロックされます。Unlock ステートメントで recnumber を省略すると、ファイル全体のロックが解除されます。

シーケンシャル入力モード (Input) またはシーケンシャル出力モード (Output または Append) で開いたファイルでは、引数 start および end の範囲指定にかかわらず、ファイル全体が Lock ステートメントと Unlock ステートメントの対象になります。

注意   ファイルを閉じたりプログラムを終了する前に、Unlock ステートメントを使って、必ずすべてのロックを解除してください。ロックを解除しないと、予測できないエラーの原因になります。


関連項目

Open ステートメント


LOF 関数

関連項目	例

Open ステートメントで開いたファイルの長さをバイト単位で返すファイル入出力ステートメントです。

構文

LOF(filenumber)

引数 filenumber には、任意のファイル番号を指定します。

解説

開いていないファイルの長さを取得するには、FileLen 関数を使用します。


関連項目

EOF 関数

FileLen 関数

Loc 関数

Open ステートメント


Open ステートメント

関連項目	例

ファイルを開いて、ファイルへ入出力できるようにします。

構文

Open pathname [For mode] [Access access] [lock] As [#]filenumber [Len=reclength]

Open ステートメントの指定項目は次のとおりです。

指定項目	内容

pathname	文字列式にはファイル名を指定します。ディレクトリ名またはドライブ名も含めて指定できます。

mode	ファイル モードを示す、次のいずれかのキーワードを指定します。
Append、Binary、Input、Output、Random。

access	開くファイルに対して行う処理を示す、次のいずれかのキーワードを指定します。
Read、Write、Read Write。

lock	開くファイルに対する、他のプロセスからのアクセスを制御する、次のいずれかのキーワードを指定します。
Shared、Lock Read、Lock Write、Lock Read Write。

filenumber	1 ～ 511 の範囲で任意のファイル番号を指定します。FreeFile 関数を使用して次に使用可能なファイル番号を取得してください。

reclength	32,767 バイト以下の数値を指定します。ランダム アクセス ファイルの場合は、レコード長を示します。シーケンシャル ファイルの場合は、バッファの容量を示します。

引数 mode には、ファイル モードを示す次のいずれかのキーワードを指定します。

指定項目	内容

Random	初期設定モードである、ランダム アクセス モードを指定します。このモードで access 節を省略すると、Open ステートメントが実行されたとき、次に示す 3 つのモードで順にファイルを開こうとします。
1 番め	読み込みおよび書き込みモード。
2 番め	書き込み専用モード。
3 番め	読み込み専用モード。

Binary	バイナリ モードを指定します。バイナリ モードでは、Get ステートメントおよび Put ステートメントを使って、ファイル内の指定した任意のバイト位置で情報を読み取りおよび書き込みできます。バイナリ モードで access 節を省略すると、3 つのモードでファイルを開こうとします。ファイルを開く 3 つのモードの順序は、ランダム アクセス ファイルのときと同じです。

Input	シーケンシャル入力モードを指定します。

Output	シーケンシャル出力モードを指定します。

Append	シーケンシャル出力モードを指定します。Append を選択した場合は、ファイル ポインタはファイルの末尾に設定されます。Print # ステートメントまたは Write # ステートメントでファイルに追加の書き込みを行います。

引数 mode を省略すると初期設定モード (Random) と見なされます。

引数 access に指定するキーワードは次のとおりです。

指定項目	内容

Read	ファイルを読み込み専用でオープンします。

Write	ファイルを書き込み専用でオープンします。

Read Write	ファイルを読み込みと書き込みの両方で開きます。このモードはランダム アクセス ファイル (Random)、バイナリ ファイル (Binary)、追加モード (Append) で開いたファイルにだけ指定できます。

引数 lock に指定するキーワードは次のとおりです。

指定項目	内容

Shared	どのマシン上のプロセスでも、このファイルの読み込みおよび書き込みを行うことができます。

Lock Read	他のプロセスが、このファイルからデータを読み込むことを禁止します。先に他のプロセスが、このファイルに対して読み込みアクセスを行っている場合は、ロックできません。

Lock Write	他のプロセスが、このファイルからデータを書き込むことを禁止します。先に他のプロセスが、このファイルに対して書き込みアクセスを行っている場合は、ロックできません。

Lock Read Write	他のプロセスが、このファイルの読み込みおよび書き込みを行うことを禁止します。先に他のプロセスが、このファイルの読み込みまたは書き込みのいずれかのアクセスを行っている場合は、ロックできません。キーワード Lock Read またはキーワード Lock Write が既に指定されているときは、これらが優先されます。

解説

入出力処理を行うときには、その対象となるファイルを開く必要があります。Open ステートメントはファイルに入出力のためのバッファを割り当て、バッファに対するアクセス モードを決定します。

引数 pathname に指定したファイルが存在しないと、ファイルを開くときに追加モード (Append)、バイナリ モード (Binary)、出力モード (Output)、ランダム アクセス モード (Random) のいずれかのモードが指定されている場合、新規に作成されて開かれます。

引数 access は、開いたファイル上で行う操作を指定するキーワードです。ファイルが別のプロセスのために既に開かれていて、指定したアクセスが実行できないとき、Open ステートメントはファイルを開くことができず、エラーが発生します。

Len 節と reclen は、引数 mode に Binary を指定した場合は無視されます。シーケンシャル ファイルの場合、シーケンシャル ファイル内のレコード サイズは一定でないため、引数 reclen の値はそれぞれのレコードのサイズと一致している必要はありません。

重要   バイナリ モード、入力モード、ランダム アクセス モードでは、1 つのファイルを開いたまま、別のファイル番号で同時に開くことができます。一方、追加モードと出力モードでは、いったんファイルを閉じないと、別のファイル番号で再び開くことはできません。


関連項目

Close ステートメント

FreeFile 関数


Print # ステートメント

関連項目	例

シーケンシャル出力モード (Output または Append) で開いたファイルにデータを書き込むファイル入出力ステートメントです。

構文

Print #filenumber, [outputlist]

Print # ステートメントの指定項目は次のとおりです。

指定項目	内容

filenumber	任意のファイル番号を指定します。指定する番号は、Open ステートメントで指定した番号です。

outputlist	出力する式や数式または文字列式を指定します。

設定値

引数 outputlist の指定項目は次のとおりです。

[{Spc(n) | Tab[(n)]}][expression][charpos]

指定項目	内容

Spc(n)	出力するデータに n 個のスペースを挿入します。

Tab(n)	expression の出力位置を n 番めの桁位置に移動します。Tab 関数の引数 n に何も指定しない場合は、出力位置は次の印字領域の先頭になります。

expression	出力する数式または文字列式を指定します。

charpos	次の文字の出力位置を指定します。セミコロン (;) を指定すると、次の文字は最後の文字の直後から出力されます。Tab(n) 関数で出力位置の桁番号を指定できます。Tab 関数の引数 n に何も指定しないと、出力位置は次の印字領域の先頭になります。引数 charpos を省略すると、次の文字は次の行の先頭から出力されます。

解説

引数 outputlist を省略し filenumber の後ろに区切り記号だけを指定すると、ファイルに空白行を出力します。複数の式は、スペースまたはセミコロン (;) で区切ることができます。1 つのスペースは、1 つのセミコロン (;) と同じ働きをします。

Print # ステートメントで書き込まれたすべてのデータは、国ごとに異なる形式で書き込まれます。オペレーティング システムの国別情報の設定に従い、データは適切な小数点の記号により書式設定され、キーワードはその国で設定されている言語で出力されます。

ブール型 (Boolean) のデータは、True または False という文字列で出力されます。キーワード True とキーワード False は、システムの設定により適切に変換されます。

日付型 (Date) のデータは、コントロール パネルで設定した短い形式で書き込まれます。日付や時間の構成要素がないとき、またはゼロのときは、指定されている部分だけのデータがファイルに書き込みます。

引数 outputlist のデータが Empty 値のときは、ファイルには何も書き込まれません。ただし引数 outputlist のデータが Null 値のときは、Null という文字列でファイルに書き込まれます。

エラー データは、Error errorcode として出力されます。キーワード Error は、ファイルに書き込まれる時に、適切に変換されます。

Print # ステートメントは、データのイメージをファイルに書き込むので、正しく出力するためにはデータを区切る必要があります。Tab 関数の引数 n に何も指定しないと、出力位置は次の印字領域の先頭になります。Print # ステートメントは、データ項目間のスペースもファイルに書き込みます。

注   Input # ステートメントを使って、ファイルからデータを正しく読み込むことができるように、データをファイルへ書き込むには、Print # ステートメントではなく、必ず Write # ステートメントを使用してください。Write # ステートメントを使うと、適切に各データ項目が区切られ、Input # ステートメントを使って確実にそのファイルを再び読み込むことができます。Write # ステートメントを使って書き込んだデータは、オペレーティング システムの国別情報の設定により正しく読み込むことができます。


関連項目

Open ステートメント

Print メソッド

Spc 関数

Tab 関数

Write # ステートメント

国別情報


Put ステートメント

関連項目	例

変数の内容をディスク上のファイルに書き込むファイル入出力ステートメントです。

構文

Put [#]filenumber, [recnumber], varname

Put ステートメントの指定項目は次のとおりです。

指定項目	内容

filenumber	任意のファイル番号を指定します。指定する番号は、Open ステートメントで指定した番号です。

recnumber	書き込みを行うレコード番号 (ランダム アクセス ファイル) または バイト位置 (バイナリ ファイル) を指定します。

varname	ディスクに書き込むデータが格納されている変数の名前を指定します。

解説

引数 recnumber には、ファイル内の先頭のレコード番号またはバイト位置を 1、2 番めのレコード番号またはバイト位置を 2 のように指定します。引数 recnumber を省略すると、次のレコードまたはバイト位置 (直前に実行した Get ステートメントまたは Put ステートメントで指定したレコードまたはバイト位置の次、あるいは直前に実行した Seek 関数で取得したレコードまたはバイト位置) に書き込まれます。次に示すように引数 recnumber を省略する場合でも、各指定項目を区切るカンマは省略できません。

Put #4,,FileBuffer

ランダム アクセス モード (Random) で開いたファイルの場合、次の規則が適用されます。

書き込むデータの長さが Open ステートメントの Len 節で指定した長さを超えない限り、Put ステートメントは次のレコードを直前のレコードの終端から書き込みます。レコードの終端と次のレコードの先頭との間には、ファイル バッファの内容が埋め込まれます。埋め込まれるデータの量は指定できないので、通常はレコード長を書き込むデータ長に合わせます。書き込むデータの長さが Open ステートメントの Len 節で指定した長さを超えると、エラーが発生します。

可変長文字列変数を使う場合、Put ステートメントは、文字列の長さを示す 2 バイトの記述子を書き込み、次に変数内の文字列データを書き込みます。Open ステートメントの Len 節では、文字列の実際の長さより 2 バイト以上大きな値を指定する必要があります。

数値型のバリアント型 (Variant) の変数を使う場合、Put ステートメントは、バリアント型の内部処理形式 (VarType) を示す 2 バイトのデータを書き込み、次に変数のデータを書き込みます。たとえば、VarType 3 のバリアント型の変数を書き込む場合、Put ステートメントは 6 バイトのデータを書き込みます。このうち 2 バイトは、バリアント型が VarType 3 (長整数型) であることを示すデータ、4 バイトは、長整数型のデータです。Open ステートメントの Len 節では、実際にデータを格納するために必要なバイト数より 2 バイト以上大きな値を指定する必要があります。

注   Put ステートメントを使用すると、ディスクにバリアント型 (Variant) の配列を書き込むことができます。ただし、バリアント型 (Variant) の値が数値で、配列を含む場合、ディスクに書き込むことはできません。また、Put ステートメントを使用してオブジェクトを書き込むことはできません。

VarType 8 (文字列型) のバリアント型の変数を使う場合、Put ステートメントは、バリアント型の内部処理形式 (VarType) を示す 2 バイトのデータを書き込んでから、文字列の長さを示す 2 バイトのデータを書き込み、その後文字列データを書き込みます。Open ステートメントの Len 節で指定するレコード長は、文字列の実際の長さより 4 バイト以上大きな値を指定する必要があります。

Put ステートメントを使用して動的配列に変数を書き込むと、記述子が書き込まれます。この記述子の長さは、2 に 8 と次元数の積を加えた値 (2 + 8 * 配列の次元数) に等しくなります。Open ステートメントの Len 節で指定するレコード長は、データと配列の記述子を書き込むために必要なバイト数の合計、またはそれ以上である必要があります。たとえば、次の配列を定義すると、配列がディスクに書き込まれる場合、118 バイトを必要とします。

Dim MyArray(1 To 5,1 To 10) As Integer

118 バイトは、記述子のための 18 バイト (2 + 8 * 2)、データのための 100 バイト (5 * 10 * 2) を合わせた値です。

書き込まれる変数が固定サイズの配列の場合、Put ステートメントは、データだけを書き込みます。記述子はディスクに書き込みません。

その他の型の変数 (可変長文字列変数とバリアント型の変数以外) を使う場合、Put ステートメントは、変数のデータだけを書き込みます。Open ステートメントの Len 節では、書き込むデータの長さ以上の値を指定する必要があります。

ユーザー定義型の要素を Put ステートメントを使って書き込む場合、各要素は独立しているように書き込まれます。ただし、各要素の間には何も埋め込まれません。Put ステートメントを使用して、ユーザー定義型に含まれる動的配列をディスクに書き込むと、記述子が前置されます。この記述子の長さは、2 に 8 と次元数の積を加えた値 (2+8 * NumberOfDimensions) に等しくなります。Open ステートメントの Len 節で指定するレコード長は、配列および記述子を書き込むために必要なバイト数の合計、またはそれ以上の値である必要があります。

バイナリ モード (Binary) で開いたファイルの場合は、次に示す規則を除いて、ランダム アクセス ファイルの規則がすべて適用されます。

バイナリ モードでは、Open ステートメントの Len 節は無視されます。Put ステートメントは、ディスクにすべての変数のデータを連続的に書き込みます。レコードとレコードの間には何も埋め込まれません。

ユーザー定義型の配列以外の配列の場合、Put ステートメントは、データだけを書き込みます。記述子は書き込みません。

ユーザー定義型の要素でない可変長文字列を使う場合、Put ステートメントは、データ長を示す 2 バイトの記述子を書き込まずに、文字列変数の持つ値の文字数と同じバイト数を書き込みます。たとえば、次のステートメントは、ファイル番号 1 のファイルに 10 バイトのデータを書き込みます。

VarString$ = String$(10," ")

Put #1,,VarString$


関連項目

Get ステートメント

Open ステートメント

Seek 関数

VarType 関数


Reset ステートメント

関連項目	例

Open ステートメントで開いたすべてのファイルを閉じる、ファイル入出力ステートメントです。

構文

Reset

解説

Reset ステートメントは、Open ステートメントで開いたすべてのファイルを閉じて、ファイル バッファに残っているすべてのデータをディスクに書き込みます。


関連項目

Close ステートメント

End ステートメント

Open ステートメント


Seek 関数

関連項目	例

Open ステートメントで開いたファイルの現在位置を返す、ファイル入出力関数です。

構文

Seek(filenumber)

引数 filenumber には、位置を調べたいファイルのファイル番号を指定します。

解説

Seek 関数は、1 ～ 2,147,483,647 (= 2^31-1) の範囲の値を返します。ランダム アクセス モード (Random) で開いたファイルでは、次に読み込みまたは書き込みを行うレコードの番号を返します。バイナリ モード (Binary)、出力モード (Output)、追加モード (Append) または入力モード (Input) で開いたファイルでは、次に読み込みまたは書き込みを行う位置を、バイト数で返します。ファイル内の先頭のバイト位置は 1 になり、次のバイト位置は 2 になります。


関連項目

Get ステートメント

Open ステートメント

Put ステートメント

Seek ステートメント


Seek ステートメント

関連項目	例

Open ステートメントで開いたファイルの、次に読み込みまたは書き込みを行う位置を設定するファイル入出力ステートメントです。

構文

Seek [#]filenumber, position

Seek ステートメントの指定項目は次のとおりです。

指定項目	内容

filenumber	任意のファイル番号を指定します。指定する番号は、Open ステートメントで指定した番号です。

position	次に読み込みまたは書き込みを行う位置を表す数式を指定します。引数 position に指定できる値の範囲は、1 ～ 2,147,483,647 (= 2^31-1) です。

解説

Get ステートメントおよび Put ステートメントで指定したレコード番号は、Seek ステートメントで設定した位置よりも優先されます。

ファイルの末尾より後ろの位置を指定して Seek ステートメントを実行したあと、そのファイルに対して書き込みを行うと、そのファイルの末尾から書き込まれます。引数 position に負の数または 0 を設定して Seek ステートメントを実行すると、エラーが発生します。


関連項目

Get ステートメント

Open ステートメント

Put ステートメント

Seek 関数


Spc 関数

関連項目	例

Print # ステートメントまたは Print メソッドと共に使用し、指定した数のスペースを挿入するファイル入出力関数です。

構文

Spc(n)

引数 n には、Spc(n) の次に指定したデータ数式、または文字列式に挿入するスペースの数を指定します。

解説

引数 n に出力行の桁数より小さい値を指定すると、次の出力位置は指定した数のスペースの直後になります。引数 n に出力行の桁数より大きい値を指定すると、Spc 関数は次の出力位置を次の式で計算します。

currentprintposition + (n Mod width)

たとえば、現在の出力位置 (currentprintposition) を 24、出力行の桁数 (width) を 80、Spc(90) と指定すると、次の出力は 34 の位置 (現在の出力位置 + 90/80 の剰余) から始まります。現在の出力位置と出力行の桁数との差が n (または、n Mod width) 未満の場合、Spc 関数は次の行の先頭に進み、n - (width - currentprintposition) の式に従ってスペースの数を計算し、次の出力位置を決めます。

注   幅の広い文字を表示できるよう、十分な桁数があることを確認してください。

Print メソッドでプロポーショナル フォントを使うとき、Spc 関数を使用して表示されるスペースの幅は、選択したフォントのポイント サイズが持つすべての文字の幅を平均したものになります。表示される文字数と、1 文字の占める固定幅の桁数は互いに無関係です。たとえばプロポーショナル フォントの場合、大文字の W は固定幅のフォントの 1 桁の幅よりも広く、小文字の i は 1 桁の幅よりも狭くなります。


関連項目

Mod 演算子

Print メソッド

Print # ステートメント

Space 関数

Tab 関数

Width # ステートメント


Tab 関数

関連項目	例

Print # ステートメントまたは Print メソッドと共に使用し、次の文字の出力位置を移動するファイル入出力関数です。

構文

Tab[(n)]

引数 n には、新しい出力位置の桁位置を示す整数を指定します。引数 n を省略すると、次の印字領域の先頭にカーソルを移動します。このため、国別情報の設定で小数点記号としてカンマ (,) が指定されている場合に、Tab 関数を使用できます。

解説

出力行上の出力位置が引数 n より大きい場合、Tab 関数は次の出力行の n 桁めに進みます。引数 n に 1 未満の値を指定すると、出力位置は桁位置 1 に移動します。引数 n が出力行の桁数を超える場合、Tab 関数は次の式を使って次の出力位置を決めます。

n Mod width

たとえば、出力行の桁数 (width) を 80、Tab(90) と指定すると、次の出力は 10 の位置 (90/80 の剰余) から始まります。指定した桁位置 n が現在の出力位置より前の場合、次の行に改行され、計算した桁位置に出力位置が移動します。計算された出力位置が現在の出力位置より後ろのときは、同じ行上の計算された位置に、出力位置が移動します。

出力行上の出力位置は左端を 1 と数えます。Print # ステートメントを使ってファイルを出力する場合、出力位置の右端は出力ファイルの現在の 1 行の桁数に相当します。出力ファイルの桁数は、Width # ステートメントを使って設定します。

注   幅の広い文字を表示できるよう、十分な桁数があることを確認してください。

Tab 関数を Print メソッドの中で使う場合、文字の幅がすべて均一な“固定幅のフォント”と文字によって幅が異なる“プロポーショナル フォント”では、1 行に表示される文字数 (桁数) が異なることに注意してください。表示画面は均等な固定幅の桁に分けられています。それぞれの幅は、選択したフォントのポイント サイズにおけるすべての文字の幅を平均したものになります。表示される文字数と文字の占める固定幅の桁数は互いに無関係です。たとえばプロポーショナル フォントの場合、大文字の W は固定幅のフォントの 1 桁の幅よりも広く、小文字の i は 1 桁の幅よりも狭くなります。


関連項目

Mod 演算子

Print メソッド

Print # ステートメント

Space 関数

Spc 関数

Width # ステートメント

国別情報


Width # ステートメント

関連項目	例

Open ステートメントで開いたファイルに、出力する行の幅 (桁数) を割り当てるファイル入出力ステートメントです。

構文

Width #filenumber, width

Width ステートメントの指定項目は次のとおりです。

指定項目	内容

filenumber	任意のファイル番号を指定します。指定する番号は、Open ステートメントで指定した番号です。

width	1 行に表示される文字数を示す、0 ～ 255 の範囲の数式を指定します。引数 width に 0 を指定すると、行の長さは制限されません。行幅の既定値は 0 です。


関連項目

Open ステートメント

Print # ステートメント


Write # ステートメント

関連項目	例

シーケンシャル出力モード (Output または Append) で開いたファイルにデータを書き込む、ファイル入出力ステートメントです。

構文

Write #filenumber, [outputlist]

Write ステートメントの指定項目は次のとおりです。

指定項目	内容

filenumber	任意のファイル番号を指定します。指定する番号は、Open ステートメントで指定した番号です。filenumber の前にはシャープ記号 (#) が必要です。

outputlist	出力するデータを数式または文字列式を使用して 1 つまたは複数指定します。

解説

引数 outputlist を省略して引数 filenumber の後にカンマ (,) を指定すると、空白行がファイルに出力されます。引数 outputlist に複数のデータを指定するときは、スペース、セミコロン (;)、またはカンマ (,) で区切って指定します。スペースとセミコロンは同じ働きをします。

Write # ステートメントを使ってファイルに書き込んだデータは、国別情報の設定にかかわらず、Input # ステートメントで正しく解釈されて読み込むことができます。

数値データ型のデータは、小数点記号としてピリオド (.) が常に使用されます。

ブール型 (Boolean) のデータは、文字列 #TRUE# または #FALSE# がファイルに書き込まれます。キーワード True およびキーワード False は、国別情報の設定にかかわらず変換されません。

日付型 (Date) のデータは、共通日付形式を使用して書き込まれます。日付や時間の構成要素がないときやゼロのときは、指定されている部分だけのデータがファイルに書き込まれます。

引数 outputlist のデータが Empty 値の場合は、そのデータ項目については何も書き込まれません。ただし、引数 outputlist のデータが Null 値の場合は、文字列#NULL# がファイルに書き込まれます。

エラー データは、文字列 #ERROR errorcode# として出力されます。キーワード Error は、国別情報の設定にかかわらず変換されません。

Write # ステートメントは、Print # ステートメントと異なり、ファイルにデータを書き込むときにデータ項目の間にカンマ (,) を挿入します。文字列はダブル クォーテーション (") で囲んで出力します。引数 outputlist には明示的に区切り文字を指定する必要はありません。Write # ステートメントはファイルに引数 outputlist の最後の文字を出力したあと、改行文字を挿入します。


関連項目

Chr 関数

Input # ステートメント

Open ステートメント

Print # ステートメント


ChDir ステートメント

関連項目	例

現在のディレクトリを変更します。

構文

ChDir path

引数 path には、新しく設定するディレクトリを表す文字列式を指定します。ドライブ名を省略してディレクトリを指定すると、ChDir ステートメントは現在のドライブの該当するディレクトリに変更します。

解説

ChDir ステートメントを使用すると、ディレクトリを変更できます。ただし、ドライブは変更されません。たとえば、現在のドライブが C のとき、次のステートメントは D ドライブのディレクトリを変更しますが、現在のドライブは C のまま変更されません。

ChDir "D:\TMP"


関連項目

ChDrive ステートメント

CurDir 関数

Dir 関数

MkDir ステートメント

RmDir ステートメント


ChDrive ステートメント

関連項目	例

現在のドライブを変更します。

構文

ChDrive drive

引数 drive には、ドライブを示す文字列式を指定します。引数 drive に長さ 0 の文字列 ("") を指定したときは、現在のドライブは変更されません。引数 drive に 2 文字以上の文字列を指定した場合、最初の 1 文字だけが使用されます。


関連項目

ChDir ステートメント

CurDir 関数

MkDir ステートメント

RmDir ステートメント


CurDir 関数

関連項目	例

指定したドライブの現在のパスを返します。

構文

CurDir[(drive)]

引数 drive には、ドライブを示す文字列式を指定します。引数 drive を省略した場合、または長さ 0 の文字列 ("") を指定した場合は、現在のドライブのパスを返します。


関連項目

ChDir ステートメント

ChDrive ステートメント

MkDir ステートメント

文字列を返す関数

RmDir ステートメント


Dir 関数

関連項目	例

指定したパターンやファイル属性にマッチするファイル名およびディレクトリ名を返します。ドライブのボリューム ラベルも取得できます。

構文

Dir[(pathname[, attributes])]

Dir 関数の指定項目は次のとおりです。

指定項目	内容

pathname	ファイル名を表す文字列式を指定します。ディレクトリ名およびドライブ名も含めて指定できます。引数 pathname に指定した内容が見つからないときは、Null 値を返します。

attributes	取得したいファイルの属性の値の合計を表す数式または定数を指定します。省略すると、標準の属性になります。

設定値

引数 attributes の設定値は次のとおりです。

定数	値	内容

vbNormal	0	標準ファイル。

vbHidden	2	隠しファイル。

vbSystem	4	システム ファイル。

vbVolume	8	ボリューム ラベル。これを指定すると、すべての属性は無効になります。

vbDirectory	16	ディレクトリ。

注   これらの定数は、Visual Basic で定義されています。したがって、実際の数値の代わりにコードで使用することができます。

解説

複数のファイルを指定するための“*”(アスタリスク) および“?”(疑問符) のワイルドカード文字を使用できます。

Dir 関数を最初に呼び出すとき、引数 pathname を指定しないとエラーになります。またファイル属性 (attributes) を指定する場合にも、引数 pathname を指定する必要があります。

Dir 関数は、引数 pathname とマッチする最初のファイル名を返します。それ以外のファイル名で引数 pathname とマッチするものを取得するには、引数を指定せずに再び Dir 関数を呼び出してください。マッチするファイル名がないときは、Dir 関数は長さ 0 の文字列を返します。長さ 0 の文字列が返された場合、次に Dir 関数を呼び出すときは引数 pathname を再び指定しなければなりません。指定しないとエラーが発生します。現在の引数 pathname とマッチするファイル名をすべて取得しなくても、途中で引数 pathname の指定を変更できます。ただし、Dir 関数を再帰的に呼び出すことはできません。

ヒント   取得したファイルを整理する必要があるときには、ファイル名を配列に格納して並べ替え (ソート) を行ってください。また、vbDirectory 属性を指定して Dir 関数を続けて呼び出しても、連続する下位レベルのサブディレクトリは返しません。


関連項目

ChDir ステートメント

CurDir 関数

Like 演算子

文字列を返す関数


FileCopy ステートメント

関連項目	例

ファイルをコピーします。

構文

FileCopy source, destination

FileCopy ステートメントの名前付き引数は次のとおりです。

指定項目	内容

source	コピーしたいファイル名を示す文字列式を指定します。ディレクトリ名およびドライブ名を含めて指定できます。

destination	コピー後のファイル名を示す文字式を指定します。ディレクトリ名およびドライブ名を含めて指定できます。

解説

既に開いているファイルに対して実行すると、エラーが発生します。


関連項目

Kill ステートメント

Name ステートメント


FileDateTime 関数

関連項目	例

指定したファイルの作成日時または最後に変更した日時を示す日付と時刻 (VarType 7) を返します。

構文

FileDateTime(pathname)

引数 pathname には、ファイル名を示す文字列式を指定します。ディレクトリ名およびドライブ名を含めて指定できます。


関連項目

FileLen 関数

GetAttr 関数

VarType 関数


FileLen 関数

関連項目	例

ファイルのサイズをバイト単位で返します。

構文

FileLen(pathname)

引数 pathname には、ファイル名を示す文字列式を指定します。ディレクトリ名およびドライブ名を含めて指定できます。

解説

FileLen 関数を呼び出したとき、指定したファイルが既に開いていると、FileLen 関数はファイルが開かれる前のサイズを表す値を返します。

既に開いているファイルのサイズが必要なときは、LOF 関数を使用してください。


関連項目

FileDateTime 関数

GetAttr 関数

LOF 関数


GetAttr 関数

関連項目	例

ファイルまたはディレクトリの属性を表す整数を返します。

構文

GetAttr(pathname)

引数 pathname には、ファイル名を示す文字列式を指定します。ディレクトリ名およびドライブ名を含めて指定できます。

戻り値

GetAttr 関数の戻り値は、次の各属性を表す整数の合計値です。

値	定数	内容

0	vbNormal	通常ファイル

1	vbReadOnly	読み取り専用ファイル

2	vbHidden	隠しファイル

4	vbSystem	システム ファイル

16	vbDirectory	ディレクトリ

32	vbArchive	最後にバックアップした後で、変更されたファイル (アーカイブ属性)

注   これらの定数は、Visual Basic で定義されています。したがって、実際の数値の代わりにコードで使用することができます。

解説

ファイル属性を調べるには、And 演算子を使って、GetAttr 関数の返す値と調べたいファイル属性の値をビット単位で比較します。演算結果が 0 以外の値 (真 (True)) の場合、指定したファイルにはその属性が設定されています。たとえば、アーカイブ属性が設定されていないとき、次の And 式は 0 を返します。

Result = GetAttr(FName) And vbArchive

アーカイブ属性が設定されている場合は、0 以外の値を返します。


関連項目

And 演算子

FileAttr 関数

SetAttr ステートメント


Kill ステートメント

関連項目	例

ディスクからファイルを削除します。

構文

Kill pathname

引数 pathname には、1 つまたは複数の削除するファイル名を示す文字列式を指定します。ディレクトリおよびドライブを含めて指定できます。

解説

Kill ステートメントでは、複数のファイルを指定するための“*”(アスタリスク) および“?”(疑問符) のワイルドカード文字を使用できます。

Kill ステートメントを使って、開いているファイルを削除しようとすると、エラーが発生します。

ディレクトリを削除するには、RmDir ステートメントを使用してください。


関連項目

Like 演算子

RmDir ステートメント


MkDir ステートメント

関連項目	例

新しいディレクトリを作成します。

構文

MkDir path

引数 path に、作成するディレクトリ名を示す文字列式を指定します。ドライブ名も含めて指定できます。ドライブ名を省略したときは、現在のドライブに新しいディレクトリが作成されます。

解説

MkDir ステートメントを使って名前にスペースを含むディレクトリを作成した場合、アプリケーションによってはそのディレクトリにアクセスできますが、オペレーティング システムの標準のコマンドではそのディレクトリを削除することはできません。このようなディレクトリを削除するには、RmDir ステートメントを使用してください。


関連項目

ChDir ステートメント

CurDir 関数

RmDir ステートメント


Name ステートメント

関連項目	例

ファイルまたはディレクトリの名前を変更します。

構文

Name oldpathname As newpathname

Name ステートメントの指定項目は次のとおりです。

指定項目	内容

oldpathname	名前を変更したいファイル名を示す文字列式を指定します。ディレクトリ名およびドライブ名も含めて指定できます。

newpathname	新しいファイル名を示す文字列式を指定します。ディレクトリ名およびドライブ名も含めて指定できます。引数 newpathname には既に存在しているファイル名は指定できません。

解説

引数 newpathname および oldpathname には、同じドライブを指定します。引数 newpathname に指定したパスが既に存在し、そのパスが引数 oldpathname に指定したパスと異なるときは、ファイルは新しいディレクトリに移動され、必要であればファイル名が変更されます。引数 newpathname および oldpathname に指定したパス名が異なり、ファイル名が同じである場合、ファイルは新しいディレクトリに移動され、ファイル名は変更されません。

Name ステートメントを使用して、ファイルをあるディレクトリから別のディレクトリへ移動することはできますが、ディレクトリを移動することはできません。

現在、開いているファイルに対して Name ステートメントを実行すると、エラーが発生します。ファイル名を変える前に、開いているファイルを閉じてください。


関連項目

Kill ステートメント


RmDir ステートメント

関連項目	例

既存のディレクトリを削除するステートメントです。

構文

RmDir path

引数 path には、削除するディレクトリ名を表す文字列式を指定します。ドライブ名も含めて指定できます。ドライブ名を省略すると、現在のドライブのディレクトリを削除します。

解説

指定したディレクトリ内にファイルが存在していると、エラーが発生します。ディレクトリを削除しようとする前に、Kill ステートメントを使用してすべてのファイルを削除してください。


関連項目

ChDir ステートメント

CurDir 関数

Kill ステートメント

MkDir ステートメント


SetAttr ステートメント

関連項目	例

ファイルの属性を設定します。

構文

SetAttr pathname, attributes

SetAttr ステートメントの名前付き引数は次のとおりです。

指定項目	内容

pathname	属性を設定するファイル名を表す文字列式を指定します。ディレクトリ名およびドライブ名を含めて指定できます。

attributes	ファイルに与える属性を示す値の合計を指定します。次に示す定数または数式を使用して指定します。

設定値

引数 attributes の設定値は次のとおりです。

定数	値	内容

vbNormal	0	(既定値) 通常ファイル

vbReadOnly	1	読み取り専用ファイル

vbHidden	2	隠しファイル

vbSystem	4	システム ファイル

vbArchive	32	最後にバックアップした後で、変更されたファイル (アーカイブ属性)

注   これらの定数は、Visual Basic で定義されています。したがって、実際の数値の代わりにコードで使用することができます。

解説

開いているファイルの属性を変更しようとした場合は、実行時エラーが発生します。


関連項目

FileAttr 関数

GetAttr 関数


配列に関するキーワード一覧


配列に関するキーワード一覧

関連項目

機能	キーワード

配列かどうかの検査	IsArray

配列を作成	Array

既定最少値の変更	Option Base

配列の宣言および初期化	Dim、Private、Public、ReDim、Static

配列サイズの限度の検査	LBound、UBound

配列を再初期化	Erase、ReDim


関連項目

機能別キーワード一覧


コレクション オブジェクトに関するキーワード一覧


コレクション オブジェクトに関するキーワード一覧

関連項目

機能	キーワード

コレクション オブジェクトの作成	Collection

コレクションへのオブジェクトの追加	Add

コレクションからのオブジェクトの解放	Remove

コレクションの項目の参照	Item


関連項目

機能別キーワード一覧


コンパイラ ディレクティブに関するキーワード一覧


コンパイラ ディレクティブに関するキーワード一覧

関連項目

機能	キーワード

コンパイラ定数の定義	#Const

条件付きコンパイル	#If...Then...#Else


関連項目

機能別キーワード一覧


制御構造に関するキーワード一覧


制御構造に関するキーワード一覧

関連項目

機能	キーワード

分岐	GoSub...Return、GoTo、On Error、On...GoSub、On...GoTo

プログラムの終了または一時停止	DoEvents、End、Exit、Stop

ループ	Do...Loop、For...Next、For Each...Next、While...Wend、With

意志決定	Choose、If...Then...Else、Select Case、Switch

プロシージャ	Call、Function...End Function、Property Get...End Property、Property Let...End Property、Property Set...End Property、Sub...End Sub


関連項目

機能別キーワード一覧


変換に関するキーワード一覧


変換に関するキーワード一覧

関連項目

機能	キーワード

ANSI コードの値の文字列への変換	Chr

小文字または大文字への変換	Format、LCase、UCase

日付の連続した番号への変換	DateSerial、DateValue

十進法表記の他の表記法への変換	Hex、Oct

数字の文字列への変換	Format、Str

データ型の変換	CBool、CByte、CCur、CDate、CDbl、CInt、CLng、CSng、CStr、CVar、CVErr、Fix、Int

連続した番号の日付への変換	Date、Month、Weekday、Year

連続した番号の時間への変換	Hour、Minute、Second

文字列の ASCII コードの値への変換	Asc

文字列の数字への変換	Val

時間の連続した番号への変換	TimeSerial、TimeValue


関連項目

機能別キーワード一覧


データ型に関するキーワード一覧


データ型に関するキーワード一覧

関連項目

機能	キーワード

データ型の変換	CBool、CByte、CCur、CDate、CDbl、CInt、CLng、CSng、CStr、CVar、CVErr、Fix、Int

組み込みデータ型の設定	Boolean、Byte、Currency、Date、Double、Integer、Long、Object、Single、String、Variant (既定値)

データ型の検査	IsArray、IsDate、IsEmpty、IsError、IsMissing、IsNull、IsNumeric、IsObject


関連項目

機能別キーワード一覧


日付と時刻に関するキーワード一覧


日付と時刻に関するキーワード一覧

関連項目

機能	キーワード

現在の日付あるいは時間の取得	Date、Now、Time

日付の取得	DateSerial、DateValue

時間の取得	TimeSerial、TimeValue

現在の日付あるいは時間の設定	Date、Time

処理時間の計測	Timer

日付計算の実行	DateAdd、DateDiff、DatePart


関連項目

機能別キーワード一覧


ディレクトリとファイルに関するキーワード一覧


ディレクトリとファイルに関するキーワード一覧

関連項目

機能	キーワード

ディレクトリまたはフォルダの変更	ChDir

ドライブの変更	ChDrive

ファイルのコピー	FileCopy

ディレクトリまたはフォルダの作成	MkDir

ディレクトリまたはフォルダの削除	RmDir

現在のパスの取得	CurDir

ファイル、ディレクトリ、またはラベルの属性の取得	GetAttr

ファイルの名前またはボリューム ラベルの取得	Dir

ファイルの日付または時間のスタンプの取得	FileDateTime

ファイルの長さの取得	FileLen

ファイル、ディレクトリ、またはフォルダの名前の変更	Name

ファイルの属性情報の設定	SetAttr


関連項目

機能別キーワード一覧


エラーに関するキーワード一覧


エラーに関するキーワード一覧

関連項目

機能	キーワード

エラー メッセージの取得	Error

エラー情報の設定	Err

実行時エラーの生成	Clear、Error、Raise

実行時エラーのトラップ	On Error、Resume

エラー値の検査	IsError

バリアント型のエラー値の取得	CVErr


関連項目

機能別キーワード一覧


財務に関するキーワード一覧


財務に関するキーワード一覧

関連項目

機能	キーワード

減価償却の計算	DDB、SLN、SYD

将来価値の計算	FV

支払額の計算	IPmt、Pmt、PPmt

投資期間の計算	NPer

内部利益率の計算	IRR、MIRR

現在価値の計算	NPV、PV

利息率を計算	Rate


関連項目

機能別キーワード一覧


入出力に関するキーワード一覧


入出力に関するキーワード一覧

関連項目

機能	キーワード

ファイルの操作または作成	Open

ファイルを閉じる	Close、Reset

出力形式の制御	Format、Print、Print #、Spc、Tab、Width #

ファイルのコピー	FileCopy

ファイルに関する情報の取得	EOF、FileAttr、FileDateTime、FileLen、FreeFile、GetAttr、Loc、LOF、Seek

ファイルの操作	Dir、Kill、Lock,Unlock、Name

ファイルからの読み込み	Get、Input、Input #、Line Input #

ファイルの長さの取得	FileLen

ファイル属性の設定または取得	FileAttr、GetAttr、SetAttr

ファイルの読み込みまたは書き込み位置の設定	Seek

ファイルへの書き込み	Print #、Put、Write #


関連項目

機能別キーワード一覧


数値演算に関するキーワード一覧


数値演算に関するキーワード一覧

関連項目

機能	キーワード

三角関数による値の取得	Atn、Cos、Sin、Tan

一般的な計算	Exp、Log、Sqr

乱数の発生	Randomize、Rnd

絶対値の取得	Abs

式の符号の取得	Sgn

数値変換の実行	Fix、Int


関連項目

機能別キーワード一覧


その他のキーワード一覧


その他のキーワード一覧

関連項目

機能	キーワード

保留イベントの制御	DoEvents

他のプログラムの実行	AppActivate、Shell

キー コードの転送	SendKeys

ビープ音を鳴らす	Beep

コマンド ライン、環境変数の取得	Command、Environ

OLE オートメーションの制御	CreateObject、GetObject


関連項目

機能別キーワード一覧


演算子に関するキーワード一覧


演算子に関するキーワード一覧

関連項目

機能	キーワード

算術演算子	^、-、*、 /、\、Mod、+、&

比較演算子	=、<>、<、>、<=、>=、Like、Is

論理演算子	Not、And、Or、Xor、Eqv、Imp


関連項目

機能別キーワード一覧


文字列操作に関するキーワード一覧


文字列操作に関するキーワード一覧

関連項目

機能	キーワード

文字列の比較	StrComp

小文字または大文字に変換	Format、LCase、UCase

文字の繰り返し	Space、String

文字列の長さの取得	Len

文字列書式の設定	Format

文字列の配置	LSet、RSet

文字列の操作	Instr、Left、LTrim、Mid、Right、RTrim、Trim

文字列の比較条件の設定	Option Compare

文字コードの操作	Asc、Chr

文字列の変換	StrConv

色と描画	Circle、Line、PSet、QBColor、RGB


関連項目

機能別キーワード一覧


変数と定数に関するキーワード一覧


変数と定数に関するキーワード一覧

関連項目

機能	キーワード

値の代入	Let

変数または定数の宣言	Const、Dim、Private、Public、New、Static

プライベート モジュールの宣言	Option Private Module

バリアントの関する情報を取得	IsArray、IsDate、IsEmpty、IsError、IsMissing、IsNull、IsNumeric、IsObject、TypeName、VarType

変数の明示的な宣言を要求	Option Explicit

既定のデータ型の設定	Deftype

現在のオブジェクトの参照	Me


関連項目

機能別キーワード一覧


IsArray 関数

関連項目	例

変数が配列であるかどうかを調べ、結果をブール型 (Boolean) で返します。

構文

IsArray(varname)

引数 varname には、任意の変数を指定します。

解説

IsArray 関数は、指定した変数が配列のときは真 (True) を返します。それ以外のときは偽 (False) を返します。IsArray 関数は、特に配列を含むバリアント型 (Variant) に有効です。


関連項目

Array 関数

IsDate 関数

IsEmpty 関数

IsError 関数

IsMissing 関数

IsNull 関数

IsNumeric 関数

IsObject 関数

TypeName 関数

バリアント型 (Variant)

VarType 関数


IsDate 関数

関連項目	例

式を日付に変換できるかどうかを調べ、結果をブール型 (Boolean) で返します。

構文

IsDate(expression)

引数 expression には、日付または時刻として認識できる日付式または文字列式を指定します。

解説

IsDate 関数は、指定した式が日付であるとき、またはその式を日付に変換できるときは真 (True) を返します。変換できないときは、偽 (False) を返します。Microsoft Windows で有効な日付の範囲は、西暦 100 年 1 月 1 日から西暦 9999 年 12 月 31 日までです。この範囲は、オペレーティング システムによって異なります。


関連項目

CDate 関数

日付型 (Date)

IsArray 関数

IsEmpty 関数

IsError 関数

IsMissing 関数

IsNull 関数

IsNumeric 関数

IsObject 関数

TypeName 関数

バリアント型 (Variant)

VarType 関数


IsEmpty 関数

関連項目	例

変数が Empty 値かどうかを調べ、結果をブール型 (Boolean) で返します。

構文

IsEmpty(expression)

引数 expression には、任意の数式または文字列式を指定します。ただし、IsEmpty 関数は、単独の変数についてその変数が初期化されているかどうかを調べる関数なので、通常は、引数 expression には 1 つの変数名を指定します。

解説

IsEmpty 関数は、指定した変数が初期化されていないか、Empty 値の場合は真 (True) を返します。それ以外は偽 (False) を返します。また、引数 expression 内に複数の変数がある場合には、常に偽 (False) を返します。IsEmpty 関数の戻り値は、バリアント型 (Variant) にだけ有効です。


関連項目

IsArray 関数

IsDate 関数

IsError 関数

IsMissing 関数

IsNull 関数

IsNumeric 関数

IsObject 関数

TypeName 関数

バリアント型 (Variant)

VarType 関数


IsError 関数

関連項目	例

式がエラー値かどうかを調べ、結果をブール型 (Boolean) で返します。

構文

IsError(expression)

引数 expression には、VarType が vbError の任意のバリアント型 (Variant) を指定します。

解説

エラー値は、CVErr 関数を使用して実数を変換することによって作成されます。IsError 関数は、指定した数式がエラー値であるかどうかを調べるために使います。引数 expression がエラー値である場合は真 (True) が返されます。そうでない場合は偽 (False) が返されます。IsError 関数は、VarType が vbError のバリアント型に有効な情報のみを返します。


関連項目

CVErr 関数

IsArray 関数

IsDate 関数

IsEmpty 関数

IsMissing 関数

IsNull 関数

IsNumeric 関数

IsObject 関数

TypeName 関数

バリアント型 (Variant)

VarType 関数


IsMissing 関数

関連項目	例

プロシージャに省略可能な引数が渡されたかどうかを調べ、結果をブール型 (Boolean) で返します。

構文

IsMissing(argname)

引数 argname には、プロシージャの省略可能な引数の名前を指定します。

解説

IsMissing 関数は、キーワード ParamArray を指定した省略可能な引数を持つプロシージャの中で使用し、引数がプロシージャに渡されたかどうかを調べます。指定された引数が渡されていない場合は、真 (True) を返します。それ以外は偽 (False) を返します。IsMissing 関数がある引数に対して真 (True) を返すときに、その引数を他のコード内で使うと、ユーザー定義エラーが発生することがあります。キーワード ParamArray を指定した引数に IsMissing 関数を使うと、常に偽 (False) が返されます。


関連項目

Function ステートメント

IsArray 関数

IsDate 関数

IsEmpty 関数

IsError 関数

IsNull 関数

IsNumeric 関数

IsObject 関数

ParamArray キーワード

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント

TypeName 関数

バリアント型 (Variant)

VarType 関数


IsNull 関数

関連項目	例

式に Null 値が含まれているかどうかを調べ、結果をブール型 (Boolean) で返します。

構文

IsNull(expression)

引数 expression には、任意の数式または文字列式を指定します。

解説

IsNull 関数は、引数 expression の値が無効な値 (Null 値) である場合は真 (True) を返します。それ以外は偽 (False) を返します。引数 expression が複数の変数で構成されている場合、変数が 1 つでも Null 値のときには、式全体が Null 値となり、真 (True) が返されます。

Null 値は、バリアント型 (Variant) に有効なデータが入っていないことを示す値であり、変数が初期化されていないことを示す Empty 値や、Null 文字列と呼ばれる長さが 0 の文字列とは異なります。

重要   IsNull 関数を使用すると、式に Null 値が含まれているかどうかを調べることができます。If Var = Null や If Var <> Null のように他の状況では真 (True) と評価される式でも、偽 (False) になります。これは、Null 値を含む式はすべて式自体が Null 値となり、偽と評価されるためです。


関連項目

IsArray 関数

IsDate 関数

IsEmpty 関数

IsError 関数

IsMissing 関数

IsNumeric 関数

IsObject 関数

TypeName 関数

バリアント型 (Variant)

VarType 関数


IsNumeric 関数

関連項目	例

式が数値として評価できるかどうかを調べ、結果をブール型 (Boolean) で返します。

構文

IsNumeric(expression)

引数 expression には、任意の数式または文字列式を指定します。

解説

IsNumeric 関数は、引数 expression が数値として認識できる場合は真 (True) を返します。それ以外は偽 (False) を返します。

IsNumeric 関数は、引数 expression が日付式の場合は偽 (False) を返します。


関連項目

IsArray 関数

IsDate 関数

IsEmpty 関数

IsError 関数

IsMissing 関数

IsNull 関数

IsObject 関数

TypeName 関数

バリアント型 (Variant)

VarType 関数


IsObject 関数

関連項目	例

式が OLE オートメーション オブジェクトを参照しているかどうかを調べ、結果をブール型 (Boolean) で返します。

構文

IsObject(expression)

引数 expression には、任意の式を指定します。

解説

IsObject 関数は、引数 expression で有効な OLE オートメーション オブジェクト、VarType が vbObject のバリアント型 (Variant) のオブジェクト、またはユーザー定義のオブジェクトのいずれかを参照している場合は、真 (True) を返します。それ以外は偽 (False) を返します。


関連項目

IsArray 関数

IsDate 関数

IsEmpty 関数

IsError 関数

IsMissing 関数

IsNull 関数

IsNumeric 関数

オブジェクト型

Set ステートメント

TypeName 関数

バリアント型 (Variant)

VarType 関数


TypeName 関数

関連項目	例

変数に関する情報を提供する文字列を返します。

構文

TypeName(varname)

引数 varname には、ユーザー定義型を除く任意の変数を指定します。

解説

TypeName 関数によって次のいずれかの文字列が返されます。

文字列	変数の内容

(オブジェクトの種類)	返された文字列 objecttype で表される種類の OLE オートメーション オブジェクト

Byte	バイト

Integer	整数

Long	長整数

Single	単精度浮動小数点数

Double	倍精度浮動小数点数

Currency	通貨値

Date	日付

String	文字列

Boolean	ブール値

Error	エラー値

Empty	未初期化

Null	無効な値

Object	OLE オートメーションをサポートしているオブジェクト

Unknown	オブジェクトの種類が不明な OLE オートメーション オブジェクト

Nothing	オブジェクトを参照していないオブジェクト変数

引数 varname が配列の場合は、上記の文字列の中の該当する文字列またはバリアント型 (Variant) の値に、空のかっこ“()”を付けて返します。たとえば、引数 varname が整数の配列のとき、TypeName 関数は“Integer()”を返します。


関連項目

データ型の概要

IsArray 関数

IsDate 関数

IsEmpty 関数

IsError 関数

IsMissing 関数

IsNull 関数

IsNumeric 関数

IsObject 関数

バリアント型 (Variant)

VarType 関数


VarType 関数

関連項目	例

変数の内部処理形式を表す値を返します。

構文

VarType(varname)

引数 varname には、ユーザー定義型を除く任意の変数を指定します。

戻り値

定数	値	変数の型

vbEmpty	0	Empty 値 (未初期化)

vbNull	1	Null 値 (無効な値)

vbInteger	2	整数型 (Integer)

vbLong	3	長整数型 (Long)

vbSingle	4	単精度浮動小数点数型 (Single)

vbDouble	5	倍精度浮動小数点数型 (Double)

vbCurrency	6	通貨型 (Currency)

vbDate	7	日付型 (Date)

vbString	8	文字列型 (String)

vbObject	9	OLE オートメーション オブジェクト

vbError	10	エラー値 (Error)

vbBoolean	11	ブール型 (Boolean)

vbVariant	12	バリアント型 (Variant) (バリアント型配列にのみ使用)

vbDataObject	13	非 OLE オートメーション オブジェクト

vbByte	17	バイト型 (Byte)

vbArray	8192	配列

注   これらの定数は Visual Basic で定義されているものです。したがって、コードの中の任意の場所で、実際の値の代わりに使用できます。

解説

VarType 関数は、定数 vbArray の値 (8192) を単独では返しません。この値は、常に、データ型を表す他の値と加算されて返され、指定した変数が、そのデータ型の要素を持つ配列であることを示します。定数 vbVariant は、常に定数 vbArray と加算されて返され、指定した変数が、バリアント型の配列であることを示します。たとえば、整数型の要素を持つ配列を指定したときは、vbInteger + vbArray として計算された値 8194 が返されます。オブジェクトが既定プロパティをもつとき、VarType (object) はその既定プロパティの型を返します。


関連項目

データ型の概要

IsArray 関数

IsDate 関数

IsEmpty 関数

IsError 関数

IsMissing 関数

IsNull 関数

IsNumeric 関数

IsObject 関数

TypeName 関数

バリアント型 (Variant)


As キーワード

キーワード As は、次に示す項目で使われています。

Const ステートメント

Declare ステートメント

Dim ステートメント

Function ステートメント

Name ステートメント

Open ステートメント

Private ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Public ステートメント

ReDim ステートメント

Static ステートメント

Sub ステートメント

Type ステートメント


Binary キーワード

キーワード Binary は、次に示す項目で使われています。

Open ステートメント

Option Compare ステートメント


ByRef キーワード

キーワード ByRef は、次に示す項目で使われています。

Call ステートメント

Declare ステートメント

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


ByVal キーワード

キーワード ByVal は、次に示す項目で使われています。

Call ステートメント

Declare ステートメント

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


Date キーワード

キーワード Date は、次に示す項目で使われています。

日付型 (Date)

Date 関数

Date ステートメント


Else キーワード

キーワード Else は、次に示す項目で使われています。

If...Then...Else ステートメント

Select Case ステートメント


Empty キーワード

関連項目

キーワード Empty はバリアント型 (Variant) の 1 つで、変数に格納されている値が初期化されていないことを示します。


関連項目

バリアント型 (Variant)


Error キーワード

キーワード Error は、次に示す項目で使われています。

Error 関数

Error ステートメント

On Error ステートメント


False キーワード

False は、偽 (0) の値と等しいキーワードです。


For キーワード

キーワード For は、次に示す項目で使われています。

For...Next ステートメント

For Each...Next ステートメント

Open ステートメント


Get キーワード

キーワード Get は、次に示す項目で使われています。

Get ステートメント

Property Get ステートメント


Input キーワード

キーワード Input は、次に示す項目で使われています。

Input 関数

Input # ステートメント

Line Input # ステートメント

Open ステートメント


Is キーワード

キーワード Is は、次に示す項目で使われています。

If...Then...Elseステートメント

Is 演算子

Select Case ステートメント


Len キーワード

キーワード Len は、次に示す項目で使われています。

Len 関数

Open ステートメント


Let キーワード

キーワード Let は、次に示す項目で使われています。

Let ステートメント

Property Let ステートメント


Lock キーワード

キーワード Lock は、次に示す項目で使われています。

Lock、Unlock ステートメント

Open ステートメント


Mid キーワード

キーワード Mid は、次に示す項目で使われています。

Mid 関数

Mid ステートメント


Next キーワード

キーワード Next は、次に示す項目で使われています。

For...Next ステートメント

For Each...Next ステートメント

On Error ステートメント

Resume ステートメント


Null キーワード

関連項目

キーワード Null は、バリアント型 (Variant) の 1 つで、有効な値が変数に格納されていないことを示します。


関連項目

バリアント型 (Variant)


On キーワード

キーワード On は、次に示す項目で使われています。

On Error ステートメント

On...GoSub ステートメント

On...GoTo ステートメント


Option キーワード

キーワード Option は、次に示す項目で使われています。

Option Base ステートメント

Option Compare ステートメント

Option Explicit ステートメント

Option Private ステートメント


Optional キーワード

キーワード Optional は、次に示す項目で使われています。

Declare ステートメント

Function ステートメント

Sub ステートメント


ParamArray キーワード

キーワード ParamArray は、次に示す項目で使われています。

Declare ステートメント

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


Print キーワード

キーワード Print は、次に示す項目で使われています。

Print メソッド

Print # ステートメント


Private キーワード

キーワード Private は、次に示す項目で使われています。

Const ステートメント

Declare ステートメント

Function ステートメント

Option Private ステートメント

Private ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント

Type ステートメント


Property キーワード

キーワード Property は、次に示す項目で使われています。

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント


Public キーワード

キーワード Public は、次に示す項目で使われています。

Const ステートメント

Declare ステートメント

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Public ステートメント

Sub ステートメント

Type ステートメント


Resume キーワード

キーワード Resume は、次に示す項目で使われています。

On Error ステートメント

Resume ステートメント


Seek キーワード

キーワード Seek は、次に示す項目で使われています。

Seek 関数

Seek ステートメント


Set キーワード

キーワード Set は、次に示す項目で使われています。

Set ステートメント

Property Set ステートメント


Static キーワード

キーワード Static は、次に示す項目で使われています。

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Static ステートメント

Sub ステートメント


Step キーワード

キーワード Step は、次に示す項目で使われています。

For...Next ステートメント

For Each...Next ステートメント


String キーワード

キーワード String は、次に示す項目で使われています。

文字列型 (String)

String 関数


Then キーワード

キーワード Then は、次に示す項目で使われています。

#If...Then...#Else ディレクティブ

If...Then...Else ステートメント


Time キーワード

キーワード Time は、次に示す項目で使われています。

Time 関数

Time ステートメント


To キーワード

キーワード To は、次に示す項目で使われています。

Dim ステートメント

For...Next ステートメント

Lock、Unlock ステートメント

Private ステートメント

Public ステートメント

ReDim ステートメント

Select Case ステートメント

Static ステートメント

Type ステートメント


True キーワード

True は、真 (-1) の値と等しいキーワードです。


数値演算関数

Abs 関数

Atn 関数

Cos 関数

Exp 関数

Fix 関数

Int 関数

Log 関数

Rnd 関数

Sgn 関数

Sin 関数

Sqr 関数

Tan 関数

超越関数


Abs 関数

関連項目	例

指定した数値の絶対値を返す数値演算関数です。

構文

Abs(number)

引数 number には、任意の数式を指定します。引数 number に Null 値が含まれている場合、Abs 関数は Null 値を返します。また引数 number に、値が割り当てられる前の変数が指定されている場合は、0 を返します。

解説

数値の絶対値とは、その数値から符号を取り除いたものです。たとえば、ABS(-1) と ABS(1) は、どちらも 1 を返します。


関連項目

数値演算関数

Sgn 関数


Atn 関数

関連項目	例

指定した数値のアークタンジェントを返す数値演算関数です。

構文

Atn(number)

引数 number には、任意の数式を指定します。

解説

Atn 関数は、直角三角形の 2 辺の比を引数 (number) として受け取り、対応する角度を返します。ここでいう 2 辺とは、直角をはさむ 2 つの辺を指します。2 辺の比は、求める角の反対側の辺 (対辺) の長さをもう一方の辺 (底辺、つまり求める角に隣接する側の辺) の長さで割った値です。

戻り値は、-π/2 ～π/2 の範囲の値 (単位はラジアン) になります。

角度の単位を度からラジアンに変換するには、度にπ/180 を掛けます。ラジアンから度に変換するには、ラジアンに 180/πを掛けます。

注   Atn 関数は Tan 関数の逆三角関数です。Tan 関数は、引数として角度を受け取り、その角度を含む直角三角形の直角をはさむ 2 辺の比を返します。Atn 関数と、タンジェントの逆数であるコタンジェント (1/タンジェント) を混同しないように注意してください。


関連項目

Cos 関数

超越関数

数値演算関数

Sin 関数

Tan 関数


Cos 関数

関連項目	例

指定した角度のコサインを返す数値演算関数です。

構文

Cos(number)

引数 number には、任意の数式 (単位はラジアン) を指定します。

解説

Cos 関数は、引数として角度を受け取り、その角度を含む直角三角形の 2 辺の比を返します。ここでいう 2 辺とは、引数 number に指定した角をはさむ 2 つの辺を指します。2 辺の比は、短い方の辺 (底辺) の長さを、もう一方の辺 (斜辺) の長さで割った値です。

戻り値は、-1 ～ 1 の範囲の値になります。

角度の単位を度からラジアンに変換するには、度にπ/180 を掛けます。ラジアンから度に変換するには、ラジアンに 180/πを掛けます。


関連項目

Atn 関数

超越関数

数値演算関数

Sin 関数

Tan 関数


Exp 関数

関連項目	例

指数関数 (e を底とする数式のべき乗) を計算する数値演算関数です。

構文

Exp(number)

引数 number には、任意の数式を指定します。

解説

引数 number の値が 709.782712893 を超えると、オーバーフロー エラーが発生します。定数 e の値は約 2.718282 です。

注   Exp 関数は Log 関数の逆関数であり、逆対数と呼ばれることもあります。


関連項目

超越関数

Log 関数

数値演算関数


Int、Fix 関数

関連項目	例

引数に指定した数式の小数部を切り捨て、整数部分だけを返す数値演算関数です。

構文

Int(number)

Fix(number)

引数 number には、任意の数式を指定します。引数 number に Null 値が含まれている場合、Null 値を返します。

解説

Int 関数と Fix 関数は、どちらも引数 number の小数部分を取り除いた整数値を返します。

引数 number に負の値を指定した場合には、Int 関数が引数 number より小さいか等しい最大の負の整数を返すのに対して、Fix 関数は引数 number より大きいか等しい最小の負の整数を返します。たとえば、引数として -8.4 を指定すると、Int 関数は -9、Fix 関数は -8 をそれぞれ返します。

Fix(number) は、次の数式と等価です。

Sgn(number) * Int(Abs(number))


関連項目

CInt 関数

数値演算関数


Log 関数

関連項目	例

数値の自然対数を返す数値演算関数です。

構文

Log(number)

引数 number には、0 より大きい任意の数式を指定します。

解説

自然対数とは、定数 e を底とする対数です。定数 e の値は約 2.718282 です。

任意の数値 x の n を底とする対数は、次に示すように x の自然対数を n の自然対数で割ることによって得られます。

Logn(x) = Log(x) / Log(n)

次の Function プロシージャは、引数に指定した数値の常用対数 (10 を底とする対数) を計算します。

Static Function Log10(X)

Log10 = Log(X) / Log(10#)

End Function


関連項目

超越関数

Exp 関数

数値演算関数


Randomize ステートメント

関連項目	例

乱数ジェネレータを初期化 (乱数系列を再設定) する数値演算ステートメントです。

構文

Randomize [number]

引数 number には、任意の数式を指定します。

解説

引数 number には、Rnd 関数の乱数ジェネレータに与える新しいシード値を指定します。引数 number を省略した場合、システム タイマーから取得した値が新しいシード値として使われます。

Rndomize ステートメントを使用しない場合、引数を指定しないで Rnd 関数を呼び出すと、最初に Rnd 関数を呼び出したときのシード値と同じ値が使用されます。それ以降は、直前に生成された数がシード値として使用されます。


関連項目

Rnd 関数

Timer 関数


Rnd 関数

関連項目	例

乱数を返します。

構文

Rnd[(number)]

引数 number には、任意の数式を指定します。

解説

Rnd 関数は 0 以上 1 未満の範囲の値を返します。

引数 number の値によって、Rnd 関数は次のような乱数を返します。

number の値	戻り値

< 0	常に、引数 number のシード値によって決まる同じ数値を返します。

> 0	乱数系列の次の乱数を返します。

= 0	直前に生成した乱数を返します。

省略したとき	乱数系列の次の乱数を返します。

初期シード値が変わらない限り、一連の Rnd 関数が返す乱数系列は同じになります。これは、連続する Rnd 関数が、それぞれ、乱数系列の中の直前の乱数をシード値として、次の乱数を生成するためです。

システム タイマーから取得した新しいシード値を使って乱数ジェネレータを初期化するには、Rnd 関数を呼び出す前に、引数を指定せずに Randomize ステートメントを実行してください。

任意の範囲の整数の乱数を生成するには、次の式を使ってください。

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

この式では、引数 upperbound には範囲の上限の値を指定し、引数 lowerbound には下限の値を指定します。

注   乱数系列を繰り返すには、数値を指定して Randomize ステートメントを実行する直前に、負の引数を指定して Rnd 関数を呼び出します。引数 number に同じ値を指定して Randomize ステートメントを使用しても、前の乱数系列を繰り返すことはできません。


関連項目

数値演算関数

Randomize ステートメント

Timer 関数


Sgn 関数

関連項目	例

引数に指定した値の符号を返す数値演算関数です。

構文

Sgn(number)

引数 number には、任意の数式を指定します。

戻り値

number の値	戻り値

number > 0	1

number = 0	0

number < 0	-1

解説

引数 number の符号で、Sgn 関数の戻り値が決まります。


関連項目

Abs 関数

数値演算関数


Sin 関数

関連項目	例

指定した角度のサインを返す数値演算関数です。

構文

Sin(number)

引数 number には、任意の数式 (単位はラジアン) を指定します。

解説

Sin 関数は、引数として角度を受け取り、その角度を含む直角三角形の 2 辺の比を返します。ここでいう 2 辺とは、指定した角の反対側の辺 (対辺) と斜辺を指します。2 辺の比は、対辺の長さを斜辺の長さで割った値です。

戻り値は、-1 ～ 1 の範囲の値になります。

角度の単位を度からラジアンに変換するには、度に π/180 を掛けます。ラジアンから度に変換するには、ラジアンに 180/πを掛けます。


関連項目

Atn 関数

Cos 関数

超越関数

数値演算関数

Tan 関数


Sqr 関数

関連項目	例

数式の平方根を返す数値演算関数です。

構文

Sqr(number)

引数 number には、0 以上の任意の数式を指定します。


関連項目

数値演算関数


Tan 関数

関連項目	例

指定した角度のタンジェントを返す数値演算関数です。

構文

Tan(number)

引数 number には、任意の数式 (単位はラジアン) を指定します。

解説

Tan 関数は、引数として角度を受け取り、その角度を含む直角三角形の 2 辺の比を返します。ここでいう 2 辺とは、直角をはさむ 2 つの辺を指します。2 辺の比は、指定した角の反対側の辺 (対辺) の長さを、もう一方の辺 (底辺、つまり指定した角に隣接する側の辺) の長さで割った値です。

角度の単位を度からラジアンに変換するには、度にπ/180 を掛けます。ラジアンから度に変換するには、ラジアンに 180/πを掛けます。


関連項目

Atn 関数

Cos 関数

超越関数

数値演算関数

Sin 関数


超越関数

関連項目

Visual Basic に組み込まれていない数値演算関数の導出式を、次の表に示します。これらの数値演算関数は、いずれも Visual Basic の組み込み関数から導くことができます。

数値演算関数	Visual Basic の組み込み関数を使った導出式

セカント	Sec(X) = 1 / Cos(X)

コセカント	Cosec(X) = 1 / Sin(X)

コタンジェント	Cotan(X) = 1 / Tan(X)

アークサイン	Arcsin(X) = Atn(X / Sqr(-X * X + 1))

アークコサイン	Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)

アークセカント	Arcsec(X) = Atn(X / Sqr(X * X - 1)) + Sgn((X) -1) * (2 * Atn(1))

アークコセカント	Arccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1))

アークコタンジェント	Arccotan(X) = Atn(X) + 2 * Atn(1)

双曲線サイン	HSin(X) = (Exp(X) - Exp(-X)) / 2

双曲線コサイン	HCos(X) = (Exp(X) + Exp(-X)) / 2

双曲線タンジェント	HTan(X) = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X))

双曲線セカント	HSec(X) = 2 / (Exp(X) + Exp(-X))

双曲線コセカント	HCosec(X) = 2 / (Exp(X) - Exp(-X))

双曲線コタンジェント	HCotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X))

双曲線アークサイン	HArcsin(X) = Log(X + Sqr(X * X + 1))

双曲線アークコサイン	HArccos(X) = Log(X + Sqr(X * X - 1))

双曲線アークタンジェント	HArctan(X) = Log((1 + X) / (1 - X)) / 2

双曲線アークセカント	HArcsec(X) = Log((Sqr(-X * X + 1) + 1) / X)

双曲線アークコセカント	HArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) +1) / X)

双曲線アークコタンジェント	HArccotan(X) = Log((X + 1) / (X - 1)) / 2

対数	LogN(X) = Log(X) / Log(N)


関連項目

Atn 関数

Cos 関数

Exp 関数

Log 関数

Sin 関数

Sqr 関数

Tan 関数


ASCII 文字セット (0 - 127)

コード番号 128-255

0	32	[ｽﾍﾟｰｽ]	64	@	96	`

1	33	!	65	A	97	a

2	34	"	66	B	98	b

3	35	#	67	C	99	c

4	36	$	68	D	100	d

5	37	%	69	E	101	e

6	38	&	70	F	102	f

7	39	'	71	G	103	g

8	* *	40	(	72	H	104	h

9	* *	41	)	73	I	105	i

10	* *	42	*	74	J	106	j

11	43	+	75	K	107	k

12	44	,	76	L	108	l

13	* *	45	-	77	M	109	m

14	46	.	78	N	110	n

15	47	/	79	O	111	o

16	48	0	80	P	112	p

17	49	1	81	Q	113	q

18	50	2	82	R	114	r

19	51	3	83	S	115	s

20	52	4	84	T	116	t

21	53	5	85	U	117	u

22	54	6	86	V	118	v

23	55	7	87	W	119	w

24	56	8	88	X	120	x

25	57	9	89	Y	121	y

26	58	:	90	Z	122	z

27	59	;	91	[	123	{

28	60	<	92	\	124	|

29	61	=	93	]	125	}

30	62	>	94	^	126	~

31	63	?	95	_	127

* *	コード番号 8、9、10、13 は制御文字で、それぞれバックスペース、タブ、ライン フィード、キャリッジ リターンとして使われます。

これらの文字は、Microsoft Windows ではサポートされていません。


CreateObject 関数

関連項目	例

OLE オートメーション オブジェクトを作成します。

構文

CreateObject(class)

引数 class は、“appname.objecttype”の形式で指定します。

指定項目	内容

appname	OLE オートメーション オブジェクトを提供しているアプリケーションの名前を指定します。

objecttype	作成するオブジェクトの種類またはクラスを指定します。

解説

OLE オートメーションに対応しているアプリケーションでは、少なくとも 1 種類のオブジェクトが提供されています。たとえば、ワード プロセッサであれば、アプリケーション オブジェクト、文書オブジェクト、ツールバー オブジェクトなどが提供されます。

OLE オートメーション オブジェクトを作成するには、CreateObject 関数の戻り値をオブジェクト変数に代入します。

Dim WordBasicObject As Object

Set WordBasicObject = CreateObject("Word.Basic")

このコードを実行すると、オブジェクトを提供するアプリケーション (この例では Microsoft Word) が起動されます。アプリケーションが既に実行されているときには、そのアプリケーションの新しいインスタンスが起動され、指定された種類のオブジェクトが作成されます。オブジェクトが作成されたら、定義したオブジェクト変数を使って、コード内でそのオブジェクトを参照できるようになります。たとえば、先に示したオブジェクト変数 WordBasicObject を使って、作成されたオブジェクトのプロパティやメソッドにアクセスすることができます。次に例を示します。

WordBasicObject.Insert "Hello, world."

WordBasicObject.FilePrint

WordBasicObject.FileSaveAs "C:\DOCS\TEST.DOC"

また、次のように、CreateObject 関数で取得したオブジェクトを、引数として関数に渡すことができます。

Call MySub (CreateObject("Word.Basic"))

注   オブジェクトの現在のインスタンスがないときは、CreateObject 関数を使います。インスタンスがあるとき、または、アプリケーションを起動してファイルをロードさせたいときは、GetObject 関数を使うことができます。

複数のインスタンスを作成できないオブジェクト (Microsoft Word Version 6.0 の Word.Basic オブジェクトなど) の場合は、何度 CreateObject 関数を実行しても、そのオブジェクトのインスタンスは 1 つしか作成されません。


関連項目

GetObject 関数

OLE オートメーション

Set ステートメント

アプリケーション間の連係


GetObject 関数

関連項目	例

ファイルから OLE オートメーション オブジェクトを取得します。

構文

GetObject([pathname][, class])

GetObject 関数の名前付き引数は次のとおりです。

指定項目	内容

pathname	取得したいオブジェクトが含まれているファイルの絶対パスおよびファイル名を指定します。pathname に長さ 0 の文字列 ("") を指定した場合は、class を必ず指定する必要があります。

class	オブジェクトのクラスを表す文字列を指定します。

名前付き引数 class は、“appname.objecttype”の形式で指定します。

指定項目	内容

appname	OLE オートメーション オブジェクトを提供しているアプリケーションの名前を指定します。

objecttype	作成するオブジェクトの種類またはクラスを指定します。

解説

GetObject 関数を使って、ファイルから取得した OLE オートメーション オブジェクトにアクセスしたり、取得したオブジェクトへの参照をオブジェクト変数に代入することができます。GetObject 関数で取得したオブジェクトをオブジェクト変数に代入するには、Set ステートメントを使います。次に例を示します。

Dim CADObject As Object

Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")

このコードを実行すると、名前付き引数 pathname に指定したファイルに関連付けられているアプリケーションが起動され、指定したファイル内のオブジェクトがアクティブになります。

名前付き引数 pathname に長さ 0 の文字列 ("") を指定すると、GetObject 関数は、オブジェクトの指定した種類の新しいインスタンスを返します。名前付き引数 pathname を省略すると、指定した種類の現在アクティブであるオブジェクトを返します。指定した種類のオブジェクトが存在しない場合はエラーが発生します。

上の例では、ファイル全体をアクティブにするようになっています。ただし、アプリケーションによってはファイルの一部しかアクティブにできないものもあります。ファイルの一部をアクティブにするには、ファイル名の後に感嘆符 (!) を付け、アクティブにしたい部分を表す文字列をその後に指定します。この文字列の指定方法については、そのオブジェクトを提供するアプリケーションのマニュアルを参照してください。

たとえば、描画アプリケーションでは、1 つのファイルに格納されている描画が、複数の階層に分かれていることがあります。このようなときは、次のように記述すると、SCHEMA.CAD という描画ファイル内の 1 つの階層をアクティブにできます。

Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")

オブジェクトのクラス (class) を指定しない場合は、指定したファイル名を基に OLE 関連のダイナミック リンク ライブラリ (DLL) によって、起動するアプリケーションとアクティブにするオブジェクトが特定されます。ただし、ファイルによっては複数のオブジェクトのクラスがサポートされている場合があります。たとえば、ある描画アプリケーションでは、アプリケーション オブジェクト、描画オブジェクト、ツールバー オブジェクトの 3 種類のオブジェクトがサポートされており、どのオブジェクトも同じファイル内にあります。このようなときは、名前付き引数 class を使って、ファイル内のどのオブジェクトをアクティブにするかを指定してください。次に例を示します。

Dim MyObject As Object

Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")

この例で FIGMENT は描画アプリケーションの名前で、DRAWING は FIGMENT が提供しているオブジェクトの種類の 1 つです。

オブジェクトがアクティブになったら、オブジェクト変数を使ってそのオブジェクトを参照できるようになります。上の例の場合、オブジェクト変数 MyObject を使って、アクティブになったオブジェクトのプロパティやメソッドにアクセスすることができます。次に例を示します。

MyObject.Line 9, 90

MyObject.InsertText 9, 100, "Hello, world."

MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"

注   オブジェクトのインスタンスがあるとき、または、既にロードされているファイルを使ってオブジェクトを作成したいときは、GetObject 関数を使います。オブジェクトのインスタンスがなく、ロード済みのファイルでオブジェクトを作成しない場合は、CreateObject 関数を使います。

複数のインスタンスを作成できないオブジェクト (Microsoft Word Version 6.0 内の Word.Basic オブジェクトなど) の場合は、何度 CreateObject 関数を実行しても、そのオブジェクトのインスタンスは 1 つしか作成されません。また、複数のインスタンスを作成できないオブジェクトの場合、長さ 0 の文字列 ("") を指定して GetObject 関数を呼び出すと常に同じインスタンスを返し、名前付き引数 pathname を省略するとエラーが発生します。GetObject 関数を使用して、Visual Basic で作成したクラスを参照することはできません。


関連項目

CreateObject 関数

OLE オートメーション

Set ステートメント

アプリケーション間の連係


Visual Basic for Applications の定数

関連項目

Visual Basic for Applications では、プログラミングを容易にするための定数が定義されています。次の定数は、実際の値の代わりにコード内のどの部分でも使うことができます。

コンパイラ定数

Date の定数

Dir、GetAttr、および SetAttr の定数

IMEStatus の定数

MsgBox の定数

Shell の定数

StrConv の定数

VarType の定数


関連項目

データ アクセス定数

DateDiff 関数

DatePart 関数

Dir 関数

Format 関数

GetAttr 関数

IMEStatus 関数

MsgBox 関数

SetAttr ステートメント

Shell 関数

StrConv 関数

VarType 関数

Visual Basic 定数

Weekday 関数


コンパイラ定数

関連項目

Visual Basic for applications では #If...Then...#Else ディレクティブ専用の定数が定義されています。これらの定数は、#Const ディレクティブで定義される定数と機能的には同じですが、適用範囲が広く、プロジェクト内のどこでも使用できます。

16 ビットの開発環境では、コンパイラ定数は次のように定義されています。

定数	値	内容

Win16	True	開発環境が 16 ビットであることを示します。

Win32	True	開発環境が 32 ビットであることを示します。

注   これらの定数は Visual Basic によって提供されています。どのレベルでも、これらの定数と同じ名前のユーザー定義の定数を定義できません。


関連項目

#Const ディレクティブ

#If...Then...#Elseディレクティブ

Visual Basic for Applications の定数


VarType の定数 (バリアント型 (Variant) 変数の内部処理形式)

関連項目

定数	値	内容

vbEmpty	0	Empty 値 (未初期化)

vbNull	1	Null 値 (無効な値)

vbInteger	2	整数型 (Integer)

vbLong	3	長整数型 (Long)

vbSingle	4	単精度浮動小数点数型 (Single)

vbDouble	5	倍精度浮動小数点数型 (Double)

vbCurrency	6	通貨型 (Currency)

vbDate	7	日付型 (Date)

vbString	8	文字列型 (String)

vbObject	9	OLE オートメーション オブジェクト

vbError	10	エラー値 (Error)

vbBoolean	11	ブール型 (Boolean)

vbVariant	12	バリアント型 (Variant) (バリアント型配列にのみ使用)

vbDataObject	13	非 OLE オートメーション オブジェクト

vbByte	17	バイト型 (Byte)

vbArray	8192	配列


関連項目

VarType 関数

Visual Basic for Applications の定数


MsgBox の定数

関連項目

MsgBox 関数の引数

定数	値	内容

vbOKOnly	0	(既定値) [OK] ボタンのみを表示します。

vbOKCancel	1	[OK] ボタンと [キャンセル] ボタンを表示します。

vbAbortRetryIgnore	2	[中止]、[再試行]、[無視] の 3 つのボタンを表示します。

vbYesNoCancel	3	[はい]、[いいえ]、[キャンセル] の 3 つのボタンを表示します。

vbYesNo	4	[はい] ボタンと [いいえ] ボタンを表示します。

vbRetryCancel	5	[再試行] ボタンと [キャンセル] ボタンを表示します。

vbCritical	16	警告メッセージ アイコンを表示します。

vbQuestion	32	問い合わせメッセージ アイコンを表示します。

vbExclamation	48	注意メッセージ アイコンを表示します。

vbInformation	64	情報メッセージ アイコンを表示します。

vbDefaultButton1	0	第 1 ボタンを標準ボタンに設定します。

vbDefaultButton2	256	第 2 ボタンを標準ボタンに設定します。

vbDefaultButton3	512	第 3 ボタンを標準ボタンに設定します。

vbApplicationModal	0	アプリケーション モーダルに設定します。

vbSystemModal	4096	システム モーダルに設定します。

MsgBox 関数の戻り値

定数	値	内容 (選択されたボタン)

vbOK	1	[OK]

vbCancel	2	[キャンセル]

vbAbort	3	[中止]

vbRetry	4	[再試行]

vbIgnore	5	[無視]

vbYes	6	[はい]

vbNo	7	[いいえ]


関連項目

MsgBox 関数

Visual BAsic for Applications の定数


Date の定数

関連項目

引数 firstdayofweek の値

定数	値	内容

vbUseSystem	0	NLS API の設定値

vbSunday	1	日曜日

vbMonday	2	月曜日

vbTuesday	3	火曜日

vbWednesday	4	水曜日

vbThursday	5	木曜日

vbFriday	6	金曜日

vbSaturday	7	土曜日

引数 firstweekofyear の値

定数	値	内容

vbUseSystem	0	アプリケーションで設定されている場合は、アプリケーションの設定、設定されていない場合は、NLS API の設定値。

vbFirstJan1	1	1 月 1 日を含む週から開始する。(既定値)

vbFirstFourDays	2	新しい年の少なくとも 4 日間を含む週から開始する。

vbFirstFullWeek	3	新しい年の 1 週間を含む最初の週から開始する。

戻り値

定数	値	内容

vbSunday	1	日曜日

vbMonday	2	月曜日

vbTuesday	3	火曜日

vbWednesday	4	水曜日

vbThursday	5	木曜日

vbFriday	6	金曜日

vbSaturday	7	土曜日


関連項目

DateDiff 関数

DatePart 関数

Format 関数

Weekday 関数

Visual Basic for Applications の定数


Dir、GetAttr、および SetAttr の定数

関連項目

定数	値	内容

vbNormal	0	通常ファイル (Dir と SetAttr の既定値)

vbReadOnly	1	読み取り専用ファイル

vbHidden	2	隠しファイル

vbSystem	4	システム ファイル

vbVolume	8	ボリューム ラベル

vbDirectory	16	ディレクトリ

vbArchive	32	アーカイブ属性 (最後にバックアップされた後で、変更されたファイル)


関連項目

Dir 関数

GetAttr 関数

SetAttr ステートメント

Visual Basic for Applications の定数


IMEStatus の定数

関連項目

国別情報が日本の場合

定数	値	内容

vbIMENoOp	0	IME はインストールされていません。

vbIMEOn	1	IME はオンの状態です。

vbIMEOff	2	IME はオフの状態です。

vbIMEDisable	3	IME は利用禁止状態です。

vbIMEHiragana	4	IME は全角ひらがな入力モードです。

vbIMEKatakanaDbl	5	IME は全角カタカナ入力モードです。

vbIMEKatakanaSng	6	IME は半角カタカナ入力モードです。

vbIMEAlphaDbl	7	IME は全角英数入力モードです。

vbIMEAlphaSng	8	IME は半角英数入力モードです。

国別情報が中国 (繁體字版および簡体字版) の場合

定数	値	内容

vbIMENoOp	0	IME はインストールされていません。

vbIMEOn	1	IME はオンの状態です。

vbIMEOff	2	IME はオフの状態です。

国別情報が韓国の場合は、戻り値の先頭の 5 ビットで設定が決まります。各ビットは次のように設定されています。

ビット	値	内容	値	内容
0	0	IME はインストールされていません。	1	IME がインストールされています。
1	0	IME は利用禁止状態です。	1	IME は利用可能状態です。
2	0	IME 英語モード。	1	ハングル モード。
3	0	Banja モード (SB)。	1	Junja モード (DB)。
4	0	ノーマル モード。	1	Hanja 変換モード。


関連項目

IMEStatus 関数

Visual Basic for Applications の定数

国別情報


Shell の定数

関連項目

定数	値	内容

vbNormalFocus	1	ウィンドウはフォーカスを持ち、元の大きさと位置が格納されています。

vbMinimizedFocus	2	ウィンドウはフォーカスを持った状態でアイコン表示されています。

vbMaximizedFocus	3	ウィンドウはフォーカスを持った状態で最大化表示されています。

vbNormalNoFocus	4	ウィンドウの最新の大きさと位置を格納します。現在アクティブなウィンドウはアクティブなままです。

vbMinimizedNoFocus	6	ウィンドウはアイコン表示されています。現在アクティブなウィンドウはアクティブなままです。

vbHide	0	ウィンドウは隠されています。フォーカスは隠されたウィンドウに渡されます。


関連項目

Shell 関数

Visual Basic for Applications の定数


StrConv の定数

関連項目

定数	値	内容

vbUpperCase	1	文字列を大文字に変換します。

vbLowerCase	2	文字列を小文字に変換します。

vbProperCase	3	文字列の各単語の先頭の文字を大文字に変換します。

vbWide*	4*	文字列内の半角文字 (1 バイト) を全角文字 (2 バイト) に変換します。

vbNarrow*	8*	文字列内の全角文字 (2 バイト) を半角文字 (1 バイト) に変換します。

vbKatakana**	16**	文字列内のひらがなをカタカナに変換します。

vbHiragana**	32**	文字列内のカタカナをひらがなに変換します。

vbUnicode***	64***	システムの既定のコード ページを使って、文字列を Unicode に変換します。

vbFromUnicode***	128***	文字列を Unicode からシステムの既定のコード ページに変換します。

*	国別情報の設定が中国、韓国、日本の場合に適用されます。

**	国別情報の設定が日本の場合のみ有効です。

***	このビットを 16 ビットの Windows で指定すると、実行時エラーが発生します。


関連項目

StrConv 関数

Visual Basic for Applications の定数


IMEStatus 関数

IME の現在の状態を返します。

構文

IMEStatus

戻り値

国別情報が日本の場合

定数	値	内容

vbIMENoOP	0	IME はインストールされていません。

vbIMEOn	1	IME はオンの状態です。

vbIMEOff	2	IME はオフの状態です。

vbIMEDisable	3	IME は利用禁止状態です。

vbIMEHiragana	4	IME は全角ひらがな入力モードです。

vbIMEKatakanaDbl	5	IME は全角カタカナ入力モードです。

vbIMEKatakanaSng	6	IME は半角カタカナ入力モードです。

vbIMEAlphaDbl	7	IME は全角英数入力モードです。

vbIMEAlphaSng	8	IME は半角英数入力モードです。

国別情報が中国 (繁體字版および簡体字版) の場合

定数	値	内容

vbIMENoOP	0	IME はインストールされていません。

vbIMEOn	1	IME はオンの状態です。

vbIMEOff	2	IME はオフの状態です。

国別情報が韓国の場合は、戻り値の先頭の 5 ビットで設定が決まります。各ビットは次のように設定されています。

ビット	値	内容	値	内容
0	0	IME はインストールされていません。	1	IME がインストールされています。
1	0	IME は利用禁止状態です。	1	IME は利用可能状態です。
2	0	IME 英語モード。	1	ハングル モード。
3	0	Banja モード (SB)。	1	Junja モード (DB)。
4	0	ノーマル モード。	1	Hanja 変換モード。


StrConv 関数

関連項目

文字列を変換します。この関数は、2 バイト文字を含む文字列の変換にも使えます。

構文

StrConv(string, conversion)

StrConv 関数の名前付き引数は次のとおりです。

指定項目	内容

string	変換する文字列式を指定します。

conversion	実行する変換の種類の値の合計を指定します。

設定値

名前付き引数 conversion には、次のいずれかの定数または値を指定します。

定数	値	内容

vbUpperCase	1	文字列を大文字に変換します。

vbLowerCase	2	文字列を小文字に変換します。

vbProperCase	3	文字列の各単語の先頭の文字を大文字に変換します。

vbWide*	4*	文字列内の半角文字 (1 バイト) を全角文字 (2 バイト) に変換します。

vbNarrow*	8*	文字列内の全角文字 (2 バイト) を半角文字 (1 バイト) に変換します。

vbKatakana**	16**	文字列内のひらがなをカタカナに変換します。

vbHiragana**	32**	文字列内のカタカナをひらがなに変換します。

vbUnicode***	64***	システムの既定のコード ページを使って文字列を Unicode に変換します。

vbFromUnicode***	128***	文字列を Unicode からシステムの既定のコード ページに変換します。

*	国別情報の設定が中国、韓国、日本の場合に適用されます。

**	国別情報の設定が日本の場合のみ有効です。

***	このビットを 16 ビットの Windows で指定すると、実行時エラーが発生します。

注   これらの定数は Visual Basic で定義されているものです。したがって、コードの中の任意の場所で、実際の値の代わりに使用できます。通常、定数は互いに矛盾しない限り、組み合わせて指定できます。たとえば、定数 vbUpperCase と vbWide を組み合わせることはできますが、定数 vbUnicode と vbFromUnicode は指定内容が矛盾するため、組み合わせることはできません。また、適切でない箇所で定数 vbWide、vbNarrow、vbKatakana および vbHiragana を指定した場合、実行時エラーが発生します。

大文字/小文字を正しく区別する有効な単語セパレータは、Null (Chr$(0))、水平タブ (Chr$(9))、ライン フィード (Chr$(10))、垂直タブ (Chr$(11))、フォーム フィード (Chr$(12))、キャリッジ リターン (Chr$(13))、スペース (Chr$(32)) です。


関連項目

Chr 関数

文字列型 (String)


表記規則

Visual Basic のヘルプは、次の表記規則に従って記述されています。

表記	内容
Sub、Font、BackColor、True	Visual Basic 特有のキーワードは太字で、先頭を大文字で表記します。
object、varname、arglist	構文内の斜体は、ファイル名など、実際に入力するときは該当する文字に置き換える必要のあるものを示します。
pathname、filenumber	構文内の太字斜体は、通常の構文に加えて名前付き引数の構文が使用できる引数を表します。
[expressionlist]	構文内の角かっこ ([ ]) は、囲まれた項目が省略できることを示します。
{While | Until}	構文内の中かっこ ({ }) と縦棒の組み合わせは、複数の項目から選択する必要があることを示します。次のように全体が角かっこ ([ ]) で囲まれていなければ、いずれか 1 つの項目を選ばなければなりません。 [{This | OrThat}]
VBA.INI	ファイル名は、すべて大文字で示してあります。
Shift、F5、A	キー名は、太字の Helvetica フォントで、先頭を大文字で表記します。
Alt + F1、Ctrl + R	プラス記号 (+) は、キーの組み合わせを表します。たとえば Alt + F1 は、Alt キーを押しながら F1 キーを押すことを表します。
' コメント文字列。	コメントは、シングル クォーテーション ( ' ) で始まりを示します。
MyVar = "This is an " _ & "example" _ & " of how to continue code."	スペースとアンダスコア ( _) の組み合わせは、コードが次の行に続くことを表します。実際にプログラムとして実行されるときは 1 行と見なされます。
バリアント型 (Variant)、 整数型 (Integer)	データ型の名前の後ろにかっこ () で囲んで表記しているキーワードは、そのデータ型を宣言するためのキーワードを示します。
ランダム アクセス モード (Random)、 シーケンシャル出力モード (Output)	ファイル モードの後ろにかっこ () で囲んで表記しているキーワードは、そのファイル モードでファイルを開くときに Open ステートメントで指定するキーワードを示します。


コレクション オブジェクトのメソッド (オブジェクト ブラウザ)

関連項目

オブジェクト ブラウザの [クラス / モジュール一覧] ボックスで [Collection] を選択すると、コレクションの操作を実行するためのプロシージャの一覧が表示されます。

特定のメソッドのヘルプを参照するには

1.	[メソッド / プロパティ一覧] ボックスから、プロシージャを選択します。

2.	< ? > ボタンを選択します。


関連項目

Collection オブジェクト


Constants - 定数 (オブジェクト ブラウザ)

関連項目

オブジェクト ブラウザの [クラス / モジュール一覧] ボックスで Visual Basic for Applications (VBA) オブジェクト ライブラリを選択し、[クラス / モジュール一覧] ボックスで [Constants] を選択すると、Dir 関数、GetAttr 関数、IMEStatus 関数、MsgBox 関数、StrConv 関数、VarType 関数、および SetAttr ステートメントで使う定義済みの定数の一覧が表示されます。


関連項目

Dir 関数

GetAttr 関数

IMEStatus 関数

MsgBox 関数

SetAttr ステートメント

StrConv 関数

VarType 関数

Visual Basic for Applications の定数


Conversion - 変換 (オブジェクト ブラウザ)

関連項目

オブジェクト ブラウザの [クラス / モジュール一覧] ボックスで [Conversion] を選択すると、各種変換用の関数の一覧が表示されます。

特定の関数のヘルプを参照するには

1.	[メソッド / プロパティ一覧] ボックスから、調べたい関数名を選択します。

2.	< ? > ボタンを選択します。

注   バリアント型 (Variant) の変数を使うときは、明示的なデータ型変換は不要です。


関連項目

変換に関するキーワード一覧

バリアント型 (Variant)


DateTime - 日付および時刻の操作 (オブジェクト ブラウザ)

関連項目

オブジェクト ブラウザの [クラス / モジュール一覧] ボックスで [DateTime] を選択すると、日付および時刻の操作に使う関数やステートメントの一覧が表示されます。

特定の関数やステートメントのヘルプを参照するには

1.	[メソッド / プロパティ一覧] ボックスから、調べたい関数名またはステートメント名を選択します。

2.	< ? >ボタンを選択します。


関連項目

日付と時刻に関するキーワード一覧


FileSystem - ファイル システムの操作 (オブジェクト ブラウザ)

関連項目

オブジェクト ブラウザの [クラス / モジュール一覧] ボックスで [FileSystem] を選択すると、ファイル、ディレクトリまたはシステムの操作に使う関数やステートメントの一覧が表示されます。

特定の関数やステートメントのヘルプを参照するには

1.	[メソッド / プロパティ一覧] ボックスから、調べたい関数名またはステートメント名を選択します。

2.	< ? >ボタンを選択します。


関連項目

ディレクトリとファイルに関するキーワード一覧


Financial - 財務 (オブジェクト ブラウザ)

オブジェクト ブラウザの [クラス / モジュール一覧] ボックスで [Financial] を選択すると、財務に関する操作に使う関数やステートメントの一覧が表示されます。

特定の関数やステートメントのヘルプを参照するには

1.	[メソッド / プロパティ一覧] ボックスから、調べたい関数名またはステートメント名を選択します。

2.	< ? >ボタンを選択します。


関連項目

財務に関するキーワード一覧


Information - 情報取得 (オブジェクト ブラウザ)

オブジェクト ブラウザの [クラス / モジュール一覧] ボックスで [Information] を選択すると、各種情報の取得、テスト、検査などに使う関数やステートメントの一覧が表示されます。

特定の関数やステートメントのヘルプを参照するには

1.	[メソッド / プロパティ一覧] ボックスから、調べたい関数名またはステートメント名を選択します。

2.	< ? >ボタンを選択します。


Interaction - 制御 (オブジェクト ブラウザ)

オブジェクト ブラウザの [クラス / モジュール一覧] ボックスで [Interaction] を選択すると、オブジェクト、アプリケーション、システムの制御に使う関数やステートメントの一覧が表示されます。

特定の関数やステートメントのヘルプを参照するには

1.	[メソッド / プロパティ一覧] ボックスから、調べたい関数名またはステートメント名を選択します。

2.	< ? >ボタンを選択します。


Math - 数値演算 (オブジェクト ブラウザ)

関連項目

オブジェクト ブラウザの [クラス / モジュール一覧] ボックスで [Math] を選択すると、数値演算に使う関数やステートメントの一覧を表示します。

特定の関数やステートメントのヘルプを参照するには

1.	[メソッド / プロパティ一覧] ボックスから、調べたい関数名またはステートメント名を選択します。

2.	< ? >ボタンを選択します。


関連項目

数値演算に関するキーワード一覧


Strings - 文字列操作 (オブジェクト ブラウザ)

関連項目

オブジェクト ブラウザの [クラス / モジュール一覧] ボックスで [Strings] を選択すると、文字列の操作に使う関数やステートメントの一覧が表示されます。

特定の関数やステートメントのヘルプを参照するには

1.	[メソッド / プロパティ一覧] ボックスから、調べたい関数名またはステートメント名を選択します。

2.	< ? >ボタンを選択します。


関連項目

文字列操作に関するキーワード一覧


AppActivate ステートメント

関連項目	例

アプリケーション ウィンドウをアクティブにします。

構文

AppActivate title[, wait]

AppActivate ステートメントの構文は、次の名前付き引数から構成されます。

指定項目	内容

title	アクティブにしたいアプリケーション ウィンドウのタイトル バー文字列を表す文字列式を指定します。

また、名前付き引数 title に、Shell 関数によって返されるタスク ID を指定して、アプリケーションをアクティブにすることもできます。

wait	名前付き引数 title で指定したアプリケーションをアクティブにする前に、呼び出し側のアプリケーションにフォーカスを持たせるかどうかを、次に示すブール値を使って設定します。

(既定値) False	呼び出し側のアプリケーションがフォーカスを持っていなくても、指定したアプリケーションをアクティブにします。

True	呼び出し側のアプリケーションがフォーカスを持つまで待ってから、指定したアプリケーションをアクティブにします。

解説

AppActivate ステートメントは、指定したアプリケーションやウィンドウにフォーカスを移します。このとき、フォーカスが移っても指定したウィンドウの状態は変化しません。たとえば、最小化されているウィンドウにフォーカスを移しても、そのウィンドウは最小化されたままです。ユーザーがフォーカスを変更するか、ウィンドウを閉じると、他のウィンドウへフォーカスが移ります。アプリケーションの実行やウィンドウ スタイルの設定をするには、Shell 関数を使用します。

アプリケーション ウィンドウのタイトル バーの文字列と名前付き引数 title が完全に一致しているかを比較することによって、どのアプリケーションをアクティブにするかが判別されます。完全に一致するものが見つからないときは、アプリケーション ウィンドウのタイトル バーの文字列が名前付き引数 title で始まるアプリケーションをアクティブにします。名前付き引数 title と一致するアプリケーション ウィンドウが複数ある場合、その中の 1 つが任意に選択されてアクティブになります。


関連項目

Shell 関数

SendKeys ステートメント


Beep ステートメント

例

コンピュータのスピーカを鳴らします。

構文

Beep

解説

ビープ音の鳴る時間と周波数はハードウェアとシステム ソフトウェアに依存するため、コンピュータの機種によって異なります。


InputBox 関数

関連項目	例

ダイアログ ボックスにメッセージとテキスト ボックスを表示し、テキストが入力されるかボタンが選択されると、テキスト ボックスの内容を返します。

構文

InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])

InputBox 関数の構文は、次の名前付き引数から構成されます。

指定項目	内容

prompt	ダイアログ ボックス内にメッセージとして表示する文字列を示す文字列式を指定します。名前付き引数 prompt に指定できる最大文字数は、1 バイト文字で約 1,024 文字です。ただし、使う文字の文字幅に依存します。名前付き引数 prompt に複数行を指定するには、改行する場所にキャリッジ リターン (Chr(13))、ライン フィード (Chr(10))、またはキャリッジ リターンとライン フィードの組み合わせ (Chr(13) & Chr(10)) を挿入してください。

title	ダイアログ ボックスのタイトル バーに表示する文字列式を指定します。名前付き引数 title を省略すると、タイトル バーにはアプリケーション名が表示されます。

default	ユーザーが何も入力しない場合に、テキスト ボックスに既定値として表示する文字列式を指定します。名前付き引数 default を省略すると、テキスト ボックスには何も表示されません。

xpos	画面の左端からダイアログ ボックスの左端までの水平方向の距離を twip 単位で示す数式を指定します。名前付き引数 xpos を省略すると、ダイアログ ボックスは水平方向に対して画面の中央の位置に配置されます。

ypos	画面の上端からダイアログ ボックスの上端までの垂直方向の距離を twip 単位で示す数式を指定します。名前付き引数 ypos を省略すると、ダイアログ ボックスは垂直方向に対して画面の上端から約 1/3 の位置に配置されます。

helpfile	ダイアログ ボックスに状況依存のヘルプを設定するために、使用するヘルプ ファイルの名前を示す文字列式を指定します。この引数は、表示するダイアログ ボックスの説明を、ヘルプを使って表示するときに指定します。名前付き引数 helpfile を指定した場合は、引数 context も指定する必要があります。

context	ヘルプ トピックに指定したコンテキスト番号を表す数式を指定します。名前付き引数 context を指定した場合は、引数 helpfile も指定する必要があります。

解説

名前付き引数 helpfile および context を指定すると、ダイアログ ボックスに自動的に [ヘルプ] ボタンが追加されます。

[OK] ボタンが選択されるか Enter キーが押されると、InputBox 関数はテキスト ボックスの内容を返します。[キャンセル] ボタンが選択されると、InputBox 関数は長さ 0 の文字列 ("") を返します。

注   名前付き引数 prompt 以外の引数も指定する場合には、式の中で InputBox 関数を使う必要があります。この場合、それらの引数の中に省略するものがあるときは、それに対応する位置にカンマ区切り記号を記述しなければなりません。


関連項目

MsgBox 関数

文字列を返す関数


MsgBox 関数

関連項目	例

ダイアログ ボックスにメッセージを表示し、ボタンが選択されるのを待って、どのボタンが選択されたかを示す値を返します。

構文

MsgBox(prompt[, buttons][, title][, helpfile, context])

MsgBox 関数の構文は、次の名前付き引数から構成されます。

指定項目	内容

prompt	ダイアログ ボックス内にメッセージとして表示する文字列を示す文字列式を指定します。名前付き引数 prompt に指定できる最大文字数は、1 バイト文字で約 1,024 文字です。ただし、使う文字の文字幅に依存します。名前付き引数 prompt に複数行を指定するには、改行する場所にキャリッジ リターン (Chr(13))、ライン フィード (Chr(10))、またはキャリッジ リターンとライン フィードの組み合わせ (Chr(13) & Chr(10)) を挿入してください。

buttons	表示されるボタンの種類と個数、使用するアイコンのスタイル、標準ボタン、メッセージ ボックスがモーダルかどうかなど、それらを示す値の合計値で示す数式を指定します。省略すると名前付き引数 buttons の既定値である 0 になります。

title	ダイアログ ボックスのタイトル バーに表示する文字列を示す文字列式を指定します。名前付き引数 title を省略すると、タイトル バーにはアプリケーション名が表示されます。

helpfile	ダイアログ ボックスに状況依存のヘルプを設定するために、使用するヘルプ ファイルの名前を示す文字列式を指定します。この引数は、表示するダイアログ ボックスの説明を、ヘルプを使って表示するときに指定します。名前付き引数 helpfile を指定した場合は、引数 context も指定する必要があります。

context	ヘルプ トピックに指定したコンテキスト番号を表す数式を指定します。名前付き引数 context を指定した場合は、引数 helpfile も指定する必要があります。

設定値

名前付き引数 buttons には、次の値のうち、該当する値の合計値を指定します。

定数	値	内容

vbOKOnly	0	[OK] ボタンのみを表示します。

vbOKCancel	1	[OK] ボタンと [キャンセル] ボタンを表示します。

vbAbortRetryIgnore	2	[中止]、[再試行]、[無視] の 3 つのボタンを表示します。

vbYesNoCancel	3	[はい]、[いいえ]、[キャンセル] の 3 つのボタンを表示します。

vbYesNo	4	[はい] ボタンと [いいえ] ボタンを表示します。

vbRetryCancel	5	[再試行] ボタンと [キャンセル] ボタンを表示します。

vbCritical	16	警告メッセージ アイコンを表示します。

vbQuestion	32	問い合わせメッセージ アイコンを表示します。

vbExclamation	48	注意メッセージ アイコンを表示します。

vbInformation	64	情報メッセージ アイコンを表示します。

vbDefaultButton1	0	第 1 ボタンを標準ボタンにします。

vbDefaultButton2	256	第 2 ボタンを標準ボタンにします。

vbDefaultButton3	512	第 3 ボタンを標準ボタンにします。

vbApplicationModal	0	アプリケーション モーダルに設定します。メッセージ ボックスに応答するまで、現在選択中のアプリケーションの実行を継続できません。

vbSystemModal	4096	システム モーダルに設定します。メッセージ ボックスに応答するまで、すべてのアプリケーションが中断されます。

最初のグループに属する値 (0 ～ 5) は、ダイアログ ボックスに表示されるボタンの種類と個数を指定します。次のグループに属する値 (16、32、48、64) は、アイコンの種類を指定します。第 3 のグループに属する値 (0、256、512) は、どのボタンが標準ボタンになるかを指定します。最後のグループに属する値 (0、4096) は、メッセージ ボックスがモーダルかどうかを指定します。名前付き引数 buttons の値を設定するには、各グループから値を 1 つずつ選択して加算した合計値を指定します。

注   ここに示した定数は Visual Basic によって設定されています。したがって、これらの定数は、コード内の任意の場所で実際の値を記述する代わりに使用できます。

戻り値

定数	値	選択されたボタン

vbOK	1	[OK]

vbCancel	2	[キャンセル]

vbAbort	3	[中止]

vbRetry	4	[再試行]

vbIgnore	5	[無視]

vbYes	6	[はい]

vbNo	7	[いいえ]

解説

引数 helpfile および context を指定すると、F1 キーを押すことにより、コンテキスト番号に対応したヘルプ トピックを参照できます。

[キャンセル] ボタンが表示されているダイアログ ボックスでは、Esc キーが押されると、[キャンセル] ボタンが選択されたときと同じ結果になります。ダイアログ ボックスに [ヘルプ] ボタンが表示されているときは、そのダイアログボックスには状況依存のヘルプが設定されています。ただし、[ヘルプ] ボタン以外のボタンが選択されるまでは、値を返しません。

注   名前付き引数 prompt 以外の引数も指定する場合には、式の中で MsgBox 関数を使う必要があります。この場合、それらの引数の中に省略するものがあるときは、それに対応するカンマ区切り記号を記述する必要があります。


関連項目

InputBox 関数

文字列を返す関数


RGB 関数

関連項目	例

色の RGB 値を表す整数の値を返します。

構文

RGB (red, green, blue)

RGB 関数の構文は、次の名前付き引数から構成されます。

指定項目	内容

red	RGB の R (赤) の割合を 0 ～ 255 の範囲の整数で指定します。

green	RGB の G (緑) の割合を 0 ～ 255 の範囲の整数で指定します。

blue	RGB の B (青) の割合を 0 ～ 255 の範囲の整数で指定します。

解説

色の設定を行うアプリケーションのメソッドやプロパティでは、色の RGB 値を表す整数が使われます。色の RGB 値は、赤、緑、青の相対的な明度を指定します。これらの明度の組み合わせによって、特定の色が表示されます。

RGB 関数のそれぞれの引数の値が 255 を超えたときは、255 と見なされます。

いくつかの代表的な色の赤、緑、青の値を次に示します。

色	赤	緑	青

黒	0	0	0

青	0	0	255

緑	0	255	0

シアン	0	255	255

赤	255	0	0

マゼンタ	255	0	255

黄色	255	255	0

白	255	255	255


関連項目

QBColor 関数


SendKeys ステートメント

関連項目	例

キーストロークまたはキーストロークの組み合わせを、キーボードから入力したときと同様に、アクティブ ウィンドウに渡します。このような操作を“キー コードの転送”と呼びます。

構文

SendKeys string[, wait]

SendKeys ステートメントの構文は、次の名前付き引数から構成されます。

指定項目	内容

string	転送するキー コードを表す文字列式を指定します。

wait	名前付き引数 string の転送によって行われる処理が終了するまで、実行を一時中断するかどうかを次に示すブール値で指定します。

(既定値) False	処理の終了を待たずに、次の行に制御が移ります。

True	処理が終了するまで実行を中断します。

解説

キーボードの各キーは 1 つ以上の文字で表現されます。キーボード上の文字を渡すには、キーの指定にその文字を使います。たとえば、キーボード上の文字 A を表すには、名前付き引数 string に "A" を指定します。複数の文字を表すには、文字を連続して設定します。たとえば、文字 A、B、C を表すには、名前付き引数 string に "ABC" と指定します。

プラス記号 (+)、キャレット (^)、パーセント記号 (%)、チルダ (~)、かっこ (( )) はそれぞれ SendKeys ステートメントで特別な意味を持っています。これらの文字を渡すには、文字を中かっこ ({ }) で囲んで指定します。たとえば、プラス記号は、{+} のように囲んで指定します。角かっこ ([ ]) は SendKeys ステートメントでは特別な意味を持ちませんが、Microsoft Windows の他のアプリケーションで特別な意味を持つ場合があるので、中かっこで囲みます。これは、ダイナミック データ エクスチェンジ (DDE) を行うときに角かっこが重要になることがあるためです。文字として中かっこを渡すには、{{} または {}} を使います。

キーを押したときに表示されない文字 (Enter キーや Tab キーなど) か、文字ではなく動作を表現するキーを指定するには、次に示すコードを使います。

キー	コード

BackSpace	{BACKSPACE}、{BS}、または {BKSP}

Ctrl + Break	{BREAK}

CapsLock	{CAPSLOCK}

Del	{DELETE} または {DEL}

↓	{DOWN}

End	{END}

Enter	{ENTER} または ~

Esc	{ESC}

Help	{HELP}

Home	{HOME}

Ins	{INSERT}

←	{LEFT}

NumLock	{NUMLOCK}

PageDown	{PGDN}

PageUp	{PGUP}

PrintScreen	{PRTSC}

→	{RIGHT}

ScrollLock	{SCROLLLOCK}

Tab	{TAB}

↑	{UP}

F1	{F1}

F2	{F2}

F3	{F3}

F4	{F4}

F5	{F5}

F6	{F6}

F7	{F7}

F8	{F8}

F9	{F9}

F10	{F10}

F11	{F11}

F12	{F12}

F13	{F13}

F14	{F14}

F15	{F15}

F16	{F16}

Shift キー、Ctrl キー、Alt キーと他のキーとの組み合わせを指定するには、通常のキー コードの前に次のコードを単独、または組み合わせて記述します。

キー	コード

Shift	+

Ctrl	^

Alt	%

Shift キー、Ctrl キー、Alt キーを押しながら他のキーを押す操作を指定するには、キーのコードをかっこで囲みます。たとえば、Shift キーを押しながら E と C を押す操作を指定するには、"+(EC)" を使います。Shift キーを押しながら E を押し、その後 Shift キーを離して C を押す操作を指定するには、"+EC" を使います。

同じキー ストロークの繰り返しを指定するには {key number} という形式を使います。key と number の間には必ず半角のスペースが必要です。たとえば、{LEFT 42} は→キーを 42 回押すことを意味します。また {h 10} は h を 10 回押すことを意味します。

注   SendKeys ステートメントは、Microsoft Windows 上で動くように設計されたアプリケーション以外にはキー ストロークを渡せません。また Sendkeys ステートメントは、アプリケーションに Copy キーを渡せません。


関連項目

AppActivate ステートメント

DoEvents 関数


演算子の概要

関連項目

算術演算子

算術演算を行うときに使用する演算子です。

比較演算子

比較を行うときに使用する演算子です。

文字列連結演算子

文字列の連結を行うときに使用する演算子です。

論理演算子

論理演算を行うときに使用する演算子です。


関連項目

演算子の優先順位


演算子の優先順位

関連項目

1 つの式の中で複数の演算が行われるとき、式の各部分は一定の順序に従って評価されます。この順序を演算子の優先順位と呼びます。かっこを使うと、演算子の優先順位と関係なく、式の中の特定の演算を他の演算より先に評価させることができます。かっこの内側の演算は、外側の演算よりも先に評価されます。ただし、かっこの内側では通常の優先順位が適用されます。

異なる種類の演算子が 1 つの式の中で使われている場合、算術演算子、比較演算子、論理演算子の順序で評価されます。比較演算子の各演算子の優先順位はすべて同じです。したがって、式の中で複数の比較演算子が指定されている場合、現れる順序で左から右に評価されます。算術演算子および論理演算子は、次に示す順序で評価されます。

算術演算子	比較演算子	論理演算子

指数演算 (^)	等しい (=)	Not

マイナス符号 (-)	等しくない (<>)	And

乗算と除算 (*、/)	より小さい (<)	Or

整数除算 (\)	より大きい (>)	Xor

剰余演算 (Mod)	以下 (<=)	Eqv

加算と減算 (+、-)	以上 (>=)	Imp

文字列連結 (&)	Like

Is

1 つの式の中で乗算と除算の両方が指定されている場合、これらの演算は左から右の順に評価されます。加算と減算の両方が指定されている場合も、同様に左から右の順に評価されます。

文字列連結演算子 (&) は、算術演算子ではありませんが、優先順位は、すべての算術演算子よりも低く、すべての比較演算子よりも高くなります。同様に、Like 演算子は実際にはパターン マッチングで使用する演算子ですが、優先順位は比較演算子と同じです。Is 演算子は、オブジェクト変数の比較を行います。この演算子は、オブジェクト自体やオブジェクトの値を比較するものではありません。2 つのオブジェクト変数が同じオブジェクトを参照しているかどうかを調べるだけです。


関連項目

Is 演算子

Like 演算子

演算子の概要


算術演算子

^ 演算子

* 演算子

/ 演算子

\ 演算子

Mod 演算子

+ 演算子

- 演算子


文字列連結演算子

& 演算子

+ 演算子


論理演算子

And 演算子

Eqv 演算子

Imp 演算子

Not 演算子

Or 演算子

Xor 演算子


^ 演算子

関連項目	例

数値のべき乗を求めます。

構文

result = number^exponent

^ 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

number	任意の数式を指定します。

exponent	任意の数式を指定します。

解説

exponent が整数のときに限り、引数 number に負の値を指定できます。1 つの式の中で複数の指数演算が行われるとき、^ 演算子は左から右の順に評価されます。

通常、演算結果 result のデータ型は、倍精度浮動小数点数型 (Double) または内部処理形式が倍精度浮動小数点数型のバリアント型 (Variant) となります。ただし、number または exponent のいずれかが Null 値に評価される式のときは、result も Null 値となります。


関連項目

算術演算子

演算子の優先順位

演算子の概要


+ 演算子

関連項目	例

2 つの数値の和を求めます。

構文

result = expression1+expression2

+ 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

expression1	任意の式を指定します。

expression2	任意の式を指定します。

解説

+ 演算子は文字列の連結にも使用できますが、コードの意味があいまいになるおそれがあります。プログラムを理解しやすくするために、文字列の連結には & 演算子を使用してください。

+ 演算子を使うと、加算と文字列連結のどちらが行われるのか、事前にはわかりにくいときがあります。2 つの式のうち、少なくとも一方がバリアント型 (Variant) 以外のデータ型であるときに適用される規則を、次に示します。

条件	行われる演算
両方の式が数値データ型 (バイト型、ブール型、整数型、長整数型、単精度浮動小数点数型、倍精度浮動小数点数型、日付型、通貨型)	加算。
両方の式が文字列型 (String)	文字列連結。
一方の式が数値データ型、他方がバリアント型 (Null 値を除く)	加算。
一方の式が文字列型、他方がバリアント型 (Null 値を除く)	文字列連結。
一方の式が Empty 値を含むバリアント型	他方の式をそのまま result として返します。
一方の式が数値データ型、他方が文字列型	エラー“型が一致しません”が発生します。
一方または両方の式が Null 値	result は Null 値になります。
両方の式がバリアント型のときに適用される規則を次に示します。この場合は、それぞれの式の内部処理形式に基づいて、処理されます。

条件	行われる演算
両方の式の内部処理形式が数値データ型	加算
両方の式の内部処理形式が文字列型	文字列連結
一方の式の内部処理形式が数値データ型、他方の内部処理形式が数値を表す文字として解釈できる文字列型	加算
数値データ型の式だけからなる単純な加算では、演算結果 result のデータ型は、通常最も精度の高い式のデータ型と同じになります。数値データ型の精度は、バイト型 (Byte)、整数型 (Integer)、長整数型 (Long)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、通貨型 (Currency) の順に高くなります。ただし、次に示すような例外があります。

単精度浮動小数点数型と長整数型の間の加算では、result のデータ型は倍精度浮動小数点数型に変換されます。

result のデータ型がバリアント型で、その内部処理形式が長整数型、単精度浮動小数点数型または日付型 (Date) の場合に、result の値がそのデータ型の値の範囲を超えていると、result のデータ型は、内部処理形式が倍精度浮動小数点数型のバリアント型に変換されます。

result のデータ型がバリアント型で、その内部処理形式がバイト型の場合に、その値がそのデータ型の値の範囲を超えていると、result のデータ型は、整数型に変換されます。

result のデータ型がバリアント型で、その内部処理形式が整数型の場合に、result の値が整数型の値の範囲を超えていると、result のデータ型は、内部処理形式が長整数型のバリアント型に変換されます。

日付型と他の数値データ型を加算すると、result のデータ型は常に日付型になります。

注   加算と減算に使われる精度は、乗算に使われる精度とは異なります。

一方または両方の式が Null 値のとき、result は Null 値になります。両方の式が Empty 値のとき、result は整数型になります。ただし、一方の式だけが Empty 値のときは、他方の式がそのまま result として返されます。


関連項目

算術演算子

文字列連結演算子

演算子の優先順位

演算子の概要


- 演算子

関連項目	例

2 つの数値の差を求めます。または、数式の符号を反転した値を指定します。

構文 1

result = number1-number2

構文 2

-number

- 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

number	任意の数式を指定します。

number1	任意の数式を指定します。

number2	任意の数式を指定します。

解説

構文 1 では、- 演算子は減算演算子として、2 つの数値の差を求めるために使用されます。

構文 2 では、- 演算子は単項マイナス符号演算子として、式の符号を反転した値を指定するために使用されます。

演算結果 result のデータ型は、通常最も精度の高い式のデータ型と同じになります。数値データ型の精度は、バイト型 (Byte)、整数型 (Integer)、長整数型 (Long)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、通貨型 (Currency) の順に高くなります。ただし、次に示すような例外があります。

単精度浮動小数点数型と長整数型の間の減算では、result のデータ型は倍精度浮動小数点数型に変換されます。

result のデータ型がバリアント型 (Variant) で、その内部処理形式が長整数型、単精度浮動小数点数型または日付型 (Date) の場合に、result の値がそのデータ型の値の範囲を超えていると、result のデータ型は、内部処理形式が倍精度浮動小数点数型のバリアント型に変換されます。

result のデータ型がバリアント型で、その内部処理形式がバイト型の場合に、その値がそのデータ型の値の範囲を超えていると、result のデータ型は、整数型に変換されます。

result のデータ型がバリアント型で、その内部処理形式が整数型の場合に、result の値が整数型の値の範囲を超えていると、result のデータ型は、内部処理形式が長整数型のバリアント型に変換されます。

日付型と他の数値データ型の間の減算では、result のデータ型は日付型に変換されます。

2 つの日付型の式の減算では、result のデータ型は倍精度浮動小数点数型に変換されます。

注   加算と減算に使われる精度は、乗算に使われる精度とは異なります。

一方または両方の式が Null 値のとき、result は Null 値になります。Empty 値 (VarType 0) を持つ式は、0 として扱われます。


関連項目

算術演算子

演算子の優先順位

演算子の概要


* 演算子

関連項目	例

2 つの数値の積を求めます。

構文

result = number1*number2

* 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

number1	任意の数式を指定します。

number2	任意の数式を指定します。

解説

演算結果 result のデータ型は、通常最も精度の高い式のデータ型と同じになります。数値データ型の精度は、バイト型 (Byte)、整数型 (Integer)、長整数型 (Long)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、通貨型 (Currency) の順に高くなります。ただし、次に示すような例外があります。

単精度浮動小数点数型と長整数型の間の乗算では、result のデータ型は倍精度浮動小数点数型に変換されます。

result のデータ型がバリアント型 (Variant) で、その内部処理形式が長整数型、単精度浮動小数点数型または日付型 (Date) の場合に、result の値がそのデータ型の値の範囲を超えていると、result のデータ型は、内部処理形式が倍精度浮動小数点数型のバリアント型に変換されます。

result のデータ型がバリアント型で、その内部処理形式がバイト型の場合に、その値がそのデータ型の値の範囲を超えていると、result のデータ型は、整数型に変換されます。

result のデータ型がバリアント型で、その内部処理形式が整数型の場合に、result の値が整数型の値の範囲を超えていると、result のデータ型は、内部処理形式が長整数型のバリアント型に変換されます。

注   乗算に使われる精度は、加算と減算に使われる精度とは異なります。

一方または両方の式が Null 値のとき、result は Null 値になります。Empty 値を持つ式は、0 として扱われます。


関連項目

算術演算子

演算子の優先順位

演算子の概要


/ 演算子

関連項目	例

2 つの数値の商を計算し、結果を浮動小数点数で返します。

構文

result = number1/number2

/ 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

number1	任意の数式を指定します。

number2	任意の数式を指定します。

解説

演算結果 result のデータ型は、通常は倍精度浮動小数点数型 (Double)、または内部処理形式が倍精度浮動小数点数型のバリアント型 (Variant) です。ただし、次のような例外があります。

両方の式がバイト型 (Byte)、整数型 (Integer)、または単精度浮動小数点数型 (Single) のとき、result のデータ型は、単精度浮動小数点数型になります。ただし、result の値が単精度浮動小数点数型の値の範囲を超えていると、エラーが発生します。

両方の式がバリアント型で、その内部処理形式がバイト型、整数型、または単精度浮動小数点数型のとき、result のデータ型は、内部処理形式が単精度浮動小数点数型のバリアント型になります。ただし、result の値が単精度浮動小数点数型の値の範囲を超えていると、result のデータ型は、内部処理形式が倍精度浮動小数点数型のバリアント型になります。

一方または両方の式が Null 値のとき、result は Null 値になります。Empty 値を持つ式は、0 として扱われます。


関連項目

算術演算子

演算子の優先順位

演算子の概要


\ 演算子

関連項目	例

2 つの数値の商を計算し、結果を整数で返します。

構文

result = number1\number2

\ 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

number1	任意の数式を指定します。

number2	任意の数式を指定します。

解説

除算を実行する前に、数式はバイト型 (Byte)、整数型 (Integer)、または長整数型 (Long) の式に丸められます。

通常、result のデータ型は、result の値が整数であるかどうかに関係なく、バイト型、整数型、または長整数型、あるいは、内部処理形式がバイト型、整数型、または長整数型のバリアント型 (Variant) になります。小数部分はすべて切り捨てられます。ただし、一方または両方の式が Null 値のときは、result も Null 値になります。Empty 値を持つ式は、0 として扱われます。


関連項目

算術演算子

演算子の優先順位

演算子の概要


Mod 演算子

関連項目	例

2 つの数値の除算を行い、その剰余を返します。

構文

result = number1 Mod number2

Mod 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

number1	任意の数式を指定します。

number2	任意の数式を指定します。

解説

剰余演算子は、number1 を number2 で除算し、その余りを result として返します。このとき浮動小数点数は整数に丸められます。たとえば、次に示す式では、変数 A (演算結果 result) の値は 5 になります。

A = 19 Mod 6.7

通常、result のデータ型は、result の値が整数であるかどうかに関係なく、バイト型 (Byte)、整数型 (Integer)、または長整数型 (Long)、あるいは、内部処理形式がバイト型、整数型、または長整数型のバリアント型 (Variant) になります。小数部分はすべて切り捨てられます。ただし、一方または両方の式が Null 値のときは、result も Null 値になります。Empty 値を持つ式は、0 として扱われます。


関連項目

算術演算子

演算子の優先順位

演算子の概要


& 演算子

関連項目	例

2 つの式に対して文字列連結を行います。

構文

result = expression1 & expression2

& 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の文字列型 (String) またはバリアント型 (Variant) の変数を指定します。

expression1	任意の式を指定します。

expression2	任意の式を指定します。

解説

expression が文字列でないときは、常に、内部処理形式が文字列型のバリアント型に変換されます。演算結果 result のデータ型は、両方の式が文字列型のときは、文字列型になります。それ以外のときは、内部処理形式が文字列型のバリアント型になります。両方の式が Null 値のときは、result も Null 値になります。ただし、一方の式だけが Null 値のときは、長さ 0 の文字列 ("") として他方の式と連結されます。Empty 値を持つ式も、長さ 0 の文字列として扱われます。


関連項目

文字列連結演算子

演算子の優先順位

演算子の概要


比較演算子

関連項目	例

2 つの式の比較を行います。

構文

result = expression1 comparisonoperator expression2

result = object1 Is object2

result = string Like pattern

比較演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

expression	任意の式を指定します。

comparisonoperator	任意の比較演算子を指定します。

object	任意のオブジェクトへの参照を指定します。

string	任意の文字列式を指定します。

pattern	任意の文字列式または文字の範囲を指定します。

解説

各比較演算子の演算結果 result が、真 (True)、偽 (False)、Null 値となる条件を、次の表に示します。Is 演算子と Like 演算子は、次の表に示す比較演算子とは異なる特殊な比較を行います。

演算子	意味	真 (True)	偽 (False)	Null 値
<	より小さい	expression1 < expression2	expression1 >= expression2	expression1 または expression2 = Null
<=	以下	expression1 <= expression2	expression1 > expression2	expression1 または expression2 = Null
>	より大きい	expression1 > expression2	expression1 <= expression2	expression1 または expression2 = Null
>=	以上	expression1 >= expression2	expression1 < expression2	expression1 または expression2 = Null
=	等しい	expression1 = expression2	expression1 <> expression2	expression1 または expression2 = Null
<>	等しくない	expression1 <> expression2	expression1 = expression2	expression1 または expression2 = Null
2 つの式を比較するとき、数値としての比較と文字列 (数字) としての比較とのどちらが行われるのか、事前にはわかりにくいときがあります。2 つの式のうち、少なくとも一方がバリアント型 (Variant) 以外のデータ型であるときに適用される規則を、次に示します。

条件	行われる演算
両方の式が数値データ型 (バイト型、ブール型、整数型、長整数型、単精度浮動小数点数型、倍精度浮動小数点数型、日付型、通貨型)	数値比較。
両方の式が文字列型 (String)	文字列比較。
一方の式が数値データ型、他方がバリアント型 (内部処理形式は数値データ型または数値に変換できる文字列型)	数値比較。
一方の式が数値データ型、他方がバリアント型 (内部処理形式は、数値に変換できない文字列型)	エラー“型が一致しません”が発生します。
一方の式が文字列型、他方がバリアント型 (Null 値を除く)	文字列比較。
一方の式が Empty 値、他方が数値データ型	Empty 値の式を 0 と見なして数値比較を行います。
一方の式が Empty 値、他方が文字列型	Empty 値の式を長さ 0 の文字列と見なして文字列比較を行います。
expression1 と expression2 が両方ともバリアント型の式の場合は、各式の内部処理形式に基づいて次のように演算が行われます。

条件	行われる演算
両方の式の内部処理形式が数値データ型	数値比較。
両方の式の内部処理形式が文字列型	文字列比較。
一方の式の内部処理形式が数値データ型、他方の内部処理形式が文字列型	数値データ型の式が文字列型の式より小さいという結果になります。
一方の式の内部処理形式が Empty 値、他方の内部処理形式が数値データ型	Empty 値を 0 と見なして数値比較を行います。
一方の式の内部処理形式が Empty 値、他方の内部処理形式が文字列型	Empty 値を長さ 0 の文字列と見なして文字列比較を行います。
両方の式の内部処理形式が Empty 値	2 つの式は等しいという結果になります。
注   通貨型 (Currency) の式を、単精度浮動小数点数型 (Single) または倍精度浮動小数点数型 (Double) の式と比較する場合、単精度浮動小数点数型または倍精度浮動小数点数型の式は通貨型に変換されます。このとき、単精度浮動小数点数型または倍精度浮動小数点数型の小数部分で 0.0001 より小さい部分は失われるため、実際には等しくない 2 つの値が等しいと判断されることがあります。また単精度浮動小数点数型の式と倍精度浮動小数点数型の式を比較する場合、倍精度浮動小数点数型の式は、単精度浮動小数点数型の精度に丸められます。


関連項目

Is 演算子

Like 演算子

演算子の優先順位

演算子の概要

Option Compare ステートメント


And 演算子

関連項目	例

2 つの式の論理積を求めます。

構文

result = expression1 And expression2

And 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

expression1	任意の式を指定します。

expression2	任意の式を指定します。

解説

両方の式がそれぞれ真 (True) と評価されるときに限り、演算結果 result は真になります。どちらか一方の式が偽 (False) と評価されるときは、result は偽になります。2 つの式の値の組み合わせと result の値の対応を次の表に示します。

expression1	expression2	result

True	True	True

True	False	False

True	Null 値	Null 値

False	True	False

False	False	False

False	Null 値	False

Null 値	True	Null 値

Null 値	False	False

Null 値	Null 値	Null 値

And 演算子は、2 つの数式内の対応するビットに対するビット単位の比較も行います。次の真理値表に従って、result 内の対応するビットがセットされます。

expression1	expression2	result

0	0	0

0	1	0

1	0	0

1	1	1


関連項目

論理演算子

演算子の優先順位

演算子の概要


Eqv 演算子

関連項目	例

2 つの式の論理等価演算を行います。

構文

result = expression1 Eqv expression2

Eqv 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

expression1	任意の式を指定します。

expression2	任意の式を指定します。

解説

どちらかの式が Null 値のときは、演算結果 result も Null 値になります。どちらの式も Null 値でないとき、演算結果 result の値は次の表に従って決まります。

expression1	expression2	result

True	True	True

True	False	False

False	True	False

False	False	True

Eqv 演算子は、2 つの数式内の対応するビットに対するビット単位の比較も行います。次の真理値表に従って、演算結果 result 内の対応するビットがセットされます。

expression1	expression2	result

0	0	1

0	1	0

1	0	0

1	1	1


関連項目

論理演算子

演算子の優先順位

演算子の概要


Imp 演算子

関連項目	例

2 つの式の論理包含演算を行います。

構文

result = expression1 Imp expression2

Imp 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

expression1	任意の式を指定します。

expression2	任意の式を指定します。

解説

2 つの式の値の組み合わせと演算結果 result の値の対応を次の表に示します。

expression1	expression2	result

True	True	True

True	False	False

True	Null 値	Null 値

False	True	True

False	False	True

False	Null 値	True

Null 値	True	True

Null 値	False	Null 値

Null 値	Null 値	Null 値

Imp 演算子は、2 つの数式内の対応するビットに対するビット単位の比較も行います。次に示す真理値表に従って、演算結果 result 内の対応するビットがセットされます。

expression1	expression2	result

0	0	1

0	1	1

1	0	0

1	1	1


関連項目

論理演算子

演算子の優先順位

演算子の概要


Not 演算子

関連項目	例

式の論理否定を求めます。

構文

result = Not expression

Not 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

expression	任意の式を指定します。

解説

式 expression の値と演算結果 result の値の対応を次の表に示します。

expression	result

True	False

False	True

Null 値	Null 値

Not 演算子は、変数に対してビット単位の反転も行います。次に示す真理値表に従って、演算結果 result の対応するビットがセットされます。

expression	result

0	1

1	0


関連項目

論理演算子

演算子の優先順位

演算子の概要


Or 演算子

関連項目	例

2 つの式の論理和を求めます。

構文

result = expression1 Or expression2

Or 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

expression1	任意の式を指定します。

expression2	任意の式を指定します。

解説

2 つの式のどちらか一方、または両方が真 (True) のとき、演算結果 result は真になります。2 つの式の値と演算結果 result の値の対応を次の表に示します。

expression1	expression2	result

True	True	True

True	False	True

True	Null 値	True

False	True	True

False	False	False

False	Null 値	Null 値

Null 値	True	True

Null 値	False	Null 値

Null 値	Null 値	Null 値

Or 演算子は、2 つの数式内の対応するビットに対してビット単位の比較も行います。次に示す真理値表に従って、演算結果 result 内の対応するビットがセットされます。

expression1	expression2	result

0	0	0

0	1	1

1	0	1

1	1	1


関連項目

論理演算子

演算子の優先順位

演算子の概要


Xor 演算子

関連項目	例

2 つの式の排他的論理和を求めます。

構文

result = expression1 Xor expression2

Xor 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

expression1	任意の式を指定します。

expression2	任意の式を指定します。

解説

2 つの式の一方だけが真 (True) のとき、演算結果 result は真になります。どちらかの式が Null 値のときは、演算結果 result も Null 値になります。どちらの式も Null 値でないときは、演算結果 result の値は次に示す表に従って決まります。

expression1	expression2	result

True	True	False

True	False	True

False	True	True

False	False	False

Xor 演算子は、2 つの数式内の対応するビットに対してビット単位の比較も行います。次に示す真理値表に従って、演算結果 result 内の対応するビットがセットされます。

expression1	expression2	result

0	0	0

0	1	1

1	0	1

1	1	0


関連項目

論理演算子

演算子の優先順位

演算子の概要


Like 演算子

関連項目	例

2 つの文字列の比較を行います。

構文

result = string Like pattern

Like 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

string	任意の文字列式を指定します。

pattern	「解説」に示すパターン マッチング規則に従った任意の文字列式を指定します。

解説

文字列式 string と文字列式 pattern が一致していると、演算結果 result は真 (True) になります。一致していないときは、result は偽 (False) になります。文字列式 string または文字列式 pattern のいずれかが Null 値のときは、演算結果 result も Null 値になります。

Like 演算子の動作は、Option Compare ステートメントの設定によって異なります。各モジュールに対する文字列比較の方法は、特に指定しない限り Option Compare Binary の設定が使われます。

Option Compare Binary では、文字列比較で使われる並べ替え順序は、バイナリ文字コードのコード順によって決まります。コード順として、シフト JIS コードが使用されます。バイナリ モード (Binary) での並べ替え順序の例を次に示します。

* < 0 < 9 < A < Z < a < z < ＊ < ０ < Ａ < ａ < あ < ん < ア < ン < 亜 < ｱ < ﾝ

Option Compare Text では、文字列比較は、オペレーティング システムの国別情報によって決まり、日本の場合は 50 音順およびアルファベット順で、大文字小文字を区別しない並べ替え順序になります。テキスト モード (Text) での並べ替え順序の例を次に示します。

(*=＊) < (0=０) < (9=９) < (A=a=Ａ=ａ) < (B=b=Ｂ=ｂ) < (ｱ=ア=あ) < (ﾝ=ン=ん) < 亜

組み込みのパターン マッチング機能では、文字列比較のための便利な機能を利用できます。ワイルドカード、文字リスト、文字範囲などを組み合わせて使用できます。次に、pattern に指定できる文字と、一致する文字を示します。

文字パターン	string の中の一致する文字

?	任意の 1 文字

*	任意の数の文字

#	任意の 1 文字の数字 (0-9)

[charlist]	文字リスト charlist に指定した文字の中の 1 文字

[!charlist]	文字リスト charlist に指定した文字以外の任意の 1 文字

これらのうち、“#”を除くすべての文字パターンでは、2 バイト文字 (全角文字) も 1 文字と数えて文字列比較を行います。“#”には、1 バイト (半角) の数字だけが一致します。

1 個以上の文字のリスト (charlist) を角かっこ ([ ]) で囲んで文字列式 pattern に指定すると、その中のいずれかの文字と、文字列式 string の中の該当する 1 文字が一致するかどうかを比較することができます。角かっこ ([ ]) の中の文字リストには、数字も含め、文字コードおよびシフト JIS コードのほとんどすべての文字を指定できます。

注   左角かっこ ([)、疑問符 (?)、シャープ記号 (#)、アスタリスク (*) を、ワイルドカードとしてではなくその文字自体として、文字列の中の文字と比較するには、これらの特殊文字を必ず角かっこで囲みます。右角かっこ (]) をワイルドカードとしてではなくその文字自体として文字と比較するときには、右角かっこを他の文字と一緒に角かっこで囲んでリストの中に指定することはできません。右角かっこは、文字のリストに入れずに単独で指定すると、独立した文字として、文字列の中の文字と比較することができます。

角かっこの中に指定する charlist には、文字を羅列した単純なリスト以外に、文字コードの並びの上限と下限をハイフン (-) で区切ることによって、特定の文字範囲を指定することもできます。2 バイト文字も範囲指定でき、漢字の範囲の指定もできます。たとえば、文字列式 pattern に [A-Z] と指定すると、大文字の A から Z までの文字をすべてリストの中に指定したときと同じ意味になり、文字列式 string の中の対応する位置の文字が大文字のアルファベットのいずれか 1 文字であるときに一致します。1 組の角かっこの中に複数の範囲を指定するときは、それぞれの範囲の間を区切らずに記述します。

指定した範囲の意味は、Option Compare ステートメントの設定と、実行時のオペレーティング システムの国別情報の設定によって異なります。前述の例と同じ文字の並べ替え順序が使われている場合、Option Compare Binary を設定していると、範囲指定 [A-C] は A、B、C のいずれかの文字と一致します。同じ場合に、Option Compare Text を設定していると、範囲指定 [A-C] は、A、a、Ａ、ａ、B、b、Ｂ、ｂ、C、c、Ｃ、ｃのいずれかの文字と一致します。

パターン マッチングに関するその他の主な規則を次に示します。

文字リスト charlist の先頭に感嘆符 (!) を指定すると、文字列 string の中の文字が charlist に指定した文字以外のときに、一致することを表します。角かっこの外に指定した感嘆符は、文字としての感嘆符と一致します。

ハイフン (-) を charlist の先頭 (感嘆符が使われているときはその直後) または charlist の末尾に指定したときは、文字としてのハイフンと一致します。それ以外の位置に指定したハイフンは、ASCII コードおよびシフト JIS コードの文字の範囲を表します。

文字の範囲を指定するとき、文字の順序は昇順 (低い方から高い方へ) でなければなりません。たとえば、[A-Z] と指定することはできますが、[Z-A] と指定すると文字の範囲は正しく解釈されません。

角かっこの中に何も指定しないと ([])、長さ 0 の文字列と見なされ、無視されます。

一部の言語には、離れている 2 つの文字を意味する特殊文字がアルファベットに含まれています。たとえば、いくつかの言語では、文字“a”と“e”が共に表示されるときに、文字“ [image] ”を使って表します。Like 演算子は、単一の特殊文字と、異なる 2 つの文字が同等であると認識します。

このような特殊文字を使う言語をオペレーティング システムの国別情報で設定すると、文字列式 pattern または文字列式 string 内の一方の特殊文字は、他方の文字列内の同等な連続する 2 文字と一致します。同様に、角かっこで囲まれた (角かっこ自体はリスト内または範囲内にある) 文字列式 pattern 内の単一の特殊文字は、文字列式 string 内の同等の連続する 2 文字と一致します。


関連項目

比較演算子

InStr 関数

演算子の優先順位

演算子の概要

Option Compare ステートメント

StrComp 関数

国別情報


Is 演算子

関連項目	例

2 つのオブジェクト変数を比較します。

構文

result = object1 Is object2

Is 演算子の指定項目は次のとおりです。

指定項目	内容

result	任意の数値変数を指定します。

object1	任意のオブジェクト変数を指定します。

object2	任意のオブジェクト変数を指定します。

解説

引数 object1 と object2 に指定した変数が、両方同じオブジェクトを参照しているとき、result は真 (True) に、そうでないときは、result は偽 (False) になります。2 つの変数が同じオブジェクトを参照するようにするには、いくつかの方法があります。

次の例では、変数 A は変数 B と同じオブジェクトを参照するようになります。

Set A = B

次の例では、変数 A と変数 B は変数 C と同じオブジェクトを参照するようになります。

Set A = C

Set B = C


関連項目

比較演算子

演算子の優先順位

演算子の概要

Set ステートメント


Chr 関数

関連項目	例

指定した文字コードに対応する文字を返します。

構文

Chr(charcode)

引数 charcode には、シフト JIS コードなどの文字コードを指定します。

解説

ASCII コード 0 ～ 31 の範囲の文字は表示できません。この中には下に示す制御文字が含まれ、これらを利用することで MsgBox 関数や InputBox 関数などを使ってメッセージを表示するときに、文字列の中にタブや改行を含めることができます。

Chr(9)	タブ

Chr(10)	ライン フィード文字

Chr(13)	キャリッジ リターン

注   文字列をバイト データとして扱う場合は、ChrB 関数を使用してください。ChrB 関数は文字ではなく、1 バイトを返します。

注   Visual Basic for Applications 2.0 では Chr 関数および ChrB 関数に加えて ChrW 関数が新たに提供されています。ChrW 関数は 32 ビット オペレーティング システム上でのみ Unicode を受け取り、それに対応するの文字を返します。


関連項目

Asc 関数

ASCII 文字セット (0 - 127)

文字列を返す関数

Str 関数


Format 関数

関連項目	例

指定した書式に変換した文字列を返す文字列処理関数です。

構文

Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

Format 関数の指定項目は次のとおりです。

指定項目	内容

expression	任意の式を指定します。引数 expression に指定したデータが、引数 format の書式に従って変換されます。

format	定義済み書式または表示書式指定文字を指定します。

firstdayofweek	週の 1 日めを指定する定数を指定します。次の「設定値」を参照してください。

firstweekofyear	年の第 1 週を指定する定数を指定します。次の「設定値」を参照してください。

設定値

引数 firstdayofweek の定数は次のとおりです。

定数	値	内容

vbUseSystem	0	NLS API の設定値を使用します。

vbSunday	1	(既定値) 日曜。

vbMonday	2	月曜。

vbTuesday	3	火曜。

vbWednesday	4	水曜。

vbThursday	5	木曜。

vbFriday	6	金曜。

vbSaturday	7	土曜。

引数 firstweekofyear の定数は次のとおりです。

定数	値	内容

vbUseSystem	0	NLS API の設定値を使用します。

vbFirstJan1	1	(既定値) 1 月 1 日を含む週から始まります。

vbFirstFourDays	2	年の 4 日以上が含まれる最初の週から始まります。

vbFirstFullWeek	3	年のうち、7 日が含まれる最初の週から始まります。

解説

対象形式	書式の設定方法

数値	定義済み数値書式、または数値表示書式指定文字を使用します。

日付と時刻	定義済み日付/時刻書式、または日付/時刻表示書式指定文字を使用します。

日付と時刻のシリアル値	日付や時刻の形式または数値形式を使用します。

文字列	文字列表示書式指定文字を使用します。

Format 関数を使用して引数 format を省略して数値を変換すると、Str 関数を使った場合と同様の結果が得られます。ただし、Str 関数を使って正の数を文字列に変換した場合には、符号用のスペースが先頭に付加されますが、Format 関数を使った場合にはこのスペースは付加されません。たとえば、Format(23) = Str(23) は偽 (False) ですが、Format(23) = Ltrim(Str(23)) は真 (True) です。


関連項目

数値を表すその他の書式 (Format 関数)

文字列を表すその他の書式 (Format 関数)

定義済み日付/時刻書式 (Format 関数)

定義済み数値書式 (Format 関数)

文字列を返す関数

Str 関数

日付/時刻表示書式指定文字 (Format 関数)

数値表示書式指定文字 (Format 関数)

文字列表示書式指定文字 (Format 関数)


定義済み数値書式 (Format 関数)

関連項目

次の表に、定義済み数値書式の書式名と、その内容を示します。

書式名	内容

General Number	指定した数値をそのまま返します。1000 単位の区切り記号は付きません。

Currency	通貨記号、小数点以下の桁数、1000 単位の区切り記号など、オペレーティング システムの国別情報の設定による形式で表した文字列を返します。

Fixed	整数部を最低 1 桁、小数部を最低 2 桁表示する形式で返します。1000 単位の区切り記号は付きません。

Standard	整数部を最低 1 桁、小数部を最低 2 桁表示する形式で返します。1000 単位の区切り記号が付きます。

Percent	指定した数値を 100 倍して、小数部を常に 2 桁表示する形式で返します。パーセント記号 (%) が右側に付きます。

Scientific	標準的な科学表記法で表した文字列を返します。

Yes/No	数値が 0 の場合には No、それ以外の場合には Yes を返します。

True/False	数値が 0 の場合には False、それ以外の場合には True を返します。

On/Off	数値が 0 の場合には Off、それ以外の場合には On を返します。


関連項目

Format 関数

定義済み日付/時刻書式 (Format 関数)

国別情報


数値表示書式指定文字 (Format 関数)

関連項目	例

次の表に、数値表示書式指定文字と、その内容を示します。これらの文字を組み合わせて、ユーザー定義の書式を指定することができます。

文字	内容

なし	指定した数値をそのまま返します。

0	桁位置や桁数を指定するときに使います。引数 format に指定した書式文字列内の表示書式指定文字 "0" 1 つで、数値の 1 桁を表します。変換対象の数値 (expression) が、"0" で指定された桁位置を使っているときは、その桁に該当する値が入ります。変換対象の数値の桁数が少なく、指定された桁位置に該当する値がないときは、その桁には 0 が入ります。

引数 expression に指定した数値の整数部または小数部の桁数が、指定書式内の "0" の桁位置に満たないときは、その桁位置には 0 が付加されます。また、数値の小数部の桁数が、小数部に指定した "0" の桁位置を超える場合には、数値の小数部は指定の桁位置に合わせて四捨五入されます。逆に、整数部の桁数が、整数部に指定した "0" の桁位置を超える場合には、整数部は変更されることなく、すべて表示されます。

#	桁位置や桁数を指定するときに使います。引数 format に指定した書式文字列内の表示書式指定文字 "#" 1 つで、数値の 1 桁を表します。変換対象の数値 (expression) が、"#" で指定された桁位置を使っているときは、その桁に該当する値が入ります。変換対象の数値の桁数が少なく、指定された桁位置に該当する値がないときは、その桁には何も入りません。

この記号は表示書式指定文字の "0" と同じような働きをしますが、数値の小数部や整数部の桁数が "#" で指定された桁位置に満たないときに 0 は挿入されず、その桁には何も入りません。

.	表示書式指定文字 ("0" または "#" ) と組み合わせて、小数点の位置を指定するときに使います。表示する桁数を指定するとき、この表示書式指定文字の位置によって、整数部と小数部が区別されます。指定書式内で "." の左側に "#" だけが指定されているときは、1 未満の数値は小数点記号から始まります。数値が 1 未満のときに小数点記号の左側に常に 0 が付くようにするには、指定書式内で "." の左側に "#" ではなく "0" を指定してください。変換後の小数点記号は、オペレーティング システムの国別情報の設定によって決まります。

%	数値を 100 倍して、パーセント記号 (%) を付けるときに指定します。

,	1000 単位の区切り記号を挿入するときに指定します。整数部が 4 桁以上ある数値については、1000 単位の区切り記号が付きます。変換後の 1000 単位の区切り記号は、オペレーティング システムの国別情報の設定によって決まります。通常、この表示書式指定文字 "," の前後に "0" または "#" を指定して使います。この表示書式指定文字 "," の右側に "0" も "#" も指定しない場合、つまり、整数部の右端にこの表示書式指定文字 "," を 1 つ、または 2 つ以上続けて指定した場合 (小数部の表示指定の有無は任意)、変換対象の数値は 1000 単位で割った値に変換されます。このとき、値は桁位置の指定に応じて丸められます。これにより、大きな数値の表示を 1000 単位で簡略化することができます。たとえば、指定書式文字列として "##0,," と指定すると、数値 100000000 (1 億) は、100 に変換されます。100 万より小さな数値は 0 となります。整数部の右端以外でこの表示書式指定文字 "," を 2 つ以上続けて指定した場合は、"," を 1 つ指定したときと同じになります。

:	時刻の区切り記号を挿入するときに指定します。時刻を時間、分、秒で区切ることができます。変換後の時刻の区切り記号は、オペレーティング システムの国別情報の設定によって決まります。

/	日付の区切り記号を挿入することを指定します。日付を年、月、日で区切ることができます。変換後の区切り記号は、オペレーティング システムの国別情報の設定によって決まります。

E- E+ e- e+	指数表記で表すときに指定します。"E-"、"E+"、"e-"、"e+" のいずれかの右側に "0" または "#" を 1 つ以上指定すると、数値は指数表記で表され、整数部と指数部の間に e または E が挿入されます。これらの表示書式指定文字の右側に指定する "0" または "#" の数は、指数部の桁数を示します。"E-" や "e-" を使うと、指数が負の場合にはマイナス記号がつきます。"E+" や "e+" の場合は、指数の正負に合わせてプラス記号かマイナス記号がつきます。

- + $ ( ) スペース	それぞれ、指定の文字をそのまま挿入します。これら以外の文字を挿入するには、その前に円記号 (\) を付けるか、ダブル クォーテーション (") で囲んでください。

\	すぐ後に続く 1 文字をそのまま挿入します。書式指定の中で、特別な意味を持っている "#" または "E" などの文字を文字としてそのまま挿入するには、その文字の前に円記号 (\) を付けます。この場合、前に付けた円記号は表示されません。文字をダブル クォーテーション (") で囲んでも、同様の効果があります。円記号を挿入するには、円記号を 2 つ続けてください (\\)。

そのままでは挿入できない文字としては、日付や時刻の表示書式指定文字 (a、c、d、h、m、n、p、q、s、t、w、y、/、:)、数値の表示書式指定文字 (#、0、%、E、e、カンマ、ピリオド)、文字列の表示書式指定文字 (@、&、<、>、!) などがあります。

"ABC"	ダブル クォーテーション (") で囲まれた文字列は、そのまま挿入されます。書式指定の引数 format に文字列を含めるには、Chr(34) を使って文字列を囲んでください。文字コードではダブル クォーテーションは 34 になります。


関連項目

数値を表すその他の書式 (Format 関数)

Format 関数

日付/時刻表示書式指定文字 (Format 関数)

文字列表示書式指定文字 (Format 関数)

国別情報


数値を表すその他の書式 (Format 関数)

関連項目

表示書式指定文字を使って数値を文字列に変換する場合は、引数 format には、セミコロン (;) で区切ることにより最大 4 種類の書式を指定できます。ただし、引数 format に定義済み書式が含まれる場合、指定できる書式は 1 つだけです。

書式の数	結果

1	数値の範囲に関係なく、常にその書式を使って変換されます。

2	数値が正または 0 の場合には 1 番めの書式、負の場合には 2 番めの書式を使って変換されます。

3	数値が正の場合には 1 番めの書式、負の場合には 2 番めの書式、0 の場合には 3 番めの書式を使って変換されます。

4	数値が正の場合には 1 番めの書式、負の場合には 2 番めの書式、0 の場合には 3 番めの書式、Null 値の場合には 4 番めの書式を使って変換されます。

書式を 2 つ指定した場合の例を次に示します。1 番めの書式は数値が正の値および 0 のときに使われ、2 番めの書式は数値が負の値のときに使われます。

"$#,##0;($#,##0)"

複数のセミコロン (;) の間に何も記述しないと、その空の書式に対応する数値は、正の数値用の書式を使って変換されます。たとえば、次の書式指定文字列を使うと、正と負の数値については 1 番めの書式が使われ、0 については "Zero" が返されます。

"$#,##0;;\Z\e\r\o"


関連項目

文字列を表すその他の書式 (Format 関数)

Format 関数


数値表示書式指定文字の例

数値の表示書式を指定した場合の例を次に示します。コントロール パネルの設定が日本語/日本に設定されているとします。1 番左の列は書式を示します。その他の列は、それぞれ値の指定例に対する出力結果を示します。

指定した書式 (format)	正の数 5	負の数 5	小数 .5	Null 値

長さ 0 の文字列	5	-5	0.5

0	5	-5	1

0.00	5.00	-5.00	0.50

#,##0	5	-5	1

#,##0.00;;;Nil	5.00	-5.00	0.50	Nil

\\#,##0;\\-#,##0	\5	(\5)	\1

\\#,##0.00;\\-#,##0.00	\5.00	(\5.00)	\0.50

0%	500%	-500%	50%

0.00%	500.00%	-500.00%	50.00%

0.00E+00	5.00E+00	-5.00E+00	5.00E-01

0.00E-00	5.00E00	-5.00E00	5.00E-01


定義済み日付/時刻書式 (Format 関数)

関連項目

次の表に、定義済み日付/時刻書式の名前と、その内容を示します。

書式名	内容

General Date	日付または時刻、あるいはその両方を返します。整数部と小数部の両方を含む数値が指定されると、日付と時刻の両方を表す文字列 (たとえば 93/4/3 5:34) に変換します。小数部がない場合には日付のみ (たとえば 93/4/3)、整数部がない場合には時刻のみ (たとえば 5:34) を表す文字列に変換します。日付と時刻の表示形式はコントロール パネルの設定により決まります。

Long Date	日付の長い形式 (コントロール パネルの設定) で表した日付を返します。

Medium Date	簡略形式で表した日付を返します。Visual Basic で使用されます。

Short Date	日付の短い形式 (コントロール パネルの設定) で表した日付を返します。

Long Time	時刻、分、秒を含む形式で表した時刻を返します。

Medium Time	時間と分を 12 時間制で表した時刻を返します。同時に午前 (AM)、午後 (PM) も追加します。

Short Time	時間と分を24 時間制で表した時刻 (たとえば 17:45) を返します。


関連項目

Format 関数

定義済み数値書式 (Format 関数)


日付/時刻表示書式指定文字 (Format 関数)

関連項目	例

次の表に、日付/時刻表示書式指定文字と、その内容を示します。

文字	内容

:	時刻の区切り記号です。オペレーティング システムの国別情報の設定によっては、時刻の区切り記号として他の記号が使用されることがあります。時刻を時間、分、秒で区切ることができます。変換後の時刻の区切り記号は、コントロール パネルの設定によって決まります。

/	日付の区切り記号です。オペレーティング システムの国別情報の設定によっては、他の記号が使用されることがあります。日付を年、月、日で区切ることができます。変換後の区切り記号は、コントロール パネルの設定によって決まります。

c	ddddd および t t t t t の書式で表した日付と時刻を、日付、時刻の順で返します。指定された値に小数部がない場合には日付のみ、整数部がない場合には時刻のみを表す文字列を返します。

d	日付を返します。1 桁の場合も先頭に 0 は付きません (1 ～ 31)。

dd	日付を返します。1 桁の場合には先頭に 0 が付きます (01 ～ 31)。

ddd	曜日を英語 (省略形) で返します (Sun ～ Sat)。

aaa	曜日を日本語 (省略形) で返します (日～土)。

dddd	曜日を英語で返します (Sunday ～ Saturday)。

aaaa	曜日を日本語で返します (日曜日～土曜日)。

ddddd	年、月、日を含む短い形式 (コントロール パネルで設定) で表した日付を返します。既定の短い日付形式は、m/d/yy です。

dddddd	年、月、日を含む長い形式 (コントロール パネルで設定) で表した日付を返します。既定の長い日付形式は mmmm dd, yyyy です。

w	曜日を示す数値を返します (日曜日が 1、土曜日が 7 となります)。

ww	その日が一年のうちの何週めであるかを示す数値を返します (1 ～ 53)。

m	月を示す数値を返します。1 桁の場合も先頭に 0 は付きません (1 ～ 12)。ただし、h や hh の直後に m を指定した場合には、月ではなく分と解釈されます。

mm	月を示す数値を返します。1 桁の場合には先頭に 0 が付きます (01 ～ 12)。ただし、h や hh の直後に m を指定した場合には、月ではなく分と解釈されます。

mmm	月の名前を英語 (省略形) の文字列に変換します (Jan ～ Dec)。

mmmm	月の名前を英語で返します (January ～ December)。

q	1 年のうちの何番めの四半期に属するかを示す数値を返します (1 ～ 4)。

g	年号の頭文字を返します (M、T、S、H)。

gg	年号の先頭の 1 文字を漢字で返します (明、大、昭、平)。

ggg	年号を返します (明治、大正、昭和、平成)。

e	年号に基づく和暦の年を返します。1 桁の場合も先頭に 0 は付きません。

ee	年号に基づく和暦の年を 2 桁の数値を使って返します。1 桁の場合には先頭に 0 が付きます。

y	1 年のうちの何日めかを数値で返します (1 ～ 366)。

yy	西暦の年を下 2 桁の数値で返します (00 ～ 99)。

yyyy	西暦の年を 4 桁の数値で返します (100 ～ 9999)。

h	時間を返します。1 桁の場合も先頭に 0 は付きません (0 ～ 23)。

hh	時間を返します。1 桁の場合には先頭に 0 が付きます (00 ～ 23)。

n	分を返します。1 桁の場合も先頭に 0 は付きません (0 ～ 59)。

nn	分を返します。1 桁の場合には先頭に 0 が付きます (00 ～ 59)。

s	秒を返します。1 桁の場合も先頭に 0 は付きません (0 ～ 59)。

ss	秒を返します。1 桁の場合には先頭に 0 が付きます (00 ～ 59)。

t t t t t	コントロール パネルで設定されている形式で時刻を返します。先頭に 0 を付けるオプションが選択されている場合、時刻が午前もしくは午後 10 時より前のときは、先頭に 0 が付きます。既定の形式は、h:mm:ss です。

AM/PM	時刻が正午より前の場合は大文字で AM を返し、正午～午後 11 時 59 分の間は大文字で PM を返します。

am/pm	時刻が正午より前の場合は小文字で am を返し、正午～午後 11 時 59 分の間は小文字で pm を返します。

A/P	時刻が正午より前の場合は大文字で A を返し、正午～午後 11 時 59 分の間は大文字で P を返します。

a/p	時刻が正午より前の場合は小文字で a を返し、正午～午後 11 時 59 分の間は小文字で p を返します。

AMPM	“12 時間制”を選択しているとき、時刻が正午より前の場合は午前を表す文字列を、正午～午後 11 時 59 分の間は午後を表す文字列を返します。これらの文字列の設定および“12 時間制”の選択は、コントロール パネルで行います。AMPM は大文字、小文字のどちらで指定してもかまいません。既定の形式は、AM/PM です。


関連項目

Format 関数

数値表示書式指定文字 (Format 関数)

文字列表示書式指定文字 (Format 関数)

国別情報


日付/時刻表示書式指定文字の例

日付と時刻の表示書式の指定例を次に示します。ただし、コントロール パネルの設定が日本語/日本に設定されているものとします。また、日付は 1958 年 12 月 7 日、時刻は午後 8 時 50 分 35 秒であるとします。最後の例では、日付と時刻の両方を対象とした場合を想定しています。

指定した書式	変換結果

yy/mm/dd	58/12/07

mm-d	12-7

d-mmmm-yy	7-December-58

d-mmmm	7-December

mmmm-yy	December-58

ddddd(aaa)	58/12/07(日)

dddddd	1958 年 12 月 7 日 日曜日

ggge年m月d日(aaaa)	昭和33年12月7日(日曜日)

hh:mm AM/PM	08:50 PM

h:mm:ss a/p	8:50:35 p

h:mm	20:50

h:mm:ss	20:50:35

m/d/yy h:mm	12/7/58 20:50


文字列表示書式指定文字 (Format 関数)

関連項目

次の表に、文字列表示書式指定文字と、その内容を示します。

文字	内容

@	1 つの文字またはスペースを表します。変換対象 expression の中で @ (アット マーク) に対応する位置に文字が存在する場合には、その文字が表示されます。文字がなければスペースが表示されます。@ は、引数 format に指定した書式の中に表示書式指定文字の ! (感嘆符) がない限り、右から左の順に埋められます。

&	1 つの文字を表します。変換対象 expression の中で & (アンパサンド) に対応する位置に文字が存在する場合には、その文字が表示されます。文字がなければ何も表示せず、つめて表示されます。& は、引数 format に指定した書式の中に表示書式指定文字の ! (感嘆符) がない限り、右から左の順に埋められます。

<	小文字にします (1 バイト文字のアルファベットのみ)。すべての文字は小文字に変換されます。

>	大文字にします (1 バイト文字のアルファベットのみ)。すべての文字は大文字に変換されます。

!	文字を右から左ではなく、左から右へ埋めていくように指定します。

この文字を指定しないときは、右から左になります。


関連項目

文字列を表すその他の書式 (Format 関数)

Format 関数

日付/時刻表示書式指定文字 (Format 関数)

数値表示書式指定文字 (Format 関数)


文字列を表すその他の書式 (Format 関数)

関連項目

文字列用の書式指定では、セミコロン (;) で区切ることにより 2 種類の書式を、引数 format に指定できます。

書式の数	結果

1	対象文字列の内容に関係なく、常にその書式が適用されます。

2	通常は 1 番めの書式が対象文字列に適用されますが、対象が Null 値、または長さ 0 の文字列の場合は 2 番めの書式が適用されます。


関連項目

数値を表すその他の書式 (Format 関数)

Format 関数


Hex 関数

関連項目	例

指定した値を 16 進数で表した文字列を返します。

構文

Hex(number)

引数 number には、任意の数式または文字列式を指定します。

解説

引数 number が整数でないとき、変換の前に一番近い整数に丸められます。

number の値	戻り値

Null	Null 値

Empty	0

その他の数値	16 進数を表す最大 8 桁の文字列

適切な範囲の数値の前に &H を付けて記述すると、値を直接 16 進数で記述することができます。たとえば、10 進数の 16 を、&H10 のように 16 進数で表記することができます。


関連項目

Oct 関数

文字列を返す関数


InStr 関数

関連項目	例

ある文字列 (string1) の中から指定した文字列 (string2) を検索し、最初に見つかった文字位置 (先頭からその位置までの文字数) を返す文字列処理関数です。

構文

InStr([start, ]string1, string2[, compare])

Instr 関数の引数は次のとおりです。

指定項目	内容

start	検索の開始位置を示す数式を指定します。省略すると、最初の文字から検索されます。引数 start に Null 値が含まれていたときはエラーが発生します。引数 compare を指定した場合は、start も指定する必要があります。

string1	検索対象となる文字列式を指定します。

string2	引数 string1 内で検索する文字列式を指定します。

compare	文字列比較の比較モードを指定する番号を設定します。引数 compare は、省略できますが、0 または 1 に指定するか、Field オブジェクトの CollatingOrder プロパティの値に指定することもできます。1 を指定すると、テキスト モード (大文字と小文字を区別しない) の比較に、0 (既定値) を指定するとバイナリ モードの比較になります。データベースと同じ方法でデータベースから取得した値をソートまたは比較したいときは、Field オブジェクトの CollatingOrder プロパティの戻り値を指定してください。引数 compare が Null 値のとき、エラーが発生します。compare を指定したときは、引数 start も指定する必要があります。compare を省略すると、Option Compare ステートメントの設定に応じて、比較モードが決まります。

戻り値

内容	値

string1 が長さ 0 の文字列のとき	0

string1 が Null 値のとき	Null 値

string2 が長さ 0 の文字列のとき	start

string2 が Null 値のとき	Null 値

string2 が見つからないとき	0

string2 が string1 内で見つかったとき	見つかった文字列の位置

start の値が string1 の文字数より大きいとき	0

解説

注   文字列をバイト データとして扱う場合は、InStrB 関数を使用してください。InStrB 関数は検索結果をバイト位置 (先頭からその位置までのバイト数) で返します。


関連項目

Option Compare ステートメント

StrComp 関数


LCase 関数

関連項目	例

アルファベットの大文字を小文字に変換する文字列処理関数です。

構文

LCase(string)

引数 string には、任意の文字列式を指定します。string に Null 値が含まれていると、Null 値を返します。

解説

大文字だけが小文字に変換されます。大文字のアルファベット以外の文字は影響を受けません。


関連項目

文字列を返す関数

UCase 関数


Left 関数

関連項目	例

文字列の左端から指定した文字数分の文字列を取り出します。

構文

Left(string, length)

Left 関数の名前付き引数は次のとおりです。

指定項目	内容

string	この文字列式の左端から文字列が取り出されます。名前付き引数 string に Null 値が含まれているときは、Null を返します。

length	取り出す文字列の文字数を示す数式を指定します。0 を指定したときは長さ 0 の文字列を返します。string 全体の文字数と等しいか、それより大きい値を指定したときは、string 全体を返します。

解説

名前付き引数 string の文字数を調べるには、Len 関数を使用してください。

注   文字列をバイト データとして扱う場合は、LeftB 関数を使用してください。LeftB 関数は、指定したバイト数分の文字列を取り出します。


関連項目

Len 関数

Mid 関数

文字列を返す関数

Right 関数


Len 関数

関連項目	例

指定した文字列の文字数、または指定した変数に必要なバイト数を返します。

構文

Len(string | varname)

Len 関数の指定項目は次のとおりです。

指定項目	内容

string	任意の文字列式を指定します。引数 string に Null 値が含まれているときは、Null 値を返します。

varname	任意の変数の名前を指定します。引数 varname に Null 値が含まれているときは、Null を返します。引数 varname がバリアント型 (Variant) であれば、Len 関数はその変数を文字列型 (String) として処理し、常にその文字数を返します。

注   文字列をバイト データとして扱う場合は、LenB 関数を使用してください。LenB 関数は、指定した文字列のバイト数を返します。

注意   Len 関数にユーザー定義型の変数を指定すると、ファイルに書き込まれるデータのサイズを返します。LenB 関数にユーザー定義型の変数を指定すると、メモリ内でのサイズを返します。これには要素間の埋め込みが含まれます。


関連項目

データ型の概要

InStr 関数


LSet ステートメント

関連項目	例

文字列変数の値を左詰めにしたり、ユーザー定義型の変数を別のユーザー定義型の変数にコピーします。

構文

LSet stringvar = string

LSet varname1 = varname2

LSet ステートメントの指定項目は次のとおりです。

指定項目	内容

stringvar	文字列変数の名前を指定します。

string	引数 stringvar に左詰めで格納される文字列式を指定します。

varname1	コピー先のユーザー定義型変数の名前を指定します。

varname2	コピー元のユーザー定義型変数の名前を指定します。

解説

LSet ステートメントは引数 stringvar の余った部分をスペースで埋めます。

引数 string が引数 stringvar より長い場合、stringvar に左詰めで格納できる長さの文字だけ stringvar にコピーされ、格納できない部分は切り捨てられます。

警告   LSet ステートメントを使って、あるユーザー定義型の変数を別のユーザー定義型の変数にコピーすることは、できる限りしないでください。あるデータ型のデータを、別のデータ型に予約されている領域にコピーすると、予期しない結果が生じる可能性があります。

あるユーザー定義型から別のユーザー定義型に変数をコピーすると、そこに入っている要素に対して指定されたデータ型に関係なく、一方の変数のバイナリ データだけが他方のメモリ領域にコピーされます。


関連項目

RSet ステートメント


LTrim、RTrim、Trim 関数

関連項目	例

指定した文字列から、先頭 (LTrim) または末尾 (RTrim)、あるいは先頭と末尾の両方 (Trim) からスペースを削除した文字列を返す文字列処理関数です。

構文

LTrim(string)

RTrim(string)

Trim(string)

引数 string には、任意の文字列式を指定します。1 バイト (半角)、2 バイト (全角) にかかわらず、文字列の先頭あるいは末尾のスペースを削除します。引数 string にNull 値が含まれているときには、Null 値を返します。


関連項目

Left 関数

文字列を返す関数

Right 関数


Mid 関数

関連項目	例

文字列から指定した文字数分の文字列を返します。

構文

Mid(string, start[, length])

Mid 関数の名前付き引数は次のとおりです。

指定項目	内容

string	文字列を取り出す、元の文字列式を指定します。名前付き引数 string に Null 値が含まれているときは、Null 値を返します。

start	名前付き引数 string の先頭の位置を 1 として、どの位置から文字列を取り出すかを先頭からの文字数で指定します。start が string の文字数より大きい場合、Mid 関数は長さ 0 の文字列を返します。

length	取り出す文字数を指定します。名前付き引数 length を省略した場合、または文字列内に length より短い文字数しかない場合には、start から後のすべての文字が返されます。

解説

名前付き引数 string の文字数を決定するには、Len 関数を使用してください。

注   文字列をバイト データとして扱う場合は、MidB 関数を使用してください。MidB 関数はバイト単位で文字列を取り出します。MidB 関数には、文字数でなく、バイト数を指定します。


関連項目

Left 関数

Len 関数

LTrim、RTrim、Trim 関数

Mid ステートメント

文字列を返す関数

Right 関数


Mid ステートメント

関連項目	例

文字列変数の一部を他の文字列に置き換えます。

構文

Mid(stringvar, start[, length]) = string

Mid ステートメントの指定項目は次のとおりです。

指定項目	内容

stringvar	変更する文字列変数の名前を指定します。

start	引数 stringvar の中の置き換えを始める位置を文字数単位で指定します。

length	置き換えを行う文字数を指定します。省略すると、文字列すべてが使われます。

string	新しく置き換える文字列式を指定します。

解説

置き換える文字数は常に引数 stringvar の文字数よりも小さいか、または等しくします。

注   文字列をバイト データとして扱う場合は、MidB 関数を使用してください。MidB 関数では、引数 start を使って引数 stringvar 内の置き換えを始める位置をバイト数単位で指定します。また、引数 length を使って置き換えるバイト数を指定します。


関連項目

Mid 関数


Oct 関数

関連項目	例

引数に指定した値を 8 進数で表した文字列で返します。

構文

Oct(number)

引数 number には、任意の数式または文字列式を指定します。

解説

引数 number に小数点以下の値をもつ数式を指定すると、変換する前に一番近い整数に丸められます。

number	戻り値

Null 値	Null 値

Empty 値	0

その他の数値	最大 11 桁の 8 進数

適切な範囲の数値の前に &O を付けると、8 進数を表すことができます。たとえば、&O10 は 10 進数では 8 になります。


関連項目

Hex 関数

文字列を返す関数


Right 関数

関連項目	例

文字列の右端から指定した文字数分の文字列を取り出します。

構文

Right(string, length)

Right 関数の名前付き引数は次のとおりです。

指定項目	内容

string	この文字列式の右端から文字列を取り出します。名前付き引数 string に Null 値が含まれていたときは、Null 値を返します。

length	取り出す文字列の文字数を示す数式を指定します。0 を指定したときは、長さ 0 の文字列を返します。名前付き引数 string の文字数より大きいか等しい場合には、文字列全体が返されます。

解説

string の文字数を決定するときは、Len 関数を使用してください。

注   文字列をバイト データとして扱う場合は、RightB 関数を使用してください。RightB 関数は指定したバイト数分の文字列を取り出します。


関連項目

Left 関数

Len 関数

Mid 関数

文字列を返す関数


RSet ステートメント

関連項目	例

文字列変数の値を右詰めにします。

構文

RSet stringvar = string

RSet ステートメントの指定項目は次のとおりです。

指定項目	内容

stringvar	文字列変数の名前を指定します。

string	stringvar に右詰めで格納される文字列式を指定します。

解説

RSet ステートメントは引数 stringvar の余った部分をスペースで埋めます。

RSet ステートメントでは、ユーザー定義型の変数を使用することはできません。


関連項目

LSet ステートメント


Space 関数

関連項目	例

指定した数のスペースからなる文字列を返す文字列処理関数です。

構文

Space(number)

引数 number には、スペースの数を指定します。

解説

Space 関数は形式的な出力や固定長文字列の消去などに役立ちます。


関連項目

文字列を返す関数

Spc 関数

String 関数


Str 関数

関連項目	例

数式の値を文字列で表した値 (数字) で返す文字列処理関数です。

構文

Str(number)

引数 number には、任意の数式を指定します。

解説

数値を文字列に変換すると、戻り値の先頭に符号を表示するためのスペースが常に確保されます。数値が正の場合には、Str 関数の戻り値の先頭には、スペースが挿入されます。このスペースはプラス記号を意味します。

日付、時刻、通貨、ユーザー定義の書式などで数値を書式設定するには、Format 関数を使ってください。Str 関数と異なり、Format 関数を使用して変換した場合には、引数 number の先頭にスペースは挿入されません。

注   Str 関数は、ピリオド (.) だけを有効な小数点記号として認識します。異なる小数点記号を使用する場合は、CStr 関数を使って数値を文字列に変換してください。


関連項目

CStr 関数

Format 関数

文字列を返す関数

Val 関数


StrComp 関数

関連項目	例

文字列比較の結果を示す値を返します。

構文

StrComp(string1, string2[, compare])

StrComp 関数の名前付き引数は次のとおりです。

指定項目	内容

string1	任意の文字列式を指定します。

string2	任意の文字列式を指定します。

compare	文字列比較のモードを指定する番号を設定します。名前付き引数 compare は省略できますが、0 または 1 に指定するか、Field オブジェクトの CollatingOrder プロパティの値に指定することもできます。1 を指定すると、テキスト モード (大文字小文字を区別しない) の比較に、0 (既定値) を指定するとバイナリ モードの比較になります。データベースと同じ方法でデータベースから取得した値を検索または比較したいときは、CollatingOrder プロパティの戻り値を指定してください。compare が Null のとき、エラーが発生します。compare を省略すると、Option Compare ステートメントの設定により比較モードが決まります。

戻り値

戻り値	内容

-1	string1 は string2 より小さい

0	string1 と string2 は等しい

1	string1 は string2 より大きい

Null 値	string1 または string2 は Null 値


関連項目

Option Compare ステートメント


String 関数

関連項目	例

指定した文字コード (ASCII またはシフト JIS コード) の示す文字、または文字列の先頭文字を、指定した文字数だけ並べた文字列を返す文字列処理関数です。

構文

String(number, character)

String 関数の名前付き引数は次のとおりです。

指定項目	内容

number	文字をいくつ並べるかを指定します。number にNull 値が含まれると、Null 値を返します。

character	文字の文字コードまたは、文字列式を指定します。この文字列の先頭文字を number 回繰り返したものを返します。character が Null 値のとき、Null 値を返します。

解説

名前付き引数 character に 256 以上の数値を指定すると、String 関数は次の式を使って数値を有効な ASCII コードに変換します。

character Mod 256


関連項目

ASCII 文字セット (0 - 127)

Mod 演算子

文字列を返す関数

Space 関数

文字列型 (String)


UCase 関数

関連項目	例

アルファベットの小文字を大文字に変換する文字列処理関数です。

構文

UCase(string)

引数 string には、任意の文字列式を指定します。引数 string に Null 値が含まれていると、Null 値を返します。

解説

小文字だけが大文字に変換されます。大文字のアルファベット以外の文字は影響を受けません。


関連項目

LCase 関数

文字列を返す関数


ASCII 文字セット (128 - 255)

コード番号 0 - 127

128	160	[ｽﾍﾟｰｽ]	192	ﾀ	224

129	161	｡	193	ﾁ	225

130	162	｢	194	ﾂ	226

131	163	｣	195	ﾃ	227

132	164	､	196	ﾄ	228

133	165	･	197	ﾅ	229

134	166	ｦ	198	ﾆ	230

135	167	ｧ	199	ﾇ	231

136	168	ｨ	200	ﾈ	232

137	169	ｩ	201	ﾉ	233

138	170	ｪ	202	ﾊ	234

139	171	ｫ	203	ﾋ	235

140	172	ｬ	204	ﾌ	236

141	173	ｭ	205	ﾍ	237

142	174	ｮ	206	ﾎ	238

143	175	ｯ	207	ﾏ	239

144	176	ｰ	208	ﾐ	240

145	177	ｱ	209	ﾑ	241

146	178	ｲ	210	ﾒ	242

147	179	ｳ	211	ﾓ	243

148	180	ｴ	212	ﾔ	244

149	181	ｵ	213	ﾕ	245

150	182	ｶ	214	ﾖ	246

151	183	ｷ	215	ﾗ	247

152	184	ｸ	216	ﾘ	248

153	185	ｹ	217	ﾙ	249

154	186	ｺ	218	ﾚ	250

155	187	ｻ	219	ﾛ	251

156	188	ｼ	220	ﾜ	252

157	189	ｽ	221	ﾝ	253

158	190	ｾ	222	ﾞ	254

159	191	ｿ	223	ﾟ	255

これらの文字は、Microsoft Windows ではサポートされていません。


Asc 関数の例

次のプログラムでは、Asc 関数を使って、文字列の最初の文字の文字コードを返します。

MyNumber = Asc("A")	' 65 を返します。

MyNumber = Asc("a")	' 97 を返します。

MyNumber = Asc("Apple")	' 65 を返します。


CBool 関数の例

次のプログラムでは、CBool 関数を使って、式をブール型 (Boolean) に変換します。式が 0 のときは、CBool 関数は偽 (False) を返します。それ以外は真 (True) を返します。

A = 5: B = 5	' 変数の定義。

Check = CBool(A = B)	' 変数 Check には真 (True) が入ります。

A = 0	' 変数の定義。

Check = CBool(A)	' 変数 Check には偽 (False) が入ります。


CByte 関数の例

次のプログラムでは、CByte 関数を使って、式をバイト型 (Byte) に変換します。

MyDouble = 125.5678	' 変数 MyDouble は倍精度浮動小数点数型です。

MyByte = CByte(MyDouble)	' 変数 MyByte には 125 が入ります。


CDate 関数の例

次のプログラムでは、CDate 関数を使って、文字列を日付型 (Date) に変換します。一般的には、この例のように文字列で日付/時刻を表すことは好ましくありません。文字列の代わりに、日付リテラルや時刻リテラル (#2/12/1969#、#4:45:23 PM# など) を使ってください。

MyDate = "February 12, 1969"	' 日付の定義。

MyShortDate = CDate(MyDate)	' 日付型に変換。

MyTime = "4:35:47 PM"	' 時間の定義。

MyShortTime = CDate(MyTime)	' 日付型に変換。


CVErr 関数の例

次のプログラムでは、CVErr 関数を使って、バリアント型 (Variant) のエラー値 (VarType 10) を返します。ユーザー定義の CalculateDouble 関数は数値以外の引数を渡されるとエラー値を返します。CVErr 関数は、ユーザー定義のプロシージャからユーザー定義のエラー番号を返すため、あるいは、実行時エラーの処理を延期するために使います。値がエラー値であるかを調べるときは、IsError 関数を使用してください。

' エラーが発生する値 (ここでは、文字列) を引数として指定し、CalculateDouble 関数を呼び出します。

Sub Test()

Debug.Print CalculateDouble("345.45robert")

End Sub

' Function プロシージャ CalculateDouble の定義。

Function CalculateDouble(Number)

If IsNumeric(Number) Then	' 受け取った値が数値であれば、

CalculateDouble = Number * 2	' 結果を返します。

Else	' 数値以外のときは、

CalculateDouble = CVErr(2001)	' ユーザー定義のエラー値を返します。

End If

End Function


CCur 関数の例

次のプログラムでは、CCur 関数を使って、式を通貨型 (Currency) に変換します。

' 変数 MyDouble は倍精度浮動小数点数型です。

MyDouble = 543.214588

' MyDouble * 2 の結果 (1086.429176) を通貨型の値 (1086.4292) に変換します。

MyCurr = CCur(MyDouble * 2)


CDbl 関数の例

次のプログラムでは、CDbl 関数を使って、式を倍精度浮動小数点数型 (Double) に変換します。

MyCurr = CCur(234.456784)	' 変数 MyCurr は通貨型です。

MyDouble = CDbl(MyCurr * 8.2 * 0.01)	' 倍精度浮動小数点数型に変換します。


CInt 関数の例

次のプログラムでは、CInt 関数を使って、値を整数型 (Integer) に変換します。

MyDouble = 2345.5678	' 変数 MyDouble は倍精度浮動小数点数型です。

MyInt = CInt(MyDouble)	' 変数 MyInt には 2346 が入ります。


CLng 関数の例

次のプログラムでは、CLng 関数を使って、値を長整数型 (Long) に変換します。

MyVal1 = 25427.45: MyVal2 = 25427.55	' 変数 MyVal1、MyVal2 は倍精度浮動小数点数型です。

MyLong1 = CLng(MyVal1)	' 変数 MyLong1 には 25427 が入ります。

MyLong2 = CLng(MyVal2)	' 変数 MyLong2 には 25428 が入ります。


CSng 関数の例

次のプログラムでは、CSng 関数を使って、値を単精度浮動小数点数型 (Single) に変換します。

' 変数 MyDouble1、MyDouble2 は倍精度浮動小数点数型です。

MyDouble1 = 75.3421115: MyDouble2 = 75.3421555

MySingle1 = CSng(MyDouble1)	' 変数 MySingle1 には 75.34211 が入ります。

MySingle2 = CSng(MyDouble2)	' 変数 MySingle2 には 75.34216 が入ります。


CStr 関数の例

次のプログラムでは、CStr 関数を使って、数値を文字列型 (String) に変換します。

MyDouble = 437.324	' 変数 MyDouble は倍精度浮動小数点数型です。

MyString = CStr(MyDouble)	' 変数 MyString には "437.324" が入ります。


CVar 関数の例

次のプログラムでは、CVar 関数を使って、式をバリアント型 (Variant) に変換します。

MyInt = 4534	' 変数 MyInt は整数型です。

MyVar = CVar(MyInt & "000")	' 変数 MyVar には文字列“4534000”が入ります。


Val 関数の例

次のプログラムでは、Val 関数を使って、文字列に含まれている数値を返します。

MyValue = Val("2457")	' 2457 を返します。

MyValue = Val(" 2 45 7")	' 2457 を返します。

MyValue = Val("24 および 57")	' 24 を返します。


Call ステートメントの例

次のプログラムでは、Call ステートメントが Private Sub プロシージャ、組み込み関数、およびダイナミックリンク ライブラリ (DLL) プロシージャに対して、どのように制御を渡すかを説明します。

' Private Sub プロシージャを呼び出します。

Call PrintToDebugWindow("Hello World")

' 上記のステートメントは、次の Private Sub プロシージャに制御を渡します。

Sub PrintToDebugWindow(AnyString)

Debug.Print AnyString	' デバッグ ウィンドウに出力。

End Sub

' 組み込み関数を呼び出します。関数の戻り値は破棄されます。

Call Shell(AppName, 1)	' 引数 AppName には実行可能ファイルのパスが格納されています。

' Microsoft Windows の DLL プロシージャを呼び出します。Declare ステートメントは、クラス モジュールではプライベートにする必要がありますが、標準 モジュールではプライベートにする必要はありません。

Private Declare Sub MessageBeep Lib "User" (ByVal N As Integer)

Sub CallMyDll()

Call MessageBeep(0)	' Windows DLL プロシージャの呼び出し。

MessageBeep 0	' キーワード Call を省略した呼び出し。

End Sub


DoEvents 関数の例

次のプログラムでは、DoEvents 関数を使って、ループを 1,000 回繰り返すたびに、オペレーティング システムに制御が返されます。DoEvents 関数は、現在開いているフォームの数を返します。

' ロード済みで現在表示されている Visual Basic のフォームの数を保持する変数を作成します。

Dim OpenForms

For I = 1 To 150000	' ループの開始。

If I Mod 1000 = 0 Then 	' ループが 1,000 回繰り返されると

OpenForms = DoEvents	' オペレーティング システムに制御を渡します。

End If

Next I	' ループ カウンタを増やします。


Do...Loop ステートメントの例

次のプログラムでは、Do...Loop ステートメントの使い方を示しています。内側の Do...Loop ステートメントでは、ループを 10 回繰り返すとフラグの値を偽 (False) に設定し、Exit Do ステートメントを使ってループから抜けます。外側のループは、フラグの値を調べてループから抜けます。

Check = True: Counter = 0	' 変数の初期化。

Do	' 外側のループ。

Do While Counter < 20	' 内側のループ。

Counter = Counter + 1	' カウンタを増やします。

If Counter = 10 Then	' 条件が真 (True) であれば

 Check = False	' フラグの値を偽 (False) に設定します。

Exit Do	' 内側のループから抜けます。

End If

Loop

Loop Until Check = False	' 外側のループから抜けます。


End ステートメントの例

次のプログラムでは、ユーザーが不正なパスワードを入力すると、End ステートメントを使ってコードの実行が終了します。

Private Sub Form_Load

PassWord = "Swordfish"	' パスワードの設定。

Pword = InputBox("パスワードを入力してください。")

If Pword <> PassWord Then

MsgBox "パスワードが不正です。"

End

End If

End Sub


Exit ステートメントの例

次のプログラムでは、Exit ステートメントを使って、For...Next ループ、Do...Loop ループおよび Private Sub プロシージャから抜けます。

Sub ExitStatementDemo()

Do	' 無限ループの設定。

For I = 1 To 1000	' ループを 1,000 回繰り返します。

MyNum = Int(Rnd * 1000)	' 乱数を発生。

Select Case MyNum	' 乱数の評価。

Case 7: Exit For	' MyNum が 7 であれば、For...Next から抜けます。

Case 29: Exit Do	' MyNum が 29 であれば、Do...Loop から抜けます。

Case 54: Exit Sub	' MyNum が 54 であれば、Private Sub プロシージャから抜けます。

End Select

Next I

Loop

End Sub


For Each...Next ステートメントの例

次のプログラムでは、For Each...Next ステートメントを使って、コレクションのすべての要素の Text プロパティを対象に、文字列“Hello”を検索します。この例では、MyObject は、文字列に関連するオブジェクトで、MyCollection コレクションの要素の 1 つです。なお、MyObject と MyCollection は、説明する目的で一般的な名前を使っています。実際にコードを記述するときには、適切な名前に置き換えてください。

Found = False	' 変数の初期化。

For Each MyObject In MyCollection	' コレクションの各要素に対して繰り返します。

If MyObject.Text = "Hello" Then	' Text プロパティが "Hello" であれば

Found = True	' Found を真 (True) に設定します。

Exit For	' For ループから抜けます。

End If

Next


For...Next ステートメントの例

次のプログラムでは、0 から 9 までの一連の数字 ("0123456789") の集まりを 10 個格納する文字列を作成します。各数字の集まりの間は半角スペースで区切られます。外側のループのカウンタは、ループを 1 回実行するごとに 1 ずつ減少します。

For Words = 10 To 1 Step -1 	' ループを 10 回繰り返します。

For Chars = 0 To 9	' ループを 10 回繰り返します。

MyString = MyString & Chars	' 文字列に番号を追加します。

Next Chars	' カウンタを増やします。

MyString = MyString & " "	' スペースを追加します。

Next Words


GoSub...Return ステートメントの例

次のプログラムでは、Sub プロシジャーの中で GoSub ステートメントを使ってサブルーチンを呼び出します。サブルーチンの中に記述された Return ステートメントは、Sub プロシジャーに制御を戻し、Gosub ステートメントの直後のステートメントから処理を再開します。Exit Sub ステートメントは、制御が再びサブルーチンに渡されるのを防ぎます。

Sub GosubDemo()

' ユーザーに数値を入力させます。

Num = InputBox("2 で除算する正の数を入力してください。")

' ユーザーが正の数値を入力した場合のみ、サブルーチンに分岐します。

If Num > 0 Then GoSub MyRoutine

Debug.Print Num

Exit Sub	' Exit Sub でエラーを防止します。

MyRoutine:

Num = Num/2	' 除算を実行します。

Return	' GoSub ステートメントの直後の

End Sub	' ステートメントに制御を戻します。


GoTo ステートメントの例

次のプログラムでは、GoTo ステートメントを使って、プロシージャ内の行ラベルに分岐します。

Sub GotoStatementDemo()

Number = 1 	' 変数の初期化。

' Number を評価し、適切なラベルに分岐します。

If Number = 1 Then GoTo Line1 Else GoTo Line2

Line1:

MyString = "Number は 1 です。"

GoTo LastLine	' LastLine に分岐します。

Line2:

' 次のステートメントが実行されることはありません。

MyString = "Number は 2 です。"

LastLine:

Debug.Print MyString	' デバッグ ウィンドウに

' "Number は 1 です。" を出力します。

End Sub


If...Then...Else ステートメントの例

次のプログラムでは、If...Then...Else ステートメントのブロック形式と 1 行形式の使い方をそれぞれ示します。さらに、If TypeOf...Then...Else の使い方も示します。

Number = 53	' 変数の初期化。

If Number < 10 Then

Digits = 1

ElseIf Number < 100 Then

' 条件が真 (True) と評価され、次のステートメントが実行されます。

Digits = 2

Else

Digits = 3

End If

' 1 行形式の構文を使って値を代入します。

If Digits = 1 Then MyString = " 1 " Else MyString = " 2 以上"

次の例では、If TypeOf ステートメントを使って、プロシージャに渡された Control がテキスト ボックス (TextBox) コントロールであるかどうかを調べています。

Sub ControlProcessor(MyControl As Control)

If TypeOf MyControl Is CommandButton Then

Debug.Print TypeName(MyControl) & " コントロールです。"

ElseIf TypeOf MyControl Is CheckBox Then

Debug.Print TypeName(MyControl) & " コントロールです。"

ElseIf TypeOf MyControl Is TextBox Then

Debug.Print TypeName(MyControl) & " コントロールです。"

End If

End Sub


On...GoSub ステートメント、On...GoTo ステートメントの例

次のプログラムでは、On...GoSub ステートメントを使ってサブルーチンに分岐し、On...GoTo ステートメントを使って行ラベルに分岐します。

Sub OnGosubGotoDemo()

Number = 2	' 変数の初期化。

' Sub2 へ分岐。

On Number GoSub Sub1, Sub2	' On...GoSub の次から実行を再開します。

On Number GoTo Line1, Line2	' Line2 へ分岐。

' On...GoTo の次からは実行を再開しません。

Exit Sub

Sub1:

MyString = "Sub1 に分岐" : Return

Sub2:

MyString = "Sub2 に分岐" : Return

Line1:

MyString = "Line1 に分岐"

Line2:

MyString = "Line2 に分岐"

End Sub


Select Case ステートメントの例

次のプログラムでは、Select Case ステートメントを使って、変数の値を評価します。この例では、変数の値は必ず 2 番めの Case 節に一致します。したがって、2 番めの Case に記述されたステートメントだけが実行されます。

Number = 8	' 変数の初期化。

Select Case Number	' Number を評価します。

Case 1 To 5	' Number の値が 1 ～ 5 の場合。

Debug.Print "1 から 5 の間"

' この例では、Number に 8 を代入しているため、真 (True) と評価されるのは次の Case 節だけです。

Case 6, 7, 8	' Number の値が 6 ～ 8 の場合。

Debug.Print "6 から 8 の間"

Case Is > 8 And Number < 11	' Number の値が 9 または 10 の場合。

Debug.Print "9 または 10"

Case Else	' その他の値の場合。

Debug.Print "1 から 10 以外の数値"

End Select


Shell 関数の例

次のプログラムでは、Shell 関数を使って、指定されたアプリケーションを実行します。

' Microsoft Windows では、2 番めの引数に 1 を指定すると、アプリケーションが通常のサイズで開かれ、そのアプリケーションにフォーカスが与えられます。

RetVal = Shell("C:\WINDOWS\CALC.EXE", 1)	' 電卓を実行します。


Stop ステートメントの例

次のプログラムでは、Stop ステートメントを使って、For...Next ループを反復ごとに中断します。

For I = 1 To 10	' For...Next ループの開始。

Debug.Print I	' カウンタ変数 I をデバッグ ウィンドウに出力。

Stop	' 反復ごとにループを中断します。

Next I


While...Wend ステートメントの例

次のプログラムでは、While...Wend ステートメントを使って、カウンタ変数 (Counter) の値を増加させます。ループ内に記述されたステートメントは、条件の評価が真 (True) の間、実行されます。

Counter = 0	' 変数の初期化。

While Counter < 20	' Counter の値を評価します。

Counter = Counter + 1	' Counter の値を増やします。

Wend	' Counter > 19 であれば、While ループを終了します。

Debug.Print Counter	' デバッグ ウィンドウに 20 を出力。


With ステートメントの例

次のプログラムでは、With ステートメントを使って、単一のオブジェクトに対する一連のステートメントを実行します。なお、MyObject とプロパティ名は、説明する目的で一般的な名前を使っています。実際にコードを記述するときには、適切な名前に置き換えてください。

With MyObject

.Height = 100	' MyObject.Height = 100 と同じ。

.Caption = "Hello World"	' MyObject.Caption = "Hello World" と同じ。

With .Font

.Color = Red	' MyObject.Font.Color = Red と同じ。

.Bold = True	' MyObject.Font.Bold = True と同じ。

End With

End With


Date 関数の例

次のプログラムでは、Date 関数を使って現在のシステムの日付を取得します。

MyDate = Date	' MyDate に現在のシステムの日付が格納されます。


Date ステートメントの例

次のプログラムでは、Date ステートメントを使ってシステムの日付を設定します。デザイン時には、日付リテラルはコード記述時の国別情報で設定されている日付の形式で表示されます。

MyDate = #02/12/1985#	' 日付を代入します。

Date = MyDate	' システムの日付を変更します。


DateSerial 関数の例

次のプログラムでは、DateSerial 関数を使って、指定された年、月、日に対応する日付を取得します。

' MyDate には 1969 年 2 月 12 日の日付が代入されます。

MyDate = DateSerial(1969, 2, 12)	' 日付を返します。


DateValue 関数の例

次のプログラムでは、DateValue 関数を使って文字列を日付に変換します。日付リテラルを使って、バリアント型 (Variant) や日付型 (Date) の変数に日付を直接代入することもできます (たとえば MyDate = #02/12/69#)。

MyDate = DateValue("1969,2,12")	' 日付を返します。


Day 関数の例

次のプログラムでは、Day 関数を使って、指定された日付がその月の何日であるかを計算します。デザイン時には、日付リテラルはコード記述時の国別情報で設定されている日付の形式で表示されます。

MyDate = #02/12/69#	' 日付を代入します。

MyDay = Day(MyDate)	' MyDay には 12 が代入されます。


Hour 関数の例

次のプログラムでは、Hour 関数を使って、指定した時刻の“時”で表される部分を計算します。デザイン時には、時刻リテラルはコード記述時の国別情報で設定されている時刻の形式で表示されます。

MyTime = #4:35:17 PM#	' 時刻を代入します。

MyHour = Hour(MyTime)	' MyHour には 16 が代入されます。


Minute 関数の例

次のプログラムでは、Minute 関数を使って、指定した時刻の“分”で表される部分を計算します。デザイン時には、時刻リテラルはコード記述時の国別情報で設定されている時刻の形式で表示されます。

MyTime = #4:35:17 PM#	' 時刻を代入します。

MyMinute = Minute(MyTime)	' MyMinute には 35 が代入されます。


Month 関数の例

次のプログラムでは、Month 関数を使って、指定した日付が何月であるかを計算します。デザイン時には、日付リテラルはコード記述時の国別情報で設定されている日付の形式で表示されます。

MyDate = #02/12/69#	' 日付を代入します。

MyMonth = Month(MyDate)	' MyMonth には 2 が代入されます。


Now 関数の例

次のプログラムでは、Now 関数を使って現在のシステムの日付と時刻を取得します。

Today = Now	' 現在のシステムの日付と時刻を代入します。


Second 関数の例

次のプログラムでは、Second 関数を使って、指定した時刻の“秒”で表される部分を計算します。デザイン時には、時刻リテラルはコード記述時の国別情報で設定されている時刻の形式で表示されます。

MyTime = #4:35:17 PM#	' 時刻を代入します。

MySecond = Second(MyTime)	' MySecond には 17 が代入されます。


Time 関数の例

次のプログラムでは、Time 関数を使って現在のシステムの時刻を求めます。

MyTime = Time	' 現在のシステムの時刻を返します。


Time ステートメントの例

次のプログラムでは、Time ステートメントを使ってシステムの時刻を設定します。

MyTime = #4:35:17 PM#	' 時刻を代入します。

Time = MyTime	' システムの時刻を MyTime に合わせます。


Timer 関数の例

次のプログラムでは、Timer 関数を使って、プログラムの実行を中断します。DoEvents ステートメントにより、プログラムが中断している間も他のプロセスを割り込みで処理できます。

If (MsgBox("[はい] を選択するとプログラムの実行が 5 秒間中断されます。", 4)) = vbYes Then

PauseTime = 5	' 中断時間を設定します。

Start = Timer	' 中断の開始時刻を設定します。

Do While Timer < Start + PauseTime

DoEvents	' 他のプロセスに制御を渡します。

Loop

Finish = Timer	' 中断の終了時刻を設定します。

TotalTime = Finish - Start	' 実際の中断時間を計算します。

MsgBox "実行を " & TotalTime & " 秒間中断しました"

Else

End

End If


TimeSerial 関数の例

次のプログラムでは、TimeSerial 関数を使って、指定された時間、分、秒で表される時刻を求めます。

MyTime = TimeSerial(16, 35, 17)	' MyTime には午後 4 時 35 分 17 秒を表すシリアル値が代入されます。


TimeValue 関数の例

次のプログラムでは、TimeValue 関数を使って文字列を時刻に変換します。時刻リテラルを使って、バリアント型 (Variant) や日付型 (Date) の変数に時刻を直接代入することもできます (例えば MyTime = #4:35:17 PM#)。

MyTime = TimeValue("4:35:17 PM")	' 時刻を返します。


Weekday 関数の例

次のプログラムでは、Weekday 関数を使って、指定された日付の曜日を計算します。

MyDate = #02/12/69#	' 日付を代入します。

MyWeekDay = Weekday(MyDate)	' MyWeekDay には 4 が代入されます。

' これは水曜日を表します。


Year 関数の例

次のプログラムでは、Year 関数を使って、指定された日付の年を計算します。デザイン時には、日付リテラルはコード記述時の国別情報で設定されている日付の形式で表示されます。

MyDate = #02/12/69#	' 日付を代入します。

MyYear = Year(MyDate)	' MyYear には 1969 が代入されます。


Array 関数の例

次のプログラムでは、Array 関数を使って配列を格納したバリアント型 (Variant) を返します。

MyWeek = Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")

' 以下に示す戻り値は、Option Base ステートメントを使ってインデックス

' 番号の最小値を 1 に設定している場合の戻り値です。

MyDay = MyWeek(2)	' MyDay に "Tue" が格納されます。

MyDay = MyWeek(4)	' MyDay に "Thu" が格納されます。


Const ステートメントの例

次のプログラムでは、Const ステートメントを使って、リテラル値を置き換える定数を宣言しています。パブリック定数は、クラス モジュールではなく、標準モジュールの宣言セクションに記述します。プライベート定数は、どの種類のモジュールの宣言セクションにも記述できます。

' 定数は既定値ではプライベートです。

Const MyVar = 459

' パブリック定数を宣言します。

Public Const MyString = "HELP"

' プライベートの整数型定数を宣言します。

Private Const MyInt As Integer = 5

' 1 行で複数の定数を宣言します。

Const MyStr = "Hello", MyDouble As Double = 3.4567


Declare ステートメントの例

次のプログラムは、Declare ステートメントを標準モジュールのモジュール レベルで使って、ダイナミック リンク ライブラリ (DLL) に納められている外部プロシージャへの参照を宣言する方法を示しています。Declare ステートメントがプライベートであれば、Declare ステートメントをクラス モジュールに記述することができます。

Declare Sub MessageBeep Lib "User" (ByVal N As Integer)

' SomeBeep をプロシージャ名のエイリアスとして宣言します。

Declare Sub MessageBeep Lib "User" Alias "SomeBeep"(ByVal N As Integer)

' Alias 句で序数を使って GetWinFlags を呼び出します。

Declare Function GetWinFlags Lib "Kernel" Alias "#132"() As Long

' 32 ビットの Microsoft Windows システムでは、USER32.DLL ライブラリではなく、

' USER32.DLL ライブラリを指定します。16 ビットの Windows または 32 ビットの

' Windows で実行できるコードを記述するには、条件付きコンパイルを使用します。

#If Win32 Then

Declare Sub MessageBeep Lib "User32" (ByVal N As Long)

#Else

Declare Sub MessageBeep Lib "User" (ByVal N As Integer)

#End If


Deftype ステートメントの例

次のプログラムでは、Deftype ステートメントを使って、特定の文字が先頭に付く変数や Function プロシージャに対して既定のデータ型を設定する方法を説明します。既定のデータ型は、Dim ステートメントで明示的に宣言することによってのみ変更することができます。Deftype ステートメントはモジュール レベルでのみ使用できます。つまり、プロシージャ内で使うことはできません。

' 名前の先頭の文字が A ～ K の変数に対して、既定のデータ型を整数型に設定します。

DefInt A-K

' 名前の先頭の文字が L ～ Z の変数に対して、既定のデータ型を文字列型に設定します。

DefStr L-Z

CalcVar = 4	' 整数型変数を初期化します。

StringVar = "Hello there"	' 文字列変数を初期化します。

AnyVar = "Hello" 	' "Type mismatch" エラーが発生します。

Dim Calc As Double	' 明示的に倍精度浮動小数点型を宣言します。

Calc = 2.3455	' 倍精度浮動小数点型変数に値を代入します。

' Deftype ステートメントは Function プロシージャにも適用できます。

CalcNum = ATestFunction(4)	' ユーザー定義関数を呼び出します。

' ATestFunction という名前の Function プロシージャを定義します。

Function ATestFunction(INumber)

ATestFunction = INumber * 2	' 戻り値は整数になります。

End Function


Dim ステートメントの例

次のプログラムでは、Dim ステートメントを使って変数や配列を宣言する方法を示します。配列のインデックス番号の最小値は、既定値では 0 ですが、Option Base ステートメントを使ってモジュール レベルで変更することもできます。

' 変数 AnyValue と変数 MyValue は既定値のバリアント型として宣言され、値は Empty 値になります。

Dim AnyValue, MyValue

' 整数型の変数を明示的に宣言します。

Dim Number As Integer

' 1 行で複数の変数を宣言します。型が指定されていない変数 AnotherVar はバリアント型になります。

Dim AnotherVar, Choice As Boolean, BirthDate As Date

' DayArray は 51 の要素を持つバリアント型の配列として宣言されます。

' 現在のモジュールで Option Base が 0 に設定されていれば (既定の設定)、

' インデックス番号の範囲は 0 ～ 50 になります。

Dim DayArray(50)

' Matrix は整数型の 2 次元配列です。

Dim Matrix(3, 4) As Integer

' MyMatrix は倍精度浮動小数点数型の 3 次元配列です。インデックス番号の範囲が明示的に指定されます。

Dim MyMatrix(1 To 5,  4 To 9,  3 To 5) As Double

' BirthDay はインデックス番号 1 ～ 10 の日付型の配列です。

Dim BirthDay(1 To 10) As Date

' MyArray は、バリアント型の動的配列です。

Dim MyArray()


Erase ステートメントの例

次のプログラムでは、Erase ステートメントを使って静的配列の再初期化と動的配列のメモリを解放します。

' 配列変数を宣言します。

Dim NumArray(10) As Integer	' 整数型の配列。

Dim StrVarArray(10) As String	' 可変長文字列型の配列。

Dim StrFixArray(10) As String * 10	' 固定長文字列型の配列。

Dim VarArray(10) As Variant	' バリアント型の配列。

Dim DynamicArray() As Integer	' 動的配列。

ReDim DynamicArray(10)	' メモリを割り当てます。

Erase NumArray	' 各要素の値を 0 にします。

Erase StrVarArray	' 各要素の値を長さゼロの文字列 ("") にします。

Erase StrFixArray	' 各要素の値を 0 にします。

Erase VarArray	' 各要素の値を Empty にします。

Erase DynamicArray	' 配列が占めていたメモリを解放します。


Function ステートメントの例

次のプログラムでは、Function ステートメントを使って、Function プロシージャの名前と引数を宣言し、プロシージャのコードを記述しています。最後の例では、名前付き引数が使われています。

' 次のユーザー定義関数は、引数として渡された値の平方根を返します。

Function CalculateSquareRoot(NumberArg As Double) As Double

If NumberArg < 0 Then	' 引数を評価します。

Exit Function	' 呼び出し側のプロシージャを終了。

Else

CalculateSquareRoot = Sqr(NumberArg)	' 平方根を返します。

End If

End Function

関数が任意の数の引数を受け取るようにするにはキーワード ParamArray を使います。その例を次に示します。また、この例では、引数 FirstArg を値渡しで渡します。

Function CalcSum(ByVal FirstArg As Integer, ParamArray OtherArgs())

' この関数が

ReturnValue = CalcSum(4, 3 ,2 ,1)

' のように呼び出された場合、配列のインデックス番号の最小値が 1 であれば、

' ローカル変数には FirstArg = 4、OtherArgs(1) = 3、OtherArgs(2) = 2 のように値が代入されます。

' 関数の引数が

Function MyFunc(MyStr As String, Optional MyArg1, Optional MyArg2)

' のように定義されている場合、この関数は次のように呼び出すことができます。

RetVal = MyFunc("Hello", 2, "World")	' 3 つの引数をすべて指定。

RetVal = MyFunc("Test", , 5)	' 2 番めの引数を省略。

RetVal = MyFunc(MyArg1 := 7)	' 名前付き引数を使って 2 番めの引数のみ指定。


LBound 関数の例

次のプログラムでは、LBound 関数を使って、配列内の指定された次元のインデックス番号として使える最小値を求めます。インデックス番号の既定の最小値 (0) を変更するには Option Base ステートメントを使ってください。

Dim MyArray(1 To 10, 5 To 15, 10 To 20) 	' 配列変数を宣言します。

Dim AnyArray(10)

Lower = LBound(MyArray, 1) 	' 1 を返します。

Lower = LBound(MyArray, 3)	' 10 を返します。

Lower = LBound(AnyArray)	' Option Base の設定に応じて

' 0 または 1 を返します。


Let ステートメントの例

次のプログラムでは、式の値を変数に代入するときに Let ステートメントを使う場合と、使わない場合の両方を示しています。

' Let ステートメントを使った変数の代入。

Let MyStr = "Hello World"

Let MyInt = 5

次に示すように、Let ステートメントを使わずに値を代入しても同じ結果が得られます。

MyStr = "Hello World"

MyInt = 5


Option Base ステートメントの例

次のプログラムでは、Option Base ステートメントを使って配列のインデックス番号の既定の最小値 (0) を変更します。LBound 関数は、配列内の指定された次元のインデックス番号の最小値を返します。Option Base ステートメントは宣言セクションで使います。

Option Base 1	' 既定の配列のインデックス番号を 1 に設定します。

Dim MyArray(20), TwoDArray(3, 4)	' 配列変数を宣言します

Dim ZeroArray(0 To 5)	' インデックス番号の既定の最小値を変更します。

' 配列のインデックス番号の最小値を求めるには LBound 関数を使います。

Lower = LBound(MyArray)	' 1 を返します。

Lower = LBound(TwoDArray, 2)	' 1 を返します。

Lower = LBound(ZeroArray)	' 0 を返します。


Option Compare ステートメントの例

次のプログラムでは、Option Compare ステートメントを使って既定の文字列比較方法を変更します。Option Compare ステートメントはモジュール レベルでのみ使用します。

' 文字列比較方法を Binary に設定します。

Option Compare Binary 	' "AAA" は "aaa" よりも小さくなります。

' 文字列比較方法を Text に設定します。

Option Compare Text	' "AAA" と "aaa" は等価です。


Option Explicit ステートメントの例

次のプログラムでは、Option Explicit ステートメントを使ってすべての変数を明示的に宣言するように設定します。宣言されていない変数を使うとコンパイル時にエラーが発生します。Option Explicit ステートメントはモジュール レベルでのみ使用します。

Option Explicit	' すべての変数を明示的に宣言するようにします。

Dim MyVar	' 変数を宣言します。

MyInt = 10	' 宣言されていない変数を使うとエラーが発生します。

MyVar = 10	' 宣言済みの変数であれば、エラーは発生しません。


Private ステートメントの例

次のプログラムでは、Private ステートメントをモジュール レベルで使って、変数をプライベートとして宣言しています。このように宣言した変数は、そのモジュール内でのみ使用可能となります。

Private Number As Integer	' 整数型の変数をプライベートにします。

Private NameArray(1 To 5) As String	' 配列変数をプライベートにします。

' 1 行で複数の変数を宣言します。2 つのバリアント型変数と 1 つの整数型変数がすべてプライベートになります。

Private MyVar, YourVar, ThisVar As Integer


Property Get ステートメントの例

次のプログラムでは、Property Get ステートメントを使って、プロパティの値を取得するための Property プロシージャを定義します。このプロシージャはプロパティの値 (描画パッケージの現在のペンの色) を文字列として返します。

Dim CurrentColor As Integer

Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3

' 現在のペンの色を示す文字列を返します。

Property Get PenColor() As String

Select Case CurrentColor

Case RED

PenColor = "Red"

Case GREEN

PenColor = "Green"

Case BLUE

PenColor = "Blue"

End Select

End Property

' 次のコードでは、Property Get プロシージャを呼び出してペンの色を取得しています。

ColorName = PenColor()


Property Let ステートメントの例

次のプログラムでは、Property Let ステートメントを使ってプロパティに値を代入するプロシージャを定義します。プロパティの値は描画パッケージのペンの色を指定します。

Dim CurrentColor As Integer

Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3

' 描画パッケージのペン色を指定するプロパティを設定します。

' モジュール レベル変数 CurrentColor は、描画に用いられる色を指定する数値を表します。

Property Let PenColor(ColorName As String)

Select Case ColorName	' 色の名前を調べます。

Case "Red"

CurrentColor = RED	' 赤に対応する値を代入します。

Case "Green"

CurrentColor = GREEN	' 緑に対応する値を代入します。

Case "Blue"

CurrentColor = BLUE	' 青に対応する値を代入します。

Case Else

CurrentColor = BLACK	' 既定値を代入します。

End Select

End Property

' 次のコードでは、Property Let プロシージャを呼び出して描画パッケージの PenColor の値を設定します。

PenColor() = "Red"


Property Set ステートメントの例

次のプログラムでは、Property Set ステートメントを使って、オブジェクトへの参照を設定する Property プロシージャを宣言します。

' Pen プロパティに設定されているオブジェクトを変更します。

Property Set Pen(P As Object)

Set CurrentPen = P	' Pen をオブジェクトに割り当てます。

End Property


Public ステートメントの例

次のプログラムでは、Public ステートメントを標準モジュールのモジュール レベル (宣言セクション) で使って、変数を明示的にパブリックとして宣言します。このように宣言された変数は、Option Private Module が有効でない限り、すべてのアプリケーションの全モジュールの全プロシージャから使うことができます。

Public Number As Integer	' 整数型変数をパブリックにします。

Public NameArray(1 To 5) As String	' 配列変数をパブリックにします。

' 1 行で複数の変数を宣言します。2 つのバリアント型変数と 1 つの整数型変数がすべてパブリックになります。

Public MyVar, YourVar, ThisVar As Integer


ReDim ステートメントの例

次のプログラムでは、動的配列変数を保存するメモリ領域の割り当てと再割り当てを行います。なお、Option Base ステートメントは 1 に設定されているものとします。

Dim MyArray() As Integer	' 動的配列の宣言。

ReDim MyArray(5)	' 5 個の要素を割り当てます。

For I = 1 To 5	' 5 回のループを繰り返します。

MyArray(I) = I	' 配列を初期化します。

Next I

次のステートメントは配列のサイズを変更して以前の要素を削除します。

ReDim MyArray(10)	' 配列の要素を 10 個に変更します。

For I = 1 To 10	' 10 回のループを繰り返します。

MyArray(I) = I	' 配列を初期化します。

Next I

次のステートメントでは、以前の要素を削除せずに、配列のサイズを変更します。

ReDim Preserve MyArray(15)	' 配列の要素を 15 個に変更します。


Rem ステートメントの例

次のプログラムでは、Rem ステートメントを使って、プログラムのコメントを記述しています。

Rem これは注釈の一例です。

コメントは、次の形式で記述することもできます。

MyStr1 = "Hello": Rem ステートメントの後にコロンを付けてコメントを記述します。

MyStr2 = "Goodbye" 	' これもコメントです。この場合、コロンは不要です。


Set ステートメントの例

次のプログラムでは、Set ステートメントを使ってオブジェクトへの参照を変数に代入します。YourObject は、Text プロパティを持つ有効なオブジェクトとします。

Set MyObject = YourObject	' オブジェクトへの参照を代入します。

' MyObject と YourObject は同一のオブジェクトを参照します。

YourObject.Text = "Hello World"	' プロパティを初期化します。

MyStr = MyObject.Text	' "Hello World" を返します。

' 関連付けを解除します。MyObject は YourObject を参照しなくなります。

Set MyObject = Nothing	' オブジェクトを解放します。


Static ステートメントの例

次のプログラムでは、Static ステートメントを使って、モジュール コードが実行されている間、変数の値を保持します。

' 関数の定義。

Function KeepTotal(Number)

' この関数が次に呼び出されるときまで値が保持されるのは、変数 Accumulate だけです。

Static Accumulate

Accumulate = Accumulate + Number

KeepTotal = Accumulate

End Function

' Static ステートメントを使った関数の定義。

Static Function MyFunction(Arg1, Arg2, Arg3)

' すべてのローカル変数の値は、この関数が次に呼び出されるときまで保持されます。

Accumulate = Arg1 + Arg2 + Arg3

Half = Accumulate / 2

MyFunction = Half

End Function


Sub ステートメントの例

次のプログラムでは、Sub ステートメントを使って、Sub プロシージャの名前と引数を宣言し、プロシージャのコードを記述しています。

' Sub プロシージャの定義。

Sub SubComputeArea(Length, TheWidth)	' 2 つの引数をもつ Sub プロシージャ。

Dim Area As Double	' ローカル変数の宣言。

If Length = 0 Or TheWidth = 0 Then	' いずれかの変数の値が 0 ならば

Exit Sub	' Sub プロシージャを直ちに終了。

End If

Area = Length * TheWidth	' 四角形の面積を計算。

Debug.Print Area	' 面積をデバッグ ウィンドウに出力。

End Sub


Type ステートメントの例

次のプログラムでは、Type ステートメントを使って、ユーザー定義型を定義します。Type ステートメントは、モジュール レベルでのみ使用します。クラス モジュールで使用する場合は、Type ステートメントの直前にキーワード Private を付ける必要があります。

Type EmployeeRecord	' ユーザー定義型の作成。

ID As Integer	' データ型の要素を定義します。

Name As String * 20

Address As String * 30

Phone As Long

HireDate As Date

End Type

Dim MyRecord As EmployeeRecord	' 変数の宣言。

' EmployeeRecord 変数への代入は、プロシージャ内で記述する必要があります。

MyRecord.ID = 12003	' 要素に値を代入します。


UBound 関数の例

次のプログラムでは、UBound 関数を使って、配列の指定された次元のインデックス番号として使える最大値を求めます。

Dim MyArray(1 To 10, 5 To 15, 10 To 20)	' 配列変数の宣言。

Dim AnyArray(10)

Upper = UBound(MyArray, 1)	' 10 を返します。

Upper = UBound(MyArray, 3)	' 20 を返します。

Upper = UBound(AnyArray)	' 10 を返します。


Close ステートメントの例

次のプログラムでは、Close ステートメントを使って、シーケンシャル出力モード (Output) で開いている 3 つのファイルをすべて閉じます。

For I = 1 To 3	' ループを 3 回繰り返します。

FileName = "TEST" & I	' ファイル名を作成します。

Open FileName For Output As #I	' ファイルを開きます。

Print #I, "This is a test."	' ファイルに文字列を書き込みます。

Next I

Close	' 3 つのファイルをすべて閉じます。


EOF 関数の例

次のプログラムでは、EOF 関数を使ってファイルの終端に達したかどうかを調べます。ファイル MYFILE は、複数行のデータを持つテキスト ファイルとします。

Open "MYFILE" For Input As #1	' シーケンシャル入力モードで開きます。

Do While Not EOF(1)	' ファイルの終端かどうかを確認します。

Line Input #1, InputData	' データ行を読み込みます。

Debug.Print InputData	' デバッグ ウィンドウに表示します。

Loop

Close #1	' ファイルを閉じます。


FileAttr 関数の例

次のプログラムでは、FileAttr 関数を使って、開いているファイルのファイル ハンドルとファイル モードを返します。

FileNum = 1	' ファイル番号を割り当てます。

Open "TESTFILE" For Append As FileNum	' ファイルを開きます。

Mode = FileAttr(FileNum, 1)	' 8 (追加モード (Append)) を取得します。

Handle = FileAttr(FileNum, 2)	' ファイル ハンドルを取得します。

Close FileNum	' ファイルを閉じます。


FreeFile 関数の例

次のプログラムでは、FreeFile 関数を使って、次に使うことができるファイル番号を返します。この例では、ループ内で 5 つのファイルをシーケンシャル出力モード (Output) で開いています。各ファイルにはサンプル データが書き込まれているものとします。

For MyIndex = 1 To 5	' ループを 5 回繰り返します。

FileNumber = FreeFile	' 未使用のファイル番号を取得します。

Open "TEST" & MyIndex For Output As #FileNumber	' ファイル名を作成します。

Write #FileNumber, "これはサンプルです。"	' テキストを出力します。

Close #FileNumber	' ファイルを閉じます。

Next MyIndex


Get ステートメントの例

次のプログラムでは、Get ステートメントを使ってディスク ファイルのデータを変数に読み込んでいます。ファイル TESTFILE には、ユーザー定義型のレコードが 5 つ含まれているものとします。

Type Record	' ユーザー定義型を定義します。

ID As Integer

Name As String * 20

End Type

Dim MyRecord As Record	' 変数を宣言します。

' サンプル ファイルを ランダム アクセス モードで開きます。

Open "TESTFILE" For Random As #1 Len = Len(MyRecord)

' Get ステートメントを使ってサンプル ファイルを読み込みます。

Position = 3	' レコード番号を定義します。

Get #1, Position, MyRecord	' 3 番めのレコードを読み込みます。

Close #1	' ファイルを閉じます。


Input # ステートメントの例

次のプログラムでは、Input # ステートメントを使ってファイルのデータを読み込み、2 つの変数に代入しています。ファイルのデータを変数に正しく読み込むためには、使用するファイルのデータが Write # ステートメントを使って書き込まれている必要があります。

この例のファイル TESTFILE は、Write # ステートメントを使ってデータが書き込まれているものとします。各データ行には文字列や数値があり、文字列はダブル クォーテーション (") で囲まれ、各データは ("Hello", 234) のようにカンマ (,) で区切られています。

Open "TESTFILE" For Input As #1	' シーケンシャル入力モードで開きます。

Do While Not EOF(1)	' ファイルの終端までループを繰り返します。

Input #1, MyString, MyNumber	' データを 2 つの変数に読み込みます。

Debug.Print MyString, MyNumber	' デバッグ ウィンドウに表示します。

Loop

Close #1	' ファイルを閉じます。


Input 関数の例

次のプログラムでは、Input 関数を使ってファイルから 1 文字ずつ読み込んでいます。読み込んだ文字はデバッグ ウィンドウに表示されます。ファイル TESTFILE は、複数行のデータを持つテキスト ファイルとします。

Open "TESTFILE" For Input As #1	' ファイルを開きます。

Do While Not EOF(1)	' ファイルの終端までループを繰り返します。

MyChar = Input(1, #1)	' 1 文字のデータを読み込みます。

Debug.Print MyChar	' デバッグ ウィンドウに表示します。

Loop

Close #1	' ファイルを閉じます。


Line Input # ステートメントの例

次のプログラムでは、Line Input # ステートメントを使って、シーケンシャル ファイルから 1 行ずつ読み込んで変数に代入しています。ファイル TESTFILE は、複数行のデータを持つテキスト ファイルとします。

Open "TESTFILE" For Input As #1	' ファイルを開きます。

Do While Not EOF(1)	' ファイルの終端までループを繰り返します。

Line Input #1, TextLine	' 行を変数に読み込みます。

Debug.Print TextLine	' デバッグ ウィンドウに表示します。

Loop

Close #1	' ファイルを閉じます。


Loc 関数の例

次のプログラムでは、Loc 関数を使って開いているファイル内の現在の位置を返します。ファイル TESTFILE は、複数行のデータを持つテキスト ファイルとします。

Open "TESTFILE" For Binary As #1	' 作成したファイルを開きます。

Do While MyLocation < LOF(1)	' ファイルの終端までループを繰り返します。

MyLine = MyLine & Input(1, #1)	' 文字を変数に読み込みます。

MyLocation = Loc(1)	' ファイル内の現在位置を取得します。

' Print to Debug window.

Debug.Print MyLine; Tab; MyLocation

Loop

Close #1	' ファイルを閉じます。


Lock と Unlock ステートメントの例

次のプログラムでは、Lock ステートメントと Unlock ステートメントを使って、レコードを変更するときに変更操作が終わるまで、他のプロセスからアクセスできないようにそのレコードをロックしています。ファイル TESTFILE には、ユーザー定義型のレコードが 5 つ含まれているものとします。

Type Record	' ユーザー定義型を定義します。

ID As Integer

Name As String * 20

End Type

Dim MyRecord As Record	' 変数を宣言します。

' サンプル ファイルをランダム アクセス モードで開きます。

Open "TESTFILE" For Random Shared As #1 Len = Len(MyRecord)

RecordNumber = 4	' レコード番号を定義します。

Lock #1, RecordNumber	' レコードをロックします。

Get #1, RecordNumber, MyRecord	' レコードを読み込みます。

MyRecord.ID = 234	' レコードを変更します。

MyRecord.Name = "田中一郎"

Put #1, RecordNumber, MyRecord	' 変更したレコードを書き込みます。

Unlock #1, RecordNumber	' カレント レコードのロックを解除します。

Close #1	' ファイルを閉じます。


LOF 関数の例

次のプログラムでは、LOF 関数を使ってファイルの長さを調べます。ファイル TESTFILE は、サンプル データのあるテキスト ファイルとします。

Open "TESTFILE" For Input As #1	' ファイルを開きます。

FileLength = LOF(1)	' ファイルの長さを取得します。

Close #1	' ファイルを閉じます。


Open ステートメントの例

次のプログラムでは、Open ステートメントを使ってさまざまなモードでファイルを開いています。

ファイル TESTFILE を、シーケンシャル入力モード (Input) で開きます。

Open "TESTFILE" For Input As #1

' 他のモードで開く前に、このファイルをいったん閉じます。

Close #1

ファイルを書き込み専用のバイナリ ファイル モード (Binary) で開きます。

Open "TESTFILE" For Binary Access Write As #1

' 他のモードで開く前に、このファイルをいったん閉じます。

Close #1

ファイルをランダム アクセス モード (Random) で開きます。ファイルにはユーザー定義の Record 型のレコードがあります。

Type Record	' ユーザー定義型を定義します。

ID As Integer

Name As String * 20

End Type

Dim MyRecord As Record	' 変数を宣言します。

Open "TESTFILE" For Random As #1 Len = Len(MyRecord)

' 他のモードで開く前に、このファイルをいったん閉じます。

Close #1

ファイルをシーケンシャル出力モード (Output) で開きます。すべてのマシン上のプロセスからファイルを読み込みまたは書き込むことができます。

Open "TESTFILE" For Output Shared As #1

' 他のモードで開く前に、このファイルをいったん閉じます。

Close #1

ファイルを読み込み専用のバイナリ ファイル モード (Binary) で開きます。他のプロセスはこのファイルを読み込むことはできません。

Open "TESTFILE" For Binary Access Read Lock Read As #1


Print # ステートメントの例

次のプログラムでは、Print # ステートメントを使ってファイルにデータを書き込みます。

Open "TESTFILE" For Output As #1	' シーケンシャル出力モードで開きます。

Print #1, "これはテストです。"	' ファイルにテキストを書き込みます。

Print #1,	' ファイルに空白行を挿入します。

Print #1, "Zone 1"; Tab ; "Zone 2"	' 2 つの印字領域に分けて書き込みます。

Print #1, "笑って" ; " " ; "お仕事"	' 文字列の間にスペースを挿入します。

Print #1, Spc(5) ; "スペース 5 文字"	' 文字の前にスペースを 5 個挿入します。

Print #1, Tab(10) ; "笑って"	' 10 桁めに文字列を書き込みます。

' ブール値、日付、Null 値、エラー値を割り当てます。

MyBool = False : MyDate = #February 12, 1969# : MyNull = Null

MyError = CVErr(32767)

' True, False, Null 値, エラー値はそれぞれ、国別情報の設定によって変換されます。

' 日付リテラルは短い形式 (コントロールパネルで設定) を使って書き込みます。

Print #1, MyBool ; " はブール値です。"

Print #1, MyDate ; " は日付です。"

Print #1, MyNull ; " は Null 値です。"

Print #1, MyError ; " はエラー値です。"

Close #1	' ファイルを閉じます。


Put ステートメントの例

次のプログラムでは、Put ステートメントを使ってデータをファイルに書き込みます。ユーザー定義の Record 型のレコード 5 つをファイルに書き込みます。

Type Record	' ユーザー定義型を定義します。

ID As Integer

Name As String * 20

End Type

Dim MyRecord As Record	' 変数を宣言します。

' ファイルをランダム アクセス モードで開きます。

Open "TESTFILE" For Random As #1 Len = Len(MyRecord)

For RecordNumber = 1 To 5	' ループを 5 回繰り返します。

MyRecord.ID = RecordNumber	' ID を定義します。

MyRecord.Name = "My Name" & RecordNumber	' 文字列を作成します。

Put #1, RecordNumber, MyRecord	' レコードを書き込みます。

Next RecordNumber

Close #1	' ファイルを閉じます。


Reset ステートメントの例

次のプログラムでは、Reset ステートメントを使って開いているファイルをすべて閉じて、ファイル バッファに残っている内容をディスクに書き込みます。この例では、バリアント型 (Variant) の変数 FileNumber を、文字列およびと数値として使っています。

For FileNumber = 1 To 5	' ループを 5 回繰り返します。

' ファイルをシーケンシャル出力モードで開きます。変数 FileNumber は、

' # 付きで文字列 TEST の後に付加されます。

Open "TEST" & FileNumber For Output As #FileNumber

Write #FileNumber, "笑って、お仕事"	' ファイルに書き込みます。

Next FileNumber

Reset	' ファイルを閉じ、内容をディスクに

' 書き込みます。


Seek 関数の例

次のプログラムでは、Seek 関数を使ってファイル内の現在位置を返します。ファイル TESTFILE は、ユーザー定義の Record 型のレコードが 5 つ含まれるファイルです。

Type Record	' ユーザー定義型を定義します。

ID As Integer

Name As String * 20

End Type

ランダム アクセス モード (Random) で開いたファイルでは、Seek 関数は読み書きできる次のレコードの番号を返します。

Dim MyRecord As Record	' 変数を宣言します。

' ファイルをランダム アクセス モードで開きます。

Open "TESTFILE" For Random As #1 Len = Len(MyRecord)

Do While Not EOF(1)	' ファイルの終端までループを繰り返します。

Get #1, , MyRecord	' 次のレコードを読み込みます。

Debug.Print Seek(1)	' レコードの番号をデバッグ ウィンドウに

' 表示します。

Loop

Close #1	' ファイルを閉じます。

ランダム アクセス モード以外のモードで開いたファイルでは、Seek 関数は読み書きする次のバイト位置を返します。ファイル TESTFILE は、複数のテキスト行のあるファイルとします。

' ファイルをシーケンシャル入力モードで開きます。

Open "TESTFILE" For Input As #1

Do While Not EOF(1)	' ファイルの終端までループを繰り返します。

MyChar = Input(1, #1)	' データの次の文字を読み込みます。

Debug.Print Seek(1)	' 位置をデバッグ ウィンドウに表示します。

Loop

Close #1	' ファイルを閉じます。


Seek ステートメントの例

次のプログラムでは、Seek ステートメントを使ってファイル内で読み書きする次の位置を設定します。ファイル TESTFILE は、ユーザー定義の Record 型のレコードが含まれるファイルです。

Type Record	' ユーザー定義型を定義します。

ID As Integer

Name As String * 20

End Type

ランダム アクセス モード (Random) で開いたファイルでは、Seek ステートメントは次に読み書きするレコード番号を設定します。

Dim MyRecord As Record	' 変数を宣言します。

' ファイルをランダム アクセス モードで開きます。

Open "TESTFILE" For Random As #1 Len = Len(MyRecord)

MaxSize = LOF(1) \ Len(MyRecord)	' ファイル内のレコード数を取得します。

' ループを使ってすべてのレコードを逆から読み込みます。

For RecordNumber = MaxSize To 1 Step - 1

Seek #1, RecordNumber	' 位置を設定します。

Get #1, , MyRecord	' レコードを読み込みます。

Next RecordNumber

Close #1	' ファイルを閉じます。

ランダム アクセス モード以外のモードで開いたファイルでは、Seek ステートメントは読み書きする次のバイト位置を設定します。ファイル TESTFILE は、複数のテキスト行のあるファイルとします。

' ファイルをシーケンシャル入力モードで開きます。

Open "TESTFILE" For Input As #1

MaxSize = LOF(1)	' ファイルの大きさをバイト数で取得します。

' ループを使ってすべての文字を逆から読み込みます。

For NextChar = MaxSize To 1 Step -1

Seek #1, NextChar	' 位置を設定します。

MyChar = Input(1, #1)	' 文字を読み込みます。

Next NextChar

Close #1	' ファイルを閉じます。


Spc 関数の例

次のプログラムでは、Spc 関数を使って出力ファイルとデバッグ ウィンドウ内の出力位置を移動します。

' Spc 関数は Print # ステートメントの中で使うことができます。

Open "TESTFILE" For Output As #1	' シーケンシャル出力モードで開きます。

Print #1, "ここから"; Spc(10); "ここまでの間に 10 個のスペースが挿入されます。"

Close #1	' ファイルを閉じます。

次のステートメントは、Print メソッドを使ってデバッグ ウィンドウにテキストを表示するときに、テキストの前にスペース 30 個を挿入します。

Debug.Print Spc(30); "30 個のスペースです。"


Tab 関数の例

次のプログラムでは、Tab 関数を使ってファイルまたはデバッグ ウィンドウ内の出力位置を移動します。

' Tab 関数は Print # ステートメントの中で使うことができます。

Open "TESTFILE" For Output As #1	' シーケンシャル出力モードで開きます。

' 次の単語は 20 桁めから表示します。

Print #1, "笑って"; Tab(20); "お仕事"

' 引数を省略すると、カーソルは次の出力位置に移動します。

Print #1, "笑って"; Tab ; "お仕事"

Close #1	' ファイルを閉じます。

Tab 関数は Print メソッドの中でも使うことができます。次のステートメントはテキストを 10 桁めから表示します。

Debug.Print Tab(10); "10 桁めから表示。"


Width # ステートメントの例

次のプログラムでは、Width # ステートメントを使ってファイルの出力行の幅を設定します。

Open "TESTFILE" For Output As #1	' シーケンシャル出力モードで開きます。

Width #1, 5	' 出力行の幅を 5 に設定します。

For I = 0 To 9	' ループを 10 回繰り返します。

Print #1, Chr(48 + I);	' 1 行に 5 文字ずつ表示します。

Next I

Close #1	' ファイルを閉じます。


Write # ステートメントの例

次のプログラムでは、Write # ステートメントを使ってシーケンシャル ファイルにデータを書き込みます。

Open "TESTFILE" For Output As #1	' シーケンシャル出力モードで開きます。

Write #1, "Hello World", 234	' 書き込むデータはカンマで区切られます。

Write #1,	' 空白行を挿入します。

' ブール値、日付、Null 値、エラー値を割り当てます。

MyBool = False : MyDate = #February 12, 1969# : MyNull = Null

MyError = CVErr(32767)

' ブール値のデータは #TRUE# または #FALSE# として書き込みます。

' 日付リテラルは共通日付形式で書き込みます。たとえば、共通日付形式 #1994-07-13#

' は 1994 年 7 月 13 日を表します。Null 値のデータは #NULL# として書き込みます。

' エラー データは #ERROR errorcode# として書き込みます。

Write #1, MyBool ; " はブール値です。"

Write #1, MyDate ; " は日付です。"

Write #1, MyNull ; " は Null 値です。"

Write #1, MyError ; " はエラー値です。"

Close #1	' ファイルを閉じます。


ChDir ステートメントの例

次のプログラムでは、ChDir ステートメントを使って、現在のディレクトリを変更します。

' 現在のディレクトリを "MYDIR" に変更します。

ChDir "MYDIR"

' 現在のドライブは "C:" であるとします。次のステートメントはドライブ

' "D:" の現在のディレクトリを変更します。現在のドライブは "C:" のままです。

ChDir "D:\WINDOWS\SYSTEM"


ChDrive ステートメントの例

次のプログラムでは、ChDrive ステートメントを使って、現在のドライブを変更します。

ChDrive "D"	' "D" を現在のドライブにします。


CurDir 関数の例

次のプログラムでは、CurDir 関数を使って、現在のパスを求めます。

' C ドライブの現在のパスは "C:\WINDOWS\SYSTEM" であるとします。

' D ドライブの現在のパスは "D:\EXCEL" であるとします。

' 現在のドライブは C ドライブであるとします。

MyPath = CurDir	' "C:\WINDOWS\SYSTEM" を返します。

MyPath = CurDir("C")	' "C:\WINDOWS\SYSTEM" を返します。

MyPath = CurDir("D")	' "D:\EXCEL" を返します。


Dir 関数の例

次のプログラムでは、Dir 関数を使って、指定したファイルまたはディレクトリがあるかどうかを確認します。

' "WIN.INI" が存在する場合、そのファイル名を返します。

MyFile = Dir("C:\WINDOWS\WIN.INI")

' 指定した拡張子を持つファイル名を返します。複数の *.INI ファイルが

' 存在すると、最初に見つかったファイル名を返します。

MyFile = Dir("C:\WINDOWS\*.INI")

' 引数を指定せずに再度 Dir 関数を呼び出すと、同じディレクトリにある次の *.INI

' ファイルを返します。

MyFile = Dir

' 隠しファイル属性を持つ *.TXT ファイルで、最初に見つかった

' ファイル名を返します。

MyFile = Dir("*.TXT", vbHidden)

' C:\ 内のディレクトリの名前を表示します。

MyPath = "c:\"	' パスを設定します。

MyName = Dir(MyPath, vbDirectory)	' 最初のディレクトリ名を返します。

Do While MyName <> ""	' ループを開始します。

' 現在のディレクトリと親ディレクトリは無視します。

If MyName <> "." And MyName <> ".." Then

' ビット単位の比較を行い、MyName がディレクトリかどうかを調べます。

If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then

Debug.Print MyName	' ディレクトリであれば

End If	' それを表示します。

End If

MyName = Dir	' 次のディレクトリ名を返します。

Loop


FileCopy ステートメントの例

次のプログラムでは、FileCopy ステートメントを使ってファイルをコピーします。この例のファイル SRCFILE には、データが格納されているとします。

SourceFile = "SRCFILE"	' コピー元のファイル名を指定します。

DestinationFile = "DESTFILE"	' コピー先のファイル名を指定します。

FileCopy SourceFile, DestinationFile	' ファイルをコピーします。


FileDateTime 関数の例

次のプログラムでは、FileDateTime 関数を使ってファイルが作成または最後に変更された日付と時刻を求めます。表示される日付と時刻の形式は国別情報の設定によって異なります。

' TESTFILE が最後に更新された日付は 1993 年 2 月 12 日

' 午後 4 時 35 分 47 秒であるとします。

' 国別情報の設定は "日本/日本語" であるとします。

MyStamp = FileDateTime("TESTFILE")	' "93/2/12 4:35:47 PM" を返します。


FileLen 関数の例

次のプログラムでは、FileLen 関数を使ってファイルの長さをバイト単位で求めます。この例の、TESTFILE には、データが格納されているとします。

MySize = FileLen("TESTFILE")	' ファイルの長さをバイト数で返します。


GetAttr 関数の例

次のプログラムでは、GetAttr 関数を使ってファイルおよびディレクトリの属性を求めます。

' TESTFILE は隠しファイルであるとします。

MyAttr = GetAttr("TESTFILE")	' 2 を返します。

' TESTFILE が隠しファイルの場合は 0 以外の値を返します。

Debug.Print MyAttr And vbHidden

' TESTFILE は隠しファイルで読み取り専用であるとします。

MyAttr = GetAttr("TESTFILE")	' 3 を返します。

' TESTFILE が隠しファイルの場合は 0 以外の値を返します。

Debug.Print MyAttr And (vbHidden + vbReadOnly)

' MYDIR はディレクトリであるとします。

MyAttr = GetAttr("MYDIR")	' 16 を返します。


Kill ステートメントの例

次のプログラムでは、Kill ステートメントを使ってファイルをディスクから消去します。

' ファイル TESTFILE にはデータが格納されているとします。

Kill "TestFile"	' ファイルを削除します。

' 現在のディレクトリにあるすべての *.TXT ファイルを削除します。

Kill "*.TXT"


MkDir ステートメントの例

次のプログラムでは、MkDir ステートメントを使ってディレクトリを作成します。ドライブが指定されない場合、新規のディレクトリは現在のドライブに作成されます。

MkDir "MYDIR"	' ディレクトリを作成します。


Name ステートメントの例

次のプログラムでは、Name ステートメントを使ってファイルの名前を変更します。この例では、指定するディレクトリは既に存在するとします。

' ファイル名を定義します。

OldName = "OLDFILE": NewName = "NEWFILE"

Name OldName As NewName	' ファイル名を変更します。

OldName = "C:\MYDIR\OLDFILE": NewName = "C:\YOURDIR\NEWFILE"

Name OldName As NewName	' ファイルの移動と名前の変更を行います。


RmDir ステートメントの例

次のプログラムでは、RmDir ステートメントを使って既に存在するディレクトリを削除します。

' MYDIR は空のディレクトリであるとします。

RmDir "MYDIR"	' MYDIR を削除します。


SetAttr ステートメントの例

次のプログラムでは、SetAttr ステートメントを使ってファイルの属性を設定します。

' ファイル TESTFILE を隠しファイルに設定します。

SetAttr "TESTFILE", vbHidden

ファイル TESTFILE を隠しファイル、読み取り専用に設定します。

SetAttr "TESTFILE", vbHidden + vbReadOnly


IsArray 関数の例

次のプログラムでは、IsArray 関数を使って変数が配列変数かどうかを調べます。

Dim MyArray(1 To 5) As Integer	' 配列変数を宣言します。

YourArray = Array(1, 2, 3)	' Array 関数を使用します。

MyCheck = IsArray(MyArray)	' 真 (True) を返します。

MyCheck = IsArray(YourArray)	' 真 (True) を返します。


IsDate 関数の例

次のプログラムでは、IsDate 関数を使って数式が日付に変換できるかどうかを調べます。

MyDate = "1969,2,12" : YourDate = #2/12/69# : NoDate = "こんにちは"

MyCheck = IsDate(MyDate)	' 真 (True) を返します。

MyCheck = IsDate(YourDate)	' 真 (True) を返します。

MyCheck = IsDate(NoDate)	' 偽 (False) を返します。


IsEmpty 関数の例

次のプログラムでは、IsEmpty 関数を使って変数が初期化されているかどうかを調べます。

MyCheck = IsEmpty(MyVar)	' 真 (True) を返します。

MyVar = Null	' Null 値を代入します。

MyCheck = IsEmpty(MyVar)	' 偽 (False) を返します。

MyVar = Empty	' Empty 値を代入します。

MyCheck = IsEmpty(MyVar)	' 真 (True) を返します。


IsError 関数の例

次のプログラムでは、IsError 関数を使って数式がエラー値であるかどうかを調べます。ユーザー定義の Function プロシージャの戻り値としてエラー値 (VarType 10) を戻すには、CVErr 関数を使います。この例では、ユーザー定義の Function プロシージャを UserFunction、そのプロシージャの戻り値を CVErr(32767) とします。32767 はユーザー定義のエラー番号です。

ReturnVal = UserFunction()

MyCheck = IsError(ReturnVal)	' 真 (True) を返します。


IsMissing 関数の例

次のプログラムでは、IsMissing 関数を使って省略可能な引数がユーザー定義プロシージャに渡されたかどうかを調べます。

' 次のステートメントはユーザー定義の Function プロシージャを呼び出します。

ReturnValue = ReturnTwice()	' Null 値を返します。

ReturnValue = ReturnTwice(2)	' 4 を返します。

' Function プロシージャの定義。

Function ReturnTwice(Optional A)

If IsMissing(A) Then

' 引数が省略されているときは Null 値を返します。

ReturnTwice = Null

Else

' 引数が指定されているときはその値を 2 倍します。

ReturnTwice = A * 2

End If

End Function


IsNull 関数の例

次のプログラムでは、IsNull 関数を使って変数の値が Null 値かどうかを調べます。

MyCheck = IsNull(MyVar)	' 偽 (False) を返します。

MyVar = ""

MyCheck = IsNull(MyVar)	' 偽 (False) を返します。

MyVar = Null

MyCheck = IsNull(MyVar)	' 真 (True) を返します。


IsNumeric 関数の例

次のプログラムでは、IsNumeric 関数を使って変数が数値として評価できるかどうかを調べます。

MyVar = "53"	' 値を代入します。

MyCheck = IsNumeric(MyVar)	' 真 (True) を返します。

MyVar = "459.95"	' 値を代入します。

MyCheck = IsNumeric(MyVar)	' 真 (True) を返します。

MyVar = "45 Help"	' 値を代入します。

MyCheck = IsNumeric(MyVar)	' 偽 (False) を返します。


IsObject 関数の例

次のプログラムでは、IsObject 関数を使って変数が有効なオブジェクトを参照しているかどうかを調べます。MyObject と YourObject は同じ型のオブジェクト変数です。変数名は説明する目的で一般的な名前を使っています。

Dim MyInt As Integer	' 変数を宣言します。

Dim MyObject As Object

Set YourObject = MyObject	' オブジェクト参照を設定します。

MyCheck = IsObject(YourObject)	' 真 (True) を返します。

MyCheck = IsObject(MyInt)	' 偽 (False) を返します。


TypeName 関数の例

次のプログラムでは、TypeName 関数を使って変数に関する情報を取得します。

' 変数を宣言します。

Dim StrVar As String, IntVar As Integer, CurVar As Currency

Dim ArrayVar (1 To 5) As Integer

NullVar = Null	' Null 値を代入します。

MyType = TypeName(StrVar)	' "String" を返します。

MyType = TypeName(IntVar)	' "Integer" を返します。

MyType = TypeName(CurVar)	' "Currency" を返します。

MyType = TypeName(NullVar)	' "Null" を返します。

MyType = TypeName(ArrayVar)	' "Integer()" を返します。


VarType 関数の例

次のプログラムでは、VarType 関数を使って変数の内部処理形式を調べます。

' 変数を初期化します。

IntVar = 459: StrVar = "笑って、お仕事": DateVar = #69/2/12#

MyCheck = VarType(IntVar)	' 2 を返します。

MyCheck = VarType(DateVar)	' 7 を返します。

MyCheck = VarType(StrVar)	' 8 を返します。


Abs 関数の例

次のプログラムでは、Abs 関数を使って、指定した数値の絶対値を計算します。

MyNumber = Abs(50.3)	' 50.3 を返します。

MyNumber = Abs(-50.3)	' 50.3 を返します。


Atn 関数の例

次のプログラムでは、Atn 関数を使ってπの値を計算します。

pi = 4 * Atn(1)	' πの値を計算します。


Cos 関数の例

次のプログラムでは、Cos 関数を使って、指定した角度のコサインを計算します。

MyAngle = 1.3	' 角度 (ラジアン) を設定します。

MySecant = 1 / Cos(MyAngle)	' セカントを計算します。


Exp 関数の例

次のプログラムでは、Exp 関数を使って e を底とする指数関数を計算します。

MyAngle = 1.3	' 角度 (ラジアン) を設定します。

MyHSin = (Exp(MyAngle) - Exp(-1 * MyAngle)) / 2	' 双曲線サインを計算します。


Int 関数、Fix 関数の例

次のプログラムでは、Int 関数と Fix 関数を使って数値の整数部を求めます。Int 関数は、引数として負の数を指定すると、その数値以下の負の整数値の中で最大の値を返します。Fix 関数は、引数として負の数を指定すると、その数値以上の整数値の中で最小の値を返します。

MyNumber = Int(99.8)	' 99 を返します。

MyNumber = Fix(99.2)	' 99 を返します。

MyNumber = Int(-99.8)	' -100 を返します。

MyNumber = Fix(-99.8)	' -99 を返します。

MyNumber = Int(-99.2)	' -100 を返します。

MyNumber = Fix(-99.2)	' -99 を返します。


Log 関数の例

次のプログラムでは、Log 関数を使って、指定した数値の自然対数を計算します。

MyAngle = 1.3	' 角度 (ラジアン) を設定します。

MyLog = Log(MyAngle + Sqr(MyAngle * MyAngle + 1))	' 双曲線サインの逆関数を計算します。


Randomize ステートメントの例

次のプログラムでは、Randomize ステートメントを使って乱数発生ルーチンを初期化します。引数を省略すると、Randomize ステートメントは新しいシード値として Timer 関数の戻り値を使用します。

Randomize	' 乱数発生ルーチンの初期化。

MyValue = Int((6 * Rnd) + 1)	' 1 から 6 までの乱数を発生させます。


Rnd 関数の例

次のプログラムでは、Rnd 関数を使って 1 から 6 までの乱数整数を発生させます。

MyValue = Int((6 * Rnd) + 1)	' 1 から 6 までの乱数整数を発生させます。


Sgn 関数の例

次のプログラムでは、Sgn 関数を使って数値の符号を調べます。

MyVar1 = 12: MyVar2 = -2.4: MyVar3 = 0

MySign = Sgn(MyVar1)	' 1 を返します。

MySign = Sgn(MyVar2)	' -1 を返します。

MySign = Sgn(MyVar3)	' 0 を返します。


Sin 関数の例

次のプログラムでは、Sin 関数を使って指定した角度のサインを計算します。

MyAngle = 1.3	' 角度 (ラジアン) を設定します。

MyCosecant = 1 / Sin(MyAngle)	' コセカントを計算します。


Sqr 関数の例

次のプログラムでは、Sqr 関数を使って、指定した数値の平方根を計算します。

MySqr = Sqr(4)	' 2 を返します。

MySqr = Sqr(23)	' 4.79583152331272 を返します。

MySqr = Sqr(0)	' 0 を返します。

MySqr = Sqr(-4)	' 実行時エラーが発生します。


Tan 関数の例

次のプログラムでは、Tan 関数を使って、指定した角度のタンジェントを計算します。

MyAngle = 1.3	' 角度 (ラジアン) を設定します。

MyCotangent = 1 / Tan(MyAngle)	' コタンジェントを計算します。


AppActivate ステートメントの例

次のプログラムでは、AppActivate ステートメントを使ってアプリケーション ウィンドウをアクティブにします。なお、アプリケーションの実行に Shell ステートメントを使っていますが、指定されたパスにアプリケーションの実行プログラムが保存されていなければ、アプリケーションを実行することはできません。

AppActivate "Microsoft Word"	' Microsoft Word をアクティブにします。

' AppActivate ステートメントでは Shell 関数の戻り値を使うこともできます。

MyAppID = Shell("C:\WORD\WINWORD.EXE", 1)	' Microsoft Word を実行します。

AppActivate MyAppID	' Microsoft Word をアクティブにします。


Beep ステートメントの例

次のプログラムでは、Beep ステートメントを使ってコンピューターのスピーカを 3 回連続して鳴らします。

For I = 1 To 3	' ループを 3 回繰り返します。

Beep	' ビープ音を鳴らします。

Next I


InputBox 関数の例

次のプログラムでは、InputBox 関数を使って、ユーザーに値を入力させます。位置 x と y の指定を省略すると、ダイアログ ボックスは、水平軸および垂直軸に対して中央に自動的に配置されます。[OK] ボタンが選択されるか Enter キーが押されると、変数 MyValue にはユーザーの入力した値が入ります。[キャンセル] ボタンが選択されると、InputBox 関数は長さ 0 の文字列を返します。

Message = "1 から 3 までの値を入力してください。"	' 入力を求めるメッセージを設定します。

Title = "InputBox デモ"	' タイトルを設定します。

Default = "1"	' 既定値を設定します。

' メッセージ、タイトル、既定値を表示します。

MyValue = InputBox(Message, Title, Default)

' 状況依存のヘルプを設定します。ヘルプ ボタンが自動的に追加されます。

MyValue = InputBox(Message, Title, , , , "DEMO.HLP", 10)

' ダイアログ ボックスを位置 100,100 に表示します。

MyValue = InputBox(Message, Title, Default, 100, 100)


MsgBox 関数の例

次のプログラムでは、MsgBox 関数を使って、致命的なエラーが発生したときのエラー メッセージをダイアログ ボックスに表示します。このダイアログ ボックスには [はい] ボタンと [いいえ] ボタンがあり、[いいえ] ボタンが既定のボタンとして指定されています。MsgBox 関数の返す値は選択されたボタンによって決まります。ここでは、ファイル DEMO.HLP をコンテキスト番号 1000 のトピックのあるヘルプ ファイルと仮定します。

Msg = "続行しますか。"	' メッセージを定義します。

Style = vbYesNo + vbCritical + vbDefaultButton2	' ボタンを定義します。

Title = "MsgBox Demonstration"	' タイトルを定義します。

Help = "DEMO.HLP"	' ヘルプ ファイルを定義します。

Ctxt = 1000	' トピック コンテキストを定義します。

' メッセージを表示します。

Response = MsgBox(Msg, Style, Title, Help, Ctxt)

If Response = vbYes Then	' [はい] ボタンを選択した場合

MyString = "Yes"	' 所定の動作を実行します。

Else	' [いいえ] ボタンを選択した場合

MyString = "No"	' 所定の動作を実行します。

End If


RGB 関数の例

次のプログラムでは、RGB 関数を使って、色の RGB 値を表す整数を返します。アプリケーションの色を設定するメソッドやプロパティでは、RGB 値が使われます。この例で使っている MyObject オブジェクトは、RGB 関数について説明するためのサンプル オブジェクトです。MyObject という名前のオブジェクトが存在しない場合や、オブジェクトに Color プロパティがない場合は、エラーが発生します。

Red = RGB(255, 0, 0)	' 赤色の値を返します。

I = 75	' オフセットを初期化します。

RGBValue = RGB(I, 64 + I, 128 + I) 	' RGB(75, 139, 203) と同じ値です。

MyObject.Color = RGB(255, 0, 0)	' MyObject オブジェクトの Color プロパティを赤色に設定します。


SendKeys ステートメントの例

次のプログラムでは、Shell 関数を使って Microsoft Windows に付属している電卓アプリケーションを実行し、SendKeys ステートメントでキーストロークを転送して、数値の加算を行ってから電卓アプリケーションを終了します。このプログラムを実行するには、コードを任意のプロシージャに貼り付けてから、そのプロシージャを実行してください。なお、AppActivate ステートメントによってフォーカスが電卓アプリケーションに与えられるため、このコードをシングル ステップで実行することはできません。

ReturnValue = Shell("Calc.exe", 1)	' 電卓を実行します。

AppActivate ReturnValue 	' 電卓をアクティブにします。

For I = 1 To 100	' ループ カウンタを設定します。

SendKeys I & "{+}", True	' 電卓にキー コードを転送して

Next I	' I の値を加算します。

SendKeys "=", True	' 和を求めます。

SendKeys "%{F4}", True	' Alt+F4 キーを転送して電卓を終了します。


｛bmr copyprnt.mrb}^ 演算子の例
^ 演算子の例

次のプログラムでは、^ 演算子を使って数値のべき乗を求めます。

MyValue = 2 ^ 2	' 4 を返します。

MyValue = 3 ^ 3 ^ 3	' 19683 を返します。

MyValue = (-5) ^ 3	' -125 を返します。


+ 演算子の例

次のプログラムでは、+ 演算子を使って数値の和を求めます。+ 演算子は文字列の連結にも使えますが、コードの意味があいまいにならないように、文字列の連結にはなるべく & 演算子を使います。+ 演算子を使って作成された式の構成要素に文字列と数値が混在している場合は、算術演算の結果が代入されます。+ 演算子によって文字列が連結されるのは、式の構成要素がすべて文字列である場合だけです。

MyNumber = 2 + 2	' 4 を返します。

MyNumber = 4257.04 + 98112	' 102,369.04 を返します。

Var1 = "34": Var2 = 6	' 数値変数と文字列変数を初期化します。

MyNumber = Var1 + Var2	' 40 を返します。

Var1 = "34": Var2 = "6"	' 文字列変数を初期化します。

MyNumber = Var1 + Var2	' "346" を返します (文字列の連結)。


- 演算子の例

次のプログラムでは、- 演算子を使って 2 つの数値の差を求めます。

MyResult = 4 - 2	' 2 を返します。

MyResult = 459.35 - 334.90	' 124.45 を返します。


* 演算子の例

次のプログラムでは、* 演算子を使って 2 つの数値の積を求めます。

MyValue = 2 * 2	' 4 を返します。

MyValue = 459.35 * 334.90 	' 153,836.315 を返します。


/ 演算子の例

次のプログラムでは、/ 演算子を使って数値の商を浮動小数点数で求めます。

MyValue = 10 / 4	' 2.5 を返します。

MyValue = 10 / 3	' 3.333333 を返します。


\ 演算子の例

次のプログラムでは、\ 演算子を使って数値の商を整数で求めます。

MyValue = 11 \ 4	' 2 を返します。

MyValue = 9 \ 3	' 3 を返します。

MyValue = 100 \ 3	' 33 を返します。


Mod 演算子の例

次のプログラムでは、Mod 演算子を使って 2 つの数値の除算を行い、剰余を求めます。どちらかの数値が浮動小数点数のときは、整数に丸められます。

MyResult = 10 Mod 5	' 0 を返します。

MyResult = 10 Mod 3	' 1 を返します。

MyResult = 12 Mod 4.3	' 0 を返します。

MyResult = 12.6 Mod 5	' 3 を返します。


& 演算子の例

次のプログラムでは、& 演算子を使って文字列を連結します。

MyStr = "Hello" & " World"	' "Hello World" を返します。

MyStr = "Check " & 123 & " Check"	' "Check 123 Check" を返します。


比較演算子の例

次のプログラムでは、各種の比較演算子を使って式を比較する方法を示します。

MyResult = (45 < 35)	' 偽 (False) を返します。

MyResult = (45 = 45)	' 真 (True) を返します。

MyResult = (4 <> 3)	' 真 (True) を返します。

MyResult = ("5" > "4")	' 真 (True) を返します。

Var1 = "5": Var2 = 4	' 変数を初期化します。

MyResult = (Var1 > Var2)	' 真 (True) を返します。

Var1 = 5: Var2 = Empty

MyResult = (Var1 > Var2)	' 真 (True) を返します。

Var1 = 0: Var2 = Empty

MyResult = (Var1 = Var2)	' 真 (True) を返します。


And 演算子の例

次のプログラムでは、And 演算子を使って 2 つの式の論理積を求めます。

A = 10: B = 8: C = 6: D = Null	' 変数の初期化。

MyCheck = A > B And B > C	' 真 (True) を返します。

MyCheck = B > A And B > C	' 偽 (False) を返します。

MyCheck = A > B And B > D	' Null を返します。

MyCheck = A And B	' 8 を返します (ビット単位の比較)。


Eqv 演算子の例

次のプログラムでは、Eqv 演算子を使って 2 つの式の論理等価演算を行います。

A = 10: B = 8: C = 6: D = Null	' 変数の初期化。

MyCheck = A > B Eqv B > C	' 真 (True) 返します。

MyCheck = B > A Eqv B > C	' 偽 (False) を返します。

MyCheck = A > B Eqv B > D	' Null を返します。

MyCheck = A Eqv B	' -3 を返します (ビット単位の比較)。


Imp 演算子の例

次のプログラムでは、Imp 演算子を使って 2 つの式の論理包含演算を行います。

A = 10: B = 8: C = 6: D = Null	' 変数の初期化。

MyCheck = A > B Imp B > C	' 真 (True) を返します。

MyCheck = A > B Imp C > B	' 偽 (False) を返します。

MyCheck = B > A Imp C > B	' 真 (True) を返します。

MyCheck = B > A Imp C > D	' 真 (True) を返します。

MyCheck = C > D Imp B > A	' Null を返します。

MyCheck = B Imp A	' -1 を返します (ビット単位の比較)。


Not 演算子の例

次のプログラムでは、Not 演算子を使って式の論理否定を求めます。

A = 10: B = 8: C = 6: D = Null	' 変数の初期化。

MyCheck = Not(A > B)	' 偽 (False) を返します。

MyCheck = Not(B > A)	' 真 (True) を返します。

MyCheck = Not(C > D)	' Null を返します。

MyCheck = Not A	' -11 を返します (ビット単位の比較)。


Or 演算子の例

次のプログラムでは、Or 演算子を使って 2 つの式の論理和を求めます。

A = 10: B = 8: C = 6: D = Null	' 変数の初期化。

MyCheck = A > B Or B > C	' 真 (True) を返します。

MyCheck = B > A Or B > C	' 真 (True) を返します。

MyCheck = A > B Or B > D	' 真 (True) を返します。

MyCheck = B > D Or B > A	' Null を返します。

MyCheck = A Or B	' 10 を返します (ビット単位の比較)。


Xor 演算子の例

次のプログラムでは、Xor 演算子を使って 2 つの式の排他的論理和を求めます。

A = 10: B = 8: C = 6: D = Null	' 変数の初期化。

MyCheck = A > B Xor B > C	' 偽 (False) を返します。

MyCheck = B > A Xor B > C	' 真 (True) を返します。

MyCheck = B > A Xor C > B	' 偽 (False) を返します。

MyCheck = B > D Xor A > B	' Null を返します。

MyCheck = A Xor B	' 2 を返します (ビット単位の比較)。


Like 演算子の例

次のプログラムでは、Like 演算子を使って文字列とパターンを比較します。

MyCheck = "aBBBa" Like "a*a"	' 真 (True) を返します。

MyCheck = "F" Like "[A-Z]"	' 真 (True) を返します。

MyCheck = "F" Like "[!A-Z]"	' 偽 (False) を返します。

MyCheck = "a2a" Like "a#a"	' 真 (True) を返します。

MyCheck = "aM5b" Like "a[L-P]#[!c-e]"	' 真 (True) を返します。

MyCheck = "BAT123khg" Like "B?T*"	' 真 (True) を返します。

MyCheck = "CAT123khg" Like "B?T*"	' 偽 (False) を返します。


Is 演算子の例

次のプログラムでは、Is 演算子を使ってオブジェクトを参照する 2 つの変数を比較します。なお、オブジェクト変数には説明する目的で一般的な名前を使っています。

Set YourObject = MyObject	' オブジェクト変数を代入します。

Set ThisObject = MyObject

Set ThatObject = OtherObject

MyCheck = YourObject Is ThisObject	' 真 (True) を返します。

MyCheck = ThatObject Is ThisObject	' 偽 (False) を返します。

' MyObject と OtherObject が異なる場合。

MyCheck = MyObject Is ThatObject	' 偽 (False) を返します。


Chr 関数の例

次のプログラムでは、Chr 関数を使って、指定した文字コードに対応する文字を返します。

MyChar = Chr(65)	' A を返します。

MyChar = Chr(97)	' a を返します。

MyChar = Chr(62)	' > を返します。

MyChar = Chr(37)	' % を返します。


Format 関数の例

次のプログラムでは、Format 関数を使って、定義済み書式やユーザー定義の書式に従って、各種の値を変換します。日付の区切り記号 (/)、時刻の区切り記号 (:)、AM/PM リテラルの変換後の書式は、実行時のシステムの国別情報の設定によって異なります。開発環境で日付と時刻が表示されるときには、コード記述時の国別情報で指定されている日付と時刻の短い書式が使われます。実行時に日付と時刻が表示されるときは、オペレーティング システムの国別情報で指定されている日付と時刻の短い形式が使われます。したがって、実行時に表示される書式は、コード記述時の国別情報の設定とは異なる場合があります。次の例では、[英語/アメリカ] の設定を前提としています。

変数 MyTime と変数 MyDate を開発環境で表示すると、システムの日付と時刻の短い書式の現在の設定が使われます。

MyTime = #17:04:23#

MyDate = #January 27, 1993#

' システムで定義されている時刻の長い形式を使ってシステムの現在の時刻を返します。

MyStr = Format(Time, "Long Time")

' システムで定義されている日付の長い形式を使ってシステムの現在の日付を返します。

MyStr = Format(Date, "Long Date")

MyStr = Format(MyTime, "h:m:s")	' "17:4:23" を返します。

MyStr = Format(MyTime, "hh:mm:ss AMPM")	' "05:04:23 PM" を返します。

MyStr = Format(MyDate, "dddd, mmm d yyyy")	' "Wednesday,Jan 27 1993" を返します。

' 書式を指定しない場合は文字列を返します。

MyStr = Format(23)	' "23" を返します。

' ユーザー定義の書式。

MyStr = Format(5459.4, "##,##0.00")	' "5,459.40" を返します。

MyStr = Format(334.9, "###0.00")	' "334.90" を返します。

MyStr = Format(5, "0.00%")	' "500.00%" を返します。

MyStr = Format("HELLO", "<")	' "hello" を返します。

MyStr = Format("This is it", ">")	' "THIS IS IT" を返します。


Hex 関数の例

次のプログラムでは、Hex 関数を使って、数値を 16 進数に変換した値を返します。

MyHex = Hex(5)	' 5 を返します。

MyHex = Hex(10)	' A を返します。

MyHex = Hex(459)	' ICB を返します。


InStr 関数の例

次のプログラムでは、InStr 関数を使って文字列の中から別の文字列を検索し、最初に見つかった位置を返します。

SearchString ="XXpXXpXXPXXP"	' 検索対象の文字列。

SearchChar = "P"	' "P" を検索します。

' 文字単位の比較を位置 4 から開始すると、4 が返されます。

MyPos = InStr(4, SearchString, SearchChar, 1)

' ビット単位の比較を位置 1 から開始すると、9 が返されます。

MyPos = InStr(1, SearchString, SearchChar, 0)

' (最後の引数を省略すると) 既定のビット単位の比較を行います。

MyPos = InStr(SearchString, SearchChar)	' 9 を返します。

MyPos = InStr(1, SearchString, "W")	' o を返します。


LCase 関数の例

次のプログラムでは、LCase 関数を使って文字列をすべて小文字に変換したものを返します。

Uppercase = "Hello World 1234"	' 変換対象の文字列。

Lowercase = LCase(UpperCase)	' "hello world 1234" を返します。


Left 関数の例

次のプログラムでは、Left 関数を使って文字列の左端から指定したバイト数分の文字を返します。

AnyString = "Hello World"	' 文字列を定義します。

MyStr = Left(AnyString, 1)	' "H" を返します。

MyStr = Left(AnyString, 7)	' "Hello W" を返します。

MyStr = Left(AnyString, 20)	' "Hello World" を返します。


Len 関数の例

次のプログラムでは、Len 関数を使って文字列の文字数、または変数の保存に必要なバイト数を返します。CustomerRecord を定義する Type...End Type ブロックをクラス モジュール内で記述する場合、このブロックの直前にキーワード Private を付ける必要があります。標準モジュールでは、Type ステートメントでパブリックなユーザー定義型を定義できます。標準モジュールを作成するには、[挿入] - [標準モジュール] コマンドを選択してください。

Type CustomerRecord	' ユーザー定義型を定義します。

ID As Integer	' この定義は標準モジュール内に

Name As String * 10	' 記述します。

Address As String * 30

End Type

Dim Customer As CustomerRecord	' 変数を宣言します。

Dim MyInt As Integer, MyCur As Currency

MyString = "Hello World"	' 変数を初期化します。

MyLen = Len(MyInt)	' 2 を返します。

MyLen = Len(Customer)	' 42 を返します。

MyLen = Len(MyString)	' 11 を返します。

MyLen = Len(MyCur)	' 8 を返します。


LSet ステートメントの例

次のプログラムでは、LSet ステートメントを使って文字列変数内の文字列を左詰めにします。LSet ステートメントでは、ユーザー定義型の変数を互換性のある他のユーザー定義型の変数にコピーすることもできますが、このような用法は避けてください。データ構造体の実装はプラットフォームごとに異なるため、ユーザー定義型間のコピーに使われている LSet ステートメントの移植性は保証できません。

MyString = "0123456789"	' 文字列を初期化します。

LSet MyString = "<-Left"	' MyString に "<-Left    " が格納されます。


LTrim、RTrim、および Trim 関数の例

次のプログラムでは、LTrim 関数と RTrim 関数を使って文字列変数の先頭と末尾の空白をそれぞれ削除します。また、Trim 関数を使って、文字列変数の先頭と末尾の空白を同時に削除します。

MyString = "  <-Trim->  "	' 文字列を初期化します。

TrimString = LTrim(MyString)	' TrimString は "<-Trim->  " です。

TrimString = RTrim(MyString)	' TrimString は "  <-Trim->" です。

TrimString = LTrim(RTrim(MyString))	' TrimString は "<-Trim->" です。

' Trim 関数を単独で使っても同様の結果になります。

TrimString = Trim(MyString)	' TrimString は "<-Trim->" です。


Mid 関数の例

次のプログラムでは、Mid 関数を使って文字列の中から指定した文字数分の文字を返します。

MyString = "Mid Function Demo"	' 文字列を作成します。

FirstWord = Mid(MyString, 1, 3)	' "Mid" を返します。

LastWord = Mid(MyString, 14, 4)	' "Demo" を返します。

MidWords = Mid(MyString, 5)	' "Function Demo" を返します。


Mid ステートメントの例

次のプログラムでは、Mid ステートメントを使って文字列変数の中の指定した文字数分の文字を他の文字列に置き換えます。

MyString = "野良犬が吠えた"	' 文字列を初期化します。

Mid(MyString, 5, 3) = "猫"	' MyString は "野良猫が吠えた" です。

Mid(MyString, 5) = "馬"	' MyString は "野良馬が吠えた" です。

Mid(MyString, 5) = "原で、"	' MyString は "野原で、吠えた" です。

Mid(MyString, 5, 3) = "良犬が鳴いた"	' MyString は "野良犬が鳴いた" です。


Oct 関数の例

次のプログラムでは、Oct 関数を使って、数値を 8 進数に変換した値を返します。

MyOct = Oct(4) 	' 4 を返します。

MyOct = Oct(8)	' 10 を返します。

MyOct = Oct(459)	' 713 を返します。


Right 関数の例

次のプログラムでは、Right 関数を使って文字列の右端から指定した文字数分の文字を返します。

AnyString = "笑ってお仕事"	' 文字列を定義します。

MyStr = Right(AnyString, 1)	' "事" を返します。

MyStr = Right(AnyString, 3)	' "お仕事" を返します。

MyStr = Right(AnyString, 20)	' "笑ってお仕事" を返します。


RSet ステートメントの例

次のプログラムでは、RSet ステートメントを使って文字列変数内の文字列を右詰めにします。

MyString = "0123456789"	' 文字列を初期化します。

RSet MyString = "Right->"	' MyString に "   Right->" を格納します。


Space 関数の例

次のプログラムでは、Space 関数を使って、指定した個数のスペースからなる文字列を返します。

' 10 個のスペースからなる文字列を返します。

MyString = Space(10)

' 2 つの文字列の間にスペースを 10 個挿入します。

MyString = "Hello" & Space(10) & "World"


Str 関数の例

次のプログラムでは、Str 関数を使って数値を文字列で表現した値を返します。数値を文字列に変換すると、符号を表示するためのスペースが先頭に常に確保されます。

MyString = Str(459)	' " 459" を返します。

MyString = Str(-459.65)	' "-459.65" を返します。

MyString = Str(459.001)	' " 459.001" を返します。


StrComp 関数の例

次のプログラムでは、StrComp 関数を使って文字列を比較した結果を返します。3 番めの引数に 1 を指定すると、文字単位で比較します。3 番めの引数に 0 を指定するか省略すると、ビット単位で比較します。

MyStr1 = "ABCD": MyStr2 = "abcd"	' 変数を定義します。

MyComp = StrComp(MyStr1, MyStr2, 1)	' 0 を返します。

MyComp = StrComp(MyStr1, MyStr2, 0)	' -1 を返します。

MyComp = StrComp(MyStr2, MyStr1)	' 1 を返します。


String 関数の例

String 関数を使って、指定した文字を指定した数だけ並べた文字列を返します。

MyString = String(5, "*")	' "*****" を返します。

MyString = String(5, 42)	' "*****" を返します。

MyString = String(10, "ABC")	' "AAAAAAAAAA" を返します。


UCase 関数の例

UCase 関数を使って文字列をすべて大文字に変換したものを返します。

LowerCase = "Hello World 1234"	' 変換対象の文字列。

UpperCase = UCase(LowerCase)	' "HELLO WORLD 1234" を返します。


名前が適切ではありません: <name>

関連項目

識別子が重複しているか、オブジェクトを特定する必要があります。このエラーの原因と解決法は次のとおりです。

同じ適用範囲 (スコープ) 内でも、異なるオブジェクトであれば同じ名前で要素を定義することができます。

この場合、その要素を参照するには、オブジェクト名とピリオド (.) を使って要素を特定します。次に例を示します。

object.property

モジュール レベルの識別子は、プロシージャ内でも同じ識別子を使用できます。ただし、プログラムの保守およびデバックが難しくなります。同じプロシージャ内でこれらの識別子を同時に参照する場合は、より広い適用範囲 (スコープ) を持つ項目を特定する必要があります。たとえば、MyModule というモジュール レベルの宣言セクションで変数 MyID を宣言し、同じモジュール内で同名のプロシージャ レベルの変数を宣言する場合は、モジュール レベルの変数に対する参照を特定する必要があります。

Dim MyID As String	'モジュール レベルでの宣言。

Sub MySub

MyModule.MyID = "これはモジュール レベルの変数です。"

Dim MyID As String	'プロシージャ レベルでの宣言。

MyID = "これはプロシージャ レベルの変数です。"

Debug.Print MyID

Debug.Print MyModule.MyID

End Sub

宣言セクションで宣言した識別子がプロシージャ名と重複する場合もあります。たとえば、モジュール レベルの変数 MyID を宣言してから、同名のプロシージャを定義すると、このエラーが発生します。

Public MyID

Sub MyID

. . .

End Sub

この場合は共通のモジュール名を特定するだけではあいまいさが残るので、変数名またはプロシージャ名を変更する必要があります。プロシージャ名は初期設定ではパブリック (Public) ですが、変数名はキーワード Public を指定して宣言しない限りプライベート (Private) であることに注意してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Public ステートメント

Private ステートメント

名前の二重定義の回避


ParamArray 引数に名前を指定して値を渡すことはできません。

関連項目

引数は ParamArray (任意の引数を渡す配列) の決められた位置に指定する必要があります。このエラーの原因と解決法は次のとおりです。

名前付き引数の構文が、プロシージャ呼び出しに使われています。

名前付き引数の構文は、ParamArray に含まれるような位置項目しか含まない引数では使用できません。ParamArray に含まれる要素の一部だけを指定するには、省略する要素の分だけカンマを指定する必要があります。たとえば、次の呼び出しでは Arg2 の後で ParamArray を指定しますが、ParamArray の 1 番め、3 番め、6 番めの要素にのみ値が渡されます。

MySub Arg1, Arg2, 7,, 44,,,3

注   引数 ParamArray は常に引数リストの最後の項目を表します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

ParamArray キーワード


引数は省略できません。(Error 449)

関連項目

引数の数や型は、構文どおりに指定する必要があります。このエラーの原因と解決法は次のとおりです。

引数の数が正しくありません。

必要な引数をすべて指定します。たとえば、Left 関数では、処理する文字列を指定する引数と、文字列の左端から取り出す文字数を指定する引数の 2 つの引数を指定します。どちらの引数も、Left 関数では省略できないので、必ず指定します。

省略できない引数が省略されています。

ユーザー定義のプロシージャの呼び出す場合、プロシージャを宣言するときに Optional として宣言した引数だけが省略可能です。プロシージャを呼び出すときに引数を指定するか、省略する引数を宣言セクションで Optional パラメータを宣言します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Left 関数

Optional キーワード


Set ﾌﾟﾛｼｰｼﾞｬの引数は省略できません。

関連項目

Property Let プロシージャと Property Set プロシージャは、プロパティに新しい値を指定するプロシージャです。このエラーの原因と解決法は次のとおりです。

プロパティの設定時に、値が正しい位置に指定されていません。

プロパティの設定値を、プロパティの値を設定する式の右辺に指定します。

プロシージャ定義内で式の右辺に指定される値を受け取るためのパラメータが定義されていないか、定義する位置が間違っています。

プロシージャ定義のパラメータ リスト内に、プロパティの設定値を受け取るためのパラメータを定義します。プロシージャが複数の引数をとるときには、プロパティに設定する値を示すパラメータをリストの最後に指定する必要があります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Property Let ステートメント

Property Set ステートメント


配列は既に宣言されています。

関連項目

静的配列の次元は一度しか指定できません。このエラーの原因と解決法は次のとおりです。

ReDim ステートメントを使って静的配列の次元を変更しようとしました。配列が動的配列の場合のみ、次元を変更できます。

ReDim ステートメントを削除するか、動的配列を使います。動的配列を定義するには、Dim、Public、Private、Static のいずれかのステートメントを使い、配列名のかっこ内を空にして指定します。次に例を示します。

Dim MyArray()

プロシージャ内では ReDim ステートメントまたは Static ステートメントを使い、要素数を変数で指定すると、動的配列を定義できます。

ReDim MyArray(n)

配列の次元を定義した後に Option Base ステートメントが指定されています。

Option Base ステートメントがすべての配列宣言よりも前に指定されていることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Dim ステートメント

Option Base ステートメント

Private ステートメント

Public ステートメント

ReDim ステートメント

Static ステートメント


配列の引数には ByRef がなければなりません。

関連項目

Dim、ReDim、または Static ステートメントで宣言した配列を、値渡し (ByVal) で渡すことはできません。このエラーの原因と解決法は次のとおりです。

配列全体を値渡し (ByVal) で渡そうとしました。

配列の個々の要素は値渡し (ByVal) で渡すことができますが、配列全体を渡すには参照渡し (ByRef) を使います。特に指定しない限り、参照渡し (ByRef) が使われることに注意してください。値渡し (ByVal) で渡さなければならない配列があり、配列の要素に対する変更が呼び出し側に影響しないようする必要がある場合、その配列の引数を固有のかっこで囲んで渡すか、または、次のようにバリアント型 (Variant) に代入して、そのバリアント型の変数をキーワード ByVal を指定して渡すことができます。

Dim MyVar As Variant

MyVar = OldArray()

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

ByRef キーワード

ByVal キーワード

Dim ステートメント

ReDim ステートメント

Static ステートメント

バリアント型 (Variant)


DLL が正しく呼び出せません。(Error 49)

関連項目

ダイナミック リンク ライブラリ (DLL) ルーチンに渡す引数は、そのルーチンで必要な引数と正確に一致する必要があります。引数の数、データ型、および引数の順序などは、呼び出し規約として規定されています。このエラーの原因と解決法は次のとおりです。

ダイナミック リンク ライブラリ (DLL) 内のルーチンに渡す引数のデータ型が正しくありません。

すべての引数のデータ型が、呼び出そうとしているルーチンの宣言で指定された型と一致していることを確認してください。

ダイナミック リンク ライブラリ (DLL) 内のルーチンに渡す引数の数が正しくありません。

呼び出すルーチンの宣言で指定されている引数の数と一致していることを確認してください。

ダイナミック リンク ライブラリ (DLL) 内のルーチンを呼び出すときに Pascal の呼び出し規約に従っていません。

DLL ルーチンが引数を値渡しで受け取るときは、ルーチンに対する宣言で引数に ByVal が指定されていることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

ByVal キーワード


ﾌｧｲﾙ ﾓｰﾄﾞが不正です。(Error 54)

関連項目

ファイルの入出力処理を行うためのステートメントは、対象となるファイルを開いたときの追加モード (Open ステートメントで指定したファイル モード) に適したものでなければなりません。このエラーの原因と解決法は次のとおりです。

Put ステートメントまたは Get ステートメントで、シーケンシャル ファイルを指定しています。

Put と Get ステートメントは、ランダム アクセス モードまたはバイナリ モードで開いたファイルでだけ使用できます。

Print # ステートメントで、シーケンシャル出力モード (Output または Append) 以外のモードで開いたファイルを指定しました。

別のステートメントを使ってデータをファイルに書き込むか、適切なモードでファイルをもう一度開いてください。

Input # ステートメントで、シーケンシャル入力モード (Input) 以外のモードで開いたファイルを指定しました。

別のステートメントを使ってデータをファイルから読み込むか、ファイルをシーケンシャル入力モードでもう一度開いてください。

読み取り専用ファイルに書き込もうとしました。

ファイルの属性を変更するか、そのファイルには書き込まないようにします。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Get ステートメント

Input # ステートメント

Open ステートメント

Print # ステートメント

Put ステートメント


ﾌｧｲﾙ名または番号が不正です。(Error 52)

関連項目

指定したファイルにアクセスしようとしたときに、エラーが発生しました。このエラーの原因と解決法は次のとおりです。

ステートメントで、次に示すファイル番号またはファイル名のファイルを参照しました。

Open ステートメントで指定されていないか、または Open ステートメントで指定された後で閉じられています。

Open ステートメントでファイル名を指定します。引数を指定せずに Close ステートメントを呼び出すと、現在開かれているすべてのファイルが閉じられ、すべてのファイル番号が無効になる可能性があるので注意してください。

ファイル番号が有効範囲内 (1 ～ 511) にありません。

アルゴリズムに従ってファイル番号を生成しているときは、各ファイル番号が有効かどうかを確認してください。

ファイル名またはファイル番号が無効です。

ファイル名は、オペレーティング システムの名前付け規則と Visual Basic のファイルの名前付け規則に準拠している必要があります。Microsoft Windows (Version 3.1 以前) では、次に示すファイルおよびディレクトリの名前付け規則に従います。

ファイルまたはディレクトリの名前は、名前と拡張子の 2 つの部分から構成されています。名前と拡張子は MYFILE.NEW のようにピリオドで区切ります。

名前は 8 文字以内、拡張子は 3 文字以内の文字列です。

名前の先頭の文字はアルファベットまたは数字である必要があります。名前には次に示す文字を除く、任意の大文字または小文字を使えます。ただしファイル名では大文字と小文字は区別されません。

文字	内容

.	ピリオド

"	ダブル クォーテーション

'	シングル クォーテーション

+	プラス記号

/	スラッシュ

\	円記号

[ ]	角かっこ

:	コロン

;	セミコロン

|	縦棒

=	等号

,	カンマ

名前にスペースを入れることはできません。次に示す名前は予約語で、ファイル名やディレクトリ名には使えません。CON、AUX、COM1、COM2、COM3、COM4、LPT1、LPT2、LPT3、PRN、NUL。たとえば、Open ステートメントでファイル名として PRN を指定すると、Open ステートメントで指定したファイル番号に対する Print # および Write # ステートメントの出力先は既定のプリンタになります。

Microsoft Windows Version 3.1 で使用可能な名前の例を次に示します。

LETTER.DOC

MEMO.TXT

BUDGET.92

12345678.901

2NDTRY.RPT

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Chr 関数

Open ステートメント

Print # ステートメント

Write # ステートメント


ﾚｺｰﾄﾞ長が一致しません。(Error 59)

関連項目

Get ステートメントまたは Put ステートメントで指定した変数の長さが、対応する Open ステートメントで指定したレコード長と一致しません。このエラーの原因と解決法は次のとおりです。

レコード変数の長さが、対応する Open ステートメントで指定した長さと一致しません。

レコード変数のデータ型を定義するユーザー定義型の固定長変数の合計サイズが、Open ステートメントの Len 節で指定した値と同じであるかどうかを確認してください。次の例で、RecVar が該当する型の変数であれば、Len 関数を使って長さを次のように指定することができます。

Open MyFile As #1 Len = Len(RecVar)

Put ステートメント内で、可変長文字列変数が使われています。または、この変数には可変長文字列が含まれています。

Put ステートメントを使ってランダム アクセス ファイルに可変長文字列を書き込むときは、必ず 2 バイトの記述子が文字列の前に書き込まれます。このため、可変長文字列は、Open ステートメントの Len 節で指定したレコード長より 2 バイト以上短くしてください。

Put ステートメント内で、バリアント型 (Variant) の変数が使われています。または、この変数にはバリアント型が含まれています。

可変長文字列を書き込む場合と同様に、バリアント型の場合も 2 バイトの記述子が書き込まれます。可変長文字列を含むバリアント型では、4 バイトの記述子が必要になります。このためバリアント型の可変長文字列を書き込むとき、文字列は Len 節で指定したレコード長より 4 バイト以上短くしてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Get ステートメント

Put ステートメント

Open ステートメント

文字列型 (String)

バリアント型 (Variant)


ﾚｺｰﾄﾞ番号が不正です。(Error 63)

関連項目

ファイル アクセス中にエラーが発生しました。このエラーの原因と解決法は次のとおりです。

Put または Get ステートメントのレコード番号に 0 以下の値を指定しています。

レコード番号を生成するための式を確認してください。モジュール内で Option Explicit が正しく指定されていい場合、スペルが間違っている変数名は、暗黙に宣言されたり、初期化されて、その値は 0 になります。レコード番号が入っている変数またはレコード番号の計算に使われる変数のスペルが正しいかどうかを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Get ステートメント

Option Explicit ステートメント

Put ステートメント


先頭まで検索しました。検索項目は見つかりませんでした。最後から検索を続けますか？

検索項目が見つかりませんでした。原因と解決法は次のとおりです。

上方向へ検索しているときに、指定した検索範囲の先頭まで検索しました。

検索範囲の終わりから検索を続けるか、取り消して検索範囲を変更するかを選択できます。


End If がありません。

関連項目

ステートメントが不完全だったため、エラーが発生しました。このエラーの原因と解決法は次のとおりです。

If ステートメントに対応する End If ステートメントがありません。

複数行にわたる If ステートメントは、それに対応する End If ステートメントで終了させます。If...End If ステートメントをネスト (入れ子) する場合は、外側の If...End If 構造内部の If...End If 構造が正しく対応付けられていることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

If...Then...Else ステートメント


この行にﾌﾞﾚｰｸ ﾎﾟｲﾝﾄは設定できません。

関連項目

ブレークポイントは、ステートメントの特定の部分にしか設定できません。このエラーの原因は次のとおりです。

これらの行にブレークポイントを設定することはできません。次のような行に、ブレークポイントを設定しようとしました。

コメント行。

行ラベル。

宣言行 (Const、Dim、Static、Type など)。

非表示モジュール内の行。

イミディエイト ペイン内の行。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Select Case ステートメント


参照渡しの引数の型が一致しません。

関連項目

プロシージャが、引数を参照渡し (ByRef) で受け取る場合、渡す引数の型はそのプロシージャで定義されているデータ型に一致する必要があります。このエラーの原因と解決法は次のとおりです。

そのプロシージャで定義されている型に、変更できない型の引数を渡しました。

たとえば、長整数型 (Long) を要求するプロシージャに整数型 (Integer) の変数を渡すと、このエラーが発生します。情報が損なわれても強制的に引数を渡したいときは、引数をそれぞれかっこで囲んで渡します。たとえば、バリアント型 (Variant) の引数 MyVar を、整数型の引数を要求するプロシージャに渡すには、次に示すように呼び出します。

Dim MyVar

MyVar = 3.1415

Call SomeSub((MyVar))

Sub SomeSub (MyNum As Integer)

MyNum = MyNum + MyNum

End Sub

かっこで囲んだ引数は強制的に式として評価されます。このとき、要求された型に一致するように、数値の小数部分は切り捨てではなく、四捨五入されます。評価の結果は一時的なメモリ位置に保存され、プロシージャはこの位置への参照を受け取ります。このため元の MyVar の値は保存されます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

ByRef キーワード

ByVal キーワード

整数型 (Integer)

長整数型 (Long)

バリアント型 (Variant)


固定長文字列またはﾕｰｻﾞｰ定義型の配列を Variant に割り当てられません。

関連項目

バリアント型 (Variant) には、内部処理形式として有効なデータ型 (VarType) のデータしか割り当てられません。このエラーの原因と解決法は次のとおりです。

バリアント型の変数に固定長文字列の配列を割り当てようとしました。1 つの固定長文字列がバリアント型に割り当てられると、強制的に可変長文字列に変更されますが、固定長文字列の配列ではこのように変更されることはありません。

バリアント型の配列が必要な場合、ループを使って配列の各要素を一時的に可変長文字列の配列の要素に割り当てます。これにより、配列をバリアント型に割り当て、Erase ステートメントを使って一時的な配列の割り当てを解除することができます。ただし、Erase ステートメントを使って固定サイズの配列の割り当てを解除することはできないので注意してください。

VarType または TypeName 関数の引数として、固定長文字列またはユーザー定義型を指定しています。

VarType または TypeName 関数の引数を、有効なバリアント型にします。

ユーザー定義型をバリアント型の変数に割り当てようとしました。

ユーザー定義型の変数全体をバリアント型に直接割り当てることはできませんが、Array 関数を使うとユーザー定義型の変数の各要素をバリアント型に割り当てることができます。これにより、バリアント型の配列を含むバリアント型が生成されます。このバリアント配列内の各要素の VarType 関数は、ユーザー定義型の各要素の元の型に対応します。

バリアント型の引数を必要とするプロシージャ呼び出しで、固定長文字列もしくはユーザー定義型の配列を渡そうとしました。通常、プロシージャは後で結合されます。つまり、実行時にプロシージャが結合されるので、すべての引数をバリアント型として渡す必要があります。たとえば、次のコードはエラーを発生します。

Dim MyForm As Object	' 変数 MyForm はオブジェクト型なので後で結合されます。次の行でエラーが発生します。

Set MyForm = New Form1

Dim StringArray(10) As String * 12

' 次の行でエラーが発生します。

MyForm.MyProc StringArray

文字列の配列の場合は、ループを使って配列の各要素を一時的な可変長文字列の配列の要素に割り当てます。これをバリアント型に割り当て、プロシージャに渡すことができます。ユーザー定義型の配列の場合は、Array 関数を使用してユーザー定義型の配列の各要素をバリアント型に割り当てます。割り当てた結果、バリアント型の配列を含むバリアント型が作成されます。このバリアント配列内の各要素の VarType 関数は、元のユーザー定義型の各要素の型に対応します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Array 関数

Erase ステートメント

TypeName 関数

バリアント型 (Variant)

VarType 関数


配列に割り当てられません。

関連項目

配列の各要素に値を割り当てるときには、要素ごとに行う必要があります。このエラーの原因と解決法は次のとおりです。

値を割り当てる要素を指定せずに、単一の値を配列に割り当てようとしました。

配列要素に割り当てるには、その要素を添字内で指定してください。たとえば、MyArray が整数の配列の場合、式 MyArray = 5 は無効ですが、次に示す式は有効です。

MyArray(UBound(MyArray)) = 5

配列全体を別の配列に割り当てようとしました。たとえば、Arr1 が配列であり、Arr2 がそれとは別の配列であれば、次の 2 つの割り当てはどちらも無効です。

Arr1 = Arr2	'無効な割り当てです。

Arr1() = Arr2()	'無効な割り当てです。

ある配列を別の配列に割り当てるには、次のように配列の各要素を個別に割り当てる必要があります。

For count = LBound(Arr2) to UBound(Arr2)

Arr1(count) = Arr2(count)

Next count

バリアント型 (Variant) を使う場合は、配列全体をバリアント型の変数に割り当てることができます。これにより、配列全体が含まれる単一のバリアント型の変数を生成できます。

Dim MyArr As Variant

MyVar = Arr2()

この場合、このバリアント型の配列の要素を参照するときには、通常の配列と同じように添字を指定します。

MyVar(3) = MyVar(1) + MyVar(5)

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

バリアント型 (Variant)

VarType 関数


配列要素のﾃﾞｰﾀ型を変更することはできません。

関連項目

ReDim ステートメントは、配列の要素数を変更するためだけに使われます。このエラーの原因と解決法は次のとおりです。

ReDim ステートメントを使って配列のデータ型を再宣言しようとしました。

必要な型の新しい配列を宣言してから、変換関数を使って古い配列の各要素を、それに対応する新しい配列の要素に割り当ててください。

また、配列をバリアント型 (Variant) の変数内に配置することもできます。そのためには、次のような割り当てを行います。

Dim MyVar As Variant

MyVar = MyIntegerArray()

これにより、元の配列の型を示すタグ付きの配列を含むバリアント型が作成されます。次に、バリアント内の配列の要素に有効なバリアント型の変数を割り当てることができます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

ReDim ステートメント

TypeName 関数

バリアント型 (Variant)

VarType 関数


非表示ﾌﾟﾛｼｰｼﾞｬを表示することはできません。

非表示モジュールでは、すべての要素が非表示です。このエラーの原因と解決法は次のとおりです。

非表示である、プロシージャのモジュールを表示しようとしました。

非表示モジュールのプロシージャを表示するには、モジュールを表示する必要があります。非表示モジュール内でエラーが発生した行を表示するには、モジュールを表示してから再度、コードを実行してエラーを表示します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾓｼﾞｭｰﾙは編集できません。

保護されているモジュールは、表示できますが、編集できません。このエラーの原因と解決法は次のとおりです。

保護されているモジュールを編集しようとしました。

モジュールの保護を解除して、再度編集してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾌﾟﾛｼﾞｪｸﾄまたはﾗｲﾌﾞﾗﾘが見つかりません。

設定された参照が解決されない場合、コードは実行できません。このエラーの原因と解決法は次のとおりです。

参照先のオブジェクト ライブラリが見つかりません。

ダイアログ ボックスでは、未解決の参照先名の前に“MISSING:”が表示されます。未解決の参照を選択し、見つからないプロジェクトまたはライブラリのパス名と言語を表示してください。その後、次に示す方法に従って参照を解決します。未解決の参照を選択し、見つからないライブラリのパス名と言語を表示してください。その後、次に示す方法に従って参照を解決します。

参照を解決する方法

1.	[ツール] - [参照設定] コマンドを選択します。

2.	未解決の参照を選択します。

3.	[参照] ボタンを選択して [ファイルの参照] ダイアログ ボックスを開きます。

4.	[ファイルの参照] ダイアログ ボックスを使って見つかっていない参照を探します。

5.	[OK] ボタンをクリックします。

6.	未解決の参照がすべて解決するまで、上記の操作を繰り返します。

未解決の参照が検索されると、名前の前の“MISSING:”が消えてリンクが確立されたことを示します。

不要になった参照を取り除くには、その参照の横のチェックボックスからチェックマークを消去します。Visual Basic (VB) オブジェクト ライブラリ (VBAXX.OLB) に対する参照は削除できません。

アプリケーションによっては、異なる言語のオブジェクト ライブラリが必要なことがあります。どの言語のバージョンが必要かを調べるには、[参照設定] ダイアログ ボックスの下端に表示される言語を確認します。

オブジェクト ライブラリはバージョンごとに、それぞれ別のプラットフォームに存在します。このため、プロジェクトを異なるプラットフォームへ移動した場合は、アプリケーションのマニュアルで指定された、元のプラットフォームに対応する位置に正しい言語のオブジェクト ライブラリがなければなりません。

一般に、オブジェクト ライブラリのファイル名は次のように構成されます。

Windows Version 3.1では、アプリケーション コード + 言語コード + [Version].OLB で構成されます。たとえば、次のようになります。

VBAFR.OLB は、フランス語版 Visual Basic のオブジェクト ライブラリです。

XLFR50.OLB は、フランス語版 Microsoft Excel Version 5.0 のオブジェクト ライブラリです。

たとえば、次のようになります。

VBA FR OLB は、フランス語版 Visual Basic のオブジェクト ライブラリです。

MS Excel FR 50 OLB は、フランス語版 Microsoft Excel Version 5.0 のオブジェクト ライブラリです。

使用中のシステム上で、必要としているプロジェクトまたはライブラリが見つからない場合は、参照しているプロジェクトの作成者にお問い合わせください。必要としているライブラリが Microsoft 社のアプリケーションのオブジェクト ライブラリであれば、次の方法で入手することができます。必要としているライブラリが使用中のシステム上で見つからなくても、そのライブラリが Microsoft 社のアプリケーションのオブジェクト ライブラリである場合は、次の方法で入手することができます。

注   Visual Basic Version 4.0 では、同時に複数のプロジェクトを開くことはできません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｵﾌﾞｼﾞｪｸﾄを参照している変数、またはｵﾌﾞｼﾞｪｸﾄを参照している要素を含むﾕｰｻﾞｰ定義型の変数に対して、Get や Put を使うことはできません。

関連項目

オブジェクトへの参照は一時的なものであるため、ファイルを閉じてから開くまでの間に無効になります。このエラーの原因と解決法は次のとおりです。

Get または Put ステートメントの変数がオブジェクトへの参照を含む、あるいは含むように宣言されています。変数にオブジェクトへの参照が含まれている場合、Get および Put ステートメントで使用できません。すべてのオブジェクトまたは一部のオブジェクトのプロパティの値をファイルに保存しておく必要がある場合は、各プロパティをそれぞれ指定してください。

オブジェクトを参照しているユーザー定義型の変数に対して Get ステートメントまたは Put ステートメントを使いました。

変数の Type ステートメントの要素がクラス モジュール内で定義されている場合、オブジェクト型を持つ場合、またはフォームまたはコントロールの場合など、オブジェクトを表すときは、その要素を定義から削除します。Get および Put ステートメントを使う場合は、定義するときにオブジェクト型の要素が含まれていない新しい型を定義してください。

バリアント型 (Variant) のユーザー定義型の要素がある場合は、その要素にオブジェクトの参照が割り当てられていないことを確認してください。バリアント型では要素にオブジェクトの参照を割り当てられますが、そのユーザー定義型が Get ステートメントまたは Put ステートメントに使われると、このエラーが発生します。

Input #、Line Input #、Print #、Write # の各ステートメントを使うと、オブジェクトの既定のプロパティをディスクに書き込むことができます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Get ステートメント

Input # ステートメント

Line Input # ステートメント

オブジェクト型

Print # ステートメント

Put ステートメント

Type ステートメント

バリアント型 (Variant)

Write # ステートメント


ﾌｫｰﾏｯﾄ形式が不正です。ﾓｼﾞｭｰﾙをﾛｰﾄﾞできません。

モジュールはテキスト形式でなければなりません。このエラーの原因と解決法は次のとおりです。

バイナリ形式のモジュールをロードしようとしました。

Visual Basic の一部のバージョンでは、コードをバイナリ形式とテキスト形式で保存することができます。可能であれば、ファイルが最後に保存されていたアプリケーションに再度ロードし、テキストとして保存してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


要求された操作は実行できません。(Error 17)

プロジェクトの現在の状態を無効にするような操作は実行できません。このエラーの原因と解決法は次のとおりです。

要求された操作を実行するとプロジェクトの現在の状態が無効になるため、操作を実行できません。たとえば、プログラムが中断モードのときに [ツール] -[参照設定]ダイアログ ボックスを使って新しいオブジェクト ライブラリへの参照を追加すると、エラーが発生します。

[実行] - [終了] コマンドを選択して現在のコードの実行を中止し、操作を再試行してください。

現在実行中のコードを変更しようとしました。たとえば、ディスク ファイルからコードを現在実行中のモジュールに読み込もうとしました。

プロジェクトの実行中でないモジュールは変更可能ですが、実行中のモジュールは変更できません。モジュールを変更するには、モジュールの使用を中止して、コードを書き換えてから実行しなおしてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


実行中のﾓｼﾞｭｰﾙに記録することはありません。

実行を終了して記録を開始する必要があります。このエラーの原因と解決法は次のとおりです。

モジュールのコードの実行中にマクロを記録しようとしました。

[実行] - [終了] コマンドを選択するか、Ctrl + Break キーを押してコードの実行を中断してから、マクロ記録を開始します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾃﾞｨｽｸ間のﾘﾈｰﾑはできません。(Error 74)

関連項目

Name ステートメントを使用する場合、ファイル名を同じドライブで変更する必要があります。このエラーの原因と解決法は次のとおりです。

Name ステートメントを使って、ファイルを別のドライブに移動しようとしました。

ファイルを移動するには FileCopy ステートメントを使って別のドライブに書き込んでから、元のファイルを Kill ステートメントを使って削除します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

FileCopy ステートメント

Kill ステートメント

Name ステートメント


Select Case の内側になければなりません。

関連項目

Case Else ステートメントは、Select Case ステートメントと End Select ステートメントの間になければなりません。このエラーの原因と解決法は次のとおりです。

Case Else ステートメントを Select Case...End Select ブロックの外側に配置しました。

Case Else ステートメントを Select Case...End Select ブロックの内側に移動してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Select Case ステートメント


Select Case がありません。

関連項目

Case ステートメントは、Select Case...End Select ブロックの内側に配置しなければなりません。このエラーの原因と解決法は次のとおりです。

Case ステートメントに対応する Select Case ステートメントがありません。

Select Case...Case 構造内部の他の制御構造が正しく対応付けられていることを確認してください。たとえば Select Case...Case 構造内部で、If ステートメントに対応する End If ステートメントが存在しないとき、このエラーが発生します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

If...Then...Else ステートメント

Select Case ステートメント


ﾓｼﾞｭｰﾙ間で循環参照が定義されています。

関連項目

モジュール間、定数間、およびユーザー定義型間では、循環参照を使うことはできません。このエラーの原因と解決法は次のとおりです。

あるモジュール (Module1) 内のユーザー定義型または定数が、別のモジュール (Module2) 内のユーザー定義型または定数を参照し、このモジュール (Module2) 内のユーザー定義型または定数が元のモジュール (Module1) 内のユーザー定義型または定数を参照しました。

循環参照を削除してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Const ステートメント

Type ステートメント

Visual Basic for Applications の定数


ｸﾗｽは OLE ｵｰﾄﾒｰｼｮﾝをｻﾎﾟｰﾄしていません。(Error 430)

関連項目

すべてのオブジェクトが OLE オートメーション インターフェイスを公開しているとは限りません。このエラーの原因と解決法は次のとおりです。

GetObject 関数または CreateObject 関数呼び出しのときに指定したクラスは存在しますが、OLE オートメーションに対応していません。

OLE オートメーションに対応していないため、指定したオブジェクトの動作を制御するコードは記述できません。オブジェクトを作成したアプリケーションのマニュアルを参照して、このクラスのオブジェクトの OLE オートメーションに関する制限を確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

CreateObject 関数

GetObject 関数

OLE オートメーション


コードの実行が中断されました。

コードの実行は、必要に応じて中断することができます。この状態の発生原因と解決法は次のとおりです。

Ctrl + Break キー (Microsoft Windows)、Esc キー (Microsoft Excel) が押されました。

ダイアログ ボックスから [デバッグ] ボタンを選択して中断モードに入るか、[継続] ボタンを選択してコードの実行を再開するか、[終了] ボタンを選択して実行を終了してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


非表示ﾓｼﾞｭｰﾙ <module name>内でｺﾝﾊﾟｲﾙｴﾗｰが発生しました。

保護モジュールは表示できません。このエラーの原因と解決法は次のとおりです。

指定したモジュール内のコードでコンパイル エラーが発生しましたが、プロジェクトが保護されているために表示できません。

プロジェクトの保護を解除してから再度コードを実行して、エラーを表示してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


定数式が必要です。

関連項目

定数を初期化する必要があります。このエラーの原因と解決法は次のとおりです。

定数を宣言するとき、変数、ユーザー定義型のインスタンス、オブジェクト、関数の戻り値を使おうとしました。

リテラル、定義済みの定数、リテラルと定数を演算子 (論理演算子 Is を除く) で結合したものは定数の宣言に使えます。

要素数の指定に変数を使って、配列を宣言しようとしました。

プロシージャ内で動的配列を宣言するには、ReDim ステートメントを使ってその配列を宣言し、変数を使って要素の数を指定します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Is 演算子

ReDim ステートメント


このﾓｼﾞｭｰﾙでは Print ﾒｿｯﾄﾞはｻﾎﾟｰﾄしていません。

関連項目

メソッドやプロパティは、どのモジュール内でも有効であるとは限りません。このエラーの原因と解決法は次のとおりです。

何も表示できないオブジェクト上で Print メソッドを使おうとしました。たとえば、内で修飾子を指定しないで、Print メソッドを使うことはできません。たとえば、標準モジュール内で修飾子を指定しないで、Print メソッドを使うことはできません。

Print メソッドへの参照を削除するか、または該当するオブジェクトで修飾してください。たとえば、Debug オブジェクトで修飾して、その引数をデバッグ中にイミディエイト ペインに表示します。

Line、Circle、PSet、および Scale メソッドを使えないオブジェクト上で、そのいずれかのメソッドを使おうとしました。たとえば、これらのメソッドは、スタンダード モジュール内または OLE オートメーションのクラス モジュール内では修飾子を指定しなければ使用できません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Debug オブジェクト

Print メソッド


循環的なﾌﾟﾛｼﾞｪｸﾄの参照はできません。

プロジェクトへの循環参照は設定できません。たとえば MyProj が YourProj を参照するとき、YourProj (または YourProj を参照しているプロジェクト) は MyProj を参照できません。このエラーの原因と解決法は次のとおりです。

プロジェクトに、同じプロジェクトの一部への参照を追加しようとしました。

循環参照を削除してください。

注   Visual Basic Version 4.0 では、同時に複数のプロジェクトを開くことはできません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


Deftype ｽﾃｰﾄﾒﾝﾄはﾌﾟﾛｼｰｼﾞｬ定義の前に置いてください。

関連項目

Deftype ステートメントには、DefInt、DefDbl、DefCur などの各ステートメントが含まれます。このエラーの原因と解決法は次のとおりです。

モジュール レベルで、変数宣言が Deftype ステートメントよりも前に記述されています。

すべての変数宣言よりも前になるように、Deftype ステートメントを移動してください。

Deftype ステートメントがプロシージャ内で使われています。

すべての変数宣言よりも前になるように、Deftype ステートメントをモジュール レベルに移動してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Deftype ステートメント


ﾗﾍﾞﾙまでが離れすぎています。ﾙｰﾌﾟ、SELECT CASE または ﾌﾞﾛｯｸが大きすぎます。

関連項目

先頭から終端までの大きさが最大 64KB までのプロシージャを作成できますが、制御構造ではプロシージャの前方にも後方にも分岐できるので、分岐先までの距離は前方後方共に 32,767 バイトに制限されます。このエラーの原因と解決法は次のとおりです。

分岐ステートメント (GoTo、GoSub) の行き先のラベルが元の分岐ステートメントから 32,767 バイト以上離れています。

ラベルを現在よりも近いところに付けるか、またはプロシージャを小さくしてください。

ループ構造が大きすぎます。ループの先頭から終端までで 32KB 以上のメモリを消費しています。

ループを小さくしてください。

If 構造が大きすぎます。Then または Else 節を含む構造の先頭から終端までが 32KB 以上のメモリを消費しています。

制限サイズを超える部分を縮小してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

GoSub...Return ステートメント

GoTo ステートメント

If...Then...Else ステートメント


ﾃﾞﾊﾞｲｽ I/O ｴﾗｰです。(Error 57)

外部デバイスに予期しないエラーが発生することがあります。このエラーの原因と解決法は次のとおりです。

プリンタやディスク ドライブなどのデバイスを使っているときに入出力エラーが発生しました。

デバイスが正常に動作していることを確認してから、再度操作してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾃﾞﾊﾞｲｽが準備されていません。(Error 68)

このエラーの原因と解決法は次のとおりです。

アクセスしようとしたデバイスが接続されていません。または存在しません。

デバイスの電源と、そのデバイスとコンピュータを接続するケーブルを確認してください。ネットワーク上のプリンタにアクセスするときは、LPT1 をネットワーク プリンタ ID に接続するなど、コンピュータとプリンタが論理接続されていることを確認してください。

デバイスがネットワークに接続されていない可能性があります。

デバイスをネットワークに再接続して、再度操作してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾃﾞｨｽｸの空き容量が不足しています。(Error 61)

関連項目

このエラーの原因と解決法は次のとおりです。

ディスク上に Print #、Write #、Close のいずれかの操作を完了するために必要な空き容量がありません。

不要なファイルを他のディスクに移動するか削除して、必要な空き容量を確保してください。

ディスク上に、ファイルを作成するために必要な空き容量がありません。

不要なファイルを他のディスクに移動するか削除して、必要な空き容量を確保してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Close ステートメント

Print # ステートメント

Write # ステートメント


ﾃﾞｨｽｸが準備されていません。(Error 71)

このエラーの原因と解決法は次のとおりです。

指定したドライブにディスクが入っていません。

ドライブにディスクを挿入して、操作を繰り返してください。

指定したドライブのふたが開いています。

ドライブのふたを閉じ、操作を繰り返してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


0 で除算しました。(Error 11)

0 で除算することはできません。このエラーの原因と解決法は次のとおりです。

除数として使った式の値が 0 でした。

式に含まれる変数名を確認してください。除数として指定した変数に Empty 値が格納されている場合も、このエラーが発生します。変数名のつづりが間違っている場合など、変数が暗黙に宣言されると、その変数には Empty 値が格納されています。

またエラーが発生した式についても、どのような演算が行われているのか確認してください。特に、他のプロシージャから引数を受け取っている場合は、正しい値が渡されているか確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


Loop がありません。

関連項目

各 Do ステートメントは、終わりを示す Loop ステートメントと対応する必要があります。このエラーの原因と解決法は次のとおりです。

Do ステートメントに対応する Loop ステートメントがありません。

Do...Loop 構造内部の他の制御構造が、それぞれ正しく対応付けられていることを確認してください。たとえば、Do...Loop 構造内部で、If ブロックに対応する End If ステートメントが存在しないとき、このエラーが発生します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Do...Loop ステートメント

If...Then...Else ステートメント


同じｽｺｰﾌﾟ内で宣言が重複しています。

関連項目

指定した名前は、既に現在の適用範囲 (スコープ) 内で使われています。たとえば、変数は異なるプロシージャであれば、同じ名前を使って定義できますが、同じプロシージャ内で同じ名前を使って定義することはできません。このエラーの原因と解決法は次のとおりです。

新しい変数またはプロシージャと同じ名前の変数またはプロシージャが既に存在します。次に例を示します。

Sub MySub()

Dim A As Integer

Dim A As Variant

. . .	'ここで他の宣言またはプロシージャ コードを指定します。

End Sub

現在のプロシージャ、またはモジュール を調べて、重複している宣言を取り除いてください。

Const ステートメントで、既存の変数またはプロシージャと同じ名前を使いました。

同じ名前の定数を削除するか、またはその名前を変更してください。

固定サイズの配列を繰り返し宣言しました。

いずれかの配列を削除するか、またはその名前を変更してください。

重複している名前を探すには、[編集] - [検索] コマンドを選択します。変数名が同じで型宣言文字が異なるときも重複が起こるので、検索する名前を指定するときに、型宣言文字があれば除きます。

モジュール レベルの変数にはプロシージャで宣言した変数と同じ名前を使えますが、プロシージャ内でモジュール レベルの変数を参照するときは、モジュール名を使って変数を特定する必要があります。モジュール名もプロシージャ内で変数として使えます。これらの名前もモジュール名によって特定できます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Const ステートメント

Dim ステートメント

Erase ステートメント

ReDim ステートメント


宣言が重複しています。

条件付きコンパイラ定数は１つの値しかもてません。このエラーの原因と解決法は次のとおりです。

同じ条件付きコンパイル定数に、２つの異なる値が指定されています。次に例を示します。

#Const Mac = 0

#Const Mac = 1

一方の定義を取り除いてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


Deftype ｽﾃｰﾄﾒﾝﾄが重複しています。

関連項目

同じ適用範囲 (スコープ) 内で Deftype ステートメントを使う場合は、それぞれ重複しない文字範囲を指定する必要があります。このエラーの原因と解決法は次のとおりです。

Deftype ステートメントで定義した文字範囲の一部または全体が既に他の Deftype ステートメントで定義されています。

文字範囲が重複しないように、再度ステートメントを記述してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Deftype ステートメント


Option ｽﾃｰﾄﾒﾝﾄが重複しています。

関連項目

Option ステートメントは、設定内容にかかわらず、各モジュール内で 1 つしか使えません。このエラーの原因と解決法は次のとおりです。

同じモジュール内で Option Base、Option Compare、Option Explicit、Option Private のいずれかのステートメントを繰り返し宣言しました。

モジュールから重複しているステートメントを取り除いてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Option Base ステートメント

Option Compare ステートメント

Option Explicit ステートメント

Option Private ステートメント


編集を元に戻すことができなくなります。- 続けますか?

この編集操作を行った後は [元に戻す] コマンドを選択できず、現在の状態に戻せなくなります。このエラーの原因と解決法は次のとおりです。

通常、編集領域が広すぎて現在の状態が保存できないことが原因となります。

編集領域を狭くして編集を行ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


If がありません。

関連項目

Else ステートメントの前には If ステートメントを指定する必要があります。このエラーの原因と解決法は次のとおりです。

Else ステートメントに対応する If ステートメントがありません。

If...End If 構造内部の他の制御構造が、それぞれ正しく対応付けられていることを確認してください。If ブロックの形式が正しいかどうかも確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

If...Then...Else ステートメント

Do...Loop ステートメント


ｳｫｯﾁ式が指定されていません。

[ウォッチ式の追加] ダイアログ ボックスには、式を入力する必要があります。このエラーの原因と解決法は次のとおりです。

[ウォッチ式の追加] ダイアログ ボックスでウォッチ式を指定しませんでした。

[ウォッチ式の追加] ダイアログ ボックスに式を追加するか、または Esc キーを押してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


End If がありません。

関連項目

End If ステートメントに対応する If ステートメントがありません。このエラーの原因と解決法は次のとおりです。

If 節が省略されているか、または End If ステートメントから分離されています。

If...End If 構造内部の他の制御構造が、それぞれ正しく対応付けられていることを確認してください。If ブロックの形式が正しいかどうかも確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

If...Then...Else ステートメント

Do...Loop ステートメント


最後まで検索しました。検索項目は見つかりませんでした。先頭から検索を続けますか?

検索項目が見つかりませんでした。このエラーの原因と解決法は次のとおりです。

下方向へ検索しているときに、指定した検索対象の最後まで検索しました。

検索対象の始めから検索を続けるか、取り消して検索対象を変更するかを選択できます。


Select Case がありません。

関連項目

End Select ステートメントは、先行する Select Case ステートメントと対応する必要があります。このエラーの原因と解決法は次のとおりです。

End Select ステートメントに対応する Select Case ステートメントがありません。

このエラーは通常、Select Case ブロックの後に余分な End Select ステートメントがあるか、Select Case ブロックをあるプロシージャから他のプロシージャにコピーしたときに End Select ステートメントをコピーし忘れることにより発生します。それぞれの End Select ステートメントが Select Case 構造を正しく終了するかどうか確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Select Case ステートメント


With がありません。

関連項目

End With ステートメントは、先行する With ステートメントと対応する必要があります。このエラーの原因と解決法は次のとおりです。

End With ステートメントに対応する With ステートメントがありません。

With...End With 構造内部の他の制御構造が、それぞれ正しく対応付けられていることを確認してください。たとえば、With...End With 構造内部で、If ステートメントに対応する End If ステートメントが存在しないとき、このエラーが発生します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

If...Then...Else ステートメント

With ステートメント


ｼｽﾃﾑ登録情報へのｱｸｾｽでｴﾗｰが発生しました。

操作によっては、レジストリにアクセスしなければならないものがあります。このエラーの原因と解決法は次のとおりです。

レジストリが破損しています。

ホスト アプリケーションのセットアップ プログラムを再度実行してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


DLL 読み込み時のｴﾗｰです。(Error 48)

関連項目

ダイナミック リンク ライブラリ (DLL) は、Declare ステートメントの Lib 節で指定されたライブラリを指しています。このエラーの原因と解決法は次のとおりです。

DLL 実行可能ファイルではありません。

このファイルがソーステキスト ファイルの場合は、コンパイルして DLL 実行可能フォームにリンクする必要があります。

Microsoft Windows の DLL ファイルではありません。

Windows 用の DLL と同等のファイルが必要です。

以前のバージョンの Windows の DLL ファイルです。Windows のプロテクト モードとは互換性がありません。

最新の DLL が必要です。

この DLL が、存在しない他の DLL を参照しています。

参照先の DLL を取得し、他の DLL から利用できるようにしてください。

DLL または参照先の DLL がパスで指定したディレクトリに存在しません。

参照先のディレクトリに DLL を移動するか、現在のディレクトリをパスに追加してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Declare ステートメント


Exit Do は、Do...Loop の内側に指定しなければなりません。

関連項目

Exit Do ステートメントは、Do...Loop ステートメント内でのみ有効です。このエラーの原因と解決法は次のとおりです。

Exit Do ステートメントを Do...Loop ステートメントの外側で使っています。

Exit Do ステートメントの前に有効な Do ステートメントがあることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Do...Loop ステートメント

Exit ステートメント


Exit For は、For...Nextの内側に指定しなければなりません。

関連項目

Exit For ステートメントは、For...Next ループ内でのみ有効です。このエラーの原因と解決法は次のとおりです。

Exit For ステートメントを For...Next ステートメントの外側で使っています。

Exit For ステートメントの前に有効な For ステートメントがあることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Exit ステートメント

For...Next ステートメント


Exit For は、For...Nextの内側に指定しなければなりません。

関連項目

Exit ステートメントは、プロシージャによって使い分ける必要があります。このエラーの原因と解決法は次のとおりです。

Exit Function ステートメントを Sub または Property プロシージャ内で使っています。

プロシージャの種類に合わせて、Exit Sub または Exit Property プロシージャを使ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Exit ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


Function または Sub ﾌﾟﾛｼｰｼﾞｬ内で Exit Property を使うことはできません。

関連項目

Exit ステートメントは、プロシージャによって使い分ける必要があります。このエラーの原因と解決法は次のとおりです。

Exit Property ステートメントを Sub または Function プロシージャ内で使っています。

プロシージャの種類に合わせて、Exit Sub または Exit Function ステートメントを使ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Exit ステートメント

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


Functuion または Property ﾌﾟﾛｼｰｼﾞｬ内で Exit Sub を使うことはできません。

関連項目

Exit ステートメントは、プロシージャによって使い分ける必要があります。このエラーの原因と解決法は次のとおりです。

Exit Sub ステートメントを Function または Property プロシージャ内で使っています。

プロシージャの種類に合わせて、Exit Function または Exit Property ステートメントを使ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Exit ステートメント

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


配列がありません。

関連項目

変数に添字が付いているときは、その変数が配列であることを示します。このエラーの原因と解決法は次のとおりです。

指定した構文では配列が必要ですが、現在の適用範囲 (スコープ) 内には名前の一致する配列がありません。

変数名が正しいかどうかを確認してください。モジュール内で Option Explicit が使われていなければ、変数は最初に使うときに作成されます。配列変数名が間違っていると、配列ではなく変数が作成されます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Option Explicit ステートメント


End Function がありません。

関連項目

End procedure ステートメントは、プロシージャによって使い分ける必要があります。このエラーの原因と解決法は次のとおりです。

End Property または End Sub ステートメントを使って、Function プロシージャを終わらせようとしました。

Function プロシージャでは、End Function ステートメントを使ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

End ステートメント

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


End Property がありません。

関連項目

End procedure ステートメントは、プロシージャによって使い分ける必要があります。このエラーの原因と解決法は次のとおりです。

End Function または End Sub ステートメントを使って、Property プロシージャを終了させようとしました。

Property プロシージャでは、End Property ステートメントを使ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

End ステートメント

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


End Sub がありません。

関連項目

End procedure ステートメントは、プロシージャによって使い分ける必要があります。このエラーの原因と解決法は次のとおりです。

End Function または End Property ステートメントを使って、Sub プロシージャを終わらせようとしました。

Sub プロシージャでは、End Sub ステートメントを使ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

End ステートメント

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


End With がありません。

関連項目

With ブロックは、End With ステートメントを使って終了させる必要があります。このエラーの原因と解決法は次のとおりです。

With ブロックは正しく終了していません。

ブロックの終わりに End With ステートメントを記述してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

End ステートメント

With ステートメント


関数または変数を指定してください。

関連項目

ステートメントで、変数または関数が指定されています。このエラーの原因と解決法は次のとおりです。

名前の一致する変数または関数がありません。

名前を確認してください。また、指定した名前の変数または関数がそれを参照するプログラムにとって参照可能であることを確認してください。たとえば、関数をプライベートとして定義したときや変数をパブリックとして定義しないとき、関数や変数はそのモジュール内でしか参照できません。

プロシージャ名に不適当な値を指定しようとしました。たとえば MySub が Sub プロシージャである場合、次のコードでエラーが発生します。

MySub = 237	' Causes Expected Function or variable error

Property Let プロシージャまたはオブジェクトやオブジェクトを含むバリアント型 (Variant) を返す Function プロシージャの場合、代入構文を使用できます。Sub、Property Get、または Property Set プロシージャの場合には、代入構文を使用できません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

Private ステートメント

Property Get ステートメント

Public ステートメント


ﾓｼﾞｭｰﾙではなく、ﾌﾟﾛｼｰｼﾞｬを指定してください。

関連項目

現在の適用範囲 (スコープ) 内には指定した名前のプロシージャが存在しませんが、同名のモジュールは存在します。プロシージャを呼び出すことはできますが、モジュールを呼び出すことはできません。このエラーの原因と解決法は次のとおりです。

モジュール名がプロシージャ呼び出しとして使われています。

プロシージャ名を確認し、呼び出すプロシージャが他のモジュールのプライベート プロシージャでないことを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


ﾌﾟﾛｼﾞｪｸﾄまたはﾗｲﾌﾞﾗﾘではなく、ﾌﾟﾛｼｰｼﾞｬを指定してください。

関連項目

現在の適用範囲 (スコープ) 内には指定した名前のプロシージャが存在しませんが、同名のプロジェクトは存在します。プロシージャを呼び出すことはできますが、プロジェクトを呼び出すことはできません。このエラーの原因と解決法は次のとおりです。

プロジェクト名がプロシージャ呼び出しで使われています。

プロシージャ名を確認し、呼び出すプロシージャが他のモジュールのプライベート プロシージャでないことを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


ﾕｰｻﾞｰ定義型ではなく、ﾌﾟﾛｼｰｼﾞｬを指定してください

関連項目

現在の適用範囲 (スコープ) 内には指定した名前のプロシージャが存在しませんが、同名のユーザー定義型は存在します。プロシージャを呼び出すことはできますが、ユーザー定義型を呼び出すことはできません。このエラーの原因と解決法は次のとおりです。

ユーザー定義型の名前がプロシージャ呼び出しで使われています。

プロシージャ名を確認し、呼び出すプロシージャが他のモジュールのプライベート プロシージャでないことを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


変数ではなく、ﾌﾟﾛｼｰｼﾞｬを指定してください。

関連項目

現在の適用範囲 (スコープ) 内には指定した名前のプロシージャが存在しませんが、同名の変数は存在します。プロシージャを呼び出すことはできますが、変数を呼び出すことはできません。このエラーの原因と解決法は次のとおりです。

変数名がプロシージャ呼び出しで使われています。

プロシージャ名を間違えると、暗黙で宣言された変数と見なされるため、このエラーが発生します。プロシージャ名を確認し、呼び出すプロシージャが他のモジュールのプライベート プロシージャでないことを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


Sub、Function、または Property がありません。

関連項目

ステートメントの構文は Sub、Function または Property プロシージャを呼び出しています。エラーの解決法は次のとおりです。

プログラムの適用範囲 (スコープ) 内には指定した名前の Sub、Function または Property プロシージャが存在しません。

プロシージャ名を確認してください。プロシージャをプライベートとして定義すると、そのプロシージャが含まれるモジュール以外からは呼び出せないことに注意してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Call ステートメント

Function ステートメント

Private ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


ﾌﾟﾛｼﾞｪｸﾄではなく、ﾕｰｻﾞｰ定義型を指定してください。

関連項目

現在の適用範囲 (スコープ) 内には指定した名前のユーザー定義型が存在しませんが、同名のプロジェクトは存在します。ユーザー定義型の変数を定義することはできますが、プロジェクトを指す変数を定義することはできません。このエラーの原因と解決法は次のとおりです。

プロジェクト名がユーザー定義型として使われています。

ユーザー定義型の名前を確認し、ユーザー定義型が他のモジュールでプライベートでないことを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Type ステートメント

ユーザー定義型


ﾓｼﾞｭｰﾙではなく、変数またはﾌﾟﾛｼｰｼﾞｬを指定してください。

関連項目

現在の適用範囲 (スコープ) 内には指定した名前の変数またはプロシージャが存在しませんが、同名のモジュールは存在します。このエラーの原因と解決法は次のとおりです。

モジュール名が変数またはプロシージャとして使われています。

変数名またはプロシージャ名を確認し、参照する名前が他のモジュールでプライベートでないことを確認してください。モジュール名は修飾子として使うことはできますが、単独では使えません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


ﾌﾟﾛｼﾞｪｸﾄではなく、変数またはﾌﾟﾛｼｰｼﾞｬを指定してください。

関連項目

現在の適用範囲 (スコープ) 内には指定した名前の変数またはプロシージャは存在しませんが、同名のプロジェクトは存在します。このエラーの原因と解決法は次のとおりです。

プロジェクト名が変数またはプロシージャとして使われています。

変数名またはプロシージャ名を確認し、参照する名前が他のモジュールでプライベートでないことを確認してください。プロジェクト名は修飾子として使うことはできますが、単独では使えません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


修正候補: <various>

構文で必要な部分が見つかりません。通常、このエラーの原因は強調表示された項目の左側にありますが、わかりにくいことがあります。たとえば Sub プロシージャはキーワード Call を使っても使わなくても呼び出せますが、キーワード Call を使うときは、引数のリストをかっこで囲む必要があります。このエラーの原因と解決法は次のとおりです。

修正候補: ステートメントの最後

プロシージャ呼び出し内のかっこの使い方が誤っています。

X = Workbook.Add F:= 5	'かっこがないためにエラーが発生します。

Call MySub 5	'かっこがないためにエラーが発生します。

引数を指定して関数を呼び出すとき、または、キーワード Call を使って Sub プロシージャを呼び出すときはかっこを使います。

修正候補: )

プロシージャ呼び出しの構文が誤っています。たとえば、関数呼び出しは単独で指定することはできず、Sub プロシージャ呼び出しは引数の指定方法に応じてキーワード Call が必要な場合があります。

Workbook.Add (X:=5, Y:=7)	'式と共に使われていない関数呼び出しです。

YourSub(5, 7)	'キーワード Call が付いていない Sub プロシージャの呼び出しです。

関数呼び出しは、必ず式の中で使ってください。また、複数の引数をかっこで囲んで Sub プロシージャの呼び出し内で使う場合は、キーワード Call を使います。

修正候補: 式

たとえば、オブジェクト ブラウザからコードを貼り付けたときに、名前付き引数の値を指定していない可能性があります。

Workbook.Add (X:= )	'名前付き引数に値が割り当てられていない

' ためにエラーになります。

引数の値を指定するか、省略可能な場合は削除してください。

修正候補: 変数

たとえば、変数名に予約キーワードを使った可能性があります。次に示す例で、Input # ステートメントは第 2 引数として変数を要求します。Type は予約キーワードなので、変数名として使うことはできません。

Input # 1, Type	'Type キーワードは変数名として

' 使うことはできません。

予約キーワードと競合しないように変数名を変更してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


指定した名前では定義されていません。

他のアプリケーションで定義されているメソッドなどの名前を角かっこ ([]) で囲んで示すことができます。このエラーの原因と解決法は次のとおりです。

角かっこで囲んで指定した識別子 (名前)は、Visual Basic では解釈されません。

名前を確認して、ホスト アプリケーションが要求する名前と同じであることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


既に同名のﾌｧｲﾙが存在しています。(Error 58)

関連項目

このエラーの原因と解決法は次のとおりです。

実行時に、新しいファイルの名前 (たとえば Name ステートメントで指定した名前) が既に存在するファイル名と重複すると、このエラーが発生します。

Name ステートメントで新しいファイル名を指定するか、Name ステートメントでファイル名を指定する前に古いファイルを削除してください。

現在読み込まれているプロジェクトを [ファイル] - [名前を付けて保存] コマンドを使って保存するとき、同じプロジェクト名が既に存在していると、このエラーが発生します。

既存のプロジェクトを置き換えない場合は、別のプロジェクト名を使ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Kill ステートメント

Name ステートメント


ﾌｧｲﾙは既に開かれています。(Error 55)

関連項目

別の Open ステートメントまたは他の操作を実行する前に、ファイルを閉じる必要がある場合があります。このエラーの原因と解決法は次のとおりです。

既に開いているファイルに対してシーケンシャル出力モードの Open ステートメントを実行しました。

シーケンシャル モードで開いているファイルを、別のシーケンシャル モードで開くには、そのファイルを一度閉じる必要があります。たとえば、入力モード (Input) で開いているファイルは、一度閉じた後、出力モード (Output) で開くことができます。

既に開いているファイルに対して Kill、SetAttr、Name などのステートメントを使用しようとしました。

ステートメントを実行する前にファイルを閉じてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Kill ステートメント

Name ステートメント

Open ステートメント

SetAttr ステートメント


このﾌｧｲﾙ形式はｻﾎﾟｰﾄされていません。

ファイルの形式によっては読み込めない場合があります。このエラーの原因と解決法は次のとおりです。

以前のバージョンの Visual Basic で作成したバイナリ ファイルを読み込もうとしました。

ファイル作成時に使ったバージョンの Visual Basic で読み込んで、テキスト形式で保存してから、再度読み込んでください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾌｧｲﾙが見つかりません。(Error 53)

関連項目

指定された場所でファイルが見つかりませんでした。このエラーの原因と解決法は次のとおりです。

存在しないファイルに対して Kill、Name、Open などのステートメントを使用しました。

ファイル名とパス指定を確認してください。

ダイナミック リンク ライブラリ (DLL) 内のプロシージャを呼び出そうとしましたが、Declare ステートメントの Lib 節で指定されたライブラリ ファイルが存在していません。

ファイル名とパス指定を確認してください。

開発環境では、存在しないプロジェクトを開くか、存在しないテキスト ファイルを読み込もうとしたときに、このエラーが発生します。

プロジェクトまたはファイル名とパス指定を確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Declare ステートメント

Kill ステートメント

Name ステートメント

Open ステートメント


固定長文字列型や静的変数のﾃﾞｰﾀの大きさは 64KB を越えることはできません。

固定長のデータおよび静的データには、バリアント型 (Variant) 変数を除く明示的に宣言された変数、固定長文字列、および固定サイズの配列が含まれます。このエラーの原因と解決法は次のとおりです。

64KB 以上をモジュール レベルのデータに割り当てようとしました。

宣言するデータの量を減らしてください。モジュール レベルのデータ領域の上限は 64KB です。ただし、可変長文字列と配列には 64KB 以上のデータ領域を割り当てることができます。

64KB 以上をモジュール内の静的なプロシージャ レベルのデータに割り当てようとしました。

この型で宣言するデータの量を減らしてください。モジュール内の静的 データの上限は、すべてのプロシージャを合わせて 64KB です。プロシージャあたり 64KB ではありません。ただし、静的な可変長文字列と配列には、64KB 以上のデータを割り当てることができます。

ユーザー定義型の大きさが 64KB を超えました。

ユーザー定義型のサイズを小さくしてください。一般に、ユーザー定義型のサイズは、その各要素に対して指定されたサイズの和に等しくなります。ただし、システムによっては、ワード境界上で整列させるために各要素間に埋め込みが行われることがあります。また、あるユーザー定義型を別のユーザー定義型の中にネスト (入れ子) した場合、ネストされる型のサイズは新しい型のサイズに含まれます。

32KB 以上を必要とするユーザー定義型の変数を、プロシージャ内で定義しようとしました。

モジュール レベルではユーザー定義型の変数のサイズの上限は 64KB ですが、プロシージャのユーザー定義型の変数は 32KB を超えられません。ユーザー定義型のサイズを減らすか、モジュールを使用してください。

プロシージャで宣言した固定長文字列の大きさが、65,464 バイトを超えています。

固定長文字列の長さを短くしてください。ただし、可変長文字列は 65,464 バイト以上の大きさをとることができます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


既に同じ名前のｶｳﾝﾀ変数が使われています。

関連項目

For...Next ループをネスト (入れ子) するときは、ループごとに異なるカウンタ変数を使う必要があります。このエラーの原因と解決法は次のとおりです。

内側の For ループで、外側の For ループと同じカウンタが使われています。

ネスト (入れ子) したループを調べて重複がないことを確認してください。たとえば、外側のループで For Count = 1 To 25 を使うと、内側のループでは Count をカウンタ変数として使うことはできません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

For...Next ステートメント

For Each...Next ステートメント


For Each に配列を指定するときは、ﾊﾞﾘｱﾝﾄ型またはｵﾌﾞｼﾞｪｸﾄ型の変数でなければなりません。

関連項目

For Each...Next ステートメント構文の指定項目 element には、カウンタ変数を指定します。このエラーの原因と解決法は次のとおりです。

コレクションに対してバリアント型 (Variant) またはオブジェクト型以外のカウンタ変数が使われています。

For Each...Next ステートメントの element に指定するカウンタ変数が、バリアント型またはオブジェクト型であることを確認してください。

配列に対して、バリアント型以外のカウンタ変数が使われています。

For Each...Next ステートメントの引数 element に指定するカウンタ変数が、バリアント型であることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

For Each...Next ステートメント

オブジェクト型

バリアント型 (Variant)


For Each に配列を指定するときは、ﾊﾞﾘｱﾝﾄ型変数でなければなりません。

関連項目

For Each...Next ステートメント構文の引数 element には、カウンタ変数を指定します。このエラーの原因と解決法は次のとおりです。

配列に対して、バリアント型 (Variant) 以外のカウンタ変数が使われています。

For Each...Next ステートメントの引数 group に指定するカウンタ変数が、バリアント型であることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

For Each...Next ステートメント

バリアント型 (Variant)


ﾕｰｻﾞｰ定義型の配列に Each を使おうとしました。

関連項目

For Each ステートメントは、コレクションとユーザー定義型以外の配列 (オブジェクトの配列を含む) についてのみ有効です。このエラーの原因と解決法は次のとおりです。

For Each 制御構造内の配列の各要素に対して、ユーザー定義型が使われています。

通常の For...Next ループを使ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

For...Next ステートメント

For Each...Next ステートメント


For Each ﾙｰﾌﾟは、配列またはｺﾚｸｼｮﾝに対してだけ有効です。

関連項目

For Each ループはコレクションと配列に対してだけ使えます。このエラーの原因と解決法は次のとおりです。

コレクションまたは配列でないオブジェクトを、For Each ステートメント構文の引数 element に指定しました。

繰り返す項目を確認して、コレクションまたは配列であることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

For Each...Next ステートメント


For ﾙｰﾌﾟが初期化されていません。(Error 92)

関連項目

For ループのカウンタ変数を初期化する必要があります。このエラーの原因と解決法は次のとおりです。

For...Next ループの内側へ制御を移動しました。

ループ内へ制御を移動させているコードを削除してください。For...Next ループの内側には、ラベルを置かないようにしてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

For...Next ステートメント

For Each...Next ステートメント


Next がありません。

関連項目

For ステートメントには、Next ステートメントを必ず対応させる必要があります。このエラーの原因と解決法は次のとおりです。

For ステートメントに対応する Next ステートメントがありません。

For...Next 構造内部にネスト (入れ子) されている For...Next 構造がそれぞれ正しく対応付けられていることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

For...Next ステートメント

For Each...Next ステートメント


定義前のﾕｰｻﾞｰ定義型を参照しています。

関連項目

ユーザー定義型は、参照する前に定義しておく必要があります。このエラーの原因と解決法は次のとおりです。

ユーザー定義型を定義する前に、そのユーザー定義型を指定した変数を宣言しました。次の例では、ユーザー定義型 (OtherType) を定義する前に、この型の変数 OtherVar を宣言しています。

Type MyType

OtherVar As OtherType

End Type

Type OtherType

WholeVar As Integer

RealVar As Double

End Type

定義していないユーザ定義型への参照が発生しないように、ユーザー定義型を定義する位置を確認してください。

ユーザー定義型にそのユーザー定義型自体がネストされています。

Type MyType

MyVar As Integer

OtherVar As MyType

End Type

定義内にネスト (入れ子) され、そのユーザー定義型自体を参照しているユーザー定義型を削除してください。第 1 のユーザー定義型を第 2 のユーザー定義型にネスト (入れ子) するとき、第 2 の型の中で第 1 の型が既に宣言されているときも、このエラーが間接的に発生します。ネストされているユーザー定義型の定義を調べて、重複をなくしてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Type ステートメント

ユーザー定義型


ﾊﾞﾘｱﾝﾄ型 (Variant) またはｵﾌﾞｼﾞｪｸﾄ型 (Object) を返す関数以外は、代入ｽﾃｰﾄﾒﾝﾄの代入先 (左辺) に指定することはできません。

関連項目

関数の戻り値がオブジェクト型またはバリアント型 (Variant) のときは、代入ステートメントの左辺に関数の呼び出しを指定できます。このエラーの原因と解決法は次のとおりです。

代入ステートメントの左辺に指定された関数の戻り値が、バリアント型またはオブジェクト型ではありません。

戻り値の型を変更してください。戻り値がオブジェクトまたはオブジェクトを含むバリアント型のとき、オブジェクトの既定プロパティが代入されることに注意してください。バリアント型の戻り値がオブジェクトでないときは、代入は行われません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

オブジェクト型

バリアント型 (Variant)


識別子が長すぎます。

識別子は 255 文字以内にします。このエラーの原因と解決法は次のとおりです。

識別子が 255 文字を超えています。

識別子を短くしてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｶｰｿﾙ位置にﾌﾟﾛｼｰｼﾞｬ名を示す識別子がありません

カーソルがプロシージャ名以外の場所にあるときに、プロシージャを表示しようとしました。このエラーの原因と解決法は次のとおりです。

識別子がプロシージャ名ではありません。

識別子が正しく入力されているかを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


DLL のﾊﾞｰｼﾞｮﾝが正しくありません。

Visual Basic の各バージョンは、それに対応するダイナミック リンク ライブラリ (DLL) でだけ動作します。このエラーの原因と解決法は次のとおりです。

Visual Basic のダイナミック リンク ライブラリのバージョンが、要求するバージョンと一致しません。DLL 内のルーチンを呼び出そうとしたときに、ライブラリのバージョンが Visual Basic と一致していません。

適切なバージョンのライブラリを用意し、以前のバージョンがパス上で適切なバージョンの前に配置されていないことを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


OLE のﾊﾞｰｼﾞｮﾝが正しくありません。

OLE 関連のダイナミック リンク ライブラリ (DLL) のバージョンが、Visual Basic の要求するバージョンと一致しません。アプリケーションが DLL を探すときは、まず現在のディレクトリを探し、次にパスの設定に沿って他のディレクトリを探してから、\WINDOWS\SYSTEM ディレクトリを探します。このエラーの原因と解決法は次のとおりです。

検索時に、Visual Basic の要求する DLL より先に、以前のバージョンの OLE 関連のDLL が見つかりました。

両方のバージョンの DLL を利用できるようにするには、対応するアプリケーションの起動ディレクトリに DLL を保存しておきます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾌｧｲﾙにこれ以上ﾃﾞｰﾀがありません。(Error 62)

関連項目

EOF (ファイルの終わり) を超えてデータを読み取ることはできません。このエラーの原因と解決法は次のとおりです。

Input # または Line Input # ステートメントでデータを読み終えたファイル、または空のファイルからデータを読み込みました。

このエラーを回避するには、EOF 関数を Input # ステートメントの直前で使って、ファイルの終端を検出します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

EOF 関数

Input # ステートメント

Line Input # ステートメント


ﾒﾓﾘが不足しています。編集を元に戻すための情報を保存できません。

この編集操作を行った後は [編集] - [元に戻す] コマンドを選択できず、現在の状態に戻せなくなります。このエラーの原因と解決法は次のとおりです。

編集領域が広すぎて保存できません。

編集領域を狭くして編集を行ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


内部ｴﾗｰです。(Error 51)

関連項目

このエラーが Error ステートメントまたは Raise メソッドによって生成されたのではないことを確認してください。このエラーの原因は次のとおりです。

Visual Basic 内部で誤動作が発生しました。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Error ステートメント

Raise メソッド


ﾌｧｲﾙ入出力時の処理 (ｱｸｾｽ ﾓｰﾄﾞ) が不正です。

関連項目

Open ステートメントで、指定したファイルの種類に対して不正な処理 (アクセス モード) を指定しました。アクセス モードは、Open ステートメントの構文の Access 節に指定します。このエラーの原因と解決法は次のとおりです。

ファイルを入力モード (Input) で開くときに、不正なアクセス モードを指定しました。

入力モードで開くときはアクセス モードを省略できますが、指定するときはファイルに対する処理として Read を指定する必要があります。入力モードで開いたファイルに対しては、Write および ReadWrite は指定できません。

ファイルを追加モード (Append) で開くときに、不正なアクセス モードを指定しました。

追加モードで開くときはアクセス モードを省略できますが、指定するときはファイルに対する処理として Write を指定する必要があります。追加モードで開いたファイルに対しては、Read と ReadWrite は指定できません。

ファイルを出力モード (Output) で開くときに、不正なアクセス モードを指定しました。

出力モードで開くときはアクセス モードを省略できますが、指定するときはファイルに対する処理として Write を指定する必要があります。出力モードで開いたファイルに対しては、Read と ReadWrite は指定できません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Open ステートメント


Sub、Function、または Property 内では定義できません。

関連項目

属性にはプロシージャ内で無効なものがあります。このエラーの原因と解決法は次のとおりです。

Public または Private をプロシージャの内部で定義しました。

この属性をプロシージャから削除してください。変数の適用範囲 (スコープ) を広げるには、モジュール レベルで再度宣言します。プロシージャ内で宣言される変数は、常にプライベートです。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

Private ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Public ステートメント

Sub ステートメント


不正な文字です。

指定した文字は、現在の構文では使えません。このエラーの原因と解決法は次のとおりです。

変数名の一部として、角かっこやハイフンのような無効な文字を使っている可能性があります。

宣言したときの変数名と比較してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾃﾞｰﾀの形式が不正です。

ファイルから読み込んだデータが、要求された形式に一致しません。このエラーの原因と解決法は次のとおりです。

プロジェクトファイルまたはオブジェクト ライブラリのファイルが破損しているか、読み込むことのできない形式になっています。

プロジェクト ファイルまたはオブジェクト ライブラリ ファイルの最新のバージョンを用意してください。

モジュールに EXE ファイルを読み込もうとしました。

EXE ファイルではなく、ソース コードをロードしてください。

[参照設定] ダイアログ ボックスと [参照] ダイアログ ボックスを使って、無効なオブジェクト ライブラリ ファイルへの参照を追加したか、Visual Basic でサポートされていない形式の Basic プロジェクトへの参照を追加しました。

エラーの発生したファイルを、それを作成したときのアプリケーションで読み込んでから、互換性のある形式で保存してください。たとえば、オブジェクト ライブラリのソース コードを MKTYPLIB および QuickBasic で処理し、Visual Basic のコードをテキスト形式で保存するなどの操作を行うことができます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


定数のﾃﾞｰﾀ型が不正です。

どの型のデータでも定数に代入できるとは限りません。このエラーの原因と解決法は次のとおりです。

ユーザー定義型、オブジェクト、または配列として定数を宣言しようとしました。

定数の宣言を削除するか、または変数として再度宣言してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｲﾐﾃﾞｨｪﾝﾄﾍﾟｲﾝでは使えません。

関連項目

すべてのステートメントが、イミディエイト ペイン内で使えるとは限りません。このエラーの原因と解決法は次のとおりです。

Const、Declare、Deftype、Dim、Function、Option Base、Option Explicit、Option Compare、Option Private、Private、Public などの宣言ステートメント、Property Let、Property Set、Property Get のプロパティ プロシージャの宣言ステートメント、または ReDim、Static、Sub、Type の各宣言ステートメントはイミディエイト ペインでは使えません。

イミディエイト ペインから宣言ステートメントを削除してください。

Sub、Function、Property、GoSub、GoTo、Return、Resume などのステートメントはイミディエイト ペインでは使えません。

上記のステートメントをイミディエイト ペインから削除してください。

イミディエイト ペインでは物理的に離れたそれぞれの行に論理的なつながりはありません。このため If ブロックのように、複数の行から成る形式のステートメントは実行できません。

このようなブロックは各ステートメントをコロン (:) で区切って並べることにより、1 つの行に入力できます。一方、行継続文字を使うと、イミディエイト ペインで 1 つのステートメントを複数の行につなげることができます。行継続文字を指定するには、スペースの後にアンダスコアを付けます ( _)。

イミディエイト ペイン内の指定したコードを実行するとプログラムの現在の状態が無効になり、プログラムの初期化が必要になります。

エラーの発生したコードをイミディエイト ペインから削除してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Const ステートメント

Declare ステートメント

Deftype ステートメント

Dim ステートメント

Function ステートメント

GoSub...Return ステートメント

GoTo ステートメント

If...Then...Else ステートメント

Option Base ステートメント

Option Compare ステートメント

Option Explicit ステートメント

Option Private ステートメント

Private ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Public ステートメント

ReDim ステートメント

Resume ステートメント

Static ステートメント

Sub ステートメント

Type ステートメント


ﾌﾟﾛｼｰｼﾞｬ内では無効です。

関連項目

このステートメントは、Sub または Function プロシージャ内では使えません。このエラーの原因と解決法は次のとおりです。

たとえば、Declare、Deftype、Private、Public、Option Base、Option Compare、Option Explicit、Option Private、Type などのステートメントのうちの 1 つが、プロシージャ内で使われました。

このステートメントをプロシージャから削除してください。このステートメントはモジュール レベルで指定できます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Declare ステートメント

Deftype ステートメント

Function ステートメント

Option Base ステートメント

Option Compare ステートメント

Option Explicit ステートメント

Option Private ステートメント

Private ステートメント

Public ステートメント

Sub ステートメント

Type ステートメント


固定長文字列の長さが不正です。

関連項目

このエラーの原因と解決法は次のとおりです。

固定長文字列が長さ 0 の文字列として宣言されています。

固定長文字列の長さは少なくとも 1 文字以上である必要があります。

固定長文字列が 16 ビット システム上では 65,529、32 ビット システム上では、() または 2^31 () の上限を超えています。

固定長文字列に対して指定した長さを短くしてください。

注   可変長文字列の長さは、文字数の上限を超えても、0 でもかまいません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

文字列型 (String)


参照が不正か、または認められません。

関連項目

ピリオドで始まる識別子は With ブロックの内部でのみ有効です。このエラーの原因と解決法は次のとおりです。

識別子がピリオドで始まっています。

識別子を完全に指定するか、ピリオドを削除してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

With ステートメント


序数が不正です。(Error 452)

ダイナミック リンク ライブラリ (DLL) を呼び出すときに、プロシージャ名の代わりに #num 構文を指定しました。このエラーの原因と解決法は次のとおりです。

式 num を番号へ変換できませんでした。

有効な数値であるか確認するか、名前を指定してプロシージャを呼び出してください。

指定した num が DLL 内の関数を指定していません。

指定されている num が DLL 内の有効な関数を指定しているか確認してください。

タイプ ライブラリ内での宣言が無効なため、無効な序数が内部で使用されています。

コードをコメントにして、エラーの発生したプロシージャを分離してください。Declare ステートメントをそのプロシージャに記述し、問題をタイプ ライブラリのベンダに報告してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾌﾟﾛｼｰｼﾞｬの外では無効です。

関連項目

このステートメントは Sub、Function、Property Get、Property Let、Property Set のいずれかのプロシージャの内部でのみ有効です。このエラーの原因と解決法は次のとおりです。

実行可能ステートメント Static と ReDim が、モジュール レベルで使われています。

モジュール レベルの変数はすべて静的変数なので、モジュール レベルでは Static ステートメントを使う必要はありません。モジュール レベルでは、ReDim ステートメントの代わりに Dim ステートメントを使ってください。モジュール レベルで動的配列を作成するには、Dim ステートメントで、かっこ内を空にして配列を宣言します。

注   宣言セクションでは、コメント文と Const、Declare、Deftype、Dim、Option Base、Option Compare、Option Explicit、Option Private、Private、Public、Type などの宣言ステートメントのみ使用可能です。Sub、Function、Property の各ステートメントはプロシージャの本文の外側、プロシージャ宣言の内部に記述します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Const ステートメント

Declare ステートメント

Deftype ステートメント

Dim ステートメント

Function ステートメント

Option Base ステートメント

Option Compare ステートメント

Option Explicit ステートメント

Option Private ステートメント

Private ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Public ステートメント

ReDim ステートメント

Static ステートメント

Sub ステートメント

Type ステートメント


ParamArray の使い方が正しくありません。

関連項目

キーワード ParamArray を指定して定義されたパラメータが、プロシージャ内で正しく使われていません。このエラーの原因と解決法は次のとおりです。

ParamArray として定義された引数を、配列または参照渡し (ByRef) で、バリアント型 (Variant) を受け取る別のプロシージャに渡そうとしました。

ParamArray パラメータをバリアント型に代入してから、バリアント型を渡してください。

Erase ステートメントまたは ReDim ステートメントを、そのプロシージャ内で ParamArray パラメータを指定して使おうとしました。

Erase ステートメントまたは ReDim ステートメントを削除してください。この 2 つの操作は、ParamArray パラメータを指定して実行できません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

ByVal キーワード

ByRef キーワード

Erase ステートメント

Optional キーワード

ParamArray キーワード

ReDim ステートメント


ﾊﾟﾀｰﾝ文字列が不正です。(Error 93)

関連項目

検索時に Like 演算で指定したパターン文字列が無効です。このエラーの原因と解決法は次のとおりです。

たとえば、[a-b のように右側の角かっこがないために無効になった文字列式が挙げられます。

文字列式が有効な文字かどうか確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Like 演算子


ﾌﾟﾛｼｰｼﾞｬの呼び出しが不正です。(Error 5)

関連項目

プロシージャ呼び出しに正しくない箇所があります。このエラーの原因と解決法は次のとおりです。

引数が有効範囲を超えている場合があります。たとえば Sin 関数は、特定の範囲内の値のみ受け取ることができます。2,147,483,648 未満の正の引数は有効ですが、引数に 2,147,483,648 を指定するとこのエラーが発生します。

引数の有効範囲を確認してください。

現在のオペレーティング システムで無効なプロシージャを呼び出そうとしたときも、このエラーが発生します。

プロシージャに関するオぺレーティング システム固有の情報を確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sin 関数

Sub ステートメント


ﾌﾟﾛｼｰｼﾞｬ名が無効です。

プロシージャの名前付け規則には、識別子に名前をつける場合よりも多くの制限があります。このエラーの原因と解決法は次のとおりです。

プロシージャを定義するときに使ったプロシージャ名が無効です。Visual Basic が同じ識別子を他の目的で使っています。

プロシージャ名を変更してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


修飾子が不正です。

関連項目

修飾子は参照先を限定するために使われます。このエラーの原因と解決法は次のとおりです。

適用範囲 (スコープ) 内に、プロジェクト、モジュール、オブジェクト、ユーザー定義型の変数のいずれかが特定されていません。

修飾子の名前を確認してください。修飾する識別子が現在の適用範囲 (スコープ) 内にあるかどうかを確認してください。たとえば、プライベート モジュール内のユーザー定義型の変数は、そのモジュール内でしか参照できません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Private ステートメント


ReDim が不正です。

関連項目

すべての配列の次元が変更できるとは限りません。このエラーの原因と解決法は次のとおりです。

変数を明示的に宣言していないために、バリアント型 (Variant) になっているとき、ReDim ステートメントを使って配列を変更しようとしました。

バリアント型は配列を取得できますが、明示的に宣言されていない場合、ReDim ステートメントを使って配列にすることはできません。ReDim ステートメントを使って要素数を指定する前に、バリアント型を宣言してください。たとえば、次のコードでは、“ReDim AVar(10)”によってこのエラーが発生しますが“ReDim BVar(10)”ではエラーが発生しません。

AVar = 1	'AVar を暗黙的に宣言します。

ReDim AVar(10)	'エラーが発生します。

.

.

.

Dim BVar	'BVar を明示的に宣言します。

ReDim BVar(10)	'エラーは発生しません。

ReDim ステートメントを使って、バリアント型の配列の複数の次元を変更しようとしました。

ReDim ステートメントを使って変更できるのは、バリアント型の配列の最後の次元のサイズだけです。変更可能な複数の次元を持てる配列を作成したいときは、バリアント型に含めることはできないので、通常の方法で宣言する必要があります。

ReDim ステートメントを使うと、通常の配列内の要素のデータ型は変更できません。変更できるのは要素の数だけです。

要素のデータ型を変更できる配列が必要な場合、バリアント型の配列を使います。その配列を最初に宣言するときは、その要素のデータ型および数を次の方法で変更することができます。

Dim MyVar As Variant	'変数を宣言します。

ReDim MyVar(10) As String	'VarType2 (文字列) の配列として再定義します。

ReDim MyVar(20) As Integer	'VarType2 (整数) の配列として再定義します。

ReDim MyVar(5) As Variant	'バリアント型の配列として再定義します。

オブジェクト ライブラリに含まれるホスト オブジェクトや、Visual Basic で実行時のみ認識されるホスト オブジェクトに、ReDim ステートメントを適用しようとしました。

ReDim ステートメントを削除してください。

注   データ型を指定しないと、変数は既定のデータ型であるバリアント型になります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

ReDim ステートメント

バリアント型 (Variant)


不正な型宣言文字です。

関連項目

型宣言文字が使えないデータ型もあります。また、型宣言文字が使えない場合もあります。このエラーの原因と解決法は次のとおりです。

As 節が付いた Private、Public、または Static ステートメント内で宣言された変数に、型宣言文字が追加されています。

型宣言文字を削除してください。

異なる型のリテラルにも型宣言文字は付けられません。たとえば & は長整数型 (Long) の型宣言文字なので、異なる型のリテラルに & を付けると、このエラーが発生します。

10.253&

型宣言文字を削除するか、適切な型宣言文字に置き換えてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Dim ステートメント

Private ステートメント

Public ステートメント

Static ステートメント


Null 文字の使い方が不正です。(Error 94)

関連項目

Null 値は、バリアント型 (Variant) の内部処理形式の 1 つで、有効なデータが含まれていないことを示します。このエラーの原因と解決法は次のとおりです。

Null 値を含むバリアント型の変数または式の値を取得しようとしました。次に例を示します。

MyVar = Null

For Count = 1 To MyVar

. . .

Next Count

変数に有効な値が入っているかどうかを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

バリアント型 (Variant)


ｵﾌﾞｼﾞｪｸﾄの使い方が不正です。

関連項目

オブジェクトが正しく使われていません。このエラーの原因と解決法は次のとおりです。

オブジェクトに対する参照を中断するため、オブジェクトに Nothing を代入したとき、次に示すようにキーワード Set を指定しませんでした。

MyObject = Nothing

Set ステートメントを使ってオブジェクトに Nothing を設定してください。変数 MyObject がオブジェクトのとき、このオブジェクトに Nothing を設定するには Set ステートメントを使います。

Set MyObject = Nothing

キーワード Set を省略すると、暗黙的にキーワード Let が使われ、参照の代入ではなく値の代入が行われます。Nothing は値の代入には使えません。

式の中で Nothing を使おうとしました。

Nothing を使わないで式を記述し直してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Nothing キーワード

Set ステートメント


ｳｫｯﾁ式が不正です。

指定したウォッチ式は、有効な式ではありません。このエラーの原因と解決法は次のとおりです。

ウォッチ式の構文が間違っている場合があります。

式のすべての構成要素の構文を確認してください。ウォッチ式の構文は、ウォッチする式が定義されているプロジェクトの国別情報に対応します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾗﾍﾞﾙが定義されていません。

関連項目

このエラーの原因と解決法は次のとおりです。

参照する適用範囲 (スコープ) 内に、(GoTo ステートメントなどで) 参照している行ラベルまたは行番号がありません。

参照先のラベルは、参照ステートメントと同じプロシージャ内にある必要があります。行ラベルは、指定したプロシージャ内でのみ参照できます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

GoTo ステートメント


[言語/国] の設定が変更されました。

このエラーの原因と解決法は次のとおりです。

Visual Basic の、既定の [言語/国] の設定を変更しました。

この操作自体に問題はありませんが、この操作によって問題が発生する可能性があるので注意してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


行が長すぎます。

Visual Basic のコード 1 行には、半角で 1,023 文字までの文字を入力できます。このエラーの原因と解決法は次のとおりです。

1 行の文字数が多すぎます。

行継続文字 (スペース + アンダスコア ( _)) を使って物理的に分かれた行をつなぐと、論理的にはつながった行を作成できます。最大 10 行までの行を、行継続文字を使って 1 つの論理行にすることができます。つまり、論理行には 10,230 文字までの文字を入力できます。これ以上の長さになるときは、行をそれぞれのステートメントに分割するか、いくつかの式を変数に代入してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


Do がありません。

関連項目

Do ループは、Do ステートメントで始まる必要があります。このエラーの原因と解決法は次のとおりです。

他のループ内にネスト (入れ子) したループが正しく終了していない場合があります。

正しい Do...Loop 構文が使われていることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Do...Loop ステートメント


LSet で扱えるﾃﾞｰﾀ型は文字列型とﾕｰｻﾞｰ定義型だけです。

関連項目

LSet ステートメントは文字列型 (String) またはユーザー定義型の変数のデータを左詰めにします。このエラーの原因と解決法は次のとおりです。

指定した変数は、文字列型またはユーザー定義型ではありません。

ある配列を別の配列に代入する場合、LSet ステートメントは機能しません。ループを使って各要素をそれぞれ代入してください。

LSet ステートメントをオブジェクトに対して使おうとしました。

LSet ステートメントを使うと、ユーザー定義型の要素を互換性を持つ異なるユーザー定義型の要素に代入することもできます。オブジェクトはユーザー定義型に似ていますが、オブジェクトに対して LSet ステートメントを使うことはできません。また、文字列型、オブジェクト、またはバリアント型 (Variant) を含むユーザー定義型の変数には、LSet ステートメントを使えません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

LSet ステートメント

ユーザー定義型


LSet は使えません。

関連項目

LSet ステートメントは、文字列型 (String) またはユーザー定義型の変数のデータを左詰めにします。このエラーの原因と解決法は次のとおりです。

LSet ステートメントを、文字列型、オブジェクト、バリアント型 (Variant) を含むユーザー定義型に使おうとしました。

ユーザー定義型の変数から、各要素を個別に異なるユーザー定義型に代入する必要があります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

LSet ステートメント

RSet ステートメント


ｳｫｯﾁ式が最大数を超えています。

ウォッチ ペインで指定できるウォッチ式の数には限りがあります。このエラーの原因と解決方法は次のとおりです。

ウォッチ ペインに含まれるウォッチ式の数が上限を超えています。

ウォッチ式を追加するには、必要のないウォッチ式を削除してください。イミディエイト ペインを使って値を調べることもできます。

詳細については、[ツール] - [ウォッチ式の追加] コマンドを選択してから F1 キーを押してください。


ﾒｿｯﾄﾞまたはﾃﾞｰﾀ ﾒﾝﾊﾞが見つかりません。

関連項目

コレクション、オブジェクト、ユーザー定義型などに対して、存在しないメンバを指定しています。このエラーの原因と解決方法は次のとおりです。

オブジェクト名やメンバ名の指定が間違っています。

名前の綴りに誤りがないかどうか調べてください。また、Type ステートメントやオブジェクトについてのマニュアルを調べて、オブジェクトやメンバの正しい名前を確認してください。

コレクションに対して範囲外のインデックスを指定しています。

Count プロパティを使ってそのコレクション メンバが定義されているかどうかを調べてください。コレクションのインデックスの先頭は 0 ではなく 1 です。Count プロパティが返す値は、使用できるインデックスの最大値です。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Collection オブジェクト

Count プロパティ (VB コレクション)

Type ステートメント


対応するかっこがありません。

ステートメント内の左かっこと右かっこの数が対応していません。このエラーの原因と解決方法は次のとおりです。

左かっこに対応する右かっこがありません。

適切な位置に、右かっこを挿入してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾓｼﾞｭｰﾙがありません。

コード内から参照するだけではモジュールはロードされません。必要なモジュールはプロジェクトの中に含める必要があります。このエラーの原因と解決方法は次のとおりです。

指定したプロジェクト内に必要なモジュールが存在しません。たとえばプロジェクト MyProject の中に MyModule がない場合、ステートメント MyModule.SomeVar = 5 はエラーになります。

モジュールをプロジェクトの中に含めるには、[ファイル] - [ファイルの追加] コマンドを選択して、[ファイルの追加] ダイアログ ボックスからモジュールを選択します。


行頭のみ許されるｽﾃｰﾄﾒﾝﾄです。

関連項目

キーワードの中には、行の先頭以外では使用できないものもあります。このエラーの原因と解決方法は次のとおりです。

1 行の中で Sub、Function、Property の各ステートメントの前に他のステートメントを記述しています。

Sub、Function、Property の各ステートメントは、Public、Private、Static の各キーワードを指定しない限り、必ず行頭になければなりません。

1 行の中で End If、Else、ElseIf の各ステートメントの前に他のステートメントを記述しています。

ブロック If 構造の場合、End If、Else、ElseIf の各ステートメントは必ず行頭になければなりません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

If...Then...Else ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


この名前は既にあるﾓｼﾞｭｰﾙ、ﾌﾟﾛｼﾞｪｸﾄ、ｵﾌﾞｼﾞｪｸﾄ ﾗｲﾌﾞﾗﾘで使われています。

1 つのプロジェクトで使用するモジュールおよびオブジェクト ライブラリに、重複する名前を付けることはできません。このエラーの原因と解決方法は次のとおりです。

プロジェクト内で既に同名のモジュールまたはオブジェクト ライブラリが参照されています。ファイル名の拡張子は名前の一部ではないので、拡張子でファイルを区別することはできません。

参照するモジュールまたはオブジェクト ライブラリの名前のうち、重複するものを変更してください。

プロジェクト内のモジュールの名前と重複するファイル名 (拡張子を除く) を持つ、オブジェクト ライブラリへの参照を追加しようとしました。

追加できなかったモジュールまたはファイルの名前を変更してください。

注   Visual Basic Version 4.0 では、同時に複数のプロジェクトを開くことはできません。


その名前付き引数は、既に指定されています。

名前付き引数は引数リストの中で 1 度だけ指定できます。このエラーの原因と解決方法は次のとおりです。

1 つの呼び出しの中で同じ名前付き引数を複数回指定しています。たとえば、プロシージャ MySub が名前付き引数 Arg1 と Arg2 を持つとき、次の呼び出しはエラーになります。

Call MySub(Arg1 := 3, Arg1 := 5)

重複する引数のいずれかを削除してください。

位置によって指定される引数と名前付き引数が重複しています。たとえば、次の呼び出しはエラーになります。

Call MySub(1, Arg1 := 3)

重複する引数のいずれかを削除してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


名前付き引数は使えません。

状況によっては名前付き引数が使えない場合もあります。このエラーの原因と解決方法は次のとおりです。

配列のインデックスとして名前付き引数を使おうとしています。次の例はエラーになります。

MyVar = MyArray(MyNamedArg := 1)

配列のインデックスでは通常の変数や定数による式を使ってください。

オブジェクトに対して名前付き引数を使おうとしました。次の例はエラーになります。

MyVar = MyObject(MyNamedArg := 1)

オブジェクトに引数を渡すときは、通常の変数や定数による式を使ってください。たとえば、そのオブジェクトが既定メソッドを持つときは、オブジェクト名によってそのメソッドが指定されます。このメソッドが引数を取るときは名前付き引数ではなく、通常の位置によって指定される引数を使ってください。

外部で定義される名前に対して名前付き引数を使おうとしています。

MyVar = [MyName](MyNamedArg := 1)

外部で定義される名前が引数を必要とするときは、通常の変数や定数による式を使ってください。

オブジェクトのデータ メンバに対して名前付き引数を使おうとしました。

MyVar = [MyObject].MyProperty(MyNamedArg := 1)

データ メンバが引数を必要とするときは、通常の変数や定数による式を使ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


名前付き引数が見つかりません。(Error 448)

プロシージャの宣言部で名前付き引数を定義していなければ、そのプロシージャを呼び出すときに名前付き引数を使うことはできません。このエラーの原因と解決方法は次のとおりです。

このプロシージャは、指定した名前の名前付き引数を受け取るように定義されていません。

引数名が間違ってないかどうか調べてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


Forがありません。

関連項目

Next ステートメントに対応する For ステートメントがありません。このエラーの原因と解決方法は次のとおりです。

対応する For ステートメントを持たない Next ステートメントが使われています。

For...Next 構造内にネストされている他の For...Next 構造が正しいかどうか確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

For Each...Next ステートメント

For...Next ステートメント

If...Then...Else ステートメント


文字列が選択されていません。

この処理を行うには、あらかじめ文字列を選択しておかなければなりません。このエラーの原因と解決方法は次のとおりです。

検索や置換を行う前に文字列を選択していません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｳｫｯﾁ式が選択されていません。

[ツール] - [インスタント ウォッチ] コマンドを選択するときは、あらかじめ式を選択しておかなければなりません。このエラーの原因と解決方法は次のとおりです。

[ツール] - [インスタント ウォッチ] コマンドを選択する前に、対象となる式を選択していません。

[ツール] - [インスタント ウォッチ] コマンドを選択する前に、コード ウィンドウ内のウォッチ式を選択して強調表示しておいてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｵﾌﾞｼﾞｪｸﾄは現在の国別情報の設定をｻﾎﾟｰﾄしていません。(Error 447)

すべての国別情報の設定をサポートしているオブジェクトは限られています。このエラーの原因と解決方法は次のとおりです。

現在のプロジェクトの国別情報をサポートしていないオブジェクトを参照しました。たとえば、現在のプロジェクトの国別情報がカナダ (フランス系) のときは、参照するオブジェクトでも同じ国別情報がサポートされている必要があります。

オブジェクトがサポートしている国別情報を確認してください。

オブジェクトが以前のバージョンのダイナミック リンク ライブラリ (DLL) の国別言語サポートに依存しています。たとえば OLE2NLS.DLL はこのような以前の DLL です。

現在のプロジェクトの国別情報をサポートしている新しい DLL を入手してください。

注   Visual Basic Version 4.0 で使用するオブジェクト ライブラリは、英語/アメリカ の設定と互換性が保たれている必要があります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｵﾌﾞｼﾞｪｸﾄは名前付き引数をｻﾎﾟｰﾄしていません。(Error 446)

オブジェクトの中には名前付き引数をサポートしていないものもあります。このエラーの原因と解決方法は次のとおりです。

名前付き引数をサポートしていないメソッドを持つオブジェクトを参照しました。

このオブジェクトのメソッドを実行するときは、位置によって引数を指定してください。引数の順序や型についての詳細は、オブジェクトのマニュアルを参照してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｵﾌﾞｼﾞｪｸﾄはこの動作をｻﾎﾟｰﾄしていません。(Error 445)

オブジェクトによっては、すべての操作がサポートされていない場合があります。このエラーの原因と解決方法は次のとおりです。

オブジェクトでサポートされていないメソッドやプロパティを参照しています。

オブジェクトのマニュアルを調べて、プロパティやメソッドの名前を確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｵﾌﾞｼﾞｪｸﾄ ﾗｲﾌﾞﾗﾘは登録されていません。

Visual Basic を使用するアプリケーションを起動するときは、いくつかのオブジェクト ライブラリがロードされなければなりません。このエラーの原因と解決方法は次のとおりです。

Visual Basic のオブジェクト ライブラリ (VAXXX.OLB) をロードしようとしましたが、適切な言語のバージョンがオペレーティング システムのレジストリに登録されていません。

使用するオブジェクト ライブラリは、英語/アメリカの設定と互換性が保たれている必要があります。

VBA.INI ファイルを Windows ディレクトリから 削除して、アプリケーションを再起動してください。


ｵﾌﾞｼﾞｪｸﾄ ﾗｲﾌﾞﾗﾘで設定されている言語は、このﾌﾟﾛｼﾞｪｸﾄと互換性がありません。

この参照はプロジェクトに追加できません。このエラーの原因と解決方法は次のとおりです。

現在のプロジェクトと一致しない国別情報を持つオブジェクト ライブラリへの参照を追加しようとしています。使用するオブジェクト ライブラリは、英語/アメリカの設定と互換性が保たれている必要があります。


ｵﾌﾞｼﾞｪｸﾄがｺﾚｸｼｮﾝではありません。(Error 451)

関連項目

プロパティ、メソッド、操作の中には、Collection オブジェクトに対してだけ有効なものがあります。このエラーの原因と解決方法は次のとおりです。

コレクション専用の操作やプロパティを、コレクション以外のオブジェクトに対して指定しています。

オブジェクトやプロパティの名前が正しく指定されているかどうかを確認してください。またオブジェクトが Collection オブジェクトであることを確認してください。さらに、オブジェクトをコレクションに加えるときに使用する Add メソッドの構文や、指定している名前が正しいかどうか確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Add メソッド

Collection オブジェクト


ｵﾌﾞｼﾞｪｸﾄが必要です。(Error 424)

関連項目

プロパティやメソッドへの参照の中には、オブジェクト名を必ず指定しなければならないものがあります。このエラーの原因と解決方法は次のとおりです。

オブジェクトのプロパティやメソッドを参照するときに、オブジェクト名を指定していません。

オブジェクト名を指定していないときは、正しく指定してください。フォームに含まれるモジュールの中からそのフォームのプロパティを参照するときはオブジェクト名を省略できますが、標準モジュールからフォームのプロパティを参照するときは必ずオブジェクト名を指定する必要があります。

指定したオブジェクト名が正しいオブジェクトとして認識されていません。

オブジェクト名の指定が正しいかどうか確認してください。またプログラムのその部分からオブジェクトを参照できることを確認してください。Collection オブジェクトを使用するときは、Add メソッドの構文や名前の指定が正しいかどうかを確認してください。

オブジェクトへの参照を代入するときに、Set ステートメントを使用していません。ただし、CreateObject 関数の戻り値をバリアント型 (Variant) の変数に代入する場合は、Set ステートメントを省略してもエラーは発生しません。

Set ステートメントを使用して、オブジェクトへの参照を代入してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Add メソッド

Collection オブジェクト

Function ステートメント

Sub ステートメント


ｵﾌﾞｼﾞｪｸﾄ変数が設定されていません。または With ﾌﾞﾛｯｸでﾕｰｻﾞｰ定義型の変数が設定されていません。(Error 91)

関連項目

オブジェクト変数を作成するには 2 段階の操作が必要です。最初にオブジェクト変数を宣言します。次に Set ステートメントを使って、オブジェクト変数へ参照を代入します。また、With...End With ブロックは、開始点である With ステートメントを実行して初期化しておく必要があります。このエラーの原因と解決方法は次のとおりです。

まだオブジェクトへの正しい参照が設定されていないオブジェクト変数を使おうとしています。

オブジェクト変数への参照を設定、または再設定してください。たとえば、次のコードで Set ステートメントを省略すると、MyObject を参照した場合にエラーが発生します。

Dim MyObject As Object	' オブジェクト変数を作成します。

Set MyObject = Sheets(1)	' 有効なオブジェクトへの参照を設定します。

MyCount = MyObject.Count	' 変数 MyCount に値を代入します。

値が Nothing であるオブジェクト変数を使おうとしています。

Set MyObject = Nothing	' オブジェクトを開放します。

MyCount = MyObject.Count	' 開放されたオブジェクトを参照しています。

オブジェクト変数に対して新しい参照を再設定してください。たとえば、新しく Set ステートメントを使って新しいオブジェクトへの参照を代入します。

有効なオブジェクトを参照していますが、そのオブジェクトを定義しているオブジェクト ライブラリが [参照設定] ダイアログ ボックスで選択されていません。

[ツール] - [参照設定] コマンドを選択して、[参照設定] ダイアログ ボックスからオブジェクト ライブラリを選択してください。

GoTo ステートメントの対象が、With ブロック内にあります。With ブロック内に分岐先を指定しないでください。With ブロックは、開始点である With ステートメントを実行して初期化する必要があります。

[実行] - [次のステートメントの設定] コマンドを選択するときに、With ブロック内の 1 行を指定しました。With ブロックは、With ステートメントを実行して初期化する必要があります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

オブジェクト変数の作成

Nothing キーワード

Set ステートメント


OLE ｵｰﾄﾒｰｼｮﾝ ｴﾗｰです。(Error 440)

関連項目

OLE オートメーション オブジェクトを利用するときに特定の種類のエラーが発生することがあります。このエラーの原因と解決方法は次のとおりです。

メソッド実行中またはオブジェクト変数のプロパティ値の取得または設定を行っている間にエラーが発生しています。このエラーは、オブジェクトを作成したアプリケーションによって報告されています。

Err オブジェクトの各プロパティを調べて、エラーの発生源とエラーの内容を確認してください。また、OLE オートメーション オブジェクトを参照しているステートメントの直前に On Error Resume Next ステートメントを挿入し、参照した後にエラーの内容を調べてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Err オブジェクト

OLE オートメーション

On Error ステートメント


ｵﾌﾞｼﾞｪｸﾄは、このﾌﾟﾛﾊﾟﾃｨまたはﾒｿｯﾄﾞをｻﾎﾟｰﾄしていません。(Error 438)

オブジェクトによっては、サポートされないプロパティやメソッドもあります。このエラーの原因と解決方法は次のとおりです。

この OLE オートメーション オブジェクトには、指定されたメソッドやプロパティは存在しません。

オブジェクトについてのマニュアルを参照して、プロパティやメソッドの名前を確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


End Sub、End Function、または End Property の後にｺﾒﾝﾄ以外のｺｰﾄﾞを記述することはできません。

関連項目

プロシージャの外側にはコメント、ディレクティブ、宣言以外は記述できません。このエラーの原因と解決方法は次のとおりです。

プロシージャの外側に実行可能コードがあります。

プロシージャの外側にある宣言行以外の行は、すべてコメント区切り文字であるシングル クォーテーション (') で始まっていなければなりません。宣言行は最初のプロシージャの定義の前になければなりません。コメントは、コードの実行時には無視されます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

コンパイラ ディレクティブに関するキーワード一覧

End ステートメント

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


Optional で定義する引数はﾊﾞﾘｱﾝﾄ型でなければなりません。

関連項目

キーワード Optional を指定できるのはバリアント型 (Variant) だけです。このエラーの原因と解決方法は次のとおりです。

バリアント型以外の型の引数に対して、Optional を指定しています。

Optional を使って宣言する引数をバリアント型に変えてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Optional キーワード

バリアント型 (Variant)


ﾒﾓﾘが足りません。(Error 7)

必要なメモリが確保できなかったか、または 64 KB のセグメント制限に到達しました。このエラーの原因と解決方法は次のとおりです。

開いているアプリケーション、文書、またはソース ファイルの数が多すぎます。

不要なアプリケーション、文書、ソース ファイルを閉じてください。

モジュールやプロシージャが大きすぎます。

極端に大きなモジュールやプロシージャをいくつかに分割してください。メモリは節約できませんが、64 KB のセグメント制限を回避できる可能性があります。

Microsoft Windows をスタンダード モードで実行しています。

Microsoft Windows をエンハンスト モードで実行してください。

Microsoft Windows をエンハンスト モードで実行中に、仮想メモリが不足しています。

ディスクを整理するなどして空き領域を確保し、仮想メモリを増加してください。

メモリ常駐 (TSR) プログラムが実行中です。

常駐プログラムの使用を中止してください。

デバイス ドライバが多すぎます。

不要なデバイス ドライバの使用を中止してください。

パブリック変数領域が不足しています。

パブリック変数を減らしてください。


ﾒﾓﾘが不足しています。ｳｫｯﾁ式が削除されます。

システムのメモリが不足するとウォッチ式が削除され、空いたメモリによって復旧が試みられます。このエラーの原因と解決方法は次のとおりです。

ロードされているアプリケーションまたはモジュールの数が多すぎます。

作業を続けるには、不要なアプリケーションまたはモジュールなどを閉じてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾘｿｰｽが不足しています。

"ハンドル" と呼ばれる特定の種類のリソースは、各種の内部的な操作を行うために使用されます。このエラーの原因と解決方法は次のとおりです。

プログラムのリソース使用量が限界に達しています。

コードを保存してファイルを閉じ、コードの再ロードを行ってください。それでもまだ同じエラーが発生するときは、コードが参照しているオブジェクトの数を減らしてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｽﾀｯｸ領域が不足です。(Error 28)

関連項目

スタックとは、プログラムの実行に応じてサイズが動的に増減するメモリ作業領域のことです。このエラーの原因と解決方法は次のとおりです。

現在呼び出されている Function、Sub、または Property プロシージャが多すぎます。

プロシージャのネストが深すぎないかどうかを調べてください。特に再帰的なプロシージャ (そのプロシージャ自体を呼び出すプロシージャ) の動作に注意してください。再帰的プロシージャが正しく停止していることを確認してください。[呼び出し履歴] ダイアログ ボックスを表示すると、現在アクティブな (スタック上にある) プロシージャを知ることができます。

ローカル変数領域が不足しています。

変数の一部をモジュール レベルで宣言してください。キーワード Property、Sub、Function の前に Static を付けると、プロシージャに含まれるすべての変数を静的に宣言できます。また Static ステートメントで変数を個別に静的に宣言することもできます。

固定長文字列が多すぎます。

プロシージャ内の固定長文字列は簡単にアクセスできますが、文字列データ自体をスタック内に置くために可変長文字列よりもスタック領域を多く消費します。固定長文字列の一部を可変長文字列に変えて宣言し直してください。プロシージャ内で宣言される可変長文字列を使った場合、(文字列データ自体を含まない) 文字列記述子だけがスタックに置かれます。また文字列をモジュール レベルで宣言したときもスタック領域は消費されません。モジュール レベルで宣言される変数は特に指定しない限り、適用範囲がパブリックになるため、モジュール内のすべてのプロシージャから参照できます。

DoEvents 関数呼び出しのネストが深すぎます。

[呼び出し履歴] ダイアログ ボックスを使って、アクティブな (スタック上にある) プロシージャを調べてください。

イベント連鎖が発生しています。

既にスタック上に存在するイベント プロシージャを呼び出すイベントが起きると、イベントの連鎖が発生します。イベント連鎖はプロシージャの無限再帰呼び出しと同じような問題を起こしますが、イベントは Visual Basic によって内部的に管理されるため、コード上で原因をつきとめることが困難です。[呼び出し履歴] ダイアログ ボックスを使って、アクティブな (スタック上にある) プロシージャを調べてください。

[呼び出し履歴] ダイアログ ボックスを表示するには、デバッグ ウィンドウ内の [プロシージャ] ボックスの右側にある [...] ボタンを選択するか、[ツール] - [呼び出し履歴] コマンドを選択してください。詳細はボタンを選択してから F1 キーを押してください。


関連項目

再帰プロシージャの作成

DoEvents 関数

Function ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Static ステートメント

Sub ステートメント


文字列領域が不足です。(Error 14)

Visual Basic では非常に大きな文字列を使用できますが、他のプログラムの動作や文字列の操作方法によってはこのエラーが発生することがあります。このエラーの原因と解決方法は次のとおりです。

評価の途中で一時的に文字列を必要とする式がこのエラーを起こすことがあります。たとえば、システムによっては次のコードがこのエラーを起こすことがあります。

MyString = "Hello"

For Count = 1 To 100

MyString = MyString & MyString

Next Count

文字列を別の変数に代入してください。

メモリが不足しているため、文字列のための領域を割り当てられません。

不要なアプリケーションを終了してメモリを確保してください。


ｵｰﾊﾞｰﾌﾛｰしました。(Error 6)

変数に保存できないような大きな値を代入しようとすると、オーバーフローが発生します。このエラーの原因と解決方法は次のとおりです。

代入、計算、またはデータ型変換の結果が、その変数のデータ型の値の範囲を超えています。

その値を格納できる範囲を持つ型の変数に代入してください。

プロパティに、許容範囲を超える値が代入されています。

許容範囲内の値をプロパティに代入してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ParamArrayで定義する引数はﾊﾞﾘｱﾝﾄ型の配列として宣言する必要があります。

関連項目

パラメータ ParamArray に指定する各引数は、それぞれ異なるデータ型にすることができます。そのため、パラメータ自体をバリアント型 (Variant) の配列として宣言する必要があります。またパラメータ ParamArray には任意の数の引数を指定できます。プロシージャを呼び出すときに与えられた引数は、与えられた順にバリアント型配列の各要素に格納されます。この例を次に示します。

Sub MySub(ParamArray VarArg())

. . .

End Sub

Call MySub ("First arg", 2, 3.54)

このエラーの原因と解決方法は次のとおりです。

プロシージャ定義部でパラメータ ParamArray がバリアント型以外の型の配列として定義されています。

バリアント型の要素を持つ配列として宣言してください。

パラメータ ParamArray のデータ型が直接指定されておらず、プロシージャ宣言部が特定の Deftype ステートメントの適用範囲に含まれているために、パラメータがバリアント型以外の型として宣言されています。

As Variant を使ってパラメータ ParamArray の型を明示的に指定してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Deftype ステートメント

Function ステートメント

ParamArray キーワード

Sub ステートメント

バリアント型 (Variant)


ﾊﾟｽが見つかりません。(Error 76)

関連項目

ファイルを指定するためのパスは、ドライブ、ディレクトリ、ファイルが含まれるディレクトリに達するまでのサブディレクトリによって構成されています。パスは絶対パスと相対パスでの指定が可能です。このエラーの原因と解決方法は次のとおりです。

ファイルやディスクへアクセスしたときに、Open、MkDir、ChDir、RmDir の各ステートメントによって指定されたパスが見つかりません。

パスの指定を修正してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

ChDir ステートメント

MkDir ステートメント

Open ステートメント

RmDir ステートメント


ﾊﾟｽ名が無効です。(Error 75)

関連項目

ファイルやディスクへアクセスしたときに、Open、MkDir、ChDir、RmDir の各ステートメントを使って、パスで指定されているファイルに対してアクセスできません。このエラーの原因と解決方法は次のとおりです。

ファイル名の指定が正しくありません。

ファイル名は、絶対パスか相対パスで指定します。絶対パスはドライブ名で始まり (他のドライブのファイルの場合)、ルート ディレクトリからファイルまでのパスを指定します。絶対パスでないものは、すべて現在のドライブとディレクトリに対する相対パスです。

既存の読み取り専用のファイルを置き換えて保存しようとしています。

対象となるファイルの属性を読み取り専用以外に変更するか、新しいファイル名で保存してください。

読み取り専用のファイルをシーケンシャル出力モード (Output または Append) で開こうとしています。

シーケンシャル入力モード (Input) で開くか、ファイルの読み取り専用属性を変更してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

ChDir ステートメント

MkDir ステートメント

Open ステートメント

RmDir ステートメント


書き込みできません。(Error 70)

関連項目

読み取り専用のディスクやロックされているファイルに書き込みをしようとすると、このエラーが発生します。このエラーの原因と解決方法は次のとおりです。

読み取り専用のファイルをシーケンシャル出力モード (Output または Append) で開こうとしています。

シーケンシャル入力モード (Input) でファイルを開くか、ファイルの書き込み禁止属性を変更してください。

読み取り専用のディスク上にあるファイルをシーケンシャル出力モードで開こうとしています。

ディスクの読み取り専用を解除するか、シーケンシャル入力モードでファイルを開いてください。

他のプロセスによってロックされているファイルに書き込もうとしています。

ファイルが解放されるまで待ってください。

レジストリ にアクセスしようとしましたが、現在の権限に、レジストリにアクセスする権限は含まれていません。32 ビットの Microsoft Windows システムでは、レジストリにアクセスするには、レジストリにアクセスする権限を持つ必要があります。権限を変更するか、システム管理者に権限を変更してもらう必要があります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Open ステートメント


同じﾌﾟﾛﾊﾟﾃｨに対するﾌﾟﾛﾊﾟﾃｨ ﾌﾟﾛｼｰｼﾞｬの定義が一致していません。または省略可能なﾊﾟﾗﾒｰﾀ､ParamArray が含まれています。

関連項目

不適切なプロパティ プロシージャを使おうとしています。このエラーの原因と解決方法は次のとおりです。

Property Get ステートメントまたは Property Set ステートメントが必要な場所で Property Let ステートメント構文を使おうとしています。

プロシージャの型に一致する呼び出し構文を使ってください。

Property Let ステートメントまたは Property Set ステートメントが必要な場所で Property Get ステートメント構文を使おうとしています。

プロシージャの型に一致する呼び出し構文を使ってください。

Property Get ステートメントまたはProperty Let ステートメントが必要な場所で Property Set ステートメント構文を使おうとしています。

プロシージャの型に一致する呼び出し構文を使ってください。

プロシージャの戻り値の型と、戻り値を代入する変数の型が一致しません。

変数の型をプロシージャと一致させるか、戻り値をバリアント型 (Variant) 変数に代入するか、またはプロシージャの戻り値の型をバリアント型に変換してください。Visual Basic では多くの場合、一致しないデータ型は適切に変換されますが、変換できないこともあります。たとえば数値を文字列に代入すると、その数値を文字列形式で表現した値が代入されます。文字列を数値に代入すると、文字列が数値として解釈できる場合のみ、適切な変換が行われます。文字列が数値を表さないときはエラーが発生します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント


ﾌﾟﾛｼﾞｪｸﾄが見つかりません。

プロジェクトが見つかりません。このエラーの原因と解決方法は次のとおりです。

指定されたプロジェクトが見つかりません。

プロジェクトの指定内容を確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾌﾟﾛﾊﾟﾃｨまたはﾒｿｯﾄﾞが見つかりません。(Error 423)

オブジェクトの名前はオブジェクト ライブラリ内のオブジェクトの宣言と完全に一致している必要があります。このエラーの原因と解決方法は次のとおりです。

object.method または object.property の形式で参照が行われましたが、method や property が定義されていません。

object として指定されている名前が間違っている可能性があります。[オブジェクト ブラウザ] ダイアログ ボックスを使って、オブジェクト内で定義されているプロパティやメソッドを調べてください。適切なライブラリとオブジェクトを選択すると、プロパティとメソッドが表示されます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾓｼﾞｭｰﾙ ﾚﾍﾞﾙでは定義できません。

Visual Basic に対して、修飾子付きのプロシージャ呼び出しができない場合があります。このエラーの原因と解決方法は次のとおりです。

qualifier.item 形式のプロシージャ呼び出しでモジュール名を指定しています。

指定した修飾子が既に認識されている場合、プロシージャが呼び出されるときに改めて修飾子を指定する必要がないと、このエラーが発生することがあります。この場合、修飾子をすべて削除すると、プロシージャ呼び出しを正常に受け取るようになります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


対象はｺﾚｸｼｮﾝでなければなりません。

2 つの識別子の間に感嘆符 (!) を記述すると、コレクションを指定したことになります。このエラーの原因と解決方法は次のとおりです。

感嘆符 (!) の左側に記述した名前がコレクション名ではありません。

この名前が適切なコレクションを示しているときは、名前が正確かどうかを確認してください。感嘆符は単精度浮動小数点型 (Single) の型宣言文字としても使用されることに注意してください。名前がコレクションを示していないときは、変数名に型宣言文字 ! を付けたものが他の名前と結合されて認識されています。

詳細については、調べたい項目を選択してから F1 キーを押してください。


値が有効範囲にありません。

配列の有効範囲の指定方法が間違っています。このエラーの原因と解決方法は次のとおりです。

配列の範囲の指定に誤りがあります。たとえば次の指定はエラーになります。

Dim MyArray(10 To -5)	' 降順による指定はできません。

Dim MyArray(0 To 0)	' 要素が存在しません。

構文に従って指定していることを確認してください。正しい指定の例を次に示します。

Dim MyArray(-5 To 10)

詳細については、調べたい項目を選択してから F1 キーを押してください。


Resume がありません。(Error 20)

関連項目

Resume ステートメントはエラー処理ルーチンの内部だけに記述でき、アクティブなエラー処理ルーチンの中だけで実行できます。このエラーの原因と解決方法は次のとおりです。

Resume ステートメントがエラー処理ルーチン以外の場所に記述されています。

ステートメントをエラー処理ルーチンに移動するか、削除してください。

エラーが発生していない状態でエラー処理ルーチンに制御が移されています。

行ラベルの誤りが考えられます。プロシージャを超えてラベルにジャンプすることはできません。プロシージャの中でエラー処理ルーチンを示すラベルにジャンプしている場所を探してください。On Error GoTo ステートメントと GoTo ステートメントのラベルが重複していたら、適切なジャンプ先を示すようにラベルを変更してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

GoTo ステートメント

On Error ステートメント

Resume ステートメント


GoSub がありません。(Error 3)

関連項目

Return ステートメントには、対応する GoSub ステートメントが必要です。このエラーの原因と解決方法は次のとおりです。

Return ステートメントに対応する GoSub ステートメントがありません。

GoSub ステートメントを誤って削除していないかどうか確認してください。

For...Next、While...Wend、Sub...End Sub などのステートメントの対応はコンパイル時に確認されますが、GoSub ステートメントと Return ステートメントの対応は実行時に確認されます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

For...Next ステートメント

GoSub...Return ステートメント

Sub ステートメント

While...Wend ステートメント


RSet で扱えるﾃﾞｰﾀ型は、文字列型だけです。

関連項目

RSet ステートメントは固定長文字列や可変長文字列を右揃えにします。このエラーの原因と解決方法は次のとおりです。

文字列型 (String) 以外の変数に対して RSet ステートメントを使用しています。

可能な場合は変数を文字列型に変換してください。変換できないときは RSet ステートメントの使用を中止してください。

注   LSet ステートメントはユーザー定義型変数を別のユーザー定義型変数にコピーできますが、移植できない可能性があるのでこのような使い方はできる限り避けてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

LSet ステートメント

RSet ステートメント


実行時ｴﾗｰ <number>:

ユーザー定義のエラーです。このエラーの原因と解決方法は次のとおりです。

Visual Basic のエラーに該当しないエラーが発生しました。

エラーの原因となるオブジェクトやオブジェクト ライブラリのマニュアルを調べてエラー処理を行ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


検索文字列が長すぎるか複雑すぎます。

関連項目

Visual Basic のパターン マッチング機能にはいくつかの制限があります。このエラーの原因と解決方法は次のとおりです。

検索文字列が長すぎるか、ワイルド カードの組み合わせが間違っています。

検索文字列を短くするか、単純にして、再検索してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Like 演算子


検索文字列を指定してください。

関連項目

検索文字列を指定する必要があります。このエラーの原因と解決方法は次のとおりです。

比較対象となる文字列を指定せずに、検索しようとしています。

検索文字列を指定する必要があります。長さ 0 の文字列 ("") は置換文字列として指定できますが、検索文字列として指定できません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

比較演算子

Like 演算子


検索文字列が見つかりませんでした。

関連項目

検索文字列が見つかりません。このエラーの原因と解決方法は次のとおりです。

指定された検索文字列が検索範囲内に見つかりません。

検索を続けるときは検索範囲を拡大してください。

パターン マッチングの式の左かっこを指定していません。

左かっこを補ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Like 演算子


Seek の実行に失敗しました。ﾃﾞｨｽｸから読み書きできません。

関連項目

Seek ステートメントがディスクに対して直接実行されています。このエラーの原因と解決方法は次のとおりです。

読み込もうとしたファイルやディスクに読み取り専用属性が設定されているか、ディスクが物理的に読み取り専用になっているか、またはロックされています。

読み取り専用属性、物理的な読み取り専用、またはロックを解除してください。他のプロセスによってファイルがロックされているときはロックを解除できません。

ディスクがありません。たとえば、交換可能なディスクが物理的に交換されています。

ファイルを他のディスクに移動しているときは、そのディスクを使ってください。そのようなディスクがないときは、ファイルにアクセスできません。

読み込もうとしたプロジェクトファイル、オブジェクト ライブラリ、タイプ ライブラリが壊れています。

新しいライブラリ ファイルやプロジェクト ファイルを用意してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Seek ステートメント


End Select がありません。

関連項目

Select Case 構造は End Select ステートメントで終了します。このエラーの原因と解決方法は次のとおりです。

Select Case ステートメントに対応する End Select ステートメントがありません。

Select Case...End Select 構造の内側にある他の Select Case...End Select 構造と間違って対応していないか確認してください。複数の Select Case ステートメントがネストしている場合、それぞれに End Select ステートメントが必要です。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

End ステートメント

Select Case ステートメント


不正なｳｫｯﾁ式が選択されました。

関連項目

場合によっては有効なウォッチ式が選択できないことがあります。このエラーの原因と解決方法は次のとおりです。

[インスタント ウォッチ] コマンドを選択しましたが、有効な式が選択されていません。たとえばコメントや Sub プロシージャ呼び出しは選択できません。

有効な式を選択するか、[ツール] - [ウォッチ式の追加] コマンドを使って有効な式を入力してください。

ウォッチ式は、式を定義しているプロジェクトの国別情報設定に適合する構文で記述する必要があります。

国別情報設定に適合するように、式を変更してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Sub ステートメント


SHARE.EXE が必要です。

Visual Basic 起動時には SHARE.EXE が実行中でなければなりません。このエラーの原因と解決方法は次のとおりです。

Visual Basic を起動する前に SHARE.EXE を起動していません。

アプリケーションを終了し、SHARE.EXE を起動してからアプリケーションを再起動してください。今後この問題を回避するには、AUTOEXEC.BAT ファイルで SHARE.EXE を起動するように指定して、システム起動時に SHARE.EXE が自動的に実行されるようにしてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関数は指定された DLL には定義されていません。(Error 453)

ダイナミック リンク ライブラリ (DLL) が参照されましたが、指定された関数は DLL に含まれていません。このエラーの原因と解決方法は次のとおりです。

関数宣言で無効な番号が指定されています。

正しい番号に修正するか、名前を使って関数を呼び出してください。

DLL 名は適切ですが、指定された関数が含まれていないバージョンの DLL が使用されています。

使用するシステムに適切なバージョンの DLL が存在する場合でも、環境変数 PATH で以前のバージョンの存在するディレクトリが正しいバージョンの存在するディレクトリよりも先に指定されていると、不適切な DLL にアクセスします。システムの設定を修正してください。新しいバージョンの DLL がないときは適切な DLL を入手してください。

32 ビット版の Microsoft Windows を使用しているときは、DLL と (使用しているならば) エイリアスの両方が正しい名前である必要があります。

DLL 名とエイリアス名が正確であることを確認してください。

32 ビット DLL には Unicode 文字列と ANSI 文字列に対応するために、少しずつ異なる複数の関数が含まれています。名前の末尾に A が付く関数は ANSI 対応です。名前の末尾に W が付く関数は Unicode 対応です。

関数が文字列型 (String) の引数を持つときは、関数名の末尾に A を追加してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


指定されたﾌｧｲﾙ(ﾗｲﾌﾞﾗﾘまたはﾌﾟﾛｼﾞｪｸﾄ) は、既に登録されています。

[参照設定] ダイアログ ボックスには参照登録されるライブラリが表示されます。このエラーの原因と解決方法は次のとおりです。

[参照設定] ダイアログ ボックスの [参照] ボタンを選択してから、既に [参照可能なライブラリ ファイル] に表示されているタイプ ライブラリを選択しています。

他のプロジェクトやタイプ ライブラリをプロジェクトに加えるには、[ツール] - [参照設定] コマンドを選択して、タイプ ライブラリのチェック ボックスをオンにしてください。

注   Visual Basic Version 4.0 では、同時に複数のプロジェクトを開くことはできません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


Typeﾌﾞﾛｯｸ内に不正なｽﾃｰﾄﾒﾝﾄが含まれています。

関連項目

Type...End Type ステートメント ブロックの中には要素名 (およびそれに付随する As type 節) とコメント以外は記述できません。このエラーの原因と解決方法は次のとおりです。

ユーザー定義型の定義部に不適切なステートメントが含まれています。

コメント、要素名、As type 節以外は削除してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Type ステートメント


このｽﾃｰﾄﾒﾝﾄはTypeﾌﾞﾛｯｸの外では無効です。

関連項目

ユーザー定義型の要素を宣言する Type...End Type ステートメント ブロックの内側では、他の変数宣言とは異なる構文が使用されます。このエラーの原因と解決方法は次のとおりです。

Type...End Type ブロックの外側やステートメントの外側で変数を宣言しようとしています。

Type...End Type ブロックの外側で As 節を使って変数を宣言するときは、Dim、Redim、Static、Public、Private のいずれかのステートメントを使う必要があります。たとえば次のコードでは、最初の MyVar の宣言でこのエラーを起こします。2 番めと 3 番めの宣言はエラーになりません。

MyVar As Double	' この宣言はエラーです。

Dim MyVar As Double	' この宣言は有効です。

Type AType

MyVar As Double	' この宣言は Type ブロックの

End Type	' 内側にあるので有効です。

End Type ステートメントに対応する Type ステートメントがありません。

対応しいない End Type ステートメントがないかどうかを調べて、対応する Type ステートメントを前に追加するか、End Type ステートメントを削除してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Type ステートメント


ｽﾃｰﾄﾒﾝﾄが複雑すぎます。

関連項目

ステートメントを解析できません。このエラーの原因と解決方法は次のとおりです。

ステートメントが複雑すぎて解釈できません。

ステートメントを小さくいくつかに分割するか、複雑な条件節を論理演算子と If...Then...Else ステートメントで書き換えてください。

ステートメントや関数から呼び出している関数のネストが深すぎます。

関数呼び出しを先に行って、結果を変数に保存してください。それから、その変数をステートメント内で使用すると、エラーを起こしているステートメントはより単純になります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

If...Then...Else ステートメント


Select Case と Case の間にｽﾃｰﾄﾒﾝﾄやﾗﾍﾞﾙを指定することはできません。

関連項目

Select Case ステートメントと最初の Case ステートメントの間にはコメント以外は記述できません。このエラーの原因と解決方法は次のとおりです。

Select Case ステートメントと最初の Case ステートメントの間に別のステートメントがあります。たとえば次のコードはエラーです。

Select Case SomeVar

' この行はコメントなので記述できます。

Stop	' Stop ステートメントを記述するとエラーが発生します。

Case SomeValue

. . .

End Select

Select Case ステートメントの直後には、Case ステートメントがなければなりません。両ステートメントの間にコメントをはさむときは、必ずコメント記号 (') を付けてください。コメント以外のものがこの場所に記述されているときは、それを正しい位置に移動するか、削除してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Select Case ステートメント


式が複雑すぎます。(Error 16)

変数に代入されない文字列 (関数の戻り値など) は、文字列式の評価が終了するまで一時的な領域に保存されます。浮動小数点式で使用できる部分式の数はプラットフォームによって異なります。たとえば、32 ビットの Microsoft Windows オペレーティング システムでは、浮動小数点式のネストは 8 レベルまでに制限されています。このエラーの原因と解決方法は次のとおりです。

作成された文字列式が複雑で、一時的に保存する文字列の量が多すぎます。

文字列を変数に代入しておき、式の中ではその変数を使用してください。浮動小数点式でネストされている部分式が多すぎます。エラーの発生を防ぐために、式をできるだけ多くの式に分けてください。

注   以前のバージョンの Visual Basicでは、エラー番号 16 は“String expression too complex”に割り当てられていました。Visual Basic Version 4.0 では、このエラー状況は発生しません。既存のプログラムでこのエラーをトラップして処理している場合は、新しいエラーとの競合を避けるため、そのコードを削除する必要があります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


Sub、Function、または Propertyが定義されていません。(Error 35)

関連項目

Sub、Function、Property などのプロシージャを呼び出すには、あらかじめそのプロシージャを定義する必要があります。このエラーの原因と解決方法は次のとおりです。

プロシージャ名が間違っています。

名前を正確に指定してください。

[参照設定] ダイアログ ボックスで参照登録していないプロジェクトに含まれているプロシージャを呼び出しています。

参照を登録するには

1	[ツール] - [参照設定] コマンドを選択します。

2	呼び出そうとするプロシージャを含むプロジェクトを探します。プロジェクト名がダイアログ ボックス内に表示されないときは、[参照] ボタンを選択してプロジェクトを探します。

3	プロジェクト名の左側にあるチェック ボックスをオンにします。

4	[OK] ボタンを選択します。

呼び出しを行っている場所からプロシージャを参照できません。

あるモジュール内で Private を指定して宣言されているプロシージャは、そのモジュールの他のプロシージャから呼び出せません。Option Private Module が指定されているときは、モジュール内のプロシージャは他のプロジェクトから呼び出せません。プロシージャが定義されている場所を調べるには [編集] - [検索] コマンドを選択します。

宣言したダイナミック リンク ライブラリ (DLL) ルーチンが、指定したライブラリの中に存在しません。

目的のルーチンの番号または名前を調べてください。DLL のバージョンが正しいかどうか確認してください。パスの設定で、以前のバージョンの DLL が格納されているディレクトリが、新しいバージョンの DLL のディレクトリよりも先に指定されているときは、以前のバージョンの DLL が使われ、エラーが発生します。

注   Visual Basic Version 4.0 では、同時に複数のプロジェクトを開くことはできません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

Option Private ステートメント

Private ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Sub ステートメント


ｲﾝﾃﾞｯｸｽが有効範囲にありません。(Error 9)

関連項目

配列の要素やコレクションのメンバには有効範囲があります。このエラーの原因と解決方法は次のとおりです。

存在しない配列要素を参照しています。

インデックスが有効範囲より大きいかまたは小さい可能性があります。または、その時点で、配列に次元が割り当てられていないことが考えられます。配列の宣言部分を調べて、インデックスの上限と下限を確認してください。動的配列を使用している場合は、UBound 関数と LBound 関数を使って、条件に応じて配列要素を指定できるように制御します。インデックスが変数で指定されている場合は、変数名が正しいかどうかを確認してください。

配列の宣言で要素数が指定されていません。たとえば次のコードはエラーになります。

Dim MyArray() As Integer

MyArray(8) = 234	' エラーが発生します。

Visual Basic では、次元の指定を省略しても範囲 (たとえば、0 ～ 10) が自動的に設定されることはありません。配列要素の範囲は Dim ステートメントまたは ReDim ステートメントを使って必ず指定するようにしてください。

存在しないコレクションのメンバを参照しています。

インデックスで要素を指定する代わりに For Each...Next 構造を使ってください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

配列の作成

Dim ステートメント

For Each...Next ステートメント

LBound 関数

ReDim ステートメント

UBound 関数


構文ｴﾗｰ

関連項目

プログラムの動作を決定できません。このエラーの原因と解決方法は次のとおりです。

キーワードや引数が間違っています。

キーワードや名前付き引数を正確に指定する必要があります。オンライン ヘルプを参照して正しい名前を確認してください。

コード内で指定しているカンマなどの句読点が不適切です。

オプションの引数を省略するときは、カンマ (,) を使って省略位置を示す必要があります。

プロシージャが定義されていません。

プロシージャ名を確認してください。

同一のプロシージャ宣言の中でキーワード Optional とキーワード ParamArray を同時に使用しています。

ParamArray 引数を Optional 引数にすることはできません。どちらか一方を残し、他方は削除してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Optional キーワード

ParamArray キーワード

Sub ステートメント


引数が多すぎます。

関連項目

1 つのプロシージャで使用できる引数は最大 60 個です。このエラーの原因と解決方法は次のとおりです。

60 個を超える引数を指定しています。

60 個を超える引数が必要なときは、ユーザー定義型を定義して異なる型を持つ複数の引数を 1 つにまとめるか、末尾の引数を ParamArray にしてここに複数の引数を渡すようにします。配列を使って複数の引数をまとめることもできます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

ParamArray キーワード


次元が多すぎます。

関連項目

配列の最大の次元は 60 です。このエラーの原因と解決方法は次のとおりです。

60 を超える次元を持つ配列を宣言しようとしています。

次元数を減らしてください。

配列の次元は制限内ですが、実際にその配列を作成するためのメモリが不足しています。

メモリを確保するか、次元数を減らしてください。また、バリアント型 (Variant) の要素を持つ配列や、バリアント型の変数に配列が格納されているときは、要素のデータ型を正確に指定した同じ次元数の配列を再宣言してください。たとえば、整数だけを保存するときに整数型 (Integer) の配列を宣言すると、バリアント型の配列よりもメモリ使用量が少なくなります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

配列の作成

ReDim ステートメント


DLL のｱﾌﾟﾘｹｰｼｮﾝ ｸﾗｲｱﾝﾄが多すぎます。(Error 47)

Visual Basic のダイナミック リンク ライブラリ (DLL) は、同時に 50 個までのホスト アプリケーションからのアクセスを受け付けます。このエラーの原因と解決方法は次のとおりです。

複数の Visual Basic のホスト アプリケーションが 1 つの Visual Basic の DLL に同時にアクセスしようとしています。

現在実行中の、Visual Basic にアクセスするアプリケーションの数を減らしてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾌｧｲﾙが多すぎます。(Error 67)

同時に開くことのできるファイルの数には制限があります。このエラーの原因と解決方法は次のとおりです。

MS-DOS の場合、オペレーティング システムで許可されている数以上のファイルがルート ディレクトリに作成されている可能性があります。

MS-DOS では、ルート ディレクトリに作成できるファイル数には制限 (通常は最大 512) があります。ルート ディレクトリで、ファイルを開く、閉じる、または保存するという操作を行っている場合は、サブディレクトリで作業するようにプログラムを変更してください。

MS-DOS の場合、CONFIG.SYS ファイルの files= で設定される数を超えるファイルが開かれている可能性があります。

CONFIG.SYS ファイルの files= で設定される数値を増やして、システムを再起動してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


行継続文字を使いすぎています。

行継続文字を使って継続できる行数には制限があります。このエラーの原因と解決方法は次のとおりです。

行継続文字を使って、10 行を超えて継続しようとしています。

1 行を長くするか (行継続文字の数を減らす)、接続されている行全体を複数のステートメントに分割してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


型宣言文字と宣言されたﾃﾞｰﾀ型が一致しません。

型宣言文字を使っても、変数のデータ型を後から変更することはできません。このエラーの原因と解決方法は次のとおりです。

変数をある型で宣言してから、同じ適用範囲内で、同じ名前の変数に異なる型の型宣言文字を付けて参照しています。

変数に代入されるデータの型を変更したい場合、変数をバリアント型 (Variant) として宣言してください。型宣言文字を誤って付けているときは、宣言文字を削除するか変更してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


型宣言文字は使えません。

関連項目

バイト型 (Byte)、ブール型 (Boolean)、日付型 (Date)、オブジェクト型、バリアント型 (Variant) などに対応する型宣言文字はありません。このエラーの原因と解決方法は次のとおりです。

As 節を持つ変数宣言 (Dim、Static、Public など) で型宣言文字が使用されています。

型宣言文字と As 節のいずれかを削除してください。

型宣言文字を使わずに暗黙に宣言された変数に対して、型宣言文字を付けて参照を行っています。

MyVar = 20	' 暗黙に宣言されます。

MyVar% = 25	' エラーが発生します。

型宣言文字を削除するか、変数宣言を修正してください。

注   型宣言文字を指定して明示的に変数を宣言した場合、その変数を参照するときは型宣言文字を省略できます。

Dim MyStr$

MyStr = "明示的に宣言されているので $ は省略可能です。"

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

データ型の概要

Dim ステートメント

Public ステートメント

Static ステートメント

バリアント型 (Variant)


型宣言文字が必要です。

宣言の方法によっては、必ず型宣言文字を指定する必要があります。このエラーの原因と解決方法は次のとおりです。

型宣言文字を付けて暗黙の宣言をした変数が、型宣言文字を付けずに参照されています。たとえば次のコードはこのエラーになります。

MyStr$ = "暗黙の宣言"

MyStr = "MyStr$ を参照しようとして MyStr が参照されています。"

明示的に宣言するか、参照部分に型宣言文字を付けてください。

注   型宣言文字を指定して明示的に変数を宣言した場合、その変数を参照するときは型宣言文字を省略できます。

Dim MyStr$

MyStr = "明示的に宣言されているので $ は省略可能です。"

詳細については、調べたい項目を選択してから F1 キーを押してください。


型が一致しません。(Error 13)

関連項目

Visual Basic Version 4.0 では、データ型の変換機能により、以前のバージョンでは不可能だった代入を強制的に行うことができます。ただし、以下のような状況ではエラーが起きる可能性があります。

変数やプロパティの型が正しくありません。たとえば整数値を必要とする変数には、整数値として認識できない文字列を代入できません。

互換性のあるデータ型どうしの間でのみ代入を行ってください。たとえば、整数型 (Integer) は長整数型 (Long) に代入できます。単精度浮動小数点数型 (Single) は倍精度浮動小数点数型 (Double) に代入できます。また、バリアント型 (Variant) にはユーザー定義型を除くどの型でも代入できます。

プロパティや値を要求するプロシージャに、オブジェクトが渡されています。

適切なプロパティを渡すか、オブジェクトに対する適切なメソッドを呼び出してください。

式を指定する箇所に、モジュール名またはプロジェクト名が指定されています。たとえば次のコードはエラーになります。

Debug.Print MyModule

式を指定してください。

従来の Basic のエラー処理方法で、バリアント型のエラー値を使おうとしました。たとえば、次に示すように Error ステートメントの引数としてエラー値を指定すると、エラーが発生します。

Error CVErr(n)

エラーを指定して発生させるには、Visual Basic の組み込みまたはユーザー定義のエラーに変換してから、エラーを生成してください。

CVErr 関数の返す値 (エラー値) は日付型 (Date) には変換できません。この例を次に示します。

MyVar = CDate(CVErr(9))

Select Case ステートメントなどの制御構造を使って、CVErr 関数が返す値を適切な型に変換してください。

実行時にこのエラーが発生した場合、一般には式に含まれるバリアント型の内部処理形式が不適切か、または Print # ステートメント内で配列を含んだバリアント型を指定したと考えられます。

配列を出力するには、個々の要素を順に表示するループを作成してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

CVErr 関数

データ型の概要

Print # ステートメント

Select Case ステートメント


型が一致しません。配列またはﾕｰｻﾞｰ定義型を指定してください。

関連項目

引数やパラメータの型には、その値が配列、またはユーザー定義型であるかどうかを決定する情報が含まれています。このエラーの原因と解決方法は次のとおりです。

配列またはユーザー定義型として定義されているパラメータに、配列やユーザー定義型の要素、単一の値、リテラル文字列、定数などが渡されています。

引数を変更するか、パラメータの定義を変更してください。

引数として配列またはユーザー定義型を指定していますが、引数のデータ型が、受け側のパラメータで定義されているデータ型と異なります。

引数のデータ型を変更するか、パラメータの定義を変更してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Type ステートメント


ﾃﾞｨｽｸから読み込むことができません。

ディスクからファイルを読み込めません。このエラーの原因と解決方法は次のとおりです。

ディスク ドライブのふたが閉まっていません。

交換可能なディスク (フロッピーディスクなど) の場合は、ドライブのふたをきちんと閉めてください。

ディスクの挿入方向が間違っています。

正しい方向にディスクを挿入してください。

ディスクが適切にフォーマットされていません。

ディスクを再フォーマットしてください。誤って必要なデータを消去しないように注意してください。

ネットワークに問題があります。

再起動して、ネットワークに接続し直してください。

記録密度の違いにより、ドライブがディスクを読めません。

別のドライブを使用するか、そのドライブで読めるディスクにコピーしてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾃﾞｨｽｸに書き込めません。

ディスクにファイルを書き込めません。このエラーの原因と解決方法は次のとおりです。

ディスク ドライブのふたが閉まっていません。

交換可能なディスク (フロッピーディスクなど) の場合は、ドライブのふたをきちんと閉めてください。

ディスクの挿入方向が間違っています。

正しい方向にディスクを挿入してください。

ディスクが適切にフォーマットされていません。

ディスクを再フォーマットしてください。誤って必要なデータを消去しないように注意してください。

ネットワークに問題があります。

再起動して、ネットワークに接続し直してください。

記録密度の違いにより、ドライブがディスクに書き込めません。

別のドライブを使用するか、そのドライブで読めるディスクにコピーしてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


検索文字列内に対応するかっこがありません。

左かっこを指定する場合は対応する右かっこが必要です。このエラーの原因と解決方法は次のとおりです。

検索文字列内の左かっこと右かっこが対応していません。

適切な位置に右かっこを挿入してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


認識できない言語設定です。

ロードしようとしているプロジェクトのコードの国別情報は、このアプリケーションでは現在サポートされていません。このエラーの原因と解決方法は次のとおりです。

あるシステムの上でプロジェクトを作成してから別のシステムに移動した場合、移動先のシステムが必要な国別情報をサポートしていないことがあります。たとえば移動先のシステムの OLE2NLS.DLL で国別情報がサポートされていない場合があります。

適切なダイナミック リンク ライブラリ (DLL) をシステムにインストールしてください。

適切なオブジェクト ライブラリがありません。

適切なオブジェクト ライブラリを用意して、ライブラリが格納されているディレクトリをパスに登録してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


このｵﾌﾞｼﾞｪｸﾄ ﾗｲﾌﾞﾗﾘの機能はｻﾎﾟｰﾄされていません。

Visual Basic とオブジェクト ライブラリの間に互換性がない可能性があります。このエラーの原因と解決方法は次のとおりです。

Visual Basic でサポートしていないオブジェクト ライブラリのデータ型または関数を参照しています。

オブジェクト ライブラリのマニュアルを参照し、オブジェクト ライブラリが適切に使われているかどうか確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾕｰｻﾞｰによる割り込みが発生しました。(Error 18)

割り込みが適切に処理されないと、アプリケーションの実行が中断されます。このエラーの原因と解決方法は次のとおりです。

Ctrl + Break キー、または他の割り込みキーが押されました。

開発環境では実行を継続できます。実行時に割り込みを許可する場合は、このエラーに対する適切な処理を用意してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｱﾌﾟﾘｹｰｼｮﾝまたはｵﾌﾞｼﾞｪｸﾄで定義されているｴﾗｰ (Error 95)

関連項目

Error ステートメントや Raise メソッドに対応する Visual Basic エラーがない場合、このエラーが発生します。このエラーの原因と解決方法は次のとおりです。

アプリケーションの中で実行された Err.Raise n ステートメントや Error n ステートメントの番号 n に対応する Visual Basic エラーが定義されていません。

必要ならば、対応するエラー処理を作成してください。または、エラーが発生した状況を調べ、適切な Visual Basic エラーを生成するようにしてください。

他のアプリケーションのオブジェクトを参照しているときに Visual Basic で定義されていないエラーが発生して、Visual Basic に渡されています。

参照しているオブジェクトのマニュアルを参照してください。Err オブジェクトの Source プロパティに、エラーを起こしたアプリケーションまたはオブジェクトのプログラム ID が格納されています。オブジェクトを参照している部分では On Error GoTo line 構文よりも On Error Resume Next 構文が適切です。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Clear メソッド

Err オブジェクト

Error 関数

Error ステートメント

On Error ステートメント

Raise メソッド

Source プロパティ


ﾕｰｻﾞｰ定義型は、値渡し (ByVal) できません。

関連項目

ユーザー定義型は値渡しできません。特に指定しなくても参照渡しになります。このエラーは実行時に呼び出しが行われるまで発生しません。このエラーの原因と解決方法は次のとおりです。

ユーザー定義型のパラメータを定義するときにキーワード ByVal が指定されています。

ByVal を削除してください。呼び出し側の変数の値を変更しないためには、Dim ステートメントで一時的にそのユーザー定義型の変数を定義して、その変数をプロシージャに渡します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

ByVal キーワード

Dim ステートメント

Type ステートメント


ﾕｰｻﾞｰ定義型は定義されていません。

関連項目

Visual Basic では新しいデータ型を作成できますが、このためにはまず Type...End Type ステートメントを記述したり、オブジェクト ライブラリやタイプ ライブラリを登録する必要があります。このエラーの原因と解決方法は次のとおりです。

未定義のデータ型を使って変数や引数を宣言しようとしたり、未定義のクラス名やオブジェクト名を使おうとしています。

Type ステートメントを使って新しいデータ型をモジュール内に定義してください。クラスへの参照を行うときは、そのクラスをプロジェクトから参照できる必要があります。プログラム内でクラスを参照するときは、クラス モジュールの名前をプロジェクトに登録する必要があります。型名やオブジェクト名は正確に指定してください。

宣言しようとした型が他のモジュールにあり、Private として宣言されています。

型の宣言部を標準モジュールに移して、Public として宣言してください。

型は正しく指定されていますが、その型が定義されているオブジェクト ライブラリまたはタイプ ライブラリが登録されていません。

[ツール] - [参照設定] コマンドを選択して、[参照設定] ダイアログ ボックスから適切なオブジェクト ライブラリまたはタイプ ライブラリを選択してください。たとえば、[参照設定] ダイアログ ボックスでデータ アクセス オブジェクトへの参照が設定されていない場合、Database オブジェクト型、Recordset オブジェクト型、TableDef オブジェクト型などは認識または参照できなくなり、このエラーが発生します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

As キーワード

Private キーワード

Type ステートメント


ﾕｰｻﾞｰ定義型にはﾒﾝﾊﾞが必要です。

関連項目

ユーザー定義型には少なくとも 1 個のメンバが必要です。このエラーの原因と解決方法は次のとおりです。

Type...End Type を使ってメンバを持たないユーザー定義型を定義しています。

Type ステートメントを調べて、必要のないコメント記号 (') などが混入していないかどうか確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Type ステートメント


変数が定義されていません。

関連項目

Option Explicit ステートメントを指定したモジュールでは変数の宣言が必ず必要になり、入力ミスなどによる不要な変数の作成を防ぐことができます。このエラーの原因と解決方法は次のとおりです。

Option Explicit ステートメントで変数を明示的に宣言するように指定したにもかかわらず、宣言していない変数を使っています。

変数を明示的に宣言するか、変数名の誤りを訂正してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Option Explicit ステートメント


変数が必要です。

関連項目

このエラーは、代入できない対象に値を代入しようとした場合などに発生します。このエラーの原因と解決方法は次のとおりです。

Len 関数の引数に数式を指定しています。

Len 関数では引数として文字列変数、数値変数、文字列式、ユーザー定義型変数だけを指定できます。数式、数値リテラル、バイナリ式は指定できません。

Input #、Let、Get、Put の引数として関数呼び出しや式を指定しています。たとえば、引数として配列変数名を指定していても、同名の関数が存在するときはその関数が呼び出されてしまいます。

Input #、Let、Get、Put では引数として関数呼び出しは使用できません。

定数として宣言された識別子に代入しようとしています。

他の識別子を指定してください。

For...Next のループ カウンタとして変数以外のものを使用しています。

ループ カウンタには変数を使用してください。

読み取り専用のプロパティまたは 1 つ以上の変数を含む式(X + Y など)に値を代入しようとしました。代入によって、値はメモリ領域に格納されます。指定する式は、単一の書き込み可能なメモリ上の位置を表わしている必要があります。データを受け取る単一の変数にデータを代入するようにコードを記述し直してください。

タイプ ライブラリに定数として定義されている変数を、定義せずに使用しようとしました。変数に別の名前を使用するか、明示的に変数を宣言する必要があります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

For...Next ステートメント

For Each...Next ステートメント

Get ステートメント

Input # ステートメント

Len 関数

Let ステートメント

Put ステートメント


Visual Basic のｵﾌﾞｼﾞｪｸﾄ ﾗｲﾌﾞﾗﾘ ~ が見つかりません。

プロジェクトの言語に対応する Visual Basic のオブジェクト ライブラリ (VAXXX.OLB または VAXXXX.OLB) が見つかりません。このエラーの原因と解決方法は次のとおりです。

オブジェクト ライブラリが存在しないか、適切なディレクトリにないか、バージョンが不適切です。

オブジェクト ライブラリが適切なディレクトリに格納されていることを確認してください。

注   Visual Basic Version 4.0 で使用しているオブジェクト ライブラリは、英語/アメリカ の設定と互換性が保たれている必要があります。

オブジェクト ライブラリが見つからない場合、オブジェクト ライブラリの作成者に問い合わせてください。見つからないファイルが、Microsoft 社 のアプリケーションのオブジェクト ライブラリの場合は、次の方法で入手することができます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


警告: [言語 / 国] の設定でﾕｰｻﾞｰ定義を選択すると、汎用性がなくなります。

国別情報の設定によっては移植時に問題になることがあります。この警告が出される原因と解決方法は次のとおりです。

ユーザー定義の国別情報の設定を使用しています。

コードに対してユーザー定義の国別情報を選択すると、コード内で使用される言語規約は、システムのコントロール パネルの設定と一致します。ユーザー定義の国別情報設定を使用すると、コードは他の国別情報の設定または異なるシステムで動作しないことがあります。ホスト アプリケーションは、動作しているマシンのコントロール パネルの情報を使って文字列を解釈します。

対象のマシンのコントロール パネルの設定 (数値の区切り記号など) が、コードが作成されたマシンの設定と異なる場合、文字列は正しく解釈されません。他のユーザーが使う可能性があるコードでは、ユーザー定義の国別情報は使用しないで定義済みの国別情報を使ってください。

注   Visual Basic Version 4.0 で使用しているオブジェクト ライブラリは、英語/アメリカ の設定と互換性が保たれている必要があります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


While がありません。

関連項目

Wend ステートメントには、対応する While ステートメントが前になければなりません。このエラーの原因と解決方法は次のとおりです。

Wend ステートメントに対応する While ステートメントがありません。

While...Wend 構造内部に、正しく対応していない別の While...Wend 構造がないか確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

While...Wend ステートメント


Wend がありません。

関連項目

While ステートメントには、対応する Wend ステートメントがなければなりません。このエラーの原因と解決方法は次のとおりです。

While ステートメントに対応する Wend ステートメントがありません。

While...Wend 構造内部に、正しく対応していない別の While...Wend 構造がないか確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

While...Wend ステートメント


引数の数が一致していません。または不正なﾌﾟﾛﾊﾟﾃｨを指定しています。(Error 450)

関連項目

プロシージャに渡す引数の数とプロシージャ定義のパラメータの数は一致していなければいけません。このエラーの原因と解決方法は次のとおりです。

プロシージャが必要とする引数の数と、プロシージャ呼び出しで指定されている引数の数が一致しません。

プロシージャ呼び出しの引数リストとプロシージャ定義を比較して確認してください。

コントロール配列に含まれていないコントロールにインデックスを指定しました。インデックスを指定すると、インデックスは引数として解釈されます。ただし、この場合インデックスも引数も無効なので、エラーが発生します。インデックスの指定を解除するか、コントロール配列を作成してください。コントロール配列を作成するには、デザイン時にコントロールのプロパティ シートまたはプロパティ ウィンドウで、Index プロパティに 0 以外の値を設定します。

読み取り専用のプロパティに値を代入しようとしたか、Property Let プロシージャが存在しないプロパティに値を代入しようとしました。

プロパティに値を代入する動作は、オブジェクトの Property Let プロシージャに引数として値を渡す動作と同じです。適切に Property Let プロシージャを定義してください。Property Let プロシージャは、対応する Property Get プロシージャより 1 つ多くの引数を持ちます。プロパティが読み取り専用に作成されている場合、値は設定できません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Function ステートメント

Sub ステートメント


配列の次元が一致していません。

関連項目

配列を参照するときは、宣言時と同じ数の次元を指定する必要があります。このエラーの原因と解決方法は次のとおりです。

配列が実際に持っている次元と、参照時に指定している次元が異なります。たとえば、Dim X(5) として宣言された 1 次元配列を X(2,4) のように 2 次元配列として参照しようとすると、このエラーが発生します。

配列の宣言と参照を調べて、正しい次元数のインデックスを指定してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

配列の作成

Dim ステートメント


編集を行うと継続して実行できなくなります。- 編集しますか?

中断モードでコードを編集すると、プログラムの実行を継続できなくなることがあります。このエラーの原因と解決方法は次のとおりです。

実行の継続を妨げるような編集 (静的変数の宣言など) を行おうとしています。

[はい] (または [OK]) ボタンを選択すると、プログラムの実行は停止され、コードを編集できるようになります。[いいえ] (または [キャンセル]) ボタンを選択すると、プログラムを停止したところから実行を再開できます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


With を使うときは、ﾕｰｻﾞｰ定義型、ｵﾌﾞｼﾞｪｸﾄ型、またはﾊﾞﾘｱﾝﾄ型を指定してください。

関連項目

With...End With ブロックでは使用できない変数のデータ型があります。このエラーの原因と解決方法は次のとおりです。

With ブロックの中でオブジェクト型、ユーザー定義型、オブジェクトを含むバリアント型 (Variant) 以外の変数を使おうとしています。

オブジェクト型、ユーザー定義型、バリアント型の変数名が正しく指定されていることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

オブジェクト型

With ステートメント


この行には、実行可能なｽﾃｰﾄﾒﾝﾄがあります。

宣言部やコメントは実行可能なステートメントではありません。このエラーの原因と解決方法は次のとおりです。

[実行] - [カーソル行の前まで実行] コマンドを選択したときに、カーソルが実行可能なステートメントのない行を指しています。

現在のカーソル位置に近い実行可能ステートメントにカーソルを置いてください。

詳細については、[実行] - [カーソル行の前まで実行] コマンドを選択してから F1 キーを押してください。


このｺﾏﾝﾄﾞは、現在のﾌﾟﾛｼｰｼﾞｬ内の実行可能な行以外では無効です。

[実行] - [次のステートメントの設定] コマンドは停止中のプログラムを再開する場所を指定するときに使用します。このエラーの原因と解決方法は次のとおりです。

このコマンドを選択したときに、カーソルが実行可能ステートメントのない行を指していました。

カーソルを実行可能ステートメントのある行に移動してからコマンドを再選択してください。宣言部、行ラベル、コメントは実行できません。宣言部、行ラベル、コメントだけを含む行は [実行] - [次のステートメントの設定] コマンドの対象になりません。

このコマンドを選択したときに、カーソルが現在実行中のプロシージャ以外の場所を指していました。

現在実行中のプロシージャ内にカーソルを移動してください。


ﾃﾞｻﾞｲﾝﾓｰﾄﾞでは、ﾃﾞﾊﾞｯｸﾞ ｳｨﾝﾄﾞｳを使ってｽﾃｰﾄﾒﾝﾄを実行することはできません。

プログラムを実行していない状態または実行を一時中断している状態はすべてデザイン時になります。このエラーの原因と解決方法は次のとおりです。

[実行] - [開始] コマンドを選択していない状態で、イミディエイト ペインのステートメントを実行しようとしています。

[実行] - [開始] コマンドを選択してからプログラムの実行を一時中断してください。この状態でイミディエイト ペインのステートメントが実行できます。

詳細については、カーソルをイミディエイト ペインに移動して F1 キーを押してください。


Meｷｰﾜｰﾄﾞの使い方が正しくありません。

関連項目

キーワード Me はフォーム モジュールとクラス モジュールでのみ使えます。このエラーの原因と解決方法は次のとおりです。

Me が標準モジュールで使われています。

標準モジュールはオブジェクトではないので、Me は使用できません。エラーを起こしたコードがフォーム モジュールやクラス モジュールからコピーしたものであるときは、Me をコピー元のフォーム名などに書き換えてください。

Set を使った代入ステートメントの左辺に Me があります。たとえば次のコードはエラーになります。

Set Me = MyObject	' エラーが発生します。

Set ステートメントを削除してください。

注   Me は Let を使った代入ステートメントの左辺に記述できます。この場合 Me が示すオブジェクトの既定のプロパティに値が代入されます。

Let Me = MyObject	' Let を明示的に使った正しい代入ステートメントです。

Me = MyObject	' Let を暗黙に使った正しい代入ステートメントです。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Let ステートメント

Me キーワード

Set ステートメント


Newｷｰﾜｰﾄﾞの使い方が正しくありません。

関連項目

キーワード New が使えるのは作成可能な OLE オブジェクト、および OLE オートメーション オブジェクトとクラスのインスタンスだけです。このエラーの原因と解決方法は次のとおりです。

1 個のインスタンスしか持てないものに対してインスタンスを生成しようとしています。たとえば次のコードで、モジュール Module1 のインスタンスを生成しようとすると、エラーが発生します。

Dim MyMod As New Module1

モジュールは 1 個のインスタンスしか持てないので、このように新しいインスタンスを作成することはできません。

インスタンスを生成しようとした OLE オブジェクトが、作成可能な OLE オブジェクトではありません。たとえば次のコードで、ListBox によってリスト ボックス (ListBox) コントロールのインスタンスを生成しようとすると、エラーが発生します。

' 変数は生成できます。

Dim MyListBox As ListBox

Dim MyFormInst As Form

' オブジェクトのインスタンスは生成できません。

Set MyFormInst = New Form

Set MyListBox = New ListBox

ListBox と Form はクラス名であり、特定のオブジェクトを示す名前ではありません。これらのクラス名は上記の Dim ステートメントのように特定のオブジェクト型を参照する変数を宣言するときに使用します。クラス名を Set ステートメントの中でオブジェクト自体のインスタンスを生成するために使うことはできません。Set ステートメントではクラス名ではなく、特定のオブジェクトを指定する必要があります。

' フォームとリストの新しいインスタンスを生成する正しい構文です。

Set MyFormInst = New Form1

Set MyListBox = New List1

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Dim ステートメント

New キーワード

Set ステートメント


定数、固定長文字列、配列、またはDeclareｽﾃｰﾄﾒﾝﾄは、ｸﾗｽ ﾓｼﾞｭｰﾙのPublicﾒﾝﾊﾞとして定義することはできません。

関連項目

クラス モジュールでは Public を指定して宣言できない変数があります。ただし、プロシージャは特に設定しなくてもパブリックになります。また、パブリック変数の代用として Property プロシージャを利用する方法があります。このエラーの原因と解決方法は次のとおりです。

クラス モジュールの中でパブリック定数を宣言しています。

クラス モジュールではキーワード Public を使ってパブリック定数を宣言することはできませんが、代わりに Property Get プロシージャを利用する方法があります。この場合、同じ名前を持つ Property Let プロシージャまたは Property Set プロシージャを作成しなければそのプロパティは値の読み取り専用になり、実質的に定数と同じ働きをします。

クラス モジュールの中で Public を指定して固定長文字列の変数を宣言しています。

固定長文字列と同等の機能を持つプロパティを作成するには、文字列が一定の長さを超えたときに超過分を削除するか、文字列が長すぎることをユーザーに知らせるような、Property プロシージャを作成します。

クラス モジュールの中でパブリック配列を宣言しています。

プロシージャの戻り値として配列は使えませんが、配列を含むバリアント型 (Variant) を返すことはできます。これを利用して、配列を含むバリアント型を返すような Property プロシージャを用意すると、パブリック配列と同等の機能を持つプロパティが作成できます。

クラス モジュールに Declare ステートメントが記述されています。

Declare ステートメントでは、暗黙的に Public が指定されます。Declare ステートメントの前にキーワード Private を記述してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Private ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Public ステートメント


ﾌｫｰﾑ内に既に同じﾒﾝﾊﾞが存在しています。

フォーム上では、フォームの識別子として使う名前を重複して定義することはできません。このエラーの原因と解決方法は次のとおりです。

フォーム、MDI フォーム、クラス モジュールのプロシージャやデータ メンバを示す識別子が、そのフォーム、MDI フォーム、クラス モジュールで既に使用されている識別子と重複しています。たとえば次のコードでは、フォーム上に BackColor プロパティがあるためにエラーが発生します。

' Form オブジェクトには既に BackColor プロパティが存在します。

Dim BackColor As Integer	' エラーが発生します。

Function BackColor()	' エラーが発生します。

End Function

フォーム、MDI フォーム、クラス モジュールのメンバを表す識別子と重複する識別子を変更してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｲﾍﾞﾝﾄ ﾌﾟﾛｼｰｼﾞｬの宣言が、ｲﾍﾞﾝﾄの定義と一致していません。

クラス モジュールのプロシージャ名がイベント名と重複しています。このエラーの原因と解決方法は次のとおりです。

イベント名と同名のプロシージャの、パラメータの数や型が一致していません。イベント プロシージャに余計な引数を指定するとこのような状態になることがあります。たとえば次に示すようにフォームの Form_Load イベント プロシージャの定義に変更を加えると、このエラーが発生します。

Private Sub Form_Load (MyParam As Integer)

. . .

End Sub

エラーを起こしたプロシージャがイベント プロシージャでなければ、プロシージャ名を変更してください。イベント プロシージャであるときは、引数リストが (もし存在すれば) そのイベントに一致していることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


定数宣言の構文が正しくありません。

[オプション] ダイアログ ボックスに入力できる条件付きコンパイラ定数は、プログラム内で宣言される定数とは異なります。このエラーの原因と解決方法は次のとおりです。

[オプション] ダイアログ ボックスの [プロジェクト] タブに入力した定数宣言の構文が間違っています。

このダイアログ ボックスで使える構文は、識別子への整数値の代入だけです。以下の構文に適合しているかどうか確認してください。複数の代入を記述するときはコロン (:) で区切ります。

constantname = [{+ | [image] }]integervalue : [{+ | [image] }]constantname = integervalue [...]

指定項目	内容

constantname	条件付きコンパイル定数の名前を指定します。

integervalue	整数値を指定します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾕｰｻﾞｰ定義型は、ｸﾗｽのﾊﾟﾌﾞﾘｯｸ ﾒﾝﾊﾞのﾃﾞｰﾀ型として宣言することはできません。

関連項目

キーワード Private を指定して定義したユーザー定義型またはパブリック モジュールを偽 (False) に設定したクラス モジュールの変数をパブリック メンバにすることはできません。このエラーの原因と解決方法は次のとおりです。

Private を指定して定義したユーザー定義型を使って (クラス、フォーム、MDI フォーム モジュールの) パブリック変数を宣言しています。

変数を Private として宣言するか、ユーザー定義型を宣言している Type...End Type ステートメントを標準モジュールに移動するか、または変数宣言自体を削除してください。

クラス モジュールの Public プロパティを偽 (False) に設定したクラスの (クラス、フォーム、MDI フォーム モジュールの) パブリック変数を Public を指定して宣言しています。

変数を Private を指定して宣言し、クラス モジュールの Public プロパティを真 (True) に設定するか、または宣言をすべて削除してください。

Private を指定して定義したユーザー定義型の戻り値や引数を持つ (クラス、フォーム、MDI フォーム モジュールの) パブリック プロシージャを宣言しています。

プロシージャを Private として宣言するか、ユーザー定義型を宣言している Type...End Type ステートメントを標準モジュールに移動するか、またはプロシージャ宣言自体を削除してください。

Public プロパティが偽 (False) に設定されているクラス モジュールの型を持つパラメータまたは返される型を指定して (クラス、フォーム、MDI フォーム モジュールの) パブリック モジュールを定義しています。

プロシージャをプライベート プロシージャとして宣言し、クラス モジュールの Public プロパティを真 (True) に設定するか、または宣言をすべて削除してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Private ステートメント

Public ステートメント

Type ステートメント


Next の後に指定されている変数（ｶｳﾝﾀ変数）が不正です。

関連項目

For...Next ループの Next 節に指定する変数は、For 節に指定する変数 (カウンタ変数) と同じでなければいけません。このエラーの原因と解決方法は次のとおりです。

For...Next ループの Next 節の変数と For 節の変数が異なります。たとえば次のような場合です。

For Counter = 1 To 10

MyVar = Counter

Next Count

Next 節と For 節で使用されている変数の名前を確認してください。また、内側のループの一部を誤って削除していないかどうか調べてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

For Each...Next ステートメント

For...Next ステートメント


変数が生成されていません。

変数はウォッチ ペインやイミディエイト ペインに表示したり、イミディエイト ペインで値を代入する前に生成されてないといけません。このエラーの原因と解決方法は次のとおりです。

ローカル変数を入力した直後に、中断モードで [シングル ステップ] コマンドを 1 度も実行せずに、変数の値を表示させようとしています。

[実行] - [シングル ステップ] コマンドを選択して、入力した新しいステートメントを強制的にコンパイルしてください。

何レベルも前の呼び出し元プロシージャに [呼び出し履歴] ダイアログ ボックスを使って移動し、そこに入力したローカル変数の値を表示させようとしています。

変数を表示する前に、実際のプログラム制御をそのプロシージャに戻す必要があります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


不正なﾓｼﾞｭｰﾙです。

関連項目

標準モジュールはクラスを表したり、変数の形でインスタンスを作成することはできません。このエラーの原因と解決方法は次のとおりです。

Dim ステートメントまたは Set ステートメントの中で標準モジュール名を使用しています。

ステートメント内のモジュール名がフォーム、MDI フォーム、クラス モジュールのいずれかを示していることを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Dim ステートメント

Set ステートメント


この OLE は Visual Basic ではｻﾎﾟｰﾄされていません。

関連項目

OLE で使われているデータ型の中には、Visual Basic でサポートしていないものもあります。このエラーの原因と解決方法は次のとおりです。

Visual Basic と互換性のないデータ型をプログラム内で使用しています。たとえば ENUM 型は Visual Basic ではサポートされていません。オブジェクト ライブラリを利用して ENUM 型の変数を生成しようとするとこのエラーが発生します。次に示す例では、Rainbow は ENUM 型の一種ですが、Visual Basic ではこの型の変数を生成できません。

Dim MyVar As Rainbow	' エラーが発生します。

ENUM がオブジェクト ライブラリ内の関数のパラメータとして使用されているときは、このエラーは単に ENUM 型の新しい変数をプログラム内で作成できないことを示しています。オブジェクトの中に変数として宣言できない型が含まれていても、それに相当する型が Visual Basic に存在することもあります。たとえば ENUM 型の代わりとして整数型 (Integer) の変数や、Const ステートメントを使って宣言される定数が使えます。バリアント型 (Variant) の内部処理形式が相当する型として使えることもあります。ただし、相当する型が Visual Basic にまったくない場合もあります。たとえばポインタ型は使用できません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Const ステートメント

データ型の概要


制限されている関数または Visual Basic ではｻﾎﾟｰﾄされていない種類の OLE が使われています。

タイプ ライブラリまたはオブジェクト ライブラリに含まれるプロシージャの中には、特定のプログラミング言語からは使用できないものもあります。また、マクロ言語からは利用できない関数がライブラリに含まれていることもあります。このエラーの原因と解決方法は次のとおりです。

利用が制限されている関数を使おうとしています。

この関数はプログラムから利用できません。ライブラリに含まれるオブジェクトのマニュアルがある場合は、それを調べて相当する機能を持つメソッドを探してください。

Visual Basic では使えないデータ型のパラメータや戻り値を持つ関数を利用しようとしています。たとえば RECORD 型のパラメータや戻り値を持つ関数は使えません。

Visual Basic の同等のデータ型を利用することにより、戻り値を受け取れる場合もあります。バリアント型 (Variant) の内部処理形式が利用できないかどうかも検討してください。参照渡しの引数についても同様の方法が使えます。ただしバリアント型 は値渡しできません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


Visual Basic でｻﾎﾟｰﾄしていないﾃﾞｰﾀ型の変数です。

タイプ ライブラリまたはオブジェクト ライブラリに含まれる変数の中には、特定のプログラミング言語からは使用できないものもあります。このエラーの原因と解決方法は次のとおりです。

オブジェクト ライブラリまたはタイプ ライブラリに含まれる、Visual Basic でサポートしていないデータ型の変数を使おうとしています。

Visual Basic プログラムの中では、Visual Basic でサポートしていないデータ型の変数は使えません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｸﾗｽ内で Public を使ってﾕｰｻﾞｰ定義型を定義することはできません。

関連項目

フォーム、MDI フォーム、クラス モジュール内では、Public を指定してユーザー定義型を定義することはできません。このエラーの原因と解決方法は次のとおりです。

フォーム、MDI フォーム、クラス モジュールの中で Public を指定してユーザー定義型を定義しようとしています。

ユーザー定義型の定義部を標準モジュールに移動すれば、この型の変数をクラス モジュールやその他のモジュールで正常に宣言できます。フォーム、MDI フォーム、クラス モジュールの中だけでその型を定義したいときは、モジュール内に Type...End Type による定義を作成して、その前にキーワード Private を付けます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Private キーワード

Type ステートメント


OLEｻｰﾊﾞｰが Visual Basic の実行可能ﾌｧｲﾙではありません。

互換 OLE オブジェクトとは、互換 OLE サーバーとして指定した実行可能ファイルを指します。このエラーの原因と解決方法は次のとおりです。

互換 OLE サーバー を処理しようとしましたが、指定したファイルが Visual Basic で作成された実行可能ファイルではありません。

[ツール] - [オプション] メニューを選択して表示される [オプション] ダイアログ ボックスの [互換 OLE サーバー] ボックスに指定できるファイルは、Visual Basic で作成された .EXE ファイルだけです。できるだけ Visual Basic にプロジェクトをロードし、[ファイル] - [EXE ファイルの作成] コマンドを選択して、Visual Basic の実行可能ファイルを作成してください。Visual Basic 以外の環境で作成された実行可能ファイルや、Visual Basic に読み込めないファイルについては、そのファイルに関するマニュアルを調べて、Visual Basic の実行可能ファイルに変換できるかどうか、またはそれに相当する機能を持つ Visual Basic の実行可能ファイルが入手できるかどうかを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


Visual Basic でｻﾎﾟｰﾄしていない呼び出し規約です。

引数を渡す順序や引数のデータ型を規定する、プロシージャの呼び出し規約のなかには、Visual Basic でサポートしていないものもあります。このエラーの原因と解決方法は次のとおりです。

Visual Basic でサポートしていない呼び出し規約によってプロシージャが呼び出されています。たとえば 16 ビット版の Microsoft Windows では、Pascal の呼び出し規約はサポートされません。

サポートされない呼び出し規約が使われているプロシージャは Visual Basic から呼び出すことはできません。オブジェクトのマニュアルを参照し、相当する機能が利用できないかどうか検討してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


検索が終了しました。'n' 個の項目を置換しました。

[置換] ダイアログ ボックスで [すべて置換] ボタンを選択すると、このメッセージによって置換の個数が報告されます。次のような操作が行われます。

選択領域やプロシージャ、モジュール、プロジェクトを指定することにより、範囲を指定して検索や置換を行うことができます。

領域を選択したときは通常の領域検索が行われます。領域を選択しないと、現在のモジュールが検索の対象となります。検索範囲は [置換] ダイアログ ボックスを使って設定してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


検索が終了しました。

[置換] ダイアログ ボックスで [次を検索] ボタンと [置換] ボタンを使って検索置換を行ったときは置換の総数は報告されません。次のような操作が行われます。

選択領域やプロシージャ、モジュール、プロジェクトを指定することにより、範囲を指定して検索や置換を行うことができます。

領域を選択したときは通常の領域検索が行われます。領域を選択しないと、現在のモジュールが検索の対象となります。検索範囲は [置換] ダイアログ ボックスを使って設定してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


検索が終了しました。'n' 個の項目を置換しました。

[置換] ダイアログ ボックスで [すべて置換] ボタンを選択すると、このメッセージによって置換の個数が報告されます。次のような操作が行われます。

検索と置換の結果、1 か所が置換されました。選択領域やプロシージャ、モジュール、プロジェクトを指定することにより、範囲を指定して検索や置換を行うことができます。

領域を選択したときは通常の領域検索が行われます。領域を選択しないと、現在のモジュールが検索の対象となります。検索範囲は [置換] ダイアログ ボックスを使って設定してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


指定されたﾌｧｲﾙへの参照は登録できません。

Visual Basic から参照できないオブジェクト ライブラリまたはタイプ ライブラリもあります。このエラーの原因と解決方法は次のとおりです。

[参照設定] ダイアログ ボックスから Visual Basic で利用できないタイプ ライブラリまたはオブジェクト ライブラリを登録しようとしています。

そのライブラリのオブジェクトのマニュアルを参照し、それに相当する Visual Basic で利用できる形式のものがないかどうか確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


今行った変更により、このｸﾗｽ ﾓｼﾞｭｰﾙは、指定した互換 OLEｻｰﾊﾞｰとの互換性が失われる可能性があります。

互換 OLE サーバーが既に実行可能ファイルとして存在するときは、そのファイルとの互換性が失われないように注意する必要があります。この警告が出される原因と解決方法は次のとおりです。

既に実行可能形式のファイルを作成しているクラス モジュールのコードを変更しようとしています。

このオブジェクトへのインターフェイス (オブジェクトの参照方法やメソッドなどの実行結果など) に影響するような変更点を加えると、このオブジェクトを利用するコードが正常に動作しなくなる可能性があります。既に配布しているオブジェクトの新しいバージョンを作成するときは、新しい機能を追加すると同時に従来のインターフェイスが維持されるように注意する必要があります。

Visual Basic では、互換 OLE サーバーの名前は [ツール] - [プロジェクトの設定] コマンドを選択したときに表示されるダイアログ ボックスによって確認できます。

重要   編集を続行するときは、エラー メッセージ ダイアログ ボックスの [OK] ボタンを選択してください。編集内容を放棄するときは [キャンセル] ボタンを選択してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｵﾌﾞｼﾞｪｸﾄを作成できません。(Error 429)

関連項目

オブジェクトを作成するには、クラスをシステムに登録して、関連するダイナミック リンク ライブラリ (DLL) を利用できる状態にする必要があります。このエラーの原因と解決方法は次のとおりです。

クラスが登録されていません。たとえば、クラスがシステムに登録されていなかったり、ファイルが不適切だったり、ファイルが見つからないということが考えられます。

可能ならば、オブジェクトのアプリケーションを起動してください。システムの登録情報が不適切か、または、古いときには、アプリケーションがシステムの登録情報を調べて自動的に訂正します。アプリケーションを起動しても情報が訂正されないときは、アプリケーションのセットアップ プログラムを実行してください。

オブジェクトが必要とする DLL が見つからないか壊れているため、使用できません。

関連する DLL がすべて使用可能であることを確認してください。たとえばデータ アクセス オブジェクト (DAO) はプラットフォームごとに異なる DLL を必要とします。特定のオブジェクトがこのエラーを起こしていることが判明したときは、そのオブジェクトのセットアップ プログラムを実行してください。

マシン上でオブジェクトを使用することはできますが、そのオブジェクトは使用許可が必要な OLE オブジェクトです。そのオブジェクトのインスタンスを作成する許可を確認することはできません。

サーバーがライセンス キーを見つけた後でのみ、インスタンスを作成できるオブジェクトもあります。ライセンス キーを使用すると、現在使用しているマシン上でインスタンスを作成できるように登録されているオブジェクトを確認できます。適切に組み込またタイプ ライブラリまたはオブジェクト ライブラリを使用してオブジェクトへの参照を作成すると、正しいキーが自動的に提供されます。ただし、CreateObject 関数または GetObject 関数を呼び出した結果、インスタンスが作成される場合は、オブジェクトはキーを見つける必要があります。この場合、レジストリを検索するか、またはオブジェクトが組み込まれたときに作成される特別なファイル (たとえば、拡張子 .LIC がついたファイルなど) を探します。キーが見つからない場合、オブジェクトのインスタンスを作成することはできません。エンド ユーザが適切にオブジェクトのアプリケーションをセットアップしていない場合は、不注意にファイルが削除されたり、レジストリが変更されたり、オブジェクトがキーを見つけることができなくなります。この場合、開発者のシステムでオブジェクトのインスタンスを作成することはできますが、ユーザーのシステムでは作成できません。ユーザーは再び作成許可のあるオブジェクトを組み込む必要があります。

GetObject 関数を使用して、Visual Basic で作成されたクラスへの参照を取得しようとしました。

GetObject 関数を使用して、Visual Basic で作成されたクラスへの参照は取得できません。

オブジェクトへのアクセスが拒否されました。

現在使用されていて、デッドロックを回避するためにロックされているようなデータのオブジェクトにアクセスしようとしています。このような場合は、後でもう一度オブジェクトにアクセスします。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

CreateObject 関数

GetObject 関数


動的なﾛｰｶﾙ変数が多すぎます。

関連項目

動的なローカル変数はプロシージャ内で定義される変数で、プロシージャが呼び出されるたびに初期化されます。エラーの原因と解決法は次のとおりです。

このプロシージャの、動的なローカル変数 (および、コンパイラが生成する一時的な変数) に必要なメモリ領域が 32KB を超えています。

いくつかの変数を Static ステートメントで宣言してください。Static ステートメントで宣言された変数 (静的変数) は、動的変数とは別のメモリ リソースから割り当てられるため、プロシージャの実行の終了後も値が保持されます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Static ステートメント


ﾓｼﾞｭｰﾙ ﾚﾍﾞﾙの変数が多すぎます。

関連項目

モジュール レベル変数は、モジュールのプロシージャ定義部分の前にある宣言セクションで宣言される変数です。エラーの原因と解決法は次のとおりです。

このモジュール内のすべてのモジュール レベル変数に必要なメモリ領域の合計が 64KB を超えています。

モジュール レベル変数のメモリ領域は制限されています。いくつかの変数を別のモジュールに移して Public ステートメントを使って宣言してください。または、1 つのプロシージャ内でしか使わないモジュール レベル変数があれば、その変数はプロシージャ内で宣言してください。プロシージャの実行終了後も値を保持しておくためにモジュール レベルで宣言した変数があれば、その変数を参照するプロシージャ内で Static ステートメントを使って宣言してください。

注   使用可能なメモリ領域は、オペレーティング システムによって異なります。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Public ステートメント

Static ステートメント


ﾓｼﾞｭｰﾙが大きすぎます。

関連項目

モジュールには、プロジェクト内のコードが含まれています。エラーの原因と解決法は次のとおりです。

モジュール内にコードが多すぎます。

モジュールを新たに作成し、いくつかのプロシージャを新しいモジュールに移してください。現在のモジュール内で宣言されているモジュール レベルの変数や定数などのうち、新しいモジュール内のプロシージャから参照する必要があるものについては、Public ステートメントを使って宣言してください。

注   コメントはコードとは見なされません。したがって、コメントを削除しても、このエラーを防ぐことはできません。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Public ステートメント


ﾌﾟﾛｼｰｼﾞｬが大きすぎます。

コンパイル時には、プロシージャのコードは 64KB を超えることはできません。エラーの原因と解決法は次のとおりです。

プロシージャのコードが、コンパイル時に 64KB を超えています。

64KB を超えるプロシージャは、2 つ以上に分けて小さくしてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｲﾐﾃﾞｨｴｲﾄ ﾍﾟｲﾝ用のﾒﾓﾘが不足しているため、変数を生成できません。

イミディエイト ペインのメモリは限られています。エラーの原因と解決法は次のとおりです。

コード内で作成されていないため、インスタンスを作成する必要のある変数を、イミディエイト ペイン内で指定しました。

イミディエイト ペイン内で、その変数を参照している箇所を削除してください。または、イミディエイト ペイン内でインスタンスを作成せずに、その変数をコード内で宣言してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ｺﾝﾊﾟｲﾗ ﾃﾞｨﾚｸﾃｨﾌﾞ #ElseIf の使い方が正しくありません。

関連項目

#ElseIf ディレクティブは、条件付きのコンパイルを行うために使われます。エラーの原因と解決法は次のとおりです。

#ElseIf に対応する #If または #ElseIf がありません。

#ElseIf の前に #If を記述してください。#ElseIf より前に #End If がある場合は、それを削除してください。

#ElseIf よりも前に #Else または #End If があります。

1 つ前の #If ブロックを正しく終了させてください。または、1 つ前の #Else を #ElseIf に置き換えてください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

If...Then...Else ステートメント

#If...Then...#Else ディレクティブ


ｺﾝﾊﾟｲﾗ ﾃﾞｨﾚｸﾃｨﾌﾞ #Else の使い方が正しくありません。

関連項目

#Else ディレクティブは、条件付きのコンパイルを行うために使われます。エラーの原因と解決法は次のとおりです。

#Else 節に対応する #If または #ElseIf がありません。

#If と #Else の間に #End If がないかどうか確認してください。また、各 #If ブロック内に記述できる #Else は 1 つだけです。したがって、#Else 節が 2 つ連続して現れると、このエラーが発生します。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

If...Then...Else ステートメント

#If...Then...#Else ディレクティブ


ｺﾝﾊﾟｲﾗ ﾃﾞｨﾚｸﾃｨﾌﾞ #If ﾌﾞﾛｯｸの最後には、必ず #End If を記述します。

関連項目

#If ディレクティブは、条件付きのコンパイルを行うために使われます。エラーの原因と解決法は次のとおりです。

#End If で終了していない #If ブロックがあります。

正しい位置に #End If を追加してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

If...Then...Else ステートメント

#If...Then...#Else ディレクティブ


ｺﾝﾊﾟｲﾗ ﾃﾞｨﾚｸﾃｨﾌﾞ #Else If、#Else、または #End If に対応する #If 節が必要です。

関連項目

#Else If、#Else、#End If の各ディレクティブは、条件付きのコンパイルを行うために使われます。エラーの原因と解決法は次のとおりです。

#Else If、#Else、または #End If に対応する #If 節がありません。

#If 節が他のブロックによって分断されていないか、#If の # 記号を付け忘れていないか確認してください。または、正しい位置に #If 節を追加してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

If...Then...Else ステートメント

#If...Then...#Else ディレクティブ


ﾌﾟﾛﾊﾟﾃｨの値が不正です。(Error 380)

大部分のプロパティは、特定のデータ型の特定の範囲の値しか設定できません。エラーの原因と解決法は次のとおりです。

プロパティに不適切な値を代入しました。

プロパティに対して設定できる値のデータ型と範囲については、各プロパティのヘルプを参照してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾋﾟｸﾁｬが不正です。(Error 481)

Picture プロパティまたは Picture オブジェクトに割り当てることができるのは、ピクチャだけです。エラーの原因と解決法は次のとおりです。

Picture プロパティ (フォームやピクチャ ボックス (PictureBox) コントロールなどの) または Picture オブジェクトに、アイコン、ビットマップ、Windows のメタファイルのいずれでもないものを割り当てようとしました。

割り当て可能なピクチャの種類については、Picture オブジェクトまたは、使用するオブジェクトの Picture プロパティのヘルプを参照してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾘｿｰｽ ﾌｧｲﾙの形式が不正です。(Error 325)

リソース ファイルを使う場合、参照するリソースは正しい形式のものでなければなりません。エラーの原因と解決法は次のとおりです。

使用するリソース ファイルの形式が正しくありません。または、そのリソース ファイルの中に、不正な形式のリソースがあります。

ファイルの中身が壊れている場合は、元のディスクからファイルをコピーし直してください。それでも同じエラーが発生する場合は、リソースの提供元から正しい形式のリソースを入手してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


ﾌﾟﾛｼﾞｪｸﾄ内で定義されている、ﾌﾟﾛｼｰｼﾞｬ、変数、定数などが多すぎます。

プロジェクトのプロシージャ、変数、定数、およびパラメータの名前は、名前テーブルに保存されます。このエラーの原因と解決方法は次のとおりです。

プロジェクトで使われている名前の数が 32,768 を超えています。

名前テーブルには、一時的に重複した名前が含まれていることがあります。名前テーブルを圧縮するには、プロジェクトをディスクに保存して閉じます。プロジェクトを再度開いても名前の数がまだ多すぎる場合は、複数のプロシージャの間で同じ名前のローカル変数が使われるようにコードを修正して名前の数を減らし、プロジェクトを保存して閉じ、再び開いて名前テーブルを圧縮してください。

詳細については、調べる項目を選択してから F1 キーを押してください。


Module はｸﾗｽ ﾓｼﾞｭｰﾙ内で使うことはできません。

関連項目

Option Private Module ステートメントを記述したモジュールは、現在のプロジェクトでのみ利用でき、他のプロジェクトでは利用できません。このエラーの原因と解決方法は次のとおりです。

Option Private Module ステートメントがクラス モジュール内に記述されています。

Option Private Module ステートメントをクラス モジュールから削除してください。Microsoft Visual Basic のクラス モジュールは、既定の状態でプライベート モジュールとして扱われます。クラス モジュールはコードからパブリックにすることはできません。パブリックにするには、そのモジュールのプロパティ ウィンドウで Public プロパティを真 (True) に設定する必要があります。この設定は、Visual Basic Professional Edition の場合のみ行うことができます。クラス モジュールをパブリックにすることは、パブリックな OLE オートメーション オブジェクトを作成する場合に必要になります。

詳細については、調べる項目を選択してから F1 キーを押してください。


関連項目

OLE オートメーション

Option Private ステートメント


このｷｰは既にｺﾚｸｼｮﾝ内の要素に関連付けられています。 (Error 457)

関連項目

キーとは、コレクションの特定のメンバを一意に識別するために Add メソッドで指定される文字列です。

あるコレクション メンバに対して指定したキーが同じコレクションの他のメンバのキーと重複しています。

このメンバのキーを一意のキーに変更してください。

詳細については、調べる項目を選択してから F1 キーを押してください。


関連項目

Add メソッド


この配列は固定されているか、または一時的にﾛｯｸされています。(Error 10)

関連項目

配列には、要素数を動的に変更できるもの (動的配列) と、要素数が固定されているもの (固定サイズの配列) とがあります。動的配列として宣言した配列やバリアント型 (Variant) 変数に格納された配列でも、一時的にロックされることがあります。このエラーの原因と解決方法は次のとおりです。

固定サイズの配列の要素数を ReDim ステートメントで変更しようとすると、このエラーが発生します。たとえば、次に示すコードでは、固定サイズの配列 FixedArr が NextOne プロシージャに引数 SomeArr として渡されますが、NextOne プロシージャでは引数 SomeArr の要素数を変更するため、エラーになります。

Sub FirstOne

Dim FixedArr(25) As Integer	' 固定サイズの配列を作成し、

NextOne FixedArr()	' 他のプロシージャに渡します。

End Sub

Sub NextOne(SomeArr() As Integer)

ReDim SomeArr(35)	' ここで Error 10 が発生します。

. . .

End Sub

元の配列をサイズ固定の配列ではなく動的配列として宣言してください。プロシージャ内で動的配列を宣言するには ReDim ステートメントを使い、モジュール レベルで動的配列を宣言するには要素数を指定しないで宣言してください。

モジュール レベルの動的配列の要素のいずれかが既にプロシージャに引数として渡されている場合に、その配列の要素数を変更しようとすると、このエラーが発生します。たとえば、次に示すコードでは、モジュール レベルの動的配列 ModArray の 45 番めの要素が参照渡しで Test プロシージャに渡されています。

Dim ModArray () As Integer	' モジュール レベルの動的配列を作成します。

. . .

Sub AliasError()

ReDim ModArray (1 To 73) As Integer

Test ModArray (45)	' モジュール レベルの配列の要素の 1 つを

' Test プロシージャに渡します。

End Sub

Sub Test(SomeInt As Integer)

ReDim ModArray (1 To 40) As Integer  ' ここでエラーが発生します。

End Sub

この例の場合、モジュール レベルの配列はモジュール内のすべてのプロシージャから参照できるので、必ずしも要素を引数としてプロシージャに渡す必要はありません。しかし、要素を引数として渡すと、配列をロックすることができます。配列をロックすることによって、参照パラメータに対するメモリの割り振りがプロシージャ内で解除されることがなくなり、プロシージャから制御が戻ったときの予期しない動作を防止できます。

配列を格納するバリアント型変数がロックされているときに、そのバリアント型変数に値を代入しようとすると、このエラーが発生します。たとえば、配列を格納するバリアント型変数に対して For Each...Next ループで繰り返し処理を行う場合、配列はループに入るときにロックされ、ループから抜けるときにロックが解除されます。

SomeArray = Array(9,8,7,6,5,4,3,2,1)

For Each X In SomeArray

SomeArray = 301	' 配列がロックされているのでエラーになります。

Next X

配列を格納するバリアント型変数に繰り返し値を代入するには、For Each...Next ループではなく For...Next ループを使ってください。配列が For Each...Next ループのオブジェクトである場合、読み取りのみ可能で、書き込みは行えません。

詳細については、調べる項目を選択してから F1 キーを押してください。


関連項目

For...Next ステートメント

For Each...Next ステートメント

ReDim ステートメント

Sub ステートメント

バリアント型 (Variant)


ﾘﾓｰﾄ ﾌﾟﾛｾｽ用のﾀｲﾌﾟ ﾗｲﾌﾞﾗﾘまたはｵﾌﾞｼﾞｪｸﾄ ﾗｲﾌﾞﾗﾘへの参照は失われました。

関連項目

このエラーは、リモート アクセスの実行中に、オブジェクト情報が格納されているライブラリへの接続が切れた場合に発生します。なお、ここでのリモート アクセスとは、他のプロセスまたは他のマシンで実行されているプロセスに含まれているオブジェクトにアクセスすることを意味します。このエラーの原因と解決方法は次のとおりです。

リモート プロセスのオブジェクト ライブラリまたはタイプ ライブラリへの接続が切れたことが原因です。

再接続するには、以下の手順に従ってください。

1.	Application オブジェクトを再起動します。

2.	このヘルプの項目を呼び出したエラー ダイアログ ボックスの [OK] ボタンを選択します。[参照設定] ダイアログ ボックスが表示されます。

3.	接続できなくなったオブジェクトへの参照が示されます。左側には“参照不可”と表示されます。

4.	接続できなくなったオブジェクトへの参照を取り除きます。

5.	ダイアログ ボックスには、手順 1 で起動したオブジェクトへの参照も表示されているので、そのオブジェクトに対応するチェック ボックスをオンにします。

詳細については、調べる項目を選択してから F1 キーを押してください。


関連項目

OLE オートメーション


ﾒｿｯﾄﾞを使う場合には、適切なｵﾌﾞｼﾞｪｸﾄを指定する必要があります。

関連項目

実行できるメソッドは、オブジェクトによって異なります。このエラーの原因と解決方法は次のとおりです。

オブジェクトを指定せずにメソッドを呼び出したときに、自動的に対象となるオブジェクトに対してそのメソッドが有効でなければ、このエラーが発生します。たとえば、標準モジュールでは、Line メソッドの出力を表示できないため、有効なオブジェクト名を指定しなければ Line メソッドを使うことはできません。

Line メソッドを呼び出すときは、Line メソッドを受け付けるオブジェクトの名前を明示的に指定してください。たとえば、Line メソッドではフォームやピクチャ ボックスを指定できます。

注   標準モジュールで使用するときに、オブジェクト名を明示的に指定する必要があるメソッドには、Line メソッドのほか、Circle、Print、および PSet メソッドがあります。

詳細については、調べる項目を選択してから F1 キーを押してください。


関連項目

Circle メソッド

Line メソッド

Print メソッド

PSet メソッド


このｴﾗｰに関する詳細な情報については Readme.hlp を参照してください。

ヘルプの作成後に追加されたエラー メッセージがいくつかあります。このようなエラーの説明は、Readme ファイルに記載されています。

詳細については、調べる項目を選択してから F1 キーを押してください。


同じﾌﾟﾛﾊﾟﾃｨに対するﾌﾟﾛﾊﾟﾃｨ ﾌﾟﾛｼｰｼﾞｬの定義が一致していません。または省略可能なﾊﾟﾗﾒｰﾀ、ParamArray が含まれています。

関連項目

同一プロパティに対する、Property Get、Property Let、および Property Set の各プロシージャのパラメータは正確に一致しなければなりません。ただし、Property Let プロシージャは、Property Get プロシージャよりパラメータが 1 つ多く、このパラメータの型は対応する Property Get プロシージャの戻り値の型に一致させる必要があります。また、Property Set プロシージャも、同じ名前の Property Get プロシージャより引数が 1 つ多くあります。この最後の引数のデータ型は、対応する Property Get プロシージャの戻り値のデータ型と同じでなくてもかまいません。ただし、バリアント型 (Variant)、総称オブジェクト型 (Object)、クラス名、またはオブジェクト ライブラリで指定されたオブジェクト ライブラリ型のいずれかでなければなりません。

Property Get プロシージャのパラメータの数が不正です。このプロシージャのパラメータの数は、対応する Property Let プロシージャまたは Property Set プロシージャのパラメータの数よりも 1 つ少なくなければなりません。

Property Let プロシージャまたは Property Set プロシージャにパラメータを追加するか、または、Property Get プロシージャからパラメータを削除して、パラメータの数を修正してください。

Property Get プロシージャのパラメータの型は、Property Let プロシージャまたは Property Set プロシージャの対応するパラメータの型と一致しなければなりません。なお、Property Let プロシージャまたは Property Set プロシージャには、Property Get プロシージャより 1 つ多くのパラメータがありますが、これ以外のパラメータが Property Get プロシージャのパラメータに対応します。

対応するプロシージャ定義に含まれるパラメータの宣言を修正して、型を正しく一致させてください。

Property Let プロシージャのパラメータのうち、Property Get プロシージャのパラメータに対応しないもう 1 つのパラメータの型は、Property Get プロシージャの戻り値の型に一致しなければなりません。

Property Let プロシージャのパラメータを変更するか、または、Property Get プロシージャの戻り値の型を変更して、型を正しく一致させてください。

Property Set プロシージャのパラメータの中で、Property Get プロシージャのパラメータに対応しないもう 1 つの引数のデータ型は、Property Get プロシージャの戻り値の型と同じでなくてもかまいません。ただし、バリアント型、総称オブジェクト型またはクラス名、またはオブジェクト ライブラリで指定された有効な型のいずれかでなければなりません。

Property Set プロシージャのパラメータの中で、Property Get プロシージャのパラメータに対応しないもう 1 つのパラメータが、バリアント型、オブジェクト型、クラス名、またはオブジェクト ライブラリで指定されている型のいずれかであることを確認してください。

プロパティ プロシージャの定義に、パラメータ Optional または ParamArray の宣言が含まれています。

パラメータ Optional と ParamArray は、プロパティ プロシージャで使用できません。これらのキーワードを使用しないで、プロシージャを再定義してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


関連項目

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

オブジェクト型 (Object)

バリアント型 (Variant)


必要なﾃﾝﾎﾟﾗﾘ ﾌｧｲﾙを作成できません。

実行可能ファイルを作成するには、一時ファイルを作成する必要があります。このエラーの原因と解決方法は次のとおりです。

環境変数 TEMP で指定されたドライブの空き容量が不足しています。

そのドライブからファイルを削除するか、または、環境変数 TEMP で別のドライブを指定してください。

環境変数 TEMP で無効なドライブが指定されているか、あるいは、読み取り専用のドライブまたはディレクトリが指定されています。

環境変数 TEMP に有効なドライブを指定するか、あるいは、指定されているドライブまたはディレクトリから読み取り専用の制限を解除してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


OLE ｵｰﾄﾒｰｼｮﾝの操作中にﾌｧｲﾙ名またはｸﾗｽ名を見つけられませんでした。(Error 432)

GetObject 関数を使用するには、パスを指定した有効なファイル名、またはシステムに登録されたクラス名を指定する必要があります。このエラーの原因と解決方法は次のとおりです。

GetObject 関数の呼び出しに指定されたファイル名もしくはクラス名が見つかりません。

名前を確認して、もう一度 GetObject 関数を呼び出してください。クラスに対応する名前がシステムに登録されている名前と一致するかを確認してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


OLE ｵｰﾄﾒｰｼｮﾝ ｵﾌﾞｼﾞｪｸﾄには既定値がありません。(Error 443)

プロパティおよびメソッドを指定しないでオブジェクト名を指定した場合、Microsoft Visual Basic では、そのオブジェクトの既定のメンバ (プロパティまたはメソッド) が指定されたことになります。ただし、すべてのオブジェクトが既定のメンバを持つわけではありません。このエラーの原因と解決方法は次のとおりです。

Visual Basic は指定されたオブジェクトの既定のメンバを特定できません。

マニュアルを確認後、プロパティやメソッドを明示的に指定してください。

詳細については、調べたい項目を選択してから F1 キーを押してください。


このﾌﾟﾛｼﾞｪｸﾄの VBP ﾌｧｲﾙには、不正なﾗｲﾌﾞﾗﾘ参照 ID が含まれています。

[参照設定] ダイアログ ボックスで選択して参照を設定したプロジェクトを保存する場合、プロジェクトの .VBP ファイルにエントリが作成されます。このファイルは以前のバージョンの Visual Basic では、.MAK ファイルと呼ばれていました。たとえば、データ アクセス オブジェクトのエントリは次のとおりです。

Reference=*\G{00025E01-0000-0000-C000-000000000046}#0.0#0#C:\WINDOWS\SYSTEM\DAO2516.DLL#Microsoft

DAO 2.5 Object Library

このエラーは、ファイルで設定されている参照が編集されたり、破損した場合に発生します。このエラーの原因と解決方法は次のとおりです。

.VBP ファイル内の参照は無効になりました。

.VBP ファイル内の無効なコードを削除し、[ツール] - [参照設定] ダイアログ ボックスを表示して正しいオブジェクト ライブラリを選択してください。プロジェクトを保存すると、正しい情報が .VBP ファイルに入力されます。

詳細については、調べたい項目を選択してから F1 キーを押してください。


Circle メソッド

関連項目	例	対象

オブジェクトに円、楕円、円弧を描画します。名前付き引数は指定できません。

構文

object.Circle Step (x, y), radius, color, start, end, aspect

Circle メソッドの指定項目は次のとおりです。

指定項目	内容

object	省略可能です。オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、現在フォーカスを持っている Form オブジェクトを指定したと見なされます。

Step	省略可能です。このキーワードは、円、楕円、または円弧の中心が object の CurrentX プロパティおよび CurrentY プロパティで指定されている現在の座標値からの相対座標であることを示すときに指定します。

(x, y)	必ず指定します。円、楕円、または円弧の中心座標を示す単精度の値を指定します。座標の単位は、object の ScaleMode プロパティの値によって決まります。

radius	必ず指定します。円、楕円、または円弧の半径を示す単精度の値を指定します。半径の単位は、object の ScaleMode プロパティの値によって決まります。

color	省略可能です。円の輪郭線の色の RGB 値を示す長整数型 (Long) の値を指定します。省略すると、ForeColor プロパティの値が使われます。色を指定するには RGB 関数または QBColor 関数を使います。

start, end	省略可能です。円弧を描画する場合や円または楕円の一部を描画する場合は、start と end に、それぞれ円弧の開始点と終了点をラジアン単位の単精度の値で指定します。値の範囲は共に -2 π～ 2 πラジアンです。start の既定値は 0 ラジアンで、end の既定値は 2 * πラジアンです。

aspect	省略可能です。円の縦横比を示す単精度の値を指定します。既定値は 1.0 で、このとき円はどの画面に対しても (楕円ではなく) 真円として描かれます。

解説

円を塗りつぶすには、円または楕円が描画されるオブジェクトの FillColor プロパティおよび FillStyle プロパティを設定します。塗りつぶせるのは閉じた図形だけです。閉じた図形とは、円、楕円、および扇型 (円弧とその両端から中心までの直線からなる図形) を指します。

円や楕円の一部を描画するとき、start が負の値であれば start の位置までの半径が描画され、その角度は正の値として扱われます。同様に、end が負の値であれば end の位置までの半径が描画され、その角度は正の値として扱われます。Circle メソッドは常に円弧を反時計回り (正の方向) に描画します。

円、楕円、および円弧を描画する線の幅は、DrawWidth プロパティで設定します。円を背景に対してどのように描くかは DrawMode プロパティおよび DrawStyle プロパティで設定します。

扇型を描画するときに半径線を角度 0 で描画する (つまり円の中心から右方向に水平線を描画) 必要があれば、0 ではなく非常に小さい負の値を start の値に指定してください。

構文の中の引数を省略して指定することもできます。この場合は、省略した引数の数だけ間にカンマ (,) を指定する必要があります。ただし、ある引数以降のすべての引数を省略するときは、最後の引数の後にカンマは付けないでください。

Circle メソッドが実行されると、CurrentX プロパティおよび CurrentY プロパティは引数で指定された中心点に設定されます。


関連項目

BackColor、ForeColor プロパティ

CurrentX、CurrentY プロパティ

DrawMode プロパティ

DrawStyle プロパティ

DrawWidth プロパティ

FillColor プロパティ

FillStyle プロパティ

Line メソッド

QBColor 関数

RGB 関数

ScaleMode プロパティ

シェイプ (Shape) コントロール


Circle メソッドの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


Command 関数

関連項目	例

Visual Basic の起動時、または Visual Basic で作成された実行可能プログラムの起動時にコマンド ラインに指定された引数を返します。

構文

Command

注   Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

解説

Visual Basic をコマンド ラインから起動するときは、コマンド ラインで /CMD 以降に指定される文字列があれば、それらの文字列がコマンド ライン引数としてプログラムに渡されます。次のようなコマンド ラインの場合、cmdlineargs の部分が Command 関数の戻り値として返されます。

VB /CMD cmdlineargs

Visual Basic で作成され、.EXE ファイルにコンパイルされたアプリケーションの場合、Command 関数は、コマンド ラインでアプリケーション名以降に指定される引数があれば、それらの引数をすべて返します。

MyApp cmdlineargs

Command 関数が返す文字列をデザイン時に変更するには、[ツール] - [オプション] コマンドの [プロジェクト] タブを選択します。


関連項目

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

文字列を返す関数


Line メソッド

関連項目	例	対象

オブジェクトに線や四角形を描画します。名前付き引数は指定できません。

構文

object.Line Step (x1, y1) - Step (x2, y2), color, BF

Line メソッドの指定項目は次のとおりです。

指定項目	内容

object	省略可能です。オブジェクトへの参照を示すオブジェクト式を指定します。object を省略すると、現在フォーカスを持っている Form オブジェクトを指定したものと見なされます。

Step	省略可能です。このキーワードは、描画の開始点の座標が CurrentX プロパティおよび CurrentY プロパティで指定されている、現在のグラフィックス位置からの相対座標であることを示すときに指定します。

(x1, y1)	省略可能です。線や四角形の描画を開始する座標点を示す単精度の値を指定します。座標の単位は、ScaleMode プロパティの値によって決まります。省略すると、CurrentX プロパティおよび CurrentY プロパティが示す位置が描画の起点となります。

Step	省略可能です。このキーワードは、描画の終了点が開始点からの相対座標であることを示すときに指定します。

(x2, y2)	必ず指定します。線の描画を終了する座標点を示す単精度の値を指定します。

color	省略可能です。線の描画に使う色の RGB 値を示す長整数型 (Long) の値を指定します。省略すると、ForeColor プロパティの値が使われます。色を指定するには RGB 関数または QBColor 関数を使います。

B	省略可能です。指定した座標で描かれる線を対角線とするボックスを描きます。

F	B オプションを指定してボックスを描いたときに、ボックス内部を輪郭線と同じ色で塗りつぶします。B を指定せずに F を指定することはできません。F を指定せずに B を指定すると、ボックスは現在の FillColor プロパティと FillStyle プロパティの設定値を使って塗りつぶされます。FillStyle プロパティの既定値は透明です。

解説

複数の線を連結して描画するには、各線の開始点が直前の線の終了点になるように描画する必要があります。

描かれる線の幅は DrawWidth プロパティで設定します。線やボックスが背景に対してどのように描かれるかは DrawMode プロパティおよび DrawStyle プロパティで設定します。

Line メソッドが実行されると、CurrentX プロパティおよび CurrentY プロパティは引数で指定された終了点に設定されます。


関連項目

Circle メソッド

CurrentX、CurrentY プロパティ

DrawMode プロパティ

DrawStyle プロパティ

DrawWidth プロパティ

FillColor プロパティ

FillStyle プロパティ

BackColor、ForeColor プロパティ

QBColor 関数

RGB 関数

ScaleMode プロパティ

シェイプ (Shape) コントロール


Line メソッドの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


PSet メソッド

関連項目	例	対象

指定した色でオブジェクトに点を描画します。名前付き引数はサポートしません。

構文

object.PSet Step (x, y), color

PSet メソッドの指定項目は次のとおりです。

指定項目	内容

object	省略可能です。オブジェクトへの参照を示すオブジェクト式を指定します。object を省略すると、現在フォーカスを持っている Form オブジェクトを指定したものと見なされます。

Step	省略可能です。このキーワードは、点の座標が CurrentX と CurrentY の各プロパティで指定されている現在のグラフィックス位置からの相対座標であることを示すときに指定します。

(x, y)	点を描画する座標を指定します。水平座標 (X 軸) および垂直座標 (Y 軸) を示す単精度の値です。

color	省略可能です。点の描画に使う色の RGB 値を示す長整数型 (Long) の値を指定します。省略すると、ForeColor プロパティの値が使われます。色を指定するには RGB 関数または QBColor 関数を使います。

解説

点のサイズは DrawWidth プロパティで設定します。DrawWidth プロパティが 1 の場合、指定された座標の 1 ピクセルが指定された色に変わります。DrawWidth プロパティが 1 よりも大きい場合は、指定された座標を中心に点が描画されます。

点をどのように描画するかは、DrawMode プロパティと DrawStyle プロパティで設定します。

PSet メソッドが実行されると、CurrentX プロパティと CurrentY プロパティの設定値は引数で指定された点になります。

1 つのピクセルをクリアするには、PSet メソッドでそのピクセルの座標を指定し、引数 color に BackColor プロパティと同じ値を設定します。


関連項目

BackColor、ForeColor プロパティ

CurrentX、CurrentY プロパティ

DrawMode プロパティ

DrawStyle プロパティ

DrawWidth プロパティ

QBColor 関数

RGB 関数


PSet メソッドの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール


Err オブジェクト

関連項目	例	プロパティ	メソッド

Err オブジェクトは、実行時エラーに関する情報を持っています。実行時エラーの生成とクリアには、Raise メソッドおよび Clear メソッドを使用できます。

構文

Err[.{property | method}]

解説

Err オブジェクトのプロパティは、エラーを発生させた Visual Basic、OLE オブジェクト、または Visual Basic のプログラマによって設定されます。

Err オブジェクトの既定プロパティは Number プロパティです。Number プロパティの値は、Visual Basic の以前のバージョンで Err 関数によって返される値に対応します。エラー コードを Number プロパティに割り当てる処理は、Visual Basic の以前のバージョンでは、Err ステートメントで数値を指定する処理に対応します。既定プロパティは、オブジェクト名 Err で表すことができるため、既存のコードで Err によって有効なエラー番号を取得または設定している場合は、修正する必要がありません。Err.Number の値は以前のバージョンの Visual Basic と互換性がありますが、現在のバージョンでは長整数型 (Long) が含まれており、OLE オートメーション オブジェクトを使用して OLE SCode を取得できます。

実行時エラーが発生すると、そのエラーを識別するための情報など、エラー処理で利用可能な情報が、Err オブジェクトに格納されます。コード内で実行時エラーを生成するには、Raise メソッドを使います。

Err オブジェクトの各プロパティは、Resume ステートメントまたは On Error ステートメントの後、および、エラー処理ルーチン内の Exit Sub、Exit Function、または Exit Property ステートメントの後で、0 または長さ 0 の文字列 ("") にリセットされます。Clear メソッドを使うと、Err を明示的にリセットすることができます。

注意   On Error GoTo ステートメントを使ってエラー処理ルーチンを設定し、そのエラー処理ルーチンから別のプロシージャを呼び出すと、Err オブジェクトのプロパティは 0 と長さ 0 の文字列にリセットされます。プロバティの値を保持しておくためには、別のプロシージャを呼び出す前、または Resume、On Error、Exit Sub、Exit Function、Exit Property のいずれかのステートメントを実行する前に、Err オブジェクトの各プロパティの値を変数に代入してください。

Visual Basic で OLE オートメーション オブジェクトを処理するためのコードを作成する場合、Error ステートメントではなく、Raise メソッドを使って実行時エラーを生成します。OLE オートメーション以外のコードでは、必要な情報によって Raise メソッドを使うかどうかが決まります。Raise メソッドの代わりに Error ステートメントを使ってエラーを生成する場合、Error ステートメントが実行されると、Err オブジェクトの各プロパティには次に示す既定値が格納されます。

プロパティ	値

Number	Error ステートメントの引数として指定した値が格納されます。有効なエラー番号を使用できます。

Source	現在の Visual Basic のプロジェクト名を指定します。

Description	指定した Number に対する Error 関数の戻り値に対応する文字列が格納されます。対応する文字列が存在しない場合、文字列 "アプリケーション定義またはオブジェクト定義のエラーです。" が格納されます。

HelpFile	Visual Basic ヘルプ ファイルの完全なドライブ、パス、およびファイル名が格納されます。

HelpContext	Number プロパティに対応するエラーの Visual Basic ヘルプ ファイルのコンテキスト番号が格納されます。

LastDLLError	32 ビットの Microsoft Windows オペレーティング システムの場合のみ、最後にダイナミック リンク ライブラリ (DLL) を呼び出したときのエラー コードが格納されます。ただし、このプロパティは、DLL がこの機能をサポートしている場合のみ有効です。LastDLLError プロパティは読み取り専用です。

Err オブジェクトと Error ステートメントを使った既存のコードを変更する必要はありません。ただし、Err オブジェクトと Error ステートメントを併用すると、予期しない動作をすることがあります。たとえば、Err オブジェクトのプロパティを設定しても、Error ステートメントが実行されると、直前のテーブルに示した既定値にリセットされます。Error ステートメントを使って、従来どおり Visual Basic の実行時エラーを生成することはできますが、この機能は原則として既存のコードとの互換性を保つために残されています。システム エラーと新しいコード内、特に OLE オートメーション オブジェクトには、Err オブジェクトと Raise メソッドおよび Clear メソッドを使ってください。

Err オブジェクトは、適用範囲 (スコープ) がパブリックである組み込みオブジェクトであり、コード内でそのインスタンスを作成する必要はありません。


関連項目

Error 関数

Error オブジェクト、Errors コレクション

Error ステートメント

On Error ステートメント

Resume ステートメント

トラップできるエラー


Err オブジェクトのプロパティ

Description プロパティ

HelpContext プロパティ

HelpFile プロパティ

LastDLLError プロパティ

Number プロパティ

Source プロパティ


Err オブジェクトのメソッド

Clear メソッド

Raise メソッド


Number プロパティ

関連項目	例	対象

エラーを指定する数値を設定します。値の取得も可能です。Number プロパティは、Err オブジェクトの既定プロパティです。

構文

object.Number [= errornumber]

Number プロパティの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

errornumber	Basic のエラー番号または OLE SCode のエラーの値を表す長整数型 (Long) の整数を指定します。

解説

Number プロパティは Err オブジェクトの既定プロパティなので、Err 関数を使う既存のコードを変更する必要はありません。次のコードはいずれも、Number プロパティを正しく設定します。値の取得も可能です。

Err.Number = 5	' Number プロパティを 5 に設定。

Err = 5	' Number プロパティを 5 に設定。

Debug.Print Err	' Number プロパティを表示。

Debug.Print Err.Number	' Number プロパティを表示。

OLE オートメーション オブジェクトからユーザー定義エラーを取得するときには、エラーとして選択した数値を定数 vbObjectError に追加して Err.Number を設定します。たとえば、次のコードを使って、番号 1051 をエラー コードとして取得します。

Err.Raise Number := vbObjectError + 1051, Source:= "SomeClass"

同様に、オブジェクトから取得したエラー コードを解釈するときには、次のコードを使います。すべての Microsoft Visual Basic のホスト アプリケーション が OLE オートメーション オブジェクトを作成できるわけではありません。ホスト アプリケーションのマニュアルを参照して、使用しているホスト アプリケーションがクラスおよび OLE オートメーションを作成できるかどうかを調べてください。OLE クライアント アプリケーションは、すべてのホスト アプリケーションで作成できます。OLE クライアント アプリケーションでエラー コードを解釈するには、次のコードを使います。

If Err.Number = vbObjectError + 1051 Then

...	' サーバー側のエラーを処理するコード。

Else If Err.Number - vbObjectError > 0 	' 標準 Basic エラーは

If Err.Number - vbObjectError < 65535	' 0 ～ 65535 の範囲内。

...	' Visual Basic 側のエラーを処理するコード。

End If

End If

最初の If ステートメントでは、特定のオブジェクトで定義されているエラーと定数 vbObjectError が組み合わされてトラップされます。エラー番号 1051 に対する操作が行われます。最初の ElseIf ステートメントでは、範囲内のオブジェクト定義エラーがトラップされます。Err オブジェクトの Number プロパティの値から定数 vbObjectError の値を引いて、その結果がオブジェクト定義のエラーの範囲内かどうかを検査します。エラーがオブジェクト定義のエラーである場合は、コードの記述に従ってエラーを処理します。最後の ElseIf ステートメントでは、エラーが“ファイルが見つかりません”(エラー番号 53) などの Visual Basic のトラップできる実行時エラー (システム エラー) であり、オブジェクトに返されているかどうかを確認するために検査します。エラー番号は 0 ～ 65535 の範囲に定義されていますが、実際には、現在定義されてるエラーの数は 1,000 以下です。

Number はプロパティなので、関数呼び出しと同じように動作します。これは、Err がプロシージャに渡されるときに重要になります。Err をパラメータに指定して呼び出したプロシージャ内で Err の値を変更後、呼び出し側のプロシージャでその値を利用するようなコードでは、参照渡し (ByRef) で Err を指定していても失敗することがあります。ただし、Err オブジェクトは適用範囲がパブリックであるオブジェクトなので、引数として渡す必要はありません。呼び出されたプロシージャ内で、Err または Err.Number に必要な変更を直接行ってください。


関連項目

Description プロパティ

Err オブジェクト

HelpContext プロパティ

HelpFile プロパティ

Source プロパティ


Number プロパティの対象

Err オブジェクト


Source プロパティ

関連項目	例	対象

最初にエラーを発生させたオブジェクトまたはアプリケーションの名前を設定します。値の取得も可能です。

構文

object.Source [= stringexpression]

Source プロパティの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

stringexpression	エラーを発生させたアプリケーションを表す文字列式を指定します。

解説

Source プロパティは、最初にエラーを発生させたオブジェクトを表す文字列式を指定します。一般に、この式はそのオブジェクトのクラス名またはプログラム ID です。アクセスされたオブジェクトで発生したエラーを処理できないときには、Source プロパティを使ってユーザーに情報を提供してください。たとえば、Microsoft Excel にアクセスしたときに“ 0 で除算しました”エラーが発生すると、エラーを発生させたオブジェクト Excel によって、Err.Number にそのエラーを表すエラー番号が設定され、Source プロパティは Excel.Application に設定されます。Excel によって呼び出された別のオブジェクト内でエラーが発生すると、Excel はそのエラーに対して割り込みをかけ、Err.Number に“ 0 で除算しました”を表すエラー番号を設定するので注意してください。ただし、他の Err オブジェクトのプロパティ (Source プロパティを含む) は、エラーを発生させたオブジェクトによって設定されたままの状態になります。Source プロパティには、常にエラーを最初に発生させたオブジェクトの名前が設定されます。このようなエラーに対しては、エラーを発生させたオブジェクトのマニュアルを参照してエラー処理ルーチンを作成してください。エラー処理ルーチンで対応できないときには、Err オブジェクトの情報を利用してユーザーにエラーを知らせるようにします。Source プロパティなどの Err プロパティを使って、エラーを最初に引き起こしたオブジェクトや、エラーの説明などをユーザーに知らせることができます。

コードを使用してエラーを生成する場合、Source プロパティにはアプリケーションのプログラム ID が設定されます。OLE オートメーションのクラス モジュールの場合は、Source プロパティに project.class 形式の名前を含める必要があります。

注   他のオブジェクトへのアクセス中に発生するエラーを処理するときには、On Error GoTo よりも On Error Resume Next の方が適しています。オブジェクトに対してアクセスするたびに Err オブジェクトの値を確認すると、エラーの発生時にコードがどのオブジェクトにアクセスしていたかが明確になります。これにより、どのオブジェクトが Err.Number にエラー番号を設定したか、および、どのオブジェクトが最初にエラーを発生させたか (Err.Source で指定されたオブジェクト) を確認することができます。


関連項目

Description プロパティ

GetObject 関数

HelpContext プロパティ

HelpFile プロパティ

Number プロパティ

On Error ステートメント


Source プロパティの対象

Err オブジェクト


HelpFile プロパティ

関連項目	例	対象

Microsoft Windows のヘルプ ファイルへの絶対パスを設定します。値の取得も可能です。

構文

object.HelpFile [= pathspec]

HelpFile プロパティの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

pathspec	ヘルプ ファイルへの絶対パスを指定します。

解説

Windows のヘルプ ファイルを HelpFile プロパティで指定すると、エラー メッセージが表示されるダイアログ ボックス内で [ヘルプ] ボタンを選択するか、または F1 キーを押したときに、自動的に呼び出されます。HelpContext プロパティに指定したファイルの有効なコンテキスト番号が入っていると、そのトピックが自動的に表示されます。HelpFile プロパティを指定しなければ、Visual Basic のヘルプ ファイルが表示されます。

注   一般的なエラーについては、できる限りエラー処理ルーチンを記述して処理してください。オブジェクトを使ってプログラムを作成する場合は、そのオブジェクトのヘルプ ファイルを使って、エラー処理の質を改善したり、エラーが回復不能な場合に適切なメッセージをユーザーに表示することができます。OLE オートメーション オブジェクトを作成する場合には、そのオブジェクトを利用するプログラマ向けにヘルプを作成すると共に、回復不能なエラーが発生したときに表示するための適切なメッセージも提供するようにしてください。


関連項目

Description プロパティ

HelpContext プロパティ

Number プロパティ

Source プロパティ


HelpFile プロパティの対象

Err オブジェクト


HelpContext プロパティ

関連項目	例	対象

Microsoft Windows のヘルプ ファイルのトピックを表すコンテキスト番号を設定します。値の取得も可能です。

構文

object.HelpContext [= contextid]

HelpContext プロパティの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

contextid	ヘルプ ファイル内の各トピックを識別するための重複しない値を指定します。

解説

HelpFile プロパティで Microsoft Windows のヘルプ ファイルを指定すると、HelpContext プロパティが使われ、このプロパティが識別するヘルプ トピックが自動的に表示されます。HelpFile プロパティと HelpContext プロパティが空であれば、Number プロパティの値がチェックされ、Visual Basic の実行時エラーの値に対応していれば、そのエラーを表す Visual Basic ヘルプのコンテキスト番号が使われます。Number プロパティの値が Visual Basic エラーに対応していなければ、Visual Basic ヘルプ ファイルの目次画面が表示されます。

注   一般的なエラーについては、できる限りエラー処理ルーチンを記述して処理してください。オブジェクトを使ってプログラムを作成する場合は、そのオブジェクトのヘルプ ファイルを使って、エラー処理の質を改善したり、エラーが回復不能な場合に適切なメッセージをユーザーに表示することができます。OLE オートメーション オブジェクトを作成する場合には、そのオブジェクトを利用するプログラマ向けにヘルプを作成すると共に、回復不能なエラーが発生したときに表示するための適切なメッセージも提供するようにしてください。


関連項目

Description プロパティ

HelpFile プロパティ

Number プロパティ

Source プロパティ


HelpContext プロパティの対象

Err オブジェクト


Description プロパティ

関連項目	例	対象

エラーに対応するエラー メッセージを設定します。値の取得も可能です。

構文

object.Description [= stringexpression]

Description プロパティの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

stringexpression	エラー メッセージを表す文字列式を指定します。

解説

Description プロパティには、エラーに関する簡単な説明を定義します。このプロパティを使用して、処理できないエラーまたは処理したくないエラーをユーザーに、警告してください。ユーザー定義エラーを生成するときには、エラーに関する簡単な説明をこのプロパティに割り当てます。Description プロパティを設定しない場合に、Number プロパティの値が Visual Basic の実行時エラーに対応していれば、エラーが発生したときに、Error 関数の戻り値 (エラー メッセージ) が Description プロパティに設定されます。


関連項目

Error 関数

Error オブジェクト、Errors コレクション

HelpContext プロパティ

HelpFile プロパティ

Number プロパティ

Source プロパティ


Description プロパティの対象

Err オブジェクト


Clear メソッド

関連項目	例	対象

Err オブジェクトのすべてのプロパティの設定値をクリアします。

構文

object.Clear

object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Clear メソッドを使うと、エラーを処理した後で Err オブジェクトを明示的にクリアすることができます。この処理は、On Error Resume Next を使用した後でエラー処理を行うときなどに必要です。Visual Basic for Application は、次のいずれかのステートメントが実行されると、自動的に Clear メソッドを呼び出します。

任意の Resume ステートメント

Exit Sub、Exit Function、Exit Property

任意の On Error ステートメント

Clear メソッドは、以前の Basic プロダクトの“Err = 0”と同等です。

注   他のオブジェクトへのアクセス中に発生するエラーを処理するときには、On Error GoTo よりも On Error Resume Next の方が適しています。オブジェクトに対してアクセスするたびに Err オブジェクトの値を確認すると、エラーの発生時にコードがどのオブジェクトにアクセスしていたかが明確になります。これにより、どのオブジェクトが Err.Number にエラー番号を設定したか、および、どのオブジェクトが最初にエラーを発生させたか (Err.Source で指定されたオブジェクト) を確認することができます。


関連項目

Description プロパティ

HelpContext プロパティ

HelpFile プロパティ

Number プロパティ

On Error ステートメント

Raise メソッド

Source プロパティ


Clear メソッドの対象

Err オブジェクト


Raise メソッド

関連項目	例	対象

実行時エラーを生成します。

構文

object.Raise(number, source, description, helpfile, helpcontext)

Raise メソッドは、次のオブジェクト修飾子と名前付き引数で構成されています。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	必ず指定します。指定するオブジェクトの Number プロパティに対応し、エラーに割り当てられているエラー番号を示す長整数型 (Long) の整数を指定します。Visual Basic のエラー (Visual Basic の組み込みのエラーとユーザー定義エラー) は、0 ～ 65535 の範囲の値です。OLE オートメーション オブジェクト内で独自のエラー番号を設定するときには、エラー番号を定数 vbObjectError に追加します。たとえば、エラー番号 1050 を発生させるには、名前付き引数 number に vbObjectError + 1050 を割り当てます。

source	省略可能です。最初にエラーを発生させたオブジェクトまたはアプリケーションを指定する文字列式です。OLE オートメーション オブジェクトにこのプロパティを設定するときには、project.class 形式を使います。特に指定しない限り、現在の Visual Basic プロジェクトのプログラム ID が使われます。

description	省略可能です。エラー メッセージを表す文字列式を指定します。省略した場合、名前付き引数 number の値が調べられます。Visual Basic の実行時エラーの番号の中に、名前付き引数 number の値に対応するものがあれば、Error 関数の戻り値が名前付き引数 description として使われます。名前付き引数 number に対応する Visual Basic のエラーがなければ、文字列“アプリケーション定義またはオブジェクト定義のエラーです。”が使われます。

helpfile	省略可能です。このエラーに関するヘルプ トピックが含まれる Microsoft Windows のヘルプ ファイルの絶対パスを指定します。絶対パスを指定しなければ、Visual Basic ヘルプ ファイルのドライブ、パス、およびファイル名が使用されます。

helpcontext	省略可能です。名前付き引数 helpFile 内の指定したエラーに関するトピックのコンテキスト番号を指定します。このコンテキスト番号を省略すると、Number プロパティに対応する Visual Basic ヘルプ ファイルのエラー コンテキスト番号が存在するときには、その番号が使われます。

解説

number を除き、すべての名前付き引数は省略可能です。ただし、いくつかの引数を指定せずに Raise メソッドを実行したときに、Err オブジェクトの各プロパティの設定値がクリアされていないと、その値がエラーを表す値として使用されます。

Raise メソッドは、実行時エラーの生成に使われ、Error ステートメントの代わりに使うことができます。ただし、Error ステートメントを以前のバージョンと同様に使用することもできます。Err オブジェクトを使うと、Error ステートメントを使ってエラーを生成するときよりも豊富な情報を取得できるので、OLE オートメーション オブジェクトを作成するときにエラーを生成するには Raise メソッドが便利です。たとえば、Raise メソッドを使うと、エラーを最初に発生させたオブジェクト、またはアプリケーションを Source プロパティ内で指定したり、エラーに関するオンライン ヘルプを参照したりすることができます。


Raise メソッドの対象

Err オブジェクト


関連項目

Clear メソッド

Description プロパティ

Error ステートメント

HelpContext プロパティ

HelpFile プロパティ

Number プロパティ

Source プロパティ


Error 関数

関連項目	例

指定したエラー番号に対応するエラー メッセージを返します。

構文

Error[(errornumber)]

引数 errornumber には任意のエラー番号を指定します。有効な範囲内で定義されていない番号を引数 errornumber に指定すると、Error 関数は“ユーザー定義エラー”という文字列を返します。引数 errornumber が有効な範囲内の番号であり、定義されていない場合、Error 関数は、文字列“アプリケーション定義またはオブジェクト定義のエラーです。”を返します。有効な範囲外の番号を指定すると、実行時エラーが発生します。引数 errornumber を省略すると、最後に発生した実行時エラーに対応するメッセージを返します。実行時エラーが発生していないときには、Error 関数は長さ 0 の文字列 ("") を返します。

解説

Err オブジェクトのプロパティの設定値を検証して、最新の実行時エラーを識別します。Error 関数の戻り値は、Err オブジェクトの Description プロパティに対応します。


関連項目

Err オブジェクト

Error オブジェクト、Errors コレクション

文字列を返す関数

トラップできるエラー


Error ステートメント

関連項目	例

エラーを疑似的に発生させます。

構文

Error errornumber

引数 errornumber には任意のエラー番号を指定します。

解説

Error ステートメントは、以前のバージョンの Visual Basic と互換性があります。新しいコードでは、特に OLE オートメーション オブジェクトの作成時に、Raise メソッドを Err オブジェクトに適用して実行時エラーを生成させます。

引数 errornumber を定義すると、Error ステートメントは、次の表の既定値を使って Err オブジェクトのプロパティを設定した後に、エラー処理ルーチンを呼び出します。

プロパティ	値

Number	Error ステートメントの引数として値を指定します。任意の、有効なエラー番号を指定します。

Source	現在の Visual Basic のプロジェクト名を指定します。

Description	指定した Number プロパティの Error 関数の戻り値が存在するときには、この文字列に対応する文字列式を指定し、この文字列が存在しないときには、Description プロパティには長さ 0 の文字列 ("") が入っています。

HelpFile	Visual Basic ヘルプ ファイルのドライブ、パス、およびファイル名を指定します。

HelpContext	Number プロパティに対応するエラーを表す Visual Basic ヘルプ ファイルのコンテキスト番号を指定します。

エラー処理ルーチンが存在しないか、または使用可能なエラー処理ルーチンがなければ、エラー メッセージが作成され、Err オブジェクトのプロパティによって表示されます。


関連項目

Clear メソッド

Err オブジェクト

Error 関数

On Error ステートメント

Resume ステートメント

Raise メソッド

トラップできるエラー


On Error ステートメント

関連項目	例

エラー処理ルーチンを有効にし、プロシージャ内でのエラー処理ルーチンの位置を指定します。エラー処理ルーチンを無効にするときに使うこともできます。

構文

On Error GoTo line

On Error Resume Next

On Error GoTo 0

On Error ステートメントの形式は次のとおりです。

ステートメント	内容

On Error GoTo line	引数 line に指定した行から始まるエラー処理ルーチンを有効にします。引数 line には、行ラベルまたは行番号を指定します。実行時エラーが生成されると、ここで設定したエラー処理ルーチンにプログラムの制御が移り、エラー処理ルーチンがアクティブになります。引数 line に指定する行は、On Error ステートメントと同じプロシージャ内に存在しなければなりません。この制限に従わないときは、コンパイル時エラーが発生します。

On Error Resume Next	実行時エラーが発生してもプログラムを中断せず、エラーが発生したステートメントの次のステートメントから実行を続けることを示します。オブジェクトにアクセスするときには、On Error GoTo ではなく、このステートメントを使うことをお勧めします。

On Error GoTo 0	現在のプロシージャに含まれるエラー処理ルーチンを無効にします。

解説

On Error ステートメントを設定していないときに実行時エラーが発生すると、そのエラーは致命的エラーになり、エラー メッセージが表示されてプログラムの実行が停止します。

“使用可能な”エラー処理ルーチンとは、On Error ステートメントによってオンになっている処理ルーチンのことです。“アクティブな”エラー処理ルーチンとは、エラー処理中の使用可能な処理ルーチンのことです。エラー処理ルーチンがアクティブになっている間 (エラーの発生と Resume、Exit Sub、Exit Function、または Exit Property ステートメントの間) は、カレント プロシージャのエラー処理ルーチンはエラーを処理できません。コントロールは呼び出しプロシージャに戻ります。呼び出しプロシージャに使用可能なエラー処理ルーチンがあれば、そのルーチンが、エラー処理のためにアクティブにされます。呼び出しプロシージャのエラー処理ルーチンもアクティブであれば、コントロールは、使用可能なアクティブでないエラー処理ルーチンが見つかるまで、以前の呼び出しプロシージャを通じて逆に渡されます。使用可能なアクティブでないエラー処理ルーチンが見つからなければ、そのエラーは実際に発生した位置で致命的なエラーになります。エラー処理ルーチンがコントロールを呼び出しプロシージャに戻すたびに、そのプロシージャがカレント プロシージャになります。いずれかのプロシージャ内でエラー処理ルーチンによってエラーが処理されると、Resume ステートメントで指定した時点でカレント プロシージャ内で実行が再開されます。

注   エラー処理ルーチンは、Sub プロシージャまたは Function プロシージャではありません。行ラベルまたは行番号でマークされたコード セクションです。

エラー処理ルーチンは、Err オブジェクトの Number プロパティに依存してエラーの原因を判別します。また、エラー処理ルーチンは他のエラーが発生する前、またはエラーを引き起こすプロシージャが呼び出される前に、関連する Err オブジェクトのプロパティの値をテストまたは保存する必要があります。Err オブジェクトのプロパティの値には、最新のエラーだけが反映されます。Err.Number に関連付けられたエラー メッセージは、Err.Description に指定されています。

On Error Resume Next は、実行時エラーを発生させたステートメントの直後にあるステートメント、または、On Error Resume Next ステートメントが入っているプロシージャからの最新呼び出しの直後のステートメントを使って、実行を継続させます。これにより、実行時エラーが生成されても処理を続けることができます。その後は、コントロールをプロシージャ内の別の位置に転送するのではなく、エラー処理ルーチンをプロシージャ内にインラインで構築することができます。On Error Resume Next ステートメントは、別のプロシージャが呼び出されるとアクティブでなくなるので、そのルーチン内でインライン エラー処理を行う場合は、呼び出される各ルーチン内で On Error Resume Next ステートメントを実行する必要があります。

注   On Error Resume Next コンストラクトを使うとエラー コードが戻されるオブジェクトを明確に識別できるので、他のオブジェクトへのアクセス中に発生したエラーを処理するときには、On Error GoTo よりも On Error Resume Next コンストラクトの方が適しています。オブジェクトによる相互作用の後で Err をチェックすると、コンテキストが途中なので、エラー発生時にコードがどのオブジェクトにアクセスしていたかが明確になります。したがって、どのオブジェクトが Err.Number にエラー コードを配置したかや、どのオブジェクトが最初にエラーを発生させたか (Err.Source で指定されたオブジェクト) を確かめることができます。

On Error GoTo 0 は、現在のプロシージャ内のエラー処理を無効にします。プロシージャに、番号が 0 の行が含まれていても、エラー処理コードの先頭として番号が 0 の行を指定しません。On Error GoTo 0 ステートメントを使わなければ、エラー処理ルーチンはプロシージャの終了時に自動的に無効になります。

エラーの発生時以外にエラー処理コードが実行されないようにするには、次の例のように、そのエラー処理ルーチンの直前に、Exit Sub、Exit Function、または Exit Property のうち、該当するステートメントを配置します。

Sub InitializeMatrix(Var1, Var2, Var3, Var4)

On Error GoTo ErrorHandler

. . .

Exit Sub

ErrorHandler:

. . .

Resume Next

End Sub

この例で、エラー処理コードは Exit Sub ステートメントと End Sub ステートメントの間にあって、通常のプロシージャの流れから区切っています。これは唯一の可能な解決法です。エラー処理コードは、プロシージャ内のどこにでも配置することができます。

OLE オートメーション オブジェクトが実行可能ファイルとして実行されていると、OLE オートメーション オブジェクト内でトラップされないエラーは、制御中のアプリケーションに戻されます。開発環境では、[ツール] - [オプション] ダイアログ ボックスの [詳細設定] タブの [クラス モジュールで中断] オプションが、偽 (False) に設定されていると、トラップされないエラーのみが OLE クライアント アプリケーションに戻されます。

OLE オートメーション オブジェクトを作成する場合に、そのオブジェクトが他のオブジェクトにアクセスするときは、各オブジェクトから未処理の状態で渡されるエラーを処理する必要があります。このようなエラーを処理できないときは、オブジェクトはそれをオブジェクトの呼び出し側に渡す必要がありますが、最初に Err.Number 内のエラー コードを独自のエラーの 1 つにマップしなければなりません。エラー コードを定数 vbObjectError に追加して、エラーを指定する必要があります。たとえば、エラー コードが 1052 であれば、次のように代入します。

Err.Number = vbObjectError + 1052

注  32 ビットの Microsoft Windows オペレーティング システムでは、ダイナミック リンク ライブラリ (DLL) を呼び出しているときに発生するエラーは、Visual Basic のエラー トラップでトラップされません。DLL 関数を呼び出す場合、それぞれの戻り値を API の仕様を基に確認して、処理が完了したか、失敗したかを判断します。次に、エラーが発生したイベントで、Err オブジェクトの LastDLLError プロパティの値を確認します。


関連項目

End ステートメント

Err オブジェクト

Exit ステートメント

Resume ステートメント

トラップできるエラー


Resume ステートメント

関連項目	例

エラー処理ルーチンの終了後に、実行を再開します。

構文

Resume [0]

Resume Next

Resume line

Resume ステートメントの構文の形式は次のとおりです。

ステートメント	内容

Resume [0]	エラー処理ルーチンと同じプロシージャ内でエラーが発生すると、エラーの原因となったステートメントから実行が再開されます。呼び出されるプロシージャ内でエラーが発生すると、エラー処理ルーチンを含むプロシージャから最後に呼び出されたステートメントの実行が最初に再開されます。

Resume Next	エラー処理ルーチンと同じプロシージャ内でエラーが発生すると、エラーの原因となったステートメントの直後にあるステートメントの実行が最初に再開されます。呼び出されるプロシージャ内でエラーが発生すると、エラー処理ルーチンを含むプロシージャから最後に呼び出されたステートメントの、直後のステートメント、または、On Error Resume Next ステートメントから、実行が再開されます。

Resume line	引数 line の実行が最初に再開されます。この場合、引数 line は行ラベルまたは行番号を指定します。引数 line は、エラー処理ルーチンと同じプロシージャ内になければなりません。

解説

エラー処理ルーチン以外の場所で Resume ステートメントを使うと、エラーが発生します。エラー処理ルーチンがアクティブのときに、Resume ステートメントを実行する前にプロシージャ (End Sub ステートメント、End Function ステートメント、または End Property ステートメント) を実行すると、意図せずに論理エラーが発生したものと見なされるので、エラーが発生します。ただし、エラー処理ルーチンがアクティブになっている間に Exit Sub ステートメント、Exit Function ステートメント、または Exit Property ステートメントに実行が移ると、意図的な実行のリダイレクトと見なされるのでエラーは発生しません。


関連項目

End ステートメント

Err オブジェクト

Exit ステートメント

On Error ステートメント

トラップできるエラー


LastDLLError プロパティ

関連項目	対象

ダイナミック リンク ライブラリ (DLL) を呼び出したときに発生したシステム エラー コードを返します。32 ビットの Windows オペレーティング システムのみで使用できます。

構文

object.LastDLLError

object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

LastDLLError プロパティは 32 ビットの Windows オペレーティング システムでのみ使用できます。Visual Basic のコード内で Declare ステートメントを必要とする DLL の呼び出しをする場合に使用できます。この場合、通常、呼び出された関数は完了または失敗を示すコードを返します。また、LastDLLError プロパティも設定されます。失敗を示すコードが返された場合は、LastDLLError プロパティを確認する必要があります。LastDLLError プロパティが設定された場合は、例外は発生しません。


LastDLLError プロパティの対象

Err オブジェクト


関連項目

Clear メソッド

Declare ステートメント

Description プロパティ

HelpContext プロパティ

HelpFile プロパティ

Number プロパティ

On Error ステートメント

Raise メソッド

Source プロパティ


Choose 関数

関連項目	例

引数のリストから値を選択して返します。

構文

Choose(index, choice-1[, choice-2, ... [,choice-n]])

Choose 関数の指定項目は次のとおりです。

指定項目	内容

index	1 から利用可能な選択肢の数までの範囲内の値を返す数式またはフィールドを指定します。

choice	選択肢のいずれかを格納するバリアント型 (Variant) の式を指定します。

解説

Choose 関数は、引数 index の値に基づいて選択肢のリストから値を返します。引数 index が 1 の場合、Choose 関数はリストに含まれる最初の選択肢を返します。引数 index が 2 なら 2 番めの選択肢を返し、以下同様に続きます。

Choose 関数を使うと、選択可能な値のリストから特定の値を検索することができます。たとえば、choice-1 = "one"、choice-2 = "two"、choice-3 = "three" である場合に引数 index に指定した式が 3 を返すと、Choose 関数は "three" を返します。この機能は、引数 index がオプション グループの値を表す場合に特に便利です。

Choose 関数では、選択肢が 1 つだけ返されますが、評価はリストに含まれるすべての選択肢に対して行われます。このため、Choose 関数を使うと、予期しない結果が起きることがあります。たとえば、すべての選択肢において MsgBox 関数が式の一部として使用されていれば、Choose 関数が単独の値を返す場合でも、各選択肢が評価されるたびにメッセージ ボックスが表示されます。

引数 index が 1 より小さい場合や、リストに含まれる選択肢の数より大きい場合は、Choose 関数の戻り値は #Null# になります。

引数 index が整数でない場合は、最も近い整数に丸められてから評価されます。


関連項目

IIf 関数


DateAdd 関数

関連項目	例

指定された時間間隔を加算した日付をバリアント型 (Variant) で返します。

構文

DateAdd(interval, number, date)

DateAdd 関数の名前付き引数は次のとおりです。

指定項目	内容

interval	追加する時間間隔の単位を表す文字列式を指定します。設定する値については、次の「設定値」を参照してください。

number	追加する時間間隔の数を表す数式を指定します。将来の日時を取得するには正の数を指定し、過去の日時を取得するには負の数を指定します。

date	計算の起算日となる日付を指定するか、または有効な日付を格納するバリアント型の変数の名前を指定します。

設定値

名前付き引数 interval の設定値は次のとおりです。

設定値	内容

yyyy	年

q	四半期

m	月

y	年間通算日

d	日

w	週日

ww	週

h	時

n	分

s	秒

解説

DateAdd 関数を使うと、ある日付に対して指定した時間間隔を、加えたり引いたりすることができます。たとえば、現在から 30 日後の日付や、現在から 45 分後の時刻などを計算できます。

名前付き引数 date に日数を加えるには、年間通算日 ("y")、日 ("d")、週日 ("w") のいずれかを指定します。

DateAdd 関数が無効な日付を返すことはありません。次の例では、31-Jan-95 の日付に 1 か月を加えています。

DateAdd("m", 1, "31-Jan-95")

この場合、31-Feb-95 ではなく 28-Feb-95 が返されます。名前付き引数 date が 31-Jan-96 であれば、1996 年は閏年なので 29-Feb-96 が返されます。

計算の結果、日付が西暦 100 年以前になる場合 (名前付き引数 date に指定した年よりも大きな年を引いた場合) は、エラーが発生します。

名前付き引数 number に指定した値が長整数型 (Long) でない場合は、最も近い整数値に丸められてから評価されます。


関連項目

DateDiff 関数

DatePart 関数

Day 関数

Format 関数

Now 関数

Weekday 関数

Year 関数


DateDiff 関数

関連項目	例

指定された 2 つの日付の時間間隔数を返します。

構文

DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])

DateDiff 関数の名前付き引数は次のとおりです。

指定項目	内容

interval	名前付き引数 date1 と date2 の間隔を計算するための、時間単位を表す文字列式を指定します。設定する値については、次の「設定値」を参照してください。

date1, date2	間隔を計算する 2 つの日付を指定します。

firstdayofweek	週の始まりの曜日を表す定数を指定します。省略すると、日曜日を指定したものと見なされます。設定する値については、次の「設定値」を参照してください。

firstweekofyear	年度の第 1 週を表す定数を指定します。省略すると、1 月 1 日の含まれる週が第 1 週と見なされます。設定する値については、次の「設定値」を参照してください。

設定値

名前付き引数 interval の設定値は次のとおりです。

設定値	時間間隔

yyyy	年

q	四半期

m	月

y	年間通算日

d	日

w	週日

ww	週

h	時

n	分

s	秒

名前付き引数 firstdayofweek の設定値は次のとおりです。

定数	値	内容

vbUseSystem	0	アプリケーション側の設定値があれば、その設定値を使います。設定値がなければ、NLS API の設定値を使います。

vbSunday	1	(既定値) 日曜

vbMonday	2	月曜

vbTuesday	3	火曜

vbWednesday	4	水曜

vbThursday	5	木曜

vbFriday	6	金曜

vbSaturday	7	土曜

名前付き引数 firstweekofyear の設定値は次のとおりです。

定数	値	内容

vbUseSystem	0	アプリケーション側の設定値があれば、その設定値を使います。設定値がなければ、NLS API の設定値を使います。

vbFirstJan1	1	(既定値) 1 月 1 日が含まれる週を年度の第 1 週として扱います。

vbFirstFourDays	2	7 日のうち少なくとも 4 日が新年度に含まれる週を年度の第 1 週として扱います。

vbFirstFullWeek	3	全体が新年度に含まれる最初の週を年度の第 1 週として扱います。

解説

DateDiff 関数を使うと、指定した時間単位で 2 つの日付の時間間隔を調べることができます。たとえば、2 つの日付の間の日数や、現在から年末までの週の数などを求めることができます。

名前付き引数 date1 と date2 の間の日数を求めるには、年間通算日 ("y") か日 ("d") のいずれかを指定します。

名前付き引数 interval に週日 ("w") を指定すると、2 つの日付の間の週の数が計算されます。名前付き引数 date1 が月曜日の場合は、名前付き引数 date2 までの間の月曜日の数が返されます。このとき名前付き引数 date2 の月曜日は計算に入りますが、名前付き引数 date1 の月曜日は計算に入りません。一方、名前付き引数 interval に週 ("ww") を指定した場合は、2 つの日付の間の暦上の週の数が計算されます。つまり、名前付き引数 date1 と date2 の間の日曜日の数が返されます。名前付き引数 date2 に指定した日付が日曜日であれば、名前付き引数 date2 は計算に入りますが、名前付き引数 date1 は日曜日であっても計算に入りません。

名前付き引数 interval に四半期 ("q") を指定し、2 つの日付の間を 1ヶ月以下に設定すると、DateDiff 関数は 0 を返します。

名前付き引数 date2 よりも時間的に後の日付を名前付き引数 date1 に指定すると、DateDiff 関数は負の数を返します。

名前付き引数 firstdayofweek は、名前付き引数 interval に週 ("ww") を指定した場合の計算値に影響します。

名前付き引数 date に年度を含む日付リテラル (# 記号で囲まれた日付) を指定した場合は、その年度は必ず日付の一部として扱われるようになりますが、名前付き引数 date に年度を含まない日付をダブル クォーテーション ("") で囲んで指定した場合は、名前付き引数 date が評価されるたびに現在の年度がコードに挿入されます。これを利用すれば、異なる年度で使用できるコードを記述することが可能になります。


関連項目

DateAdd 関数

DatePart 関数

Day 関数

Format 関数

Now 関数

Weekday 関数

Year 関数


DatePart 関数

関連項目	例

指定された日付の指定された部分を返します。

構文

DatePart(interval, date[, firstdayofweek[, firstweekofyear]])

DatePart 関数の名前付き引数は次のとおりです。

指定項目	内容

interval	時間間隔の単位を表す文字列式を指定します。設定する値については、次の「設定値」を参照してください。

date	対象となる日付を指定します。

firstdayofweek	週の始まりの曜日を表す定数を指定します。省略すると、日曜日を指定したものと見なされます。設定する値については、次の「設定値」を参照してください。

firstweekofyear	年度の第 1 週を表す定数を指定します。省略すると、1 月 1 日の含まれる週が第 1 週と見なされます。設定する値については、次の「設定値」を参照してください。

設定値

名前付き引数 interval の設定値は次のとおりです。

設定値	内容

yyyy	年

q	四半期

m	月

y	年間通算日

d	日

w	週日

ww	週

h	時

n	分

s	秒

名前付き引数 firstdayofweek の設定値は次のとおりです。

定数	値	内容

vbUseSystem	0	アプリケーション側の設定値があれば、その設定値を使います。設定値がなければ、NLS API の設定値を使います。

vbSunday	1	(既定値) 日曜

vbMonday	2	月曜

vbTuesday	3	火曜

vbWednesday	4	水曜

vbThursday	5	木曜

vbFriday	6	金曜

vbSaturday	7	土曜

名前付き引数 firstweekofyear の設定値は次のとおりです。

定数	値	内容

vbUseSystem	0	アプリケーション側の設定値があれば、その設定値を使います。設定値がなければ、NLS API の設定値を使います。

vbFirstJan1	1	(既定値) 1 月 1 日が含まれる週を年度の第 1 週として扱います。

vbFirstFourDays	2	7 日のうち少なくとも 4 日が新年度に含まれる週を年度の第 1 週として扱います。

vbFirstFullWeek	3	全体が新年度に含まれる最初の週を年度の第 1 週として扱います。

解説

DatePart 関数を使うと、日付を評価し、特定の時間間隔部分を取得できます。たとえば、週日や現在の時刻などを計算できます。

名前付き引数 firstdayofweek は、名前付き引数 interval に週 ("ww") を指定した場合の計算値に影響します。

名前付き引数 date に年度を含む日付リテラル (# 記号で囲まれた日付) を指定した場合は、その年度は必ず日付の一部として扱われるようになりますが、名前付き引数 date に年度を含まない日付をダブル クォーテーション ("") で囲んで指定した場合は、名前付き引数 date が評価されるたびに現在の年度がコードに挿入されます。これを利用すれば、異なる年度で使用できるコードを記述することが可能になります。


Environ 関数

例

オペレーティング システムの環境変数に割り当てられた文字列を返します。

構文

Environ({envstring | number})

Environ 関数の名前付き引数は次のとおりです。

指定項目	内容

envstring	環境変数の名前を表す文字列式を指定します。

number	環境文字列テーブルの中における環境文字列の順番を示す数式を指定します。名前付き引数 number には任意の数式を指定できますが、評価される前に整数に丸められます。

解説

名前付き引数 envstring に指定した環境変数名が環境文字列テーブルに存在しない場合は、長さ 0 の文字列 ("") が返されます。名前付き引数 envstring に指定した環境変数名が環境文字列テーブルに存在していれば、その環境変数に割り当てられたテキスト (環境文字列テーブルの中で、指定した環境変数の等号の後に記述されているテキスト) が返されます。

名前付き引数 number に順番を指定すると、環境文字列テーブルの中でその順番に該当する文字列が返されます。この場合、名前付き引数 envstring を含むすべてのテキストが返されます。該当する環境文字列が存在しなければ、長さ 0 の文字列 ("") が返されます。


関連項目

DateAdd 関数

DateDiff 関数

Day 関数

Format 関数

Now 関数

Weekday 関数

Year 関数


IIf 関数

関連項目	例

式の評価結果によって、2 つの引数のうち 1 つを返します。

構文

IIf(expr, truepart, falsepart)

IIf 関数は、以下の名前付き引数を取ります。

指定項目	内容

expr	評価対象の式を指定します。

truepart	名前付き引数 expr が真 (True) の場合に返すべき値または式を指定します。

falsepart	名前付き引数 expr が偽 (False) の場合に返すべき値または式を指定します。

解説

IIf 関数では、名前付き引数 truepart と falsepart のいずれか一方だけが返されますが、評価は両方の引数に対して行われます。このため、IIf 関数を使うと、予期しない結果が起きることがあります。たとえば、名前付き引数 falsepart を評価した結果 0 による除算エラーが発生する場合は、名前付き引数 expr が真 (True) であってもエラーが発生します。


関連項目

Choose 関数

If...Then...Else ステートメント


Partition 関数

例

ある数値が、区切られた複数の範囲のうち、どの範囲に含まれるかを示す文字列を返します。

構文

Partition(number, start, stop, interval)

Partition 関数の名前付き引数は次のとおりです。

指定項目	内容

number	範囲に対して評価する整数を指定します。

start	対象となる範囲全体の先頭となる整数を指定します。0 より小さい整数を指定することはできません。

stop	対象となる範囲全体の末尾となる整数を指定します。名前付き引数 stop には、名前付き引数 start に指定した整数よりも大きい整数を指定しなければなりません。

interval	名前付き引数 start および名前付き引数 stop で定義した、対象となる範囲全体を等分する各範囲の長さを示す整数を指定します。1 より小さい整数を指定することはできません。

解説

Partition 関数は、名前付き引数 number に指定した整数が属する特定の範囲を算出し、その範囲を示す文字列を返します。Partition 関数は、クエリーの作成に特に役立ちます。たとえば、受注番号の各範囲 (1 ～ 1,000 や 1,001 ～ 2,000 など) に含まれる注文の数を示す選択クエリーを作成することが可能です。

次の表では、名前付き引数 start、stop、および interval の値の組み合わせを 3 とおり示し、その結果得られる範囲を示しています。「最初の範囲」の列と「最後の範囲」の列は、Partition 関数が返す文字列を示しています。範囲を示す文字列は、範囲内の最小値と最大値をコロンで区切って、最大値 : 最小値の形式で返されます。

start	stop	interval	最初の範囲の直前	最初の範囲	最後の範囲	最後の範囲の直後
0	99	5	"   :-1"	"  0:  4"	" 95: 99"	" 100:   "
20	199	10	"    :  19"	"  20:  29"	" 190: 199"	" 200:    "
100	1010	20	"     :   99"	"  100:  119"	" 1000: 1010"	" 1011:     "
この表の 3 行めには、名前付き引数 start と stop で定義される数列が名前付き引数 interval の値で等分できない場合の結果が示されています。名前付き引数 interval の値は 20 ですが、最後の範囲は名前付き引数 stop に指定された整数値で終わっているため、その長さは 11 になっています。

Partition 関数は、コロンの両側に名前付き引数 stop で指定した整数の桁数に 1 を加えた文字数を設定し、先頭に十分なスペースを持った範囲を返します。こうすることによって、何回か他の数値を指定して Partition 関数を実行しても、同じ文字数のテキストが返されるので、その後の並べ替え処理で適切に文字列を処理することができます。

名前付き引数 interval に 1 を指定すると、名前付き引数 start および名前付き引数 stop の値に関係なく、範囲は number:number として返されます。たとえば、名前付き引数 number に 100 を指定し、名前付き引数 stop に 1,000 を指定した場合に、名前付き引数 interval に 1 を指定すると、"  100:  100" という範囲が返されます。

引数のいずれかに Null 値を指定すると、Null 値が返されます。


QBColor 関数

関連項目	例

色番号に対応する RGB コードを返します。

構文

QBColor(color)

引数 color には、0 ～ 15 の整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 color の設定値は次のとおりです。

番号	色	番号	色
0	黒	8	灰色
1	青	9	明るい青
2	緑	10	明るい緑
3	シアン	11	明るいシアン
4	赤	12	明るい赤
5	マゼンタ	13	明るいマゼンタ
6	黄	14	明るい黄
7	白	15	明るい白
解説

引数 color の各設定値は、他のバージョンの Basic (Microsoft Visual Basic for MS-DOS や Microsoft Basic Compiler など) で使用されている色値に対応しています。返される値は、Microsoft Visual Basic Applications Edition で使用される RGB システムに対応する赤、緑、青の値を最下位バイトから並べたものです。


関連項目

RGB 関数


Switch 関数

関連項目	例

式のリストを評価し、リストの中で真 (True) となる最初の式に関連付けられた値または式を返します。

構文

Switch(expr-1, value-1[, expr-2, value-2 . . . [, expr-n, value-n]])

Switch 関数の指定項目は次のとおりです。

Switch

指定項目	内容

expr	評価対象となるバリアント型 (Variant) の式を指定します。

value	対応する式が真 (True) のときに返す値または式を指定します。

解説

Switch 関数の引数リストでは、式および値 (または式) を対にして指定します。評価対象の式は、リスト内で左に指定したものから順に評価され、真 (True) と評価された最初の式に関連付けれられた値 (または式) が返されます。式と値が正しく対になっていなければ、実行時エラーが発生します。たとえば、引数 expr-1 が真 (True) であれば引数 value-1 が返されます。引数 expr-1 が偽 (False) で引数 expr-2 が真 (True) である場合には、引数 value-2 が返されます。

以下の場合は、Null 値が返されます。

いずれの式も真 (True) と評価されない場合。

真 (True) と評価された最初の式に Null 値が関連付けられている場合。

Switch 関数では、リスト内の式のいずれか 1 つだけが返されますが、評価はリスト内のすべての式に対して行われます。このため、Switch 関数を使うと、予期しない結果が起きることがあります。たとえば、評価すると 0 による除算エラーが発生する式が 1 つでも含まれていれば、エラーになります。


関連項目

Choose 関数

IIf 関数

Select Case ステートメント


財務関数

DDB 関数

FV 関数

IPmt 関数

IRR 関数

MIRR 関数

NPer 関数

NPV 関数

Pmt 関数

PPmt 関数

PV 関数

Rate 関数

SLN 関数

SYD 関数


DDB 関数

関連項目	例

倍率法などの指定した方法を使って、特定の期における資産の減価償却費を返します。

構文

DDB(cost, salvage, life, period[, factor])

DDB 関数の名前付き引数は次のとおりです。

指定項目	内容

cost	資産を購入した時点での価格を指定します。

salvage	耐用年数が終了した時点での資産の価格を指定します。

life	資産の耐用年数を指定します。

period	減価償却費を求める期を指定します。

factor	減価償却率を指定します。名前付き引数 factor を省略すると、2 を指定したと見なされ、倍率逓減法で計算されます。

解説

倍率法では、指定した償却率で減価償却費が計算されます。減価償却費は、最初の期が最も高く、その後の期で減少していきます。

名前付き引数 life および period は、同じ単位で指定する必要があります。たとえば、名前付き引数 life を月単位で指定した場合は、名前付き引数 period も月単位で指定します。すべての引数には必ず正の値を指定してください。

DDB 関数を使って、指定した期に対する減価償却費を求めるには、次の式を使います。

指定した期 (period) の減価償却費 = ((cost - salvage) * factor) / life


関連項目

財務関数


FV 関数

関連項目	例

定額の支払いを定期的に行い、利率が一定であると仮定して、投資の将来価値を返します。

構文

FV(rate, nper, pmt[, pv[, type]])

FV 関数の名前付き引数は次のとおりです。

指定項目	内容

rate	投資期間を通じて一定の利率を指定します。たとえば、年利 (APR) 10% の車のローンを月払いで返済する場合、各期間の利率は 0.1/12 または 0.0083 になります。

nper	投資期間全体での支払い回数の合計を指定します。たとえば、4 年の車のローンを月払いで返済する場合、支払い回数は 48 回 (12 回×4 年) になります。

pmt	毎回の支払額を指定します。支払額には通常、元金と利息が含まれ、支払額を投資期間内に変更することはできません。

pv	現在の投資額または将来行われる一連の支払いを、現時点で一括支払いした場合の合計金額を指定します。たとえば、車を購入するために資金を借りる場合、毎月支払うローンの総額が名前付き引数 pv になります。名前付き引数 pv を省略すると、0 を指定したと見なされます。

type	支払い期日を数値で指定します。各期の期末に支払う場合は 0 を、各期の期首に支払う場合は 1 を指定します。名前付き引数 type を省略すると、0 を指定したと見なされます。

解説

投資とは、一連の定額の支払いを一定の期間行うことで、たとえば住宅ローンなどのローンまたは毎月の貯蓄プランなどの出資を指します。

名前付き引数 rate および nper は、時間的に同じ単位で指定する必要があります。たとえば、引数 rate を月単位で指定した場合は、名前付き引数 nper も月単位で指定します。

出金 (定額預金の支払いなど) を表す引数には負の値を指定し、入金 (配当金など) を表す引数には正の値を指定してください。


関連項目

財務関数


IPmt 関数

関連項目	例

定額の支払いを定期的に行い、利率が一定であると仮定して、投資期間内の指定した期に支払われる金利を返します。

構文

IPmt(rate, per, nper, pv[, fv[, type]])

IPmt 関数の名前付き引数は次のとおりです。

指定項目	内容

rate	投資期間を通じて一定の利率を指定します。たとえば、年利 (APR) 10% の車のローンを月払いで返済する場合、各期間の利率は 0.1/12 または 0.0083 になります。

per	金利支払額を求める期を 1 ～ nper の範囲で指定します。

nper	投資期間全体での支払い回数の合計を指定します。たとえば、4 年の車のローンを月払いで返済する場合、支払い回数は 48 回 (12 回×4 年) になります。

pv	現在の投資額または将来行われる一連の支払いや収益を、現時点で一括した場合の合計金額を指定します。たとえば、車を購入するために資金を借りる場合、毎月支払うローンの総額が名前付き引数 pv になります。

fv	投資の将来価値、または最後の支払いを行った後に残る現金の収支を指定します。ローンなどの借入の将来価値は 0 になります。また、子供の教育費用として 18 年間で 500,000 円貯蓄する場合は、将来価値が 500,000 円になります。名前付き引数 fv を省略すると、0 を指定したと見なされます。

type	支払い期日を数値で指定します。各期の期末に支払う場合は 0 を、各期の期首に支払う場合は 1 を指定します。名前付き引数 type を省略すると、0 を指定したと見なされます。

解説

投資とは、一連の定額の支払いを一定の期間行うことで、たとえば住宅ローンなどのローンまたは毎月の貯蓄プランなどの出資を指します。

名前付き引数 rate および nper は、時間的に同じ単位で指定する必要があります。たとえば、名前付き引数 rate を月単位で指定した場合は、名前付き引数 nper も月単位で指定します。

出金 (定額預金の支払いなど) を表す引数には負の値を指定し、入金 (配当金など) を表す引数には正の値を指定してください。


関連項目

財務関数


IRR 関数

関連項目	例

一連の定期的なキャッシュ フロー (支払いと収益) に対する、内部利益率を返します。

構文

IRR(values()[, guess])

IRR 関数の名前付き引数は次のとおりです。

指定項目	内容

values()	キャッシュ フローの値を配列として指定します。配列には、負の値 (支払額) と正の値 (収益額) が少なくとも 1 つずつ含まれている必要があります。

guess	IRR 関数の計算結果に近いと思われる数値を指定します。名前付き引数 guess を省略すると、0.1 (10%) を指定したと見なされます。

解説

内部利益率とは、一定の期間ごとに発生する支払いと収益からなる投資効率を表す利率のことです。

IRR 関数では、配列で指定した値の順序がキャッシュ フローの順序であると見なされます。支払額と収益額を入力するときは、その順序に注意してください。各期間のキャッシュ フローが一定である必要はありません。

IRR 関数の計算には、反復計算の手法が用いられます。名前付き引数 guess の値を初期値とし、計算結果の誤差が 0.00001% 以内になるまで反復計算が実行されます。反復計算を 20 回行っても適切な解が見つからない場合は、エラーとなります。


関連項目

財務関数


MIRR 関数

関連項目	例

一連の定期的なキャッシュ フロー (支払いと収益) に基づいて、修正内部利益率を返します。

構文

MIRR(values(), finance_rate, reinvest_rate)

MIRR 関数の名前付き引数は次のとおりです。

指定項目	内容

values()	キャッシュ フローの値を配列として指定します。配列には、負の値 (支払額) と正の値 (収益額) が少なくとも 1 つずつ含まれている必要があります。

finance_rate	支払額に対する利率を指定します。

reinvest_rate	収益額に対する利率を指定します。

解説

修正内部利益率は、支払いと収益を異なる利率で管理する場合の内部利益率を表します。MIRR 関数では、投資原価 (finance_rate) と現金の再投資に対する受取り利率 (reinvest_rate) の両方が比較検討されます。

名前付き引数 finance_rate および reinvest_rate は、小数点を用いた百分率で指定します。たとえば、12% は 0.12 と記述します。

MIRR 関数では、配列で指定した値の順序がキャッシュ フローの順序であると見なされます。支払額と収益額を入力するときは、その順序に注意してください。


関連項目

財務関数


NPer 関数

関連項目	例

定額の支払いを定期的に行い、利率が一定であると仮定して、投資に必要な期間を返します。

構文

NPer(rate, pmt, pv[, fv[, type]])

NPer 関数の名前付き引数は次のとおりです。

指定項目	内容

rate	投資期間を通じて一定の利率を指定します。たとえば、年率 (APR) 10% の車のローンを月払いで返済する場合、各期間の利率は 0.1/12 または 0.0083 になります。

pmt	毎回の支払額を指定します。支払額には通常、元金と利息が含まれ、支払額を投資期間内に変更することはできません。

pv	現在の投資額または将来行われる一連の支払いおよび収益を、現時点で一括した場合の合計金額を指定します。たとえば、車を購入するために資金を借りる場合、毎月支払うローンの総額が名前付き引数 pv になります。

fv	投資の将来価値、または最後の支払いを行った後に残る現金の収支を指定します。ローンなどの借入の将来価値は 0 になります。また、子供の教育費用として 18 年間で 500,000 円貯蓄する場合は、将来価値が 500,000 円になります。名前付き引数 fv を省略すると、0 を指定したと見なされます。

type	支払い期日を数値で指定します。各期の期末に支払う場合は 0 を、各期の期首に支払う場合は 1 を指定します。名前付き引数 type を省略すると、0 を指定したと見なされます。

解説

投資とは、一連の定額の支払いを一定の期間行うことで、たとえば住宅ローンなどのローンまたは毎月の貯蓄プランなどの出資を指します。

出金 (定額預金の支払いなど) を表す引数には負の値を指定し、入金 (配当金など) を表す引数には正の値を指定してください。


関連項目

財務関数


NPV 関数

関連項目	例

一連の定期的なキャッシュ フロー (支払いと収益) と割引率に基づいて、投資の正味現在価値を返します。

構文

NPV(rate, values())

NPV 関数の名前付き引数は次のとおりです。

指定項目	内容

rate	投資期間を通じて一定の割引率を、小数点を用いた百分率で指定します。

values()	キャッシュ フローの値を配列として指定します。配列には、負の値 (支払額) と正の値 (収益額) が少なくとも 1 つずつ含まれている必要があります。

解説

投資の正味現在価値とは、将来行われる一連の支払いと収益を現時点での現金価値に換算したものです。

NPV 関数では、配列で指定した値の順序がキャッシュ フローの順序であると見なされます。支払額と収益額を入力するときは、その順序に注意してください。

NPV 関数では、投資は配列の最初のキャッシュ フローの日付よりも 1 期前に開始され、配列の最後のキャッシュ フローで終了します。

正味現在価値は、将来のキャッシュ フローを基にして計算されます。最初のキャッシュ フローが第 1 期の期首に発生する場合、その最初の値は名前付き引数 values() のキャッシュ フローの値に含めず、NPV 関数の計算結果に加算する必要があります。

NPV 関数は投資の現在価値を返す PV 関数によく似ていますが、NPV 関数と PV関数の最も大きな違いは、PV 関数ではキャッシュ フローが期首と期末のどちらに発生してもかまわない点にあります。また、NPV 関数ではキャッシュ フローの金額が一定していませんが、PV 関数では投資期間を通じて一定である必要があります。


関連項目

財務関数


Pmt 関数

関連項目	例

定額の支払いを定期的に行い、利率が一定であると仮定して、投資に必要な定期支払額を返します。

構文

Pmt(rate, nper, pv[, fv[, type]])

Pmt 関数の名前付き引数は次のとおりです。

指定項目	内容

rate	投資期間を通じて一定の利率を指定します。たとえば、年率 (APR) 10% の車のローンを月払いで返済する場合、各期間の利率は 0.1/12 または 0.0083 になります。

nper	投資期間全体での支払い回数の合計を指定します。たとえば、4 年の車のローンを月払いで返済する場合、支払い回数は 48 回 (12 回×4 年) になります。

pv	現在の投資額または将来行われる一連の支払いを、現時点で一括支払いした場合の合計金額を指定します。たとえば、車を購入するために資金を借りる場合、毎月支払うローンの総額が名前付き引数 pv になります。

fv	投資の将来価値、または最後の支払いを行った後に残る現金の収支を指定します。ローンなどの借入の将来価値は 0 になります。また、子供の教育費用として 18 年間で 500,000 円貯蓄する場合は、将来価値が 500,000 円になります。名前付き引数 fv を省略すると、0 を指定したと見なされます。

type	支払い期日を数値で指定します。各期の期末に支払う場合は 0 を、各期の期首に支払う場合は 1 を指定します。名前付き引数 type を省略すると、0 を指定したと見なされます。

解説

投資とは、一連の定額の支払いを一定の期間行うことで、たとえば住宅ローンなどのローンまたは毎月の貯蓄プランなどの出資を指します。

名前付き引数 rate および nper は、時間的に同じ単位で指定する必要があります。たとえば、名前付き引数 rate を月単位で指定した場合は、名前付き引数 nper も月単位で指定します。

出金 (定額預金の支払いなど) を表す引数には負の値を指定し、入金 (配当金など) を表す引数には正の値を指定してください。


関連項目

財務関数


PPmt 関数

関連項目	例

定額の支払いを定期的に行い、利率が一定であると仮定して、指定した期に支払われる元金を返します。

構文

PPmt(rate, per, nper, pv[, fv[, type]])

PPmt 関数の名前付き引数は次のとおりです。

指定項目	内容

rate	投資期間を通じて一定の利率を指定します。たとえば、年率 (APR) 10% の車のローンを月払いで返済する場合、各期間の利率は 0.1/12 または 0.0083 になります。

per	元金支払額を求める期を 1 ～ nper の範囲で指定します。

nper	投資期間全体での支払い回数の合計を指定します。たとえば、4 年の車のローンを月払いで返済する場合、支払い回数は 48 回 (12 回×4 年) になります。

pv	現在の投資額または将来行われる一連の支払いや収益を、現時点で一括した場合の合計金額を指定します。たとえば、車を購入するために資金を借りる場合、毎月支払うローンの総額が名前付き引数 pv になります。

fv	投資の将来価値、または最後の支払いを行った後に残る現金の収支を指定します。ローンなどの借入の将来価値は 0 になります。また、子供の教育費用として 18 年間で 500,000 円貯蓄する場合は、将来価値が 500,000 円になります。名前付き引数 fv を省略すると、0 を指定したと見なされます。

type	支払い期日を数値で指定します。各期の期末に支払う場合は 0 を、各期の期首に支払う場合は 1 を指定します。名前付き引数 type を省略すると、0 を指定したと見なされます。

解説

投資とは、一連の定額の支払いを一定の期間行うことで、たとえば住宅ローンなどのローンまたは毎月の貯蓄プランなどの出資を指します。

名前付き引数 rate および nper は、時間的に同じ単位で指定する必要があります。たとえば、名前付き引数 rate を月単位で指定した場合は、名前付き引数 nper も月単位で指定します。

出金 (定額預金の支払いなど) を表す引数には負の値を指定し、入金 (配当金など) を表す引数には正の値を指定してください。


関連項目

財務関数


PV 関数

関連項目	例

定額の支払いを定期的に行い、利率が一定であると仮定して、投資の現在価値を返します。

構文

PV(rate, nper, pmt[, fv[, type]])

PV 関数の名前付き引数は次のとおりです。

指定項目	内容

rate	投資期間を通じて一定の利率を指定します。たとえば、年率 (APR) 10% の車のローンを月払いで返済する場合、各期間の利率は 0.1/12 または 0.0083 になります。

nper	投資期間全体での支払い回数の合計を指定します。たとえば、4 年の車のローンを月払いで返済する場合、支払い回数は 48 回 (12 回×4 年) になります。

pmt	毎回の支払額を指定します。支払額には通常、元金と利息が含まれ、支払額を投資期間内に変更することはできません。

fv	投資の将来価値、または最後の支払いを行った後に残る現金の収支を指定します。ローンなどの借入の将来価値は 0 になります。また、子供の教育費用として 18 年間で 500,000 円貯蓄する場合は、将来価値が 500,000 円になります。名前付き引数 fv を省略すると、0 を指定したと見なされます。

type	支払い期日を数値で指定します。各期の期末に支払う場合は 0 を、各期の期首に支払う場合は 1 を指定します。名前付き引数 type を省略すると、0 を指定したと見なされます。

解説

投資とは、一連の定額の支払いを一定の期間行うことで、たとえば住宅ローンなどのローンまたは毎月の貯蓄プランなどの出資を指します。

名前付き引数 rate および nper は、時間的に同じ単位で指定する必要があります。たとえば、名前付き引数 rate を月単位で指定した場合は、名前付き引数 nper も月単位で指定します。

出金 (定額預金の支払いなど) を表す引数には負の値を指定し、入金 (配当金など) を表す引数には正の値を指定してください。


関連項目

財務関数


Rate 関数

関連項目	例

投資期間を通じての利率を返します。

構文

Rate(nper, pmt, pv[, fv[, type[, guess]]])

Rate 関数の名前付き引数は次のとおりです。

指定項目	内容

nper	投資期間全体での支払い回数の合計を指定します。たとえば、4 年の車のローンを月払いで返済する場合、支払い回数は 48 回 (12 回×4 年) になります。

pmt	毎回の支払額を指定します。支払額には通常、元金と利息が含まれ、支払額を投資期間内に変更することはできません。

pv	現在の投資額または将来行われる一連の支払いや収益を、現時点で一括した場合の合計金額を指定します。たとえば、車を購入するために資金を借りる場合、毎月支払うローンの総額が名前付き引数 pv になります。

fv	投資の将来価値、または最後の支払いを行った後に残る現金の収支を指定します。ローンなどの借入の将来価値は 0 になります。また、子供の教育費用として 18 年間で 500,000 円貯蓄する場合は、将来価値が 500,000 円になります。名前付き引数 fv を省略すると、0 を指定したと見なされます。

type	支払い期日を数値で指定します。各期の期末に支払う場合は 0 を、各期の期首に支払う場合は 1 を指定します。名前付き引数 type を省略すると、0 を指定したと見なされます。

guess	利率の推定値を指定します。省略すると、0.1 (10%) を指定したと見なされます。

解説

投資とは、一連の定額の支払いを一定の期間行うことで、たとえば住宅ローンなどのローンまたは毎月の貯蓄プランなどの出資を指します。

出金 (定額預金の支払いなど) を表す引数には負の値を指定し、入金 (配当金など) を表す引数には正の値を指定します。

Rate 関数は、反復計算の手法を用いて利率を計算します。名前付き引数 guess の値を初期値とし、計算結果の誤差が 0.00001% 以内になるまで反復計算が実行されます。反復計算を 20 回行っても適切な解が見つからない場合は、エラーとなります。推定値に 10% を指定した場合にエラーになったときは、名前付き引数 guess の値を変えてみてください。


関連項目

財務関数


SLN 関数

関連項目	例

定額法を用いて、資産の 1 期当たりの減価償却費を返します。

構文

SLN(cost, salvage, life)

SLN 関数の名前付き引数は次のとおりです。

指定項目	内容

cost	資産を購入した時点での価格を指定します。

salvage	耐用年数を経た後での資産の価格を指定します。

life	資産の耐用年数を指定します。

解説

減価償却の期間は、資産の耐用期間と同じ単位で表されます。また、すべての引数には必ず正の値を指定してください。


関連項目

財務関数


SYD 関数

関連項目	例

定額逓減法を使って、指定した期の減価償却費を返します。

構文

SYD(cost, salvage, life, per)

SYD 関数の名前付き引数は次のとおりです。

指定項目	内容

cost	資産を購入した時点での価格を指定します。

salvage	耐用年数を経た後での資産の価格を指定します。

life	資産の耐用年数を指定します。

per	減価償却費を計算する期を指定します。

解説

名前付き引数 life および per は、同じ単位で指定する必要があります。たとえば、名前付き引数 life を月単位で指定した場合は、名前付き引数 per も月単位で指定します。また、すべての引数には必ず正の値を指定してください。


関連項目

財務関数


Me キーワード

関連項目

キーワード Me は、暗黙のうちに宣言された変数のように動作します。キーワード Me はクラス モジュール内のすべてのプロシージャ (Sub プロシージャまたは Function プロシージャ) で使用できます。キーワード Me は、複数のインスタンスを作成できるクラスを使用するときに、現在コードが実行されているクラスを指定するために使われます。特に、動作中のインスタンスに関する情報を他のモジュール内のプロシージャに渡すときなどは、キーワード Me が役立ちます。たとえば、コード モジュール内に次のようなプロシージャがある場合を考えます。

Sub ChangeFormColor(FormName As Form)

FormName.BackColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)

End Sub

フォーム モジュール内のプロシージャで次のステートメントを実行すると、プロシージャを呼び出して、現在のフォーム (Form クラスの現在実行中のインスタンス) を引数として渡すことができます。

ChangeFormColor Me


関連項目

Set ステートメント


New キーワード

キーワード New は、次に示す項目で使われています。

Dim ステートメント

Private ステートメント

Public ステートメント

Set ステートメント

Static ステートメント


Nothing キーワード

関連項目

キーワード Nothing は、オブジェクト変数とその変数が参照しているオブジェクトとの関連付けを解除するために使います。Set ステートメントを使って、次のようにキーワード Nothing をオブジェクト変数に代入します。

Set MyObject = Nothing

複数のオブジェクト変数が、同じオブジェクトを参照することがあります。キーワード Nothing をオブジェクト変数に代入すると、その変数は実際のオブジェクトを参照しなくなります。複数のオブジェクト変数が同じオブジェクトを参照すると、各変数が参照するオブジェクトに関連付けられたメモリとシステム リソースは、Set ステートメントを使ってすべての変数を明示的にキーワード Nothing に設定するか、または、キーワード Nothing に設定した最後のオブジェクト変数が、暗黙のうちに適用範囲 (スコープ) 外になった後でなければ解除されません。


関連項目

Dim ステートメント

Private ステートメント

Public ステートメント

Set ステートメント

Static ステートメント


Add メソッド

関連項目	例	対象

Collection オブジェクトにメンバを追加します。

構文

object.Add(item, key, before, after)

Add メソッドには、対象となるオブジェクトと名前付き引数を指定します。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

item	必ず指定します。コレクションに追加するメンバを表す式を指定します。

key	省略可能です。コレクションの各メンバの処理をするときに、位置を表す数値の代わりに使用できる重複しない文字列を文字列式で指定します。

before	省略可能です。コレクションの中の相対的な位置を式で指定します。追加対象のメンバは、コレクション内の名前付き引数 before で指定したメンバの前に追加されます。数式を使って指定する場合、before には 1 からコレクションの Count プロパティの値までの範囲の整数を指定する必要があります。文字列式を使って指定する場合、before には、参照先のメンバをコレクションに追加したときに指定した名前付き引数 key に一致する文字列を指定する必要があります。なお、名前付き引数 before および名前付き引数 after を同時に指定することはできません。いずれか一方だけ指定できます。

after	省略可能です。コレクションの中の相対的な位置を式で指定します。追加対象のメンバは、コレクション内の名前付き引数 after で指定したメンバの後ろに追加されます。数式を使って指定する場合、after には 1 からコレクションの Count プロパティの値までの範囲の整数を指定する必要があります。文字列式を使って指定する場合、after には、参照先のメンバをコレクションに追加したときに指定した名前付き引数 key に一致する文字列を指定する必要があります。ただし、名前付き引数 before および名前付き引数 after を同時に指定することはできません。いずれか一方だけ指定できます。

解説

名前付き引数 before または名前付き引数 after に指定した値と同じ値を Item メソッドの引数 index に渡したときにコレクションのメンバが返されないと、エラーが発生します。つまり、before または after には、コレクション内の既存のメンバを参照する式を指定する必要があります。その式が文字列式であっても、数式であっても、これは同じです。

また、追加するメンバの名前付き引数 key に、コレクションの既存のメンバの key と重複する値を指定した場合もエラーが発生します。


関連項目

Item メソッド

Remove メソッド


Add メソッドの対象

Collection オブジェクト


Item メソッド

関連項目	例	対象

指定した位置または文字列に対応する特定のコレクションのメンバを返します。

構文

object.Item(index)

Item メソッドには、対象となるオブジェクトと名前付き引数を指定します。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

index	必ず指定します。コレクションのメンバの位置を式で指定します。数式を使って指定する場合、引数 index には 1 からコレクションの Count プロパティの値までの範囲の整数を指定する必要があります。文字列式を使って指定する場合、引数 index には、参照先のメンバをコレクションに追加したときに指定した名前付き引数 key に一致する文字列を指定する必要があります。

解説

引数 index に指定した値がコレクションの既存のメンバのいずれにも一致しない場合は、エラーが発生します。

Item メソッドは、コレクションの既定メソッドとして扱われます。したがって、次に示す 2 行のコードの意味は同じです。

Print MyCollection(1)

Print MyCollection.Item(1)


関連項目

Add メソッド

Remove メソッド


Item メソッドの対象

Collection オブジェクト

Columns コレクション

Forms コレクション


Print メソッド

関連項目	例	対象

Debug オブジェクトの場合、デバッグ ウィンドウのイミディエイト ペインに数値、文字列などを出力します。

Form オブジェクトの場合、フォームに文字列を出力します。

ピクチャ ボックス (PictureBox) コントロールの場合、ピクチャ ボックスに文字列を出力します。

Printer オブジェクトの場合、オブジェクトに文字列を出力します。

構文

object.Print outputlist

Print メソッドには、対象となるオブジェクトと引数を指定します。

指定項目	内容

object	省略可能です。オブジェクトへの参照を表すオブジェクト式を指定します。

outputlist	省略可能です。出力する式、または式のリストを指定します。省略すると、空白行が出力されます。

引数 outputlist の構文と指定項目は次のとおりです。

{Spc(n) | Tab(n)} expression charpos

指定項目	内容

Spc(n)	省略可能です。出力にスペースを挿入するときに指定します。n には挿入するスペースの数を指定します。

Tab(n)	省略可能です。n で指定した絶対桁位置にカーソルを移動します。(n) を省略して Tab だけを指定すると、カーソルは次の印字領域の先頭に移動します。

expression	省略可能です。出力する数式または文字列式を指定します。

charpos	省略可能です。次の文字を出力するためのカーソル位置を指定します。最後に出力された文字の直後にカーソルを移動するには、セミコロン (;) を指定します。絶対桁位置を指定してカーソルを移動するには、Tab(n) を指定します。次の印字領域の先頭にカーソルを移動するには、引数 (n) を指定せずに Tab を指定します。引数 charpos を省略すると、次の文字は次の行に出力されます。

解説

引数 expression に複数の式を指定する場合は、各式の間をスペースまたはセミコロン (;) で区切ります。スペースとセミコロンの働きは同じです。

Debug オブジェクトの場合、イミディエイト ペインに出力されるすべてのデータには国別設定が反映されます。適切な小数点記号を使って、すべてのデータの書式が適切に変換されます。

Printer オブジェクトに Print メソッドを使用した場合、グラフィカル イメージはページの下部に出力され、テキストは次のページに出力されます。

ブール型 (Boolean) のデータは、真 (True) または偽 (False) として出力されます。

日付型 (Date) のデータは、オペレーティング システムの日付の短い形式で出力されます。日付部分か時刻部分のどちらかが欠けている場合や、どちらかが 0 の場合は、指定された部分だけが出力されます。

引数 outputlist のデータが Empty 値の場合は何も出力されません。これに対し、引数 outputlist のデータが Null 値の場合は Null が出力されます。

エラーのデータは Error errorcode として出力されます。

注   Print メソッドによる出力は、通常、プロポーショナル フォント (可変幅のフォント) を使って行われます。したがって、出力した文字数は、固定幅のフォントを使って出力した場合の桁数とは異なります。たとえば、“W”のような幅広の文字は固定幅の桁 1 つ分よりも多くの幅を占めますが、“i”のような細い文字は桁 1 つ分より幅は小さくなります。平均よりも幅の広い文字が使われた場合に備えて、出力文字列間の桁数は、十分に確保する必要があります。または、固定幅のフォント (Courier など) を使って、1 文字あたり常に 1 桁になるように出力することもできます。


関連項目

Print # ステートメント

Spc 関数

Tab 関数


Print メソッドの対象

Debug オブジェクト

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


Remove メソッド

関連項目	例	対象

Collection オブジェクトからメンバを削除します。

構文

object.Remove index

Remove メソッドには、対象となるオブジェクトと名前付き引数を指定します。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

index	必ず指定します。コレクションのメンバの位置を式で指定します。数式を使って指定する場合、引数 index には 1 からコレクションの Count プロパティの値までの範囲の整数を指定する必要があります。文字列式を使って指定する場合、引数 index には、参照先のメンバをコレクションに追加したときに指定した名前付き引数 key に一致する文字列を指定する必要があります。

解説

引数 index に指定した値がコレクションの既存のメンバのいずれにも一致しない場合は、エラーが発生します。


関連項目

Add メソッド


Remove メソッドの対象

Collection オブジェクト


Collection オブジェクト

関連項目	例	プロパティ	メソッド

Collection オブジェクトとは、1 つのオブジェクトとして参照できる複数の要素の集合です。

構文

Collection

解説

Collection オブジェクトを利用すれば、互いに関連する複数の要素を 1 つのオブジェクトとして参照することができます。Collection オブジェクトに含まれる要素は、メンバと呼ばれます。要素は、同じ Collection オブジェクトに含めるだけで互いに関連付けることができます。Collection オブジェクトのメンバは、同一のデータ型でなくてもかまいません。

Collection オブジェクトは、他のオブジェクトと同じ方法で作成できます。たとえば、次のように宣言します。

Dim X As New Collection

作成した Collection オブジェクトにメンバを追加するには Add メソッドを使い、メンバを削除するには Remove メソッドを使います。また、Collection オブジェクトから特定のメンバを取得するには Item メソッドを使い、Collection オブジェクトに含まれるすべてのメンバを取得するには For Each ... Next ステートメントを使います。


関連項目

Add メソッド

For Each...Next ステートメント

Item メソッド

Remove メソッド


Collection オブジェクトのプロパティ

Count プロパティ


Collection オブジェクトのメソッド

Add メソッド

Item メソッド

Remove メソッド


Debug オブジェクト

メソッド

Debug オブジェクトは、実行時にデバッグ ウィンドウに出力を送ります。

構文

Debug


Debug オブジェクトのメソッド

Print メソッド


#Const ディレクティブ

関連項目	例

Visual Basic の条件付きコンパイラ定数を定義します。

構文

#Const constname  = expression

#Const ディレクティブの構文の指定項目は次のとおりです。

指定項目	内容

constname	定数の名前を指定します。変数の標準的な名前付け規則に従って指定してください。

expression	リテラル値、その他の条件付きコンパイラ定数、算術演算子や論理演算子 (Is を除く) を組み合わせた式を指定します。

解説

条件付きコンパイラ定数は必ず、それが定義されているモジュール内でだけ参照できるプライベート定数となります。#Const ディレクティブでパブリックなコンパイラ定数を定義することはできません。パブリックなコンパイラ定数はユーザー インターフェイス内でのみ定義できます。

引数 expression では、条件付きコンパイラ定数とリテラル値だけが使用できます。Const ステートメントで定義された通常の定数および未定義の定数を使用すると、エラーが発生します。一方、キーワード #Const で定義された定数は、条件付きコンパイル以外には使えません。

条件付きコンパイラ定数は、コード内のどこに記述したかに関係なく、必ずモジュール レベルで評価されます。


関連項目

#If...Then...#Else ディレクティブ

コンパイラ定数

Const ステートメント


#If...Then...#Else ディレクティブ

関連項目	例

式の値に基づいて、条件付きのコンパイルを行います。

構文

#If expression Then

statements

[#ElseIf expression-n Then

[elseifstatements]]

[#Else

[elsestatements]]

#End If

#If...Then...#Else ディレクティブの構文の指定項目は次のとおりです。

指定項目	内容

expression	真 (True) または偽 (False) を評価する、1 つまたは複数の条件付きコンパイラ定数、リテラル値、および演算子だけで構成される式を指定します。

statements	引数 expression が真 (True) の場合に評価される、Visual Basic のコードまたはコンパイラ ディレクティブを指定します。

expression-n	引数 expression に同じ。

elseifstatements	引数 expression-n が真 (True) の場合に評価される、1 つまたは複数の Visual Basic のコードまたはコンパイラ ディレクティブを指定します。

elsestatements	真 (True) に評価される引数 expression または引数 expression-n がない場合に評価される、1 つまたは複数の Visual Basic のコードまたはコンパイラ ディレクティブを指定します。

解説

#If...Then...#Else ディレクティブは、If...Then...Else ステートメントと同じように動作します。ただし、#If、#Else、#ElseIf、#End If の各ディレクティブの場合、1 行形式の記述はできません。つまり、これら各ディレクティブと同じ行に他のコードを記述することはできません。通常、条件付きコンパイルは同じプログラムを異なるシステムでコンパイルするために使用します。また、デバッグ コードが実行可能ファイルに表示されるのを防ぐためにも使用します。条件付きコンパイルによって省略されたコードは、コンパイル後の実行可能ファイルからは完全に取り除かれるため、プログラムのサイズや動作に影響しません。

#If...Then...#Else ディレクティブでは、評価結果に関係なくすべての式が評価されます。したがって、式の中で使用する定数はすべて定義しておく必要があります。未定義の定数は、Empty 値として評価されます。

注   Option Compare ステートメントは、#If と #ElseIf ステートメントの式に影響しません。条件付きコンパイラ ディレクティブの式は、常に Option Compare ステートメントの Text モードの設定で評価されます。


関連項目

#Const ディレクティブ

コンパイラ定数

If...Then...Else ステートメント


DeleteSetting ステートメント

関連項目	例

Microsoft Windows のレジストリのアプリケーションのエントリから、セクションまたはキー設定を削除します。

構文

DeleteSetting(appname, section[, key])

DeleteSetting ステートメントの構文の名前付き引数は次のとおりです。

指定項目	内容

appname	セクションまたはキー設定を適用するアプリケーションまたはプロジェクトの名前を含む文字列式を指定します。

section	キー設定を削除するセクション名を含む文字列式を指定します。名前付き引数 appname および section だけを指定した場合、指定されたセクションは関連付けられたすべてのキー設定と共に削除されます。

key	削除するキー名を含む文字列式を指定します。

解説

引数をすべて指定した場合、指定したキー設定が削除されます。ただし、指定したセクションまたはキー設定が存在しない場合、DeleteSetting ステートメントは何も行いません。


関連項目

GetAllSettings 関数

GetSetting 関数

SaveSetting ステートメント


DeleteSetting ステートメントの例

次のプロパティでは、SaveSetting ステートメントを使用して Microsoft Windows のレジストリ (16 ビットの Windows の場合は .INI ファイル) に MyApp アプリケーションのエントリを作成します。次に、DeleteSetting ステートメントを使用して作成したエントリを削除します。名前付き引数 key を指定していないため、セクション名とセクションのすべてのキーを含むセクション全体が削除されます。

' レジストリに設定を書き込みます。

SaveSetting appname := "MyApp", section := "Startup", _

            key := "Top", setting := 75

SaveSetting "MyApp","Startup", "Left", 50

' セクションと、セクションのすべての設定をレジストリから削除します。

DeleteSetting "MyApp", "Startup"


GetAllSettings 関数

関連項目	例

Microsoft Windows のレジストリにあるアプリケーションのエントリから、エントリ内のすべてのキー設定およびそれぞれのキー設定に対応する値の一覧を返します。

構文

GetAllSettings(appname, section)

GetAllSettings 関数の構文の名前付き引数は次のとおりです。

指定項目	内容

appname	キー設定を取得するアプリケーション名またはプロジェクト名を含む文字列式を指定します。

section	キー設定を取得するセクション名を含む文字列式を指定します。GetAllSettings 関数では、指定したセクションのすべてのキー設定およびそのキー設定に対応する値を含む文字列の二次元配列を格納したバリアント型 (Variant) の値が返されます。

解説

名前付き引数 appname または section のどちらかを指定していない場合、GetAllSettings 関数は、初期化されていないバリアント型 (Variant) の値が返されます。


関連項目

DeleteSetting ステートメント

GetSetting 関数

SaveSetting ステートメント


GetAllSettings 関数の例

次のプログラムでは、まず、SaveSetting ステートメントを使用して、名前付き引数 appname に指定したアプリケーションのエントリを Microsoft Windows のレジストリ (16 ビットの Windows の場合は .INI ファイル) に作成します。次に、GetAllSettings 関数を使用して設定を表示します。GetAllSettings 関数では、アプリケーション名およびセクション名は取得できません。最後に、DeleteSetting ステートメントでアプリケーションのセクションを削除します。

' GetAllSettings 関数によって返される二次元の配列を格納するためのバリアント型変数を宣言します。

Dim MySettings As Variant

' レジストリに設定を書き込みます。

SaveSetting appname := "MyApp", section := "Startup", _

            key := "Top", setting := 75

SaveSetting "MyApp","Startup", "Left", 50

' 設定を取得します。

MySettings = GetAllSettings(appname := "MyApp", section := "Startup")

For Settings = LBound(MySettings, 1) To UBound(MySettings, 1)

Debug.Print MySettings(Settings, 0), MySettings(Settings, 1)

Next Settings

DeleteSetting "MyApp", "Startup"


GetSetting 関数

関連項目	例

Microsoft Windows のレジストリにあるアプリケーションのエントリから、キー設定値を返します。

構文

GetSetting(appname, section, key[, default])

GetSetting 関数の構文の名前付き引数は次のとおりです。

指定項目	内容

appname	キー設定を取得するアプリケーション名またはプロジェクト名を含む文字列式を指定します。

section	目的のキー設定があるセクション名を含む文字列式を指定します。

key	取得するキー設定名を含む文字列式を指定します。

default	キー設定に値が設定されていない場合に返す値を含む式を指定します。省略すると、長さ 0 の文字列 ("") と見なされます。

解説

GetSetting 関数の名前付き引数のいずれかを指定していない場合、GetSetting 関数では、名前付き引数 default の値が返されます。


関連項目

DeleteSetting ステートメント

GetAllSettings 関数

SaveSetting ステートメント


GetSetting 関数の例

次のプログラムでは、SaveSetting ステートメントを使用して、名前付き引数 appname に指定したアプリケーションのエントリを Microsoft Windows のレジストリ (16 ビットの Windows の場合は .INI ファイル) に作成します。次に、GetSetting 関数を使用して設定の 1 つを表示します。名前付き引数 default を指定すると、必ず値が返されます。GetSetting 関数では、セクション名は取得できません。最後に、DeleteSetting ステートメントを使用してアプリケーションのすべてのセクションを削除します。

' GetSetting 関数によって返される二次元の配列を格納するためにバリアント型変数を宣言します。

Dim MySettings As Variant

' レジストリに設定を書き込みます。

SaveSetting "MyApp","Startup", "Top", 75

SaveSetting "MyApp","Startup", "Left", 50

Debug.Print GetSetting(appname := "MyApp", section := "Startup", _

                       key := "Left", default := "25")

DeleteSetting "MyApp", "Startup"


SaveSetting ステートメント

関連項目	例

Microsoft Windows のレジストリのエントリに、アプリケーションのエントリを保存または作成します。

構文

SaveSetting(appname, section, key, setting)

SaveSetting ステートメントの構文の名前付き引数は次のとおりです。

指定項目	内容

appname	設定を適用するアプリケーション名またはプロジェクト名を含む文字列式を指定します。

section	キー設定を保存するセクション名を含む文字列式を指定します。

key	保存するキー名を含む文字列式を指定します。

setting	名前付き引数 key に設定する値を含む式を指定します。

解説

キー設定が保存できない場合、エラーが発生します。


関連項目

DeleteSetting ステートメント

GetAllSettings 関数

GetSetting 関数


SaveSetting ステートメントの例

次のプログラムでは、SaveSetting ステートメントを使用して Microsoft Windows のレジストリ (16 ビットの Windows の場合は .INI ファイル) に MyApp アプリケーションのエントリを作成します。次に、DeleteSetting ステートメントを使用して作成したエントリを削除します。

' レジストリに設定を書き込みます。

SaveSetting appname := "MyApp", section := "Startup", _

            key := "Top", setting := 75

SaveSetting "MyApp","Startup", "Left", 50

SaveSetting "MyApp","Startup", "Password", "Swordfish"

' セクションのすべての設定をレジストリから削除します。

DeleteSetting "MyApp", "Startup"


Circle メソッドの例

次のプログラムでは、Circle メソッドを使って、フォームの中心にたくさんの同心円を描きます。この例を実行するには、コードをフォームの宣言セクションに貼り付けた後、F5 キーを押してからフォームをクリックしてください。

Private Sub Form_Click ()

Dim CX, CY, Radius	' 変数を宣言します。

ScaleMode = 3	' 単位をピクセルに設定します。

CX = ScaleWidth / 2	' X 座標を設定します。

CY = ScaleHeight / 2	' Y 座標を設定します。

If CX > CY Then Limit = CY Else Limit = CX

For Radius = 0 To Limit	' 半径を設定します。

Circle (CX, CY), Radius,RGB(Rnd * 255, Rnd * 255, Rnd * 255)

Next Radius

End Sub


Command 関数の例

次のプログラムでは、Command 関数を使って、Visual Basic の起動時に指定されたコマンド ライン引数を表示します。

Dim Msg	' 変数を宣言します。

If Command = "" Then	' コマンド ライン引数が指定されていないとき。

Msg = "コマンド ライン引数が指定されていません。"

Else	' コマンド ライン引数を表示します。

Msg = "コマンド ライン引数は '" & Command & "' です。"

End If

MsgBox Msg	' 結果を表示します。


Line メソッドの例

次のプログラムでは、Line メソッドを使って、フォームに同心のボックスを描きます。この例を実行するには、コードをフォームの宣言セクションに貼り付けた後、F5 キーを押してからフォームをクリックしてください。

Private Sub Form_Click ()

Dim CX, CY, F, F1, F2, I	' 変数を宣言します。

ScaleMode = 3	' 単位をピクセルに設定します。

CX = ScaleWidth / 2	' 水平方向の中央位置を取得します。

CY = ScaleHeight / 2	' 垂直方向の中央位置を取得します。

DrawWidth = 8	' DrawWidth プロパティを設定します。

For I = 50 To 0 Step -2	' カウント ダウン ループを行います。

F = I / 50

F1 = 1 - F: F2 = 1 + F	' 間隔を設定します。

Forecolor = QBColor(I Mod 15)	' 前景色を設定します。

Line (CX * F1, CY * F1)-(CX * F2, CY * F2), , BF

Next I

DoEvents	' 他の処理に制御を渡します。

If CY > CX Then	' DrawWidth プロパティを設定します。

DrawWidth = ScaleWidth / 25

Else

DrawWidth = ScaleHeight / 25

End If

For I = 0 To 50 Step 2	' カウント アップ ループを行います。

F = I / 50	' 間隔を設定します。

F1 = 1 - F: F2 = 1 + F	' 次の順序で描画します。

Line (CX * F1, CY)-(CX, CY * F1)	' 左上。

Line -(CX * F2, CY)	' 右上。

Line -(CX, CY * F2)	' 右下。

Line -(CX * F1, CY)	' 左下。

Forecolor = QBColor(I Mod 15)	' 毎回、色を変更します。

Next I

DoEvents	' 他の処理に制御を渡します。

End Sub


PSet メソッドの例

次のプログラムでは、PSet メソッドを使って、フォームに紙吹雪を描きます。この例を実行するには、コードをフォームの宣言セクションに貼り付けた後、F5 キーを押してからフォームをクリックしてください。

Private Sub Form_Click ()

Dim CX, CY, Msg, XPos, YPos	' 変数を宣言します。

ScaleMode = 3	' 単位をピクセルに設定します。

DrawWidth = 5	' 線の太さを設定します。

ForeColor = QBColor(4)	' 前景色を赤に設定します。

FontSize = 24	' フォント サイズを設定します。

CX = ScaleWidth / 2	' 水平方向の中央位置を取得します。

CY = ScaleHeight / 2	' 垂直方向の中央位置を取得します。

Cls	' フォームをクリアします。

Msg = "Happy New Year!"

CurrentX = CX - TextWidth(Msg) / 2	' 水平位置を設定します。

CurrentY = CY - TextHeight(Msg)	' 垂直位置を設定します。

Print Msg	' メッセージを出力します。

Do

XPos = Rnd * ScaleWidth	' 水平位置を取得します。

YPos = Rnd * ScaleHeight	' 垂直位置を取得します。

PSet (XPos, YPos), QBColor(Rnd * 15)	' 紙吹雪を描画します。

DoEvents	' 他の処理に制御を渡します。

Loop

End Sub


Raise メソッドの例

次のプログラムでは、Err オブジェクトの Raise メソッドを使って、Visual Basic で記述された OLE オートメーション オブジェクトの中でエラーを発生させます。プログラム ID は MyProj.MyObject です。

Const MyContextID = 1010407	' contextID の定数を定義します。

Function TestName(CurrentName, NewName)

If Instr(NewName, "bob") Then	' NewName の内容が正しいかどうか調べます。

' 例外を発生させます。

Err.Raise vbObjectError + 27, "MyProj.MyObject", _

"""bob""という文字列を名前に含むことはできません。", "c:\MyProj\MyHelp.Hlp", _

MyContextID

End If

End Function


Clear メソッドの例

次のプログラムでは、Clear メソッドを使って、Err オブジェクトの数値型のプロパティを 0 に、文字列型のプロパティを長さ 0 の文字列にリセットします。このプログラムで Clear メソッドを使用しない場合、一度エラーが発生すると、その後の計算でエラーが発生するかどうかに関係なく、ループのたびにエラー メッセージ ダイアログ ボックスが表示されます。

Dim Result(10) As Integer	' 要素がすぐにオーバーフローするような配列を宣言します。

On Error Resume Next	' エラーのトラップを留保します。

Do Until indx = 10

' 場合によってエラーを発生させ、エラーがない場合は結果を格納します。

Result(indx) = Rnd * indx * 20000

If Err.Number <> 0 Then

MsgBox Err, , "発生したエラー: ", Err.HelpFile, Err.HelpContext

Err.Clear	' Err オブジェクトのプロパティをクリアします。

Else

indx = indx + 1

End If

Loop


Err オブジェクトの例

次のプログラムでは、Err オブジェクトのプロパティを使って、エラー メッセージ ダイアログ ボックスのメッセージの内容を作成します。Raise メソッドで Visual Basic のエラーを発生させる場合、エラーを発生させる前に Clear メソッドを使うと、Err オブジェクトのプロパティの値は既定値に戻ります。

' エラーが発生したら、エラー メッセージを作成します。

On Error Resume Next	' エラーのトラップを留保します。

Err.Clear

Err.Raise 6	' "オーバーフロー" エラーを発生させます。

' エラーの発生をチェックした後、メッセージを表示します。

If Err.Number <> 0 Then

Msg = "エラー番号 " & Str(Err.Number) & Err.Source & _

" でエラーが発生しました。 " & Chr(13) & Err.Description

MsgBox Msg, , "エラー", Err.Helpfile, Err.HelpContext

End If


HelpFile プロパティの例

次のプログラムでは、Err オブジェクトの HelpFile プロパティを使って、ヘルプを表示します。特に指定しない限り、HelpFile プロパティには Visual Basic のヘルプ ファイルの名前が格納されています。

Err.Clear

On Error Resume Next	' 説明のため、エラーを抑止します。

Err.Raise 6	' "オーバーフローしました" エラーを発生させます。

Msg = "このエラーに関する項目を " & Err.HelpFile & _

" で参照するには F1 キーを押してください。"

MsgBox Msg, , "エラー: " & Err.Description,Err.HelpFile, Err.HelpContext


HelpContext プロパティの例

次のプログラムでは、Err オブジェクトの HelpContext プロパティを使って、"オーバーフロー" エラーに対応する Visual Basic のヘルプを表示します。

Err.Clear

On Error Resume Next

Err.Raise 6	' "オーバーフロー" エラーを発生させます。

If Err.Number <> 0 Then

Msg = "ヘルプ コンテキスト番号" & Err.HelpContext & " について" & _

Err.HelpFile & " のヘルプを参照するには、F1 キーを押してください。"

MsgBox Msg, , "Error: " & Err.Description, Err.HelpFile, _

Err.HelpContext

End If


Number プロパティの例

次のプログラムでは、Err オブジェクトの Number プロパティの値を見て、オブジェクトによって返されたエラーが、そのオブジェクトによって定義されたものであるか、または Visual Basic によって定義されたエラーに割り当てられたものであるかを調べます。定数 vbObjectError は非常に大きな負の値で、サーバーによって定義されたエラーであることを示すために、オブジェクトが自分のエラー番号に加算するものです。したがって、Err.Number から定数 vbObjectError を差し引けば、オブジェクト定義のエラーか、Visual Basic 定義のエラーかが判別できます。エラーがオブジェクト定義のエラーである場合は、元のエラー番号は Error.Number に格納されています。この番号は、エラーの発生元と共にメッセージ ボックスに表示されます。エラーが Visual Basic のエラーである場合は、そのエラー番号をメッセージ ボックスに表示します。

' 最初に、オブジェクトが自分のエラーであることを示すために加算した定数を

' 引きます。

MyError = Err.Number - vbObjectError

' 定数 vbObjectError を差し引いた結果のエラー番号が、0 ～ 65,535 の範囲内にあ

' る場合、そのエラー番号はオブジェクト定義のエラー番号です。

If MyError > 0 And MyError < 65535 Then

Msg = "アクセスしたオブジェクトが、エラーに対して番号 " & MyError & _

" を割り当てました。エラーの発生元は " & Err.Source & " です。エラー発生元のヘルプを参照するには、F1 キーを押してください。"

' 0 ～ 65,535 の範囲外である場合は、Visual Basic のエラー番号です。

Else

Msg = "このエラー (エラー番号 " & Err.Number & ") は Visual Basic のエラー番号です。このエラーに関する Visual Basic のヘルプを参照するには、F1 キーを押してください。"

End If

MsgBox Msg, , "オブジェクト エラー", Err.HelpFile, Err.HelpContext


Description プロパティの例

次のプログラムでは、ユーザー定義のメッセージを、Err オブジェクトの Description プロパティに設定します。

Err.Description = "この操作に必要なオブジェクトにアクセスすることができませんでした。"


Source プロパティの例

次のプログラムでは、Visual Basic で作成された OLE オートメーション オブジェクトのプログラム ID を変数 MyObjectID に代入し、その後、Raise メソッドでエラーを発生させるときに、この変数を Err オブジェクトの Source プロパティに代入しています。エラー処理を行うときには、Source プロパティを始め、Err オブジェクトのプロパティのうち Number プロパティ以外のプロパティをコード内で使用するべきではありません。Number プロパティ以外のプロパティは、コードで処理が不可能なエラーが発生した場合に、ユーザーに詳しい情報を与える目的でのみ使用してください。

' MyClass という種類のオブジェクトは、エラーを生成し、Source プロパティを初め、

' Err オブジェクトの全プロパティを設定します。Source プロパティには、

' App オブジェクトの Title プロパティと MyClass オブジェクトの

' Name プロパティを組み合わせたものである変数 MyObjectID を代入します。

MyObjectID = App.Title & "." & MyClass.Name

Err.Raise	Number := vbObjectError + 894, Source := MyObjectID, _

Description := "プログラムを完了することができませんでした。", _

HelpFile := MyHelpFile, HelpContext := MyHelpContext


Error 関数の例

次のプログラムでは、Error 関数を使って、エラー番号に対応したエラー メッセージを出力します。

For ErrorNumber = 61 To 64	' エラー番号 61 ～ 64 を対象にします。

Debug.Print Error(ErrorNumber)	' エラー メッセージをデバッグ ウィンドウに出力します。

Next ErrorNumber


Error ステートメントの例

次のプログラムでは、Error ステートメントを使って、擬似的にエラー番号 11 のエラーを発生させます。

On Error Resume Next	' エラー処理を行います。

Error 11	' 疑似的に "0 で除算しました。" というエラーを発生させます。


On Error ステートメントの例

次のプログラムでは、On Error GoTo ステートメントを使って、エラー処理ルーチンを設定します。開かれたファイルに対して削除を行ってエラー番号 55 を発生させます。このエラーに対する処理をエラー処理ルーチンで行ってから、エラーが発生した場所に戻ります。On Error GoTo 0  ステートメントでは、エラー処理ルーチンを無効にしています。次に、On Error Resume Next ステートメントを使ってエラーのトラップを無効にし、次のステートメントによって生成されたエラーの発生状況がわかるようにします。エラー処理が終わった後、Err オブジェクトのプロパティをクリアするために Err.Clear を使用しています。

Sub OnErrorStatementDemo()

On Error GoTo ErrorHandler	' エラー処理を行います。

Open "TESTFILE" For Output As #1	' 出力ファイルを開きます。

Kill "TESTFILE"	' 開いたファイルの削除を試みます。

On Error Goto 0	' エラーのトラップを無効にします。

On Error Resume Next	' エラーのトラップを留保します。

ObjectRef = GetObject("MyWord.Basic")	' 存在しないオブジェクトの起動を試みます。

' その後、OLE オートメーション

If Err.Number = 440 Then	' エラーの発生を調べます。

' 発生したエラーの内容を表示した後、Err オブジェクトをクリアします。

Msg = "OLE オブジェクトが開けません。"

MsgBox Msg, , "Error ステートメントのテスト"

Err.Clear	' Err オブジェクトのプロパティをクリアします。

End If

Exit Sub	' エラー処理ルーチンが実行されないように Sub を終了します。

ErrorHandler:	' エラー処理ルーチン。

Select Case Err.Number	' エラー番号を評価します。

Case 55	' "ファイルがすでに開かれています。" というエラーです。

Close #1	' 開いたファイルを閉じます。

Case Else

' 他のエラー処理をここに記述します。

End Select

Resume	' エラーが発生した行から

' 処理を再開します。

End Sub


Resume ステートメントの例

次のプログラムでは、Resume ステートメントを使ってエラー処理を終了して、エラー発生箇所から処理を再開します。この例ではエラー番号 55 を発生させます。

Sub ResumeStatementDemo()

On Error GoTo ErrorHandler	' エラー処理を行います。

Open "TESTFILE" For Output As #1	' 出力ファイルを開きます。

Kill "TESTFILE"	' 開いたファイルの削除を試みます。

Exit Sub	' エラー処理ルーチンが実行されないように Sub を終了します。

ErrorHandler:	' エラー処理ルーチン。

Select Case Err.Number	' エラー番号を評価します。

Case 55	' "ファイルがすでに開かれています。" というエラーです。

Close #1	' 開いたファイルを閉じます。

Case Else

' 他のエラー処理をここに記述します。

End Select

Resume	' エラーが発生した行から

' 処理を再開します。

End Sub


Choose 関数の例

次のプログラムでは、Choose 関数を使ってプロシージャに渡されたインデックス (引数 Ind) に対応する名前を返します。

Function  GetChoice(Ind As Integer)

GetChoice = Choose(Ind, "Speedy", "United", "Federal")

End Function


DateAdd 関数の例

次のプログラムでは、ユーザーに日付とそれに加算する月数の入力を求めた後、DateAdd 関数を使って加算後の日付を表示します。

Dim FirstDate As Date	' 変数を宣言します。

Dim IntervalType As String

Dim Number As Integer

Dim Msg

IntervalType = "m"	' "m" によって月を間隔に指定します。

FirstDate = InputBox("日付を入力してください。")

Number = InputBox("加算する月数を入力してください。")

Msg = "新しい日付: " & DateAdd(IntervalType, Number, FirstDate)

MsgBox Msg


DateDiff 関数の例

次のプログラムでは、DateDiff 関数を使って指定された日付までの日数を計算します。

Dim TheDate As Date	' 変数を宣言します。

Dim Msg

TheDate = InputBox("日付を入力してください。")

Msg = "今日からの日数: " & DateDiff("d", Now, TheDate)

MsgBox Msg


DatePart 関数の例

次のプログラムでは、ユーザーに日付の入力を求めた後、DatePart 関数を使って、その日付が四半期のうちのどの期に当たるかを調べます。

Dim TheDate As Date	' 変数を宣言します。

Dim Msg

TheDate = InputBox("日付を入力してください。")

Msg = "第 " & DatePart("q", TheDate) & " 四半期"

MsgBox Msg


Environ 関数の例

次のプログラムでは、Environ 関数を使って、環境文字列テーブルから環境変数 PATH のエントリ番号とバイト長を取得します。

Dim EnvString, Indx, Msg, PathLen	' 変数を宣言します。

Indx = 1	' インデックスを 1 に設定します。

Do

EnvString = Environ(Indx)	' 環境変数を取得します。

If UCase(Left(EnvString, 5)) = "PATH=" Then	' 環境変数 PATH のエントリ番号を調べます。

PathLen = Len(Environ("PATH"))	' バイト長を調べます。

Msg = "PATH のエントリ番号は " & Indx & "、長さは " & PathLen & "です。"

Exit Do

Else

Indx = Indx + 1	' 見つからない場合は、

End If	' インデックス (Indx) の値を増やします。

Loop Until EnvString = ""

If PathLen > 0 Then

MsgBox Msg	' メッセージを表示します。

Else

MsgBox "環境変数 PATH が存在しません。"

End If


IIf 関数の例

次のプログラムでは、IIf 関数を使って、CheckIt 関数の引数 TestMe を評価します。引数 TestMe の値が 1,000 よりも大きい場合は“Large”という文字列を返し、1,000 以下の場合は“Small”という文字列を返します。

Function CheckIt (TestMe As Integer)

CheckIt = IIf(TestMe > 1000, "Large", "Small")

End Function


Partition 関数の例

次の例では、Freight フィールド を含む Orders テーブルを使用します。このクエリーを使うと、運送費を分類し、それに対応する注文件数を数える選択クエリーを作成できます。ここでは、Partition 関数と SQL の Count 関数を使って、運搬費を分類しています。まず、Partition 関数で各範囲を設定し、その後 SQL の Count 関数で各範囲内の注文件数を数えます。この例では、Partition 関数の引数 start を 0、stop を 500、interval を 50 に設定します。したがって、最初の範囲は 0:49 で、上限 500 までの範囲が設定されます。

SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,

Count(Orders.Freight) AS Count

FROM Orders

GROUP BY Partition([freight],0,500,50);


QBColor 関数の例

次のプログラムでは、QBColor 関数を使って、引数 MyForm として渡されたフォームの BackColor プロパティを引数 ColorCode で示される色に設定します。QBColor 関数は、0 ～ 15 の範囲の整数値をとります。

Sub ChangeBackColor (ColorCode As Integer, MyForm As Form)

MyForm.BackColor = QBColor(ColorCode)

End Sub


Switch 関数の例

次のプログラムでは、Switch 関数を使って、指定された都市で使用されている言語を返します。

Function MatchUp (CityName As String)

Matchup = Switch(CityName = "ロンドン", "英語", CityName _

= "ローマ", "イタリア語", CityName = "パリ", "フランス語")

End Function


DDB 関数の例

次のプログラムでは、指定した期の資産の減価償却費を、倍率法を使って DDB 関数で計算します。資産購入時点の価格 (InitCost)、資産の耐用年数を経た後での残存価額 (SalvageVal)、資産の耐用年数 (LifeTime)、減価償却費を計算する年 (Depr) を指定します。

Const YRMOS = 12	' 1 年の月数を設定します。

Fmt = "###,##0.00"

InitCost = InputBox("資産購入時の価格を入力してください。")

SalvageVal = InputBox("耐用年数を経た後での資産の価格を入力してください。")

MonthLife = InputBox("資産の耐用期間を月数で入力してください。")

Do While MonthLife < YRMOS	' 期間が 1 年以上かどうかを確認します。

MsgBox "耐用期間は 1 年以上です。"

MonthLife = InputBox("資産の耐用期間を月数で入力してください。")

Loop

LifeTime = MonthLife / YRMOS	' 月数を年数に変換します。

If LifeTime <> Int(MonthLife / YRMOS) Then

LifeTime = Int(LifeTime + 1)	' 近似の年に切り上げます。

End If

DepYear = CInt(InputBox("減価償却費を計算する年を入力してください。"))

Do While DepYear < 1 Or DepYear > LifeTime

MsgBox "1 から" & LifeTime & "の範囲の数値を入力してください。"

DepYear = InputBox("減価償却費を計算する年を入力してください。")

Loop

Depr = DDB(InitCost, SalvageVal, LifeTime, DepYear)

MsgBox DepYear & " 年目の減価償却費は " & Format(Depr, Fmt) & "です。"


FV 関数の例

次のプログラムでは、将来の貯蓄総額を FV 関数で計算します。年利 (APR / 12)、貯蓄回数 (TotPmts)、毎月の貯蓄額 (Payment)、現在の貯蓄額 (PVal)、貯蓄期日 (PayType) を指定します。Payment は出金を表すので、負の数を指定しています。

Const ENDPERIOD = 0, BEGINPERIOD = 1	' 支払いの時期を設定します。

Fmt = "###,###,##0.00"	' 金額の形式を定義します。

Payment = InputBox("毎月の貯蓄額を入力してください。")

APR = InputBox("年利率 (%) を入力してください。")

If APR > 1 Then APR = APR / 100	' 正しい形式に変換します。

TotPmts = InputBox("貯蓄回数を月数で指定してください。")

PayType = MsgBox("毎月末に支払いを行いますか?", vbYesNo)

If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD

PVal = InputBox("現在の貯蓄額を入力してください。")

FVal = FV(APR / 12, TotPmts, -Payment, -PVal, PayType)

MsgBox "将来の貯蓄総額は " & Format(FVal, Fmt) & "です。"


IPmt 関数の例

次のプログラムでは、毎月の支払い額が同額の場合の金利を、IPmt 関数で計算します。利率 (APR / 12)、金利支払い額を求める期 (Period)、支払い回数 (TotPmts)、現在価値または元金 (PVal)、将来価値 (FVal)、支払い期日 (PayType) を指定します。

Const ENDPERIOD = 0, BEGINPERIOD = 1	' 支払い期日を設定します。

FVal = 0	' 通常、ローンの場合は 0 を指定します。

Fmt = "###,###,##0.00"	' 金額の形式を定義します。

PVal = InputBox("借入金額を入力してください。")

APR = InputBox("ローンの年利率を入力してください。")

If APR > 1 Then APR = APR / 100	' 正しい形式に変換します。

TotPmts = InputBox("支払い回数を入力してください。")

PayType = MsgBox("毎月末に支払いを行いますか?", vbYesNo)

If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD

For Period = 1 To TotPmts	' 利息の合計。

IntPmt = IPmt(APR / 12, Period, TotPmts, -PVal, FVal, PayType)

TotInt = TotInt + IntPmt

Next Period

Msg = "毎月の支払い額は " & Format(TotInt, Fmt)

Msg = Msg & "です。"

MsgBox Msg	' 結果を表示します。


IRR 関数の例

次のプログラムでは、配列 Values() に指定した 5 つのキャッシュ フローに対する内部利益率を、IRR 関数で計算します。最初の配列要素は、事業の操業資金を表す負のキャッシュ フローです。他の 4 つの配列要素は、以後 4 年間の収益を表す正のキャッシュ フローです。Guess には、内部利益率の推定値を指定します。

Static Values(5) As Double	' 配列を定義します。

Guess = .1	' 推定値を 10% と指定します。

Fmt = "#0.00"	' パーセンテージの形式を定義します。

Values(0) = -70000	' 操業資金を指定します。

' 以後 4 年間の収益を表す正のキャッシュ フローです。

Values(1) = 22000 : Values(2) = 25000

Values(3) = 28000 : Values(4) = 31000

RetRate = IRR(Values(), Guess) * 100	' 内部利益率を計算します。

Msg = "指定した 5 つのキャッシュ フローに対する内部利益率は"

Msg = Msg & Format(RetRate, Fmt) & " % です。"

MsgBox Msg	' 内部利益率を表示します。


MIRR 関数の例

次のプログラムでは、配列 Values() に指定されたキャッシュ フローに対する修正内部利益率を、MIRR 関数で計算します。LoanAPR は借入金に対する利率を表し、InvAPR は再投資に対する利率を表します。

Static Values(5) As Double	' 配列を定義します。

LoanAPR = .1	' 借入金に対する利率を指定します。

InvAPR = .12	' 再投資に対する利率を指定します。

Fmt = "#0.00"	' 金額の形式を定義します。

Values(0) = -70000	' 操業資金を指定します。

' 以後 4 年間の収益を表す正のキャッシュ フローです。

Values(1) = 22000 : Values(2) = 25000

Values(3) = 28000 : Values(4) = 31000

RetRate = MIRR(Values(), LoanAPR, InvAPR)	' 内部利益率を計算します。

Msg = "指定された 5 つのキャッシュ フローに対する修正内部利益率は "

Msg = Msg & Format(Abs(RetRate) * 100, Fmt) & "% です。"

MsgBox Msg	' 修正内部利益率を表示します。


NPer 関数の例

次のプログラムでは、支払い回数を NPer 関数で計算します。ローンの総額 (PVal)、利率 (APR / 12)、毎月の支払い額 (Payment)、将来価値 (FVal)、支払い期日 (PayType) を指定します。

Const ENDPERIOD = 0, BEGINPERIOD = 1	' 支払い期日を指定します。

FVal = 0	' 通常、ローンの場合は 0 を指定します。

PVal = InputBox("借入金額を入力してください。")

APR = InputBox("ローンの年利率 (%) を入力してください。")

If APR > 1 Then APR = APR / 100	' 正しい形式に変換します。

Payment = InputBox("毎月の支払い額を入力してください。")

PayType = MsgBox("毎月末に支払いを行いますか?", vbYesNo)

If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD

TotPmts = NPer(APR / 12, -Payment, PVal, FVal, PayType)

If Int(TotPmts) <> TotPmts Then TotPmts = Int(TotPmts) + 1

MsgBox "支払い回数は" & TotPmts & "回です。"


NPV 関数の例

次のプログラムでは、配列 Values() で指定したキャッシュ フローに対する正味現在価値を、NPV 関数で計算します。RetRate は、固定内部利益率を表します。

Static Values(5) As Double	' 配列を定義します。

Fmt = "###,##0.00"	' 金額の形式を定義します。

Guess = .1	' 推定値を 10% と指定します。

RetRate = .0625	' 固定内部利益率を指定します。

Values(0) = -70000	' 操業資金を指定します。

' 以後 4 年間の収益を表す正のキャッシュ フローです。

Values(1) = 22000 : Values(2) = 25000

Values(3) = 28000 : Values(4) = 31000

NetPVal = NPV(RetRate, Values())	' 正味現在価値を計算します。

Msg = " 指定したキャッシュ フローの正味現在価値は"

Msg = Msg & Format(NetPVal, Fmt) & "です。"

MsgBox Msg	' 正味現在価値を表示します。


Pmt 関数の例

次のプログラムでは、一定期間のローンに対する毎月の支払い額を、Pmt 関数で計算します。利率 (APR / 12)、支払い回数 (TotPmts)、現在価値または元金 (PVal)、将来価値 (FVal)、支払い期日 (PayType) を指定します。

Const ENDPERIOD = 0, BEGINPERIOD = 1	' 支払い期日を指定します。

Fmt = "###,###,##0.00"	' 金額の形式を定義します。

FVal = 0	' 通常、ローンの場合は 0 を指定します。

PVal = InputBox("借入金額を入力してください。")

APR = InputBox("ローンの年利率を入力してください。")

If APR > 1 Then APR = APR / 100	' 正しい形式に変換します。

TotPmts = InputBox("支払い回数を入力してください。")

PayType = MsgBox("毎月末に支払いを行いますか?", vbYesNo)

If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD

Payment = Pmt(APR / 12, TotPmts, -PVal, FVal, PayType)

MsgBox "毎月の支払い額は " & Format(Payment, Fmt) & " です。"


PPmt 関数の例

次のプログラムでは、毎月の支払いが同額である場合の特定の期間における元金を、PPmt 関数で計算します。利率 (APR / 12)、支払い元金を求める期 (Period)、支払い回数 (TotPmts)、現在価値または元金 (PVall)、将来価値 (FVal)、支払い期日 (PayType) を指定します。

Const ENDPERIOD = 0, BEGINPERIOD = 1	' 支払い期日を指定します。

NL = Chr(13) & Chr(10)	' 改行します。

TB = Chr(9)	' タブを設定します。

Fmt = "###,###,##0.00"	' 金額の形式を定義します。

FVal = 0	' 通常、ローンの場合は 0 を指定します。

PVal = InputBox("借入金額を入力してください。")

APR = InputBox("ローンの年利率 (%) を入力してください。")

If APR > 1 Then APR = APR / 100	' 正しい形式に変換します。

TotPmts = InputBox("支払い回数を入力してください。")

PayType = MsgBox("毎月末に支払いを行いますか?", vbYesNo)

If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD

Payment = Abs(-Pmt(APR / 12, TotPmts, PVal, FVal, PayType))

Msg = "毎月の支払い額は " & Format(Payment, Fmt) & "です。"

Msg = Msg & "元金と利息の"

Msg = Msg & "内訳を計算しますか?"

MakeChart = MsgBox(Msg, vbYesNo)	' チャートを表示するかどうかを指定します。

If MakeChart <> vbNo Then

If TotPmts > 12 Then MsgBox "最初の年だけを表示します"

Msg = "元金と利息の内訳 (支払金額:元金:利息)" & NL

For Period = 1 To TotPmts

If Period > 12 Then Exit For	' 最初の 12 回分だけを表示します。

P = PPmt(APR / 12, Period, TotPmts, -PVal, FVal, PayType)

P = (Int((P + .005) * 100) / 100)	' 元金の値を丸めます。

I = Payment - P

I = (Int((I + .005) * 100) / 100)	' 利息の値を丸めます。

Msg = Msg & Period & TB & Format(Payment, Fmt)

Msg = Msg & TB & Format(P, Fmt) & TB & Format(I, Fmt) & NL

Next Period

MsgBox Msg	' 表が表示されます。

End If


PV 関数の例

次のプログラムでは、むこう 20 年間にわたって、毎月 5 万円の配当が支払われる証券 (100 万円) の現在価値を、PV 関数を使って計算します。年率 (APR)、支払い回数 (TotPmts)、支払い金額 (YrIncome)、投資の将来価値 (FVal)、支払い期日 (PayType) を指定します。YrIncome は出金を表すので、負の数を指定しています。

Const ENDPERIOD = 0, BEGINPERIOD = 1	' 支払い期日を設定します。

Fmt = "###,##0.00"	' 金額の形式を定義します。

APR = .0825	' 年利率を指定します。

TotPmts = 20	' 支払い回数を指定します。

YrIncome = 50000	' 毎年の支払い金額を指定します。

FVal = 1000000	' 将来価値を指定します。

PayType = BEGINPERIOD	' 各期の期首に支払いが行われます。

PVal = PV(APR, TotPmts, -YrIncome, FVal, PayType)

MsgBox "現在価値は " & Format(PVal, Fmt) & "です。"


Rate 関数の例

次のプログラムでは、実際の利率を Rate 関数で計算します。支払い回数 (TotPmts)、支払い額 (Payment)、現在価値または元金 (PVal)、将来価値 (FVal)、支払い期日 (PayType)、利率の推定値 (Guess) を指定します。

Const ENDPERIOD = 0, BEGINPERIOD = 1	' 支払い期日を設定します。

Fmt = "##0.00"	' パーセンテージの形式を定義します。

FVal = 0	' 通常、ローンの場合は 0 を指定します。

Guess = .1	' 推定値を 10% に指定します。

PVal = InputBox("借入金額を入力してください。")

Payment = InputBox("毎月の支払い額を入力してください。")

TotPmts = InputBox("支払い回数を入力してください。")

PayType = MsgBox("毎月末に支払いを行いますか?", vbYesNo)

If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD

APR = (Rate(TotPmts, -Payment, PVal, FVal, PayType, Guess) * 12) * 100

MsgBox "利率は " & Format(CInt(APR), Fmt) & " % です。"


SLN 関数の例

次のプログラムでは、資産 1 期当たりの減価償却費を、定額法を使って SLN 関数で計算します。資産購入時の価格 (InitCost)、耐用年数を経た後での資産の価格 (SalvageVal)、資産の耐用年数 (LifeTime) を指定します。

Const YEARMONTHS = 12	' 1 年の月数を設定します。

Fmt = "###,##0.00"	' 金額の形式を定義します。

InitCost = InputBox("資産購入時の価格を入力してください。")

SalvageVal = InputBox("耐用期間を経た後の資産の価格を入力してください。")

MonthLife = InputBox("資産の耐用期間を月数で入力してください。")

Do While MonthLife < YEARMONTHS	' 期間が 1 年以上かどうかを確認します。

MsgBox "資産の耐用期間は 1 年以上です。"

MonthLife = InputBox("資産の耐用期間を月数で入力してください。")

Loop

LifeTime = MonthLife / YEARMONTHS	' 月数を年数に変換します。

If LifeTime <> Int(MonthLife / YEARMONTHS) Then

LifeTime = Int(LifeTime + 1)	' 年数を切り上げます。

End If

PDepr = SLN(InitCost, SalvageVal, LifeTime)

MsgBox "減価償却費は " & Format(PDepr, Fmt) & " /年です。"


SYD 関数の例

次のプログラムでは、特定の期における資産の減価償却費を、定額逓減法を使って SYD 関数で計算します。資産購入時の価格 (InitCost)、耐用年数を経た後での資産の価格 (SalvageVal)、資産の耐用年数 (LifeTime)、減価償却費を計算する期間の年数 (PDepr) を指定します。

Const YEARMONTHS = 12	' 1 年の月数を設定します。

Fmt = "###,##0.00"	' 金額の形式を定義します。

InitCost = InputBox("資産購入時の価格を入力してください。")

SalvageVal = InputBox("耐用期間を経た後の資産の価格を入力してください。")

MonthLife = InputBox("資産の耐用期間を月数で入力してください。")

Do While MonthLife < YEARMONTHS	' 期間が 1 年以上かどうかを確認します。

MsgBox "資産の耐用期間は 1 年以上です"

MonthLife = InputBox("資産の耐用期間を月数で入力してください。")

Loop

LifeTime = MonthLife / YEARMONTHS	' 月数を年数に変換します。

If LifeTime <> Int(MonthLife / YEARMONTHS) Then

LifeTime = Int(LifeTime + 1)	' 年数を切り上げます。

End If

DepYear = CInt(InputBox("減価償却費を計算する期間を指定してください。"))

Do While DepYear < 1 Or DepYear > LifeTime

MsgBox "1 から" & LifeTime & "の範囲の値を入力してください。"

DepYear = CInt(InputBox("減価償却費を計算する期間を指定してください。"))

Loop

PDepr = SYD(InitCost, SalvageVal, LifeTime, DepYear)

MsgBox DepYear & "期目の減価償却費は " & Format(PDepr, Fmt) & "です。"


Add メソッドの例

次のプログラムでは、Add メソッドを使って、Inst オブジェクト (InstanceName という名前のパブリック変数を格納する Class1 という名前のクラスのインスタンス) を MyClasses という名前のコレクションに追加します。このプログラムがどのように動作するかを確認するには、まず、[挿入] - [クラス モジュール] コマンドを選択し、各インスタンスの名前を格納する変数として、InstanceName という名前のパブリック変数を Class1 のモジュール レベルで宣言します (「Public InstanceName」と入力)。また、クラス名は既定の Class1 のままにしておきます。変数を宣言したら、クリップボードを経由して次のコードを Form_Load イベント プロシージャに貼り付けてください。

Private Sub Form_Load()

Dim MyClasses As New Collection	' Collection オブジェクトを作成します。

Dim Num As Integer	' 各インスタンスに個別のキーを与えるためのカウンタ。

Dim Msg As String	' プロンプト文字を格納する変数。

Dim TheName, MyObject, NameList	' ユーザーが入力する情報を格納する変数。

Do

Dim Inst As New Class1	' Class1 の新規インスタンスを作成します。

Num = Num + 1	' Num の値を増加させ、名前を取得します。

Msg = "このオブジェクトの名前を入力してください。" & Chr(13) _

 & "コレクション内の名前を確認するにはキャンセル ボタンを押してください。"

TheName = InputBox(Msg, "コレクション項目の名前")

Inst.InstanceName = TheName	' オブジェクトのインスタンスに名前を付与。

' ユーザーが名前を入力したら、インスタンスをコレクションに追加します。

If Inst.InstanceName <> "" Then

' 名前が付与されたオブジェクトをコレクションに追加します。

MyClasses.Add item := Inst, Key := CStr(Num)

End If

' 現在の参照を解除して、次のインスタンスの追加に備えます。

Set Inst = Nothing

Loop Until TheName = ""

For Each MyObject In MyClasses	' オブジェクト名の一覧を作成します。

NameList = NameList & MyObject.InstanceName & Chr(13)

Next MyObject

' オブジェクト名の一覧をメッセージ ボックスに表示します。

MsgBox NameList, , " MyClasses コレクションのインスタンスの名前"

For Num = 1 To MyClasses.Count	' コレクションから名前を削除します。

MyClasses.Remove 1	' コレクションのインデックス番号が自動的に

Next Num	' 再設定されるたびに、先頭のメンバが

' 削除されます。

End Sub


Print メソッドの例

次のプログラムでは、Print メソッドを使って、MyVar という名前の変数の値をデバッグ ウィンドウのイミディエイト ペインに表示します。Print メソッドは、テキストを表示できるオブジェクトにのみ適用できます。

Dim MyVar

MyVar = "Come see me in the Immediate pane."

Debug.Print MyVar


Remove メソッドの例

次のプログラムでは、Remove メソッドを使って、MyClasses という名前の Collection オブジェクトからオブジェクトを削除します。このコードでは、ループが反復されるたびにインデックスが 1 のオブジェクトが削除されます。

Dim Num

For Num = 1 To MyClasses.Count

' ループを反復するごとに先頭のオブジェクトを削除します。

' このループは、コレクションのオブジェクトがすべて削除されるまで反復します。

MyClasses.Remove 1

Next Num


 Item メソッドの例

次のプログラムでは、Item メソッドを使って、コレクションに含まれるオブジェクトへの参照を検索します。このコードでは、Birthdays という名前の Collection オブジェクトを対象にして、Bill Smith および Adam Smith の誕生日を表すオブジェクトへの参照を検索します。引数 index には、オブジェクトのキーである "SmithBill" および "SmithAdam" を渡します。Birthdays コレクションを最初に呼び出すときには Item メソッドが明示的に指定されていますが、2 回めの呼び出しでは明示的に指定されていないことに注意してください。Collection オブジェクトでは、Item メソッドが既定のメソッドとなるため、どちらの呼び出し方法も同じ結果になります。参照は、Set ステートメントを使って SmithBillBD と SmithAdamBD に代入されていますが、指定されたオブジェクトのプロパティとメソッドには、これらの参照を使ってアクセスすることができます。このコードを実行するには、Birthdays という名前のコレクションを作成し、そのコレクションに少なくとも 2 つの参照メンバを定義してください。

Dim SmithBillBD As Object

Dim SmithAdamBD As Object

Set SmithBillBD = Birthdays.Item("SmithBill")

Set SmithAdamBD = Birthdays("SmithAdam")


Collection オブジェクトの例

次のプログラムは、Collection オブジェクト (MyClasses) を作成した後、このコレクションにオブジェクトを追加するためのダイアログ ボックスを表示します。このプログラムを実行するには、まず、[挿入] - [クラス モジュール] コマンドを選択してから、各インスタンスの名前を格納するパブリック変数 InstanceName を Class1 のモジュール レベルで宣言します (「Public InstanceName」と入力)。モジュール名は、既定値の Class1 のまま変えないでください。次に、下のコードをコピーし、フォーム モジュールの宣言セクションにコードを貼り付け、Form_Load イベント プロシージャの ClassNamer ステートメントにより起動します。下のコードをコピーし、別のフォーム モジュールの宣言セクションにコードを貼り付け、他のプロシージャの ClassNamer ステートメントで起動します。

Sub ClassNamer()

Dim MyClasses As New Collection	' Collection オブジェクトを作成します。

Dim Num	' 個々のインスタンスを区別するためのカウンタ。

Dim Msg As String	' メッセージ用の文字列を格納する変数。

Dim TheName, MyObject, NameList	' バリアント型の変数を宣言します。

Do

Dim Inst As New Class1	' Class1 の新しいインスタンスを作成します。

Num = Num + 1	' 変数 Num をインクリメントした後、インスタンスの名前を取得します。

Msg = "このオブジェクトの名前を入力してください。" & Chr(13) _

 & "コレクション内のオブジェクトの名前を確認するには、キャンセル ボタンを押してください。"

TheName = InputBox(Msg, "コレクション アイテムの名前付け")

Inst.InstanceName = TheName	' オブジェクトのインスタンスに名前を割り当てます。

' ユーザーが名前を入力した場合は、オブジェクトをコレクションに追加します。

If Inst.InstanceName <> "" Then

' オブジェクトをコレクションに追加します。

MyClasses.Add item := Inst, key := CStr(Num)

End If

' 現在の参照内容をクリアします。

Set Inst = Nothing

Loop Until TheName = ""

For Each MyObject In MyClasses	' インスタンスの名前の一覧を作成します。

NameList = NameList & MyObject.InstanceName & Chr(13)

Next MyObject

' メッセージ ボックスにインスタンスの名前の一覧を表示します。

MsgBox NameList, , "MyClasses コレクション内のインスタンスの名前"

For Num = 1 To MyClasses.Count	' コレクションからオブジェクトの名前を削除します。

MyClasses.Remove 1	' コレクションはメンバが付け直されると自動的

' にインデックスが付け直されるので、ループ

Next	' のたびに先頭のメンバを削除します。

End Sub


Count プロパティの例

次のプログラムは、Collection オブジェクトの Count プロパティを使って、MyClasses コレクションのメンバをすべて削除するのに必要なループ回数を取得します。数値によるインデックスが付いたコレクションでは、インデックス番号の既定の最小値は 1 です。コレクションは、メンバが削除されるとインデックスが自動的に付け直されます。したがって次のコードでは、ループのたびに先頭のメンバを削除しています。

Dim Num

For Num = 1 To MyClasses.Count	' コレクションからメンバを削除します。

MyClasses.Remove 1	' 数値によるインデックスが付いたコレクションでは、

Next	' インデックス番号は 1 から始まります。


CreateObject 関数の例

次のプログラムは、CreateObject 関数を使って、Microsoft Excel を参照するオブジェクト変数 (xlApp) を設定し、この変数を介して Microsoft Excel の Visible プロパティにアクセスしています。その後、Microsoft Excel の Quit メソッドで Microsoft Excel を閉じ、最後にオブジェクト変数自身を解放しています。

' オブジェクトへの参照を格納する変数を宣言します。

Dim xlApp As Object

Set xlApp = CreateObject("excel.application")

xlApp.Visible = True

' アプリケーションを表示したい場合は Visible プロパティを真 (True) に設定します。

' Microsoft Excel の他のオブジェクトにアクセスする場合も xlApp を使います。

' ...

' 作業が終わったら、Quit メソッドで Microsoft Excel を閉じ、オブジェクト変数を解放します。

xlApp.Quit

Set xlApp = Nothing


GetObject 関数の例

次のプログラムは、GetObject 関数を使って、Microsoft Excel の特定の Worksheet オブジェクト (MyXL) への参照を取得した後、そのワークシートの Application プロパティを使って Microsoft Excel を表示したり終了したりします。最初の GetObject 関数の呼び出しでは、Microsoft Excel が起動されていないとエラーが発生します。エラーが発生した場合、このプログラム例では ExcelWasNotRunning フラグをセットします。2 回目の GetObject 関数の呼び出しでは、開くファイルを指定しています。この GetObject 関数の呼び出しでは、Microsoft Excel が起動されていない場合は起動され、指定したファイル名のワークシートへの参照が返されます。指定したファイル (この例では MYTEST.XLS) は、指定した位置に存在しなければなりません。指定した位置に存在しない場合は、Visual Basic の OLE オートメーション エラーが発生します。次に、Microsoft Excel と、指定したワークシートが含まれるウィンドウが表示されます。最後に、このコードを実行する前に Microsoft Excel が起動されていなかった場合は、Application オブジェクトの Quit メソッドで Microsoft Excel を終了します。既に Microsoft Excel が起動されていた場合は何も行いません。参照自身は、Nothing を代入することにより解放します。

' Microsoft Excel への参照を格納する変数を宣言します。

Dim MyXL As Object

' Microsoft Excel が起動されていたかどうかを示すフラグを宣言します。

Dim ExcelWasNotRunning As Boolean

' Microsoft Excel が既に起動されているかどうかを調べます。

On Error Resume Next	' エラーのトラップを留保します。

' 第 1 引数を指定せずに GetObject 関数を呼び出すと、アプリケーションのインスタンスへの参照が返されます。

' 第 1 引数のプレースホルダとしてカンマを使っていることに注意してください。

Set MyXL = GetObject(, "Excel.Application")

If Err.Number <> 0 Then ExcelWasNotRunning = True

' エラーが発生した場合は Err オブジェクトをクリアします。

Err.Clear

' 表示対象のファイルへの参照を、オブジェクト変数に代入します。

Set MyXL = GetObject("c:\vb4\MYTEST.XLS")

' Application プロパティを介して Microsoft Excel を表示します。

' また、オブジェクト変数 MyXL の Windows コレクションを使って、

' 指定したワークシートが含まれる実際のウィンドウを表示します。

MyXL.Application.Visible = True

MyXL.Parent.Windows(1).Visible = True

' ワークシートに対して行う処理を

' 以下に記述します。

' ...

' 現在動作している Microsoft Excel が、このコードの実行開始前から動作しているものではない場合は、

' Application プロパティの Quit メソッドで Microsoft Excel を終了します。

' なお、Microsoft Excel を終了しようとすると、Microsoft Excel のタイトル バーが点滅し、

' 開かれているファイルを保存するかどうかを確認するダイアログ ボックスが表示されます。

If ExcelWasNotRunning = True Then MyXL.Application.Quit

Set MyXL = Nothing	' Microsoft Excel およびスプレッドシートへの参照を解放します。


#Const ディレクティブの例

次のプログラムでは、#Const ディレクティブを使って、制御構造 #If...#Else...#End If 内で使用する条件付きコンパイル定数を宣言します。

#Const DebugVersion = 1	'#If ブロックで真 (True) に評価されます。


 #If...Then...#Else ディレクティブの例

次のプログラムでは、どのステートメント ブロックをコンパイルするかを判断するときに、制御構造 #If...Then...#Else 内で条件付きコンパイル定数を参照します。

' Win16 が真の場合は、#If に続くステートメントを実行します。

#If Win16 Then

'. 16 ビットの Windows 専用のステートメントを、この部分に記述します。

'.

'.

' 32 ビットの Windows 専用プログラムの場合は、# ElseIf に続くステートメントを実行します。

#ElseIf Win32 Then

' 32 ビットの Windows 専用のステートメントを、この部分に記述します。

'.

'.

' どちらでもない場合は、# Else に続くステートメントを実行します。

#Else

'. その他のプラットフォーム用のステートメントを、この部分に記述します。

'.

'.

#End If


Copyright (C) 1991-1995 Microsoft Corp.  All rights reserved.

Microsoft、MS、MS-DOS、および Windows は、米国マイクロソフト社の登録商標です。

このオンライン文書の内容は、予告なしに変更されることがあります。また、この文書を運用した結果について、弊社は責任を負いかねますのでご了承ください。

この文書に記述されているソフトウェアまたはデータベースは、ライセンス同意書または非公開同意書に基づいて提供されるものです。これらのソフトウェアやデータベースは、同意書の内容に従う場合のみ、使用または複製することができます。同意書の中で特別に許可されている場合を除き、ソフトウェアを複製することは禁止されています。このオンライン文書やデータベースの一部または全部を、フォトコピー、記録機器、情報記憶媒体、検索システム等の電気的または機械的な形式や手段を用いて、無断で複製や転用することはできません。お客様が個人で使用するという目的で、弊社の文書による許可を受けた場合にかぎり、複製や転用が許されます。


ヘルプに関する補足情報

テキスト ファイル

 をクリックすると簡単な説明が表示されます。

Standard、Professional、Enterprise のすべての Edition に付属するヘルプ

Visual Basic

Biblio

データ マネージャ

Visual Basic の紹介

サンプル アプリケーション

セットアップ ウィザード

Professional Edition および Enterprise Edition に付属するヘルプ

カスタム コントロール リファレンス

Crystal Reports for Visual Basic

ホット スポット エディタの使い方

ODBC

ODBC SQL Server ドライバ

VisData

Enterprise Edition に付属するヘルプ

Enterprise Edition

Visual SourceSafe

Visual SourceSafe アドミニストレータ


セットアップ ウィザードの詳細について説明します。セットアップ ツールキットの詳細については、Visual Basic ヘルプ ファイルを参照してください。


Visual Basic の詳細について説明します。


データ アクセス アプリケーションの詳細について説明します。


データ マネージャ アプリケーションの詳細について説明します。


Visual Basic を紹介します。


SAMPLES.HLP は、Visual Basic に付属する内容のサンプル アプリケーションについて説明します。


Windows 95 コントロールなど、カスタム コントロールについてのリファレンスです。


Crystal Reports の解説書です。Crystal Reports を使用すると、既存のデータベースを使用してカスタム レポート、一覧、および定型書簡を作成できます。


SHED.HLP は、ヘルプ ファイルで使用するグラフィックスのホットスポットを作成するハイパーグラフィックス エディタについて説明します。


OCBCINST.HLP は、ODBC のインストール ツールについて説明します。


DRVSSRVR.HLP は、SQL Server データベースの ODBC ドライバについて説明します。


VISDATA.HLP は、データ アクセス機能のサンプル アプリケーション VisData について説明します。


C 言語で使われる Windows 関数について説明します。


Code Profiler アドインの詳細について説明します。


ENTPRISE.HLP は、コンポーネント マネージャ、リモート データ オブジェクト (RDO)、およびリモート データ コントロールについて説明します。


SSJPADM.HLP は、Visual SourceSafe の管理者を対象とする機能について説明します。


SSJPEXP.HLP は、Visual SourceSafe のユーザーを対象とする機能について説明します。


テキスト ファイルの一覧

Microsoft Visual Basic Version 4.0 の追加情報は、以下のファイルに記載されています。

ファイル名	内容

APILOD.TXT	API ビューワーの使い方を説明します。

LABELS.TXT	タック ラベルの位置情報です。

PACKING.LST	Visual Basic で提供されるファイルの一覧です。

VB4DLL.TXT	Visual Basic で使用するダイナミック リンク ライブラリ (DLL) の作成について説明します。

WIN31API.TXT	16 ビット Windows API 関数のプロシージャ、定数、および型宣言についての情報です。

WIN32API.TXT	32 ビット Windows API 関数のプロシージャ、定数、および型宣言についての情報です。

WINMMSYS.TXT	Windows Version 3.1 のマルチメディア API 関数のプロシージャ、定数、および型宣言についての情報です。


ODBC ヘルプ

ODBC のインストール ツールについては、直接 ODBC ヘルプを参照してください。


用語集


用語集

関連項目

A

ANSI 文字セット

ASCII 文字セット

D

Database オブジェクト

DDL (データ定義言語)

Dynaset オブジェクト

E

EB 型

Empty 値

F

FROM 句

Function プロシージャ

M

MDI 子フォーム

MDI フォーム

Memo オブジェクト

Microsoft Jet データベース エンジン

N

Null 値

Null (データ アクセス)

Null の透過

Null フィールド

O

ODBC (Open Database Connectivity)

ODBC データ ソース

ODBC ドライバ

OLE (Object linking and embedding)

OLE オートメーション

OLE オートメーション オブジェクト

OLE オートメーション コントローラ

OLE オブジェクト型

OLE カスタム コントロール

OLE サーバー

P

Property プロシージャ

Q

QueryDef オブジェクト

S

SCODE

Snapshot オブジェクト

SQL クエリー

SQL ステートメント / 文字列

SQL データベース

Static

Sub プロシージャ

T

TableDef オブジェクト

Table オブジェクト

TEMP

twip

U

Unicode

V

VarType 関数

W

WHERE 句

Windows API

Windows OpenFile 関数

Y

Yes/No型

Z

Z オーダー

あ

アイコン

アクション クエリー

アクション クエリー用の QueryDef オブジェクト

アクセス キー

アクティブ ウィンドウ

アスタリスク

値渡し

アタッチ テーブル

アドイン

アプリケーション

一時ディスク

位置情報

一対一リレーション

一対多リレーション

一貫性

イベント

イベントの連鎖反応

イベント プロシージャ

イミディエイト ペイン

印字領域

インスタンス

インデックス

インデックス (データ アクセス)

ウォッチ ペイン

ウォッチ式

埋め込みオブジェクト

埋め込み先編集

エイリアス

エラー トラップ

エラー番号

大文字小文字の区別

オブジェクト

オブジェクト型

オブジェクト式

オブジェクトの種類

オブジェクト ブラウザ

オブジェクト変数

[オブジェクト] ボックス

オブジェクト ライブラリ

オプション ボタン

親フォーム

か

カーソル

外部キー

外部キー側のテーブル

外部結合

外部データベース

外部テーブル

カウンタ

カウンタ フィールド

カスタム コントロール

型宣言文字

カレント インデックス

カレント データベース

カレント トランザクション

カレント レコード

キーワード

既定のワークスペース

キャンセル ボタン

行

行継続文字

共通日付形式

行番号

共有的

行ラベル

クエリー

クエリー パラメータのデータ型

国別情報

区分線

組み込み可能な ISAM ドライバ

組み込み定数

クラス

クラス モジュール

グラフィックス メソッド

クリップボード

グループ

クロス集計クエリー

クロス ポインタ

継続表示属性を持つグラフィックス

結合

権限

更新

更新クエリー

構造化照会言語 (SQL)

構文

構文エラー

構文チェック

コード モジュール

コピー バッファ

コマンド ライン

コミット

コメント

コレクション

コレクションの構文

コンテナ

コントローラ アプリケーション

コントロール

コントロール配列

コントロール パネル

コントロール メニュー コマンド

コントロール メニュー ボックス

コンパイル エラー

コンパイル時

さ

サーバー

再帰

再クエリー

最小化ボタン

サイズ情報

最大化ボタン

作業ディレクトリ

削除クエリー

サブメニュー

参照整合性

参照渡し

シード

ジェネラル プロシージャ

式

式 (データ アクセス)

識別子

時刻式

自己結合

システム オブジェクト

システム モーダル

持続的なオブジェクト

実行可能ファイル

実行時

実行時エラー

自動フォーマット

集合関数

主キー

主テーブル

条件付きコンパイラ定数

ショートカット キー

初期化ファイル

数式

数値型

スタートアップ フォーム

スタック

ステートメント

スナップショット

正規化

整数型 (Integer)

セキュリティ

セキュリティ ワークグループ

セッション

接続文字列

宣言

選択クエリー

選択色ボックス

前方スクロール

前方スクロール スナップショット

挿入可能なオブジェクト

ソース

た

ダイアログ ボックス

タイトル バー

ダイナセット

ダイナミック データ エクスチェンジ (DDE)

ダイナミック リンク ライブラリ (DLL)

代入ステートメント

タイプ ライブラリ

多側専用テーブル

タブ オーダー

単精度浮動小数点数型 (Single)

チェック ボックス

抽出条件

中断モード

長整数型 (Long)

直積集合

追加クエリー

追跡

通貨型 (Currency)

定義域

定義域集合関数

定数

ディスティネーション

データ アクセス オブジェクト

データ型

データ型 (データ アクセス)

データ型の値の範囲

データ (Data) コントロール

データ ソース

データ定義クエリー

データ ページ

データベース

データベース エンジン

データベース オブジェクト

データベース管理

データベース管理システム (DBMS)

テーブル

テーブル作成クエリー

テキスト型

適用範囲 (スコープ)

デザイン時

デバイス コンテキスト

等結合

動詞

ドラッグ アンド ドロップ操作

トランザクション

な

内部結合

内部領域

長さ 0 の文字列

名前付き引数

名前付け規則

並べ替え順序

入力規則

入力検査

入力検査プロパティ

は

パイ (π)

倍精度浮動小数点数型 (Double)

排他

排他的

バイト型 (Byte)

バイナリ形式

配列

パス

パススルー クエリー

パラメータ (データ アクセス)

パラメータ クエリー

パラメータ

バリアント型 (Variant)

バリアント型 (Variant) の式

ハンドル

比較演算子

引数

ピクセル

非コンシステント

ビジュアル編集

左外部結合

左結合

日付/時刻リテラル

日付式

日付と時刻

日付の区切り記号

ビット

ビット単位の比較

ビット マスク

ビットマップ

標準コントロール

標準偏差

標準モジュール

ファイル番号

ファンクション キー

フィールド

フィールドのデータ型

フィールド プロパティ

フィルタ

ブール型 (Boolean)

ブール式

フォーカス

フォーム

フォーム モジュール

複合ドキュメント ファイル

ブックマーク

フラグ

ブレークポイント

プロシージャ

プロシージャ テンプレート

[プロシージャ] ボックス

プロシージャ呼び出し

プロシージャ レベル

プロジェクト

プロジェクト ウィンドウ

プロジェクト ファイル

プロパティ

プロパティ ウィンドウ

プロパティ ボタン

プロパティ リスト

分割バー

ページ

ベース テーブル

ペン

編集キー

変数

ポイント

ポーク

ホスト アプリケーション

ポップアップ メニュー

ま

マスター コピー

マルチユーザー データベース

右外部結合

右結合

メソッド

メタファイル

メッセージ

メモ型

メモリ オブジェクト

メンバ

モーダル

モードレス

文字コード

モジュール

モジュール レベル

モジュール レベル変数

文字列型 (String)

文字列式

文字列定数

文字列比較

や

ユーザー アカウント

ユーザー インターフェイス ネゴシエーション

ユーザー識別子 (PID)

ユーザー定義型

ユニオン クエリー

<呼び出し履歴> ボタン

読み取り専用

読み取り専用ファイル

予約語

ら

リスト ボックス

リソース ファイル

リテラル文字列

リンク オブジェクト

[リンク貼り付け] コマンド

レコード

レコードセット

レコードセットへのレコードの取得

レジストリ

列

連結コントロール

連鎖

連鎖更新

連鎖削除

ロック状態

ロング バイナリ型

論理エラー

わ

ワークグループ

ワークグループ管理者

ワークスペース

ワイルドカード文字

数字

2 の補数


関連項目

Visual Basic ヘルプ


Application キーワード

キーワード Application は、次の項目で使用されます。

Application オブジェクト (アドイン)

Application プロパティ (アドイン)


ControlTemplates キーワード

キーワード ControlTemplates は、次の項目で使用されます。

ControlTemplates コレクション (アドイン)

ControlTemplates プロパティ (アドイン)


FileControl キーワード

キーワード FileControl は、次の項目で使用されます。

FileControl オブジェクト (アドイン)

FileControl プロパティ (アドイン)


Flags キーワード

キーワード Flags は、次の項目で使用されます。

Flags プロパティ ([色の設定] ダイアログ ボックス)

Flags プロパティ ([ファイルを開く]、[ファイル名を付けて保存] ダイアログ ボックス)

Flags プロパティ ([フォントの指定] ダイアログ ボックス)

Flags プロパティ ([印刷] ダイアログ ボックス)


Image キーワード

キーワード Image は、次の項目で使用されます。

イメージ (Image) コントロール

Image プロパティ


Line キーワード

キーワード Line は、次の項目で使用されます。

Line メソッド

Line Input # ステートメント

ライン (Line) コントロール


LinkExecute キーワード

キーワード LinkExecute は、次の項目で使用されます。

LinkExecute イベント

LinkExecute メソッド


Load キーワード

キーワード Load は、次の項目で使用されます。

Load イベント

Load ステートメント


MenuItems キーワード

キーワード MenuItems は、次の項目で使用されます。

MenuItems コレクション (アドイン)

MenuItems プロパティ (アドイン)


Properties キーワード

キーワード Properties は、次の項目で使用されます。

Properties コレクション (アドイン)

Properties プロパティ (アドイン)


Refresh キーワード

Refresh メソッド

Refresh メソッド (データ アクセス)


SelectedComponents キーワード

キーワード SelectedComponents は、次の項目で使用されます。

SelectedComponents コレクション (アドイン)

SelectedComponents プロパティ (アドイン)


Shape キーワード

キーワード Shape は、次の項目で使用されます。

シェイプ (Shape) コントロール

Shape プロパティ


Timer キーワード

キーワード Timer は、次の項目で使用されます。

タイマー (Timer) コントロール

Timer イベント


Unload キーワード

キーワード Unload は、次の項目で使用されます。

Unload イベント

Unload ステートメント


SELECT キーワード

キーワード SELECT は次の項目で使用されます。

SELECT ステートメント (SQL)

SELECT...INTO ステートメント (SQL)


In キーワード

キーワード In は次の項目で使用されます。

In 演算子 (SQL)

IN 句 (SQL)


Object キーワード

キーワード Object は次の項目で使用されます。

Object プロパティ

Object プロパティ (OLE コンテナ)


イベント


イベント

関連項目

A

Activate

AfterAddFile (アドイン)

AfterChangeFileName (アドイン)

AfterCloseFile (アドイン)

AfterColUpdate

AfterDelete

AfterInsert

AfterNewProject (アドイン)

AfterRemoveFile (アドイン)

AfterUpdate

AfterWriteFile (アドイン)

B

BeforeColUpdate

BeforeDelete

BeforeInsert

BeforeLoadFile (アドイン)

BeforeUpdate

C

Change

CheckIn (アドイン)

CheckOut (アドイン)

Click

ColResize

ConnectAddIn (アドイン)

D

DblClick

Deactivate

DisconnectAddIn (アドイン)

DoGetAddFileName (アドイン)

DoGetNewFileName (アドイン)

DoGetOpenProjectName (アドイン)

DragDrop

DragOver

DropDown

E

Error

F

Fetch (アドイン)

G

GotFocus

H

HeadClick

I

Initialize

K

KeyDown

KeyPress

KeyUp

L

LinkClose

LinkError

LinkExecute

LinkNotify

LinkOpen

Load

LostFocus

M

MouseDown

MouseMove

MouseUp

O

ObjectMove

P

Paint

PathChange

PatternChange

Q

QueryUnload

R

Reposition

RequestChangeFileName (アドイン)

RequestWriteFile (アドイン)

Resize

RowColChange

RowLoaded

RowResize

S

Scroll

SelChange

T

Terminate

Timer

U

UnboundAddData

UnboundDeleteRow

UnboundReadData

UnboundWriteData

UnCheckOut (アドイン)

Unload

Updated

V

Validate


関連項目

データ アクセス関連イベント一覧

関数

機能別キーワード一覧

メソッド

オブジェクト

プログラミング言語一覧

プロパティ

ステートメント

Visual Basic ヘルプ


関数


関数

関連項目

A

Abs

Array

Asc

AscB

Atn

C

CBool

CByte

CCur

CDate

CDbl

Choose

Chr

ChrB

CInt

CLng

Command

Cos

CreateDatabase

CreateObject

CSng

CStr

CurDir

CVar

CVErr

D

Date

DateAdd

DateDiff

DatePart

DateSerial

DateValue

Day

DDB

Dir

DoEvents

E

Environ

EOF

Error

Exp

F

FileAttr

FileDateTime

FileLen

Fix

Format

FreeFile

FV

G

GetAllSettings

GetAttr

GetObject

GetSetting

H

Hex

Hour

I

IIf

IMEStatus

Input

InStr

Int

IPmt

IRR

IsArray

IsDate

IsEmpty

IsError

IsMissing

IsNull

IsNumeric

IsObject

L

LBound

LCase

Left

Len

LoadPicture

Loc

LOF

Log

LTrim

M

Mid

Minute

MIRR

Month

MsgBox

N

Now

NPer

NPV

O

Oct

OpenDatabase

P

Partition

Pmt

PPmt

PV

Q

QBColor

R

Rate

ReadProperty

RGB

Right

Rnd

RTrim

S

Second

Seek

Sgn

Shell

Sin

SLN

Space

Spc

Sqr

Str

StrComp

StrConv

String

Switch

SYD

T

Tab

Tan

Time

Timer

TimeSerial

TimeValue

Trim

TypeName

U

UBound

UCase

V

Val

VarType

W

Weekday

Y

Year


関連項目

イベント

機能別キーワード一覧

メソッド

オブジェクト

プログラミング言語一覧

プロパティ

ステートメント

Visual Basic ヘルプ


プログラミング言語一覧


プログラミング言語一覧

関連項目

A

Activate イベント

ActiveControl プロパティ

ActiveForm プロパティ

ActiveProject プロパティ (アドイン)

AddFile メソッド (アドイン)

AddFormTemplate メソッド (アドイン)

AddInMenu プロパティ (アドイン)

AddItem メソッド

AddMDIFormTemplate メソッド (アドイン)

AddMenuTemplate メソッド (アドイン)

AddMenu メソッド (アドイン)

AddNew メソッド

AddReference メソッド (アドイン)

AddToolboxProgID メソッド (アドイン)

AddToolboxTypelib メソッド (アドイン)

AddToolboxVBX メソッド (アドイン)

Add メソッド (DB グリッド)

Add メソッド

Add メソッド (アドイン)

AfterAddFile イベント (アドイン)

AfterChangeFileName イベント (アドイン)

AfterCloseFile イベント (アドイン)

AfterColUpdate イベント

AfterDelete イベント

AfterInsert イベント

AfterNewProject イベント (アドイン)

AfterRemoveFile イベント (アドイン)

AfterUpdate イベント

AfterWriteFile イベント (アドイン)

Alignment プロパティ

Align プロパティ

AllowAddNew プロパティ

AllowDelete プロパティ

AllowRowSizing プロパティ

AllowSizing プロパティ

AllowUpdate プロパティ

AllowZeroLength プロパティ

AllPermissions プロパティ

And 演算子

AppActivate ステートメント

Appearance プロパティ

AppendChunk メソッド

Append メソッド

AppIsRunning プロパティ

Application オブジェクト (アドイン)

Application プロパティ (アドイン)

App オブジェクト

Archive プロパティ

Arrange メソッド

Array 関数

AscB 関数

ASCII 文字セット

Asc 関数

As キーワード

Atn 関数

Attributes プロパティ

AutoActivate プロパティ

AutoRedraw プロパティ

AutoShowChildren プロパティ

AutoSize プロパティ

AutoVerbMenu プロパティ

B

BackColor プロパティ

BackStyle プロパティ

Beep ステートメント

BeforeColUpdate イベント

BeforeDelete イベント

BeforeInsert イベント

BeforeLoadFile イベント (アドイン)

BeforeUpdate イベント

BeginTrans ステートメント

BOFAction プロパティ

BOF プロパティ

Bold プロパティ

Bookmarkable プロパティ

Bookmark プロパティ (DB グリッド)

Bookmark プロパティ (データ アクセス)

BorderColor プロパティ

BorderStyle プロパティ

BorderWidth プロパティ

BoundColumn プロパティ

BoundText プロパティ

ByVal キーワード

C

CacheSize プロパティ

CacheStart プロパティ

Call ステートメント

CancelError プロパティ

CancelUpdate メソッド

Cancel プロパティ

Caption プロパティ

CBool 関数

CByte 関数

CCur 関数

CDate 関数

CDbl 関数

CellSelected プロパティ

CellText メソッド

CellValue メソッド

Change イベント

ChDir ステートメント

ChDrive ステートメント

Checked プロパティ

CheckIn イベント (アドイン)

CheckOut イベント (アドイン)

Choose 関数

ChrB 関数

Chr 関数

CInt 関数

Circle メソッド

ClassModule オブジェクト

ClassName プロパティ (アドイン)

Class プロパティ

Clear メソッド

Clear メソッド (Clipboard オブジェクト、コンボ ボックス、リスト ボックス)

Click イベント

Clipboard オブジェクト

ClipControls プロパティ

Clip プロパティ

CLng 関数

Clone メソッド

Close ステートメント

Close メソッド

Close メソッド (OLE コンテナ)

Cls メソッド

Clustered プロパティ

ColAlignment プロパティ

ColContaining メソッド

ColIndex プロパティ

ColIsVisible プロパティ

CollatingOrder プロパティ

Collection オブジェクト

ColorMode プロパティ

Color プロパティ

ColPos プロパティ

ColResize イベント

Cols プロパティ

ColumnCount プロパティ

ColumnHeaders プロパティ

ColumnName プロパティ

Columns コレクション

Columns プロパティ (DB グリッド)

Columns プロパティ (リスト ボックス)

Column オブジェクト

ColWidth プロパティ

Col プロパティ

Command 関数

Comments プロパティ

CommitTrans ステートメント

CompactDatabase ステートメント

CompactDatabase メソッド

CompanyName プロパティ

Components コレクション (アドイン)

Component オブジェクト (アドイン)

ConflictTable プロパティ

ConnectAddIn イベント (アドイン)

ConnectEvents メソッド (アドイン)

Connect プロパティ

Const ステートメント

Containers コレクション

Container オブジェクト

Container プロパティ

Container プロパティ (アドイン)

Container プロパティ (データ アクセス)

ControlBox プロパティ

Controls コレクション

ControlTemplates コレクション (アドイン)

ControlTemplates プロパティ (アドイン)

ControlTemplate オブジェクト (アドイン)

Copies プロパティ

CopyQueryDef メソッド

Copy メソッド

Cos 関数

Count プロパティ (VB コレクション)

Count プロパティ (データ アクセス)

CreateDatabase メソッド

CreateDatabase 関数

CreateDynaset メソッド

CreateEmbed メソッド

CreateField メソッド

CreateGroup メソッド

CreateLink メソッド

CreateObject 関数

CreateProperty メソッド

CreateQueryDef メソッド

CreateRelation メソッド

CreateSnapshot メソッド

CreateTableDef メソッド

CreateUser メソッド

CreateWorkspace メソッド

CSng 関数

CStr 関数

CurDir 関数

CurrentX プロパティ

CurrentY プロパティ

CVar 関数

CVErr 関数

D

DatabaseName プロパティ

Databases コレクション

Database オブジェクト

Database プロパティ

DataChanged プロパティ

DataField プロパティ

DataMode プロパティ

DataSource プロパティ

DataText プロパティ

DataUpdatable プロパティ

Data プロパティ

DateAdd 関数

DateCreated プロパティ

DateDiff 関数

DatePart 関数

DateSerial 関数

DateValue 関数

Date ステートメント

Date 関数

Day 関数

DBEngine オブジェクト

DblClick イベント

DB グリッド (DBGrid) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

DDB 関数

Deactivate イベント

Debug オブジェクト

Declare ステートメント

DefaultExt プロパティ

DefaultPassword プロパティ

DefaultUser プロパティ

DefaultValue プロパティ

Default プロパティ

DefColWidth プロパティ

Deftype ステートメント

DeleteQueryDef メソッド

DeleteSetting ステートメント

Delete メソッド

Delete メソッド (OLE コンテナ)

Description プロパティ

Description プロパティ (ClassModule オブジェクト)

Description プロパティ (データ アクセス)

DesignMasterID プロパティ

DeviceName プロパティ

DialogTitle プロパティ

Dim ステートメント

Dir 関数

DisconnectAddIn イベント (アドイン)

DisconnectEvents メソッド (アドイン)

DisplayType プロパティ

DistinctCount プロパティ

DividerStyle プロパティ

Do...Loop ステートメント

DoEvents 関数

DoGetAddFileName イベント (アドイン)

DoGetNewFileName イベント (アドイン)

DoGetOpenProjectName イベント (アドイン)

DoVerb メソッド

DragDrop イベント

DragIcon プロパティ

DragMode プロパティ

DragOver イベント

Drag メソッド

DrawMode プロパティ

DrawStyle プロパティ

DrawWidth プロパティ

DriverName プロパティ

Drive プロパティ

DropDown イベント

Duplex プロパティ

Dynaset オブジェクト

E

EditMode プロパティ

Edit メソッド

Else キーワード

Enabled プロパティ

EndDoc メソッド

End ステートメント

Environ 関数

EOFAction プロパティ

EOF プロパティ

EOF 関数

Erase ステートメント

Errors コレクション

Error イベント

Error オブジェクト

Error ステートメント

Error 関数

Err オブジェクト

Exclusive プロパティ

ExecuteSQL メソッド

Execute メソッド

EXEName プロパティ

Exit ステートメント

Exp 関数

F

False キーワード

FetchVerbs メソッド

Fetch イベント (アドイン)

FieldSize メソッド

Fields コレクション

Fields プロパティ

Field オブジェクト

FileAttr 関数

FileControl オブジェクト (アドイン)

FileControl プロパティ (アドイン)

FileCopy ステートメント

FileCount プロパティ (アドイン)

FileDateTime 関数

FileDescription プロパティ

FileLen 関数

FileNames プロパティ (アドイン)

FileName プロパティ

FileNumber プロパティ

FileTitle プロパティ

FillCache メソッド

FillColor プロパティ

FillStyle プロパティ

FilterIndex プロパティ

Filter プロパティ

Filter プロパティ (コモン ダイアログ)

FindFirst メソッド

FindLast メソッド

FindNext メソッド

FindPrevious メソッド

FirstRow プロパティ

FixedAlignment プロパティ

FixedCols プロパティ

FixedRows プロパティ

Fix 関数

Flags プロパティ ([色の設定] ダイアログ ボックス)

Flags プロパティ ([印刷] ダイアログ ボックス)

Flags プロパティ ([ファイルを開く]、[ファイル名を付けて保存] ダイアログ ボックス)

Flags プロパティ ([フォントの指定] ダイアログ ボックス)

FontBold プロパティ

FontCount プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

Fonts プロパティ

FontTransparent プロパティ

FontUnderline プロパティ

Font オブジェクト

Font プロパティ

For...Next ステートメント

For Each...Next ステートメント

ForeColor プロパティ

ForeignName プロパティ

ForeignTable プロパティ

Foreign プロパティ

Format プロパティ

Format 関数

Forms コレクション

FormTemplate オブジェクト (アドイン)

Form オブジェクト

FreeFile 関数

FreeLocks ステートメント

FromPage プロパティ

FullName プロパティ (アドイン)

Function ステートメント

FV 関数

G

GetAllSettings 関数

GetAttr 関数

GetBookmark メソッド

GetChunk メソッド

GetData メソッド

GetFormat メソッド

GetObject 関数

GetRows メソッド

GetSetting 関数

GetText メソッド

Get ステートメント

GoSub...Return ステートメント

GotFocus イベント

GoTo ステートメント

GridLines プロパティ

GridLineWidth プロパティ

Groups コレクション

Group オブジェクト

H

Handle プロパティ

hDC プロパティ

HeadBackColor プロパティ

HeadClick イベント

HeadFont プロパティ

HeadForeColor プロパティ

HeadLines プロパティ

Height プロパティ

HelpCommand プロパティ

HelpContextID プロパティ

HelpContext プロパティ

HelpContext プロパティ (コモン ダイアログ)

HelpContext プロパティ (データ アクセス)

HelpFile プロパティ

HelpFile プロパティ (App オブジェクト、コモン ダイアログ、MenuLine オブジェクト)

HelpFile プロパティ (データ アクセス)

HelpKey プロパティ

Hex 関数

Hidden プロパティ

HideSelection プロパティ

Hide メソッド

HighLight プロパティ

hInstance プロパティ

HostName プロパティ

Hour 関数

hPal プロパティ

hWnd プロパティ

I

IconState プロパティ (アドイン)

Icon プロパティ

Idle メソッド

If...Then...Else ステートメント

IgnoreNulls プロパティ

IIf 関数

Image プロパティ

IMEStatus 関数

IndexedValue プロパティ (アドイン)

Index プロパティ (コントロール配列)

Index プロパティ (データ アクセス)

Inherited プロパティ (データ アクセス)

Inherit プロパティ

IniPath プロパティ

InitDir プロパティ

Initialize イベント

Input # ステートメント

Input 関数

InsertFile メソッド (アドイン)

InsertObjDlg メソッド

Instancing プロパティ

InStr 関数

IntegralHeight プロパティ

Interval プロパティ

Int 関数

IPmt 関数

IRR 関数

IsArray 関数

IsDate 関数

IsDirty プロパティ (アドイン)

IsEmpty 関数

IsError 関数

IsMissing 関数

IsNull 関数

IsNumeric 関数

IsObject 関数

IsolateODBCTrans プロパティ

Is キーワード

Is 演算子

Italic プロパティ

ItemData プロパティ

Item メソッド

Item メソッド (アドイン)

J

Jet データベース エンジン SQL のデータ型と ANSI SQL のデータ型

K

KeepLocal プロパティ

KeyDown イベント

KeyPress イベント

KeyPreview プロパティ

KeyUp イベント

KillDoc メソッド

Kill ステートメント

L

LargeChange プロパティ

LastDLLError プロパティ

LastModified プロパティ

LastUpdated プロパティ

LastUsedPath プロパティ (アドイン)

LBound プロパティ

LBound 関数

LCase 関数

LeftCol プロパティ

Left プロパティ

Left 関数

LegalCopyright プロパティ

LegalTrademarks プロパティ

Len 関数

Let ステートメント

Like 演算子

Line Input # ステートメント

Line メソッド

LinkClose イベント

LinkError イベント

LinkExecute イベント

LinkExecute メソッド

LinkItem プロパティ

LinkMode プロパティ

LinkNotify イベント

LinkOpen イベント

LinkPoke メソッド

LinkRequest メソッド

LinkSend メソッド

LinkTimeout プロパティ

LinkTopic プロパティ

ListCount プロパティ

ListFields メソッド

ListField プロパティ

ListIndexes メソッド

ListIndex プロパティ

ListParameters メソッド

ListTables メソッド

List プロパティ

LoadPicture 関数

LoadProject メソッド (アドイン)

LoadResData メソッド

LoadResPicture メソッド

LoadResString メソッド

Load イベント

Load ステートメント

LockEdits プロパティ

Locked プロパティ

Lock ステートメント

Loc 関数

LOF 関数

LoginTimeout プロパティ

LogMessages プロパティ

Log 関数

LostFocus イベント

lpOleObject プロパティ

LSet ステートメント

LTrim 関数

M

Major プロパティ

MakeReplica メソッド

MatchedWithList プロパティ

MatchEntry プロパティ

MaxButton プロパティ

MaxFileSize プロパティ

MaxLength プロパティ

Max プロパティ (コモン ダイアログ)

Max プロパティ (スクロール バー)

MDIChild プロパティ

MDIForm オブジェクト

MenuItems コレクション (アドイン)

MenuItems プロパティ (アドイン)

MenuLine オブジェクト (アドイン)

Me キーワード

Microsoft Jet データベース エンジン SQL の予約語

Mid ステートメント

Mid 関数

MinButton プロパティ

Minor プロパティ

Minute 関数

Min プロパティ (コモン ダイアログ)

Min プロパティ (スクロール バー)

MIRR 関数

MiscFlags プロパティ

MkDir ステートメント

Month 関数

MouseDown イベント

MouseIcon プロパティ

MouseMove イベント

MousePointer プロパティ

MouseUp イベント

MoveFirst メソッド

MoveLast メソッド

MoveNext メソッド

MovePrevious メソッド

Move メソッド

Move メソッド (データ アクセス)

MsgBox 関数

MultiLine プロパティ

MultiSelect プロパティ

N

Name ステートメント

Name プロパティ

NegotiateMenus プロパティ

NegotiatePosition プロパティ

NegotiateToolbars プロパティ

Negotiate プロパティ

NewEnum プロパティ (アドイン)

NewIndex プロパティ

NewPage メソッド

NewPassword メソッド

New キーワード

Next キーワード

NoMatch プロパティ

Normal プロパティ

Now 関数

NPer 関数

NPV 関数

NumberFormat プロパティ

Number プロパティ

Number プロパティ (データ アクセス)

NumIndices プロパティ (アドイン)

O

ObjectAcceptFormatsCount プロパティ

ObjectAcceptFormats プロパティ

ObjectGetFormatsCount プロパティ

ObjectGetFormats プロパティ

ObjectMove イベント

ObjectVerbFlags プロパティ

ObjectVerbsCount プロパティ

ObjectVerbs プロパティ

Object プロパティ

Object プロパティ (OLE コンテナ)

Oct 関数

ODBCTimeout プロパティ

OLEDropAllowed プロパティ

OLERequestPendingMsgText プロパティ

OLERequestPendingMsgTitle プロパティ

OLERequestPendingTimeout プロパティ

OLEServerBusyMsgText プロパティ

OLEServerBusyMsgTitle プロパティ

OLEServerBusyRaiseError プロパティ

OLEServerBusyTimeout プロパティ

OLETypeAllowed プロパティ

OLEType プロパティ

OLE コンテナ (OLE) コントロール

On...GoSub ステートメント

On...GoTo ステートメント

On Error ステートメント

On キーワード

OpenDatabase メソッド

OpenDatabase 関数

OpenQueryDef メソッド

OpenRecordset メソッド

OpenTable メソッド

Open ステートメント

Option Base ステートメント

Option Compare ステートメント

Option Explicit ステートメント

Option Private ステートメント

Options プロパティ

Option キーワード

OrdinalPosition プロパティ

Orientation プロパティ

Owner プロパティ

P

Page プロパティ

PaintPicture メソッド

Paint イベント

PaperBin プロパティ

PaperSize プロパティ

Parameters コレクション

Parameter オブジェクト

Parent プロパティ

Partition 関数

PasswordChar プロパティ

Password プロパティ

PasteOK プロパティ

PasteSpecialDlg メソッド

Paste メソッド

PathChange イベント

Path プロパティ

PatternChange イベント

Pattern プロパティ

PercentPosition プロパティ

Permissions プロパティ

Picture オブジェクト

Picture プロパティ

PID プロパティ

Pmt 関数

Point メソッド

PopupMenu メソッド

Port プロパティ

PPmt 関数

PrevInstance プロパティ

Primary プロパティ

Print # ステートメント

PrinterDefault プロパティ

Printers コレクション

Printer オブジェクト

PrintForm メソッド

PrintQuality プロパティ

Print メソッド

Private ステートメント

ProductName プロパティ

ProjectTemplate オブジェクト (アドイン)

Properties コレクション (アドイン)

Properties コレクション (データ アクセス)

Properties プロパティ (アドイン)

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Property オブジェクト (アドイン)

Property オブジェクト (データ アクセス)

PSet メソッド

Public ステートメント

Public プロパティ

Put ステートメント

PV 関数

Q

QBColor 関数

QueryDefs コレクション

QueryDef オブジェクト

QueryTimeout プロパティ

QueryUnload イベント

R

Raise メソッド

Randomize ステートメント

Rate 関数

ReadFromFile メソッド

ReadOnlyMode プロパティ (アドイン)

ReadOnly プロパティ

ReadOnly プロパティ (データ アクセス)

ReadProperty 関数

Rebind メソッド

RecordCount プロパティ

RecordsAffected プロパティ

RecordSelectors プロパティ

Recordsets コレクション

RecordsetType プロパティ

Recordset オブジェクト

Recordset プロパティ

RecordSource プロパティ

ReDim ステートメント

Refill メソッド

RefreshLink メソッド

Refresh メソッド

Refresh メソッド (データ アクセス)

RegisterDatabase ステートメント

RegisterDatabase メソッド

Relations コレクション

Relation オブジェクト

Reload メソッド (アドイン)

RemoveComponent メソッド (アドイン)

RemoveItem メソッド

Remove メソッド

Remove メソッド (アドイン)

Remove メソッド (データ アクセス)

Rem ステートメント

RepairDatabase ステートメント

RepairDatabase メソッド

Replicable プロパティ

ReplicaID プロパティ

Reposition イベント

Requery メソッド

RequestChangeFileName イベント (アドイン)

RequestWriteFile イベント (アドイン)

Required プロパティ

Reset ステートメント

Resize イベント

Restartable プロパティ

Resume ステートメント

ReturnsRecords プロパティ

Revision プロパティ

RGB 関数

Right 関数

RmDir ステートメント

Rnd 関数

Rollback ステートメント

RowBookmark メソッド

RowBuffer オブジェクト

RowColChange イベント

RowContaining メソッド

RowCount プロパティ (DB グリッド)

RowDividerStyle プロパティ

RowHeight プロパティ

RowIsVisible プロパティ

RowLoaded イベント

RowPos プロパティ

RowResize イベント

RowSource プロパティ

Rows プロパティ

RowTop メソッド

Row プロパティ

RSet ステートメント

RTrim 関数

S

SaveAs メソッド (アドイン)

SavePicture ステートメント

SaveSetting ステートメント

SaveToFile メソッド

SaveToOle1File メソッド

ScaleHeight プロパティ

ScaleLeft プロパティ

ScaleMode プロパティ

ScaleTop プロパティ

ScaleWidth プロパティ

ScaleX メソッド

ScaleY メソッド

Scale メソッド

Screen オブジェクト

ScrollBars プロパティ

Scroll イベント

Scroll メソッド

Second 関数

Seek ステートメント

Seek メソッド

Seek 関数

SelBookmarks コレクション

SelBookmarks プロパティ

SelChange イベント

SelCount プロパティ

Select Case ステートメント

SelectedComponents コレクション (アドイン)

SelectedComponents プロパティ (アドイン)

SelectedControlTemplates コレクション (アドイン)

SelectedControlTemplates プロパティ (アドイン)

SelectedItem プロパティ

Selected プロパティ

SelEndCol プロパティ

SelEndRow プロパティ

SelLength プロパティ

SelStartCol プロパティ

SelStartRow プロパティ

SelStart プロパティ

SelText プロパティ

SendKeys ステートメント

SetAttr ステートメント

SetDataAccessOption ステートメント

SetData メソッド

SetDefaultWorkspace ステートメント

SetFocus メソッド

SetText メソッド

Set ステートメント

Sgn 関数

Shape プロパティ

Shell 関数

Shortcut プロパティ

ShowColor メソッド

ShowFont メソッド

ShowHelp メソッド

ShowInTaskbar プロパティ

ShowOpen メソッド

ShowPrinter メソッド

ShowSave メソッド

ShowWhatsThis メソッド

Show メソッド

Sin 関数

SizeMode プロパティ

Size プロパティ (Font オブジェクト)

Size プロパティ (データ アクセス)

SLN 関数

SmallChange プロパティ

Snapshot オブジェクト

Sorted プロパティ

Sort プロパティ

SourceDoc プロパティ

SourceField プロパティ

SourceItem プロパティ

SourceTableName プロパティ

SourceTable プロパティ

Source プロパティ

Source プロパティ (データ アクセス)

Space 関数

Spc 関数

SQL プロパティ

SQL 集合関数 (SQL)

Sqr 関数

StartMode プロパティ

Static ステートメント

Stop ステートメント

StrComp 関数

StrConv 関数

Stretch プロパティ

StrikeThrough プロパティ

String 関数

Str 関数

Style プロパティ

SubMenu オブジェクト (アドイン)

Sub ステートメント

Switch 関数

SYD 関数

Synchronize メソッド

System プロパティ

T

TabIndex プロパティ

TableDef オブジェクト

TableDefs コレクション

Table オブジェクト

Table プロパティ

TabStop プロパティ

Tab 関数

Tag プロパティ

Tan 関数

TaskVisible プロパティ

Terminate イベント

TextHeight メソッド

TextWidth メソッド

Text プロパティ

Timer イベント

Timer 関数

TimeSerial 関数

TimeValue 関数

Time ステートメント

Time 関数

Title プロパティ

ToPage プロパティ

TopIndex プロパティ

TopRow プロパティ

Top プロパティ

To キーワード

TrackDefault プロパティ

Transactions プロパティ

Trim 関数

True キーワード

TwipsPerPixelX プロパティ

TwipsPerPixelY プロパティ

TypeName 関数

Type ステートメント

Type プロパティ (Picture オブジェクト)

Type プロパティ (データ アクセス)

U

UBound プロパティ

UBound 関数

UCase 関数

UnboundAddData イベント

UnboundDeleteRow イベント

UnboundReadData イベント

UnboundWriteData イベント

UnCheckOut イベント (アドイン)

Underline プロパティ

Unique プロパティ

Unload イベント

Unload ステートメント

Unlock ステートメント

Updatable プロパティ

UpdateControls メソッド

Updated イベント

UpdateOptions プロパティ

UpdateRecord メソッド

Update メソッド (OLE コンテナ)

Update メソッド (データ アクセス)

UseMnemonic プロパティ

UserName プロパティ

Users コレクション

User オブジェクト

V

V1xNullBehavior プロパティ

ValidateOnSet プロパティ

Validate イベント

ValidationRule プロパティ

ValidationText プロパティ

Value プロパティ

Value プロパティ (RowBuffer オブジェクト)

Value プロパティ (アドイン)

Value プロパティ (データ アクセス)

Val 関数

VarType 関数

Verb プロパティ

Version プロパティ

Version プロパティ (アドイン)

VisibleCols プロパティ

VisibleCount プロパティ

VisibleItems プロパティ

VisibleRows プロパティ

Visible プロパティ

W

Weekday 関数

Weight プロパティ

WhatsThisButton プロパティ

WhatsThisHelpID プロパティ

WhatsThisHelp プロパティ

WhatsThisMode メソッド

While...Wend ステートメント

Width # ステートメント

Width プロパティ

WindowList プロパティ

WindowState プロパティ

With ステートメント

WordWrap プロパティ

Workspaces コレクション

Workspace オブジェクト

Write # ステートメント

WriteProperty メソッド (アドイン)

X

X1 プロパティ

X2 プロパティ

Y

Y1 プロパティ

Y2 プロパティ

Year 関数

Z

Zoom プロパティ

ZOrder メソッド

標準コントロール

DB グリッド (DBGrid) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

OLE コンテナ (OLE) コントロール

イメージ (Image) コントロール

オプション ボタン (OptionButton) コントロール

グリッド (Grid) コントロール

コマンド ボタン (CommandButton) コントロール

コモン ダイアログ (CommonDialog) コントロール

コンボ ボックス (ComboBox) コントロール

垂直スクロール バー (VScrollBar) コントロール

水平スクロール バー (HScrollBar) コントロール

シェイプ (Shape) コントロール

タイマー (Timer) コントロール

チェック ボックス (CheckBox) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

データ (Data) コントロール

テキスト ボックス (TextBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ピクチャ ボックス (PictureBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

フレーム (Frame) コントロール

メニュー (Menu) コントロール

ライン (Line) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

データ型

データ型の概要

整数型 (Integer)

単精度浮動小数点数型 (Single)

長整数型 (Long)

通貨型 (Currency)

倍精度浮動小数点数型 (Double)

文字列型 (String)

ユーザー定義型

その他

演算子の概要

コマンド ライン スイッチ

定義域集合関数 (SQL)

トラップできるエラー

トラップできるエラー (データ アクセス)


関連項目

イベント

関数

機能別キーワード一覧

メソッド

オブジェクト

プロパティ

ステートメント

Visual Basic ヘルプ


Visual Basic ヘルプ
	Visual Basic ヘルプ 新機能　その他の情報　著作権について
	Visual Basic の使い方 Visual Basic の使い方が、一覧で表示されます。
	プログラミング言語一覧 プログラミング言語に関するすべての項目が、アルファベット順に一覧で表示されます。 関数 プロパティ メソッド ステートメント イベント オブジェクト 機能別キーワード一覧 トラップできるエラー
	データ アクセス データ アクセス機能に関する項目が、一覧で表示されます。
	リファレンス Visual Basic の開発環境、データ型、定数などのリファレンスの各項目が、機能別に一覧で表示されます。


	Visual Basic ヘルプ 新機能　著作権について
	Visual Basic の使い方 Visual Basic の使い方が、一覧で表示されます。
	プログラミング言語一覧 プログラミング言語に関するすべての項目が、アルファベット順に一覧で表示されます。 関数 プロパティ メソッド ステートメント イベント オブジェクト 機能別キーワード一覧 トラップできるエラー
	データ アクセス データ アクセス機能に関する項目が、一覧で表示されます。
	リファレンス Visual Basic の開発環境、データ型、定数などのリファレンスの各項目が、機能別に一覧で表示されます。


Visual Basic の使い方

使い方に関する情報の一覧

アプリケーションの作成に必要な情報

Visual Basic の紹介

インターフェイスの作成

プロパティの設定

コードの記述とデバッグ

オブジェクトの作成

セットアップ ツールキットを利用して配布用のメディアを作成する


インターフェイスの作成

インターフェイスの作成は、Visual Basic でアプリケーション を作成するための最初のステップです。

[新規プロジェクト] コマンド ([ファイル] メニュー)を使ってプロジェクトを作成します。

[フォーム モジュール] コマンド ([挿入] メニュー)を使ってウィンドウを作成するためのフォームを挿入します。

ツールボックスを使ってフォームにコントロールを配置します。

メニュー バーの作成を行います。

その他の情報

オブジェクトのグリッドへの位置揃え

グラフィカル オブジェクト

グリッドの表示と非表示

グリッド間隔の変更

コントロールの選択

コントロールの配置

コントロール配列の作成

実行時のコントロールの追加と削除

実行時のメニュー コマンドの追加と削除

フォームへのアイコンの割り当て

フォームへのグラフィックスの表示

フォームへの線と図形の描画

メニュー コントロール配列の作成

メニュー バーの作成


プロパティの設定

プロパティの設定は Visual Basic アプリケーションを作成するための 2 つめのステップです。

フォームとコントロールのプロパティの設定

その他の情報

MDI 機能の使い方

Screen オブジェクトのプロパティへのアクセス

アクセス キーの設定

色の設定

コントロールのデータ (Data) コントロールへの連結

タブ オーダーの設定

フォームとコントロールのプロパティの設定

フォームへのアイコンの割り当て

プロパティ


コードの記述とデバッグ

コードの記述とデバッグは、Visual Basic アプリケーションを作成するための 3 つめのステップです。

プロシージャの作成を行います。

コードのデバッグを行います。

[ファイル] - [EXE の作成] コマンドを使って実行可能ファイルを作成します。

その他の情報

言語要素の使い方

コード ウィンドウの使い方

コードのデバッグ

他のアプリケーションとの通信

ファイルの操作

プログラムの流れの制御

プロジェクトの管理


コード ウィンドウの使い方

イミディエイト ペインの使い方

ウォッチ式の削除

ウォッチ式の使い方

ウォッチ式の追加

ウォッチ式の編集

コード ウィンドウのペインへの分割

コードの入力と編集

コードへの宣言の入力

コード内の文字列の検索

コード内の文字列の置換

構文チェックの設定または解除

定数の使い方

特定のステートメントの実行

ブレークポイントの設定と解除

プロシージャの検索

ヘルプのサンプル コードの使い方

モジュールへのテキスト ファイルの挿入


言語要素の使い方

Windows API 関数の呼び出し

アクセス キーの設定

外部データベースへのアクセス

コードへの宣言の入力

データベースのクエリー

データベースの作成

フォームまたはコントロールへのイベント プロシージャの記述

プロシージャの検索

プロシージャの作成

ユーザー定義色の作成


コードのデバッグ

イミディエイト ペインの使い方

インスタント ウォッチの使い方

ウォッチ式の削除

ウォッチ式の使い方

ウォッチ式の追加

ウォッチ式の編集

コードの入力と編集

構文チェックの設定または解除

実行の開始

実行の継続

実行の再開

実行のトレース

デバッグのためのチェック リスト

特定のステートメントの実行

ブレークポイントの設定と解除

ヘルプのサンプル コードの使い方


ファイルの操作

モジュールへのテキスト ファイルの挿入

コード内の文字列の検索

コード内の文字列の置換

作業内容の保存


他のアプリケーションとの通信

DDE ソース リンクまたはディスティネーション リンクの作成

OLE サーバーの作成

Windows API 関数の呼び出し

カスタム コントロールの使い方

ダイナミック データ エクスチェンジ (DDE) の使い方


プログラムの流れの制御

実行の開始

実行の再開

実行の終了

実行の中止

スタートアップ モジュールの指定

特定のステートメントの実行


プロジェクトの管理

作業内容の保存

セットアップ ツールキットに関連するファイル

セットアップ ツールキットの概要

ヘルプのサンプル コードの使い方

モジュールへのテキスト ファイルの挿入


Visual Basic の紹介

Visual Basic を簡単に学ぶためのヘルプです。

Visual Basic の [ヘルプ] - [Visual Basic の紹介] コマンドを選択してください。

Visual Basic の概要

アプリケーションの作成

イベント ドリブン プログラム

フォームとコントロール

メニュー

アプリケーションのデバッグ

データベースのアクセス

OLE オートメーション オブジェクト

色とグラフィックス


リファレンス

Visual Basic の開発環境

その他の情報


Visual Basic の開発環境

[EXE オプション] ダイアログ ボックス

[アイコンの読み込み] ダイアログ ボックス

[アドイン マネージャ] ダイアログ ボックス

[インスタント ウォッチ] ダイアログ ボックス

[ウォッチ式の追加] ダイアログ ボックス

[ウォッチ式の編集] ダイアログ ボックス

オブジェクト ブラウザ

[カスタム コントロール] ダイアログ ボックス

[カスタム コントロールのアップグレード] ダイアログ ボックス

カラー パレット

[環境] タブ ([オプション] ダイアログ ボックス)

コード ウィンドウ

[参照設定] ダイアログ ボックス

[詳細設定] タブ ([オプション] ダイアログ ボックス)

[書式] タブ ([オプション] ダイアログ ボックス)

[新規プロシージャ] ダイアログ ボックス

スクロール バー

ツールバー

ツールボックス

デバッグ ウィンドウ

[ピクチャの読み込み] ダイアログ ボックス

フォーム ウィンドウ

[プロシージャの選択] ダイアログ ボックス

プロジェクト ウィンドウ

[プロジェクト] タブ ([オプション] ダイアログ ボックス)

プロパティ ウィンドウ

メニュー エディタ

メニューおよびメニュー コマンド

メニュー バー

[メンバ設定] ダイアログ ボックス

[呼び出し履歴] ダイアログ ボックス


その他の情報

ASCII 文字セット

データ型の概要

表記規則

用語集

キーボード ガイド

演算子の概要

Visual Basic 定数

Visual Basic for Applications の定数


オブジェクトの作成

OLE の基礎

OLE サーバーの作成

OLE サーバーのクラスの定義

アプリケーションのバージョン管理

メンバ オプションの設定


使い方に関する情報の一覧

B

Btrieve データベースのデータへのアクセス

Btrieve データベースの設定の変更

C

CD-ROM に入れられたデータベースへのアクセス

COMPRESS.EXE によるファイルの圧縮

D

DAO で使用されなくなった機能

dBASE データベースの設定の変更

dBASE データベースのデータへのアクセス

DB グリッド (DBGrid) コントロールの使い方

DB リスト (DBList) コントロールと DB コンボ (DBCombo) コントロールの実行

DDE ソース リンクまたはディスティネーション リンクの作成

F

For...Next ループの高速化

J

Jet データベース エンジン Version 2.5 および Version 3.0 へのコードの変換例

L

Lotus 1-2-3 ワークシートのデータへのアクセス

Lotus データベースの設定の変更

M

MDI 機能の使い方

Microsoft Excel の設定の変更

Microsoft Excel ワークシートまたはブックのデータへのアクセス

Microsoft Foxpro データベースの設定の変更

Microsoft FoxPro データベースのデータへのアクセス

Microsoft Jet データベース エンジン Version 2.5 および Version 3.0 でのブックマークの使い方

Microsoft Jet データベース エンジン Version 3.0 および Version 2.5 の使い方

Microsoft Jet データベース エンジンの ISAM の設定の変更

Microsoft Jet データベースのデータへのアクセス

Microsoft ODBC の設定の変更

Microsoft Visual Basic Version 4.0 の新機能

O

ODBC アプリケーションのセットアップ ディスクの作成 (Professional Edition のみ)

ODBC データ ソースとの接続の管理

ODBC データベースへの接続

OLE オートメーション

OLE オートメーション オブジェクトによる作業

OLE サーバーのクラスの定義

OLE サーバーの作成

OLE の基礎

OLE リンク形式の指定

P

Paradox データベースの設定の変更

Paradox データベースのデータへのアクセス

S

Screen オブジェクトのプロパティへのアクセス

SETUP.LST の編集

SETUP.LST ファイル [BOOTSTRAP] セクションと [FILES] セクションの書式

SETUP.LST ファイル [BOOTSTRAP] セクションの編集

SETUP.LST ファイル [FILES] セクションの編集

SETUP.LST ファイル [SETUP] セクションの編集

SQL データベースでの MSysConf テーブルの使い方

SQL パススルー クエリーの使い方

SQL を使ったデータの取得

V

Visual Basic にアドインを追加

Visual SourceSafe アドインの組み込み

W

Windows API 関数の呼び出し

あ

アクセス キーの設定

アドイン オブジェクトの操作

アドインの作成

アプリケーション間の連係

アプリケーションのオブジェクト ライブラリの確認

アプリケーションのバージョン管理

依存ファイルの組み込みまたは削除

イミディエイト ペインの使い方

色の設定

インスタント ウォッチの使い方

インストール オプションの作成

インストール先ディレクトリの指定

インプロセス OLE サーバーとは

インプロセス OLE サーバーの開発

インプロセス OLE サーバーのプログラミングの制約事項

ウォッチ式の削除

ウォッチ式の追加

ウォッチ式の使い方

ウォッチ式の編集

オブジェクトのグリッドへの位置揃え

オブジェクト変数の作成

オブジェクトをレプリケート可能またはローカルに設定する

オプションの設定

か

外部から作成可能なオブジェクトの使い方

外部データベースへのアクセス

カウンタ フィールドの使い方

カスタム コントロールの使い方

カレント レコード ポインタの移動

グラフィカル オブジェクト

グリッド間隔の変更

グリッドの表示と非表示

構文チェックの設定または解除

効率的な引数の引き渡し

効率のよいデータ型の使い方

コード ウィンドウのペインへの分割

コードでの SQL ステートメントの作成

コードの入力と編集

コードへの宣言の入力

コード内の文字列の検索

コード内の文字列の置換

コマンド ライン スイッチ

コントロール

コントロールの選択

コントロールのデータ (Data) コントロールへの連結

コントロールの配置

コントロール配列

コントロール配列の作成

さ

再帰プロシージャの作成

作業内容の保存

ジェネラル プロシージャの作成

システム データベースの変更

実行時のコントロールの追加と削除

実行時のメニュー コマンドの追加と削除

実行の開始

実行の継続

実行の再開

実行の終了

実行の中止

実行のトレース

スタート アップ モジュールの指定

セキュリティのアクティブ化

セットアップ ウィザードとセットアップ ツールキットの違い

セットアップ ツールキットに関連するファイル

セットアップ ツールキットの概要

セットアップ ツールキットの使い方

セットアップ ファイルの圧縮

セットアップ プログラムの作成

セットアップ プログラムのテスト

た

ダイナミック データ エクスチェンジ (DDE) の使い方

タブ オーダーの設定

定数の使い方

データ (Data) コントロールでのパラメータ クエリーの使い方

データ (Data) コントロールの Recordset オブジェクトの種類の選択

データ (Data) コントロールを使ってデータベースを開く

データ アクセス オブジェクトに対応したレジストリの設定のカスタマイズ

データ アクセス オブジェクトのアクティブ化

データ アクセス オブジェクトのレコードセットの種類の選択

データ アクセス用ファイル (.INI) の設定のカスタマイズ

データベースのクエリー

データベースの作成

データベースのレプリケート可能形式への変換

データベース レプリケーション

データベースをレプリケート可能形式に変換する前にオブジェクトをローカルに設定する

テキスト データ ソースの設定の変更

テキスト文書に入っているデータへのアクセス

適用範囲と参照可能範囲

デザイン マスターの状態を他のレプリカに転送する

デバッグのためのチェック リスト

同期の競合の解決

特定のステートメントの実行

な

名前付き引数の使い方

名前の二重定義によるエラー

名前の二重定義の回避

ネットワーク サーバー配布ディレクトリの作成

は

配布が許諾されているファイル

配布ディスクの構成

配布ファイルの構成

配布用のメディアの作成

配列の作成

パラメータ クエリーの作成

フォームへのアイコンの割り当て

ファイルへのデータの書き込み

フィールドのデータ型の選択

フォームとコントロールのプロパティの設定

フォームへのグラフィックスの表示

フォームへの線と図形の描画

フォームまたはコントロールへのイベント プロシージャの記述

ブレークポイントの設定と解除

プロシージャの検索

プロシージャの作成

プロシージャ レベルの適用範囲 (スコープ)

プロパティ ページ ダイアログ ボックスの使い方

ヘルプとアプリケーションの接続

ヘルプのサンプル コードの使い方

ポップアップ メニューの作成 (Windows 95)

ま

マルチユーザー アプリケーションでのロックの動作

メニュー コントロール配列の作成

メニュー バーの作成

メモリ消費量の少ないデータ型

メンバ オプションの設定

モジュールへのテキスト ファイルの挿入

モジュール レベルの適用範囲 (スコープ)

文字列を返す関数

や

ユーザー定義色の作成

ら

リソース ファイルの使い方

レコードセットへのデータの取得

レプリカの追加作成

レプリカの同期化

レプリカをレプリカ セットのデザイン マスターに設定する

数字

16 ビット プラットフォームと 32 ビット プラットフォームの OLE コントロールの互換性

16 ビット版用セットアップ ファイルと 32 ビット版用セットアップ ファイル


メソッド


メソッド

関連項目

A

Add

Add (アドイン)

Add (DB グリッド)

AddFile (アドイン)

AddFormTemplate (アドイン)

AddItem

AddMDIFormTemplate (アドイン)

AddMenu (アドイン)

AddMenuTemplate (アドイン)

AddNew

AddReference (アドイン)

AddToolboxProgID (アドイン)

AddToolboxTypelib (アドイン)

AddToolboxVBX (アドイン)

Append

AppendChunk

Arrange

C

CancelUpdate

CellText

CellValue

Circle

Clear

Clear (Clipboard オブジェクト、コンボ ボックス、リスト ボックス)

Clone

Close

Close (OLE コンテナ)

Cls

ColContaining

CompactDatabase

ConnectEvents (アドイン)

Copy

CopyQueryDef

CreateDatabase

CreateDynaset

CreateEmbed

CreateField

CreateGroup

CreateLink

CreateProperty

CreateQueryDef

CreateRelation

CreateSnapshot

CreateTableDef

CreateUser

CreateWorkspace

D

Delete

Delete (OLE コンテナ)

DeleteQueryDef

DisconnectEvents (アドイン)

DoVerb

Drag

E

Edit

EndDoc

Execute

ExecuteSQL

F

FetchVerbs

FieldSize

FillCache

FindFirst

FindLast

FindNext

FindPrevious

G

GetBookmark

GetChunk

GetData

GetFormat

GetRows

GetText

H

Hide

I

Idle

InsertFile (アドイン)

InsertObjDlg

Item (アドイン)

Item

K

KillDoc

L

Line

LinkExecute

LinkPoke

LinkRequest

LinkSend

ListFields

ListIndexes

ListParameters

ListTables

LoadProject (アドイン)

LoadResData

LoadResPicture

LoadResString

M

MakeReplica

Move

Move (データ アクセス)

MoveFirst

MoveLast

MoveNext

MovePrevious

N

NewPage

NewPassword

O

OpenDatabase

OpenQueryDef

OpenRecordset

OpenTable

P

PaintPicture

Paste

PasteSpecialDlg

Point

PopupMenu

Print

PrintForm

PSet

R

Raise

ReadFromFile

Rebind

Refill

Refresh

Refresh (データ アクセス)

RefreshLink

RegisterDatabase

Reload (アドイン)

Remove

Remove (アドイン)

Remove (データ アクセス)

RemoveComponent (アドイン)

RemoveItem

RepairDatabase

Requery

RowBookmark

RowContaining

RowTop

S

SaveAs (アドイン)

SaveToFile

SaveToOle1File

Scale

ScaleX

ScaleY

Scroll

Seek

SetData

SetFocus

SetText

Show

ShowColor

ShowFont

ShowHelp

ShowOpen

ShowPrinter

ShowSave

ShowWhatsThis

Synchronize

T

TextHeight

TextWidth

U

Update (データ アクセス)

Update (OLE コンテナ)

UpdateControls

UpdateRecord

W

WhatsThisMode

WriteProperty (アドイン)

Z

ZOrder


関連項目

データ アクセス関連メソッド一覧

イベント

関数

機能別キーワード一覧

オブジェクト

プログラミング言語一覧

プロパティ

ステートメント

Visual Basic ヘルプ


トラップできるエラー


トラップできるエラー

関連項目

トラップできるエラーは、Visual Basic 開発環境でのアプリケーションの実行中、またはコンパイル後の実行可能ファイルの実行中に発生します。これらのエラーのいくつかは、デザイン時あるいはコンパイル時にも発生します。On Error ステートメントおよび Err オブジェクトの Number プロパティを使用して、トラップできるエラーのテストおよびエラーへの対応と行うことができます。エラー番号 1 ～ 1000 の範囲で使用されていない番号は、Visual Basic で予約されています。

注   Err オブジェクトの Raise メソッド、または Error ステートメンからエラーが発生した場合には“アプリケーション定義またはオブジェクト定義のエラーです。”と表示されます。ただし、エラー番号は、Visual Basic に定義されているエラーに対応しません。このようなエラーは、ホスト アプリケーション (たとえば、Microsoft Excel または Visual Basic) によって定義されます。コードで生成するには、Raise メソッドを使用します。関連する引数は、すべて指定する必要があります。

Visual Basic 開発環境では、F1 キーを押すと、メッセージに関するヘルプを表示することができます。

コモン ダイアログ (CommonDialog) コントロールのエラー メッセージ

DDE およびフォーム関連のエラー メッセージ

グリッド (Grid) コントロールのエラー メッセージ

その他のメッセージ

OLE オートメーション関連のエラー メッセージ

OLE コンテナ (OLE) コントロールのエラー メッセージ


関連項目

アプリケーションまたはオブジェクトで定義されているエラー

CVErr 関数

Err オブジェクト

Error 関数

Error ステートメント

On Error ステートメント

Raise メソッド

Resume ステートメント

トラップできるエラー (データ アクセス)

Visual Basic ヘルプ


その他のエラー メッセージ

関連項目

番号	メッセージ

3	GoSub がありません。

5	ﾌﾟﾛｼｰｼﾞｬの呼び出しが不正です。

6	ｵｰﾊﾞｰﾌﾛｰしました。

7	ﾒﾓﾘが足りません。

9	ｲﾝﾃﾞｯｸｽが有効範囲にありません。

10	この配列は固定されているか、または一時的にﾛｯｸされています。

11	0 で除算しました。

13	型が一致しません。

14	文字列領域が不足です。

16	式が複雑すぎます。

17	要求された操作は実行できません。

18	ﾕｰｻﾞｰによる割り込みが発生しました。

20	Resume がありません。

28	ｽﾀｯｸ領域が不足です。

35	Sub、Function、または Propertyが定義されていません。

47	DLL のｱﾌﾟﾘｹｰｼｮﾝ ｸﾗｲｱﾝﾄが多すぎます。

48	DLL 読み込み時のｴﾗｰです。

49	DLL が正しく呼び出せません。

51	内部ｴﾗｰです。

52	ﾌｧｲﾙ名または番号が不正です。

53	ﾌｧｲﾙが見つかりません。

54	ﾌｧｲﾙ ﾓｰﾄﾞが不正です。

55	ﾌｧｲﾙは既に開かれています。

57	ﾃﾞﾊﾞｲｽ I/O ｴﾗｰです。

58	既に同名のﾌｧｲﾙが存在しています。

59	ﾚｺｰﾄﾞ長が一致しません。

61	ﾃﾞｨｽｸの空き容量が不足しています。

62	ﾌｧｲﾙにこれ以上ﾃﾞｰﾀがありません。

63	ﾚｺｰﾄﾞ番号が不正です。

67	ﾌｧｲﾙが多すぎます。

68	ﾃﾞﾊﾞｲｽが準備されていません。

70	書き込みできません。

71	ﾃﾞｨｽｸが準備されていません。

74	ﾃﾞｨｽｸ間のﾘﾈｰﾑはできません。

75	ﾊﾟｽ名が無効です。

76	ﾊﾟｽが見つかりません。

91	ｵﾌﾞｼﾞｪｸﾄ変数が設定されていません。または With ﾌﾞﾛｯｸでﾕｰｻﾞｰ定義型の変数が設定されていません。

92	For ﾙｰﾌﾟが初期化されていません。

93	ﾊﾟﾀｰﾝ文字列が不正です。

94	Null 文字の使い方が不正です。

444	このﾒｿｯﾄﾞは適切ではありません。

452	序数が不正です。

453	関数は指定された DLL には定義されていません。

457	このｷｰは既にｺﾚｸｼｮﾝ内の要素に関連付けられています。

460	ｸﾘｯﾌﾟﾎﾞｰﾄﾞのﾃﾞｰﾀ形式が不正です。

461	ﾃﾞｰﾀの形式が一致しません。

480	AutoRedraw ｲﾒｰｼﾞを作成できません。

481	ﾋﾟｸﾁｬが不正です。

482	ﾌﾟﾘﾝﾀのｴﾗｰです。

483	ﾌﾟﾘﾝﾀ ﾄﾞﾗｲﾊﾞは指定されたﾌﾟﾛﾊﾟﾃｨをｻﾎﾟｰﾄしていません。

484	ｼｽﾃﾑからﾌﾟﾘﾝﾀ情報を受けるときに問題が発生しました。ﾌﾟﾘﾝﾀが正しく設定されているかを確かめてください。

485	ﾋﾟｸﾁｬの形式が不正です。

520	ｸﾘｯﾌﾟﾎﾞｰﾄﾞを空にできません。

521	ｸﾘｯﾌﾟﾎﾞｰﾄﾞを開けません。


関連項目

コモン ダイアログ (CommonDialog) コントロールのエラー メッセージ

DDE およびフォーム関連のエラー メッセージ

グリッド (Grid) コントロールのエラー メッセージ

OLE オートメーション関連のエラー メッセージ

OLE コンテナ (OLE) コントロールのエラー メッセージ

トラップできるエラー

Visual Basic ヘルプ


DDE およびフォーム関連のエラー メッセージ

関連項目

番号	メッセージ

260	有効なﾀｲﾏｰは設定されていません。

280	DDE ﾁｬﾈﾙを閉じていません。外部ｱﾌﾟﾘｹｰｼｮﾝからの応答待ち状態です。

281	DDE ﾁｬﾈﾙが足りなくなりました。

282	DDE の開始に対する外部ｱﾌﾟﾘｹｰｼｮﾝからの応答がありません。

283	DDE の開始に対して複数のｱﾌﾟﾘｹｰｼｮﾝから応答がありました。

284	DDE ﾁｬﾈﾙがﾛｯｸされています。

285	DDE をｻﾎﾟｰﾄした外部ｱﾌﾟﾘｹｰｼｮﾝがありません。

286	DDE ﾀｲﾑｱｳﾄ ｴﾗｰです。

287	DDE 処理中に Esc ｷｰが押されました。

288	ﾃﾞｽﾃｨﾈｰｼｮﾝが通信中です。

289	DDE 処理のﾃﾞｰﾀがありません。

290	ﾃﾞｰﾀの形式が不正です。

291	外部ｱﾌﾟﾘｹｰｼｮﾝが終了しました。

292	DDE 通信が変更または閉じられました。

293	DDE ﾁｬﾈﾙが開かれていない状態で DDE ﾒｿｯﾄﾞが実行されました。

294	DDE ﾘﾝｸ形式が不正です。

295	ﾒｯｾｰｼﾞ ｷｭｰがいっぱいです。 DDE ﾒｯｾｰｼﾞが失われました。

296	このｺﾝﾄﾛｰﾙは既にﾘﾝｸ貼り付けされています。

297	LinkMode を設定できません。LinkTopic が不正です。

298	ｼｽﾃﾑ DLL 'dll' をﾛｰﾄﾞできません。

320	ｷｬﾗｸﾀ ﾃﾞﾊﾞｲｽは使えません: 'item'

321	ﾌｧｲﾙ形式が無効です。

325	ﾘｿｰｽ ﾌｧｲﾙの形式が不正です。

326	識別子 'item' のﾘｿｰｽが見つかりません。

335	ｼｽﾃﾑ登録ﾃﾞｰﾀﾍﾞｰｽにｱｸｾｽできません。

336	ｵﾌﾞｼﾞｪｸﾄ ｻｰﾊﾞｰが正しく登録されていません。

337	ｵﾌﾞｼﾞｪｸﾄ ｻｰﾊﾞｰが見つかりません。

338	ｵﾌﾞｼﾞｪｸﾄ ｻｰﾊﾞｰが正常に実行されませんでした。

340	ｺﾝﾄﾛｰﾙ配列の要素 'item' がありません。

341	ｺﾝﾄﾛｰﾙ配列のｲﾝﾃﾞｯｸｽが不正です。

342	ｺﾝﾄﾛｰﾙ配列 'item' のためのﾒﾓﾘが足りません。

343	配列ではないｵﾌﾞｼﾞｪｸﾄです。

344	ｵﾌﾞｼﾞｪｸﾄ配列のｲﾝﾃﾞｯｸｽを指定してください。

345	このﾌｫｰﾑにこれ以上のｺﾝﾄﾛｰﾙを作成できません。

360	このｵﾌﾞｼﾞｪｸﾄは既にﾛｰﾄﾞされています。

361	このｵﾌﾞｼﾞｪｸﾄは、ﾛｰﾄﾞまたはｱﾝﾛｰﾄﾞすることはできません。

362	ﾃﾞｻﾞｲﾝ時に作成されたｺﾝﾄﾛｰﾙはｱﾝﾛｰﾄﾞできません。

363	ｶｽﾀﾑ ｺﾝﾄﾛｰﾙ 'item' がありません。

364	既にｱﾝﾛｰﾄﾞされています。

365	現在ｱﾝﾛｰﾄﾞできません。

366	ﾛｰﾄﾞ可能な MDI ﾌｫｰﾑはありません。

380	ﾌﾟﾛﾊﾟﾃｨの値が不正です。

381	ﾌﾟﾛﾊﾟﾃｨ配列のｲﾝﾃﾞｯｸｽが不正です。

382	'Item' ﾌﾟﾛﾊﾟﾃｨは実行時に設定することはできません。

383	'Item' ﾌﾟﾛﾊﾟﾃｨは値の取得のみ可能です。

384	最大化または最小化されているﾌｫｰﾑは、移動またはｻｲｽﾞ変更することはできません。

385	ﾌﾟﾛﾊﾟﾃｨ配列にはｲﾝﾃﾞｯｸｽが必要です。

386	'Item' ﾌﾟﾛﾊﾟﾃｨは実行時には利用できません。

387	'Item' ﾌﾟﾛﾊﾟﾃｨはこのｺﾝﾄﾛｰﾙでは設定できません。

388	親ﾒﾆｭｰからは Visible ﾌﾟﾛﾊﾟﾃｨを設定できません。

389	無効なｷｰです。

390	値が定義されていません。

391	無効な名前です。

393	'Item' ﾌﾟﾛﾊﾟﾃｨは実行時に値の取得はできません。

394	'Item' ﾌﾟﾛﾊﾟﾃｨは設定のみ可能です。

395	ﾒﾆｭｰ名に区分線は使えません。

396	'Item' ﾌﾟﾛﾊﾟﾃｨは 1 ﾍﾟｰｼﾞ内では設定できません。

397	ﾄｯﾌﾟ ﾚﾍﾞﾙ ﾒﾆｭｰの Visible ﾌﾟﾛﾊﾟﾃｨは設定できません。

400	既にﾌｫｰﾑは表示されています。ﾓｰﾀﾞﾙにできません。

401	ﾓｰﾀﾞﾙ ﾌｫｰﾑが表示されているときはﾓｰﾄﾞﾚｽ ﾌｫｰﾑを表示できません。

402	一番手前 (前面) のﾓｰﾀﾞﾙ ﾌｫｰﾑを先に閉じてください。

403	MDI ﾌｫｰﾑはﾓｰﾀﾞﾙにできません。

404	MDI 子ﾌｫｰﾑはﾓｰﾀﾞﾙにできません。

419	ｵﾌﾞｼﾞｪｸﾄを利用できません。

423	ﾌﾟﾛﾊﾟﾃｨまたはﾒｿｯﾄﾞが見つかりません。

424	ｵﾌﾞｼﾞｪｸﾄが必要です。

426	複数の MDI ﾌｫｰﾑは使用できません。

427	ｵﾌﾞｼﾞｪｸﾄの種類が不正です。ﾒﾆｭｰ ｺﾝﾄﾛｰﾙが必要です。

428	ﾎﾟｯﾌﾟｱｯﾌﾟ ﾒﾆｭｰには少なくとも 1 つのｻﾌﾞﾒﾆｭｰが必要です。


関連項目

コモン ダイアログ (CommonDialog) コントロールのエラー メッセージ

グリッド (Grid) コントロールのエラー メッセージ

その他のエラー メッセージ

OLE オートメーション関連のエラー メッセージ

OLE コンテナ (OLE) コントロールのエラー メッセージ

トラップできるエラー

Visual Basic ヘルプ


OLE オートメーション関連のエラー メッセージ

関連項目

番号	メッセージ

429	ｵﾌﾞｼﾞｪｸﾄを作成できません。

430	ｸﾗｽは OLE ｵｰﾄﾒｰｼｮﾝをｻﾎﾟｰﾄしていません。

432	OLE ｵｰﾄﾒｰｼｮﾝの操作中にﾌｧｲﾙ名またはｸﾗｽ名を見つけられませんでした。

438	ｵﾌﾞｼﾞｪｸﾄは、このﾌﾟﾛﾊﾟﾃｨまたはﾒｿｯﾄﾞをｻﾎﾟｰﾄしていません。

440	OLE ｵｰﾄﾒｰｼｮﾝ ｴﾗｰです。

443	OLE ｵｰﾄﾒｰｼｮﾝ ｵﾌﾞｼﾞｪｸﾄには既定値がありません。

445	ｵﾌﾞｼﾞｪｸﾄはこの動作をｻﾎﾟｰﾄしていません。

446	ｵﾌﾞｼﾞｪｸﾄは名前付き引数をｻﾎﾟｰﾄしていません。

447	ｵﾌﾞｼﾞｪｸﾄは現在の国別情報の設定をｻﾎﾟｰﾄしていません。

448	名前付き引数が見つかりません。

449	引数は省略できません。

450	引数の数が一致していません。または不正なﾌﾟﾛﾊﾟﾃｨを指定しています。

451	ｵﾌﾞｼﾞｪｸﾄがｺﾚｸｼｮﾝではありません。


関連項目

コモン ダイアログ (CommonDialog) コントロールのエラー メッセージ

DDE およびフォーム関連のエラー メッセージ

グリッド (Grid) コントロールのエラー メッセージ

その他のエラー メッセージ

OLE コンテナ (OLE) コントロールのエラー メッセージ

トラップできるエラー

Visual Basic ヘルプ


グリッド (Grid) コントロールのエラー メッセージ

関連項目

番号	メッセージ

30000	固定行には RemoveItem は使えません。

30001	固定行には AddItem は使えません。

30002	指定された行はありません。

30004	列番号が不正です。

30005	Alignment ﾌﾟﾛﾊﾟﾃｨの値が不正です。

30006	ﾒﾓﾘが足りません。

30008	ﾋﾟｸﾁｬの種類が不正です。

30009	行番号が不正です。

30010	列番号が不正です。

30011	ﾒﾓﾘが足りません。

30013	Height ﾌﾟﾛﾊﾟﾃｨの値が不正です。

30014	Width ﾌﾟﾛﾊﾟﾃｨの値が不正です。

30015	ｸﾞﾘｯﾄﾞには非固定行が 1 行以上必要です。

30016	FixedRows ﾌﾟﾛﾊﾟﾃｨにすべての行の数を指定することはできません。

30017	FixedCols ﾌﾟﾛﾊﾟﾃｨにすべての列の数を指定することはできません。


関連項目

コモン ダイアログ (CommonDialog) コントロールのエラー メッセージ

DDE およびフォーム関連のエラー メッセージ

その他のエラー メッセージ

OLE オートメーション関連のエラー メッセージ

OLE コンテナ (OLE) コントロールのエラー メッセージ

トラップできるエラー

Visual Basic ヘルプ


OLE コンテナ (OLE) コントロールのエラー メッセージ

関連項目

番号	メッセージ

31003	ｸﾘｯﾌﾟﾎﾞｰﾄﾞを開けません。

31004	ｵﾌﾞｼﾞｪｸﾄがありません。

31006	ｵﾌﾞｼﾞｪｸﾄを閉じることができません。

31007	貼り付けられません。

31008	ﾌﾟﾛﾊﾟﾃｨの値が不正です。

31009	ｺﾋﾟｰできません。

31017	ﾘｿｰｽ ﾌｧｲﾙの形式が不正です。

31018	ｸﾗｽが設定されていません。

31019	ｿｰｽ ﾄﾞｷｭﾒﾝﾄが設定されていません。

31021	ｺﾏﾝﾄﾞが不正です。

31022	OLE を初期化できません。

31023	ｸﾗｽが不正もしくは未知のｸﾗｽです。

31024	ﾘﾝｸを作成できません。

31026	ｿｰｽ名が長すぎます。

31027	ｵﾌﾞｼﾞｪｸﾄをｱｸﾃｨﾌﾞにできません。

31028	ｵﾌﾞｼﾞｪｸﾄが実行されていません。

31029	ﾀﾞｲｱﾛｸﾞが使用中です。

31031	ﾘﾝｸには不正なｿｰｽです。

31032	埋め込みｵﾌﾞｼﾞｪｸﾄが作成できません。

31033	ﾘﾝｸ ｿｰｽ名を取得できません。

31034	OLE 動詞のｲﾝﾃﾞｯｸｽが不正です。

31035	ｸﾘｯﾌﾟﾎﾞｰﾄﾞの形式が不正です。

31036	ﾌｧｲﾙへの書き込み中にｴﾗｰが発生しました。

31037	ﾌｧｲﾙの読み込み中にｴﾗｰが発生しました。

31038	このｺﾝﾄﾛｰﾙは Visual Basic 3.0 以降のﾊﾞｰｼﾞｮﾝでのみ利用可能です。

31039	ｿｰｽ ﾄﾞｷｭﾒﾝﾄに接続できません。


関連項目

コモン ダイアログ (CommonDialog) コントロールのエラー メッセージ

DDE およびフォーム関連のエラー メッセージ

グリッド (Grid) コントロールのエラー メッセージ

その他のエラー メッセージ

OLE オートメーション関連のエラー メッセージ

トラップできるエラー

Visual Basic ヘルプ


コモン ダイアログ (CommonDialog) コントロールのエラー メッセージ

関連項目

番号	メッセージ

20476	FileName ﾊﾞｯﾌｧは、選択されたﾌｧｲﾙ名を保持するには小さすぎます。

20477	ﾌｧｲﾙ名が不正です。

20478	ﾒﾓﾘ不足のため、ﾘｽﾄ ﾎﾞｯｸｽのｻﾌﾞｸﾗｽ化ができませんでした。

24574	ﾌｫﾝﾄがありません。

28660	WIN.INI ﾌｧｲﾙの [DEVICE] ｾｸｼｮﾝで、必要なﾌﾟﾘﾝﾀについてのｴﾝﾄﾘがありません。

28661	PrintDlg 関数が情報ｺﾝﾃｷｽﾄを作成しようとしたときにｴﾗｰが発生しました。

28662	DEVMODE および DEVNAMES ﾃﾞｰﾀ構造体のﾃﾞｰﾀは、2 つの異なるﾌﾟﾘﾝﾀについて記述しています。

28663	通常使うﾌﾟﾘﾝﾀが設定されていません。

28664	ﾌﾟﾘﾝﾀ ﾄﾞﾗｲﾊﾞが見つかりません。

28665	初期化で、PrintDlg 関数の実行に失敗しました。

28666	ﾌﾟﾘﾝﾀのﾃﾞﾊﾞｲｽ ﾄﾞﾗｲﾊﾞで DEVMODE ﾃﾞｰﾀ構造体の初期化に失敗しました。

28667	PrintDlg 関数は指定されたﾌﾟﾘﾝﾀのﾃﾞﾊﾞｲｽ ﾄﾞﾗｲﾊﾞの読み込みに失敗しました。

28668	PRINTDLG ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞで PD_RETURNDEFAULT ﾌﾗｸﾞがｾｯﾄされましたが、hDevMode または hDevNames ﾌｨｰﾙﾄﾞが 0 以外の値に設定されています。

28669	ﾒﾓﾘ不足のため、ﾀﾞｲｱﾛｸﾞ ﾎﾞｯｸｽを表示できません。

28670	要求されたﾘｿｰｽの読み込みに失敗しました。

28671	PRINTDLG ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞで PD_RETURNDEFAULT ﾌﾗｸﾞがｾｯﾄされましたが、hDevMode または hDevNames ﾌｨｰﾙﾄﾞが 0 以外の値に設定されています。

31001	ﾒﾓﾘが足りません。

32751	ﾍﾙﾌﾟの呼び出しに失敗しました。Help ﾌﾟﾛﾊﾟﾃｨをﾁｪｯｸしてください。

32752	ﾒﾓﾘ不足のため、ﾀﾞｲｱﾛｸﾞ ﾎﾞｯｸｽを表示できません。

32753	ﾌﾟﾛｼｰｼﾞｬのｱﾄﾞﾚｽを判別できませんでした。他の DLL を選択してください。

32754	選択された DLL を読み込むことはできませんでした。

32755	[ｷｬﾝｾﾙ] ﾎﾞﾀﾝが選択されました。

32756	ｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞに ENABLEHOOK ﾌﾗｸﾞがｾｯﾄされましたが、ｱﾌﾟﾘｹｰｼｮﾝは対応するﾌｯｸ関数へのﾎﾟｲﾝﾀを設定できませんでした。

32757	ﾊﾝﾄﾞﾙに関連するﾒﾓﾘをﾛｯｸすることはできませんでした。

32758	内部ﾃﾞｰﾀ構造体用のﾒﾓﾘを割り当てることはできませんでした。

32759	指定されたﾘｿｰｽをﾛｯｸできませんでした。

32760	指定されたﾘｿｰｽの読み込みに失敗しました。

32761	指定されたﾘｿｰｽは見つかりませんでした。

32762	指定された文字列の読み込みに失敗しました。

32763	ｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞで ENABLETEMPLATE ﾌﾗｸﾞがｾｯﾄされましたが、ｱﾌﾟﾘｹｰｼｮﾝは正しいｲﾝｽﾀﾝｽ ﾊﾝﾄﾞﾙをｺﾝﾄﾛｰﾙに渡せませんでした。

32764	ｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞに ENABLETEMPLATE ﾌﾗｸﾞがｾｯﾄされましたが、ｱﾌﾟﾘｹｰｼｮﾝは正しいﾀﾞｲｱﾛｸﾞ ﾃﾝﾌﾟﾚｰﾄをｺﾝﾄﾛｰﾙに渡せませんでした。

32765	ｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ｺﾝﾄﾛｰﾙの初期化に失敗しました。このｴﾗｰは、ﾒﾓﾘが不足しているときに起る可能性があります。

32766	対応するｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ﾃﾞｰﾀ構造体の lStructSize ﾒﾝﾊﾞが不正です。


関連項目

DDE およびフォーム関連のエラー メッセージ

グリッド (Grid) コントロールのエラー メッセージ

その他のエラー メッセージ

OLE オートメーション関連のエラー メッセージ

OLE コンテナ (OLE) コントロールのエラー メッセージ

トラップできるエラー

Visual Basic ヘルプ


このメソッドは適切ではありません。(Error 444)

このイベントプロシージャでは、このメソッドは使用できません。


オブジェクト


オブジェクト

関連項目

A

App オブジェクト

Application オブジェクト (アドイン)

C

チェック ボックス (CheckBox) コントロール

ClassModule オブジェクト

Clipboard オブジェクト

Collection オブジェクト

Column オブジェクト

Columns コレクション

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

コモン ダイアログ (CommonDialog) コントロール

Component オブジェクト (アドイン)

Components コレクション (アドイン)

Container オブジェクト

Containers コレクション

Controls コレクション

ControlTemplate オブジェクト (アドイン)

ControlTemplates コレクション (アドイン)

D

データ (Data) コントロール

Database オブジェクト

Databases コレクション

DB コンボ (DBCombo) コントロール

DBEngine オブジェクト

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

Debug オブジェクト

ディレクトリ リスト ボックス (DirListBox) コントロール

Document オブジェクト

Documents コレクション

ドライブ リスト ボックス (DriveListBox) コントロール

Dynaset オブジェクト

E

Err オブジェクト

Error オブジェクト

Errors コレクション

F

Field オブジェクト

Fields コレクション

FileControl オブジェクト (アドイン)

ファイル リスト ボックス (FileListBox) コントロール

Font オブジェクト

Form オブジェクト

Forms コレクション

FormTemplate オブジェクト (アドイン)

フレーム (Frame) コントロール

G

グリッド (Grid) コントロール

Group オブジェクト

Groups コレクション

H

水平スクロール バー (HScrollBar) コントロール

I

イメージ (Image) コントロール

Index オブジェクト

Indexes コレクション

L

ラベル (Label) コントロール

ライン (Line) コントロール

リスト ボックス (ListBox) コントロール

M

MDIForm オブジェクト

メニュー (Menu) コントロール

MenuItems コレクション (アドイン)

MenuLine オブジェクト (アドイン)

O

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

P

Parameter オブジェクト

Parameters コレクション

Picture オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト

Printers コレクション

ProjectTemplate オブジェクト (アドイン)

Properties コレクション (アドイン)

Properties コレクション (データ アクセス)

Property オブジェクト (アドイン)

Property オブジェクト (データ アクセス)

Q

QueryDef オブジェクト

QueryDefs コレクション

R

Recordset オブジェクト

Recordsets コレクション

Relation オブジェクト

Relations コレクション

RowBuffer オブジェクト

S

Screen オブジェクト

SelBookmarks コレクション

SelectedComponents コレクション (アドイン)

SelectedControlTemplates コレクション (アドイン)

シェイプ (Shape) コントロール

Snapshot オブジェクト

SubMenu オブジェクト (アドイン)

T

Table オブジェクト

TableDef オブジェクト

TableDefs コレクション

テキスト ボックス (TextBox) コントロール

タイマー (Timer) コントロール

U

User オブジェクト

Users コレクション

V

垂直スクロール バー (VScrollBar) コントロール

W

Workspace オブジェクト

Workspaces コレクション

標準コントロール

DB グリッド (DBGrid) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

OLE コンテナ (OLE) コントロール

イメージ (Image) コントロール

オプション ボタン (OptionButton) コントロール

グリッド (Grid) コントロール

コマンド ボタン (CommandButton) コントロール

コモン ダイアログ (CommonDialog) コントロール

コンボ ボックス (ComboBox) コントロール

シェイプ (Shape) コントロール

タイマー (Timer) コントロール

チェック ボックス (CheckBox) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

データ (Data) コントロール

テキスト ボックス (TextBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ピクチャ ボックス (PictureBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

フレーム (Frame) コントロール

メニュー (Menu) コントロール

ライン (Line) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

垂直スクロール バー (VScrollBar) コントロール

水平スクロール バー (HScrollBar) コントロール


関連項目

データ アクセス関連オブジェクトおよびコレクション一覧

イベント

関数

機能別キーワード一覧

メソッド

プログラミング言語一覧

プロパティ

ステートメント

Visual Basic ヘルプ


プロパティ


プロパティ

関連項目

A

AbsolutePosition

Action (コモン ダイアログ)

Action (OLE コンテナ)

ActiveControl

ActiveForm

ActiveProject (アドイン)

AddInMenu (アドイン)

Align

Alignment

AllowAddNew

AllowDelete

AllowRowSizing

AllowSizing

AllowUpdate

AllowZeroLength

AllPermissions

Appearance

AppIsRunning

Application (アドイン)

Archive

Attributes

AutoActivate

AutoRedraw

AutoShowChildren

AutoSize

AutoVerbMenu

B

BackColor

BackStyle

BOF

BOFAction

Bold

Bookmark (データ アクセス)

Bookmark (DB グリッド)

Bookmarkable

BorderColor

BorderStyle

BorderWidth

BoundColumn

BoundText

C

CacheSize

CacheStart

Cancel

CancelError

Caption

CellSelected

Checked

Class

ClassName (アドイン)

Clip

ClipControls

Clustered

Col

ColAlignment

ColIndex

ColIsVisible

CollatingOrder

Color

ColorMode

ColPos

Cols

ColumnCount

ColumnHeaders

ColumnName

Columns (DB グリッド)

Columns (リスト ボックス)

ColWidth

Comments

CompanyName

ConflictTable

Connect

Container (アドイン)

Container (データ アクセス)

Container

ControlBox

ControlTemplates (アドイン)

Copies

Count (データ アクセス)

Count (VB コレクション)

CurrentX

CurrentY

D

Data

Database

DatabaseName

DataChanged

DataField

DataMode

DataSource

DataText

DataUpdatable

DateCreated

Default

DefaultExt

DefaultPassword

DefaultUser

DefaultValue

DefColWidth

Description (ClassModule オブジェクト)

Description (データ アクセス)

Description

DesignMasterID

DeviceName

DialogTitle

DisplayType

DistinctCount

DividerStyle

DragIcon

DragMode

DrawMode

DrawStyle

DrawWidth

Drive

DriverName

Duplex

E

EditMode

Enabled

EOF

EOFAction

Exclusive

EXEName

F

Fields

FileControl (アドイン)

FileCount (アドイン)

FileDescription

FileName

FileNames (アドイン)

FileNumber

FileTitle

FillColor

FillStyle

Filter (コモン ダイアログ)

Filter

FilterIndex

FirstRow

FixedAlignment

FixedCols

FixedRows

Flags ([色の設定] ダイアログ ボックス)

Flags ([印刷] ダイアログ ボックス)

Flags ([ファイルを開く]、[ファイル名を付けて保存] ダイアログ ボックス)

Flags ([フォントの指定] ダイアログ ボックス)

Font

FontBold

FontCount

FontItalic

FontName

Fonts

FontSize

FontStrikethru

FontTransparent

FontUnderline

ForeColor

Foreign

ForeignName

ForeignTable

Format

FromPage

FullName (アドイン)

G

GridLines

GridLineWidth

H

Handle

hDC

HeadBackColor

HeadFont

HeadForeColor

HeadLines

Height

HelpCommand

HelpContext (コモン ダイアログ)

HelpContext (データ アクセス)

HelpContext

HelpContextID

HelpFile (App オブジェクト、コモン ダイアログ、Menuline オブジェクト)

HelpFile (データ アクセス)

HelpFile

HelpKey

Hidden

HideSelection

HighLight

hInstance

HostName

hPal

hWnd

I

Icon

IconState (アドイン)

IgnoreNulls

Image

Index (コントロール配列)

Index (データ アクセス)

IndexedValue (アドイン)

Inherit

Inherited (データ アクセス)

IniPath

InitDir

Instancing

IntegralHeight

Interval

IsDirty (アドイン)

IsolateODBCTrans

Italic

ItemData

K

KeepLocal

KeyPreview

L

LargeChange

LastDLLError

LastModified

LastUpdated

LastUsedPath (アドイン)

LBound

Left

LeftCol

LegalCopyright

LegalTrademarks

LinkItem

LinkMode

LinkTimeout

LinkTopic

List

ListCount

ListField

ListIndex

Locked

LockEdits

LoginTimeout

LogMessages

lpOleObject

M

Major

MatchedWithList

MatchEntry

Max (コモン ダイアログ)

Max (スクロール バー)

MaxButton

MaxFileSize

MaxLength

MDIChild

MenuItems (アドイン)

Min (コモン ダイアログ)

Min (スクロール バー)

MinButton

Minor

MiscFlags

MouseIcon

MousePointer

MultiLine

MultiSelect

N

Name

Negotiate

NegotiateMenus

NegotiatePosition

NegotiateToolbars

NewEnum (アドイン)

NewIndex

NoMatch

Normal

Number (データ アクセス)

Number

NumberFormat

NumIndices (アドイン)

O

Object (OLE コンテナ)

Object

ObjectAcceptFormats

ObjectAcceptFormatsCount

ObjectGetFormats

ObjectGetFormatsCount

ObjectVerbFlags

ObjectVerbs

ObjectVerbsCount

ODBCTimeout

OLEDropAllowed

OLERequestPendingMsgText

OLERequestPendingMsgTitle

OLERequestPendingTimeout

OLEServerBusyMsgText

OLEServerBusyMsgTitle

OLEServerBusyRaiseError

OLEServerBusyTimeout

OLEType

OLETypeAllowed

Options

OrdinalPosition

Orientation

Owner

P

Page

PaperBin

PaperSize

Parent

Password

PasswordChar

PasteOK

Path

Pattern

PercentPosition

Permissions

Picture

PID

Port

PrevInstance

Primary

PrinterDefault

PrintQuality

ProductName

Properties (アドイン)

Public

Q

QueryTimeout

R

ReadOnly (データ アクセス)

ReadOnly

ReadOnlyMode (アドイン)

RecordCount

RecordsAffected

RecordSelectors

Recordset

RecordsetType

RecordSource

Replicable

ReplicaID

Required

Restartable

ReturnsRecords

Revision

Row

RowCount (DB グリッド)

RowDividerStyle

RowHeight

RowIsVisible

RowPos

Rows

RowSource

S

ScaleHeight

ScaleLeft

ScaleMode

ScaleTop

ScaleWidth

ScrollBars

SelBookmarks

SelCount

Selected

SelectedComponents (アドイン)

SelectedControlTemplates (アドイン)

SelectedItem

SelEndCol

SelEndRow

SelLength

SelStart

SelStartCol

SelStartRow

SelText

Shape

Shortcut

ShowInTaskbar (Windows 95)

Size (データ アクセス)

Size (Font オブジェクト)

SizeMode

SmallChange

Sort

Sorted

Source (データ アクセス)

Source

SourceDoc

SourceField

SourceItem

SourceTable

SourceTableName

SQL

StartMode

Stretch

StrikeThrough

Style

System

T

TabIndex

Table

TabStop

Tag

TaskVisible

Text

Title

Top

ToPage

TopIndex

TopRow

TrackDefault

Transactions

TwipsPerPixelX

TwipsPerPixelY

Type (データ アクセス)

Type (Picture オブジェクト)

U

UBound

Underline

Unique

Updatable

UpdateOptions

UseMnemonic

UserName

V

V1xNullBehavior

ValidateOnSet

ValidationRule

ValidationText

Value (アドイン)

Value (データ アクセス)

Value (DB グリッド)

Value

Verb

Version (アドイン)

Version

Visible

VisibleCols

VisibleCount

VisibleItems

VisibleRows

W

Weight

WhatsThisButton (Windows 95)

WhatsThisHelp (Windows 95)

WhatsThisHelpID (Windows 95)

Width

WindowList

WindowState

WordWrap

X

X1

X2

Y

Y1

Y2

Z

Zoom


関連項目

データ アクセス関連プロパティ一覧

イベント

関数

機能別キーワード一覧

メソッド

オブジェクト

プログラミング言語一覧

ステートメント

Visual Basic ヘルプ


機能別キーワード一覧


機能別キーワード一覧

関連項目

機能	内容

配列	配列の作成、定義、および使用

コンパイラ ディレクティブ	コンパイラの動作の制御

制御構造	プロシージャの流れの制御

変換	数値およびデータ型の変換

データ型	データ型およびバリアント型の内部処理形式

日付と時刻	日付および時間の変換および使用

ディレクトリとファイル	ファイル システムの制御およびファイルの処理

エラー	エラー処理とエラー値の取得

財務計算	財務計算の実行

入出力	入力の取得と出力の表示および印刷

演算	三角関数およびその他の数値演算

その他	他のアプリケーションの実行およびイベントの処理

演算子	比較演算子およびその他の演算子

文字列操作	文字列および文字列型データの操作

変数と定数	変数および定数の宣言および定義


関連項目

プログラミング言語一覧

Visual Basic ヘルプ


ステートメント


ステートメント

関連項目

A

AppActivate

B

Beep

BeginTrans

C

Call

ChDir

ChDrive

Close

CommitTrans

CompactDatabase

Const

D

Date

Declare

DefBool (Deftype ステートメント)

DefByte (Deftype ステートメント)

DefCur (Deftype ステートメント)

DefDate (Deftype ステートメント)

DefDbl (Deftype ステートメント)

DefInt (Deftype ステートメント)

DefLng (Deftype ステートメント)

DefObj (Deftype ステートメント)

DefSng (Deftype ステートメント)

DefStr (Deftype ステートメント)

DefVar (Deftype ステートメント)

DeleteSetting

Dim

Do...Loop

E

Each (For Each...Next ステートメント)

Else (If...Then...Else ステートメント)

End

Erase

Error

Exit

F

FileCopy

For Each...Next

For...Next

FreeLocks

Function

G

Get

GoSub...Return

GoTo

I

If...Then...Else

Input #

K

Kill

L

Let

Line Input #

Load

Lock...Unlock

Loop (Do...Loop ステートメント)

LSet

M

Mid

MkDir

N

Next (For Each...Next ステートメント)

Name

O

On Error

On GoSub

On Goto

Open

Option Base

Option Compare

Option Explicit

Option Private

P

Print #

Private

Property Get

Property Let

Property Set

Public

Put

R

Randomize

ReDim

RegisterDatabase

Rem

RepairDatabase

Reset

Resume

Return (GoSub...Return ステートメント)

RmDir

Rollback

RSet

S

SavePicture

SaveSetting

Seek

Select Case

SendKeys

Set

SetAttr

SetDataAccessOption

SetDefaultWorkspace

Static

Stop

Sub

T

Then (If...Then...Else ステートメント)

Time

Type

U

Unload

Unlock (Lock...Unlock ステートメント)

W

While...Wend

Width #

With

Write #


関連項目

イベント

関数

機能別キーワード一覧

メソッド

オブジェクト

プログラミング言語一覧

プロパティ

Visual Basic ヘルプ


キーボード ガイド


キーボード ガイド

関連項目

コード ウィンドウでのキー操作

デバッグ ウィンドウでのキー操作

フォーム ウィンドウでのキー操作

共通して使えるキー操作

メニュー エディタでのキー操作

プロジェクト ウィンドウでのキー操作

プロパティ ウィンドウでのキー操作

ツールボックスでのキー操作


関連項目

Visual Basic ヘルプ


共通して使えるキー操作

関連項目

次に示すキーの組み合わせは、Visual Basic のすべてのウィンドウ内で使えます。

キー	動作

F5	アプリケーションを実行します。

F8	コードを 1 度に 1 行ずつ実行します。

Shift + F8	プロシージャ呼び出しルーチンに入らずに、ステートメントを 1 度に 1 行ずつ実行します。

Ctrl + Break	Visual Basic のアプリケーションの実行を中止します。

Ctrl + G	デバッグ ウィンドウを表示します (中断モードのみ)。

Shift + F5	アプリケーションを中断した後、初めから再実行します。

次に示すキーの組み合わせは、Windows 上で実行されるすべてのアプリケーションで使えます。

キー	動作

F1	ヘルプが表示されます。

Alt + F6	現在のアクティブ ウィンドウと 1 つ前のアクティブ ウィンドウの切り替えを行います。

Alt + - (ハイフン)	カレント ウィンドウのコントロール メニューを開きます。

Alt + Space	アプリケーションのコントロール メニュー ボックスを開きます。

Alt または F10	コントロール メニュー ボックスを選択します。

Alt + F4	Visual Basic では、アクティブ ウィンドウを閉じます。開いているウィンドウがなければ、Visual Basic を終了します。

Ctrl + C	選択範囲をクリップボードにコピーします。

Ctrl + X	選択範囲を切り取ってクリップボードに入れます。

Ctrl + V	クリップボードの内容を貼り付けます。

Ctrl + Z	最後に行った編集作業を元に戻します。


関連項目

デバッグ ウィンドウでのキー操作


コード ウィンドウでのキー操作

関連項目

一般的な操作に使うキー

コード ウィンドウ内で使えるキーの組み合わせは次のとおりです。

キー	動作

F1	Function プロシージャ、ステートメント、メソッド、プロパティ、イベントといったトピックに関する、状況に応じたヘルプが表示されます。

F2	オブジェクト ブラウザを表示します。

F9	ブレークポイントの設定と解除を行います。

Ctrl + Shift + F9	すべてのブレークポイントを解除します。

F5	アプリケーションを実行します。(中断モードで実行中の場合は、実行を継続します。)

F8	1 度に 1 行ずつコードを実行します (シングル ステップ)。

Shift + F8	1 度にプロシージャを 1 つずつ実行します (プロシージャ ステップ)。

Ctrl + Break	Visual Basic のアプリケーションの実行を中止します。

Shift + F5	アプリケーションを初めから再実行します。

移動キー

コード ウィンドウ内での移動に使えるキーの組み合わせは次のとおりです。

キー	動作

Ctrl + F2	カーソル位置を [オブジェクト] ボックスに移動します。

Shift + F2	選択されているプロシージャの定義へ移動します。

Ctrl + ↓	次のプロシージャを表示します。

Ctrl + ↑	1 つ前のプロシージャを表示します。

PageDown	コード内のプロシージャの次ページに移動します。

PageUp	コード内のプロシージャの前ページに移動します。

Ctrl + Shift + F2	コード内で 1 つ前の位置に戻ります。

Ctrl + Home	モジュールの先頭に移動します。

Ctrl + End	モジュールの終端に移動します。

Ctrl + →	1 つ右の単語に移動します。

Ctrl + ←	1 つ左の単語に移動します。

End	行末に移動します。

Home	行の先頭に移動します。

Ctrl + PageDown	カレント プロシージャの終端に移動します。

Ctrl + PageUp	カレント プロシージャの先頭に移動します。

F6	コード ウィンドウのペイン間の切り替えを行います (ウィンドウ分割時)。

コード編集キー

コード ウィンドウでコードの編集に使えるキーの組み合わせは次のとおりです。

キー	動作

Ctrl + C	選択されているテキストをクリップボードにコピーします。

Ctrl + X	選択されているテキストを切り取ってクリップボードに入れます。

Del	選択されているテキストをクリップボードに入れずに削除します。

Ctrl + V	クリップボードの内容をカーソル位置に貼り付けます。

Ctrl + Z	カレント行で最後に行った編集作業を元に戻します。

Ctrl + N	カレント行の前に空白行を挿入します。

Ctrl + Y	カレント行を切り取ってクリップボードに入れます。

Ctrl + Del	カーソル位置の後ろの単語を削除します。

Ctrl + BackSpace	カーソル位置の前の単語を削除します。

F3	コードの終端方向へ向かってテキスト検索を繰り返します。テキストの検索中でなければ、[検索] ダイアログ ボックスが表示されます。

Shift + F3	コードの先頭方向へ向かってテキスト検索を繰り返します。テキストの検索中でなければ、[検索] ダイアログ ボックスが表示されます。

Shift + Tab	インデントを削除します。

メニュー コマンドのショートカット キー

コード ウィンドウ内でメニュー操作に使えるショートカット キーの組み合わせは次のとおりです。

キー	動作

Ctrl + D	ファイルを追加します。

Ctrl + S	ファイルを保存します。

Ctrl + A	ファイルを名前を付けて保存します。

Ctrl + P	印刷を行います。

Ctrl + F	検索を行います。

F3	下へ向かって次を検索します。

Shift + F3	上へ向かって次を検索します。

Ctrl + H	置換を行います。

Shift + F9	[インスタント ウォッチ] ダイアログ ボックスを開きます (中断モードのみ)。

Ctrl + W	ウォッチ式を編集します。

Ctrl + L	[呼び出し履歴] ダイアログ ボックスを開きます (中断モードのみ)。

Ctrl + G	デバッグ ウィンドウを開きます (中断モードのみ)。


関連項目

コード ウィンドウ

デバッグ ウィンドウ

[検索] コマンド ([編集] メニュー)


フォーム ウィンドウでのキー操作

関連項目

フォーム ウィンドウで使えるキーの組み合わせは次のとおりです。

キー	動作

Shift + Ctrl +英字	プロパティ ウィンドウのプロパティ リスト内のプロパティを選択します。

英字	プロパティ ウィンドウで選択されているプロパティに値を入力します。

F7	選択されているオブジェクトのコード ウィンドウを開きます。

Ctrl + C	選択されているコントロールをクリップボードにコピーします。

Ctrl + X	選択されているコントロールを切り取ってクリップボードに入れます。

Del	選択されているコントロールをクリップボードに入れずに削除します。

Ctrl + V	クリップボードの内容をフォームへ貼り付けます。

Ctrl + Z	コントロールの削除を取り消します。

Tab	タブ オーダーの順で前方へ向かってコントロール間を移動します。

Shift + Tab	タブ オーダーの順で後方へ向かってコントロール間を移動します。

Ctrl + クリック	コントロールの選択範囲への追加、および選択されているコントロールの選択の解除を行います。

ドラッグ	複数のコントロールを選択します。

Ctrl + ドラッグ	コントロールの選択範囲への追加、および選択されているコントロールの選択の解除を行います。

Ctrl + E	メニュー エディタを表示します (デザイン時のみ有効)。

F4	プロパティ ウィンドウを表示します (デザイン時のみ有効)。

Ctrl + J	前面へ移動します。 (デザイン時のみ有効で、重なり合っているコントロールに作用します。)

Ctrl + K	後ろへ移動します。 (デザイン時のみ有効で、重なり合っているコントロールに作用します。)

コントロールの選択をすべて解除するには、フォームをクリックしてください。コンテナの中のコントロールを選択するには、まずコンテナの選択を解除し、Ctrl + ドラッグを使ってコントロールを選択してください。


関連項目

コード ウィンドウ

フォーム ウィンドウ

メニュー エディタ

プロパティ ウィンドウ


デバッグ ウィンドウでのキー操作

関連項目

デバッグ ウィンドウのイミディエイト ペインで使えるキーの組み合わせは次のとおりです。

キー	動作

Enter	コードを 1 行実行します。

Ctrl + C	選択されているテキストをクリップボードにコピーします。

Ctrl + V	クリップボードの内容をカーソルの位置に貼り付けます。

Ctrl + X	選択されているテキストを切り取ってクリップボードに入れます。

Ctrl + L	[呼び出し履歴] ダイアログ ボックスを表示します (中断モードのみ)。

F5	アプリケーションの実行を継続します。

Shift + F5	アプリケーションを再実行します。

F8	1 度に 1 行ずつコードを実行します (シングル ステップ)。

Shift + F8	1 度にプロシージャを 1 つずつ実行します (プロシージャ ステップ)。

Del	選択されているテキストをクリップボードに入れずに削除します。

F2	オブジェクト ブラウザを表示します。

Ctrl + Enter	キャリッジ リターンを挿入します。

F6	デバッグ ウィンドウでイミディエイト ペインとウォッチ ペイン（表示されている場合）の間での切り替えを行います。

Shift + F2	プロシージャの定義を表示します。

デバッグ ウィンドウのウォッチ ペインで使えるキーの組み合わせは次のとおりです。

キー	動作

Enter	選択されているウォッチ式の [ウォッチ式の編集] ダイアログ ボックスを表示します。

F2	オブジェクト ブラウザを表示します。

F6	デバッグ ウィンドウでウォッチ ペインとイミディエイト ペインの間での切り替えを行います。


関連項目

デバッグ ウィンドウ


メニュー エディタでのキー操作

関連項目

メニュー エディタで使えるキーの組み合わせは次のとおりです。

キー	動作

Tab	ボックスおよびボタンを前方へ向かって順に移動します。

Shift + Tab	ボックスおよびボタンを後方へ向かって順に移動します。

Enter	メニュー項目を前方へ向かって順に移動します。

Alt + R	メニュー項目をメニュー階層の低い方のレベルへ向かって移動させます。

Alt + L	メニュー項目をメニュー階層の高い方のレベルへ向かって移動させます。

Alt + U	縦に並んだメニュー項目を上へ向かって移動させます。

Alt + B	縦に並んだメニュー項目を下へ向かって移動させます。

メニュー エディタで [ショートカット] ボックスがフォーカスを持つときに使えるキーの組み合わせは次のとおりです。

キー	動作

F4	リストを開いたり閉じたりします。

Alt + ↓	リストを開いたり閉じたりします。

Alt + ↑	リストを開いたり閉じたりします。

End	リスト内の最後の項目に移動します。

Home	リスト内の最初の項目に移動します。


関連項目

メニュー エディタ


プロパティ ウィンドウでのキー操作

関連項目

プロパティ ウィンドウでプロパティ リストがフォーカスを持つときに使えるキーの組み合わせは次のとおりです。

キー	動作

Shift + Tab	[オブジェクト] ボックスにフォーカスを切り替えます。

PageDown	プロパティ リストを下へ向かって移動します。

PageUp	プロパティ リストを上へ向かって移動します。

↓	各プロパティを下へ向かって移動します。

↑	各プロパティを上へ向かって移動します。

→	各プロパティを下へ向かって移動します。

←	各プロパティを上へ向かって移動します。

End	リスト内の最後のプロパティへ移動します。

Home	リスト内の最初のプロパティへ移動します。

Alt + F6	プロパティ ウィンドウからフォームへフォーカスを切り替えます。

英字	選択されているプロパティの設定を入力します。

Tab	挿入箇所をプロパティの設定ボックスへ移動します。

Ctrl + Shift + 英字	入力した英字文字で始まるリスト内の最初のプロパティに移動します。

ダブルクリック	列挙型プロパティの各設定に順に移るか、他のプロパティ型の設定ボックスにフォーカスを移動します。

プロパティ ウィンドウで設定ボックスがフォーカスを持つときに使えるキーの組み合わせは次のとおりです。

キー	動作

Ctrl + Z	カレント行で直前に行った編集を元に戻します。

Ctrl + C	選択されているテキストをクリップボードにコピーします。

Ctrl + X	選択されているテキストを切り取ってクリップボードに入れます。

Del	選択されているテキストをクリップボードに入れずに削除します。

Ctrl + V	クリップボードの内容をカーソルの位置に貼り付けます。

Enter	挿入箇所をプロパティ リストへ移動し、プロパティへの変更を完了します

Shift + Tab	フォーカスを[オブジェクト] ボックスへ移動します。

Tab	フォーカスをプロパティ リストへ移動します。

Esc	プロパティへの変更をキャンセルします。

プロパティ ウィンドウで、列挙型の値を入れるプロパティの設定ボックスがフォーカスを持つときに使えるキーの組み合わせは次のとおりです。

キー	動作

F4	設定ボックス リストを開いたり閉じたりします。

Alt + ↓	設定ボックス リストを開いたり閉じたりします。

Alt + ↑	設定ボックス リストを開いたり閉じたりします。

プロパティ ウィンドウで設定ボックスがフォーカスを持っていて、BackColor、ForeColor、FillColor、BorderColor などのプロパティを設定するときに使えるキーの組み合わせは次のとおりです。

キー	動作

Alt + ↓	カラー パレットを表示します。

Alt + ↑	カラー パレットを閉じます。

Del	カラー パレットをリセットします。

プロパティ ウィンドウで設定ボックスがフォーカスを持っていて、Icon プロパティや Picture プロパティを設定するときに使えるキーの組み合わせは次のとおりです。

キー	動作

Alt + ↓	[アイコンの読み込み] ダイアログ ボックスまたは [ピクチャの読み込み] ダイアログ ボックスを表示します。

Alt + ↑	[アイコンの読み込み] ダイアログ ボックスまたは [ピクチャの読み込み] ダイアログ ボックスを表示します。

Del	(なし) にリセットします。


関連項目

BackColor、ForeColor プロパティ

BorderColor プロパティ

カラー パレット

Icon プロパティ

FillColor プロパティ

Picture プロパティ

プロパティ ウィンドウ


プロジェクト ウィンドウでのキー操作

プロジェクト ウィンドウで使えるキーの組み合わせは次のとおりです。

キー	動作

Enter	リスト内で選択されているファイルを開きます。

Shift + Enter	選択されているファイルのコード ウィンドウを開きます。

F7	選択されているファイルのコード ウィンドウを開きます。

Home	リスト内の最初のファイルを選択します。

End	リスト内の最後のファイルを選択します。

Tab	リスト、[フォーム] ボタン、[コード] ボタン間を移動します。


ツールボックスでのキー操作

関連項目

ツールボックス内で使えるキーの組み合わせは次のとおりです。

キー	動作

Enter	選択されているコントロールをアクティブ フォームに配置します。

↓	1 つ下のツールを選択します。

↑	1 つ上のツールを選択します。

→	1 つ左のツールを選択します。

←	1 つ右のツールを選択します。

Tab	ツールボックス内を下へ向かって移動します。

Shift + Tab	ツールボックス内を上へ向かって移動します。

End	ツールボックス内の最後のツールを選択します。

Home	ポインタ ツールを選択します。


関連項目

コード ウィンドウ

プロジェクト ウィンドウ

ツールボックス


ﾌｧｲﾙ 'item' は不正です。ﾌｫｰﾑ ﾓｼﾞｭｰﾙ、標準ﾓｼﾞｭｰﾙ、ｸﾗｽ ﾓｼﾞｭｰﾙのみ [ﾌｧｲﾙの追加] ｺﾏﾝﾄﾞを使って追加することができます。ﾌﾟﾛｼﾞｪｸﾄにｺﾝﾄﾛ
ﾌｧｲﾙ 'item' は不正です。ﾌｫｰﾑ ﾓｼﾞｭｰﾙ、標準ﾓｼﾞｭｰﾙ、ｸﾗｽ ﾓｼﾞｭｰﾙのみ [ﾌｧｲﾙの追加] ｺﾏﾝﾄﾞを使って追加することができます。ﾌﾟﾛｼﾞｪｸﾄにｺﾝﾄﾛｰﾙや参照を追加するためには、[ﾂｰﾙ] ﾒﾆｭｰを使ってください。

[ファイルの追加] コマンドを使ってプロジェクトにロードできるのは、特定の形式のファイルだけです。カスタム コントロールをロードするには [ツール] - [カスタム コントロール] コマンドを使い、また、ライブラリへの参照を追加するには [ツール] - [参照設定] コマンドを使ってください。


修復不可能なｴﾗｰ: ﾌﾟﾛｼﾞｪｸﾄを作成することができません。Visual Basic を終了してください。

Visual Basic に回復不能なエラーが発生しました。Visual Basic を再起動して、プロジェクトのロードまたは作成をもう一度繰り返してください。回復不能なエラーが再び発生した場合は、システムをリセットしてから、やり直してください。


'Item' は Visual Basic 1.0 のﾌｫｰﾑです。Visual Basic 4.0 には読み込めません

Visual Basic Version 1.0 で作成されたフォームを Visual Basic Version 4.0 にロードすることはできません。Visual Basic Version 2.0 または Version 3.0 をお持ちの場合は、まず、そのフォームを Visual Basic Version 2.0 または Version 3.0 にロードし、テキスト形式で保存してから、Visual Basic Version 4.0 にロードすることができます。


'item' の Basic ｺｰﾄﾞは破損しているため読み込めません。

Visual Basic Version 2.0 または Version 3.0 でバイナリ形式で保存されたファイルが壊れている場合、そのファイルのコード部分を Visual Basic Version 4.0 にロードすることはできません。壊れているファイルが .FRM ファイルである場合、フォームそのものはロードできますが、コードをロードすることはできません。.BAS ファイルの場合は、ファイル全体がロードできなくなります。


ｼｽﾃﾑ情報を表示できません。

[Microsoft Visual Basic のバージョン情報] ダイアログ ボックスの [システム情報] ボタンを選択しましたが、システム情報を表示することができませんでした。このエラーは、メモリが不足している場合や、必要なファイルが壊れているか、または見つからない場合に発生します。


区分線をﾁｪｯｸしたり無効にしたり、ｼｮｰﾄｶｯﾄ ｷｰを設定することはできません。

このメッセージは、メニュー エディタでの作業中に、区分線として使われるメニュー項目に対して Checked プロパティを真 (True) に設定したり、Enabled プロパティを偽 (False) に設定したり、ショートカット キーを割り当てたりしようとした場合に表示されます。区分線として使われるメニュー項目では、これらのプロパティを設定することはできません。ただし、Visible プロパティを偽 (False) に設定することはできます。


ﾄｯﾌﾟ ﾚﾍﾞﾙ以外のﾒﾆｭｰに設定できるﾈｺﾞｼｴｰﾄ位置は、0 (なし) だけです。

このメッセージは、第 1 レベル以外のメニュー項目に対して NegotiatePosition プロパティを設定しようとした場合に表示されます。


ﾌﾟﾛｼﾞｪｸﾄ名 'item' が不正です。

このメッセージは、プロジェクトに無効な名前を割り当てようとした場合に表示されます。プロジェクトに名前を付けるときは、以下の規則に従う必要があります。

40 文字以内の長さであること。

予約語と同じ名前を使わないこと。

スペースや区切り文字を含まないこと。

各国対応文字や 2 バイト文字を使わないこと。


ﾌﾟﾛｼﾞｪｸﾄが大きすぎるため EXE ﾌｧｲﾙを作成できません。

16 ビット プロジェクトがオペレーティング システムで扱える .EXE ファイルの絶対サイズを超えました。プロジェクトのサイズを小さくするか、または、プロジェクトを分割する必要があります。.EXE ファイルの最大サイズは、プロジェクトごとに異なりますが、10MB を超える .EXE ファイルは作成できない可能性が高くなり、32MB がその上限となります。

なお、このエラーが発生するのは Visual Basic の 16 ビット版の場合だけです。


ﾊﾞｰｼﾞｮﾝ番号には 0 から 9999 までを指定してください。

このメッセージは、[EXE オプション] ダイアログ ボックスで .EXE ファイルのバージョン番号を指定するときに、[バージョン番号] グループ ボックスの [メジャー] ボックス、[マイナ] ボックス、または [リビジョン] ボックスに負の数や数字以外の文字を割り当てようとした場合に表示されます。0 ～ 9999 の範囲の数を使ってください。


ﾘｿｰｽ ﾌｧｲﾙは 1 つのみ利用できます。

このメッセージは、[ファイル] - [ファイルの追加] コマンドを選択してファイルをプロジェクトに追加するときに、.RES ファイルを 2 つ以上追加しようとした場合、または .VBP ファイルに複数の .RES ファイルが指定されている場合に表示されます。それぞれの Visual Basic プロジェクトで使用できる Windows リソース ファイルは 1 つだけです。


同じ型と名前をもつﾘｿｰｽが重複しています。

プロジェクトで使おうとしている Windows リソース ファイルに名前が重複する同じ種類のリソースが複数含まれているか、または Visual Basic によって自動的に生成されるリソースが含まれています。

他のリソース ファイルを使うか、または、現在のリソース ファイルで、リソースの名前が重複しないように修正してください。


ID 文字列が長すぎます: 'item'

OLE サーバーの ProgID は、39 文字以内の文字列でなければなりません。ProgID は、プロジェクト名とクラス モジュール名を連結して作成されます。


名前 'item' はﾌﾟﾛｸﾞﾗﾑ ID に不正な文字が含まれています。

OLE サーバーの ProgID 文字列に無効な文字が含まれています。ProgID は、プロジェクト名とクラス モジュール名を連結して作成されます。プロジェクト名とクラス モジュール名が個別の状態ではそれぞれ有効な名前であっても、ProgID 文字列にはプロジェクト名やクラス モジュール名とは異なる制約があるため、これらの 2 つの名前を連結した ProgID 文字列は無効になることがあります。


登録情報が大きすぎるため EXE ﾌｧｲﾙを作成できません。

このメッセージは、[ファイル] - [EXE ファイルの作成] コマンドを選択して OLE サーバーを構築しようとしたときに、OLE サーバーに定義したパブリック クラスが登録可能な情報量の上限を超えたために OLE サーバーの構築が実行できなかった場合に表示されます。

OLE サーバーの .EXE ファイルに格納できる登録情報の量は、以下の条件によって異なります。

これまでに作成された OLE サーバーのバージョンのうち、そのパブリック クラスが上位互換性を有するバージョンの数。

クラスの ProgID の長さ。

クラス モジュールの説明テキストの長さ。


OLE ｻｰﾊﾞｰはｵﾌﾞｼﾞｪｸﾄを作成できません。

このメッセージは、OLE サーバーやそのインスタンスが CreateObject 関数で作成できなかった場合、または、[ファイル] - [EXE ファイルの作成] コマンドを選択して OLE サーバーを構築しようとしたときにファイルを作成できなかった場合に表示されます。


ｸﾗｽ 'item' の Public ﾌﾟﾛﾊﾟﾃｨは True に設定できません。ﾃﾞｻﾞｲﾝ環境でこの機能を利用するにはﾗｲｾﾝｽが必要です。

パブリック クラス モジュール (現在のプロジェクト以外からもアクセスできる OLE サーバー) は、Visual Basic Version 4.0 の Professional Edition でのみ作成できます。Standard Edition では作成できません。


ﾌｧｲﾙ 'item' は、OLE ｻｰﾊﾞｰを作成するために必要な情報を含んでいません。

このメッセージは、Visual Basic で作成されたパブリック クラス モジュールを含む .EXE ファイル以外のファイル名を [プロジェクトの設定] ダイアログ ボックスの [互換 OLE サーバー] ボックスに指定した場合に表示されます。


このﾌﾟﾛｼﾞｪｸﾄのすべての item1 ｵﾌﾞｼﾞｪｸﾄを item2 ｵﾌﾞｼﾞｪｸﾄにｱｯﾌﾟｸﾞﾚｰﾄﾞしますか?

このメッセージは、指定したオブジェクトのクラスが変更されている場合に表示されます。[はい] ボタンを選択すると、カレント プロジェクトにおいて、指定したオブジェクトのすべてのインスタンスがクラスの変更内容を反映するようにアップグレードされます。[いいえ] ボタンを選択すると、インスタンスのアップグレードは行われません。


この新しくｱｯﾌﾟｸﾞﾚｰﾄﾞされた item1 ｵﾌﾞｼﾞｪｸﾄのｸﾗｽ名は item2 です。これは以前のｸﾗｽ名 item3 とは異なっているため、ｺｰﾄﾞ中のこのｵﾌﾞｼﾞｪｸ
この新しくｱｯﾌﾟｸﾞﾚｰﾄﾞされた item1 ｵﾌﾞｼﾞｪｸﾄのｸﾗｽ名は item2 です。これは以前のｸﾗｽ名 item3 とは異なっているため、ｺｰﾄﾞ中のこのｵﾌﾞｼﾞｪｸﾄの宣言を変更してください。

このメッセージは、アップグレードしたオブジェクトのクラス名が既に変更されている場合に表示されます。このオブジェクトの宣言がコード内に含まれている場合は、新しいクラス名を参照するようにそれらの宣言を変更する必要があります。


ﾃﾞｰﾀ ｱｸｾｽ ﾗｲﾌﾞﾗﾘがありません。参照を設定できません。

データ (Data) コントロールから Microsoft DAO Version 2.5 または Version 3.0 の オブジェクト ライブラリへの参照を作成できませんでした。すべてのレジストリのキーが有効であることを確認し、無効なキーがある場合は、Visual Basic セットアップを再度実行してください。


OLE ｵﾌﾞｼﾞｪｸﾄが編集のためにｱｸﾃｨﾌﾞにされている間は、Windows を終了できません。

このメッセージは、OLE オブジェクトがアクティブな状態で Windows を終了しようとした場合に表示されます。OLE オブジェクトをアクティブでない状態にしてから Windows を終了してください。


ﾊﾞｲﾅﾘ ﾄﾗﾝｽﾚｰﾀ (VBTRANS.EXE) が実行できませんでした。Basic ﾓｼﾞｭｰﾙ item は読み込まれていません。

Visual Basicでは、バイナリ形式の .BAS ファイルは VBTRANS.EXE で ASCII 形式に変換してからロードされますが、VBTRANS.EXE の起動に失敗すると、このメッセージが表示されます。VBTRANS.EXE ファイルが壊れておらず、VB.EXE と同じパスにあることを確認してください。


ﾊﾞｲﾅﾘ ﾄﾗﾝｽﾚｰﾀ (VBTRANS.EXE) が実行できませんでした。ﾌｫｰﾑ 'item' のｺｰﾄﾞ部分が読み込まれていません。

Visual Basicでは、バイナリ形式の .FRM ファイルは VBTRANS.EXE で ASCII 形式に変換してからロードされますが、VBTRANS.EXE の起動に失敗すると、このメッセージが表示されます。この場合、フォーム ファイルのコード部をロードすることはできません。VBTRANS.EXE ファイルが壊れておらず、VB.EXE と同じパスにあることを確認してください。


他のｱﾌﾟﾘｹｰｼｮﾝがﾌﾟﾛｸﾞﾗﾑ中のｻｰﾊﾞｰを利用しています。このﾌﾟﾛｸﾞﾗﾑを終了するとｴﾗｰが発生することがあります。ﾌﾟﾛｸﾞﾗﾑを終了しますか?

このメッセージは、実行中の Visual Basic プログラムに含まれるOLE オートメーション オブジェクトが 1 つ以上の他のアプリケーションによってアクセスされている場合に表示されます。この状態でプログラムを終了すると、OLE オートメーション オブジェクトにアクセスしているアプリケーションの側でエラーが発生する可能性があります。[はい] ボタンを選択するとプログラムが終了し、[いいえ] ボタンを選択するとプログラムが継続して実行されます。


'item' 中のﾌﾟﾛﾊﾟﾃｨが不正です。いくつかのﾌﾟﾛﾊﾟﾃｨが正しく設定されていない可能性があります。

指定した .VBP ファイルに無効なプロパティ設定が 1 つ以上含まれています。プロジェクトの .VBP ファイルに関してのみこのエラーが発生します。


'Item' を登録できませんでした。

指定したファイルをレジストリに登録できませんでした。このエラーは、Visual Basic 開発環境の構成要素 (たとえば OC25.DLL、VB.OLB、DAO2516.DLL など) で使用されるタイプ ライブラリに関連するエラーで、レジストリ内で指定したファイルのエントリ部分が壊れている場合や、DDL そのものが見つからないか、または壊れている場合に発生します。


ｱﾄﾞｲﾝ 'item' は読み込めません。利用可能なｱﾄﾞｲﾝのﾘｽﾄから削除しますか?

このメッセージは、ロードできないアドインを [アドイン マネージャ] ダイアログ ボックスの [利用可能なアドイン] ボックスから選択した場合に表示されます。[はい] ボタンを選択すると、そのアドインがリストから削除されます。[いいえ] ボタンを選択すると、アドインはそのままリストに残ります。[はい] ボタンと [いいえ] ボタンのどちらを選択しても、そのアドインをロードすることはできません。


Visual Basic は、ｱﾄﾞｲﾝ 'item' を読み込めません。ｼｽﾃﾑ登録ﾃﾞｰﾀﾍﾞｰｽに正しく登録されていない可能性があります。すべてのｱﾄﾞｲﾝが正しくｲ
Visual Basic は、ｱﾄﾞｲﾝ 'item' を読み込めません。ｼｽﾃﾑ登録ﾃﾞｰﾀﾍﾞｰｽに正しく登録されていない可能性があります。すべてのｱﾄﾞｲﾝが正しくｲﾝｽﾄｰﾙされていることを確認してください。

このメッセージは、正しく登録されていないアドインやレジストリから削除されたアドインを [アドイン マネージャ] ダイアログ ボックスの [利用可能なアドイン] ボックスから選択した場合に表示されます。そのアドインをロードすることはできません。


ﾌｧｲﾙ 'item' のﾌｫｰﾑ名がﾓｼﾞｭｰﾙ名と異なっています。Visual Basic はﾌｫｰﾑ名を使います。

ASCII ファイル内において、Begin VB.Form ステートメントで指定したフォーム名 (Begin VB.Form Form1 なら Form1) と Attribute VB.Name ステートメントで指定したモジュール名の間で競合が発生しています。競合を解決するため、Begin VB.Form ステートメントで指定したフォーム名が使用されます。

通常、ASCII 形式のフォーム ファイルを編集した場合のみこのエラーが発生します。


ﾌｫｰﾑは、ﾊﾟﾌﾞﾘｯｸまたはｱｸﾃｨﾌﾞ可能なｵﾌﾞｼﾞｪｸﾄとして使用することはできません。ﾌｫｰﾑ item の属性を False に戻してください。

ASCII 形式のフォーム ファイルで、VB_Creatable または VB_Exposed のそれぞれの属性を真 (True) に設定できるのは、クラス モジュールだけです。フォームに対してこの設定を行っても、それぞれの設定は偽 (False) にリセットされます。

通常、ASCII 形式のフォーム ファイルを編集した場合のみこのエラーが発生します。


'item' ﾗｲﾌﾞﾗﾘによって提供されているｺﾝﾄﾛｰﾙにはｱｯﾌﾟｸﾞﾚｰﾄﾞできません。[ｶｽﾀﾑ ｺﾝﾄﾛｰﾙのｱｯﾌﾟｸﾞﾚｰﾄﾞ] ﾀﾞｲｱﾛｸﾞ ﾎﾞｯｸｽの利用可能ﾘｽﾄから削除
'item' ﾗｲﾌﾞﾗﾘによって提供されているｺﾝﾄﾛｰﾙにはｱｯﾌﾟｸﾞﾚｰﾄﾞできません。[ｶｽﾀﾑ ｺﾝﾄﾛｰﾙのｱｯﾌﾟｸﾞﾚｰﾄﾞ] ﾀﾞｲｱﾛｸﾞ ﾎﾞｯｸｽの利用可能ﾘｽﾄから削除しますか?

1 つまたは複数の VBX カスタム コントロールを OLE カスタム コントロールに変換できませんでした。[はい] ボタンを選択すると、ライブラリ参照がリストから削除され、指定された VBX カスタム コントロールはアップグレードされなくなります。[いいえ] ボタンを選択すると、ライブラリはそのままリストに残ります。


'Item'  はｸﾗｽ名です。

指定した識別子は、コントロールやフォームのクラス名として既に使われています。別の名前を使ってください。


同名のﾓｼﾞｭｰﾙが存在します。

2 つのモジュールに同じ名前を付けることはできません。モジュールを別の名前で保存してください。


ﾓｼﾞｭｰﾙを削除できません。初期化してください。

このモジュールは、デザイン時の状態に戻らなければ削除できません。


WIN87EM.DLL のﾊﾞｰｼﾞｮﾝが一致しません。終了します。

Visual Basic と互換性のないバージョンの WIN87EM.DLL がシステムにセットアップされています。このファイルの最新バージョンをシステムにセットアップしてください。


ﾒﾓﾘが足りません。終了します。

メモリ不足のため Visual Basic を起動できません。他のアプリケーションを終了してから、Visual Basic を起動してください。


ﾒﾓﾘ不足のためﾌｧｲﾙの読み込みができません。

メモリ不足のためファイルを Visual Basic にロードできません。他のアプリケーションを終了してから、ファイルをロードしてください。


Stop ｽﾃｰﾄﾒﾝﾄで中断しました。

プログラム内に記述された Stop ステートメントに従ってプログラムの実行を中断しました。


予期せぬｴﾗｰが発生しました。終了します。

予期しないエラーが発生したため、Visual Basic の実行を継続できなくなりました。ハードウェアに問題があるか、または、システム内の他のソフトウェアが悪影響を及ぼしている可能性があります。


ﾗﾝﾀｲﾑ DLL のﾊﾞｰｼﾞｮﾝが一致しません。

VBRUN400.DLL が見つからないか、または、カスタム コントロールの VBX ファイルのいずれかのバージョンが正しくありません。これらのファイルのそれぞれ最新バージョンを \SYSTEM にセットアップしてください。


ｺﾋﾟｰできません。(Error 31009)

Action プロパティを 4 に設定してオブジェクトを Clipboard オブジェクトにコピーしようとしましたが、オブジェクトが壊れているか、または有効なオブジェクトではないため、コピーできませんでした。


ｸﾘｯﾌﾟﾎﾞｰﾄﾞを開けません。(Error 31003)

Action プロパティを 4 に設定してオブジェクトをコピーしようとしたか、または、Action プロパティを 5 に設定してオブジェクトを貼り付けようとしましたが、Clipboard オブジェクトは現在利用できません。Clipboard オブジェクトを開いているアプリケーションを見つけて、Clipboard オブジェクトを閉じてください。


貼り付けられません。(Error 31007)

関連項目

Clipboard オブジェクトには、有効な OLE オブジェクトが格納されていません。

このエラーは、OLE コンテナ (OLE) コントロールから Clipboard オブジェクトにコピーした OLE オブジェクトを同じ OLE コンテナ コントロールに貼り付けようとした場合にも発生します。

Clipboard オブジェクトからオブジェクトを貼り付けることが可能な場合は、PasteOK プロパティが真 (True) を返します。

なお、Action プロパティを 4 に設定して OLE オブジェクトを Clipboard オブジェクトにコピーした後で、Action プロパティを 10 に設定してそのオブジェクトを削除すると、そのオブジェクトは Clipboard オブジェクトからも削除されます。


関連項目

PasteOK プロパティ


ｸﾗｽが設定されていません。(Error 31018)

関連項目

SourceDoc プロパティにソース ドキュメントを指定しないで Action プロパティを 0 に設定した場合、Class プロパティにはシステム上で利用可能なクラス名を指定する必要があります。

デザイン時に利用可能なクラス名のリストを表示するには、OLE コンテナ (OLE) コントロールをマウスの右ボタンでクリックしてから、[オブジェクトの挿入] コマンドを選択してください。


関連項目

Class プロパティ

SourceDoc プロパティ


ﾀﾞｲｱﾛｸﾞが使用中です。(Error 31029)

OLE (Object Linking and Embedding) 用のダイアログ ボックスとして [オブジェクトの挿入] ダイアログ ボックスと [形式を選択して貼り付け] ダイアログ ボックスの 2 つがありますが、この両方のダイアログ ボックスを同時に表示することはできません。


ﾌｧｲﾙの読み込み中にｴﾗｰが発生しました。(Error 31037)

関連項目

Action プロパティを 12 に設定してファイルからオブジェクトを読み込もうとしましたが、エラーが発生しました。以下のような原因が考えられます。

FileNumber プロパティの値が無効です。

ファイルがバイナリ モード (Binary) で開かれていません。

オブジェクトがファイルに正しく保存されていません。つまり、Action プロパティが 11 に設定されていません。

ファイルが壊れています。

ファイルの位置が有効な OLE オブジェクトの先頭位置に一致していません。


関連項目

Action プロパティ (OLE コンテナ)

FileNumber プロパティ


ﾌｧｲﾙへの書き込み中にｴﾗｰが発生しました。(Error 31036)

関連項目

Action プロパティを 11 または 18 に設定してオブジェクトをファイルに書き込もうとしましたが、書き込みを行うことができません。以下のような原因が考えられます。

FileNumber プロパティの値が無効です。

ファイルがバイナリ モード (Binary) で開かれていません。

ディスクの空き容量が不足しています。


関連項目

Action プロパティ (OLE コンテナ)

FileNumber プロパティ


ｺﾏﾝﾄﾞが不正です。(Error 31021)

関連項目

Action プロパティに無効な値が設定されています。

以下に示す値は、現在のバージョンの OLE コンテナ (OLE) コントロールでは無効です。

2

3

8

13

16


関連項目

Action プロパティ (OLE コンテナ)


ｸﾘｯﾌﾟﾎﾞｰﾄﾞの形式が不正です。(Error 31035)

関連項目

OleTypeAllowed プロパティが Clipboard オブジェクト上のオブジェクトの種類と一致しません。


関連項目

OLETypeAllowed プロパティ


ﾌｫｰﾏｯﾄが不正です。(Error 31017)

関連項目

このエラーが発生するのは、Data プロパティや DataText プロパティでデータの設定または取得を行うときに、そのデータの形式が無効であるか、オブジェクトでサポートされていない場合です。

OLE オブジェクトに対してどのデータ形式が有効であるかを判別するには、ObjectAcceptFormats、ObjectAcceptFormatsCount、ObjectGetFormats、および ObjectGetFormatsCount の各プロパティを使ってください。


関連項目

Data プロパティ

DataText プロパティ

ObjectAcceptFormats プロパティ

ObjectAcceptFormatsCount プロパティ

ObjectGetFormats プロパティ

ObjectGetFormatsCount プロパティ


ｸﾗｽが不正もしくは未知のｸﾗｽです。(Error 31023)

関連項目

SourceDoc プロパティの指定を省略している場合、有効な Class プロパティを指定しなければ、このエラーが発生します。

デザイン時に利用可能なクラス名のリストを表示するには、OLE コンテナ (OLE) コントロールをマウスの右ボタンでクリックしてから、[オブジェクトの挿入] コマンドを選択してください。

一部のクラス名では大文字と小文字が区別されるので、実行時に Class プロパティを設定する場合には特に注意が必要です。


関連項目

Class プロパティ

SourceDoc プロパティ


ﾌﾟﾛﾊﾟﾃｨの値が不正です。(Error 31008)

プロパティに無効な値を代入しようとすると、このエラーが発生します。

このエラーは、複数のプロパティを設定する必要があるアクションを実行するときに、いずれかのプロパティに無効な値が設定されている場合にも発生します。


ﾘﾝｸには不正なｿｰｽです。(Error 31031)

関連項目

Action プロパティを 1 に設定してリンク オブジェクトを作成する場合に、SourceDoc プロパティに指定したファイルが見つからなければ、このエラーが発生します。


関連項目

SourceDoc プロパティ


OLE 動詞のｲﾝﾃﾞｯｸｽが不正です。(Error 31034)

関連項目

Action プロパティを 7 に設定してオブジェクトをアクティブにする場合に、Verb プロパティに無効な値が設定されていると、このエラーが発生します。

オブジェクトでサポートされている OLE 動詞のリストを取得するには、ObjectVerbs プロパティと ObjectVerbsCount プロパティを使ってください。


関連項目

ObjectVerbs プロパティ

ObjectVerbsCount プロパティ

Verb プロパティ


ｿｰｽ名が長すぎます。(Error 31026)

関連項目

SourceDoc プロパティに指定した文字列と SourceItem プロパティに指定した文字列の文字数の合計が 256 文字を超えています。


関連項目

SourceDoc プロパティ

SourceItem プロパティ


ｵﾌﾞｼﾞｪｸﾄがありません。(Error 31004)

アクションの対象として指定したオブジェクトは存在しません。


ｵﾌﾞｼﾞｪｸﾄが実行されていません。(Error 31028)

関連項目

以下に示す各アクションをオブジェクトに対して実行できるのは、そのオブジェクトの作成元のアプリケーションが実行されているときだけです。

Action プロパティを 4 に設定してオブジェクトを Clipboard オブジェクトにコピーする。

Data プロパティを設定するか、または読み取る。

DataText プロパティを設定するか、または読み取る。

ObjectAcceptFormats プロパティを読み取る。

ObjectAcceptFormatsCount プロパティを読み取る。

ObjectGetFormats プロパティを読み取る。

ObjectGetFormatsCount プロパティを読み取る。

オブジェクトの作成元のアプリケーションが実行されているかどうかを判別するには、AppIsRunning プロパティを使ってください。

存在するオブジェクトであれば、Action プロパティを 7 (Activate) に設定してアクティブにすることができます。オブジェクトをアクティブにすると、作成元のアプリケーションが呼び出されます。Verb プロパティを最初に -3 に設定しておくと、作成元のアプリケーションは表示されません。


関連項目

AppIsRunning プロパティ

Verb プロパティ


ｿｰｽ ﾄﾞｷｭﾒﾝﾄが設定されていません。(Error 31019)

関連項目

リンク オブジェクトを作成する場合や、Action プロパティを 1 に設定してファイルからオブジェクトを作成する場合は、SourceDoc プロパティに有効なファイル名を指定する必要があります。

デザイン時には、プロパティ ウィンドウで SourceDoc プロパティを選択してから、設定ボックスの [...] ボタンをクリックすると、ディスク上に存在するファイルを参照して有効なファイル名を選択することができます。


関連項目

SourceDoc プロパティ


このｺﾝﾄﾛｰﾙは Visual Basic 3.0 以降のﾊﾞｰｼﾞｮﾝでのみ利用可能です。(Error 31038)

OLE コンテナ (OLE) コントロールは、Visual Basic Version 1.0 および Version 2.0 とは互換性がありません。


ｿｰｽ ﾄﾞｷｭﾒﾝﾄに接続できません。 (Error 31039)

関連項目

埋め込みオブジェクトを作成する場合に、SourceDoc プロパティに指定したファイルが有効なファイルでなければ、このエラーが発生します。


関連項目

SourceDoc プロパティ


ｵﾌﾞｼﾞｪｸﾄをｱｸﾃｨﾌﾞにできません。(Error 31027)

関連項目

オブジェクトのソース ドキュメントがロードできないか、または、オブジェクトの作成元のアプリケーションが利用できません。

このエラーが発生するのは、Action プロパティを 7 に設定してリンク オブジェクトをアクティブにするときに、SourceDoc プロパティに指定したファイルが既に削除されているか、存在しない場合です。

このエラーは、Action プロパティを 7 に設定してオブジェクトをアクティブにするときに、Verb プロパティに指定したアクションが無効である場合にも発生します。オブジェクトの作成元アプリケーションによっては、そのアプリケーションがどういう状態にあるかに応じて異なる動詞がサポートされることがあります。ObjectVerbs プロパティが返すリストには、アプリケーションでサポートされているすべての OLE 動詞が示されますが、そのアプリケーションの現在の状態によっては、一部の OLE 動詞が無効になる可能性があります。


関連項目

ObjectVerbs プロパティ

SourceDoc プロパティ

Verb プロパティ


ｵﾌﾞｼﾞｪｸﾄを閉じることができません。(Error 31006)

このオブジェクトは、Action プロパティを 10 に設定しても閉じることができない状態にあります。


埋め込みｵﾌﾞｼﾞｪｸﾄが作成できません。(Error 31032)

関連項目

オブジェクトの作成元のアプリケーションでは、SourceDoc プロパティに指定されたとおりにオブジェクトを作成することができません。

このエラーが発生するのは、たとえば、表計算のワークシート オブジェクトを埋め込もうとしたときに、SourceDoc プロパティに指定したワークシートが大きすぎて表計算アプリケーションによるロードが行えない場合などです。


関連項目

SourceDoc プロパティ


ﾘﾝｸを作成できません。 (Error 31024)

関連項目

オブジェクトの作成元のアプリケーションでは、SourceDoc プロパティおよび SourceItem プロパティに指定されたとおりにリンク オブジェクトを作成することができません。

このエラーが発生するのは、たとえば、表計算のワークシート オブジェクトをリンクしようとしたときに、SourceDoc プロパティに指定したワークシートが大きすぎて表計算アプリケーションによるロードが行えない場合などです。


関連項目

SourceDoc プロパティ

SourceItem プロパティ


ﾘﾝｸ ｿｰｽ名を取得できません。(Error 31033)

このエラーは、作成しようとしているオブジェクトのソース ドキュメントの名前が OLE コンテナ (OLE) コントロール側で判別できない場合に発生します。

たとえば、Action プロパティを 5 に設定してリンク オブジェクトを Clipboard オブジェクトから貼り付ける場合、OLE コンテナ コントロールでは、Clipboard オブジェクトから取得した情報に基づいてソース ドキュメント (リンク先のドキュメント) の名前を判別する必要があります。このとき、ソース ドキュメントの名前が OLE コンテナ コントロール側で判別できなければ、このエラーが発生します。


OLE を初期化できません。(Error 31022)

OLE の初期化を行うことができません。現在の OLE ファイルがすべて Windows ディレクトリの \SYSTEM ディレクトリに格納されていること、および、これらのファイルがシステム上の他のディレクトリにコピーされていないことを確認してください。なお、OLE は、Microsoft Windows Version 3.1 以降でのみ動作します。


通常使うﾌﾟﾘﾝﾀが設定されていません。(Error 28663)

Printers コレクションを使って、プリンタが組み込まれているかどうか確認してください。プリンタが組み込まれている場合は、Printers コレクション内のプリンタのいずれかに Printer オブジェクトを設定し、通常使うプリンタを定義します。


ﾒﾓﾘ不足のため、ﾘｽﾄ ﾎﾞｯｸｽのｻﾌﾞｸﾗｽ化ができませんでした。(Error 20478)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果から原因はわかりません。


[ｷｬﾝｾﾙ] ﾎﾞﾀﾝが選択されました。(Error 32755)

このエラーは、CancelError プロパティを真 (True) に設定していて、ユーザーがダイアログ ボックスの [キャンセル] ボタンをクリックしたときに発生します。このエラーは、[ファイルを開く] ダイアログ ボックスで、ファイルを開く代わりにカレント プロシージャを抜けたい場合など、[キャンセル] ボタンが選択されたときに別のコードを実行したい場合に使います。


ﾌﾟﾛｼｰｼﾞｬのｱﾄﾞﾚｽを判別できませんでした。他の DLL を選択してください。(Error 32753)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


選択された DLL を読み込むことはできませんでした。(Error 32754)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


ﾍﾙﾌﾟの呼び出しに失敗しました。Help ﾌﾟﾛﾊﾟﾃｨをﾁｪｯｸしてください。(Error 32751)

HelpContextID プロパティと HelpFile プロパティの設定が正しいかどうか確認してください。


ﾌｧｲﾙ名が不正です。(Error 20477)

指定されたファイルは存在しません。または、ファイル名に不正な文字が含まれています。


要求されたﾘｿｰｽの読み込みに失敗しました。(Error 28670)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


ﾒﾓﾘ不足のため、ﾀﾞｲｱﾛｸﾞ ﾎﾞｯｸｽを表示できません。(Error 32752)

このエラーは、メモリが足りない場合に発生します。システム メモリやシステム リソースが十分あるかどうか確認してください。


ﾌｫﾝﾄがありません。(Error 24574)

[フォントの指定] ダイアログ ボックスを表示する場合、事前に次のフラグを設定しておく必要があります。

ScreenFonts

PrinterFonts

Both


ﾌﾟﾘﾝﾀ ﾄﾞﾗｲﾊﾞが見つかりません。(Error 28664)

システムにプリンタ ドライバが組み込まれていません。あるいは、プリンタ ドライバが見つかりません。


ｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ｺﾝﾄﾛｰﾙの初期化に失敗しました。(Error 32765)

このエラーは、メモリが足りない場合にしばしば発生します。


指定されたﾘｿｰｽは見つかりませんでした。これは OCX のｴﾗｰﾒｯｾｰｼﾞの中にあります。(Error 32761)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


指定されたﾘｿｰｽは見つかりませんでした。(Error 32760)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


指定された文字列の読み込みに失敗しました。(Error 32762)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


指定されたﾘｿｰｽをﾛｯｸできませんでした。(Error 32759)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


ﾒﾓﾘ不足のため、ﾀﾞｲｱﾛｸﾞ ﾎﾞｯｸｽを表示できません。(Error 28669)

このエラーは、コモン ダイアログ (CommonDialog) コントロールから WIN.INI の情報が読めなかった場合に発生します。たとえば、ポートを表す WIN.INI のエントリで、“LPT1”が“LDT1”になっている場合にこのエラーが発生します。


内部ﾃﾞｰﾀ構造体用のﾒﾓﾘを割り当てることはできませんでした。(Error 32758)

このエラーは、メモリが足りない場合に発生します。


ﾊﾝﾄﾞﾙに関連するﾒﾓﾘをﾛｯｸすることはできませんでした。(Error 32757)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


DEVMODE および DEVNAMES ﾃﾞｰﾀ構造体のﾃﾞｰﾀは、2 つの異なるﾌﾟﾘﾝﾀについて記述しています。(Error 28662)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


ｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞに ENABLEHOOK ﾌﾗｸﾞがｾｯﾄされましたが、ｱﾌﾟﾘｹｰｼｮﾝは対応するﾌｯｸ関数へのﾎﾟｲﾝﾀを設定できませんでし
ｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞに ENABLEHOOK ﾌﾗｸﾞがｾｯﾄされましたが、ｱﾌﾟﾘｹｰｼｮﾝは対応するﾌｯｸ関数へのﾎﾟｲﾝﾀを設定できませんでした。(Error 32756)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


ｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞで ENABLETEMPLATE ﾌﾗｸﾞがｾｯﾄされましたが、ｱﾌﾟﾘｹｰｼｮﾝは正しいｲﾝｽﾀﾝｽ ﾊﾝﾄﾞﾙをｺﾝﾄﾛｰﾙに渡せませんで
ｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞで ENABLETEMPLATE ﾌﾗｸﾞがｾｯﾄされましたが、ｱﾌﾟﾘｹｰｼｮﾝは正しいｲﾝｽﾀﾝｽ ﾊﾝﾄﾞﾙをｺﾝﾄﾛｰﾙに渡せませんでした。(Error 32763)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


ｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞに ENABLETEMPLATE ﾌﾗｸﾞがｾｯﾄされましたが、ｱﾌﾟﾘｹｰｼｮﾝは正しいﾀﾞｲｱﾛｸﾞ ﾃﾝﾌﾟﾚｰﾄをｺﾝﾄﾛｰﾙに渡せません
ｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞに ENABLETEMPLATE ﾌﾗｸﾞがｾｯﾄされましたが、ｱﾌﾟﾘｹｰｼｮﾝは正しいﾀﾞｲｱﾛｸﾞ ﾃﾝﾌﾟﾚｰﾄをｺﾝﾄﾛｰﾙに渡せませんでした。

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


FileName ﾊﾞｯﾌｧは、選択されたﾌｧｲﾙ名を保持するには小さすぎます。(Error 20476)

このエラーは、MaxFileSize プロパティの値が小さすぎ、選択されたファイル名を保持するためのメモリ空間を割り当てることができない場合に発生します。このエラーが発生した場合は、MaxFileSize プロパティの設定値を増やしてください。


対応するｺﾓﾝ ﾀﾞｲｱﾛｸﾞ ﾃﾞｰﾀ構造体の lStructSize ﾒﾝﾊﾞが不正です。(Error 32766)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


PRINTDLG ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞで PD_RETURNDEFAULT ﾌﾗｸﾞがｾｯﾄされましたが、hDevMode または hDevNames ﾌｨｰﾙﾄﾞが 0 以外の値に設定さ
PRINTDLG ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞで PD_RETURNDEFAULT ﾌﾗｸﾞがｾｯﾄされましたが、hDevMode または hDevNames ﾌｨｰﾙﾄﾞが 0 以外の値に設定されています。(Error 28671)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


PRINTDLG ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞで PD_RETURNDEFAULT ﾌﾗｸﾞがｾｯﾄされましたが、hDevMode または hDevNames ﾌｨｰﾙﾄﾞが 0 以外の値に設定さ
PRINTDLG ﾃﾞｰﾀ構造体の Flags ﾒﾝﾊﾞで PD_RETURNDEFAULT ﾌﾗｸﾞがｾｯﾄされましたが、hDevMode または hDevNames ﾌｨｰﾙﾄﾞが 0 以外の値に設定されています。(Error 28668)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


初期化で、PrintDlg 関数の実行に失敗しました。(Error 28665)

このエラーは、通常、メモリが足りない場合に発生します。


PrintDlg 関数は指定されたﾌﾟﾘﾝﾀのﾃﾞﾊﾞｲｽ ﾄﾞﾗｲﾊﾞの読み込みに失敗しました。(Error 28667)

このエラーは、プリンタ ドライバに問題がある場合やシステム メモリが壊れている場合に発生します。

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


PrintDlg 関数が情報ｺﾝﾃｷｽﾄを作成しようとしたときにｴﾗｰが発生しました。(Error 28661)

使用可能なシステム リソースが少なすぎます。


ﾌﾟﾘﾝﾀのﾃﾞﾊﾞｲｽ ﾄﾞﾗｲﾊﾞで DEVMODE ﾃﾞｰﾀ構造体の初期化に失敗しました。(Error 28666)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。このエラーは、Version 3.0 以降の Windows 用のプリンタ ドライバにのみ適用されます。


WIN.INI ﾌｧｲﾙの [DEVICE] ｾｸｼｮﾝで、必要なﾌﾟﾘﾝﾀについてのｴﾝﾄﾘがありません。(Error 28660)

コモン ダイアログ (CommonDialog) コントロールは、オペレーティング システムで提供されている専用の関数を使用してダイアログ ボックスを表示します。このエラーが発生した場合、原因はオペレーティング システムのレベルにあり、コモン ダイアログ コントロールを使用している Visual Basic のコードの実行結果からは原因はわかりません。


Picture オブジェクト

関連項目	プロパティ	メソッド

Picture オブジェクトを使用すると、Picture プロパティを持つオブジェクトに割り当てられたビットマップ、アイコン、メタファイルを操作できます。

構文

Picture

解説

Picture オブジェクトを識別するには、グラフィックスを表示するオブジェクト、たとえば、Form オブジェクトやピクチャ ボックス (PictureBox) コントロールなどの Picture プロパティを使います。ピクチャ ボックス コントロール (Picture1) を作成した場合、次のコードのように、Set ステートメントを使用して 1 つの Picture オブジェクトを別のオブジェクトに代入できます。

Dim X As Picture

Set X = LoadPicture("PARTY.BMP")

Picture1.Picture = X

Picture オブジェクトの配列を使うと、フォーム上に複数のピクチャ ボックス コントロールやイメージ (Image) コントロールを配置しなくても、複数のグラフィックスをメモリにロードできます。

たとえば、Dim X As New Picture のようにコードを記述しても Picture オブジェクトは作成できません。Picture オブジェクトを作成するには、StdPicture オブジェクトを次のように 使用する必要があります。

Dim X As New StdPicture


関連項目

LoadPicture 関数

ピクチャ ボックス (PictureBox) コントロール

Picture プロパティ

Set ステートメント


Picture オブジェクトのプロパティ

Handle プロパティ

Height プロパティ

hPal プロパティ

Type プロパティ

Width プロパティ


Picture オブジェクトのメソッド

Render メソッド


Handle プロパティ

関連項目	対象

Picture オブジェクト内のグラフィックスにハンドルを返します。

構文

object.Handle

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Handle プロパティが返す値は、Type プロパティの設定値によって異なります。対応する戻り値は次のとおりです。

Type プロパティ	戻り値

1 (ビットマップ)	HBITMAP ハンドル

2 (メタファイル)	HMETAFILE ハンドル

3 (アイコン)	HICON ハンドルまたは HCURSOR ハンドル

解説

ダイナミック リンク ライブラリや Windows API で、関数呼び出しの一部としてグラフィックスにハンドルを渡す場合に役立ちます。


関連項目

Type プロパティ (Picture オブジェクト)


Handle プロパティの対象

Picture オブジェクト


hPal プロパティ

対象

Picture オブジェクト内のピクチャ パレットにハンドルを設定します。値の取得も可能です。

構文

object.hPal [= value]

hPal プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ピクチャ パレットに対するハンドル (HPAL) を指定します。

解説

ダイナミック リンク ライブラリや Windows API で、関数呼び出しの一部としてグラフィックスにハンドルを渡す場合に役立ちます。


hPal プロパティの対象

Picture オブジェクト


Render メソッド

関連項目	対象

ディスティネーション オブジェクトにソース イメージ全体またはその一部を描画します。

構文

object.Render(hdc, xdest, ydest, destwid, desthgt, xsrc, ysrc, srcwid, srchgt, wbounds)

Render hPal メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

hdc	必ず指定します。ディスティネーション オブジェクトのハンドラです。

xdest	必ず指定します。ディスティネーション オブジェクトの描画領域の左上隅からの x 座標を示します。座標の単位はディスティネーション オブジェクトで使用されている単位で指定します。

ydest	必ず指定します。ディスティネーション オブジェクトの描画領域の左上隅からの y 座標を示します。座標の単位はディスティネーション オブジェクトで使用されている単位で指定します。

destwid	必ず指定します。ディスティネーション オブジェクトの描画領域の幅を示します。座標の単位はディスティネーション オブジェクトで使用されている単位で指定します。

desthgt	必ず指定します。ディスティネーション オブジェクトの描画領域の高さを示します。座標の単位はディスティネーション オブジェクトで使用されている単位で指定します。

xsrc	必ず指定します。ソース オブジェクトの描画領域の左上隅からの x 座標を示します。座標の単位は HiMetric (0.01ミリメートル単位) で指定します。

ysrc	必ず指定します。ソース オブジェクトの描画領域の左上隅からの y 座標を示します。座標の単位は HiMetric (0.01ミリメートル単位) で指定します。

srcwid	必ず指定します。ソース オブジェクトの描画領域の幅を示します。座標の単位は HiMetric (0.01ミリメートル単位) で指定します。

srchgt	必ず指定します。ソース オブジェクトの描画領域の高さを示します。座標は HiMetric (0.01ミリメートル単位) で指定します。

wbounds	必ず指定します。メタファイルの境界を示します。メタファイルに描画しない場合は、この引数に Null 値を引き渡す必要があります。メタファイルに描画する場合は、この引数に RECTL 構造に対応したユーザー定義型の値を引き渡します。

解説

ディスティネーションにグラフィックスの一部を描画するには、PaintPicture メソッドを使用することをお勧めします。


関連項目

PaintPicture メソッド


Render メソッドの対象

Picture オブジェクト


セットアップ ツールキットを利用して配布用のメディアを作成する


セットアップ ツールキットを利用して配布用のメディアを作成する

Microsoft Visual Basic セットアップ ツールキットは、Visual Basic で作ったアプリケーションのセットアップ プログラムを作成するためのツールです。

セットアップ ツールキットの概要

セットアップ ウィザードとセットアップ ツールキットの違い

セットアップ ツールキットの使い方

セットアップ ツールキットに関連するファイル

16 ビット版用セットアップ ファイルと 32 ビット版用セットアップ ファイル

配布ファイルの構成

配布が許諾されているファイル

依存ファイルの組み込みまたは削除

セットアップ プログラムの作成

セットアップ ファイルの圧縮

配布ディスクの構成

インストール先ディレクトリの指定

SETUP.LST の編集

配布用のメディアの作成

ネットワーク サーバー配布ディレクトリの作成

セットアップ プログラムのテスト

インストール オプションの作成

ODBC アプリケーションのセットアップ ディスクの作成 (Professional Edition および Enterprise Edition のみ)

アプリケーションの削除 (32 ビットのみ)

アプリケーションの削除が失敗する操作

クライアント登録ユーティリティ


セットアップ ウィザードとセットアップ ツールキットの違い

関連項目

セットアップ プログラムのカスタマイズを行わない場合、Microsoft Visual Basic セットアップ ウィザードを使って配布用のメディアを作成します。セットアップ ウィザードには、次の機能があります。

プロジェクトから実行可能ファイル (.EXE) を作成します。プロジェクトの実行可能ファイル (.EXE) またはインプロセス サーバー ダイナミック リンク ライブラリ (.DLL) ファイルを自動的に作成します。

Visual Basic アプリケーションのセットアップ プログラムを作成します。

全ファイルを圧縮し、ディスクに収まるように分割します。

アプリケーションを実行するために必要な依存ファイルを知らせます。

ディスクで配布する場合に必要なディスクの枚数を知らせます。

オプションとして、ネットワーク配布や CD-ROM 作成用の配布ファイルをディスク上に作成できます。

インストール時にアプリケーションがコピーされるディレクトリを自動的に決定します。

SETUP.LST ファイルを自動的に作成します。

アプリケーションのプログラム グループとアイコンを自動的に作成します。

作成するセットアップ プログラムに対して詳細な設定が必要な場合、セットアップ ツールキットを使用します。セットアップ ツールキットは複数のユーティリティ、DLL、そして Visual Basic で記述されたサンプル セットアップ プログラムから構成されています。セットアップ ツールキットには、次の機能があります。

Visual Basic に添付されているサンプル セットアップ プログラムに変更を加えることにより、セットアップ プログラムが作成できます。

アプリケーションを構成するファイルの圧縮と展開を行います。

Windows ディレクトリ (\Windows) にファイルをインストールします。

Microsoft Windows Version 3.1 および Microsoft Windows NT の場合には、プログラム マネージャにアプリケーションのグループおよびアイコンを作成できます。Microsoft Windows 95 の場合には、アプリケーションの [スタート] メニューに登録できます。

セットアップ ツールキットとセットアップ ウィザードを組み合わせて使用すると、インストール プログラムに新しいダイアログ ボックスを追加できます。このダイアログ ボックスはユーザーがアプリケーションのインストール オプションを選択するときに表示されます。


関連項目

セットアップ ツールキットを利用して配布用のメディアを作成する

セットアップ ツールキットの使い方

セットアップ ツールキットの概要


16 ビット版用セットアップ ファイルと 32 ビット版用セットアップ ファイル

関連項目

配布用のメディアを作成するために必要なセットアップ ファイルは、使用している Microsoft Visual Basic が 16 ビット版と 32 ビット版のどちらであるかによって異なります。システムにインストールされているファイルの違いを次に示します。

内容	バージョン	ファイル名とディレクトリ
セットアップ ウィザード 関連ファイル	16 ビット	SETUPWIZ.EXE、SETUP.EXE、SETUP.LST、VBSKCO16.DLL  (\VB\SETUPKIT\KITFILES ディレクトリ)
	32 ビット	SETUPWIZ.EXE、SETUP.EXE、SETUP.LST、VBSKCO32.DLL  (\VB\SETUPKIT\KITFIL32 ディレクトリ)
セットアップ ツールキット DLL	16 ビット	STKIT416.DLL  (\WINDOWS\SYSTEM ディレクトリ)
	32 ビット	STKIT432.DLL  (\WINDOWS\SYSTEM32 ディレクトリ)
セットアップ ツールキット 関連ファイル	16 ビット	SETUP1.EXE  (\VB\SETUPKIT\SETUP1 ディレクトリ)
	32 ビット	SETUP132.EXE  (\VB\SETUPKIT\SETUP1 ディレクトリ)
		ST4UNST.EXE  (\VB\SETUPKIT\KITFIL32 ディレクトリ)
注   上記以外の セットアップ ツールキット関連ファイルは 16 ビット版と 32 ビット版で共通です (\VB\SETUPKIT\SETUP1 ディレクトリ)。


関連項目

セットアップ ツールキットを利用して配布用のメディアを作成する

配布が許諾されているファイル

配布ファイルの構成

セットアップ ツールキットに関連するファイル


セットアップ ツールキットの概要

関連項目

Microsoft Visual Basic を使って作成したアプリケーションは自由に配布できます。作成したアプリケーションを一般のユーザーに向けて提供または販売するときは、アプリケーションをシステムにインストールするためのセットアップ プログラムを添付するのが一般的です。

Visual Basic セットアップ ツールキットでは、Visual Basic を使ってセットアップ プログラムが作成できます。セットアップ ツールキットに含まれるツールの多くは、Visual Basic のディレクトリの下の \SETUPKIT ディレクトリにあります。

セットアップ ツールキットには、次の機能があります。

セットアップ プログラムがカスタマイズできます。

ディスク容量を節約できるように、アプリケーション ファイルを圧縮および展開できます。

ブートストラップ ファイルが用意されています。

Windows バージョン スタンプ リソースを使用して、システムにインストールするファイルを決定します。

必要なファイルを Windows ディレクトリ (\WINDOWS、\WINDOWS\SYSTEM または \WINDOWS\SYSTEM32) にインストールします。

Visual Basic のリモート OLE サーバーをクライアント側とサーバー側にインストールします。

既にインストールされたアプリケーションを削除します (32 ビット版のみ)。

リモート OLE オートメーションのコンポーネントを削除します (32 ビット版の Enterprise Edition のみ)。

アプリケーションのプログラム マネージャ グループとアイコンを作成します。Microsoft Windows NT および Microsoft Windows Version 3.1 の場合には、アプリケーションのプログラム マネージャ グループとアイコンを作成し、Microsoft Windows 95 の場合には、アプリケーションの [スタート] メニューに登録できます。


関連項目

セットアップ ツールキットを利用して配布用のメディアを作成する

セットアップ ツールキットの使い方

セットアップ ウィザードとセットアップ ツールキットの違い


セットアップ ツールキットに関連するファイル

関連項目

セットアップ ツールキットを構成するファイルには数種のユーティリティ、ダイナミック リンク ライブラリ (DLL)、Microsoft Visual Basic で書かれたサンプル セットアップ プログラムがあります。これらの関連ファイルの一覧を次の表に示します。

ファイル名	内容
SETUP.EXE	インストール時に最初に実行するプログラム (ブートストラップ プログラム) です。SETUP.EXE は VER.DLL と SETUP.LST の [BOOTSTRAP] セクションに表示されているファイルをインストールしてから、カスタム セットアップ プログラムを起動します。特に指定しない場合は SETUP1.EXE です。別のファイル名も指定できます。カスタム セットアップ プログラムはアプリケーションをインストールします。ファイル名 SETUP.EXE は変更できます。
SETUP1.VBP	サンプル セットアップ プログラムです。このサンプル プログラムを使用して、任意の Visual Basic アプリケーションをシステムにインストールし、実行可能ファイルを作成できます。
SETUP.LST	インストールするファイルのリストを記述したテキスト ファイルです。リスト内にはファイルが保存されているディスク名、インストール先のディレクトリ名、各ファイルのレジストリの内容などが記述されます。SETUP.LST は、SETUP.EXE によって参照されます。1 行につき 1 つのファイルに関するインストール情報を記述します。SETUP.LST はセットアップ ウィザードによって自動的に作成されます。
SETUP1.EXE (16 ビット版) SETUP132.EXE (32 ビット版)	サンプル セットアップ プログラム SETUP1.VBP から生成される Visual Basic アプリケーション実行可能ファイルです。これらのプログラムのソース ファイルをカスタマイズして、アプリケーションのセットアップ プログラムを作成できます。ファイル名は変更できますが、変更結果が SETUP.LST に反映されるようにしてください。
SETUP1.BAS	SETUP1.VBP に含まれる Visual Basic 関数の一覧です。これらの関数はセットアップ プログラムで使用されます。
VER.DLL	VER.DLL は LZEXPAND.DLL を呼び出すために使用されます。LZEXPAND.DLL はファイルのコピーと展開を行います。VER.DLL は Windows バージョン スタンプからファイルのバージョンを検出するときにも使用されます。VER.DLL は 16 ビット アプリケーションを配布する場合のみ添付します。
STKIT416.DLL (16 ビット版) STKIT432.DLL (32 ビット版)	セットアップ プログラムが使用する各種の関数が保存されています。
ST4UNST.EXE (32 ビット)	Visual Basic のセットアップ ツールキットが使用するアプリケーション削除ユーティリティ
CLIREG16.EXE (16 ビット版の Enterprise Edition のみ)	16 ビット版のリモート OLE オートメーション クライアント登録ユーティリテイ
CLIREG32.EXE (32 ビット版の Enterprise Edition のみ)	32 ビット版のリモート OLE オートメーション クライアント登録ユーティリテイ


関連項目

16 ビット版用セットアップ ファイルと 32 ビット版用セットアップ ファイル

セットアップ ツールキットを利用して配布用のメディアを作成する

配布が許諾されているファイル

配布ファイルの構成


セットアップ ツールキットの使い方

関連項目

セットアップ ツールキットを使ってアプリケーションのセットアップ プログラムを作成するときは、次の手順に従ってください。手順通りに行うことによって配布用のディスクまたはネットワーク ディレクトリが作成されます。ユーザーはこのディスクまたはディレクトリを使用してアプリケーションをインストールします。

アプリケーション配布用のメディアを作成するには

1.	配布するファイル構成を決定します。

2.	セットアップ プログラムを作成します。

3.	セットアップ ファイルを圧縮します。

4.	ディスクで配布するときは、ディスクの構成を決定します。どのディスクにどのファイルを保存するかを決定します。

5.	インストール先ディレクトリを決定します。

6.	SETUP.LST を書き換えて、必要なファイルの名前をリストに追加します。

7.	配布用のメディアを作成します。

8.	セットアップ プログラムをテストします。


関連項目

セットアップ ツールキットを利用して配布用のメディアを作成する

セットアップ ツールキットの概要


配布ファイルの構成

関連項目

セットアップ プログラムを作成する前に、配布用のメディアに含めるファイルの構成を決定する必要があります。アプリケーションは実行可能ファイル (.EXE ファイル) のほかにデータ ファイルやカスタム コントロール、DLL、初期化ファイル (.INI ファイル) などが必要になることがあります。またセットアップ プログラムが正しく動作するには、アプリケーションを構成するファイルのほかにいくつかのファイルが必要です。セットアップ プログラムを実行する前にあらかじめインストールされていなければならないファイルをブートストラップ ファイルと呼びます。ブートストラップ ファイルの一覧は SETUP.LST ファイルと SWDEPEND.INI ファイルに記述されています。アプリケーション配布用のメディアに含まれる可能性のあるファイルを次に示します。

ファイル名	内容
appname.EXE	アプリケーションの EXE ファイルです。
appname.DAT	アプリケーションが使用するデータ ファイルです。ただし、使用しない場合もあります。
appname.TXT	アプリケーションが使用するテキスト ファイルです。ただし、使用しない場合もあります。
<control>.OCX <control>.VBX	アプリケーションが使用するカスタム コントロールです。ただし、使用しない場合もあります。
<dependency>.DLL <dependency>.EXE	アプリケーションの実行に必要な依存ファイルです。SWDEPEND.INI に表示されています。
<olecontrol>.VBR	リモート サポート ファイル。
<olecontrol>.TLB	タイプ ライブラリ ファイル。
注   Microsoft Visual Basic に添付されているセットアップ ウィザードまたはセットアップ ツールキットを使わずにアプリケーション配布用のメディアを作成する場合、インストールするアプリケーションが使用するコントロールまたは参照ファイル、およびアプリケーションが依存するその他のファイルが適切にインストールされるように注意してください。レジストリに登録が必要なファイルについては、正しく登録されるようにしてください。レジストリへの登録はセットアップ スクリプトの中で行うか、ユーザーが自分で登録を行うように指定してください。Visual Basic アプリケーションが依存するファイルおよび参照するファイルについては、ファイル SWDEPEND.INI (\WINDOWS ディレクトリ) を参照してください。このファイルの書式については SWDEPEND.TXT を参照してください。

アプリケーションの .EXE ファイルの中にはカスタム コントロール、他のアプリケーションによって埋め込み、リンクされたオブジェクト、DLL は含まれていません。配布するアプリケーションがこれらを必要とするときは配布用のメディアにこれらのファイル (.OCX、.VBX、.EXE、.DLL) を含めてください。

依存ファイル

アプリケーションの動作や使用するカスタム コントロールによっては、オブジェクトまたはアドインを独立したライブラリとして持つことがあります。これらのファイルは依存ファイルと呼ばれ、SWDEPEND.INI (WINDOWS ディレクトリ) 内で指定されます。SWDEPEND.INI はテキスト ファイルで、Microsoft Word、メモ帳、その他のテキスト エディタを使って開くことができます。

アプリケーションが必要とする依存ファイルを決定するには、SWDEPEND.INI の各セクションを調べます。

注意   アプリケーションで Btrieve を使用している場合、Btrieve Technologies, Inc. から Btrieve for Windows ドライバ (WBTRCALL.DLL) を配布するためのライセンスを取得する必要があります。Btrieve を使用するアプリケーションでは Btrieve for Windows ドライバと Btrieve ISAM ダイナミック リンク ライブラリ (BTRV200.DLL) が必要になります。


関連項目

16 ビット版用セットアップ ファイルと 32 ビット版用セットアップ ファイル

配布用のメディアの作成

配布が許諾されているファイル

セットアップ ツールキットに関連するファイル


SETUP.LST の編集

関連項目

テキスト ファイル SETUP.LST には、インストールが必要なファイルの一覧を記述します。16 ビット アプリケーション用の SETUP.LST ファイルのサンプルは、Visual Basic のディレクトリの下の \SETUPKIT\KITFILES ディレクトリにあります。32 ビット版のサンプル ファイルは、\SETUPKIT\KITFIL32 ディレクトリにあります。SETUP.LST のリストは 3 つのセクション ([BOOTSTRAP]、[FILES]、[SETUP]) から構成されています。

SETUP.LST ファイル [BOOTSTRAP] セクションの編集

SETUP.LST ファイル [FILES] セクションの編集

SETUP.LST ファイル [SETUP] セクションの編集

SETUP.LST ファイル [BOOTSTRAP] セクションと [FILES] セクションの書式


関連項目

セットアップ ツールキットを利用して配布用のメディアを作成する

セットアップ ツールキットの概要


SETUP.LST ファイル [BOOTSTRAP] セクションの編集

関連項目

[BOOTSTRAP] セクションにはブートストラップ ファイルを記述します。ブートストラップ ファイルとは、アプリケーションと依存ファイルをインストールする前にシステムにロードする必要のあるファイルのことです。ブートストラップ ファイルには、すべての Microsoft Visual Basic アプリケーションが必要とするファイルおよび SETUP1.EXE (16 ビット版の場合)、SETUP132.EXE (32 ビット版の場合) があります。これらのファイルは SETUP.EXE によってインストールされます。

注   SETUP.EXE、SETUP.LST、VER.DLL は圧縮してはいけません。32 ビット アプリケーションの場合は、VER.DLL を配布する必要はありません。


関連項目

SETUP.LST ファイル [BOOTSTRAP] セクションと [FILES] セクションの書式

SETUP.LST ファイル [FILES] セクションの編集

SETUP.LST ファイル [SETUP] セクションの編集


SETUP.LST ファイル [FILES] セクションの編集

関連項目

[FILES] セクションにはアプリケーションが必要とするファイルが記述されています。ここに記述されるのはアプリケーションの .EXE ファイル、データ ファイル、テキスト ファイル、.INI ファイル、依存ファイルなどです。これらのファイルは圧縮できます。インストール処理の中で起動される SETUP1.EXE (16 ビット版用)、SETUP132.EXE (32 ビット版用) は、このセクションに記述されているファイルをインストール先ディレクトリにコピーします。


関連項目

SETUP.LST ファイル [BOOTSTRAP] セクションと [FILES] セクションの書式

SETUP.LST ファイル [BOOTSTRAP] セクションの編集

SETUP.LST ファイル [SETUP] セクションの編集


SETUP.LST ファイル [BOOTSTRAP] セクションと [FILES] セクションの書式

関連項目

[BOOTSTRAP] セクションと [FILES] セクションでは次の形式でファイルを指定します。

Filex=y,[SPLIT],file,install,path,register,shared,date,size[,version]

ファイル指定行の先頭には必ずキーワード File を付けます。

引数 x には、番号を指定します。この番号は、各セクションの先頭から順に 1 から始まる連番にします。必ず 1 から始める必要があり、欠番を作ることはできません。

引数 y には、ファイルが格納されている配布用ディスクの番号を指定します。ネットワーク サーバーまたは CD-ROM を使用して配布する場合、この番号は常に 1 です。

フラグ SPLIT は、次の行に続けて分割ファイルを指定するときに使用します。2 番め以降の分割ファイルを指定する行では、install よりも後のフィールドを指定してはいけません。最後の分割ファイルを指定する行にはキーワード SPLIT を付けません。分割ファイルの指定例を次に示します。

File10=2,SPLIT,GAZORNEN.DL1,GAZORNEN.DLL,$(WinSysPath),,,4/27/94, 1151756

File11=3,SPLIT,GAZORNEN.DL2,GAZORNEN.DLL

File12=4,SPLIT,GAZORNEN.DL3,GAZORNEN.DLL

File13=5,,GAZORNEN.DL4,GAZORNEN.DLL

引数 file には、配布ディスク上のファイルの名前を指定します。

引数 install には、インストール先のファイルの名前を指定します。通常は file と同じ名前を指定しますが、ファイルを圧縮する場合などでは、2 つのファイル名は異なります。一般に圧縮ファイル名の拡張子の最後の文字はアンダースコア (_) に置き換えられているので、インストール後 (展開後) のファイル名を示すために、install フィールドで本来の拡張子を持つ名前を指定します。

引数 path はパス名、あるいはユーザーが指定したパスを表すマクロを指定します。なるべくマクロを使うようにしてください。インストールに使われるマクロを次の表に示します。

マクロ	内容

$(WinSysPath)	ファイルは \WINDOWS\SYSTEM ディレクトリにインストールされます。

$(WinPath)	ファイルは \WINDOWS ディレクトリにインストールされます。

$(AppPath)	ユーザーが指定するアプリケーション ディレクトリまたは [SETUP] セクションで指定される DefaultDir にインストールされます。

$(AppPath)\SAMPLES	アプリケーション ディレクトリの下の \SAMPLES ディレクトリにインストールされます。

c:\path	ファイルは path で指定されるディレクトリにインストールされます。ただし、この方法はできるだけ使用しないでください。

$(CommonFiles)	共有ファイルがインストールされる共有のディレクトリです。
Microsoft Windows 95 では、C ドライブの \PROGRAM FILES\COMMON FILES\ ディレクトリ。
Microsoft Window NT、Microsoft Windows Version 3.1 では C ドライブの \WINDOWS\OLESVR ディレクトリ。

$(ProgramFiles)	アプリケーションがインストールされる初期設定のディレクトリです。
Windows 95 では、C ドライブの \PROGRAM FILES ディレクトリ。
Window NT、Windows Version 3.1 では、C ドライブ。

$(CommonFilesSys)	ファイルを指定のディレクトリにインストールします。

Windows 95 では、$(CommonFiles)\System ディレクトリ。
Window NT、Windows Version 3.1 では、\WINDOWS\SYSTEM ディレクトリ。

注   セットアップ プログラムは \SYSTEM ディレクトリにファイルをインストールするので、16 ビット アプリケーションのインストールに対して 32 ビット版用セットアップ ツールキットを使用しないでください。

[BOOTSTRAP] セクションでは $(AppPath) を使ったインストールは行えません。

Register はシステム登録を指定するためのキーワードです。次の表に示す 4 種類の登録が指定できます。

指定	内容

(未指定)	システム登録の必要がないファイルを表します。

$(DLLSelfRegister)	自己登録を行う DLL、.OCX カスタム コントロール、その他の自己登録情報を持つファイルを表します。

$(EXESelfRegister)	自己登録を行う .EXE ファイル (Visual Basic を使って作成した OLE サーバーなど) を表します。

$(Remote)	リモート OLE サーバーのリモート サポート ファイル (.VBR) である場合に、このキーを使用します。

appname.REG	レジストリに登録する必要があり、自己登録情報を持たないファイルを表します。appname は REGEDIT.EXE または REGEDIT32.EXE への引数となるファイル名です。

注   登録情報を 32 ビットのレジストリに格納する場合、配布するファイルに対して <appname>.REG キーを使用する方法はお勧めできません。レジストリを正しく更新するには、SETUP1.VBP で、RegCreateKey、RegSetNumericValue、RegSetStringValue、RegOpenKey、および RegCloseKey の各関数を使用して SETUP132.EXE を再コンパイルします。詳細については、SETUP1.VBP の、コメントを記述したコードを参照してください。

“Remote#”は、セットアップ ウィザードのステップ 4 で [リモート OLE サーバーの詳細] ダイアログ ボックスで設定した情報に基づいて、SETUP.LST に記述される行です。この行には、クライアント登録ユーティリティでリモート OLE オートメーション サーバーを登録する場合に使用されるコマンド ラインの情報が含まれています。この情報には、サーバー アドレス、ネットワーク プロトコル、および認証情報があり、これらはカンマ (,) で区切られています。＃は、$(Remote) キーを含む File# に対応します。次に、Remote# を実現した例を示します。

File2=1,,RemSvr1.VB_,RemSvr1.VBR,$(CommonFiles)\OLESVR,$(Remote),$(Shared),4/10/1995,1147

Remote2="Schweizer","ncacn_ip_tcp",1

File3=1,,RemSvr2.VB_,RemSvr2.VBR,$(CommonFiles)\OLESVR,$(Remote),$(Shared),4/10/1995,1147

Remote3=,,1

“$(Shared)”は、\WINDOWS、\WINDOWS\SYSTEM、または共有ファイルのディレクトリ $(CommonFiles) にインストールされるファイルの一覧に、エントリとして自動的に追加されるキーワードです。共有ファイルのディレクトリとは、Windows NT および Windows Version 3.1の場合は、\WINDOWS ディレクトリまたは \WINDOWS ディレクトリの下のディレクトリ、Windows 95 の場合は、\PROGRAM FILES\COMMON FILES ディレクトリです。このキーワードの値は、共有ファイルおよびレジストリに登録されているファイルを示す $(Shared)、またはプライベート ファイルを示す空白です。

引数 date および引数 size には、ファイル マネージャ上で表示される日付とサイズを指定します。この情報はセットアップ ディスク上のファイルのバージョンを確認するために使用されます。引数 size はインストール先のディスクに必要な空き領域を計算するために、SETUP1.EXE (16 ビット版用) または SETUP132.EXE (32 ビット版用) によって使用されます。

引数 version はファイルの内部バージョン番号を指定する場合に使用します。省略可能です。内部バージョン番号は、セットアップ ウィザードのステップ 7 で [ファイルの詳細] ボタンを選択すると表示されます。内部バージョン番号はファイル マネージャの [ファイル] - [属性の変更] を選択したときに表示される情報とは異なることがあるので、注意してください。


関連項目

SETUP.LST ファイル [BOOTSTRAP] セクションの編集

SETUP.LST ファイル [FILES] セクションの編集

SETUP.LST ファイル [SETUP] セクションの編集


SETUP.LST ファイル [SETUP] セクションの編集

関連項目

SETUP.LST ファイルの 3 番めのセクションは [SETUP] セクションです。ここにはセットアップ プログラムが使用するその他の情報を記述します。[SETUP] セクションの内容を次の表に示します。

項目	内容

Title	インストール作業中の画面に表示されるアプリケーション名です。

DefaultDir	セットアップ プログラムの中でユーザーがディレクトリを指定しなかった場合に、アプリケーションがインストールされるディレクトリの名前です。

Setup	セットアップ プログラム名です。通常は SETUP1.EXE です。セットアップ プログラムの名前を変更したときはこの欄を変更してください。

Btrieve	配布ファイルに Btrieve ドライバが含まれるときは、0 以外の値にします。

AppEXE	アプリケーション プログラム名 (たとえば MYAPP.EXE) を指定します。

セットアップ プログラム名にはブートストラップ プログラムの名前 SETUP.EXE は指定できません。ただし、任意の名前が指定できます。

セットアップ プログラム実行中に、標準の SETUP1.VBP には含まれていない、DLL やカスタム コントロールへのアクセスが必要になる場合があります。この場合は、それらのファイル名を SETUP.LST ファイルの [BOOTSTRAP] セクションに追加してください。


関連項目

SETUP.LST ファイル [BOOTSTRAP] セクションと [FILES] セクションの書式

SETUP.LST ファイル [BOOTSTRAP] セクションの編集

SETUP.LST ファイル [FILES] セクションの編集


セットアップ ファイルの圧縮

関連項目

配布ファイルの構成によっては 1 枚のディスクに収まらないことがあります。ファイルを圧縮してディスク上でのサイズを小さくすると、配布ディスクの枚数を減らすことができます。

セットアップ ツールキット付属のファイル圧縮ユーティリティ COMPRESS.EXE は Visual Basic のディレクトリの下の \SETUPKIT ディレクトリにあります。COMPRESS.EXE は MS-DOS 上でのみ実行できます。Windows アプリケーションではありません。

ファイルを圧縮するには

コマンド ライン プロンプトに次のように入力します。

compress -r filename

-r スイッチを指定すると、圧縮後のファイル名の末尾の文字はアンダースコア (_) に置き換えられます。たとえば、ファイル LOAN.EXE を圧縮するときは、次のように入力します。

compress -r loan.exe

圧縮後のファイル名は LOAN.EX_ になります。展開時に作成されるファイルは SETUP.LST で指定される名前になります。通常は元のファイル名 LOAN.EXE を指定しますが、展開後のファイル名には別の名前を指定することも可能です。

COMPRESS.EXE を使用して、任意のファイルを圧縮できますが、VER.DLL (16 ビット版のみ)、SETUP.EXE、SETUP.LST は、圧縮しないでください。VER.DLL は、ファイルが圧縮されているかどうかを検出して、すべてのファイルをユーザーのコンピュータに適切にコピーするためのファイルです。セットアップ プログラムが正常に動作するためには、ファイルの圧縮にはセットアップ ツールキットの COMPRESS.EXE Version 2.0 を使用してください。


関連項目

セットアップ ツールキットを利用して配布用のメディアを作成する

セットアップ ツールキットの概要


配布ディスクの構成

関連項目

ディスクを使ってアプリケーションを配布するときは、セットアップ プログラムを作成する前に、インストールするファイルの名前とそのファイルを保存する配布ディスクの名前を確認する必要があります。

1 枚めの配布ディスクには次のファイルを保存します。

SETUP.EXE

SETUP.LST

VER.DLL (16ビット アプリケーションのみ)

ST4UNST.EX_ (32ビット アプリケーションのみ)

これらのファイルは 1 枚のディスクに完全に収まり、さらに他のファイルを保存する余裕もあります。まず、上記以外のブートストラップ ファイルをアプリケーション ファイルよりも前にインストールしなければいけません。ブートストラップ ファイルが 1 枚めのディスクに収まらないときは、2 枚め以降のディスクに続けて保存する必要があります。

すべてのブートストラップ ファイルを保存したら、次にプログラム ファイルを保存します。プログラム ファイルは任意の順で保存できますが、どのプログラム ファイルよりも先に、ブートストラップ ファイルがインストールされていることを確認してください。

ファイル サイズの合計を計算すると、必要なディスクの枚数がわかります。

注   セットアップ ウィザードとは異なり、セットアップ ツールキットではファイルを自動的に複数のディスクに分割できません。


関連項目

セットアップ ツールキットを利用して配布用のメディアを作成する

セットアップ ツールキットの概要


インストール先ディレクトリの指定

関連項目

セットアップ プログラムを作成する前に、各ファイルをインストールするディレクトリを決定する必要があります。アプリケーションが必要とするファイルは次のように分類できます。

プログラム ファイル

初期化ファイル

オペレーティング システムのファイル

共有アプリケーションのコンポーネント

プログラム ファイル

アプリケーションにとって必要不可欠であり、他のアプリケーションによって使用されないファイルです。たとえば、アプリケーションの EXE ファイルやアプリケーションが使用するデータ ファイルはプログラム ファイルに分類されます。プログラム ファイルはアプリケーション ディレクトリにインストールします。アプリケーション ディレクトリはセットアップ作業中にユーザーが指定します。このためのサンプル コードは SETUP1.VBP に含まれています。

初期化ファイル

アプリケーションに関するユーザー設定を制御するファイルです。初期化ファイル (.INI) はインストール先システムの WIN.INI ファイルが含まれている Microsoft Windows のディレクトリ (通常は \WINDOWS ディレクトリ) にインストールします。このディレクトリの名前は Windows API 関数 GetWindowsDirectory によって得られます。この関数の使い方については SETUP1.VBP 内のコードを参照してください。

注   32ビット アプリケーションの場合は、初期化ファイル (.INI) ではなく、レジストリを使用して、アプリケーション特有の情報を保存してください。

オペレーティング システム用ファイル

これらのファイルは通常 Windows に添付されていますが、特定のバージョンのDLL (OLE2.DLL、SHELL.DLL など) が必要な場合はアプリケーションに添付することもあります。これらのファイルは、\WINDOWS\SYSTEM ディレクトリにインストールします。このディレクトリの名前は Windows API の GetSystemDirectory 関数によって得られます。この関数の使い方は SETUP1.VBP 内のコードを参照してください。

注意   これらのファイルの新しいバージョンがインストール先システムにあるときは、以前のバージョンのファイルを上書きしてはいけません。SETUP1.BAS の CopyFile 関数は API 関数 VerInstallFile を使ってインストール先システムにファイルをコピーします。VerInstallFile 関数は、インストール先システムに存在するファイルのバージョン番号がインストールしようとするファイルよりも古いときだけ、ファイルを上書きします。

共有アプリケーション リソース

アプリケーションのコンポーネントの一部を、共有リソースとして複数のアプリケーションの間で共有することがあります。たとえば複数のソフトウェアが同じカスタム コントロールを使用していることがあります。.OCX ファイル、.VBX ファイル、.DLL ファイルを \WINDOWS\SYSTEM ディレクトリにインストールすることで、すべてのアプリケーションで最新のファイルが使えるようになります。


関連項目

セットアップ ツールキットを利用して配布用のメディアを作成する

セットアップ ツールキットの概要


セットアップ プログラムの作成

関連項目

セットアップ プログラムを作成する最も簡単な方法は、セットアップ ツールキットに添付されている SETUP.LST に変更を加えることです。LOAN.EXE の代わりに、配布するアプリケーション用のファイルがインストールされるように設定してください。サンプル セットアップ プログラム SETUP1.VBP は、Visual Basic のディレクトリの下の \SETUPKIT\SETUP1 ディレクトリにあります。このサンプル セットアップ プログラムに変更を加えて、任意の Microsoft Visual Basic アプリケーション用のセットアップ プログラムが作成できます。サンプル セットアップ プログラムはサンプル アプリケーション LOAN.EXE をインストールします。LOAN.EXE は Visual Basic のディレクトリの下の \SAMPLES\GRID ディレクトリにあります。

LOAN.EXE はカスタム コントロールである、グリッド (Grid) コントロールを使用する小さなサンプル アプリケーションです。LOAN.EXE を実行するには、GRID16.OCX を正しくインストールする必要があります。これはカスタム コントロールを使用したアプリケーションの、典型的なインストールの例です。

セットアップ手順のカスタマイズ

セットアップ手順にユーザー入力などのイベントを追加する場合は、SETUP1.VBP に変更を加えます。このセットアップ プログラムは通常の Visual Basic と同じように編集できます。セットアップ プログラムの中ではセットアップ処理に役立つ多くの機能が使用できます。

CalcDiskSpace ステートメントと CopySection ステートメント

これらのステートメントは、SETUP.LST の各セクションで指定されるファイルをインストールします。ステートメントの引数としてセクション名を指定します。サンプル セットアップ プログラム SETUP1.VBP で使用される次のステートメントは、SETUP.LST 内の [FILES] セクションに含まれる全ファイルの合計サイズを計算し、ディスクの空き容量が十分ある場合はファイルをインストールします。

CalcDiskSpace "Files"

CopySection "Files"

これ以外にもインストールのためのステートメントがあります。「インストール オプションの作成」を参照してください。


関連項目

セットアップ ツールキットを利用して配布用のメディアを作成する

インストール オプションの作成

セットアップ ツールキットの概要


配布用のメディアの作成

関連項目

ファイルを配布用のメディアにコピーする前に、各ディスクにラベルを貼っておくことをお勧めします。たとえば、ディスクを使って配布用のメディアを作成するときは、1 枚めのディスクに“セットアップ ディスク 1、このディスクを A ドライブに挿入します。”のように記載したラベルを貼ります。

Microsoft Windows NT または Microsoft Windows Version 3.1の場合は、次のようにします。

ファイル マネージャから A ドライブを選択してください。

[ディスク] - [ボリューム ラベルの変更] コマンドを選択します。

「setup」と入力し、Enter キーを押します。

Microsoft Windows 95の場合は、次のようにします。

Windows エクスプローラで A ドライブを選択してください。

[ファイル] - [プロパティ] コマンドを選択します。

[ボリューム ラベル] テキスト ボックスに「setup」と入力し、Enter キーを押します。

インストールに必要な手順をラベルに表示するようにしてください。他のディスクにも同様のラベルを付けておきます。

ディスク 2 : MyApp

ラベルを付けたら、各ディスクにファイルをコピーします。

配布ディスクを作成するには

1.	ファイル名 VER.DLL を VER.DL_ に変更します (16 ビット アプリケーションのみ)。

rename a:ver.dll a:ver.dl_

VER.DLL の拡張子を .DL_ に変えることで、セットアップ ディスク使用中に Windows がこの DLL を使用しないようにします。

2.	次のファイルを 1 枚めのディスクにコピーします。

SETUP.EXE

SETUP.LST

VER.DL_ (16 ビット アプリケーションのみ)

3.	計画したディスク構成に従って、残りのファイルを各ディスクにコピーします。


関連項目

ネットワーク サーバー配布ディレクトリの作成

セットアップ ツールキットを利用して配布用のメディアを作成する

セットアップ ツールキットの概要


ネットワーク サーバー配布ディレクトリの作成

関連項目

ネットワークを通じてアプリケーションを配布するときは、ネットワーク サーバー上の 1 つのディレクトリに全ファイルを保存します。CD-ROM で配布するときは、全ファイルを 1 つのディレクトリに保存して、そのディレクトリから CD-ROM を作成します。どちらの場合も、配布ファイル以外のファイルがディレクトリ中に混入しないように気を付けてください。


関連項目

セットアップ ツールキットを利用して配布用のメディアを作成する

セットアップ ツールキットの概要


セットアップ プログラムのテスト

関連項目

配布ディスクや配布用ネットワーク ディレクトリを作成したら、セットアップ プログラムをテストします。セットアップ プログラムのテストは、Microsoft Visual Basic および必要なカスタム コントロールが事前に存在しないコンピュータ上で行う必要があります。また、配布するアプリケーションを使用できる、すべてのオペレーティング システム上でセットアップ プログラムをテストします。

配布ディスク上のセットアップ プログラムをテストするには

Microsoft Windows NT または Microsoft Windows Version 3.1 の場合は、次のようにします。

1.	1 枚めのディスクをドライブ A に挿入します。

2.	Windows のプログラム マネージャの [ファイル] - [ファイル名を指定して実行] コマンドを選択して、次のように入力します。

a:setup

Microsoft Windows 95 の場合には、次のようにします。

1.	1 枚めのディスクをドライブ A に挿入します。

2.	[スタート] - [設定] コマンドを選択し、[コントロール パネル] を選択します。

3.	[コントロール パネル] ウィンドウで [アプリケーションの追加と削除] アイコンをダブル クリックします。

4.	[セットアップと削除] タブの [セットアップ] ボタンを選択し、[次] ボタンを選択します。

5.	[セットアップ プログラムの実行] ダイアログ ボックスで SETUP.EXE を含むコマンド ラインが表示されたら、[完了] を選択してプログラムをインストールします。

アプリケーションが正常にインストールされないときは、配布ディスク上のファイル構成と、セットアップ プログラムの設定に、矛盾する点がないかどうか確かめてください。

ネットワーク上のセットアップ プログラムをテストするには

1.	同一ネットワーク上の別のコンピュータから、ファイル マネージャ (Windows NT または Windows Version 3.1)、または Windows エクスプローラ (Windows 95) を使用して、サーバーに接続し、配布ファイルがあるディレクトリにアクセスします。

2.	配布ディレクトリ内の SETUP.EXE ファイルをダブル クリックします。アプリケーションが正常にインストールされない場合、配布ディスク上のファイル構成とセットアップ プログラムの設定に矛盾する点がないかどうか確かめてください。

最後に、インストールされたプログラムを実行して正常に動作することを確認してください。


関連項目

セットアップ ツールキットを利用して配布用のメディアを作成する

セットアップ ツールキットの概要


インストール オプションの作成

関連項目

セットアップ ツールキットとセットアップ ウィザードを組み合わせて使用することで、インストール プログラムにダイアログ ボックスを追加し、ユーザーがオプションを入力できるようにすることができます。たとえば、ヘルプ ファイルをインストールするかどうかを、オプションとして選択可能にします。また、各種のインストール オプションを必要に応じて追加できます。

セットアップ プログラムにインストール オプションを追加するには

1.	ソース コード SETUP1.FRM (Visual Basic のディレクトリの下の \SETUPKIT\SETUP1 ディレクトリ) を編集します。"ShowBeginForm" を呼び出すブロックの直後に、次のコードを追加します。

Dim LoadHelp As Integer

LoadHelp = MsgBox ("ヘルプをインストールしますか? ", vbYesNo)

If LoadHelp = vbYes Then

CalcDiskSpace "Help"

EndIf

.

. ' CopySection strINI_Files のブロック。

.

If LoadHelp = vbYes Then

CopySection "Help"

EndIf

2.	SETUP1.FRM を閉じてフォームとプロジェクトを保存し、EXE ファイルを作成します。

3.	セットアップ ウィザードを実行します。ステップ 7 でファイルの依存性を確認した後で、このダイアログ ボックスで [はい] ボタンが選択された場合にインストールするファイルの名前を追加します。

4.	セットアップ ウィザードでの作業が終了したら、配布用のメディアを作成します。

5.	ディスク 1 をドライブ A に挿入して、SETUP.LST ファイルを開きます。[FILES] セクションからオプションとして指定したファイルを切り取り、新しいセクションに貼り付けます。この新しいセクションは [FILES] セクションの後に作成してください。セクション名は CopySection ステートメントで指定した引数と同じ名前 (この場合は [HELP] セクション) を指定します。

[HELP]

File1=5,SPLIT,MyApp.HL1,MyApp.HLP,$(AppPath),,,4/22/94,2946967

File2=6,SPLIT,MyApp.HL2,MyApp.HLP

File3=7,,MyApp.HL3,MyApp.HLP

ユーザーがインストール プログラムを実行すると、まず SETUP.EXE によって [BOOTSTRAP] セクションのファイルがシステムにインストールされ、次に SETUP1.EXE がヘルプ ファイルをインストールするかどうかをユーザーにたずねます。ユーザーが [はい] ボタンを選択すると、インストール先のディスクの空き容量がヘルプ ファイルをインストールするために十分かどうかを CalcDiskSpace ステートメントによって計算します。

次に SETUP1.EXE によって、SETUP.LST ファイルの [FILES] セクションで指定される全ファイルがインストールされます。

その後、SETUP1.EXE によって LoadHelp フラグが調べられます。また、ヘルプ ファイルのインストールを指定した場合、ヘルプ ファイルに対し CopySection ステートメントが実行され、SETUP.LST ファイルの [HELP] セクションで指定される全ファイルがインストールされます。


関連項目

ODBC アプリケーションのセットアップ ディスクの作成 (Professional Edition および Enterprise Edition のみ)

セットアップ ツールキットを利用して配布用のメディアを作成する

セットアップ ツールキットの概要


配布が許諾されているファイル

関連項目

Microsoft Visual Basic を使って作成したアプリケーションは無償で配布できます。アプリケーションを実行するには、実行可能ファイル (.EXE) のほかに DLL またはカスタム コントロール (.OCX ファイル、.VBX ファイル)、ビットマップ形式 (.BMP) のファイルが必要になる場合もあります。

Visual Basic ディレクトリに含まれるファイルのうち、サンプル アプリケーション ファイル (\SAMPLES ディレクトリのファイル) と、\ICONS ディレクトリのファイルは、無償で自由に配布できます。

その他の無償で自由に配布できるファイルについては、下の表を参照してください。これらのアプリケーションの性能または商業性については、マイクロソフト社は一切の責任を持ちません。またアプリケーションの使用に関する保証はありません。

16 ビット版の Standard Edition および Professional Edition で配布が許諾されているファイル

ANIBTN16.OCX	BTRV200.DLL	COMDLG16.OCX	COMPOBJ.DLL	CRPE.DLL
CRXLAT16.DLL	CRYSTL16.OCX	CTL3DV2.DLL	DAO2516.DLL	DBCS2016.DLL
DBGRID16.OCX	DBLIST16.OCX	GAUGE16.OCX	GRAPH16.OCX	GRDKRN16.DLL
GRID16.OCX	GSW16.EXE	GSWDLL16.dll	KEYSTA16.OCX	MCI16.OCX
MSAJT200.DLL	MSCOMM16.OCX	MSJETERR.DLL	MSJETINT.DLL	MSMAPI16.OCX
MSMASK16.OCX	MSOUTL16.OCX	MSTX2016.DLl	MSXL2016.DLL	OC25.DLL
OC25JPN.DLL	OLE2.DLL	OLE2.REG	OLE2CONV.DLL	OLE2DISP.DLL
OLE2NLS.DLL	OLE2PROX.DLL	PDBBND.DLL	PDBDAO.DLL	pdctdao.dll
pdirdao.dll	pdsodbc.dll	PDX200.DLL	PICCLP16.OCX	qdbdaoJP.dll
qdcdaoJP.dll	qdrdaoJP.dll	qdsodbJP.dll	SCP.DLL	SPIN16.OCX
STDOLE.TLB	STKIT416.DLL	STORAGE.DLL	TABCTL16.OCX	THREED16.OCX
TYPELIB.DLL	uxddisk.dll	uxfdif.dll	uxfrec.dll	uxfsepv.dll
uxftext.dll	VAEN21.OLB	VB40016.DLL	VB4JP16.DLL	VBAJET.DLL
VBDB16.DLL	VSHARE.386	VXDDSKJP.DLL	VXFDIFJP.DLL	VXFRECJP.DLL
VXFSPVJP.DLL	VXFTXTJP.DLL	WBRTCALL.DLL	XBS200.DLL
上記に加えて 16 ビット版の Enterprise Edition で配布が許諾されているファイル

CLIREG16.EXE	AUTPRX.DLL	AUTPRX16.DLL	security.dll	rpcrt1.dll
rpc16c5.dll	rpc16c6.dll	rpc16dg6.dll	rpc16c4.dll	rpc16dg3.dll
rpc16c3.dll	rpcreg.dat
32 ビット版の Standard Edition および Professional Edition で配布が許諾されているファイル

ANIBTN32.OCX	CCTLJP32.DLL	COMCTL32.OCX	COMDLG32.OCX	CRPE32.DLL
CRXLAT32.DLL	CRYSTAL32.OCX	CTL3D32.DLL	DAO2532.TLB	DAO3032.DLL
DBGRID32.OCX	DBLIST32.OCX	GRAPH32.OCX	GRDKRN32.DLL	GRID32.OCX
GSW32.EXE	GSWDLL32.DLL	GUAGE32.OCX	KEYSTA32.OCX	MCI32.OCX
MFC40.DLL	MFC40LOC.DLL	MSCOMM32.OCX	MSJINT32.DLL	MSJT3032.DLL
MSJTER32.DLL	MSLT3032.DLL	MSMAPI32.OCX	MSMASK32.OCX	MSOUTL32.OCX
MSPX3032.DLL	MSRD2X32.DLL	MSTX3032.DLL	MSVCRT20.DLL	MSVCRT40.DLL
MSWNG300.DLL	MSXB3032.DLL	MSXL3032.DLL	ODBCJI32.DLL	ODBCJT32.DLL
ODBCTL32.DLL	OLEPRO32.DLL	P2BBND.DLL	P2BDAO.DLL	P2CTDAO.DLL
P2IRDAO.DLL	P2SODBC.DLL	PICCLP32.OCX	Q2BDAOJP.DLL	Q2CDAOJP.DLL
Q2RDAOJP.DLL	Q2SODBJP.DLL	RICHTX32.OCX	SPIN32.OCX	TABCTL32.OCX
THREED32.OCX	U2DDISK.DLL	U2FDIF.DLL	U2FREC.DLL	U2SEPV.DLL
U2FTEXT.DLL	V2DDSKJP.DLL	V2FDIFJP.DLL	V2FRECJP.DLL	V2FSPVJP.DLL
V2FTXTJP.DLL	VB40032.DLL	VB4JP32.DLL	VBAJET32.DLL	VBAR2232.DLL
VBDB32.DLL	VEN2232.OLB
上記に加えて 32 ビット版の Enterprise Edition で配布が許諾されているファイル

MSRDC32.OCX	MSRDO32.DLL	MSRDJP32.DLL	CLIREG32.EXE	AUTPRX32.DLL
AUTMGR32.EXE	RACMGR32.EXE	RACREG32.DLL	ODKOB32.DLL
注   Visual Basic 以外のアプリケーション製品にも、配布が許諾されているカスタム コントロール、.EXE ファイル、.DLL ファイルが含まれていることがあります。これらのファイルを配布しようとする場合は、各製品の使用許諾契約書を調べて、各ファイルの再配布が許諾されているかどうかを確認してください。


関連項目

16 ビット版用セットアップ ファイルと 32 ビット版用セットアップ ファイル

配布用のメディアの作成

配布ファイルの構成

セットアップ ツールキットに関連するファイル


ODBC アプリケーションのセットアップ ディスクの作成 (Professional Edition および Enterprise Edition のみ)

関連項目

ODBC を使用したアプリケーションを配布する場合、ODBC セットアップ ディスクを作成する必要があります。アプリケーション セットアップ プログラムによって、Microsoft Visual Basic アプリケーションをユーザーのシステムにインストールした後で、ODBC をインストールする必要があります。

ODBC セットアップ ディスクを作成するには

1.	Visual Basic のディレクトリの下の \ODBC ディレクトリ (16 ビット アプリケーションの場合) または \ODBC32 ディレクトリ (32 ビット アプリケーションの場合) にある全ファイルを、ディスクまたはネットワーク ディレクトリにコピーします。

2.	アプリケーションのインストールが終了したら、ODBC セットアップ ディスク またはネットワーク ディレクトリ の SETUP.EXE を実行します。この操作を実行するには、アプリケーション セットアップ プログラム内で Shell 関数を使用して ODBC の SETUP.EXE を実行するか、またはインストール ディスクのラベルに ODBC セットアップ プログラムを起動するように記述しておきます。

ODBC セットアップ ディスクを作成したら、ODBC ファイルがインストールされていないシステム上で ODBC セットアップ プログラムをテストして、正しくインストールされることを確認してください。

注   ODBC をユーザーのシステムにインストールするには、Visual Basic のディレクトリの下の \ODBC ディレクトリまたは \ODBC32 ディレクトリにある ODBC セットアップ プログラムを使用する必要があります。一部の ODBC ファイルは圧縮されていますが、ODBC セットアップ プログラムはインストールを行うときにこれらのファイルを展開します。


関連項目

セットアップ ツールキットを利用して配布用のメディアを作成する

インストール オプションの作成

セットアップ ツールキットの概要


依存ファイルの組み込みまたは削除

関連項目

セットアップ ウィザードのステップ 7 で [依存関係] フレームに表示されるファイルには、アプリケーションに必要ないファイルがあります。そのうちのいくつかのファイルとその機能を、次に示します。この機能を必要としない場合は、そのファイルを削除することができます。ファイルを削除する場合は、セットアップ ディスクを配布する前に、アプリケーションの機能をテストしてください。

ファイル	機能

MSWNG300.DLL	DAO Version 3.0 のレプリケーション メソッド。

CTL3DV2.DLL (16 ビット)	16 ビット版の Microsoft Visual Basic アプリケーションの入力用のダイアログ ボックス、メッセージ ダイアログ ボックス、およびエラー メッセージ ダイアログ ボックスの 3D 効果。Microsoft Windows 95 のアプリケーションには、このファイルは必要ありません。

CTL3D32.DLL (32 ビット)	32 ビット版の Visual Basic アプリケーションの入力用のダイアログ ボックス、メッセージ ダイアログ ボックス、およびエラー メッセージ ダイアログ ボックスの 3D 効果。Microsoft Windows 95 のアプリケーションには、このファイルは必要ありません。


関連項目

SWDEPEND.INI


SWDEPEND.INI

関連項目

SWDEPEND.INI ファイルには、Microsoft Visual Basic がその機能を依存しているファイルのリストが含まれます。セットアップ ディスクを作成する場合、セットアップ ウィザードによって、SWDEPEND.INI ファイルが読み込まれ、他の依存ファイル、特殊なファイルの属性、およびインストール先に関する情報が収集されます。このファイルは、\WINDOWS ディレクトリにあります。


関連項目

配布が許諾されているファイル

配布ファイルの構成

依存ファイルの組み込みまたは削除


クライアント登録ユーティリティ

クライアント登録ユーティリティは、リモートで実行するために OLE サーバーを登録する場合に、セットアップ ツールキットのセットアップ アプリケーションで使用されます。セットアップ スクリプトでリモート OLE サーバーを指定するときは、セットアップ ウィザードはクライアント登録ユーティリティを SETUP.LST ファイルに記述します。セットアップが、ユーザーのコンピュータ上で行われるときは、セットアップ アプリケーションはクライアント登録ユーティリティを使用してリモート OLE サーバーを登録します。クライアント登録ユーティリティは、Microsoft Visual Basic が OLE サーバーの EXE ファイルを作成する場合に、作成されるリモート サポート ファイル (.VBR) およびタイプ ライブラリ ファイル (.TLB) を使用します。これらのファイルをリモート OLE サーバーに作成するには、[ファイル] - [EXE ファイルの作成] コマンドを選択し、オプションを設定してから [リモート サーバー サポート ファイル] チェックボックスをオンにします。

構文

CLIREG[32][.EXE] vbrfile -s {s} | -p {p} | -a {a} | -t {t} | -u | -q | -l | -nologo | -[h | ?]

オプション	内容

-s {s}	ネットワーク アドレス {s} を指定します。

-p {p}	ネットワーク プロトコル {p} を指定します。

-a {a}	セキュリティ認証レベル {a} を 0 ～ 6 の範囲で指定します。

-t {t}	タイプ ライブラリ ファイル {t}を指定します。

-u	Quiet モード。情報を表示するダイアログ ボックスおよびエラー メッセージ ダイアログ ボックスは、表示されません。

-l	エラーの情報を CLIREG.LOG に書き込みます。

-nologo	コピーライト情報を表示しません。

-[h | ?]	コマンド ライン オプションを示すダイアログ ボックスを表示します。

クライアント登録ユーティリティの使い方については、Microsoft Visual Basic Enterprise Edition の『クライアント サーバー アプリケーション作成ガイド』の「第 3 章 Enterprise Edition のクライアント サーバー ツール」を参照してください。


アプリケーションの削除 (32 ビットのみ)

アプリケーション削除ユーティリティ (ST4UNST.EXE) では、Setup (ブートストラップ) によって生成されるセットアップ ログ、および SETUP132.EXE を使用して、既にインストールされたアプリケーションの削除が行われます。独自の SETUP132.EXE を作成した場合、これらは関連したコマンド ラインのオプションとして機能し、SETUP132.EXE またはブートストラップによって、ST4UNST.EXE に渡されます。または、Microsoft Windows NT のためのコマンド ラインのパラメータとして記述されます。

構文

ST4UNST[.EXE] -n | -e | -e1 | -e2 | -e3 | -f | -w processid

オプション	内容

-n	必ず指定します。セットアップ ログ ファイルの絶対パスを指定します。

-e 1	セットアップ プログラム (Setup または Setup1) を実行中に、致命的なエラーが発生し、アプリケーションの削除が行われています。この場合、“致命的なエラーが発生しました。”というエラー メッセージが表示され、アプリケーション削除ユーティリティによって、ユーザーに対してログ ファイルを削除するかどうかの確認が行われます。

-e 2	セットアップ プログラム (Setup または Setup1) を実行中に、ユーザーがインストールを中止するなどのエラーが発生し、アプリケーションの削除が行われています。“致命的なエラーが発生しました。”のエラー メッセージが表示され、アプリケーション削除ユーティリティによって、ユーザーに対してログ ファイルを削除するかどうかの確認が行われます。

-e 3	ユーザーによって一方的にキャンセル ボタンを押されました。ログ ファイルは削除されます。

-f	アプリケーションの強制削除。アプリケーションの削除処理を始める前に、ユーザーに再度確認を求めることはありません。ただし共有ファイルを削除する場合は、ユーザーに対して確認が行われます。このオプションは一般に、-e が存在するときに与えられます。

-w (processid)	アプリケーション削除ユーティリティでは、process ID (processid) で指定された処理が完了するまで、アプリケーションの削除が保留になります。これは、SETUP132.EXE がアプリケーション削除ユーティリティを手順に従って実行した後で、アプリケーションの削除を行います。


アプリケーションの削除が失敗する操作

アプリケーション削除ユーティリティの機能は、ログ ファイルおよびレジストリが正確な場合に動作します。アプリケーション削除ユーティリティが正常に動作しない場合を次に示します。

1.	ユーザーが共有ファイルを複製した場合 (たとえば、参照カウントを更新しない状態で)。

2.	インストール済みのファイル、またはアプリケーションのディレクトリを、アプリケーション削除ユーティリティを使用せずに削除した場合。次の 2 つの問題が起こります。

ログ ファイルを削除すると、その後のアプリケーションの削除ができなくなります。

アプリケーション ディレクトリのプログラム ファイル、DLL、また OCX から、レジストリのエントリを削除できなくなります。自分自身のレジストリのエントリを削除するには、これらのファイルが実行される必要があるためです。

3.	Microsoft Windows 95 のアプリケーションによってインストールされた共有ファイルと同じファイルが、Microsoft Windows Version 3.1、または Windows 95 のアプリケーションのインストール プログラムによってインストールされた場合。

4.	共有ファイルが、ハード ディスク ドライブに既に存在していたのとは、違うディレクトリにインストールされた場合。

5.	Microsoft Visual Basic アプリケーションのセットアップ プログラムを、ある特定の実行開始モードの設定に従って作成します。その後、同じアプリケーションに対して別のセットアップ プログラムを、異なる実行開始モードの設定に従って作成した場合。

6.	実行開始モードを“独立型”に設定して、セットアップ ウィザードでセットアップ プログラムを作成し、実行します。その後、別のセットアップ プログラムを別の Visual Basic アプリケーション用に作成し、1 つめのアプリケーションを 2 つめのセットアップ プログラムのコンポーネントとして (たとえば、[OLE サーバーの追加] または [ファイルの追加] ボタンを使用して) 追加した場合。エンド ユーザーが特定の Visual Basic の OLE サーバーを別のアプリケーションのセットアップ プログラムに組み込む可能性がある場合は、実行開始モードを“独立型”に設定します。

7.	エンド ユーザーが、同じ Visual Basic アプリケーションを 2 つの異なるディレクトリにインストールした場合、最初にインストールしたプログラムが動作しなくなります。アプリケーションを削除する手順も無効になります。異なるディレクトリにアプリケーションをインストールする場合は、常に、1 つめのアプリケーションを削除する必要があります。

8.	セットアップ ログ ファイルを削除する場合。アプリケーションのセットアップ ログ ファイルがないとインストールに関する情報を取得できません。アプリケーションの削除ユーティリティも動作しません。

これらの状況のなかには、インストールしたファイルとレジストリの内容が一致しなくなったり、アプリケーション削除ユーティリティによって、特定のファイルに関する参照カウントが、誤って 0 と判断される原因になる場合があります。また、そのファイルを削除するかどうかの確認が求められます。ファイルが誤って削除された場合、依存ファイルまたはコンポーネントが見つからないなどの理由で、他のアプリケーションが動作しなくなったり、正しく動作しなくなることがあります。


セットアップ ウィザードのエラー メッセージ“セットアップ プログラムを起動できません。”

このエラー メッセージは、セットアップ ウィザードが 16 ビット版か 32 ビット版かに応じて、異なります。16 ビット版のセットアップ ウィザードは、“セットアップ プログラムを起動できません。(WinExec() がエラー コード number を返しました。)”というメッセージを表示します。この 16 進形式の number は、返されたエラー コードを示します。詳細については、Win31SDK.HLP (16 ビット版) の WinExec エラー コードを参照してください。

32 ビット版のセットアップ ウィザードは、“セットアップ プログラムを起動できません。(CreateProcess() がエラー コード number を返しました。)”というメッセージを表示します。この 16 進形式の number は、返されたエラー コードを示します。詳細については、WinError.H ファイルの Win32 API エラー コードを参照してください。

このエラー メッセージは、いくつかの状況で表示されます。通常、次のような場合に表示されます。

問題	解決方法
SETUP1.EXE が破損した場合	SETUP1.EXE を再構築します。
サポート ファイルが見つからない、または破損した場合	SWDEPEND.INI のブートストラップ ファイルが破損していないか確認します。 SETUP132.EXE が SETUP.LST で正しく参照されているか確認します。
インストール ディスクが破損した場合	インストール ディスクを再構築します。


ActiveProject プロパティ (アドイン)

関連項目	対象

現在アクティブなプロジェクトを表す ProjectTemplate オブジェクトを返します。

構文

object.ActiveProject

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

ActiveProject プロパティは、現在アクティブなプロジェクトの取得に使います。Visual Basic Version 4.0 では、一度に開くことができるプロジェクトは 1 つだけです。したがって、ActiveProject プロパティは、現在開いているプロジェクトを返します。ActiveProject プロパティは、次の操作にも使えます。

現在の ActiveForm オブジェクトへのアクセス

フォームまたはその他の要素のプロジェクトへの新規追加

現在選択されている構成要素の取得


関連項目

ProjectTemplate オブジェクト (アドイン)

LoadProject メソッド (アドイン)


ActiveProject プロパティの対象

Application オブジェクト (アドイン)


Add メソッド (アドイン)

関連項目	対象

ControlTemplates コレクションの場合、フォームに新しいコントロールを追加します。

MenuItems コレクションの場合、MenuItems コレクションに MenuLine オブジェクトを追加します。

名前付き引数は、指定できません。

構文

object.Add (classname [, container]) As ControlTemplate

object.Add (caption) As MenuLine

Add メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

classname	必ず指定します。ControlTemplates コレクションと共に使用します。追加するコントロールのクラス名を表す文字列式を指定します。

container	省略可能です。ControlTemplates コレクションと共に使用します。追加するコントロールのコンテナを表すオブジェクト式を指定します。

caption	必ず指定します。MenuItems コレクションと共に使用します。新しい MenuLine オブジェクトのキャプションを表す文字列式を指定します。引数 caption の値のアクセス キーとなる文字の前には、アンパサンド (&) を付けます。

解説

ControlTemplates コレクションに対して使用する場合、指定したコントロールのクラスへの参照が、現在アクティブなプロジェクト内に既に設定されていなければなりません。Add メソッドは、新しいコントロールを表す ControlTemplate オブジェクトを返します。

MenuItems コレクションに対して使う場合、Add メソッドは新しい MenuLine オブジェクトを返します。

アクセス キーを指定しないアンパサンドをコマンドの中に挿入するには、2 つ続けてアンパサンド (&&) を指定します。この指定を行うと、コマンドにアンパサンドが 1 つ表示され、どの文字にもアンダーラインは付きません。アドインではメニューに区分線を作成することはできないため、引数 caption にハイフン (-) は指定できません。


関連項目

AddMenu メソッド (アドイン)

AddReference メソッド (アドイン)

AddToolboxProgID メソッド (アドイン)

AddToolboxTypelib メソッド (アドイン)

AddToolboxVBX メソッド (アドイン)

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)

MenuLine オブジェクト (アドイン)

Remove メソッド (アドイン)


Add メソッド (アドイン) の対象

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)

MenuItems コレクション (アドイン)


AddFile メソッド (アドイン)

関連項目	対象

現在のプロジェクトにフォームまたはモジュールが含まれているファイルを追加します。名前付き引数は、指定できません。

構文

object.AddFile (filename) As String

AddFile メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

filename	必ず指定します。プロジェクトに追加するフォームまたはモジュールのファイル名を表す文字列式を指定します。パスを指定しなかった場合は、ファイルが見つからないと、Microsoft Windows API の OpenFile 関数が使われ、定められた順序でディレクトリ内のファイルが検索されます。

解説

AddFile メソッドは、プロジェクトに追加されるファイルの種類を判別して、ファイルの種類を表す文字列 ("Form"、"Module"、"Class") を返します。

注   このメソッドが正常に呼び出されると、FileControl オブジェクトに対応するイベントが発生します。


関連項目

FileControl オブジェクト (アドイン)

RemoveComponent メソッド (アドイン)


AddFile メソッド (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


AddFormTemplate メソッド (アドイン)

関連項目	対象

プロジェクトに新しいフォームを追加します。名前付き引数は、指定できません。

構文

object.AddFormTemplate

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

AddFormTemplate メソッドで作成された Form オブジェクトは、アクティブな Form オブジェクトになります。新しい Form オブジェクトの名前は、[挿入] - [フォーム モジュール] コマンドを選択した場合と同じように付けられます。このメソッドは、新しいフォームを表す FormTemplate オブジェクトを返します。


関連項目

AddFile メソッド (アドイン)

AddMDIFormTemplate メソッド (アドイン)

FormTemplate オブジェクト (アドイン)

RemoveComponent メソッド (アドイン)


AddFormTemplate メソッドの対象

ProjectTemplate オブジェクト (アドイン)


AddInMenu プロパティ (アドイン)

関連項目	対象

Visual Basic メニュー バーの [アドイン] メニューを表す SubMenu オブジェクトを返します。

構文

object.AddInMenu

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

AddInMenu プロパティは、[アドイン] メニューにメニューおよびコマンドを追加する場合に使用します。このプロパティが返す SubMenu オブジェクトのプロパティとメソッドは、他の SubMenu オブジェクトと同じです。ただし、AddInMenu プロパティが返す SubMenu オブジェクトの Parent プロパティは、すべて Null 値に設定されます。


関連項目

SubMenu オブジェクト (アドイン)


AddInMenu プロパティ (アドイン) の対象

Application オブジェクト (アドイン)


AddMDIFormTemplate メソッド (アドイン)

関連項目	対象

プロジェクトに新しい MDIForm オブジェクトを追加します。名前付き引数は、指定できません。

構文

object.AddMDIFormTemplate

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

新しい MDIForm オブジェクトは、アクティブ フォームになります。MDIForm オブジェクトに追加できるコントロールの種類には制限があり、MDIForm オブジェクトに Align プロパティを持たないコントロールを追加すると、エラーが発生します。

新しい MDIForm オブジェクトの名前は、[挿入] - [MDI フォーム モジュール] コマンドを選択した場合と同じように付けられます。

1 つのプロジェクトに登録できる MDIForm オブジェクトは 1 つだけです。既に別の MDIForm オブジェクトがプロジェクトに存在する場合にこのメソッドを呼び出すと、エラーが発生します。AddMDIFormTemplate メソッドは、新しい MDIForm オブジェクトを表す FormTemplate オブジェクトを返します。


関連項目

AddFile メソッド (アドイン)

AddFormTemplate メソッド (アドイン)

FormTemplate オブジェクト (アドイン)

RemoveComponent メソッド (アドイン)


AddMDIFormTemplate メソッド (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


AddMenu メソッド (アドイン)

関連項目	対象

MenuItems コレクションに SubMenu オブジェクトを追加します。名前付き引数は、指定できません。

構文

object.AddMenu caption

AddMenu メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

caption	必ず指定します。新しいメニューの Caption プロパティを表す文字列式を指定します。引数 caption では、アクセス キーとなる文字の前にはアンパサンド (&) を付けます。

解説

アクセス キーを指定しないアンパサンドをコマンドの中に挿入するには、2 つ続けてアンパサンド (&&) を指定してください。


関連項目

Add メソッド (アドイン)

Remove メソッド (アドイン)

SubMenu オブジェクト (アドイン)


AddMenu メソッド (アドイン) の対象

MenuItems コレクション (アドイン)


AddMenuTemplate メソッド (アドイン)

関連項目	対象

Form オブジェクトに SubMenu オブジェクトを追加します。名前付き引数は、指定できません。

構文

object.AddMenuTemplate name, parent

AddMenuTemplate メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

name	必ず指定します。新しいメニューの Name プロパティを表す文字列式を指定します。

parent	必ず指定します。新しいメニュー項目の親メニュー項目となる ControlTemplate オブジェクトの名前を指定します。フォームのメニュー バーに新しいメニューを追加する場合は、引数 parent には Null 値を指定します。

解説

フォーム上のメニューは、ControlTemplate オブジェクトとして、参照および格納することができます。新しいメニューは既存のメニューの末尾に追加されます。既存のメニューの間に新しいメニューを挿入することはできません。AddMenuTemplate メソッドは、新しく作成されたメニューを表す ControlTemplate オブジェクトを返します。


関連項目

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)


AddMenuTemplate メソッドの対象

FormTemplate オブジェクト (アドイン)


AddReference メソッド (アドイン)

関連項目	対象

Microsoft Visual Basic 内で、指定されたタイプ ライブラリへの参照を追加します。名前付き引数は、指定できません。

構文

object.AddReference guid, majorversion, minorversion, filename

AddReference メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

guid	省略可能です。パブリックな適用範囲内で重複しないタイプ ライブラリ識別子を表す文字列式を指定します。引数 guid を指定した場合、引数 majorversion も指定する必要があります。

majorversion	省略可能です。タイプ ライブラリのメジャー バージョン番号を示す短い式を指定します。

minorversion	省略可能です。タイプ ライブラリのマイナ バージョン番号を示す短い式を指定します。引数 minorversion を指定しなかった場合は、引数 majorversion で指定したメジャー バージョン番号の最新のマイナ バージョン番号が使われます。

filename	省略可能です。Visual Basic に追加するように指定した、タイプ ライブラリの名前を表す文字列式を指定します。絶対パス名も使えます。指定したファイルが見つからない場合は、絶対パス名を指定したときでも、Microsoft Windows API の OpenFile 関数が使われ、定められた順序でディレクトリ内のファイルが検索されます。

解説

指定した引数 guid がシステムのレジストリのタイプ ライブラリのセクションにない場合、および、引数 guid を指定しないで引数 filename を指定していた場合、Visual Basic は指定されたファイルをロードし、レジストリにそのファイルを登録して、新しく登録されたファイルを参照します。引数 guid がレジストリのタイプ ライブラリのセクションにない場合、引数 filename のファイルが見つからない場合、引数 guid または filename を指定しなかった場合は、エラーが発生します。

注   AddReference メソッドを呼び出すと、指定したタイプ ライブラリは参照設定の一覧の末尾に追加されることに注意してください。コード内でオブジェクトへの参照を省略した場合は (Excel.Sheet の代わりに Sheet と記述するなど)、Visual Basic では、参照設定の一覧の先頭の参照先から該当するものを探し、最初に一致するオブジェクトが使われます。


関連項目

Add メソッド (アドイン)

AddToolboxProgID メソッド (アドイン)

AddToolboxTypelib メソッド (アドイン)

AddToolboxVBX メソッド (アドイン)


AddReference メソッド (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


AddToolboxProgID メソッド (アドイン)

関連項目	対象

Microsoft Visual Basic のツールボックスに、複合ドキュメント オブジェクトを登録します。名前付き引数は、指定できません。

構文

object.AddToolboxProgID progid, filename

AddToolboxProgID メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

progid	必ず指定します。Visual Basic のツールボックスに登録する複合ドキュメント オブジェクトの、プログラムでの識別子を表す文字列式を指定します。バージョンに依存しないプログラム ID もバージョンに依存するプログラム ID も使えます。バージョンに依存しないプログラム ID を指定した場合、最新バージョンのオブジェクトが配置されます。指定した複合ドキュメント オブジェクトにタイプ ライブラリが関連付けられている場合、そのタイプ ライブラリへの参照も設定されます。

filename	省略可能です。Visual Basic に追加するタイプ ライブラリを表す文字列式を指定します。絶対パス名も使えます。指定したファイルが見つからない場合は、絶対パス名を指定したときでも、Microsoft Windows API の OpenFile 関数が使われ、定められた順序でディレクトリ内のファイルが検索されます。

解説

引数 filename にファイル名を指定すると、引数 progid に指定したプログラム ID が見つからない場合に、指定したファイル内でタイプ ライブラリが検索されます。それがレジストリに登録され、新しく登録されたオブジェクトがツールボックスに追加されます。指定したタイプ ライブラリに複数のオブジェクトがあると、そのオブジェクトすべてがツールボックスに追加されます。プログラム ID が見つからず、引数 filename も指定していなかった場合は、エラーが発生します。


関連項目

Add メソッド (アドイン)

AddReference メソッド (アドイン)

AddToolboxTypelib メソッド (アドイン)

AddToolboxVBX メソッド (アドイン)


AddToolboxProgID メソッド (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


AddToolboxTypelib メソッド (アドイン)

関連項目	対象

タイプ ライブラリへの参照を指定し、そのタイプ ライブラリ内のオブジェクトを Microsoft Visual Basic のツールボックスに登録します。名前付き引数は、指定できません。

構文

object.AddToolboxTypelib guid, majorversion, minorversion, filename

AddToolboxTypelib メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

guid	必ず指定します。Visual Basic のツールボックスに登録するオブジェクトの、パブリックな適用範囲内で重複しない識別子を表す文字列式を指定します。

majorversion	必ず指定します。Visual Basic のツールボックスに登録するオブジェクトのメジャー バージョン番号を示す短い式を指定します。

minorversion	必ず指定します。Visual Basic のツールボックスに登録するオブジェクトのマイナ バージョン番号を示す短い式を指定します。

filename	省略可能です。Visual Basic で参照されるタイプ ライブラリのファイル名を示す文字列式を指定します。絶対パス名も使えます。指定したファイルが見つからない場合は、絶対パス名を指定したときでも、Microsoft Windows API の OpenFile 関数が使われ、定められた順序でディレクトリ内のファイルが検索されます。

解説

引数 filename にファイル名を指定すると、引数 guid、majorversion、minorversion で指定したバージョンのオブジェクトが見つからない場合に、指定したファイル内でタイプ ライブラリが検索されます。それがレジストリに登録され、新しく登録されたオブジェクトがツールボックスに追加されます。指定したタイプ ライブラリに複数のオブジェクトが含まれていると、そのオブジェクトすべてがツールボックスに追加されます。引数 guid、majorversion、minorversion で指定したオブジェクトが見つからず、引数 filename も指定していなかった場合は、エラーが発生します。

注   このメソッドを呼び出すと、指定したタイプ ライブラリは参照設定の一覧の末尾に追加されることに注意してください。コード内でオブジェクトへの参照を省略した場合は (Excel.Sheet の代わりに Sheet と記述するなど)、Visual Basic では、参照設定の一覧の先頭の参照先から該当するものを探し、最初に一致するオブジェクトが使われます。


関連項目

Add メソッド (アドイン)

AddReference メソッド (アドイン)

AddToolboxProgID メソッド (アドイン)

AddToolboxVBX メソッド (アドイン)


AddToolboxTypelib メソッド (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


AddToolboxVBX メソッド (アドイン)

関連項目	対象

VBX コントロールを Microsoft Visual Basic のツールボックスに追加します。名前付き引数は、指定できません。

構文

object.AddToolboxVBX vbxfile

AddToolboxVBX メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

vbxfile	必ず指定します。Visual Basic のツールボックスに追加する VBX コントロールのファイル名を表す文字列式を指定します。絶対パス名も指定できます。指定したファイルが見つからない場合は、絶対パス名を指定したときでも、Microsoft Windows API の OpenFile 関数が使われ、定められた順序でディレクトリ内のファイルが検索されます。

解説

指定したファイルに複数の VBX コントロールが入っている場合は、ファイル内のすべての VBX コントロールがツールボックスに追加されます。


関連項目

Add メソッド (アドイン)

AddReference メソッド (アドイン)

AddToolboxProgID メソッド (アドイン)

AddToolboxTypelib メソッド (アドイン)


AddToolboxVBX メソッド (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


AfterAddFile イベント (アドイン)

関連項目	対象

現在の Microsoft Visual Basic プロジェクトにファイルを追加すると呼び出されます。

構文

Private Sub AfterAddFile(filename As String)

引数 filename には、追加されたファイルの名前を表す文字列式を指定します。

解説

AfterAddFile イベントは、[ファイル] - [ファイルの追加] コマンドで追加できるファイルに対してだけ呼び出されます。このコマンドで追加できるファイルは、フォーム、クラス、およびモジュールです。.FRX ファイルが関連付けられているフォームを追加すると、フォームと .FRX ファイルの両方について、AfterAddFile イベントが 2 回呼び出されます。.FRX ファイルが作成されるようなフォームを初めて保存すると、実際には、.FRX ファイルがプロジェクトに追加されることになるので、.FRX ファイルに対してこのイベントが呼び出されます。このイベントは、FileControl オブジェクトに接続されているすべてのアドイン内で呼び出されます。追加操作は完了しているので、アドインからファイルの追加を取り消すことはできません。ただし、イベントに関する情報を記録することができます。


関連項目

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)

DoGetAddFileName イベント (アドイン)


AfterAddFile イベント (アドイン) の対象

FileControl オブジェクト (アドイン)


AfterChangeFileName イベント (アドイン)

関連項目	対象

現在のプロジェクト内のファイル名が変更され、そのファイルが新しいファイル名でディスクに保存された後、または、実行可能ファイル (.EXE) を作成した後に呼び出されます。

構文

Private Sub AfterChangeFileName(filetype As String, newname As String, oldname As String)

AfterChangeFileName イベントの構文の指定項目は次のとおりです。

指定項目	内容

filetype 	ファイルの種類を表す値または定数を指定します。設定する値については、次の「設定値」を参照してください。

newname 	変更されたファイルの名前を表す文字列式を示す文字列式を指定します。

oldname 	変更される前のファイルの名前を表す文字列式を指定します。

設定値

引数 filetype の設定値は次のとおりです。

定数	値	内容

vbextFileTypeForm	0	フォーム モジュール (.FRM)

vbextFileTypeModule	1	標準モジュール (.BAS)

vbextFileTypeClass	2	クラス モジュール (.CLS)

vbextFileTypeProject	3	プロジェクト ファイル (.VBP)

vbextFileTypeExe	4	実行可能ファイル (.EXE)

vbextFileTypeFrx	5	バイナリ データ ファイル(.FRX)

vbextFileTypeRes	6	リソース ファイル (.RES)

解説

フォーム モジュールのファイル名が変更されて、フォーム モジュールと同時に .FRX ファイルも保存された場合は、フォーム モジュールと .FRX ファイルの両方について、AfterChangeFileName イベントが呼び出されます。このイベントは、FileControl オブジェクトに接続されているすべてのアドイン内で呼び出されます。名前の変更作業は完了しているので、アドインから名前の変更を取り消すことはできません。ただし、イベントに関する情報を記録したり、引数 oldname のファイルを削除するかどうかをユーザーに確認したりできます。その後、名前が変更されたファイルについて、BeforeLoadFile イベントが呼び出されます。


関連項目

BeforeLoadFile イベント (アドイン)

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)

DoGetNewFileName イベント (アドイン)

RequestChangeFileName イベント (アドイン)


AfterChangeFileName イベント (アドイン) の対象

FileControl オブジェクト (アドイン)


AfterClick イベント (アドイン)

関連項目	対象

Visual Basic のユーザーが、MenuLine オブジェクトに関連付けられているメニュー項目をクリックすると発生します。

構文

Private Sub AfterClick()

解説

AfterClick イベントは、MenuLine オブジェクトの ConnectEvents メソッドに渡されたオブジェクトに対して呼び出されます。ConnectEvents メソッドでオブジェクトを接続した後は、ユーザーがそのメニュー項目をクリックするたびに、そのオブジェクトの AfterClick イベントが発生します。どのメニュー項目がクリックされたかは判別できないので、メニュー項目それぞれにオブジェクトを作成します。


関連項目

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)


AfterClick イベント (アドイン) の対象

MenuLine オブジェクト (アドイン)


AfterCloseFile イベント (アドイン)

関連項目	対象

プロジェクトが閉じられた場合に呼び出されます。たとえば、ユーザーがプロジェクトを閉じた場合、Microsoft Visual Basic の終了時にプロジェクトが閉じられた場合などに呼び出されます。

構文

Private Sub AfterCloseFile(filename() As String)

引数 filename には、閉じたファイルの名前を表す文字列式を指定します。

解説

AfterCloseFile イベントは、FileControl オブジェクトに接続されているすべてのアドインで、1 つのプロジェクトについて何回か呼び出されます。各 .FRX ファイルについて 1 回、つまり、すべてのフォーム モジュール、標準モジュール、およびクラス モジュールについて 1 回と、プロジェクト ファイルについて 1 回呼び出されます。ファイルを閉じる操作は完了しているので、アドインからファイルを閉じる操作を取り消すことはできません。ただし、イベントに関する情報を記録することはできます。


関連項目

AfterWriteFile イベント (アドイン)

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)

DoGetOpenProjectName イベント (アドイン)

RequestWriteFile イベント (アドイン)


AfterCloseFile イベント (アドイン) の対象

FileControl オブジェクト (アドイン)


AfterRemoveFile イベント (アドイン)

関連項目	対象

Visual Basic 内の現在のプロジェクトからファイルを解放した後に呼び出されます。

構文

Private Sub AfterRemoveFile(filename As String)

引数 filename には、解放したファイルの名前を表す文字列式を指定します。

解説

解放するフォーム モジュールに関連付けられた .FRX ファイルがある場合は、両方のファイルについて、AfterRemoveFile イベントが呼び出されます。以前は .FRX ファイルが必要だったが現在は不要になったフォームが保存されると、.FRX ファイルについてこのイベントが呼び出されます。AfterRemoveFile イベントは、FileControl オブジェクトに接続されているすべてのアドイン内で呼び出されます。ファイルの解放操作は完了しているので、アドインでファイルの解放を取り消すことはできません。ただし、イベントに関する情報の記録、プロジェクト ファイルのチェックアウト、解放されたファイルを削除するかどうかの確認などを行うことができます。


関連項目

AfterCloseFile イベント (アドイン)

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)

RequestWriteFile イベント (アドイン)


AfterRemoveFile イベント (アドイン) の対象

FileControl オブジェクト (アドイン)


AfterWriteFile イベント (アドイン)

関連項目	対象

ファイルが保存された後に呼び出されます。

構文

Private Sub AfterWriteFile(filename As String, success As Integer)

AfterWriteFile イベントの構文の指定項目は次のとおりです。

指定項目	内容

filename	保存したファイルの名前を表す文字列式を指定します。

success	ファイルが正常に保存されたかどうかを示す値または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 success の設定値は次のとおりです。

定数	値	内容

vbextWriteSuccess	0	ファイルは正常に保存されました。

vbextWriteCancelled	1	操作はキャンセルされました。

vbextWriteFailed	2	保存に失敗しました。

解説

AfterWriteFile イベントは、FileControl オブジェクトに接続されているすべてのアドイン内で呼び出されます。書き込み操作は完了しているので、アドインでファイルの保存を取り消すことはできません。ただし、AfterWriteFile イベントを使うと、次のような操作を行うことができます。

このイベントに関する情報の記録

ファイルに関する情報の更新

保存されたファイルのバックアップ

実行可能ファイル (.EXE) のバージョンの比較


関連項目

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)

RequestWriteFile イベント (アドイン)


AfterWriteFile イベント (アドイン) の対象

FileControl オブジェクト (アドイン)


Application オブジェクト (アドイン)

関連項目	プロパティ	メソッド	イベント

アドインが接続されているアプリケーションを表します。

構文

Application

解説

Application オブジェクトは、Visual Basic の現在のインスタンスが持ついくつかのプロパティを公開します。このオブジェクトで公開されているプロパティを使うと、Microsoft Visual Basic がアドインをサポートするために公開しているすべてのオブジェクトに、アクセスすることができます。Application オブジェクトは、アドインがロードされると、アドイン オブジェクトの ConnectAddIn イベントに渡されます。

Name プロパティは、Application オブジェクトの既定プロパティです。


関連項目

Visual Basic にアドインを追加

アドインの作成

ProjectTemplate オブジェクト (アドイン)

アドイン オブジェクトの操作


Application オブジェクト (アドイン) のプロパティ

ActiveProject プロパティ (アドイン)

AddInMenu プロパティ (アドイン)

Application プロパティ (アドイン)

FileControl プロパティ (アドイン)

FullName プロパティ (アドイン)

LastUsedPath プロパティ (アドイン)

Name プロパティ

Parent プロパティ

ReadOnlyMode プロパティ (アドイン)

Version プロパティ (アドイン)


 Application オブジェクトのメソッド

LoadProject メソッド (アドイン)


 Application オブジェクトのイベント

ConnectAddIn イベント (アドイン)

DisConnectAddIn イベント (アドイン)


Application プロパティ (アドイン)

関連項目	対象

Microsoft Visual Basic 開発環境 (VB.EXE) の現在のインスタンスを表す Application オブジェクトを返します。

構文

object.Application

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。


関連項目

Application オブジェクト (アドイン)

Parent プロパティ


Application プロパティ (アドイン) の対象

Application オブジェクト (アドイン)

Component オブジェクト (アドイン)

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)

FileControl オブジェクト (アドイン)

FormTemplate オブジェクト (アドイン)

MenuItems コレクション (アドイン)

MenuLine オブジェクト (アドイン)

ProjectTemplate オブジェクト (アドイン)

Property オブジェクト、Properties コレクション (アドイン)

SelectedComponents コレクション (アドイン)

SelectedControlsTemplates コレクション (アドイン)

SubMenu オブジェクト (アドイン)


BeforeLoadFile イベント (アドイン)

関連項目	対象

ファイルが Microsoft Visual Basic にロードされる前に呼び出されます。

構文

Private Sub BeforeLoadFile(filenames() As String)

引数 filename には、ロードするファイルの名前を示す文字列式を指定します。プロジェクト (.VBP) ファイルで参照する .VBX ファイルもすべて指定します。

解説

BeforeLoadFile イベントは、FileControl オブジェクトに接続されているすべてのアドイン内で呼び出されます。このイベントは、プロジェクト ファイルについて 1 回と、すべてのフォーム モジュール、標準モジュール、およびクラス モジュールについて 1 回というように、1 つのプロジェクトについて 2 回ずつ呼び出されます。プロジェクト内のファイルの名前が変更される場合にも、実際には新しいファイルがロードされるので、このイベントが呼び出されます。このアドインでファイルのロードを取り消すことはできません。ただし、イベントに関する情報の記録、ロードされるファイルの準備作業、ファイルのチェックアウトなどを行うことができます。


関連項目

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)

DoGetAddFileName イベント (アドイン)


BeforeLoadFile イベント (アドイン) の対象

FileControl オブジェクト (アドイン)


ClassName プロパティ (アドイン)

対象

コントロールのクラス名を返します。

構文

object.ClassName

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

ClassName プロパティの設定は、Visual Basic のプロパティ ウィンドウに表示されるこのコントロールのクラス名と同じです。

ClassName プロパティは、ControlTemplate オブジェクトの既定プロパティです。


ClassName プロパティ (アドイン) の対象

ControlTemplate オブジェクト (アドイン)


Component オブジェクト、Components コレクション (アドイン)

プロパティ	メソッド

Microsoft Visual Basic のプロジェクト内の 1 つの構成要素を表します。

構文

Component

解説

Component オブジェクトは、.RES ファイル、フォーム モジュール、標準モジュール、およびクラス モジュールのいずれかです。このオブジェクトを使うと、構成要素が更新されているかどうか、およびこの構成要素に関連付けられているファイルの名前をアドインで確認することができます。また、構成要素に別のファイル名を付けて保存することができます。


Component オブジェクト、Components コレクション (アドイン) のプロパティ

凡例

Application プロパティ (アドイン)

Count プロパティ

FileCount プロパティ (アドイン)

FileNames プロパティ (アドイン)

IconState プロパティ (アドイン)

IsDirty プロパティ (アドイン)

Name プロパティ

Parent プロパティ


Component オブジェクト、Components コレクション (アドイン) のメソッド

凡例

InsertFile メソッド (アドイン)

Item メソッド (アドイン)

Reload メソッド (アドイン)

SaveAs メソッド (アドイン)


ConnectAddIn イベント (アドイン)

関連項目	対象

アドインが Microsoft Visual Basic のインスタンスに接続されると呼び出されます。

構文

Private Sub ConnectAddIn(vbinstance As Object)

引数 vbinstance には、Application オブジェクトのインスタンスを示すポインタを指定します。

解説

ConnectAddIn イベントは、Visual Basic のユーザーが [アドイン マネージャ] ダイアログ ボックスでアドインを選択してから [OK] ボタンをクリックしたときと、VB.INI ファイルに指定されているアドインで 1 の値を持つものがロードされたときに発生します。引数 vbinstance を使うと、AddInMenu プロパティや LastUsedPath プロパティのような、アドインが関連付けられている Visual Basic のインスタンス内のさまざまなオブジェクトにアクセスすることができます。アドイン オブジェクトは、データ構造の初期化、Visual Basic の [アドイン] メニューへのメニューの追加などを行います。1 つのアドインに Visual Basic の複数のインスタンスを接続できるので、クラスのインスタンスが 1 つしか作成されないと想定することのないように注意してください。

注意   引数 vbinstance をアドインのパブリック変数に代入しないでください。アドインが Visual Basic の複数のインスタンスに同時に追加されたとき、そのパブリック変数には最後に追加されたインスタンスの引数 vbinstance しか代入されません。


関連項目

Application オブジェクト (アドイン)

DisconnectAddIn イベント (アドイン)


ConnectAddIn イベント (アドイン) の対象

Application オブジェクト (アドイン)


ConnectEvents メソッド (アドイン)

関連項目	対象

アドインのオブジェクトを Microsoft Visual Basic に接続し、そのオブジェクトが、ファイル制御イベント (FileControl オブジェクトと共に使用した場合)、またはメニュー項目の選択 (MenuItems コレクションと共に使用した場合) に関する通知を受け取れるようにします。名前付き引数は、指定できません。

構文

object.ConnectEvents (eventsink)

ConnectEvents メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

eventsink	必ず指定します。Visual Basic のクラス モジュールで定義されたオブジェクトへの参照を表すオブジェクト式を使用して、Visual Basic に接続するオブジェクトや Visual Basic からのイベントを受け取るオブジェクトを指定します。

戻り値

ConnectEvents メソッドは、アドインを切断するときに DisconnectEvents メソッドに渡す固有の識別子を長整数で返します。

解説

FileControl オブジェクトを接続する場合、引数 eventsink には、アドインに受け取らせたい Visual Basic ファイル制御イベントのメソッドを指定します。このオブジェクトは、このイベントが発生したときに Visual Basic から呼び出されます。

MenuLine オブジェクトを接続する場合、引数 eventsink には AfterClick イベントが発生したときに呼び出されるメソッドを指定します。このメニュー項目がクリックされると AfterClick イベントが発生し、引数 eventsink に指定した AfterClick メソッドが実行されます。1 つの MenuLine オブジェクトはオブジェクトを 1 つだけ接続できます。


関連項目

DisconnectEvents メソッド (アドイン)


ConnectEvents メソッド (アドイン) の対象

FileControl オブジェクト (アドイン)

MenuLine オブジェクト (アドイン)

ProjectTemplate オブジェクト (アドイン)


Container プロパティ (アドイン)

関連項目	対象

コントロールのコンテナを表す FormTemplate オブジェクトまたは ControlTemplate オブジェクトを設定します。値の取得も可能です。

構文

object.Container [= container]

Container プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

container	このコントロールの新規コンテナとなるオブジェクト式を指定します。

解説

コンテナは、Form オブジェクトである場合と、フレーム (Frame) コントロールのようなフォーム上の別のコントロールである場合があります。このプロパティは、値の取得および設定ともに可能なので、既存のフレーム コントロールに新しいコントロールまたは既存のコントロールを入れることができます。


関連項目

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)

FormTemplate オブジェクト (アドイン)


Container プロパティ (アドイン) の対象

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)


ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)

関連項目	プロパティ	メソッド

フォーム上の 1 つのコントロール、またはフォーム上のすべてのコントロールを表します。

構文

ControlTemplate

ControlTemplates

解説

アドインでは、ControlTemplate オブジェクトを通じて、それぞれのコントロールにアクセスしたり、ControlTemplates コレクションを通じて複数のコントロールにアクセスしたりできます。ControlTemplate オブジェクトを使うと、次の操作を行うことができます。

デザイン時におけるコントロールのすべてのプロパティへのアクセス

コントロールのコンテナの識別

コントロールの Z オーダーの変更

ControlTemplates コレクションを使うと、次の操作を行うことができます。

フォーム上のすべてのコントロールへのアクセス

コレクション内の各コントロールのループ処理

特定のコントロールへのアクセス

フォームへの複数のコントロールの追加

ClassName プロパティは、ControlTemplate オブジェクトの既定プロパティです。また、Item メソッドは、ControlTemplates コレクションの既定プロパティです。


関連項目

SelectedControlTemplates コレクション (アドイン)


ControlTemplate オブジェクト、ControlTemplates コレクションのプロパティ

凡例

Application プロパティ (アドイン)

ClassName プロパティ (アドイン)

Container プロパティ (アドイン)

Count プロパティ

NewEnum プロパティ (アドイン)

Parent プロパティ

Properties プロパティ (アドイン)


ControlTemplate オブジェクト、ControlTemplates コレクションのメソッド

凡例

Add メソッド (アドイン)

Item メソッド (アドイン)

ZOrder メソッド


ControlTemplates プロパティ (アドイン)

関連項目	対象

フォーム上のすべてのコントロールを表す ControlTemplates コレクションを返します。デザイン時には使えません。

構文

object.ControlTemplates

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

ControlTemplates プロパティを使うと、フォーム上のすべてのコントロールに、アドインからアクセスすることができます。フォーム上にコントロールが 1 つもない場合は、このコレクションは空になります。


関連項目

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)


ControlTemplates プロパティ (アドイン) の対象

FormTemplate オブジェクト (アドイン)


DisconnectAddIn イベント (アドイン)

関連項目	対象

アドインが Microsoft Visual Basic のインスタンスから切断されると呼び出されます。

構文

Private Sub DisconnectAddIn(mode As Integer)

引数 mode には、アドイン切断の理由を示す整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 mode の設定値は次のとおりです。

設定値	内容

0	Visual Basic のインスタンスが終了したため、アドインは切断されました。

1	ユーザーが [アドイン マネージャ] ダイアログ ボックスのアドインのチェック ボックスをオフにし、[OK] ボタンを選択したため、アドインは切断されました。

解説

DisconnectAddIn イベントの発生は、アドインが Visual Basic のインスタンスから切断されようとしているということと、Visual Basic のメニュー バーからのメニューの削除など、完了させなければならない作業があるということを知らせます。Visual Basic の複数のインスタンスは同時に実行できるので、アドインは Visual Basic の 1 つのインスタンスから切断されても、まだ他のインスタンスに接続されている場合もあります。


関連項目

ConnectAddIn イベント (アドイン)


DisconnectAddIn イベント (アドイン) の対象

Application オブジェクト (アドイン)


DisconnectEvents メソッド (アドイン)

関連項目	対象

アドイン内のオブジェクトを Microsoft Visual Basic から切断します。オブジェクトは、ファイル制御イベントの受け取り (FileControl オブジェクトと共に使用した場合) や、メニュー項目の選択の受け取り (MenuLine オブジェクトと共に使用した場合) を取り消します。名前付き引数は、指定できません。

構文

object.DisconnectEvents hConnection

DisconnectEvents メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

hConnection	必ず指定します。アドインを接続するときに ConnectEvents メソッドが返す固有の識別子を長整数で指定します。


関連項目

ConnectEvents メソッド (アドイン)


DisconnectEvents メソッド (アドイン) の対象

FileControl オブジェクト (アドイン)

MenuLine オブジェクト (アドイン)

ProjectTemplate オブジェクト


DoGetAddFileName イベント (アドイン)

関連項目	対象

[ファイル] - [ファイルの追加] コマンドが選択されると呼び出されます。

構文

Private Sub DoGetAddFileName(filenames( ) As String, canceldefault As Boolean)

DoGetAddFileName イベントの構文の指定項目は次のとおりです。

指定項目	内容

filenames	プロジェクトに追加するファイルの名前を表す文字列式を指定します。ファイル名は、現在の Application.LastUsedPath からの相対パス名または絶対パス名で指定してください。

canceldefault	初期状態での Microsoft Visual Basic の動作を取り消すためのフラグとして使われるブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 canceldefault の設定値は次のとおりです。

設定値	内容

True	初期状態での Visual Basic の動作を取り消します。FileControl オブジェクトに接続されているアドインより後のアドイン内では、DoGetAddFileName イベントが呼び出されなくなります。引数 filenames に何も指定しないと、ファイルを追加するイベント全体が取り消されます。引数 filenames にファイル名を指定すると、そのファイルがプロジェクトに追加されます。

False	FileControl オブジェクトに接続されているアドインより後のアドイン内で、DoGetAddFileName イベントが呼び出されます。接続されているどのアドインも引数 canceldefault を真 (True) に設定しなかった場合は、引数 filenames で指定したファイル名が Visual Basic の [ファイル] - [ファイルの追加] コマンドの [ファイルの追加] ダイアログ ボックスに表示されます。

解説

Microsoft Visual Basic Version 4.0 では、引数 filenames の最初の要素のみが重要です。初期状態では、引数 filenames にはファイル名が入っていませんが、FileControl オブジェクトに接続されているどのアドインでもこの引数を変更することができます。アドインでは、ユーザー定義のユーザー インターフェイスを使って、現在のプロジェクトに追加されるファイルの名前をユーザから取得することができます。また、ユーザーの選択に従って、引数 filenames を変更することもできます。


関連項目

AfterAddFile イベント (アドイン)

BeforeLoadFile イベント (アドイン)

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)

LastUsedPath プロパティ (アドイン)


DoGetAddFileName イベントの対象

FileControl オブジェクト (アドイン)


DoGetNewFileName イベント (アドイン)

関連項目	対象

新しいファイルに対して [ファイル] - [ファイルの上書き保存] コマンドまたは [ファイル] - [プロジェクトの上書き保存] コマンドが選択された場合、既存のファイルに対して [ファイル] - [名前を付けてファイルの保存] コマンドまたは [ファイル] - [名前を付けてプロジェクトの保存] コマンドが選択された場合、あるいは [ファイル] - [EXE ファイルの作成] コマンドが選択された場合に呼び出されます。

構文

Private Sub DoGetNewFileName(filetype As Integer, newname As String, oldname As String, canceldefault As Boolean)

DoGetNewFileName イベントの構文の指定項目は次のとおりです。

指定項目	内容

filetype	ファイルの種類を表す値または定数を指定します。設定する値については、次の「設定値」を参照してください。

newname	新しいファイルの名前を表す文字列式を指定します。ファイル名は、現在の Application.LastUsedPath からの相対パス名、または絶対パス名で指定してください。

oldname	元のファイル名を指定します。

canceldefault	初期状態での Microsoft Visual Basic の動作を設定するブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 filetype の設定値は次のとおりです。

定数	値	内容

vbextFileTypeForm	0	フォーム モジュール (.FRM)

vbextFileTypeModule	1	標準モジュール (.BAS)

vbextFileTypeClass	2	クラス モジュール (.CLS)

vbextFileTypeProject	3	プロジェクト ファイル (.VBP)

vbextFileTypeExe	4	実行可能ファイル (.EXE)

vbextFileTypeFrx	5	バイナリ データ ファイル(.FRX)

vbextFileTypeRes	6	リソース ファイル (.RES)

引数 canceldefault の設定値は次のとおりです。

設定値	内容

True	FileControl オブジェクトに接続されているアドインより後のアドイン内では、DoGetNewFileName イベントが呼び出されなくなります。引数 newname に何も指定しないと、ファイルの名前変更イベント全体が取り消されます。引数 newname にファイル名を指定すると、その名前が新しいファイル名として使われます。

False	FileControl オブジェクトに接続されているアドインより後のアドイン内で、DoGetNewFileName イベントが呼び出されます。接続されているどのアドインも引数 canceldefault を真 (True) に設定しなかった場合は、引数 newname で指定したファイル名が、Visual Basic の [ファイル名を付けて保存] ダイアログ ボックスまたは [EXE ファイルの作成] ダイアログ ボックスに表示されます。

解説

引数 newname は、最初は引数 oldname と同じ名前になっていますが、FileControl オブジェクトに接続されているどのアドインでも、この引数を変更することができます。アドインでは、DoGetNewFileName イベントを使って、ファイルの新しい名前を入力するためのユーザー定義のユーザー インターフェイスを表示することができます。また、ユーザーの選択に従って、引数 newname を変更することもできます。


関連項目

AfterChangeFileName イベント (アドイン)

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)

LastUsedPath プロパティ (アドイン)


DoGetNewFileName イベント (アドイン) の対象

FileControl オブジェクト (アドイン)


DoGetOpenProjectName イベント (アドイン)

関連項目	対象

[ファイル] - [プロジェクトを開く] コマンドが選択された場合、または、プロジェクトを開くその他のコマンドが選択された場合に呼び出されます。[ファイル] -[新規プロジェクト] コマンドが選択された場合や、Microsoft Visual Basic の起動時に既定のプロジェクトが開かれたときには呼び出されません。

構文

Private Sub DoGetOpenProjectName(projectname As String, canceldefault As Boolean)

DoGetOpenProjectName イベントの構文の指定項目は次のとおりです。

指定項目	内容

projectname	開くプロジェクトの名前を表す文字列式を指定します。ファイル名は、現在の Application.LastUsedPath からの相対パス名、または絶対パス名で指定してください。

canceldefault	初期状態の Visual Basic の動作を設定するブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 canceldefault の設定値は次のとおりです。

設定値	内容

True	FileControl オブジェクトに接続されているアドインより後のアドイン内では、DoGetOpenProjectName イベントが呼び出されなくなります。引数 projectname に何も指定しない場合、プロジェクトを開くイベント全体が取り消されます。引数 projectname にプロジェクト ファイル名を指定すると、その名前がプロジェクトを開くために使われます。

False	FileControl オブジェクトに接続されているアドインより後のアドイン内で、DoGetOpenProjectName イベントが呼び出されます。接続されているどのアドインも引数 canceldefault を真 (True) に設定しなかった場合は、引数 projectname で指定したファイル名が、Visual Basic の [プロジェクトを開く] ダイアログ ボックスに表示されます。

解説

引数 projectname には、最初は何も指定されていません。FileControl オブジェクトに接続されているどのアドインでも、この引数を変更することができます。アドインでは、DoGetOpenProjectName イベントを使って、開くプロジェクトの名前をコードから取得することができます。また、ユーザーの選択に従って、引数 projectname を変更することもできます。


関連項目

AfterCloseFile イベント (アドイン)

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)

LastUsedPath プロパティ (アドイン)


DoGetOpenProjectName イベント (アドイン) の対象

FileControl オブジェクト (アドイン)


FileControl オブジェクト (アドイン)

関連項目	プロパティ	メソッド	イベント

アドインで、Microsoft Visual Basic で実行されるさまざまなファイル操作の通知を受け取るようにするには、このオブジェクトを使います。

構文

FileControl

解説

FileControl オブジェクトは、ファイルの制御に関する通知をすべて管理します。アドインは、このオブジェクトを使って、アドイン内のどのオブジェクトがファイル制御イベントに関する通知を受け取るかどうかを指定することができます。オブジェクトの指定は、ConnectEvents メソッドと DisconnectEvents メソッドで行います。FileControl オブジェクトに、通知を受けるアドイン内のオブジェクトを指定すると、どのファイル制御イベントが発生した場合でも、そのオブジェクト内のメソッドが呼び出されます。

複数のアドインがオブジェクトを FileControl オブジェクトに接続している場合は、各アドインは接続された順に通知を受け取ります。

1 つの操作でも複数の FileControl オブジェクトのイベントが発生することがあります。次の表に、イベントの発生順序の例を示します。

ユーザーの操作	イベントの発生順序
ファイル名の変更	DoGetNewFileName RequestChangeFileName RequestWriteFile (新しいファイル名) AfterWriteFile AfterChangeFileName
プロジェクトへのファイルの追加	DoGetAddFileName AfterAddFile
[ファイル] - [EXE ファイルの作成] コマンドの選択	DoGetNewFileName RequestChangeFileName RequestWriteFile AfterWriteFile AfterChangeFileName
注   AddFile、RemoveComponent、SaveAsなどのメソッドが正常に呼び出されると、FileControl オブジェクトはイベントを発生させます。


関連項目

AddFile メソッド (アドイン)

RemoveComponent メソッド (アドイン)

SaveAs メソッド (アドイン)


FileControl オブジェクト (アドイン) のプロパティ

Application プロパティ (アドイン)

Parent プロパティ


FileControl オブジェクトのメソッド

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)


FileControl オブジェクト (アドイン) のイベント

AfterAddFile イベント (アドイン)

AfterChangeFileName イベント (アドイン)

AfterCloseFile イベント (アドイン)

AfterNewProject イベント (アドイン)

AfterRemoveFile イベント (アドイン)

AfterWriteFile イベント (アドイン)

BeforeLoadFile イベント (アドイン)

DoGetAddFileName イベント (アドイン)

DoGetNewFileName イベント (アドイン)

DoGetOpenProjectName イベント (アドイン)

RequestChangeFileName イベント (アドイン)

RequestWriteFile イベント (アドイン)


FileControl プロパティ (アドイン)

関連項目	対象

Microsoft Visual Basic の現在のインスタンスに関連付けられている FileControl オブジェクトを返します。

構文

object.FileControl

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

FileControl オブジェクトを使うと、アドインを Visual Basic に登録して、すべてのファイル制御イベントの通知を受け取るようにすることができます。


関連項目

FileControl オブジェクト (アドイン)


FileControl プロパティ (アドイン) の対象

Application オブジェクト (アドイン)


FileCount プロパティ (アドイン)

関連項目	対象

構成要素 (.RES ファイル、フォーム モジュール、標準モジュール、およびクラス モジュール) に関連付けられているファイルの数を返します。

構文

object.FileCount

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

ほとんどの構成要素の場合、このプロパティの設定値は 1 ですが、2 以上の場合もあります。たとえば、フォームに .FRM ファイルと .FRX ファイルが関連付けられていると、FileCount プロパティの設定値は 2 になります。


関連項目

FileNames プロパティ (アドイン)


FileCount プロパティ (アドイン) の対象

Component オブジェクト、Components コレクション (アドイン)


FileNames プロパティ (アドイン)

関連項目	対象

構成要素 (.RES ファイル、フォーム モジュール、標準モジュール、およびクラス モジュール) に関連付けられているファイルの名前を返します。

構文

object.FileNames(index)

FileNames プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	返される配列内のファイル名を指定するインデックスを指定します。

解説

配列の要素の数は、FileCount プロパティで示されます。Component オブジェクトが標準モジュールまたはクラス モジュールの場合は、この配列には 1 つのファイル名だけが入ります。フォーム モジュールの場合は、フォームの .FRM ファイルおよび .FRX ファイルの名前が入ります。Component オブジェクトの SaveAs メソッドを呼び出すと、このプロパティの値が更新されます。


関連項目

FileCount プロパティ (アドイン)

SaveAs メソッド (アドイン)


FileNames プロパティ (アドイン) の対象

Component オブジェクト、Components コレクション (アドイン)


FormTemplate オブジェクト (アドイン)

関連項目	プロパティ	メソッド

Visual Basic のプロジェクト内のフォームを表します。

構文

FormTemplate

解説

FormTemplate オブジェクトを使うと、フォームのプロパティ、フォーム上のコントロール、およびフォーム上で選択したコントロールの集合にアクセスすることができます。また、フォーム モジュールにコードを追加したり、フォームにメニューを追加したりすることもできます。

その時点でアクティブなフォームが FormTemplate オブジェクトとなります。


関連項目

ActiveForm プロパティ

ActiveProject プロパティ (アドイン)


FormTemplate オブジェクト (アドイン) のプロパティ

Application プロパティ (アドイン)

ControlTemplates プロパティ (アドイン)

Parent プロパティ

Properties プロパティ (アドイン)

SelectedControlTemplates プロパティ (アドイン)


FormTemplate オブジェクト (アドイン) のメソッド

AddMenuTemplate メソッド (アドイン)

InsertFile メソッド (アドイン)


InsertFile メソッド (アドイン)

対象

指定したファイル内のコードをフォーム モジュールに挿入します。名前付き引数は、指定できません。

構文

object.InsertFile filename

InsertFile メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

filename	必ず指定します。コード モジュールに挿入するコードが含まれているファイルの名前を表す文字列式を指定します。絶対パス名も使えます。指定したファイルが見つからない場合は、絶対パス名を指定したときでも、Microsoft Windows API の OpenFile 関数が使われ、定められた順序でディレクトリ内のファイルが検索されます。

解説

コードは、フォーム モジュール内に存在する最後の宣言と最初のサブルーチンの間に挿入されます。コードは、[ファイル] - [ファイルの追加] コマンドでファイルを挿入した場合と同様に挿入されます。


InsertFile メソッド (アドイン) の対象

Component オブジェクト、Components コレクション (アドイン)

FormTemplate オブジェクト (アドイン)


IsDirty プロパティ (アドイン)

関連項目	対象

構成要素 (.RES ファイル、フォーム モジュール、標準モジュール、およびクラス モジュール) が、最後に保存した後で変更されているかどうかを示す値を返します。

構文

object.IsDirty

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

IsDirty プロパティが返す値は次のとおりです。

値	内容

True	この構成要素は最後に保存した後で変更されています。

False	この構成要素は最後に保存した後で変更されていません。

解説

SaveAs メソッドを使うと、IsDirty プロパティが偽 (False) に設定されます。


関連項目

SaveAs メソッド (アドイン)


IsDirty プロパティ (アドイン) の対象

Component オブジェクト、Components コレクション (アドイン)

ProjectTemplate オブジェクト (アドイン)


Item メソッド (アドイン)

関連項目	対象

指定されたコレクションの項目を返します。名前付き引数は、指定できません。

構文

object.Item index

object.Item itemname

object.Item controlname, arrayindex

object.Item longindex

object.Item caption

Item メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	必ず指定します。Properties、Components、SelectedComponents、SelectedControlTemplates の各コレクションの場合、アクセスされるオブジェクトの、コレクション内のインデックスを表す整数型 (Integer) の値を指定します。

itemname	必ず指定します。Properties、Components、SelectedComponents、SelectedControlTemplates の各コレクションの場合、コレクションからアクセスされる項目の名前を表す文字列式を指定します。指定した文字列が、コレクション内のどの要素の名前とも一致しなかった場合は、エラーが発生します。

controlname	必ず指定します。ControlTemplates コレクションの場合、コレクションからアクセスされる ControlTemplate オブジェクトの名前を表す文字列式を指定します。指定した文字列が、コレクション内のどの要素の名前とも一致しなかった場合は、エラーが発生します。

arrayindex	省略可能です。ControlTemplates コレクションの場合、アクセスされる ControlTemplate オブジェクトのコントロール配列内のインデックスを表す整数型 (Integer) の値を指定します。

longindex	必ず指定します。ControlTemplates コレクションの場合、アクセスされるオブジェクトのコレクション内のインデックスを示す長整数型 (Long) の値を指定します。

caption	必ず指定します。MenuItems コレクションの場合、コレクションからアクセスされる SubMenu オブジェクトまたは MenuLine オブジェクトのキャプションを表す文字列式を指定します。この引数では、アクセス キーとなる文字の前には、アンパサンド (&) を付けます。アクセス キーを定義しないアンパサンドをメニューの中に入れるには、2 つ続けてアンパサンド (&&) を指定してください。指定した文字列が、コレクション内のどの要素の名前とも一致しなかった場合は、エラーが発生します。

解説

コレクションの項目を追加または削除した場合、コレクションに対するインデックスが同じ項目を示さないことがあります。コレクションのインデックスを指定する方法は、コレクション全体に対する反復処理でコントロールの追加や削除以外の操作を行う場合などに限って、利用できます。

Item メソッドは、次に示すコレクションの既定メソッドです。

ControlTemplates

MenuItems

Properties

SelectedComponents

SelectedControlTemplates


関連項目

Component オブジェクト、Components コレクション (アドイン)

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)

Count プロパティ (VB コレクション)

MenuLine オブジェクト (アドイン)

Property オブジェクト、Properties コレクション (アドイン)

SubMenu オブジェクト (アドイン)


Item メソッド (アドイン) の対象

Component オブジェクト、Components コレクション (アドイン)

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)

MenuItems コレクション (アドイン)

Properties コレクション (アドイン)

SelectedComponents コレクション (アドイン)

SelectedControlTemplates コレクション (アドイン)


LastUsedPath プロパティ (アドイン)

関連項目	対象

Microsoft Visual Basic 内で使われる、[プロジェクトを開く] ダイアログ ボックスなどのファイル ダイアログ ボックス内で、最後に使ったファイルのパス名を返します。値の設定も可能です。

構文

object.LastUsedPath [= pathname]

LastUsedPath プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

pathname	ディレクトリとドライブの指定を含むファイル名を表す文字列式を指定します。


関連項目

DoGetAddFileName イベント (アドイン)

DoGetNewFileName イベント (アドイン)

DoGetOpenProjectName イベント (アドイン)


LastUsedPath プロパティ (アドイン) の対象

Application オブジェクト (アドイン)


SubMenu オブジェクト (アドイン)

関連項目	プロパティ

Microsoft Visual Basic 開発環境でのメニューを表します。

構文

SubMenu

解説

1 つの SubMenu オブジェクトには、1 つの MenuItems コレクションがあり、その中の各 MenuItem オブジェクトはメニュー内のそれぞれのメニュー コマンドまたはサブメニューを表します。

MenuItems プロパティは、SubMenu オブジェクトの既定プロパティです。


関連項目

AddMenu メソッド (アドイン)

MenuLine オブジェクト (アドイン)

Remove メソッド (アドイン)


SubMenu オブジェクト (アドイン) のプロパティ

Application プロパティ (アドイン)

Caption プロパティ

Enabled プロパティ

MenuItems プロパティ (アドイン)

Parent プロパティ


MenuItems コレクション (アドイン)

プロパティ	メソッド

特定のメニュー内のすべての項目を、区分線も含めてすべて表します。

構文

MenuItems

解説

MenuItems コレクションの各要素は、それぞれのメニュー行またはサブメニューのいずれかです。Item メソッドは、MenuItems コレクションの既定メソッドです。


MenuItems コレクション (アドイン) のプロパティ

Application プロパティ (アドイン)

Count プロパティ

NewEnum プロパティ (アドイン)

Parent プロパティ


MenuItems コレクション (アドイン) のメソッド

Add メソッド (アドイン)

AddMenu メソッド (アドイン)

Item メソッド (アドイン)

Remove メソッド (アドイン)


MenuItems プロパティ (アドイン)

関連項目	対象

メニュー内のメニュー コマンドおよびサブメニューの集合である MenuItems コレクションを返します。

構文

object.MenuItems

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

MenuItems コレクションの各要素は、メニュー行またはサブメニューのいずれかです。MenuItems プロパティは、SubMenu オブジェクトの既定プロパティです。


関連項目

MenuItems コレクション (アドイン)


MenuItems プロパティ (アドイン) の対象

SubMenu オブジェクト (アドイン)


MenuLine オブジェクト (アドイン)

関連項目	プロパティ	メソッド	イベント

サブメニュー以外のメニュー項目です。

構文

MenuLine

解説

このメニュー項目は、ユーザーがコマンドを実行するために最終的に選択した項目を表します。Caption プロパティは、MenuLine オブジェクトの既定プロパティです。


関連項目

Add メソッド (アドイン)

Remove メソッド (アドイン)

SubMenu オブジェクト (アドイン)


MenuLine オブジェクト (アドイン) のプロパティ

Application プロパティ (アドイン)

Caption プロパティ

Checked プロパティ

Enabled プロパティ

HelpContextID プロパティ

HelpFile プロパティ

Parent プロパティ


MenuLine オブジェクト (アドイン) のメソッド

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)


MenuLine オブジェクト (アドイン) のイベント

AfterClick イベント (アドイン)


NewEnum プロパティ (アドイン)

関連項目	対象

コレクション内の要素を表す LPEnumVariant ポインタを返します。

解説

Visual Basic のプログラマは、NewEnum プロパティを直接参照することはできません。For Each ステートメントでこのプロパティを使うと、ユーザーにコレクション内の要素を 1 つずつ提示できます。C 言語または C++ を使用している場合は、このプロパティを使ってコレクション内のすべての要素を列挙することができます。


関連項目

Count プロパティ (VB コレクション)

For Each...Next ステートメント

Item メソッド (アドイン)


NewEnum プロパティ (アドイン) の対象

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)

MenuItems コレクション (アドイン)

Properties コレクション (アドイン)

SelectedComponents コレクション (アドイン)

SelectedControlTemplates コレクション (アドイン)


ProjectTemplate オブジェクト (アドイン)

関連項目	プロパティ	メソッド	イベント	関数

Microsoft Visual Basic のプロジェクトを表します。

構文

ProjectTemplate

解説

Microsoft Visual Basic Version 4.0 では、一度に開くことができるプロジェクトは 1 つだけなので、このオブジェクトは開かれているプロジェクトを表します。有効な ProjectTemplate オブジェクトは、Application オブジェクトの ActiveProject プロパティが返すオブジェクトだけです。


関連項目

ActiveProject プロパティ (アドイン)

Application オブジェクト (アドイン)


ProjectTemplate オブジェクト (アドイン) のプロパティ

ActiveForm プロパティ

Application プロパティ (アドイン)

FileName プロパティ

IsDirty プロパティ (アドイン)

Parent プロパティ

SelectedComponents プロパティ (アドイン)


ProjectTemplate オブジェクト (アドイン) のメソッド

AddFile メソッド (アドイン)

AddFormTemplate メソッド (アドイン)

AddMDIFormTemplate メソッド (アドイン)

AddReference メソッド (アドイン)

AddToolboxProgID メソッド (アドイン)

AddToolboxTypelib メソッド (アドイン)

AddToolboxVBX メソッド (アドイン)

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)

RemoveComponent メソッド (アドイン)

WriteProperty メソッド (アドイン)


ProjectTemplate オブジェクト (アドイン) の関数

ReadProperty 関数 (アドイン)


ProjectTemplate オブジェクト (アドイン) のイベント

CheckIn イベント (アドイン)

CheckOut イベント (アドイン)

Fetch イベント (アドイン)

UnCheckOut イベント (アドイン)


Properties プロパティ (アドイン)

関連項目	対象

フォームまたはコントロールのプロパティを表す Properties コレクションを返します。

構文

object.Properties

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Properties コレクションには、フォームまたはコントロールのデザイン時にアクセスしたり変更したりできるすべてのプロパティが含まれます。このプロパティに値を設定することはできません。


関連項目

Property オブジェクト、Properties コレクション (アドイン)


Properties プロパティ (アドイン) の対象

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)

FormTemplate オブジェクト (アドイン)


Property オブジェクト、Properties コレクション (アドイン)

プロパティ	メソッド

フォームまたはコントロールのプロパティ、あるいはプロパティのコレクションを表します。

構文

Property

Properties

解説

このオブジェクトまたはコレクションには、デザイン時にアクセス可能なすべてのプロパティが含まれています。Property オブジェクトが値の取得および設定ともに可能であれば、その Value プロパティも値の取得および設定ともに可能です。このプロパティにアクセスすると、コードでフォームまたはコントロールの特性を変更することができます。

Value プロパティは、Property オブジェクトの既定プロパティです。また、Item メソッドは、Properties コレクションの既定メソッドです。


Property オブジェクト、Properties コレクション (アドイン) のプロパティ

凡例

Application プロパティ (アドイン)

Count プロパティ

IndexedValue プロパティ (アドイン)

Name プロパティ

NewEnum プロパティ (アドイン)

NumIndices プロパティ (アドイン)

Parent プロパティ

Value プロパティ (アドイン)


Property オブジェクト、Properties コレクション (アドイン) のメソッド

凡例

Item メソッド (アドイン)


Remove メソッド (アドイン)

関連項目	対象

MenuItems コレクションから、SubMenu オブジェクトまたは MenuLine オブジェクトを削除します。名前付き引数は、指定できません。

構文

object.Remove menuname

Remove メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

menuname	必ず指定します。削除するメニューを表す SubMenu オブジェクト、または削除するメニュー項目を表す MenuLine オブジェクトのオブジェクト式を指定します。


関連項目

Add メソッド (アドイン)

AddMenu メソッド (アドイン)


Remove メソッド (アドイン) の対象

MenuLine オブジェクト (アドイン)

SubMenu オブジェクト (アドイン)


RemoveComponent メソッド (アドイン)

関連項目	対象

プロジェクトから構成要素 (.RES ファイル、フォーム モジュール、標準モジュール、およびクラス モジュール) を解放します。名前付き引数は、指定できません。

構文

object.RemoveComponent comp, save

RemoveComponent メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

comp	必ず指定します。解放する構成要素の固有オブジェクト型 (クラス) を指定します。

save	必ず指定します。構成要素を解放する前に保存するかどうかを指定するブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 save の設定値は次のとおりです。

設定値	内容

True	現在メモリ上にある状態の構成要素を保存します。

False	現在メモリ上にある状態の構成要素を保存しません。

解説

このメソッドが正常に呼び出されると、FileControl オブジェクトから対応するイベントが発生します。


関連項目

AddFile メソッド (アドイン)

AddFormTemplate メソッド (アドイン)

AddMDIFormTemplate メソッド (アドイン)

Component オブジェクト、Components コレクション (アドイン)

FileControl オブジェクト (アドイン)


RemoveComponent メソッド (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


RequestChangeFileName イベント (アドイン)

関連項目	対象

ファイル名の変更が要求された場合に呼び出されます。

構文

Private Sub RequestChangeFileName(filetype As Integer, newname As String, oldname As String, cancelvalue As Boolean)

RequestChangeFileName イベントの構文の指定項目は次のとおりです。

指定項目	内容

filetype	ファイルの種類を表す値または定数を指定します。設定する値については、次の「設定値」を参照してください。

newname	名前を変更した後のファイル名を表す文字列式を指定します。

oldname	名前を変更する前のファイル名を表す文字列式を指定します。

cancelvalue	初期状態の Microsoft Visual Basic の動作を設定するブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 filetype の設定値は次のとおりです。

定数	値	内容

vbextFileTypeForm	0	フォーム モジュール (.FRM)

vbextFileTypeModule	1	標準モジュール (.BAS)

vbextFileTypeClass	2	クラス モジュール (.CLS)

vbextFileTypeProject	3	プロジェクト ファイル (.VBP)

vbextFileTypeExe	4	実行可能ファイル (.EXE)

vbextFileTypeFrx	5	バイナリ データ ファイル(.FRX)

vbextFileTypeRes	6	リソース ファイル (.RES)

引数 cancelvalue の設定値は次のとおりです。

設定値	内容

True	ファイル名の変更を取り消します。FileControl オブジェクトに接続されているアドインより後のアドイン内では、RequestChangeFileName イベントが呼び出されなくなります。

False	FileControl オブジェクトに接続されているアドインより後のアドイン内で、RequestChangeFileName イベントが呼び出されます。

解説

RequestChangeFileName イベントを使うと、アドインは、プロジェクトに追加される新しいファイル名を検査し、名前の変更の受け入れるか、または取り消すことができます。


関連項目

AfterChangeFileName イベント (アドイン)

ConnectEvents メソッド (アドイン)

DisconnectEvents メソッド (アドイン)

DoGetNewFileName イベント (アドイン)


RequestChangeFileName イベント (アドイン) の対象

FileControl オブジェクト (アドイン)


RequestWriteFile イベント (アドイン)

関連項目	対象

更新されているファイルの保存が要求された場合に呼び出されます。

構文

Private Sub RequestWriteFile(filename As String, cancelvalue As Boolean)

RequestWriteFile イベントの構文の指定項目は次のとおりです。

指定項目	内容

filename 	保存されるファイルの名前を示す文字列式を指定します。

cancelvalue 	ファイルの保存を取り消すかどうかのフラグを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 cancelvalue の設定値は次のとおりです。

設定値	内容

True	ファイルの保存を取り消します。FileControl オブジェクトに接続されているアドインより後のアドイン内では、RequestWriteFile イベントが呼び出されなくなります。

False	FileControl オブジェクトに接続されているアドインより後のアドイン内で、RequestWriteFile イベントが呼び出されます。

解説

フォームに関連付けられた .FRX ファイルがある場合は、両方のファイルについて RequestWriteFile イベントが呼び出されます。アドインでは、このイベントを使って、保存されるファイルの準備作業を行うことができます。たとえばアドインでは、このイベントを使って、保存されるファイルのチェックアウトを行うことができます。


関連項目

AfterRemoveFile イベント (アドイン)

AfterWriteFile イベント (アドイン)


RequestWriteFile イベント (アドイン) の対象

FileControl オブジェクト (アドイン)


SaveAs メソッド (アドイン)

関連項目	対象

新しいファイル名を付けて構成要素 (.RES ファイル、フォーム モジュール、標準モジュール、およびクラス モジュール) を保存します。名前付き引数は、指定できません。

構文

object.SaveAs newfilename

SaveAs メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

newfilename	必ず指定します。保存する構成要素の新しいファイル名を表す文字列式を指定します。無効な値を指定した場合、または既存の読み取り専用ファイルの名前を指定した場合は、エラーが発生します。

解説

フォームが保存される場合は、引数 newfilename は .FRM ファイルを保存するときに使う名前に使われます。.FRM ファイルを保存すると、該当する.FRX ファイルは自動的に保存されます。

注   このメソッドが正常に呼び出されると、FileControl オブジェクトから関連のイベントが発生します。


関連項目

FileControl オブジェクト (アドイン)

IsDirty プロパティ (アドイン)


SaveAs メソッド (アドイン) の対象

Component オブジェクト、Components コレクション (アドイン)


SelectedComponents プロパティ (アドイン)

関連項目	対象

プロジェクト内で現在選択されているすべての構成要素 (.RES ファイル、フォーム モジュール、標準モジュール、およびクラス モジュール) を表す SelectedComponents コレクションを返します。

構文

object.SelectedComponents

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Microsoft Visual Basic Version 4.0 では、SelectedComponents コレクションに含まれるオブジェクトは 1 つだけです。


関連項目

SelectedComponents コレクション (アドイン)


SelectedComponents プロパティ (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


SelectedComponents コレクション (アドイン)

関連項目	プロパティ	メソッド

プロジェクト内で現在選択されているすべての構成要素 (.RES ファイル、フォーム モジュール、標準モジュール、またはクラス モジュール) の集合です。

構文

SelectedComponents

解説

Microsoft Visual Basic Version 4.0 では、SelectedComponents コレクションに入る構成要素のオブジェクトは 1 つだけです。Item メソッドは、SelectedComponents コレクションの既定メソッドです。


関連項目

SelectedComponents プロパティ (アドイン)


SelectedComponents コレクション (アドイン) のプロパティ

Application プロパティ (アドイン)

Count プロパティ

NewEnum プロパティ (アドイン)

Parent プロパティ


SelectedComponents コレクション (アドイン) のメソッド

Item メソッド (アドイン)


SelectedControlTemplates コレクション (アドイン)

関連項目	プロパティ	メソッド

フォーム上で選択されているすべてのコントロールの集合です。

構文

SelectedControlTemplates

解説

このコレクションを使うと、現在選択されているすべてのコントロールにアクセスすることができます。コードから、コレクション内のコントロールをループで処理したり、特定のコントロールにアクセスしたりすることもできます。このコレクションは、Add メソッドがないということを除けば、ControlTemplates コレクションとほとんど同じです。

Item メソッドは、SelectedControlTemplates コレクションの既定メソッドです。SelectedControlTemplates コレクションには、整数でインデックスが作成されます。


関連項目

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)


SelectedControlTemplates コレクション (アドイン) のプロパティ

Application プロパティ (アドイン)

Count プロパティ

NewEnum プロパティ (アドイン)

Parent プロパティ


SelectedControlTemplates コレクション (アドイン) のメソッド

Item メソッド (アドイン)


SelectedControlTemplates プロパティ (アドイン)

関連項目	対象

フォーム上で現在選択されているコントロールを表す SelectedControlTemplates コレクションを返します。

構文

object.SelectedControlTemplates

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

フォーム上で選択されているコントロールがない場合には、このコレクションは空になります。


関連項目

SelectedControlTemplates コレクション (アドイン)


SelectedControlTemplates プロパティ (アドイン) の対象

FormTemplate オブジェクト (アドイン)


Value プロパティ (アドイン)

関連項目	対象

プロパティの値を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.Value [= value]

Value プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	プロパティの型と互換性のある型の式を指定します。

解説

Value プロパティに返された Property オブジェクトがコレクションの要素だった場合、Value プロパティは Properties コレクションを返します。Property オブジェクトが、デザイン時に値の取得および設定ともに可能なプロパティを表す場合は、Value プロパティは値の取得および設定ともに可能になります。Property オブジェクトが値の取得のみ可能なプロパティを表す場合は、Value プロパティを設定しようとするとエラーが発生します。Property オブジェクトが値の設定のみ可能なプロパティを表す場合は、Value プロパティを返そうとするとエラーが発生します。

アドインで Value プロパティを操作したために、重大なエラーが発生すると、アドインでもエラーが発生します。アドインで Value プロパティに対して、メッセージ ボックスが表示されるような操作を行うと、メッセージ ボックスの問い合わせで [はい] ボタンが選択されたものと見なされます。たとえば、ユーザーがフォーム上のコントロールの名前を別のコントロールと同じ名前に変更すると、通常、ユーザーにコントロール配列を作成するかどうかを確認するメッセージ ボックスが表示されます。アドインがコントロール名を変更した場合、このメッセージ ボックスで、[はい] ボタンが選択されたものと見なされ、コントロール配列が作成されます。

Value プロパティは、Property オブジェクトの既定プロパティです。

注   アドインでコントロール配列内のコントロールの名前を変更した場合は、そのコントロールはコントロール配列から自動的には削除されません。コントロール配列からそのコントロールを削除するには、コントロールの名前を変更した後に、アドインでコントロール配列のインデックスに -1 を設定する必要があります。


関連項目

Name プロパティ

Property オブジェクト、Properties コレクション (アドイン)


Value プロパティ (アドイン) の対象

Property オブジェクト、Properties コレクション (アドイン)


Version プロパティ (アドイン)

関連項目	対象

アドインが接続されるアプリケーションのバージョン番号を返します。

構文

object.Version

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

このプロパティの値は、1 桁または 2 桁の数字の後に、ピリオドと 2 桁の数字が続く文字列です。文字列のそれ以降の部分は未定義で、テキストや数字を含むこともあります。


関連項目

Name プロパティ


Version プロパティ (アドイン) の対象

Application オブジェクト (アドイン)


FullName プロパティ (アドイン)

対象

Visual Basic アプリケーションの絶対パスを返します。

構文

object.FullName

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。


FullName メソッド (アドイン) の対象

Application オブジェクト (アドイン)


WriteProperty メソッド (アドイン)

関連項目	対象

文字列を、プロジェクト ファイル (.VBP) の指定されたセクションおよびキーに書き込みます。

構文

object.WriteProperty (section As String, key As String, value As String)

WriteProperty メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

section	キー設定が配置されているセクションの名前を示す文字列式を指定します。指定したセクションが存在しない場合は、作成されます。

key	書き込まれるキー名を示す文字列式を指定します。指定されたキーが存在しない場合、作成されます。

value	キーが設定されている値を示す文字列式を指定します。


関連項目

ReadProperty 関数 (アドイン)

Properties プロパティ (アドイン)

Property オブジェクト、Properties コレクション (アドイン)


WriteProperty メソッド (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


[新規プロジェクト] コマンド ([ファイル] メニュー)

関連項目

新しいプロジェクトを作成します。

Microsoft Visual Basic では 1 度に 1 つのプロジェクトしか開けません。複数のプロジェクトを同時に編集するときは、複数の Visual Basic を実行してください。[ファイル] - [新規プロジェクト] コマンドを選択すると、現在開いているプロジェクトを保存するかどうかを確認するメッセージを表示します。

Visual Basic では、保存するときは [はい] ボタンを、保存しないときは [いいえ] ボタンを選択します。すると現在のプロジェクトに含まれるファイルはすべて閉じられ、新しいプロジェクトが作成されます。

新しく作成されるプロジェクトの設定の既定値を指定するときは AUTO32LD.VBP プロジェクトまたは AUTO16LD.VBP プロジェクトのフォーム モジュール、標準モジュール、クラス モジュール、カスタム コントロール、参照、環境、および書式の設定を変更してください。変更点は新しく作成される全プロジェクトに反映されます。

デザイン時のみ選択可能です。


関連項目

[ファイルの追加] コマンド ([ファイル] メニュー)

[カスタム コントロール] ダイアログ ボックス

[書式] タブ ([オプション] ダイアログ ボックス)

[環境] タブ ([オプション] ダイアログ ボックス)

[プロジェクトを開く] コマンド ([ファイル] メニュー)

[プロジェクト ウィンドウ] コマンド ([表示] メニュー)

[プロジェクト] タブ ([オプション] ダイアログ ボックス)

[参照設定] ダイアログ ボックス

[ファイルの解放] コマンド ([ファイル] メニュー)

[プロジェクトの上書き保存]、[名前を付けてプロジェクトの保存] コマンド ([ファイル] メニュー)


[プロジェクトを開く] コマンド ([ファイル] メニュー)

関連項目

現在開いているプロジェクトがある場合は、そのプロジェクトを閉じて、保存されているプロジェクトを読み出します。デザイン時のみ選択可能です。

ツールバー ボタン :

ショートカット キー : Ctrl + O キー

注   Microsoft Visual Basic Enterprise Edition で提供されている Microsoft Visual SourceSafe などの統合ソース コード管理システムを使用している場合、バージョン管理プロジェクトからプロジェクト ファイルをチェックアウトしているときに、編集中のプロジェクトを閉じて新しいプロジェクトを開こうとすると、チェックアウトしていたプロジェクト ファイルをチェックインするかどうかを確認するダイアログ ボックスが表示されます。

Visual Basic でプロジェクトを開くと、プロジェクト ファイルを取得またはチェックアウトするかを確認するダイアログ ボックスが表示されます。

ダイアログ ボックス オプション

[ファイル名] ボックス

プロジェクトの名前を指定します。

[ファイルの種類] ボックス

ファイルの形式を指定します。特に指定しない限り、プロジェクト ファイル (*.VBP) が選択されます。指定した形式のファイルは [ファイル名] ボックスに表示されます。

[ディレクトリ] ボックス

プロジェクトが含まれるディレクトリを選択します。

[ドライブ] ボックス

プロジェクトが含まれるドライブを選択します。

[OK] ボタン

指定したファイルを開きます。

[キャンセル] ボタン

ダイアログ ボックスを閉じます。新しいプロジェクトは開かれません。

[ネットワーク] ボタン

[ネットワーク ドライブとの接続] ダイアログ ボックスが表示されます。ネットワーク ドライブ上のプロジェクトを開くときに選択します。


関連項目

Visual SourceSafe アドインの組み込み

[新規プロジェクト] コマンド ([ファイル] メニュー)

[オプション] コマンド ([ツール] メニュー)

[プロジェクト ウィンドウ] コマンド ([表示] メニュー)

[プロジェクトの上書き保存]、[名前を付けてプロジェクトの保存] コマンド ([ファイル] メニュー)


[ファイルの上書き保存]、[名前を付けてファイルの保存] コマンド ([ファイル] メニュー)

関連項目

現在選択されているフォーム モジュール、標準モジュール、またはクラス モジュールを保存します。初めてそのファイルを保存するときは [名前を付けてファイルの保存] ダイアログ ボックスを表示します。

[名前を付けてファイルの保存] ダイアログ ボックスはフォーム、MDI フォーム、クラス モジュール、または標準モジュールに新しい名前を指定するときに表示されます。デザイン時のみ選択可能です。

ショートカット キー : Ctrl + S キー ([ファイルの上書き保存] コマンド)、Ctrl + A キー ([名前を付けてファイルの保存] コマンド)

注   Microsoft Visual Basic Enterprise Edition で提供されている Microsoft Visual SourceSafe などの統合ソース コード管理システムを使用している場合、[名前を付けてファイルの保存] コマンドでファイルを保存すると、バージョン管理プロジェクトにファイルを追加するかどうかを確認するダイアログ ボックスが表示されます。

[名前を付けてファイルの保存] コマンドを使用してソース コード コントロール プログラムからチェックアウトされているファイルの名前を変更する場合、ソース コード コントロール プログラムでもバージョン管理プロジェクト内のファイル名を変更する必要があります。

ダイアログ ボックス オプション

[ファイル名] ボックス

新しいファイル名を指定したり、別のディレクトリにファイルを保存するときは、ここにファイル名を入力します。既存のファイル名を指定するときは、一覧から名前を選択できます。このとき、[OK] ボタンを選択すると、既存のファイルを上書きしていいかどうかを確認するメッセージが表示されます。ファイル名の拡張子を省略すると、フォーム モジュールには拡張子 .FRM、クラス モジュールには拡張子 .CLS、標準モジュールには拡張子 .BAS がそれぞれ自動的にファイル名に付けられます。

[ファイルの種類] ボックス

ファイルの形式をリストから選択します。

[すべてのファイル (*.*)] を選択すると、すべてのファイルが表示されます。

[フォーム ファイル (*.FRM)] を選択すると、フォームと MDI フォームが表示されます。

[クラス ファイル (*.CLS)] を選択すると、クラス モジュールが表示されます。

[Basic ファイル (*.BAS)] を選択すると、標準モジュールが表示されます。

[ディレクトリ] ボックス

ファイルを保存するディレクトリを選択します。

[ドライブ] ボックス

ファイルを保存するドライブを選択します。

[OK] ボタン

ファイルを保存します。

[キャンセル] ボタン

ダイアログ ボックスを閉じます。ファイルは保存されません。

[ネットワーク] ボタン

[ネットワーク ドライブとの接続] ダイアログ ボックスが表示されます。ネットワーク ドライブ上にファイルを保存するときに選択します。


関連項目

[ファイルの追加] コマンド ([ファイル] メニュー)

Visual SourceSafe アドインの組み込み

[フォーム モジュール]、[MDI フォーム モジュール]、[標準モジュール]、[クラス モジュール] コマンド ([挿入] メニュー)

[プロジェクトの上書き保存]、[名前を付けてプロジェクトの保存] コマンド ([ファイル] メニュー)

作業内容の保存


[プロジェクトの上書き保存]、[名前を付けてプロジェクトの保存] コマンド ([ファイル] メニュー)

関連項目

現在のプロジェクト (.VBP ファイル) とプロジェクトに含まれるフォーム モジュール、MDI フォーム、クラス モジュール、および標準モジュールを保存します。フォームとプロジェクトは ASCII テキスト形式で保存されます。デザイン時のみ選択可能です。

ツールバー ボタン :

ダイアログ ボックス オプション

[ファイル名] ボックス

新しいファイル名を指定したり、別のディレクトリにファイルを保存するときは、ここにファイル名を入力します。既存のファイル名を指定するときは、一覧からファイル名を選択できます。このとき、[OK] ボタンを選択すると、既存のファイルを上書きしていいかどうかを確認するメッセージが表示されます。ファイル名の拡張子を省略すると拡張子 .VBP が自動的にファイル名に付けられます。

[ファイルの種類] ボックス

ファイルの形式を指定します。特に指定しなければプロジェクト ファイル (.VBP) が選択されます。指定した形式に該当するファイルは [ファイル名] ボックスに表示されます。

[ディレクトリ] ボックス

プロジェクト ファイルを保存するディレクトリを選択します。

[ドライブ] ボックス

プロジェクト ファイルを保存するドライブを選択します。

[OK] ボタン

プロジェクトを保存します。

[キャンセル] ボタン

ダイアログ ボックスを閉じます。プロジェクトは保存されません。

[ネットワーク] ボタン

[ネットワーク ドライブとの接続] ダイアログ ボックスが表示されます。ネットワーク ドライブ上にプロジェクトを保存するときに選択します。


関連項目

Visual SourceSafe アドインの組み込み

[新規プロジェクト] コマンド ([ファイル] メニュー)

[プロジェクトを開く] コマンド ([ファイル] メニュー)

[オプション] コマンド ([ツール] メニュー)

[プロジェクト ウィンドウ] コマンド ([表示] メニュー)

[ファイルの上書き保存]、[名前を付けてファイルの保存] コマンド ([ファイル] メニュー)

作業内容の保存


[ファイルの追加] コマンド ([ファイル] メニュー)

関連項目

ファイルに保存されているフォーム モジュール、MDI フォーム、標準モジュール、またはリソース ファイルをプロジェクトに追加します。1 つのファイルを複数のプロジェクトで共有することも可能です。ファイルをプロジェクトに追加すると、プロジェクト内にそのファイルへの参照が作成されます。ファイル自体はプロジェクトにコピーされません。ファイルを編集して保存すると、そのファイルの変更点はファイルを参照している全プロジェクトに反映されます。デザイン時のみ選択可能です。

ショートカット キー : Ctrl + D キー

注   カスタム コントロールと挿入可能なオブジェクトをプロジェクトに追加するときは、[ツール] - [カスタム コントロール] コマンドを選択してからダイアログ ボックスを使って追加します。

注   Microsoft Visual Basic Enterprise Edition で提供されている Microsoft Visual SourceSafe などの統合ソース コード管理システムを使用している場合、Visual Basic のプロジェクトにファイルを追加すると、バージョン管理プロジェクトにファイルを追加するかどうかを確認するダイアログ ボックスが表示されます。

Microsoft Visual SourceSafe では、プロジェクト ファイル (.VBP) がチェックアウトされている場合、新しく追加されたファイルの参照先を自動的に追加します。プロジェクト ファイルがチェックアウトされていない場合にファイルを追加すると、プロジェクト ファイルには新しいファイルの参照先が取り込まれず、次回プロジェクトを開いたときに、そのファイルはロードされません。

ダイアログ ボックス オプション

[ファイル名] ボックス

ファイル名を指定します。リスト ボックスには [ファイルの種類] で選択した拡張子を持つファイルが表示されます。

[ファイルの種類] ボックス

ファイルの形式を指定します。

[VB ファイル (*.FRM; *.BAS; *.CLS; *.RES)] を選択すると、Visual Basic で使用できるすべての種類のファイルが表示されます。

[フォーム ファイル (*.FRM)] を選択すると、フォーム モジュールが表示されます。

[Basic ファイル (*.BAS)] を選択すると、標準モジュールが表示されます。

[クラス ファイル (*.CLS)] を選択すると、クラス モジュールが表示されます。

[リソース ファイル (*.RES)] を選択すると、リソース ファイルが表示されます。1 つのプロジェクト中では 1 つのリソース ファイルしか使用できません。

[すべてのファイル (*.*)] を選択すると、すべてのファイルが表示されます。

[ディレクトリ] ボックス

ファイルが含まれるディレクトリを指定します。

[ドライブ] ボックス

ファイルが含まれるドライブを指定します。

[ネットワーク] ボタン

[ネットワーク ドライブとの接続] ダイアログ ボックスが表示されます。ネットワーク ドライブ上のファイルを追加するときに使用します。

[OK] ボタン

ファイルをプロジェクトに追加します。

[キャンセル] ボタン

ダイアログ ボックスを閉じます。ファイルは追加されません。


関連項目

Visual SourceSafe アドインの組み込み

[カスタム コントロール] ダイアログ ボックス

[ファイルの解放] コマンド ([ファイル] メニュー)


[ファイルの解放] コマンド ([ファイル] メニュー)

関連項目

プロジェクト ウィンドウ上で現在選択されているフォーム モジュール、標準モジュール、クラス モジュール、またはリソース ファイルをプロジェクトから解放します。解放するファイルが変更した後、1 度も保存されていないときは、解放するファイルを保存するかどうかを確認するメッセージを表示します。デザイン時のみ選択可能です。

注   Microsoft Visual Basic Enterprise Edition で提供されている Microsoft Visual SourceSafe などの統合ソース コード管理システムを使用している場合、Visual Basic のプロジェクトからファイルを解放すると、バージョン管理プロジェクトからファイルを解放するかどうかを確認するダイアログ ボックスが表示されます。

Microsoft Visual SourceSafe では、.VBP ファイルがチェックアウトされている場合、解放されたファイルの参照先を自動的に削除します。VBP ファイルがチェックアウトされていない場合にファイルを解放すると、.VBP ファイルにはファイルの参照先が含まれたままになり、次にプロジェクトを開いたとき、エラーが発生します。

ファイルを解放しても他のプロジェクトからの参照には影響はありません。

プロジェクトから解放されたファイルはディスク中に残っています。ファイルをディスクから削除するには、オペレーティング システムからファイルを操作して削除してください。

フォーム モジュール、標準モジュール、またはリソース ファイルをプロジェクトから解放するときは、解放されるモジュールを他のモジュールが参照していないことを確認してください。

注   ツールボックスからカスタム コントロールを削除するときは [ツール] - [カスタム コントロール] ダイアログ ボックスを使います。カスタム コントロールがフォーム上に配置されているときは、ツールボックスからそのカスタム コントロールを削除できません。


関連項目

[ファイルの追加] コマンド ([ファイル] メニュー)

Visual SourceSafe アドインの組み込み

[カスタム コントロール] ダイアログ ボックス


[プリンタの設定] コマンド ([ファイル] メニュー)

標準的な [プリンタの設定] ダイアログ ボックスを表示します。プリンタ、印刷方向、用紙サイズ、用紙トレイなどのオプションが設定できます。デザイン時のみ選択可能です。


[印刷] コマンド ([ファイル] メニュー)

関連項目

フォームやコードを Windows のコントロール パネルで指定されているプリンタで印刷します。デザイン時のみ選択可能です。

ショートカット キー : Ctrl + P キー

ダイアログ ボックス オプション

[印刷範囲の設定] グループ ボックス

印刷範囲を指定します。

[選択範囲] オプション ボタンを選択すると、選択範囲のコードを印刷します。

[カレント モジュール] オプション ボタンを選択すると、選択されているモジュールのフォームとコードを印刷します。

[プロジェクト] オプション ボタンを選択すると、プロジェクトに含まれるすべてのフォームとコードを印刷します。

[印刷対象] グループ ボックス

印刷内容を指定します。次のそれぞれについて印刷するかどうかを設定できます。[選択範囲の設定] グループ ボックスの指定によっては設定できない項目もあります。

[フォーム] チェック ボックスを選択すると、フォームのイメージを印刷します。

[フォームの定義] チェック ボックスを選択すると、フォームをテキスト形式で印刷します。フォームやコントロールのプロパティの値を印刷するときに指定します。

[コード] チェック ボックスを選択すると、選択範囲のコードを印刷します。

[印刷品質] ボックス

印刷の品質を指定します。

[ファイルへ出力] チェック ボックス

オンに設定すると、印刷内容はファイルに出力されます。[ファイルへ出力] ダイアログ ボックスで出力ファイルを選択できます。このダイアログ ボックスは [OK] ボタンを選択すると、表示されます。

[OK] ボタン

印刷を行います。

[キャンセル] ボタン

ダイアログ ボックスを閉じます。印刷は行われません。

[設定] ボタン

[プリンタの設定] ダイアログ ボックスが表示されます。


関連項目

[プリンタの設定] コマンド ([ファイル] メニュー)


[EXE ファイルの作成] コマンド ([ファイル] メニュー)

関連項目

プロジェクト中のフォーム モジュール、標準モジュール、クラス モジュール、およびリソース ファイルを結合して実行可能ファイル (.EXE) を作ります。

実行可能ファイルは Visual Basic を起動しなくても実行できます。実行可能ファイルを起動するには、16 ビット オペレーティング システム用の VB40016.DLL または 32 ビット オペレーティング システム用の VB40032.DLL を \WINDOWS\SYSTEM ディレクトリ、あるいはユーザーの指定するパスに配置する必要があります。実行可能ファイルによっては他の DLL ファイル (.DLL) が必要になることもあります。必要なファイルについては「配布が許諾されているファイル」を参照してください。

このコマンドはプロジェクト内のファイルには影響を与えません。また実行可能ファイル作成後にプロジェクト内のファイルを編集しても、作成済みの実行可能ファイルは影響を受けません。

ダイアログ ボックス オプション

[ファイル名] ボックス

実行可能ファイルの名前を入力します。何も入力しなければ最初に表示されているファイル名が使用されます。リスト ボックス内のファイル名を選択すると既存のファイルに上書きされます。ファイル名の拡張子を省略すると自動的に拡張子 .EXE がファイル名に付けられます。

[ディレクトリ] ボックス

ファイルを保存するディレクトリを選択します。選択したディレクトリに同じ名前のファイルが存在するときは上書きされます。

[ドライブ] ボックス

ファイルを保存するドライブを選択します。

[OK] ボタン

アプリケーションの実行可能ファイルを作成します。

[キャンセル] ボタン

ダイアログ ボックスを閉じます。実行可能ファイルは作成されません。

[オプション] ボタン

[EXE オプション] ダイアログ ボックスが表示されます。アプリケーションのタイトル、アイコン、メジャー バージョンとマイナ バージョン、商標や会社名などの情報が設定できます。

[ネットワーク] ボタン

[ネットワーク ドライブとの接続] ダイアログ ボックスが表示されます。ネットワーク ドライブ上にファイルを保存するときに選択します。


関連項目

[EXE オプション] ダイアログ ボックス

Icon プロパティ


[Microsoft Visual Basic の終了] コマンド ([ファイル] メニュー)

プロジェクトを閉じて Microsoft Visual Basic を終了します。編集内容を保存せずに Visual Basic を終了しようとすると、ファイルを保存するかどうかを確認するメッセージを表示します。

マウス ショートカット : コントロール メニュー ボックス上でのダブル クリックで行います。

ショートカット キー : Alt + F4 キー

注   Microsoft Visual Basic Enterprise Edition で提供されている Microsoft Visual SourceSafe などの統合ソース コード管理システムを使用している場合、Visual Basic を終了すると、ソース コード管理システムに Visual Basic のファイルをチェックインするかどうかを確認するメッセージが表示されます。


[繰り返し]、[元に戻す] コマンド ([編集] メニュー)

関連項目

[元に戻す] コマンドは最後の編集操作を無効にします。たとえばコード エディタ中で入力した文字を削除したり、削除した文字を元に戻します。1 つまたは複数のコントロールを削除したときは、[元に戻す] コマンドによってコントロールとコントロールのプロパティの値を元に戻すことができます。ただし、TabIndex プロパティの値は元に戻せません。[元に戻す] コマンドを実行すると、TabIndex プロパティはタブ オーダーの最後に設定されます。コントロールを削除した後でフォームを編集すると、フォームに対して [元に戻す] コマンドを実行しても、コントロールは元に戻せません。

ショートカット キー : Ctrl + Z キー

注    [編集] - [切り取り] コマンドによって行われた操作は [元に戻す] コマンドを使っても、元に戻せません。

[繰り返し] コマンドは [元に戻す] コマンドによって無効にされた文字編集操作を元に戻します。ただし [元に戻す] コマンドの後で文字編集以外の操作を行うと [繰り返し] コマンドは使用できません。

ショートカット キー : Ctrl + BackSpace キー

[元に戻す] コマンドと [繰り返し] コマンドは 20 回分の文字編集操作まで有効です。

それまでに文字編集操作が行われていないときや、直前に文字編集以外の操作が行われたときは、[元に戻す] コマンドと [繰り返し] コマンドを使用できません。またメモリを消費する大規模な編集操作が行われると [元に戻す] コマンドが使えないことがあります。この場合、メッセージが表示されます。


関連項目

TabIndex プロパティ


[切り取り]、[コピー]、[貼り付け]、[削除] コマンド ([編集] メニュー)

関連項目

[切り取り] コマンドは、現在選択されているコントロールや文字列を削除してクリップボードに一時保存します。このコマンドを実行するには、少なくとも 1 個のコントロールまたは 1 つの文字を選択している必要があります。

ショートカット キー : Ctrl + X キーまたは Shift + Del キー

[コピー] コマンドは、現在選択されているコントロールや文字列をクリップボードにコピーします。このコマンドを実行するには、少なくとも 1 個のコントロールか 1 つの文字を選択している必要があります。

ショートカット キー : Ctrl + C キーまたは Ctrl + Ins キー

[貼り付け] コマンドは、クリップボードの内容を現在位置に挿入します。文字列はカーソル位置に挿入されます。コントロールはアクティブなフォームの左上に配置されます。

[貼り付け] コマンドを使って貼り付けたコントロールは、Name プロパティも含めて、コピーしたときと同じプロパティの値を持っています。同じ名前を持つコントロールを繰り返して貼り付けるとコントロール配列が作成されます。配列を作成しないときは名前を変更します。コントロール中に他のコントロールを貼り付けるには、コントロールを選択した状態で [貼り付け] コマンドを選択してください。

ショートカット キー : Ctrl + V キー、Shift + Ins キー

[削除] コマンドは、現在選択されているコントロール、文字列、またはウォッチ式を削除します。

フォームやモジュールをプロジェクトから消去するには [ファイル] - [ファイルの解放] コマンドを選択します。このコマンドを実行してもディスク上のフォームやモジュールはなくなりません。

ファイルをディスクから削除するには、オペレーティング システムからファイルを操作して削除してください。

ショートカット キー : Del キー


関連項目

Name プロパティ

[ファイルの解放] コマンド ([ファイル] メニュー)


[形式を選択して貼り付け] コマンド ([編集] メニュー)

DDE ソースへのリンクを貼り付けます。クリップボード上に DDE ソースがあり、選択されているコントロールが DDE を受け取ることができる場合のみ選択可能です。

[形式を選択して貼り付け] コマンドは、OLE コンテナ (OLE) コントロールを使って他のアプリケーションのデータをリンクするときにも使用できます。クリップボード上に OLE リンクが可能なデータ (ワードプロセッサのテキストやスプレッドシートのセルなど) があるときに、フォーム上の OLE コンテナ コントロールを選択して [形式を選択して貼り付け] コマンドを選択すると、そのデータへのリンクが作成されます。デザイン時のみ選択可能です。


[検索] コマンド ([編集] メニュー)

関連項目

検索範囲中の文字列を検索します。

ショートカット キー : Ctrl + F キー ([検索] コマンド)、F3 キー ([次を検索] ボタン)、Shift + F3 キー ([前を検索] コマンド)

一致する文字列が見つかると、ダイアログ ボックスが閉じられて一致した文字列が選択されます。一致する文字列が見つからないときは、一致する文字列が見つからなかったことを知らせるメッセージが表示されます。

ダイアログ ボックス オプション

[検索する文字列] ボックス

検索文字列を入力します。矢印ボタンをクリックすると、それまでに入力された文字列が最大 4 項目まで表示され、その中から検索文字列を選択することができます。コマンド選択時に文字列が選択されていると、その文字列が [検索する文字列] ボックスに表示されます。

[対象] グループ ボックス

検索範囲を指定します。

[カレント プロシージャ] オプション ボタンを選択すると、現在のプロシージャを検索します。

[カレント モジュール] オプション ボタンを選択すると、現在のモジュールを検索します。

[カレント プロジェクト] オプション ボタンを選択すると、プロジェクト内の全モジュールを検索します。

[選択された文字列] オプション ボタンを選択すると、プロジェクト内の選択範囲に含まれるコードを検索します。

[検索方向] ボックス

[下方向]、[上方向]、[全体] の中から検索方向を指定します。

[完全に一致する単語だけを検索] チェック ボックス

単語全体が完全に一致する文字列だけ検索します。

[大文字と小文字を区別する] チェック ボックス

大文字と小文字を区別して検索します。

[パターン マッチングを使用] チェック ボックス

パターン マッチング文字を使って検索します。

[次を検索] ボタン

次の検索を行い、[検索する文字列] ボックスで指定した文字列と一致した文字列を選択します。

[キャンセル] ボタン

ダイアログ ボックスを閉じます。検索は行われません。

[置換] ボタン

[置換] ダイアログ ボックスが表示されます。[検索する文字列] ボックスに入力した文字列がそのまま使われます。


関連項目

プロシージャの検索

[置換] コマンド ([編集] メニュー)


[置換] コマンド ([編集] メニュー)

関連項目

プロジェクト内のコードを検索して、一致する文字列を新しい文字列に置き換えます。

ショートカット キー : Ctrl + H キー

ダイアログ ボックス オプション

[検索する文字列] ボックス

検索文字列を入力します。矢印ボタンをクリックすると、それまでに入力された文字列が最大 4 項目まで表示され、その中から検索文字列を選択することができます。コマンド選択時に文字列が選択されていると、その文字列が [検索する文字列] ボックスに表示されます。

[置換後の文字列] ボックス

置換文字列を入力します。クリップボードの文字列を貼り付けることもできます。[検索する文字列] ボックスで指定した文字列をコード中から削除したいときは、[置換後の文字列] ボックスを空にしてください。

[対象] グループ ボックス

検索範囲を指定します。

[カレント プロシージャ] オプション ボタンを選択すると、現在のプロシージャを検索します。

[カレント モジュール] オプション ボタンを選択すると、現在のモジュールを検索します。

[カレント プロジェクト] オプション ボタンを選択すると、プロジェクト内の全モジュールを検索します。

[選択された文字列] オプション ボタンを選択すると、プロジェクト内の選択範囲に含まれるコードを検索します。

[検索方向] ボックス

[下方向]、[上方向]、または [全体] の中から検索方向を指定します。

[完全に一致する単語だけを検索] チェック ボックス

単語全体が完全に一致する文字列だけ検索します。

[大文字と小文字を区別する] チェック ボックス

大文字と小文字を区別して検索します。

[パターン マッチングを使用] チェック ボックス

パターン マッチング文字を使って検索します。

[次を検索] ボタン

次の検索を行い、[検索する文字列] ボックスで指定した文字列と一致した文字列を選択します。

[キャンセル] ボタン

ダイアログ ボックスを閉じます。置換は行われません。

[置換] ボタン

1 回ずつ確認しながら置換を行います。

[すべて置換] ボタン

確認を行わずに、一致するすべての文字列を置換します。


関連項目

[検索] コマンド ([編集] メニュー)

コード内の文字列の置換


[インデント] コマンド ([編集] メニュー)

関連項目

選択範囲に含まれる各行を次のタブ位置まで移動します。選択範囲の中で最も左側にある行頭が次のタブ位置に移動し、他の行はその行との相対的な位置が保たれるように移動します。

ショートカット キー : Tab キー


関連項目

[インデントを戻す] コマンド ([編集] メニュー)


[インデントを戻す] コマンド ([編集] メニュー)

関連項目

選択範囲に含まれる各行を 1 つ前のタブ位置まで移動します。選択範囲の中で最も左側にある行頭が 1 つ前のタブ位置に移動し、他の行はその行との相対的な位置が保たれるように移動します。

ショートカット キー : Shift + Tab キー


関連項目

[インデント] コマンド ([編集] メニュー)


[上層へ移動]、[下層へ移動]コマンド ([編集] メニュー)

関連項目

[上層へ移動] コマンドは、選択されているコントロールを他のすべてのオブジェクトよりも上層へ移動します。

ショートカット キー : Ctrl + J キー

[下層へ移動] コマンドは、選択されているコントロールを他のすべてのオブジェクトよりも下層へ移動します。

ショートカット キー : Ctrl + K キー

注   これらのコマンドはデザイン時にコントロールが選択されている場合のみ選択できます。コード内では ZOrder メソッドを使ってフォームやコントロールを前後に移動します。


関連項目

ZOrder メソッド


[グリッドに合わせる] コマンド ([編集] メニュー)

関連項目

選択されているコントロールの位置をフォーム上のグリッドに位置合わせするかどうかを決定します。

すべてのコントロールを自動的にグリッドに位置合わせする場合、[オプション] ダイアログ ボックスの [環境] タブの [グリッドに合わせる] チェック ボックスをオンにしてください。


関連項目

[環境] タブ ([オプション] ダイアログ ボックス)


[コントロールのロック] コマンド ([編集] メニュー)

フォーム上のすべてのコントロールを現在の位置に固定して、誤って動かせないようにします。コントロールのロックはフォーム単位で設定されます。したがって、ロックされるコントロールは選択されたフォーム上のコントロールだけで、他のフォームのコントロールはロックされません。Visual Basic では、どのフォームのコントロールの位置がロックされているのか、管理されているので、フォーム上のコントロールが固定されているときは、メニュー項目の左側にチェック マークが表示されます。

ツールバー ボタン :


[コード] コマンド ([表示] メニュー)

関連項目

現在のフォーム モジュール、標準モジュール、またはクラス モジュールのコード ウィンドウを表示します。

ショートカット キー : F7 キー


関連項目

コード ウィンドウ

コードの入力と編集


[フォーム] コマンド ([表示] メニュー)

関連項目

現在選択されているフォーム モジュールのフォームを表示します。現在のモジュールがフォーム モジュールでない場合は選択できません。デザイン時のみ選択可能です。

ショートカット キー : Shift + F7 キー


関連項目

フォーム ウィンドウ


[プロシージャの定義] コマンド ([表示] メニュー)

関連項目

プロシージャを定義しているコードを表示します。たとえば Form_Load プロシージャの中で mnuOpen_Click イベント プロシージャを呼び出しているとき、プロシージャを呼び出している部分にカーソルを移動して [プロシージャの定義] コマンドを選択すると、コード ウィンドウには mnuOpen_Click イベント プロシージャのコードを表示します。

ショートカット キー : Shift + F2 キー


関連項目

コードの入力と編集

[元の位置へ移動] コマンド ([表示] メニュー)


[元の位置へ移動] コマンド ([表示] メニュー)

関連項目

直前に編集していた位置に移動します。このコマンドは、コード ウィンドウまたはデバッグ ウィンドウを表示してコードを編集していたとき、または [プロシージャの定義] コマンドによる移動を行ったときに選択できます。たとえば、まず 1 行めを編集し、次に 2 行めを編集して、[プロシージャの定義] コマンドで 3 行めに移動して、その後 4 行めを編集して、5 行めに移動したとします。この時点で [元の位置へ移動] コマンドを選択すると、4 行めに移動します。次に [元の位置へ移動] コマンドを選択すると、3 行めに移動します。最大で 4 段階前の位置へ戻れます。このコマンドはデザイン時と中断モードで選択できます。

ショートカット キー : Ctrl + Shift + F2 キー


関連項目

[プロシージャの定義] コマンド ([表示] メニュー)


[オブジェクト ブラウザ] コマンド ([表示] メニュー)

関連項目

オブジェクト ブラウザを表示します。オブジェクト ブラウザには、コード中で使用可能なオブジェクト ライブラリ、クラス、メソッド、プロパティ、およびプロジェクト中で定義されているモジュールとプロシージャの一覧を表示します。実行時は選択できません。

ツールバー ボタン :

ショートカット キー : F2 キー

[オプション] ボタンを選択すると、オブジェクト ブラウザ上のモジュール、プロジェクト、クラス、プロパティ、およびメソッドについてヘルプやコメントが記述できます。リストをスクロールするとフォームやモジュールに対する説明やコメントが表示されます。


関連項目

[メンバ設定] ダイアログ ボックス

オブジェクト ブラウザ


[デバッグ ウィンドウ] コマンド ([表示] メニュー)

関連項目

デバッグ ウィンドウを表示します。

ショートカット キー : Ctrl + G キー


関連項目

Debug オブジェクト

デバッグ ウィンドウ

デバッグのためのチェック リスト


[プロジェクト ウィンドウ] コマンド ([表示] メニュー)

関連項目

プロジェクト ウィンドウを表示します。プロジェクト ウィンドウにはプロジェクトに含まれるフォーム モジュール、クラス モジュール、標準モジュール、および (存在すれば) リソース ファイルのリストが表示されます。

ツールバー ボタン :

ショートカット キー : Ctrl + R キー


関連項目

プロジェクト ウィンドウ


[プロパティ ウィンドウ] コマンド ([表示] メニュー)

関連項目

プロパティ ウィンドウを表示します。プロパティ ウィンドウには現在選択されているフォーム、コントロール、クラス、モジュール、またはメニューのデザイン時のプロパティの一覧が表示されます。デザイン時のみ選択可能です。

ツールバー ボタン :

ショートカット キー : F4 キー


関連項目

色の設定

フォームとコントロールのプロパティの設定

プロパティ ウィンドウ


[ツールボックス] コマンド ([表示] メニュー)

関連項目

ツールボックスを表示します。ツールボックスには標準コントロール (.VBX)、カスタム コントロール (.VBX、.OCX)、およびアプリケーションから使用可能な挿入可能なオブジェクト (Microsoft Excel のグラフなど) の一覧が表示されます。デザイン時のみ選択可能です。


関連項目

フォームまたはコントロールへのイベント プロシージャの記述

[カスタム コントロール] コマンド ([ツール] メニュー)

グラフィカル オブジェクト

フォームとコントロールのプロパティの設定

ツールボックス


[ツールバー] コマンド ([表示] メニュー)

関連項目

ツールバーの表示と非表示を切り替えます。ツールバーにはよく使われるコマンドに対応するボタンと、選択されているフォームやコントロールのサイズと位置が表示されています。


関連項目

ツールバー


[カラー パレット] コマンド ([表示] メニュー)

関連項目

カラー パレット ウィンドウを表示します。カラー パレット ウィンドウではフォームやコントロールの色を変えたり、ユーザー定義の色を作成することが可能です。デザイン時のみ選択可能です。


関連項目

カラー パレット

[カラー パレット] コマンド ([表示] メニュー)

色の設定


[プロシージャ] コマンド ([挿入] メニュー)

関連項目

新しい Sub プロシージャ、Function プロシージャ、またはProperty プロシージャを挿入します。このコマンドを選択すると [新規プロシージャ] ダイアログ ボックスが表示されます。このダイアログ ボックスではプロシージャの適用範囲 (スコープ) を設定したり、プロシージャのローカル変数をすべて静的変数にするかどうかを指定できます。


関連項目

コードの入力と編集

[新規プロシージャ] ダイアログ ボックス


[フォーム モジュール]、[MDI フォーム モジュール]、[標準モジュール]、[クラス モジュール] コマンド ([挿入] メニュー)

関連項目

[フォーム モジュール] コマンドを選択すると、新しいフォームが作成されてプロジェクトに追加されます。

ツールバー ボタン :

[MDI フォーム モジュール] コマンドを選択すると、新しい MDI フォームが作成され、プロジェクトに追加されます。1 つのプロジェクトには 1 つの MDI フォームしか作成できません。既に MDI フォームが存在するときはこのコマンドは選択できません。

[標準モジュール] コマンドを選択すると、新しい標準モジュールが作成されてプロジェクトに追加されます。

ツールバー ボタン :

[クラス モジュール] コマンドを選択すると、新しいクラス モジュールが作成されてプロジェクトに追加されます。


関連項目

MDIChild プロパティ

[新規プロジェクト] コマンド ([ファイル] メニュー)


[テキスト ファイルの読み込み] コマンド ([挿入] メニュー)

ファイルに保存されているテキストをモジュールに挿入します。テキストを挿入するフォーム モジュール、標準モジュール、またはクラス モジュールを選択して、カーソルを挿入位置に移動してください。ここで [テキスト ファイルの読み込み] コマンドを選択すると [テキスト ファイルの読み込み] ダイアログ ボックスが表示されるので、挿入するテキストが保存されているテキスト ファイルを指定してください。このコマンドは実行時には選択できません。


[開始] コマンド ([実行] メニュー)

関連項目

[オプション] ダイアログ ボックスの [プロジェクト] タブで指定したスタートアップ フォームまたは Sub Main からアプリケーションの実行を開始します。作成中のフォームはすべて閉じられます。変数が初期化され、スタートアップ フォームが指定されている場合は、スタートアップ フォームがロードされます。

[実行] - [開始] コマンドはデザイン時に選択できます。実行時には [実行] - [中断] コマンドに変わります。中断モードでは [実行] - [継続] コマンドに変わります。

ツールバー ボタン :

ショートカット キー : F5 キー


関連項目

[中断] コマンド ([実行] メニュー)

[継続] コマンド ([実行] メニュー)

[終了] コマンド ([実行] メニュー)

[プロジェクト] タブ ([オプション] ダイアログ ボックス)

[再実行] コマンド ([実行] メニュー)


[継続] コマンド ([実行] メニュー)

関連項目

アプリケーションの実行を再開します。

[実行] - [継続] コマンドは中断モードで選択できます。デザイン時には [実行] - [開始] コマンドに変わります。実行時には [実行] - [中断] コマンドに変わります。

ツールバー ボタン :

ショートカット キー : F5 キー


関連項目

[中断] コマンド ([実行] メニュー)

[終了] コマンド ([実行] メニュー)

[プロジェクト] タブ ([オプション] ダイアログ ボックス)

[再実行] コマンド ([実行] メニュー)

[開始] コマンド ([実行] メニュー)


[中断] コマンド ([実行] メニュー)

関連項目

実行中のプログラムを一時停止して中断モードに移行します。デバッグ ウィンドウ内のコード ペインでは、次に実行されるステートメントが [オプション] ダイアログ ボックスの [書式] タブで設定した色の細枠で囲まれて強調表示されます。ただし、アイドル ループ内でイベント待機中で、実行中のステートメントがなかった場合は、イベントが発生するまでステートメントは表示されません。

中断モードでプログラムを編集すると、編集内容によってはプログラムを最初から実行しなければならなくなる場合があります。

[実行] - [中断] コマンドは実行時と中断モードで選択できます。

ツールバー ボタン :

ショートカット キー : F5 キーまたは Ctrl + Break キー


関連項目

[継続] コマンド ([実行] メニュー)

デバッグ ウィンドウ

[終了] コマンド ([実行] メニュー)

[書式] タブ ([オプション] ダイアログ ボックス)

[再実行] コマンド ([実行] メニュー)

[開始] コマンド ([実行] メニュー)


[終了] コマンド ([実行] メニュー)

関連項目

プログラムの実行を終了してデザイン時に戻ります。このコマンドは実行時と中断モードで選択できます。

ツールバー ボタン :


関連項目

[中断] コマンド ([実行] メニュー)

[再実行] コマンド ([実行] メニュー)

[開始] コマンド ([実行] メニュー)


[再実行] コマンド ([実行] メニュー)

関連項目

中断モードでこのコマンドを選択すると、アプリケーションを先頭から実行します。アプリケーションは実行時エラー、Stop ステートメント、ブレークポイント、またはウォッチ式によって中断されます。[実行] - [中断] コマンドや F5 キーを選択したときも、アプリケーションの実行は中断されます。

このコマンドは中断モードのみ選択可能です。

ツールバー ボタン :

ショートカット キー : Shift + F5 キー


関連項目

ウォッチ式の追加

[中断] コマンド ([実行] メニュー)

[終了] コマンド ([実行] メニュー)

[再実行] コマンド ([実行] メニュー)

ブレークポイントの設定と解除

[開始] コマンド ([実行] メニュー)

Stop ステートメント


[シングル ステップ]、[プロシージャ ステップ]、[カーソル行の前まで実行] コマンド ([実行] メニュー)

[シングル ステップ] コマンドはステートメントを 1 行ずつ実行します。実行するステートメントがプロシージャを呼び出すステートメントである場合は、プロシージャの先頭のステートメントが次に表示されます。そして、このステートメントが次に実行されます。デザイン時にこのコマンドを選択するとプログラムが開始され、最初の行が実行される前に中断モードに入ります。実行時には選択できません。

ツールバー ボタン :

ショートカット キー : F8 キー

[プロシージャ ステップ] コマンドは [シングル ステップ] コマンドとほぼ同じように動作しますが、[プロシージャ ステップ] コマンドはプロシージャ呼び出しを 1 ステップで実行して、現在のプロシージャ内の次のステートメントで停止します。つまり、プロシージャ呼び出しを実行する場合でも、停止したときには必ず現在のモジュール内の次のステートメントが表示されます。実行時には選択できません。

ツールバー ボタン :

ショートカット キー : Shift + F8 キー

アプリケーションが中断モードに入っているときは、[カーソル行の前まで実行] コマンドを使って指定位置まで実行を進めることができます。このコマンドは、たとえば、時間のかかるループ処理の実行を避けるために使用できます。実行時には選択できません。

ショートカット キー : Ctrl + F8 キー


[ブレークポイントの設定/解除] コマンド ([実行] メニュー)

関連項目

現在カーソルのある行のブレークポイントを設定、解除します。実行可能なステートメントを含まない行 (コメント、宣言ステートメント、空行など) にはブレークポイントを設定できません。

ブレークポイントを設定した行は [オプション] ダイアログ ボックスの [書式] タブで指定した色で表示されます。

このコマンドは実行時には選択できません。

ツールバー ボタン :

ショートカット キー : F9 キー


関連項目

[ウォッチ式の追加] コマンド ([ツール] メニュー)

ウォッチ式の追加

ウォッチ式の削除

[ウォッチ式の編集] コマンド ([ツール] メニュー)

ウォッチ式の編集

[書式] タブ ([オプション] ダイアログ ボックス)

[インスタント ウォッチ] コマンド ([ツール] メニュー)

ブレークポイントの設定と解除


[すべてのブレークポイント解除] コマンド ([実行] メニュー)

関連項目

プロジェクト内で設定されているすべてのブレークポイントを解除します。ブレークポイントを解除しても、ウォッチ式を設定したり、[オプション] ダイアログ ボックスの [詳細設定] タブで [エラー発生時に中断] チェック ボックスを選択しているときは、プログラムの実行が中断されることがあります。実行時には選択できません。

ショートカット キー : Ctrl + Shift + F9 キー


関連項目

[ウォッチ式の追加] コマンド ([ツール] メニュー)

ウォッチ式の追加

[詳細設定] タブ ([オプション] ダイアログ ボックス)

ウォッチ式の削除

[ウォッチ式の編集] コマンド ([ツール] メニュー)

ウォッチ式の編集

[インスタント ウォッチ] コマンド ([ツール] メニュー)

ブレークポイントの設定と解除

[ブレークポイントの設定/解除] コマンド ([実行] メニュー)


[次のステートメントの設定] コマンド ([実行] メニュー)

関連項目

現在選択されているステートメントの次に実行する行を指定します。[シングル ステップ] コマンドがプロシージャ内の次の行しか実行できないのに対して、[次のステートメントの設定] コマンドでは任意の行を指定して実行できます。また、[次のステートメントの設定] コマンドでは、現在選択されている行より前のコードも、後ろのコードも選択できます。現在選択されている行と指定された行の間にあるコードは実行されません。このコマンドは現在のプロシージャを終了して呼び出し元に戻りたいときや、不必要なコードの実行を省略するときに使用できます。現在のプロシージャ以外にあるステートメントは指定できません。中断モードで選択できます。

ショートカット キー : Ctrl + F9 キー


関連項目

特定のステートメントの実行

[シングル ステップ]、[プロシージャ ステップ]、[カーソル行の前まで実行] コマンド ([実行] メニュー)


[次のステートメントの表示] コマンド ([実行] メニュー)

関連項目

次に実行されるステートメントにカーソルが移動します。

中断モードのみ選択可能です。


関連項目

特定のステートメントの実行


[ウォッチ式の追加] コマンド ([ツール] メニュー)

関連項目

[ウォッチ式の追加] ダイアログ ボックスを表示します。デザイン時または中断モードで選択できます。[ウォッチ式の追加] ダイアログ ボックスにはウォッチ式を入力できます。ウォッチ式には任意の Basic の式を指定できます。デバッグ ウィンドウが表示されているときは、中断モードに入るたびにデバッグ ウィンドウのウォッチ ペインにウォッチ式の現在の値が表示されます。

ウォッチ式の評価方法を指定するときは、できるだけ狭い適用範囲 (スコープ) を指定してください。[(すべてのモジュール)] や [(すべてのプロシージャ)] を選択すると、コードを 1 行実行するたびにウォッチ式が評価されるため、ウォッチ式の評価回数が増加してプログラムの実行速度が低下します。ウォッチ式の評価によって実行速度が低下するのは、対象として選択されたプロシージャがアクティブなプロシージャ呼び出しの一覧に表示されている間だけです。アクティブなプロシージャ呼び出しの一覧は [ツール] - [呼び出し履歴] コマンドを選択すると表示されます。


関連項目

[ウォッチ式の追加] ダイアログ ボックス

ウォッチ式の追加

[呼び出し履歴] コマンド ([ツール] メニュー)

ウォッチ式の削除

ウォッチ式の編集

[インスタント ウォッチ] コマンド ([ツール] メニュー)

ブレークポイントの設定と解除


[ウォッチ式の編集] コマンド ([ツール] メニュー)

関連項目

[ウォッチ式の編集] ダイアログ ボックスを表示して、ウォッチ式を編集します。ウォッチ式をすべて削除したり、新しいウォッチ式を追加することもできます。

ショートカット キー : Ctrl + W キー


関連項目

[ウォッチ式の追加] コマンド ([ツール] メニュー)

ウォッチ式の追加

ウォッチ式の削除

ウォッチ式の編集

[ウォッチ式の編集] ダイアログ ボックス

[インスタント ウォッチ] コマンド ([ツール] メニュー)

ブレークポイントの設定と解除

[ブレークポイントの設定/解除] コマンド ([実行] メニュー)


[インスタント ウォッチ] コマンド ([ツール] メニュー)

関連項目

[インスタント ウォッチ] ダイアログ ボックスを表示して、式の値を表示します。中断モードのみ選択可能です。[インスタント ウォッチ] ダイアログ ボックスを使うと、ウォッチ式として定義していない変数、プロパティ、または式の値をデバッグ中に調べることができます。コード ウィンドウまたはデバッグ ウィンドウのコード ペインから式を選択してから [ツール] - [インスタント ウォッチ] コマンドを選択してください。式をウォッチ式として追加したいときは [追加] ボタンを選択してください。

ツールバー ボタン :

ショートカット キー : Shift + F9 キー


関連項目

[ウォッチ式の追加] コマンド ([ツール] メニュー)

ウォッチ式の追加

ウォッチ式の削除

[ウォッチ式の編集] コマンド ([ツール] メニュー)

ウォッチ式の編集

[インスタント ウォッチ] ダイアログ ボックス

ブレークポイントの設定と解除


[呼び出し履歴] コマンド ([ツール] メニュー)

関連項目

[呼び出し履歴] ダイアログ ボックスを表示して、現在アクティブなプロシージャ呼び出し (呼び出しが終了していないプロシージャ) の一覧を表示します。中断モードのみ選択可能です。

現在実行中のコードが含まれているプロシージャはアクティブなプロシージャ呼び出しの一覧に含まれます。プロシージャ内で別のプロシージャを呼び出すと、2 つのプロシージャは両方ともリストに表示されます。プロシージャ内で他の Sub プロシージャ、Function プロシージャ、またはProperty プロシージャを呼び出すと、そのプロシージャがリストに追加されます。プロシージャが終了して呼び出し元に戻ると、そのプロシージャはリストから削除されます。デバッグ ウィンドウで呼び出したプロシージャもリストに追加されます。

このダイアログ ボックスはデバッグ ウィンドウ内の [...] ボタンを選択したときにも表示されます。

ツールバー ボタン :

ショートカット キー : Ctrl + L キー


関連項目

[呼び出し履歴] ダイアログ ボックス


[メニュー エディタ] コマンド ([ツール] メニュー)

関連項目

[メニュー エディタ] ダイアログ ボックスを表示します。アプリケーションにユーザー定義のメニューを作成したり、メニューのプロパティを設定するときに使用します。

ツールバー ボタン :

ショートカット キー : Ctrl + E キー


関連項目

メニュー バーの作成

メニュー エディタ

メニュー エディタでのキー操作


[カスタム コントロール] コマンド ([ツール] メニュー)

関連項目

[カスタム コントロール] ダイアログ ボックスを表示します。VBX カスタム コントロール、OLE カスタム コントロール (.OCX)、または挿入可能なオブジェクト (Microsoft Word の文書など) をツールボックスに追加するときに使用します。


関連項目

[カスタム コントロール] ダイアログ ボックス

ツールボックス


[参照設定] コマンド ([ツール] メニュー)

関連項目

[参照設定] ダイアログ ボックスを表示します。オブジェクト ライブラリやタイプ ライブラリへの参照をプロジェクトに追加するときに使用します。このコマンドによって、他のアプリケーションのオブジェクトが利用できます。プロジェクトに参照が追加されたオブジェクトはオブジェクト ブラウザで見ることができます。


関連項目

[参照設定] ダイアログ ボックス

オブジェクト ブラウザ


[オプション] コマンド ([ツール] メニュー)

関連項目

[オプション] ダイアログ ボックスを表示します。次の 4 つのタブの中から 1 つを選択してVisual Basic の開発環境の属性を設定できます。

環境

プロジェクト

書式

詳細設定


関連項目

[詳細設定] タブ ([オプション] ダイアログ ボックス)

[環境] タブ ([オプション] ダイアログ ボックス)

[書式] タブ ([オプション] ダイアログ ボックス)

[プロジェクト] タブ ([オプション] ダイアログ ボックス)

オプションの設定


[データ マネージャ] コマンド ([アドイン] メニュー)

データ マネージャがインストールされている場合、データ マネージャを起動します。デザイン時のみ選択可能です。


[レポート デザイナ] コマンド ([アドイン] メニュー)

Crystal Reports for Visual Basic を起動します。このコマンドは Visual Basic Professional Edition および Visual Basic Enterprise Edition で Crystal Reports をインストールしている場合のみ選択できます。またデザイン時のみ選択可能です。


[アドイン マネージャ] コマンド ([アドイン] メニュー)

関連項目

[アドイン マネージャ] ダイアログ ボックスを表示します。Microsoft Visual Basic の開発環境の拡張機能を設定します。


関連項目

[アドイン マネージャ] ダイアログ ボックス


メニュー コマンド ([ヘルプ] メニュー)

[目次]

Visual Basic のヘルプを起動して目次を表示します。

[キーワードで検索]

ヘルプの [キーワードで検索] ダイアログ ボックスを表示します。必要なヘルプ項目を検索するために使用します。

[バージョン情報]

Microsoft Visual Basic のバージョン、著作権、使用可能メモリ量を示すダイアログ ボックスを表示します。


[ポップアップ] メニュー

ポップアップ メニューにはよく使用するコマンドが登録されています。各場面でマウスの右ボタンをクリックすると表示されます。

コントロール上でのポップアップ メニュー (デザイン時)

デザイン時にはコントロール用のポップアップ メニューが使用できます。一般にコントロールには次のメニュー コマンドが使用できます。

[切り取り] コマンド

コントロールをフォーム上からクリップボードに一時保存します。

[コピー] コマンド

コントロールをクリップボード上にコピーします。

[貼り付け] コマンド

クリップボードの内容をコントロールに貼り付けます。フレームが選択されていないとき、あるいは複数のコントロールが選択されているときは選択できません。

[クリア] コマンド

コントロールとその内容をフォーム上から削除します。

[グリッドに合わせる] コマンド

コントロールの位置をグリッドに合わせます。

[プロパティ ウィンドウ] コマンド

標準コントロールでは標準のプロパティ ウィンドウを表示します。OLE カスタム コントロールではプロパティ ページを表示します。

[コードの表示] コマンド

コード ウィンドウを表示します。

実行時には、そのコントロールで定義されているポップアップ メニューが表示されます。カスタム コントロールには独自のポップアップ メニュー コマンドが用意されていることもあります。

コード ウィンドウ上でのポップアップ メニュー (デザイン時)

デザイン時にコード ウィンドウ内の編集領域でマウスの右ボタンをクリックすると、次のメニュー コマンドが表示されます。

[切り取り] コマンド

選択文字列を切り取ります。文字列が選択されていないときは実行できません。

[コピー] コマンド

選択文字列をクリップボードにコピーします。文字列が選択されていないときは実行できません。

[貼り付け] コマンド

クリップボードの内容をカーソル位置に挿入します。クリップボード上に文字列がないときは実行できません。

[オブジェクト ブラウザ] コマンド

オブジェクト ブラウザを表示します。

[プロシージャの定義] コマンド

プロシージャを定義しているコードを表示します。たとえば Form_Load プロシージャ内で mnuOpen_Click イベント プロシージャを呼び出しているとき、プロシージャ呼び出しの部分にカーソルを移動して [プロシージャの定義] コマンドを選択すると、mnuOpen_Click イベント プロシージャの定義部のコードが表示されます。

[ブレークポイントの設定/解除] コマンド

ブレークポイントを設定、解除します。

コード ウィンドウ上でのポップアップ メニュー (中断モード)

中断モードで、デバッグ ウィンドウのコード ペイン内でマウスの右ボタンをクリックすると次のメニュー コマンドが表示されます。

[切り取り] コマンド

選択文字列を切り取ります。文字列が選択されていないときは実行できません。

[コピー] コマンド

選択文字列をクリップボードにコピーします。文字列が選択されていないときは実行できません。

[貼り付け] コマンド

クリップボードの内容をカーソル位置に挿入します。クリップボード上に文字列がないときは実行できません。

[オブジェクト ブラウザ] コマンド

オブジェクト ブラウザを表示します。

[プロシージャの定義] コマンド

プロシージャを定義しているコードを表示します。たとえば Form_Load プロシージャ内で mnuOpen_Click イベント プロシージャを呼び出しているとき、プロシージャ呼び出しの部分にカーソルを移動して [プロシージャの定義] コマンドを選択すると、mnuOpen_Click イベント プロシージャの定義部のコードが表示されます。

[ブレークポイントの設定/解除] コマンド

ブレークポイントを設定、解除します。

[カーソル行の前まで実行] コマンド

カーソル位置のステートメントの直前のステートメントまで実行して停止します。

[インスタント ウォッチ] コマンド

式の値を表示します。

[次のステートメントの設定] コマンド

次に実行するステートメントを指定します。

イミディエイト ペイン上でのポップアップ メニュー (中断モード)

デバッグ ウィンドウのイミディエイト ペインはデザイン時には使用されないので、イミディエイト ペインで使用できるポップアップ メニューはありません。中断モードでは次のメニュー コマンドが選択できます。

[切り取り] コマンド

選択文字列を切り取ります。文字列が選択されていないときは実行できません。

[コピー] コマンド

選択文字列をクリップボードにコピーします。文字列が選択されていないときは実行できません。

[貼り付け] コマンド

クリップボードの内容をカーソル位置に挿入します。クリップボード上に文字列がないときは実行できません。

[オブジェクト ブラウザ] コマンド

オブジェクト ブラウザを表示します。

[プロシージャの定義] コマンド

プロシージャを定義しているコードを表示します。たとえば Form_Load プロシージャ内で mnuOpen_Click イベント プロシージャを呼び出しているとき、プロシージャ呼び出しの部分にカーソルを移動して [プロシージャの定義] コマンドを選択すると、mnuOpen_Click イベント プロシージャの定義部のコードが表示されます。

[継続] コマンド

アプリケーションの実行を再開します。F5 キーを押しても同じ結果が得られます。

[終了] コマンド

アプリケーションの実行を終了します。[実行] - [終了] コマンドを選択しても同じ結果が得られます。

ウォッチ ペイン上でのポップアップ メニュー (デザイン時または中断モード)

中断モードまたはデザイン時にデバッグ ウィンドウのウォッチ ペイン中でマウスの右ボタンをクリックすると、次のメニュー コマンドが表示されます。

[ウォッチ式の追加] コマンド

[ウォッチ式の追加] ダイアログ ボックスを表示します。

[ウォッチ式の編集] コマンド

[ウォッチ式の編集] ダイアログ ボックスを表示して、選択したウォッチ式を表示します。ウォッチ式が選択されていないときは使用できません。

[ウォッチ式の削除] コマンド

選択したウォッチ式を削除します。

[継続] コマンド

アプリケーションの実行を再開します。デザイン時には選択できません。

[終了] コマンド

アプリケーションの実行を終了します。デザイン時には選択できません。

OLE コンテナ コントロール上でのポップアップ メニュー

OLE カスタム コントロールではマウスの右ボタンをクリックしたときに表示される動詞を定義できます。したがって、OLE コンテナ (OLE) コントロールに独自のポップアップ メニューが用意されているときは、そのメニューが Visual Basic のポップアップ メニューに追加されます。OLE コンテナ コントロールにオブジェクトが含まれるときは、オブジェクトの動詞がメニューの末尾に追加されます。たとえば OLE コンテナ コントロールに Microsoft Word の文書が含まれているときは動詞として [編集] と [開く] が追加されます。

OLE コンテナ コントロール上でのポップアップ メニューでは [切り取り]、[コピー]、[貼り付け]、[クリア]、[グリッドに合わせる]、[コードの表示] の各コマンドの他に、次のコマンドが選択できます。

[オブジェクトの挿入] コマンド

[オブジェクトの挿入] ダイアログ ボックスを表示します。常に選択可能です。

[形式を選択して貼り付け] コマンド

[形式を選択して貼り付け] ダイアログ ボックスを表示します。クリップボードから OLE コンテナ コントロールにオブジェクトを貼り付けるときに使用します。クリップボードにオブジェクトがある場合のみ選択できます。

[リンクの作成] コマンド

オブジェクトへのリンクをコントロール中に作成します。SourceDoc プロパティが設定されているときに選択できます。

[埋め込みオブジェクトの作成] コマンド

オブジェクトをコントロールに埋め込みます。Class プロパティまたは SourceDoc プロパティが設定されているときに選択できます。

[埋め込みオブジェクトの削除] コマンド

コントロール内のリンクや埋め込みオブジェクトを削除します。OLE コンテナ オブジェクトがリンクや埋め込みオブジェクトを持つときに選択できます。

フォームのポップアップ メニュー

フォームではデザイン時にのみポップアップ メニューが表示されます。フォーム上のコントロール以外の場所でマウスの右ボタンをクリックすると、次のメニュー コマンドが表示されます。

[貼り付け] コマンド

クリップボードの内容をフォームに貼り付けます。

[プロパティ ウィンドウ] コマンド

フォームのプロパティ ウィンドウを表示します。

[メニュー エディタ] コマンド

メニュー エディタを表示します。

[コードの表示] コマンド

フォーム モジュールのコード ウィンドウを表示します。


コード ウィンドウのショートカット キー

コード ウィンドウでは次のショートカット キーが使用できます。

機能	ショートカット キー

コード ウィンドウを表示	F7

[オブジェクト] ボックスを表示	Ctrl + F2

オブジェクト ブラウザを表示	F2

検索	Ctrl + F

置換	Ctrl + H

次を検索	F3

前を検索	Shift + F3

次のプロシージャへ	Ctrl + ↓

前のプロシージャへ	Ctrl + ↑

プロシージャへ移動	Shift + F2

1 画面下へ	Ctrl + PageDown

1 画面上へ	Ctrl + PageUp

元の位置へ移動	Ctrl + Shift + F2

モジュールの先頭へ	Ctrl + Home

モジュールの末尾へ	Ctrl + End

1 語右へ	Ctrl + →

1 語左へ	Ctrl + ←

行末へ	End

行頭へ	Home

行挿入	Ctrl + N

繰り返し	Ctrl + BackSpace

元に戻す	Ctrl + Z

行削除	Ctrl + Y

語の末尾まで削除	Ctrl + Del

語の先頭まで削除	Ctrl + Shift + BackSpace

インデント	Tab

インデントを戻す	Shift + Tab

ブレークポイントをすべて解除	Ctrl + Shift + F9


[チェックアウト] コマンド ([ツール] メニュー)

関連項目

ソース コード管理システム (Microsoft Visual Basic Enterprise Edition で提供されている Microsoft Visual SourceSafe など) のカレント プロジェクトから、1 つまたは複数の選択されたファイルを現在の作業ディレクトリにコピーします。コピーされたファイルは更新可能です。ファイルをチェックアウトすると、Visual Basic のプロジェクト ウィンドウのファイル名の左側にチェック マークが表示されます。

注   [チェックアウト] コマンドと [取得] コマンドは主に次の点で異なります。[取得] コマンドはファイルの参照を目的としてファイルの読み取り専用のコピーを作業ディレクトリにコピーするのに対し、[チェックアウト] コマンドはファイルの変更を目的として読み取りおよび書き込み可能なファイルを作業ディレクトリにコピーします。

このコマンドを使用するには、ソース コード管理システムのファイルをチェックアウトする権限が必要です。

[チェックアウト]、[チェックイン]、[取得]、および [チェックアウトの取り消し] の各コマンドは、ソース コード管理システムのアドインを接続し、プロジェクトをソース コード管理システムへ追加すると、選択可能になります。


関連項目

[チェックイン] コマンド ([ツール] メニュー)

Visual SourceSafe アドインの組み込み

[取得] コマンド ([ツール] メニュー)

[チェックアウトの取り消し] コマンド ([ツール] メニュー)


[チェックイン] コマンド ([ツール] メニュー)

関連項目

ソース コード管理システム (Microsoft Visual Basic Enterprise Edition で提供されている Microsoft Visual SourceSafe など) で管理されているファイルのマスター コピーを、チェックアウト ファイルの内容変更に従って更新します。Visual SourceSafe では、[チェックイン] コマンドを選択すると、[Visual SourceSafe にファイルをチェックイン] ダイアログ ボックスが表示されます。

このコマンドを使用するには、ソース コード管理システムのファイルをチェックアウトする権限が必要です。

[チェックアウト]、[チェックイン]、[取得]、および [チェックアウトの取り消し] の各コマンドは、ソース コード管理システムのアドインを接続し、プロジェクトをソース コード管理システムに追加すると、選択可能になります。


関連項目

[チェックアウト] コマンド ([ツール] メニュー)

Visual SourceSafe アドインの組み込み

[取得] コマンド ([ツール] メニュー)

[チェックアウトの取り消し] コマンド ([ツール] メニュー)


[取得] コマンド ([ツール] メニュー)

関連項目

[取得] コマンドを使用すると、ソース コード管理システム (Microsoft Visual Basic Enterprise Edition で提供されている Microsoft Visual SourceSafe など) から最新バージョンのファイルまたはプロジェクトの読み取り専用のコピーを作業ディレクトリに取得し、参照用またはコンパイル用に使用できます。

注   [チェックアウト] コマンドと [取得] コマンドは主に次の点で異なります。[取得] コマンドはファイルの参照を目的としてファイルの読み取り専用のコピーを作業ディレクトリにコピーするのに対し、[チェックアウト] コマンドはファイルの変更を目的として読み取りおよび書き込み可能なファイルを作業ディレクトリにコピーします。

このコマンドを使用するには、ファイルの読み取り権限が必要です。

[チェックアウト]、[チェックイン]、[取得]、および [チェックアウトの取り消し] の各コマンドは、ソース コード管理システムのアドインを接続し、プロジェクトをソース コード管理システムに追加すると、選択可能になります。


関連項目

[チェックイン] コマンド ([ツール] メニュー)

[チェックアウト] コマンド ([ツール] メニュー)

Visual SourceSafe アドインの組み込み

[チェックアウトの取り消し] コマンド ([ツール] メニュー)


[チェックアウトの取り消し] コマンド ([ツール] メニュー)

関連項目

チェックアウトの操作を取り消し、すべての変更を無効にします。

このコマンドを使用するには、ソース コード管理システムのファイルをチェックアウトする権限が必要です。また、 1 つまたは複数のファイルがチェックアウト中である必要があります。

[チェックアウト]、[チェックイン]、[取得]、および [チェックアウトの取り消し] の各コマンドは、ソース コード管理システムのアドインを接続し、プロジェクトをソース コード管理システムに追加すると、選択可能になります。


関連項目

[チェックイン] コマンド ([ツール] メニュー)

[チェックアウト] コマンド ([ツール] メニュー)

Visual SourceSafe アドインの組み込み

[取得] コマンド ([ツール] メニュー)


その他の定数

関連項目

ZOrder メソッド

定数	値	内容

vbBringToFront	0	先頭に移動します。

vbSendToBack	1	後方に移動します。

QueryUnload メソッド

定数	値	内容

vbAppWindows	2	現在の Windows のセッションが終了しようとしています。

vbFormMDIForm	4	MDI フォームが閉じられたので、MDI 子フォームも閉じられました。

vbFormCode	1	コード内で Unload メソッドが起動されました。

vbFormControlMenu	0	フォームのコントロール メニューから、[閉じる] コマンドが選択されました。

vbAppTaskManager	3	Microsoft Windows の [アプリケーションの切り替え] ウィンドウで、アプリケーションが閉じられました。

引数 shift マスク

定数	値	内容

vbShiftMask	1	Shift キー ビット マスク

vbCtrlMask	2	Ctrl キー ビット マスク

vbAltMask	4	Alt キー ビット マスク

引数 button マスク

定数	値	内容

vbLeftButton	1	マウスの左ボタン

vbRightButton	2	マウスの右ボタン

vbMiddleButton	4	マウスの中央ボタン

アプリケーションの実行開始モード

定数	値	内容

vbSModeStandalone	0	独立型アプリケーション

vbSModeAutomation	1	OLE オートメーション サーバー

LoadResPicture メソッド

定数	値	内容

vbResBitmap	0	ビットマップ リソース

vbResIcon	1	アイコン リソース

vbResCursor	2	カーソル リソース

チェック値

定数	値	内容

vbUnchecked	0	チェックされていません。

vbChecked	1	チェックされています。

vbGrayed	2	淡色表示されています。


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


コントロールの定数

関連項目

コンボボックス コントロール

定数	値	内容

vbComboDropdown	0	ドロップダウン コンボ

vbComboSimple	1	シンプル コンボ

vbComboDropdownList	2	ドロップダウン リスト

リストボックス コントロール

定数	値	内容

vbMultiSelectNone	0	複数の項目の選択はできません。

vbMultiSelectSimple	1	単純な複数選択を行います。

vbMultiSelectExtended	2	拡張複数選択を行います。

スクロールバー コントロール

定数	値	内容

vbSBNone	0	なし

vbHorizontal	1	水平方向

vbVertical	2	垂直方向

vbBoth	3	両方向

シェイプ コントロール

定数	値	内容

vbShapeRectangle	0	長方形

vbShapeSquare	1	正方形

vbShapeOval	2	楕円

vbShapeCircle	3	円

vbShapeRoundedRectangle	4	角の丸い長方形

vbShapeRoundedSquare	5	角の丸い正方形


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

その他の定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


グリッド (Grid) コントロールの定数

関連項目

ColAlignment プロパティと FixedAlignment プロパティ

定数	値	内容

grdAlignCenter	2	データを列内で中央揃えにします。

grdAlignLeft	0	データを列内で左揃えにします。

grdAlignRight	1	データを列内で右揃えにします。

FillStyle プロパティ

定数	値	内容

grdSingle	0	Text プロパティの設定値の変更を、アクティブ セルだけに反映させます。

grdRepeat	1	Text プロパティの設定値の変更を、選択したセルすべてに反映させます。


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


Picture オブジェクトの定数

関連項目

定数	値	内容

vbPicTypeBitmap	1	ビットマップ タイプの Picture オブジェクト。

vbPicTypeMetafile	2	メタファイル タイプの Picture オブジェクト。

vbPicTypeIcon	3	アイコン タイプの Picture オブジェクト。


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


バリアント型 (Variant) のデータ型定数

関連項目

定数	値	内容

vbVEmpty	0	空 (初期化されていない)

vbVNull	1	Null 値 (無効なデータ)

vbVInteger	2	整数型 (Integer)

vbVLong	3	長整数型 (Long)

vbVSingle	4	単精度浮動小数点数型 (Single)

vbVDouble	5	倍精度浮動小数点数型 (Double)

vbVCurrency	6	通貨型 (Currency) (位取り整数)

vbVDate	7	日付型 (Date)

vbVString	8	文字列型 (String)


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

VB カラー変換および OLE カラー変換定数


DDE の定数

関連項目

linkerr (LinkError イベント)

定数	値	内容

vbWrongFormat	1	他のアプリケーションから不正な形式のデータを要求されました。

vbDDESourceClosed	6	ソース アプリケーションが閉じた後で、ディスティネーション アプリケーションが処理を続行しようとしました。

vbTooManyLinks	7	すべてのソース リンクが使用されています。

vbDataTransferFailed	8	ディスティネーション アプリケーションがデータを更新できません。

LinkMode プロパティ (フォームとコントロール)

定数	値	内容

vbLinkNone	0	なし

vbLinkSource	1	ソース(フォームのみ)

vbLinkAutomatic	1	自動 (コントロールのみ)

vbLinkManual	2	手動 (コントロールのみ)

vbLinkNotify	3	通知 (コントロールのみ)

LinkMode プロパティ (Visual Basic Version 1.0 を使用する場合のみ、互換性のために新しい定数を使用します。)

定数	値	内容

vbHot	1	ホット (コントロールのみ)

vbServer	1	サーバー (フォームのみ)

vbCold	2	コールド (コントロールのみ)


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


Clipboard オブジェクトの定数

関連項目

定数	値	内容

vbCFLink	0xBF00	DDE 通信の情報

vbCFRTF	0xBF01	リッチ テキスト (.RTF ファイル)

vbCFText	1	テキスト (.TXT ファイル)

vbCFBitmap	2	ビットマップ (.BMP ファイル)

vbCFMetafile	3	メタファイル (.WMF ファイル)

vbCFDIB	8	デバイス独立ビットマップ

vbCFPalette	9	カラー パレット


関連項目

配置揃え定数

Border プロパティの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


ドラッグ アンド ドロップ定数

関連項目

DragOver イベント

定数	値	内容

vbEnter	0	ソース コントロールがターゲットの範囲内に入りました。

vbLeave	1	ソース コントロールがターゲットの範囲外に出ました。

vbOver	2	ソース コントロールがターゲット上を移動しました。

Drag メソッド (コントロール)

定数	値	内容

vbCancel	0	ドラッグ操作を取り消します。

vbBeginDrag	1	コントロールのドラッグを開始します。

vbEndDrag	2	コントロールのドラッグを終了して、コントロールをドロップします。

DragMode プロパティ

定数	値	内容

vbManual	0	手動

vbAutomatic	1	自動


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


フォームの定数

関連項目

表示パラメータ

定数	値	内容

vbModal	1	モーダル フォーム

vbModeless	0	モードレス フォーム

MDI フォームの配置方法

定数	値	内容

vbCascade	0	最小化していない MDI 子フォームをすべて重ねて表示します。

vbTileHorizontal	1	最小化していない MDI 子フォームをすべて水平に並べて表示します。

vbTileVertical	2	最小化していない MDI 子フォームをすべて垂直に並べて表示します。

vbArrangeIcons	3	最小化した MDI 子フォームを配置します。

WindowState プロパティ

定数	値	内容

vbNormal	0	通常表示

vbMinimized	1	最小化

vbMaximized	2	最大化


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


キー コード定数

関連項目

キー コード

定数	値	内容

vbKeyLButton	0x1	マウスの左ボタン

vbKeyRButton	0x2	マウスの右ボタン

vbKeyCancel	0x3	Cancel キー

vbKeyMButton	0x4	マウスの中央ボタン

vbKeyBack	0x8	BackSpace キー

vbKeyTab	0x9	Tab キー

vbKeyClear	0xC	Clear キー

vbKeyReturn	0xD	Enter キー

vbKeyShift	0x10	Shift キー

vbKeyControl	0x11	Ctrl キー

vbKeyMenu	0x12	Menu キー

vbKeyPause	0x13	Pause キー

vbKeyCapital	0x14	CapsLock キー

vbKeyEscape	0x1B	Esc キー

vbKeySpace	0x20	Space キー

vbKeyPageUp	0x21	PageUp キー

vbKeyPageDown	0x22	PageDown キー

vbKeyEnd	0x23	End キー

vbKeyHome	0x24	Home キー

vbKeyLeft	0x25	← キー

vbKeyUp	0x26	↑ キー

vbKeyRight	0x27	→ キー

vbKeyDown	0x28	↓ キー

vbKeySelect	0x29	Select キー

vbKeyPrint	0x2A	PrintScreen キー

vbKeyExecute	0x2B	Execute キー

vbKeySnapshot	0x2C	Snapshot キー

vbKeyInsert	0x2D	Ins キー

vbKeyDelete	0x2E	Del キー

vbKeyHelp	0x2F	Help キー

vbKeyNumlock	0x90	NumLock キー

KeyA ～ KeyZ は ASCII コードの "A" ～ "Z" と同じです。

定数	値	内容

vbKeyA	65	A キー

vbKeyB	66	B キー

vbKeyC	67	C キー

vbKeyD	68	D キー

vbKeyE	69	E キー

vbKeyF	70	F キー

vbKeyG	71	G キー

vbKeyH	72	H キー

vbKeyI	73	I キー

vbKeyJ	74	J キー

vbKeyK	75	K キー

vbKeyL	76	L キー

vbKeyM	77	M キー

vbKeyN	78	N キー

vbKeyO	79	O キー

vbKeyP	80	P キー

vbKeyQ	81	Q キー

vbKeyR	82	R キー

vbKeyS	83	S キー

vbKeyT	84	T キー

vbKeyU	85	U キー

vbKeyV	86	V キー

vbKeyW	87	W キー

vbKeyX	88	X キー

vbKeyY	89	Y キー

vbKeyZ	90	Z キー

Key0 ～ Key9 は ASCII コードの "0" ～ "9" と同じです。

定数	値	内容

vbKey0	48	0 キー

vbKey1	49	1 キー

vbKey2	50	2 キー

vbKey3	51	3 キー

vbKey4	52	4 キー

vbKey5	53	5 キー

vbKey6	54	6 キー

vbKey7	55	7 キー

vbKey8	56	8 キー

vbKey9	57	9 キー

テンキーのキー

定数	値	内容

vbKeyNumpad0	0x60	0 キー

vbKeyNumpad1	0x61	1 キー

vbKeyNumpad2	0x62	2 キー

vbKeyNumpad3	0x63	3 キー

vbKeyNumpad4	0x64	4 キー

vbKeyNumpad5	0x65	5 キー

vbKeyNumpad6	0x66	6 キー

vbKeyNumpad7	0x67	7 キー

vbKeyNumpad8	0x68	8 キー

vbKeyNumpad9	0x69	9 キー

vbKeyMultiply	0x6A	乗算記号 (*) キー

vbKeyAdd	0x6B	プラス記号 (+) キー

vbKeySeparator	0x6C	Enter キー

vbKeySubtract	0x6D	マイナス記号 (-) キー

vbKeyDecimal	0x6E	小数点 (.) キー

vbKeyDivide	0x6F	除算記号 (/) キー

ファンクション キー

定数	値	内容

vbKeyF1	0x70	F1 キー

vbKeyF2	0x71	F2 キー

vbKeyF3	0x72	F3 キー

vbKeyF4	0x73	F4 キー

vbKeyF5	0x74	F5 キー

vbKeyF6	0x75	F6 キー

vbKeyF7	0x76	F7 キー

vbKeyF8	0x77	F8 キー

vbKeyF9	0x78	F9 キー

vbKeyF10	0x79	F10 キー

vbKeyF11	0x7A	F11 キー

vbKeyF12	0x7B	F12 キー

vbKeyF13	0x7C	F13 キー

vbKeyF14	0x7D	F14 キー

vbKeyF15	0x7E	F15 キー

vbKeyF16	0x7F	F16 キー


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


カラー定数

関連項目

カラー

定数	値	内容

vbBlack	0x0	黒

vbRed	0xFF	赤

vbGreen	0xFF00	緑

vbYellow	0xFFFF	黄

vbBlue	0xFF0000	青

vbMagenta	0xFF00FF	マゼンタ

vbCyan	0xFFFF00	シアン

vbWhite	0xFFFFFF	白

システム カラー

定数	値	内容

vbScrollBars	0x80000000	スクロール バーの色

vbDesktop	0x80000001	デスクトップの色

vbActiveTitleBar	0x80000002	アクティブ タイトル バーの色

vbInactiveTitleBar	0x80000003	非アクティブ タイトル バーの色

vbMenuBar	0x80000004	メニューの背景色

vbWindowBackground	0x80000005	ウィンドウの背景色

vbWindowFrame	0x80000006	ウィンドウ枠の色

vbMenuText	0x80000007	メニューの文字の色

vbWindowText	0x80000008	ウィンドウ内の文字の色

vbTitleBarText	0x80000009	キャプション、サイズ ボックス、矢印ボタン内の色

vbActiveBorder	0x8000000A	アクティブ ウィンドウの境界の色

vbInactiveBorder	0x8000000B	非アクティブ ウィンドウの境界の色

vbApplicationWorkspace	0x8000000C	MDI アプリケーションの背景色

vbHighlight	0x8000000D	コントロール内の選択した項目の背景色

vbHighlightText	0x8000000E	コントロール内の選択した項目の文字の色

vbButtonFace	0x8000000F	コマンド ボタンの表面の色

vbButtonShadow	0x80000010	コマンド ボタンの端の影の色

vbGrayText	0x80000011	淡色表示 (使用不可) の文字の色

vbButtonText	0x80000012	プッシュ ボタンの文字の色

vbInactiveCaptionText	0x80000013	非アクティブ キャプションの文字の色

vb3DHighlight	0x80000014	3 - D 表示要素の強調表示の色

vb3DDKShadow	0x80000015	3 - D 表示要素の濃い影の色

vb3DLight	0x80000016	定数 vb3DHighlight の次に明るい 3 - D 表示要素の色

vbInfoText	0x80000017	ボタン名表示のテキストの色

vbInfoBackground	0x80000018	ボタン名表示の背景色


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


配置揃え定数

関連項目

Align プロパティ

定数	値	内容

vbAlignNone	0	サイズと配置を、デザイン時かコードの中で設定しています。

vbAlignTop	1	オブジェクトをフォームの上部に配置します。

vbAlignBottom	2	オブジェクトをフォームの下部に配置します。

vbAlignLeft	3	オブジェクトをフォームの左に配置します。

vbAlignRight	4	オブジェクトをフォームの右に配置します。

Alignment プロパティ

定数	値	内容

vbLeftJustify	0	左揃え

vbRightJustify	1	右揃え

vbCenter	2	中央揃え


関連項目

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


Border プロパティの定数

関連項目

BorderStyle プロパティ (フォーム)

定数	値	内容

vbBSNone	0	境界線なし

vbFixedSingle	1	固定一重線

vbSizable	2	太線 (フォームのみ)

vbFixedDouble	3	固定二重線 (フォームのみ)

BorderStyle プロパティ (図形と線)

定数	値	内容

vbTransparent	0	透明

vbBSSolid	1	実線

vbBSDash	2	鎖線

vbBSDot	3	点線

vbBSDashDot	4	一点鎖線

vbBSDashDotDot	5	二点鎖線

vbBSInsideSolid	6	塗りつぶし


関連項目

配置揃え定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


マウス ポインタ定数

関連項目

定数	値	内容

vbDefault	0	(既定値) 形状はコントロールによって決定されます。

vbArrow	1	矢印。

vbCrosshair	2	クロス。十文字のポインタです。

vbIbeam	3	I 型。

vbIconPointer	4	アイコン。

vbSizePointer	5	サイズ変更 (上下左右)。

vbSizeNESW	6	サイズ変更 (右上 - 左下)。

vbSizeNS	7	サイズ変更 (上下)。

vbSizeNWSE	8	サイズ変更 (左上 - 右下)。

vbSizeWE	9	サイズ変更 (左右)。

vbUpArrow	10	上矢印。

vbHourglass	11	砂時計。

vbNoDrop	12	禁止。

vbArrowHourglass	13	矢印および砂時計。Visual Basic Version 4.0 の 32 ビット版でのみ有効です。

vbArrowQuestion	14	矢印および疑問符。Visual Basic Version 4.0 の 32 ビット版でのみ有効です。

vbSizeAll	15	サイズ変更 (全方向)。Visual Basic Version 4.0 の 32 ビット版でのみ有効です。

vbCustom	99	MouseIcon プロパティで設定したユーザー定義のアイコン。


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


描画定数

関連項目

DrawMode プロパティ

定数	値	内容

vbBlackness	1	黒いペンで出力します。

vbNotMergePen	2	15 (Marge Pen) を反転した設定になります。

vbMaskNotPen	3	背景色とペンの反転色を組み合わせて出力します。

vbNotCopyPen	4	13 (Copy Pen) を反転した設定になります。

vbMaskPenNot	5	ペンと表示の反転色に共通する色を組み合わせて出力します。

vbInvert	6	表示色を反転して出力します。

vbXorPen	7	ペンと表示色に使われている色でどちらか一方に含まれている色を組み合わせて出力します。

vbNotMaskPen	8	9 (Mask Pen) を反転した設定になります。

vbMaskPen	9	ペンと表示色に共通する色を組み合わせて出力します。

vbNotXorPen	10	7 (Xor Pen) を反転した設定になります。

vbNop	11	色を加工せずそのまま出力します。この設定にすると、画面に描画されません。

vbMergeNotPen	12	表示色とペンの反転色を組み合わせて出力します。

vbCopyPen	13	(既定値) Forecolor プロパティで設定した色で出力します。

vbMergePenNot	14	ペンの色と表示の反転色を組み合わせて出力します。

vbMergePen	15	ペンの色と表示色を組み合わせて出力します。

vbWhiteness	16	白いペンで出力します。

DrawStyle プロパティ

定数	値	内容

vbSolid	0	実線

vbDash	1	鎖線

vbDot	2	点線

vbDashDot	3	一点鎖線

vbDashDotDot	4	二点鎖線

vbInvisible	5	透明または非表示

vbInsideSolid	6	塗りつぶし


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


グラフィックス定数

関連項目

FillStyle プロパティ

定数	値	内容

vbFSSolid	0	塗りつぶし

vbFSTransparent	1	透明

vbHorizontalLine	2	横線

vbVerticalLine	3	縦線

vbUpwardDiagonal	4	上向き斜線

vbDownwardDiagonal	5	下向き斜線

vbCross	6	クロス

vbDiagonalCross	7	網かけ

ScaleMode プロパティ

定数	値	内容

vbUser	0	ユーザー

vbTwips	1	Twip

vbPoints	2	ポイント

vbPixels	3	ピクセル

vbCharacters	4	キャラクタ

vbInches	5	インチ

vbMillimeters	6	ミリメートル

vbCentimeters	7	センチメートル


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


OLE コンテナ (OLE) コントロールの定数

関連項目

OLEType プロパティ

定数	値	内容

vbOLELinked	0	OLE コンテナ コントロールにリンクされたオブジェクトが含まれています。

vbOLEEmbedded	1	OLE コンテナ コントロールに埋め込みオブジェクトが含まれています。

vbOLENone	3	OLE コンテナ コントロールにオブジェクトは含まれていません。

OLETypeAllowed プロパティ

定数	値	内容

vbOLEEither	2	OLE コンテナ コントロールは、リンクされたオブジェクトまたは埋め込みオブジェクトを含むことができます。

UpdateOptions プロパティ

定数	値	内容

vbOLEAutomatic	0	リンクされたデータを変更すると、オブジェクトは更新されます。

vbOLEFrozen	1	リンクされたドキュメントを作成したアプリケーション内から、そのドキュメントを保存すると、オブジェクトが更新されます。

vbOLEManual	2	Action プロパティの値が 6 (更新)に設定されているときのみ、オブジェクトは更新されます。

AutoActivate プロパティ

定数	値	内容

vbOLEActivateManual	0	OLE オブジェクトは自動的にはアクティブ化されません。

vbOLEActivateGetFocus	1	OLE コンテナ コントロールがフォーカスを得ると、オブジェクトがアクティブ化されます。

vbOLEActivateDoubleclick	2	OLE コンテナ コントロールをダブルクリックすると、オブジェクトがアクティブ化されます。

vbOLEActivateAuto	3	そのオブジェクトの既定値のアクティブ化方式に基づいて、オブジェクトがアクティブ化されます。

SizeMode プロパティ

定数	値	内容

vbOLESizeClip	0	OLE コンテナ コントロールの境界線が、オブジェクト イメージをクリップします。

vbOLESizeStretch	1	オブジェクト イメージを OLE コンテナ コントロールと同じサイズにします。

vbOLESizeAutoSize	2	オブジェクト全体を表示できるように、OLE コンテナ コントロールのサイズを自動変更します。

vbOLESizeZoom	3	オブジェクト イメージを均等に伸縮します。

DisplayType プロパティ

定数	値	内容

vbOLEDisplayContent	0	オブジェクトのデータを OLE コンテナ コントロール内に表示します。

vbOLEDisplayIcon	1	オブジェクトのアイコンを OLE コンテナ コントロール内に表示します。

イベント更新定数

定数	値	内容

vbOLEChanged	0	オブジェクトのデータが変更されました。

vbOLESaved	1	オブジェクトを作成したアプリケーションが、そのオブジェクトのデータを保存しました。

vbOLEClosed	2	リンクしたオブジェクトのデータが入っているアプリケーション ファイルが閉じられました。

vbOLERenamed	3	リンクしたオブジェクトのデータが入っているアプリケーション ファイルの名前が変更されました。

特殊動詞の値

定数	値	内容

vbOLEPrimary	0	そのオブジェクトの既定値のアクション。

vbOLEShow	-1	編集のためにオブジェクトをアクティブ化します。

vbOLEOpen	-2	別のアプリケーション ウィンドウでオブジェクトを開きます。

vbOLEHide	-3	埋め込みオブジェクトのために、その埋め込みオブジェクトを作成したアプリケーションを隠します。

vbOLEInPlaceUIActivate	-4	オブジェクトに関連付けられているすべてのユーザー インターフェイスを表示し、使用できるようにします。

vbOLEInPlaceActivate	-5	オブジェクト内をクリックして、オブジェクトで作業できます。

vbOLEDiscardUndoState	-6	オブジェクト アプリケーションから元に戻すことができる、すべてのレコードの変更を無効にします。

動詞フラグ ビット マスク

定数	値	内容

vbOLEFlagEnabled	0x0	使用可能なメニュー項目。

vbOLEFlagGrayed	0x1	淡色表示したメニュー項目。

vbOLEFlagDisabled	0x2	使用不可能なメニュー項目。

vbOLEFlagChecked	0x8	チェックしたメニュー項目。

vbOLEFlagSeparator	0x800	メニュー項目リストの区分線。

vbOLEMiscFlagMemStorage	0x1	オブジェクトをロード中に、そのオブジェクトを保管するメモリを、コントロールに使用させます。

vbOLEMiscFlagDisableInPlace	0x2	OLE コンテナ コントロールに別のウィンドウのオブジェクトをアクティブ化します。


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


コモン ダイアログ (CommonDialog) コントロールの定数

関連項目

[開く] ダイアログ ボックスのフラグと [保存] ダイアログ ボックスのフラグ

定数	値	内容

cdlOFNReadOnly	0x1	[ファイルを開く] ダイアログ ボックスと [ファイル名を付けて保存] ダイアログ ボックスの [読み取り専用] チェック ボックスをチェックします。

cdlOFNOverwritePrompt	0x2	[ファイル名を付けて保存] ダイアログ ボックスで選択したファイルが存在したら、メッセージ ボックスを表示します。

cdlOFNHideReadOnly	0x4	[読み取り専用] チェック ボックスを非表示にします。

cdlOFNNoChangeDir	0x8	カレント ディレクトリを、ダイアログ ボックスを起動したディレクトリに設定します。

cdlOFNHelpButton	0x10	[ヘルプ] ボタンを表示します。

cdlOFNNoValidate	0x100	返すファイル名に無効な文字を許します。

cdlOFNAllowMultiselect	0x200	[ファイル名] ボックスに複数の選択項目が表示されるようにします。

cdlOFNExtensionDifferent	0x400	取得したファイル名の拡張子が、DefaultExt プロパティで設定した拡張子と異なります。

cdlOFNPathMustExist	0x800	ユーザーは有効なパス名だけを入力できます。

cdlOFNFileMustExist	0x1000	ユーザーは既存のファイル名だけを入力できます。

cdlOFNCreatePrompt	0x2000	存在しないファイルを新しく作成するかどうかをユーザーにたずねるよう、ダイアログ ボックスを設定します。

cdlOFNShareAware	0x4000	共有違反エラーを無視します。

cdlOFNNoReadOnlyReturn	0x8000	返すファイルは読み取り専用属性を持っていません。そのファイルは書き込み保護されたディレクトリには保存できません。

cdlOFNExplorer	0x00080000	エクスプローラに似たダイアログ ボックスを使用します (Windows 95 のみ)。

cdlOFNNoDereferenceLinks	0x00100000	ショートカット (シェルとのリンク) を実行しません (Windows 95 のみ)。

cdlOFNLongNames	0x00200000	長いファイル名を使用します (Windows 95 のみ)。

[色の設定] ダイアログ ボックスのフラグ

定数	値	内容

cdlCCRGBInit	0x1	ダイアログ ボックスの色の初期値を設定します。

cdlCCFullOpen	0x2	ユーザー定義色を作成する部分を含む、ダイアログ ボックス全体を表示します。

cdlCCPreventFullOpen	0x4	ユーザー定義色の作成ができないようにします。

cdlCCHelpButton	0x8	[ヘルプ] ボタンを表示します。

[フォントの指定] ダイアログ ボックスのフラグ

定数	値	内容

cdlCFScreenFonts	0x1	システムがサポートしている画面フォントだけの一覧を表示します。

cdlCFPrinterFonts	0x2	プリンタがサポートしているフォントだけの一覧を表示します。

cdlCFBoth	0x3	使用できる画面フォントとプリンタ フォントの一覧を表示します。

cdlCFHelpButton	0x4	[ヘルプ] ボタンを表示します。

cdlCFEffects	0x100	取り消し線、下線、色を設定可能にします。

cdlCFApply	0x200	[OK] ボタンを使用可能にします。

cdlCFANSIOnly	0x400	Windows 文字セットを使うフォントだけを選択できます。

cdlCFNoVectorFonts	0x800	ベクタ フォントを選択できません。

cdlCFNoSimulations	0x1000	グラフィック デバイス インターフェイス (GDI) フォントをシミュレートできません。

cdlCFLimitSize	0x2000	Min プロパティと Max プロパティで指定した範囲内のフォント サイズだけを選択できます。

cdlCFFixedPitchOnly	0x4000	固定ピッチ フォントだけを選択できます。

cdlCFWYSIWYG	0x8000	画面とプリンタの両方で使用できるフォントだけを選択できます。

cdlCFForceFontExist	0x10000	存在しないフォントやスタイルを選択すると、エラー ダイアログ ボックスが表示されます。

cdlCFScalableOnly	0x20000	スケーラブル フォントだけを選択できます。

cdlCFTTOnly	0x40000	True Type フォントだけを選択できます。

cdlCFNoFaceSel	0x80000	フォント名が選択されていません。

cdlCFNoStyleSel	0x100000	フォント スタイルが選択されていません。

cdlCFNoSizeSel	0x200000	フォント サイズが選択されていません。

[使用するプリンタ] ダイアログ ボックスのフラグ

定数	値	内容

cdlPDAllPages	0x0	[全ページ] オプション ボタンの状態を取得または設定します。

cdlPDCollate	0x10	[部単位で印刷] チェック ボックスの状態を取得または設定します。

cdlPDDisablePrintToFile	0x80000	[ファイルへ出力] チェック ボックスを無効にします。

cdlPDHidePrintToFile	0x100000	[ファイルへ出力] チェック ボックスを非表示にします。

cdlPDNoPageNums	0x8	[ページ指定] オプション ボタンを無効にします。

cdlPDNoSelection	0x4	[選択した部分] オプション ボタンを無効にします。

cdlPDNoWarning	0x80	通常使用するプリンタがない場合に、警告メッセージを表示しません。

cdlPDPageNums	0x2	[ページ指定] オプション ボタンの状態を取得または設定します。

cdlPDPrintSetup	0x40	[印刷] ダイアログ ボックスではなく、[プリンタの設定] ダイアログ ボックスを表示します。

cdlPDPrintToFile	0x20	[ファイルへ出力] チェック ボックスの状態を取得または設定します。

cdlPDReturnDC	0x100	hDC プロパティが取得するプリンタ選択値のデバイス コンテキストを取得します。

cdlPDReturnDefault	0x400	通常使用するプリンタ名を取得します。

cdlPDReturnIC	0x200	hDC プロパティが取得するプリンタ選択値の情報コンテキストを取得します。

cdlPDSelection	0x1	[選択した部分] オプション ボタンの状態を取得または設定します。

cdlPDHelpButton	0x800	[ヘルプ] ボタンを表示します。

cdlPDUseDevModeCopies	0x40000	複数部数印刷に対するサポートを設定します。通常使用しているプリンタが複数部数印刷をサポートしているかどうかに依存します。


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


ヘルプ定数

関連項目

定数	値	内容

cdlHelpContext	0x1	特定のトピックに対するヘルプを表示します。

cdlHelpQuit	0x2	指定したヘルプ ファイルは使用されていないことをヘルプ アプリケーションに通知します。

cdlHelpIndex	0x3	指定したヘルプ ファイルのインデックスを表示します。

cdlHelpContents	0x3	現在のヘルプ ファイルの目次を表示します。

cdlHelpHelpOnHelp	0x4	ヘルプ アプリケーション自体を使ってヘルプを表示します。

cdlHelpSetIndex	0x5	マルチ インデックス ヘルプについて現在のインデックスを設定します。

cdlHelpSetContents	0x5	特定のトピックを目次に指定します。

cdlHelpContextPopup	0x8	コンテキスト番号で識別したトピックを表示します。

cdlHelpForceFile	0x9	1 種類のフォントのテキストを表示するヘルプ ファイルを作成します。

cdlHelpKey	0x101	特定のキーワードに対するヘルプを表示します。

cdlHelpCommandHelp	0x102	特定のコマンドに対するヘルプを表示します。

cdlHelpPartialKey	0x105	Microsoft Windows のヘルプの検索機能を呼び出します。


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


コモン ダイアログ エラー定数

関連項目

定数	値	内容

cdlAlloc	&H7FF0&	FileName プロパティまたは Filter プロパティにメモリを割り当てられません。

cdlCancel	&H7FF3&	[キャンセル] ボタンが選択されました。

cdlDialogFailure	&H8000&	関数がダイアログ ボックスをロードできません。

cdlFindResFailure	&H7FF9&	関数が指定したリソースをロードできません。

cdlHelp	&H7FEF&	Microsoft Windows のヘルプを呼び出せません。

cdlInitialization	&H7FFD&	関数を初期化できません。

cdlLoadResFailure	&H7FF8&	関数が指定したリソースをロードできません。

cdlLockResFailure	&H7FF7&	関数が指定したリソースをロックできません。

cdlMemAllocFailure	&H7FF6&	関数が、内部のデータ構造にメモリを割り当てられません。

cdlMemLockFailure	&H7FF5&	関数が、ハンドルに関連付けられたメモリをロックできません。

cdlNoFonts	&H5FFE&	フォントが存在しません。

cdlBufferTooSmall	&H4FFC&	メンバ lpstrFile が指すバッファが小さすぎます。

cdlInvalidFileName	&H4FFD&	ファイル名が無効です。

cdlSubclassFailure	&H4FFE&	メモリ不足のために、リスト ボックスをサブクラス化できません。

cdlCreateICFailure	&H6FF5&	PrintDlg 関数が情報コンテキストを作成できません。

cdlDndmMismatch	&H6FF6&	DevMode データ構造と DevNames データ構造のデータが異なるプリンタを指しています。

cdlGetDevModeFail	&H6FFA&	プリンタ ドライバが DevMode データ構造を初期化できません。

cdlInitFailure	&H6FF9&	PrintDlg 関数を初期化できません。

cdlLoadDrvFailure	&H6FFB&	PrintDlg 関数が、指定したプリンタ ドライバをロードできません。

cdlNoDefaultPrn	&H6FF7&	通常使うプリンタが設定されていません。

cdlNoDevices	&H6FF8&	プリンタ ドライバが見つかりません。

cdlParseFailure	&H6FFD&	CommonDialog 関数が WIN.INI の [devices] セクションの文字列を解析できません。

cdlPrinterCodes	&H6FFF&	PDReturnDefault フラグが設定されていますが、hDevMode フィールドまたは hDevNames フィールドが 0 ではありません。

cdlPrinterNotFound	&H6FF4&	WIN.INI ファイル内の [devices] セクションに、必要なプリンタについてのエントリがありません。

cdlRetDefFailure	&H6FFC&	PDReturnDefault フラグが設定されていますが、hDevMode フィールドまたは hDevNames フィールドが 0 ではありません。

cdlSetupFailure	&H6FFE&	必要なリソースを読み込めません。


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


メニュー (Menu) コントロールの定数

関連項目

PopupMenu メソッドの配置揃え

定数	値	内容

vbPopupMenuLeftAlign	0	ポップアップ メニューを左揃えにします。

vbPopupMenuCenterAlign	4	ポップアップ メニューを中央揃えにします。

vbPopupMenuRightAlign	8	ポップアップ メニューを右揃えにします。

PopupMenu のマウス ボタンの認識

定数	値	内容

vbPopupMenuLeftButton	0	ポップアップ メニューはマウスの左ボタンだけを認識します。

vbPopupMenuRightButton	2	ポップアップ メニューはマウスの左ボタンと右ボタンを認識します。


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


メニューのショートカット定数

関連項目

定数	値	内容

vbMenuAccelCtrlA	1	ユーザー定義のショートカット キー。

vbMenuAccelCtrlB	2	ユーザー定義のショートカット キー。

vbMenuAccelCtrlC	3	ユーザー定義のショートカット キー。

vbMenuAccelCtrlD	4	ユーザー定義のショートカット キー。

vbMenuAccelCtrlE	5	ユーザー定義のショートカット キー。

vbMenuAccelCtrlF	6	ユーザー定義のショートカット キー。

vbMenuAccelCtrlG	7	ユーザー定義のショートカット キー。

vbMenuAccelCtrlH	8	ユーザー定義のショートカット キー。

vbMenuAccelCtrlI	9	ユーザー定義のショートカット キー。

vbMenuAccelCtrlJ	10	ユーザー定義のショートカット キー。

vbMenuAccelCtrlK	11	ユーザー定義のショートカット キー。

vbMenuAccelCtrlL	12	ユーザー定義のショートカット キー。

vbMenuAccelCtrlM	13	ユーザー定義のショートカット キー。

vbMenuAccelCtrlN	14	ユーザー定義のショートカット キー。

vbMenuAccelCtrlO	15	ユーザー定義のショートカット キー。

vbMenuAccelCtrlP	16	ユーザー定義のショートカット キー。

vbMenuAccelCtrlQ	17	ユーザー定義のショートカット キー。

vbMenuAccelCtrlR	18	ユーザー定義のショートカット キー。

vbMenuAccelCtrlS	19	ユーザー定義のショートカット キー。

vbMenuAccelCtrlT	20	ユーザー定義のショートカット キー。

vbMenuAccelCtrlU	21	ユーザー定義のショートカット キー。

vbMenuAccelCtrlV	22	ユーザー定義のショートカット キー。

vbMenuAccelCtrlW	23	ユーザー定義のショートカット キー。

vbMenuAccelCtrlX	24	ユーザー定義のショートカット キー。

vbMenuAccelCtrlY	25	ユーザー定義のショートカット キー。

vbMenuAccelCtrlZ	26	ユーザー定義のショートカット キー。

vbMenuAccelF1	27	ユーザー定義のショートカット キー。

vbMenuAccelF2	28	ユーザー定義のショートカット キー。

vbMenuAccelF3	29	ユーザー定義のショートカット キー。

vbMenuAccelF4	30	ユーザー定義のショートカット キー。

vbMenuAccelF5	31	ユーザー定義のショートカット キー。

vbMenuAccelF6	32	ユーザー定義のショートカット キー。

vbMenuAccelF7	33	ユーザー定義のショートカット キー。

vbMenuAccelF8	34	ユーザー定義のショートカット キー。

vbMenuAccelF9	35	ユーザー定義のショートカット キー。

vbMenuAccelF11	36	ユーザー定義のショートカット キー。

vbMenuAccelF12	37	ユーザー定義のショートカット キー。

vbMenuAccelCtrlF1	38	ユーザー定義のショートカット キー。

vbMenuAccelCtrlF2	39	ユーザー定義のショートカット キー。

vbMenuAccelCtrlF3	40	ユーザー定義のショートカット キー。

vbMenuAccelCtrlF4	41	ユーザー定義のショートカット キー。

vbMenuAccelCtrlF5	42	ユーザー定義のショートカット キー。

vbMenuAccelCtrlF6	43	ユーザー定義のショートカット キー。

vbMenuAccelCtrlF7	44	ユーザー定義のショートカット キー。

vbMenuAccelCtrlF8	45	ユーザー定義のショートカット キー。

vbMenuAccelCtrlF9	46	ユーザー定義のショートカット キー。

vbMenuAccelCtrlF11	47	ユーザー定義のショートカット キー。

vbMenuAccelCtrlF12	48	ユーザー定義のショートカット キー。

vbMenuAccelShiftF1	49	ユーザー定義のショートカット キー。

vbMenuAccelShiftF2	50	ユーザー定義のショートカット キー。

vbMenuAccelShiftF3	51	ユーザー定義のショートカット キー。

vbMenuAccelShiftF4	52	ユーザー定義のショートカット キー。

vbMenuAccelShiftF5	53	ユーザー定義のショートカット キー。

vbMenuAccelShiftF6	54	ユーザー定義のショートカット キー。

vbMenuAccelShiftF7	55	ユーザー定義のショートカット キー。

vbMenuAccelShiftF8	56	ユーザー定義のショートカット キー。

vbMenuAccelShiftF9	57	ユーザー定義のショートカット キー。

vbMenuAccelShiftF11	58	ユーザー定義のショートカット キー。

vbMenuAccelShiftF12	59	ユーザー定義のショートカット キー。

vbMenuAccelShiftCtrlF1	60	ユーザー定義のショートカット キー。

vbMenuAccelShiftCtrlF2	61	ユーザー定義のショートカット キー。

vbMenuAccelShiftCtrlF3	62	ユーザー定義のショートカット キー。

vbMenuAccelShiftCtrlF4	63	ユーザー定義のショートカット キー。

vbMenuAccelShiftCtrlF5	64	ユーザー定義のショートカット キー。

vbMenuAccelShiftCtrlF6	65	ユーザー定義のショートカット キー。

vbMenuAccelShiftCtrlF7	66	ユーザー定義のショートカット キー。

vbMenuAccelShiftCtrlF8	67	ユーザー定義のショートカット キー。

vbMenuAccelShiftCtrlF9	68	ユーザー定義のショートカット キー。

vbMenuAccelShiftCtrlF11	69	ユーザー定義のショートカット キー。

vbMenuAccelShiftCtrlF12	70	ユーザー定義のショートカット キー。

vbMenuAccelCtrlIns	71	ユーザー定義のショートカット キー。

vbMenuAccelShiftIns	72	ユーザー定義のショートカット キー。

vbMenuAccelDel	73	ユーザー定義のショートカット キー。

vbMenuAccelShiftDel	74	ユーザー定義のショートカット キー。

vbMenuAccelAltBksp	75	ユーザー定義のショートカット キー。


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


Printer オブジェクトの定数

関連項目

プリンタのカラー モード

定数	値	内容

vbPRCMMonochrome	1	モノクロ出力

vbPRCMColor	2	カラー出力

両面印刷

定数	値	内容

vbPRDPSimplex	1	片面印刷

vbPRDPHorizontal	2	両面水平印刷

vbPRDPVertical	3	両面垂直印刷

用紙の向き

定数	値	内容

vbPRORPortrait	1	用紙の短い辺を上にして印刷します。

vbPRORLandscape	2	用紙の長い辺を上にして印刷します。

印字の品質

定数	値	内容

vbPRPQDraft	-1	簡易印刷

vbPRPQLow	-2	低品位

vbPRPQMedium	-3	中品位

vbPRPQHigh	-4	高品位

PaperBin プロパティ

定数	値	内容

vbPRBNUpper	1	上部トレイの用紙を使います。

vbPRBNLower	2	下部トレイの用紙を使います。

vbPRBNMiddle	3	中央トレイの用紙を使います。

vbPRBNManual	4	用紙を 1 枚ずつ手差しにします。

vbPRBNEnvelope	5	封筒フィーダの封筒を使います。

vbPRBNEnvManual	6	封筒フィーダの封筒を使いますが、手差しにも対応します。

vbPRBNAuto	7	(既定値) 通常使うトレイの用紙を使います。

vbPRBNTractor	8	トラクタ フィーダの用紙を使います。

vbPRBNSmallFmt	9	小型フィーダの用紙を使います。

vbPRBNLargeFmt	10	大型トレイの用紙を使います。

vbPRBNLargeCapacity	11	大容量フィーダの用紙を使います。

vbPRBNCassette	14	付属のカセット カートリッジの用紙を使います。

PaperSize プロパティ

定数	値	内容

vbPRPSLetter	1	レター、8 1/2 x 11 インチ

vbPRPSLetterSmall	2	+A611Letter Small、8 1/2 x 11 インチ

vbPRPSTabloid	3	タブロイド、11 x 17 インチ

vbPRPSLedger	4	レジャー、17 x 11 インチ

vbPRPSLegal	5	リーガル、8 1/2 x 14 インチ

vbPRPSStatement	6	ステートメント、5 1/2 x 8 1/2 インチ

vbPRPSExecutive	7	エグゼクティブ、7 1/2 x 10 1/2 インチ

vbPRPSA3	8	A3、297 x 420 mm

vbPRPSA4	9	A4、210 x 297 mm

vbPRPSA4Small	10	A4 Small、210 x 297 mm

vbPRPSA5	11	A5、148 x 210 mm

vbPRPSB4	12	B4、250 x 354 mm

vbPRPSB5	13	B5、182 x 257 mm

vbPRPSFolio	14	二折版、8 1/2 x 13 インチ

vbPRPSQuarto	15	四折版、215 x 275 mm

vbPRPS10x14	16	10 x 14 インチ

vbPRPS11x17	17	11 x 17 インチ

vbPRPSNote	18	ノート、8 1/2 x 11 インチ

vbPRPSEnv9	19	#9 封筒、3 7/8 x 8 7/8 インチ

vbPRPSEnv10	20	#10 封筒、4 1/8 x 9 1/2 インチ

vbPRPSEnv11	21	#11 封筒、4 1/2 x 10 3/8 インチ

vbPRPSEnv12	22	#12 封筒、4 1/2 x 11 インチ

vbPRPSEnv14	23	#14 封筒、5 x 11 1/2 インチ

vbPRPSCSheet	24	C サイズ用紙

vbPRPSDSheet	25	D サイズ用紙

vbPRPSESheet	26	E サイズ用紙

vbPRPSEnvDL	27	DL 封筒、110 x 220 mm

vbPRPSEnvC3	29	C3 封筒、324 x 458 mm

vbPRPSEnvC4	30	C4 封筒、229 x 324 mm

vbPRPSEnvC5	28	C5 封筒、162 x 229 mm

vbPRPSEnvC6	31	C6 封筒、114 x 162 mm

vbPRPSEnvC65	32	C65 封筒、114 x 229 mm

vbPRPSEnvB4	33	B4 封筒、250 x 353 mm

vbPRPSEnvB5	34	B5 封筒、176 x 250 mm

vbPRPSEnvB6	35	B6 封筒、176 x 125 mm

vbPRPSEnvItaly	36	封筒、110 x 230 mm

vbPRPSEnvMonarch	37	Monarch 封筒、3 7/8 x 7 1/2 インチ

vbPRPSEnvPersonal	38	封筒、3 5/8 x 6 1/2 インチ

vbPRPSFanfoldUS	39	アメリカ標準カーボン紙、14 7/8 x 11 インチ

vbPRPSFanfoldStdGerman	40	ドイツ標準カーボン紙、8 1/2 x 12 インチ

vbPRPSFanfoldLglGerman	41	ドイツ リーガル カーボン紙、8 1/2 x 13 インチ

vbPRPSUser	256	ユーザー定義サイズ


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


ラスタ オペレーション定数

関連項目

定数	値	内容

vbDstInvert	0x00550009	ディスティネーション ビットマップを反転します。

vbMergeCopy	0x00C000CA	パターンとソース ビットマップを結合します。

vbMergePaint	0x00BB0226	反転したソース ビットマップとディスティネーション ビットマップを Or 演算子を使って結合します。

vbNotSrcCopy	0x00330008	反転したソース ビットマップをディスティネーションにコピーします。

vbNotSrcErase	0x001100A6	結合したディスティネーション ビットマップとソース ビットマップを Or 演算子を使って反転します。

vbPatCopy	0x00F00021L	ディスティネーション ビットマップにパターンをコピーします。

vbPatInvert	0x005A0049L	ディスティネーション ビットマップとパターンを Xor 演算子を使って結合します。

vbPatPaint	0x00FB0A09L	反転したソース ビットマップとパターンを Or 演算子を使って結合します。さらに、結合結果とディスティネーション ビットマップを Or 演算子を使って結合します。

vbSrcAnd	0x008800C6	ディスティネーション ビットマップとソース ビットマップのピクセルを And 演算子を使って結合します。

vbSrcCopy	0x00CC0020	ソース ビットマップをディスティネーション ビットマップにコピーします。

vbSrcErase	0x00440328	ディスティネーション ビットマップを反転してから、ソース ビットマップと And 演算子を使って結合します。

vbSrcInvert	0x00660046	ディスティネーション ビットマップとソース ビットマップのピクセルを Xor 演算子を使って結合します。

vbSrcPaint	0x00EE0086	ディスティネーション ビットマップとソース ビットマップのピクセルを Or 演算子を使って結合します。


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数


VB カラー変換および OLE カラー変換定数

関連項目

定数	値	内容

vbInactiveCaptionText	0x80000013	非アクティブ キャプション内の文字の色

vb3DHighlight	0x80000014	3 - D 表示要素の強調表示の色

vb3DFace	0x8000000F	3 - D 表示要素の濃い影の色

vbMsgBox	0x80000017	メッセージ ボックスとシステム ダイアログ ボックスの背景色

vbMsgBoxText	0x80000018	メッセージ ボックスとシステム ダイアログ ボックスに表示される文字の色

vb3DShadow	0x80000010	自動的にウィンドウに表示される影の色

vb3DDKShadow	0x80000015	最も濃い影

vb3DLight	0x80000016	定数 vb3DHighlight の次に明るい 3 - D 表示要素の色


関連項目

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

データ (Data) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニュー (Menu) コントロールの定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数


Visual Basic 定数

関連項目

Visual Basic から指定できるか、Visual Basic が認識できる定数は、次のとおりです。これらの定数は、コードの中で実際の値の代わりに自由に使用できます。

配置揃え定数

Border プロパティの定数

Clipboard オブジェクトの定数

カラー定数

コモン ダイアログ (CommonDialog) コントロールの定数

コモン ダイアログ エラー定数

コントロールの定数

データ (Data) コントロールの定数

DB グリッド (DBGrid) コントロールの定数

DB リスト (DBList)、DB コンボ (DBCombo) コントロールの定数

DDE の定数

ドラッグ アンド ドロップ定数

描画定数

フォームの定数

グラフィックス定数

グリッド (Grid) コントロールの定数

ヘルプ定数

キー コード定数

メニューのショートカット定数

メニュー (Menu) コントロールの定数

その他の定数

マウス ポインタ定数

OLE コンテナ (OLE) コントロールの定数

Picture オブジェクトの定数

Printer オブジェクトの定数

ラスタ オペレーション定数

バリアント型 (Variant) のデータ型定数

VB カラー変換および OLE カラー変換定数

メソッドおよびプロパティと共に使用できる組み込み定数を参照するには、オブジェクト ブラウザを使用します。[表示] - [オブジェクト ブラウザ］コマンドを選択し、次に Visual Basic (VB) オブジェクト ライブラリを選択してから Constants オブジェクトを選択します。[メソッド / プロパティ一覧] ボックスの一覧をスクロールすると、すべての定数を参照できます。


関連項目

Visual Basic for Applications の定数

データ アクセス定数


アクセス キー

メニューを開いたり、コマンドを実行したり、コントロールを選択したりするときに、Alt キーと組み合わせて入力するキーを“アクセス キー”と呼びます。たとえば、Alt + F キーを押すと [ファイル] メニューが開きます。この F キーがアクセス キーです。


アクティブ ウィンドウ

現在、作業の対象になっているウィンドウを指します。アクティブ ウィンドウはデスクトップ上の 1 番手前に表示され、タイトル バーまたは境界線が強調表示されて、ほかのウィンドウと区別されます。


アドイン

Microsoft Visual Basic 開発環境にさまざまな機能を追加することを目的として開発されたツールです。[アドイン] - [アドイン マネージャ] コマンドで表示される [アドイン マネージャ] ダイアログ ボックスでアドインを選択して、使うことができます。


アプリケーション

Microsoft Visual Basic で言うアプリケーションとは、プログラム コードと、画面上に表示されるウィンドウやボタンなどのさまざまな要素で構成され、全体として特定の作業を行う 1 つのプログラムです。プログラマは、アプリケーションの作成と実行を Visual Basic 開発環境の中で行います。コンパイルして実行可能ファイル (.EXE) にしておくと、アプリケーションのユーザーは、そのアプリケーションを Visual Basic 開発環境の外で実行できます。


代入ステートメント

Text1.Text = "My Name" のように、変数やプロパティに値を代入するステートメントです。オブジェクト参照を代入するには、Set ステートメントを使う必要があります。


バイナリ形式

マシンが認識可能な、コード化されたファイルの形式 (フォーマット) です。通常のテキスト ファイルのデータ形式とは異なります。


ビット

コンピュータで扱われるデータの最小単位です。2 つの状態のどちらかを取ることを示し、通常、1 と 0 で表現されます。


ビットマップ

ピクセルで表された画像で、ビットの集まりとして格納されます。各ビットは 1 つのピクセルに対応しています。色を表示する場合は、複数のビットが各ピクセルに対応します。ビットマップのファイル名には、通常、.BMP という拡張子が付きます。


ビット マスク

ビット フィールドの各ビットの状態を調べたり、各ビットのセットやリセットを行うときに、論理演算子 (And、Eqv、Imp、Not、Or、Xor) と共に使われる値を指します。


＜呼び出し履歴＞ ボタン

ツールバーに配置されているデバッグ ツールです。中断モードでこのボタンをクリックすると、呼び出されてまだ最後まで実行されていないプロシージャがすべてダイアログ ボックス内に表示されます。


キャンセル ボタン

一般に、ダイアログ ボックスなどに対して行った変更を取り消すときに使うボタンを、“キャンセル ボタン”と呼びます。より狭い意味で、Cancel プロパティが真 (True) に設定されているコマンド ボタンを指すこともあります。この場合、Esc キーを押すかボタンをクリックすると、フォームに対して行った変更が取り消されます。


イベントの連鎖反応
イベントの連鎖

イベント プロシージャが直接または間接的に自分自身を呼び出すことによって発生します。イベントの再帰とも呼ばれます。イベントの連鎖反応は、スタック オーバーフローなどの実行時エラーの原因になることがあります。


チェック ボックス

オプションのオン/オフなどを設定するために使うコントロールです。選択すると、チェック ボックス内に X が表示されます。


コレクションの構文

コレクションにいくつかのオブジェクトが含まれている場合 (たとえば、Things コレクションに Thing オブジェクトが含まれる場合)、コレクション自体を参照するときは、次のコードを記述します

object.Things

コレクション内のそれぞれの Thing オブジェクトを参照するときは、次のいずれかのコードを記述します。

object.Things.Item(index)

object.Things(index)

引数 index には、コレクション内の特定のオブジェクトを示す整数を指定します。


コンパイル エラー

コードが正しく記述されていないことが原因で、コンパイル時に発生するエラーです。


複合ドキュメント ファイル

スプレッドシート、テキスト、ビットマップなどの、異なる形式のデータを保存できるファイルです。


コンテナ

子フォームやコントロールを含む、親オブジェクトを指します。


コントロール

属性を示す一連のプロパティを持ち、イベントを認識する、フォーム上に配置されるオブジェクトを指します。コントロールは、ユーザーからの入力を取得したり、出力を表示したりするために使います。コントロールがイベントを認識すると、対応するイベント プロシージャが自動的に呼び出されます。また、ほとんどのコントロールには、メソッドを適用することができます。コントロールには、ユーザーの操作に応答する対話型のものと、コードを記述した場合のみアクセスできる非対話型のものとがあります。


コントロール配列

1 つの名前を持ち、イベント プロシージャを共有する、同じ種類のコントロールをグループ化したものです。配列の要素である各コントロールには、それぞれを区別するために固有のインデックス番号が付けられます。


コントロール メニュー コマンド

ウィンドウの移動やサイズ変更、他のMicrosoft  Windows 対応アプリケーションへの切り替えを行ったり、アプリケーションを閉じたりするために、コントロール メニューに表示されるコマンドです。


クライアント アプリケーション
クライアント アプリケーション (コントローラ アプリケーション)

OLE サーバーによって提供されるオブジェクトを使う、Microsoft Visual Basic などのアプリケーションです。OLE オートメーション コントローラとも呼ばれます。


クロス ポインタ

ツールボックスでコントロールを選択してからフォーム内にマウスを移動したときに表示される、十文字のポインタです。MousePointer プロパティでは、このポインタの設定はクロスと呼ばれます。


カスタム コントロール

ファイル名に拡張子 .VBX や .OCX が付く、ファイルまたは挿入可能なオブジェクトです。[カスタム コントロール] ダイアログ ボックスを使ってプロジェクトに追加すると、ツールボックスが拡張されます。カスタム コントロールには、コモン ダイアログ (CommonDialog) コントロールや DB コンボ (DBCombo) コントロールなどがあります。


デフォルト カラー ボックス
選択色ボックス

現在選択されている、フォームやコントロールのフォアグラウンド カラーとバックグラウンド カラーが表示される、カラー パレット ウィンドウの中のボックスです。


ディスティネーション

ダイナミック データ エクスチェンジ (DDE) のアクティブ リンクにおいて、ソース アプリケーションにデータを要求する側のアプリケーション、フォーム、またはコントロールを指します。


デバイス コンテキスト

Microsoft Windows 対応アプリケーション、デバイス ドライバ、出力デバイス (ディスプレイ、プリンタ、プロッタなど) 間でのリンクを指します。


ダイアログ ボックス

ユーザーに応答を要求したり情報を提供したりする、システムまたはアプリケーションによって表示される特殊なウィンドウです。


ドラッグ アンド ドロップ操作

画面上に表示されているある対象にマウス カーソルを合わせ、マウスのボタンを押し、押したままマウス カーソルを移動 (ドラッグ) してから、マウスのボタンを離す (ドロップする) ことによって、対象を移動させる一連の操作を指します。ドラッグされるオブジェクト (コントロール) を“ソース”、ドロップ対象のオブジェクトを“ターゲット”と呼びます。


編集キー

Ins キー、Del キー、および BackSpace キーを“編集キー”と呼びます。


埋め込みオブジェクト

他のアプリケーションで作成されて、Microsoft Visual Basic アプリケーションに埋め込まれたオブジェクトを指します。埋め込みオブジェクトを作成すると、そのオブジェクトに関連するすべてのデータは、Visual Basic アプリケーションにコピーされて格納されます。


エラー トラップ

エラーが発生したときに、割り込んで Microsoft Visual Basic のエラー処理を行うプロセスです。


イベント

フォームやコントロールによって認識される動作を指します。イベントは、クリックやキー入力などのユーザーの操作によって発生する場合以外にも、コードの処理によって引き起こされる場合、タイマーなどのシステム側が発生させる場合があります。


イベント プロシージャ

ユーザー、プログラムのコード、またはシステムによってイベントが発生したときに、応答として自動的に実行されるプロシージャです。既定値では、イベント プロシージャはプライベート プロシージャです。


実行可能ファイル

Microsoft Visual Basic 開発環境の外で実行できる Microsoft Windows 対応アプリケーションを指します。実行可能ファイルの拡張子は、.EXE です。


フラグ

アプリケーションの状態を管理するために使う変数です。通常、フラグを設定するには、定数または定数の組み合わせを使います。


フォーム

Microsoft Visual Basic で作成したウィンドウまたはダイアログ ボックスを総称して“フォーム”と呼びます。フォームは、コントロールのコンテナとして機能します。また MDI フォームは、コントロール以外に子フォームのコンテナとなることができます。


フォーム モジュール

Microsoft Visual Basic のプロジェクトのファイルで、拡張子 .FRM が付きます。フォームのグラフィカルな記述、フォーム上のコントロールとコントロールのプロパティ設定、フォーム レベルの定数、変数、および外部プロシージャの宣言、イベント プロシージャ、ジェネラル プロシージャなどで構成されます。


ファンクション キー

キーボード上段の F1 から始まるキーを総称して“ファンクション キー”と呼びます。ファンクション キーは通常、頻繁に使われるコマンドなどに対するショートカット キーとして使われます。ファンクション キーをショートカット キーとして指定することもできます。


Function プロシージャ

Microsoft Visual Basic プログラム内で特定のタスクを実行し、値を返すプロシージャです。Function プロシージャは、Function ステートメントで始まり、End Function ステートメントで終わります。


ジェネラル プロシージャ

イベント プロシージャがイベント発生時に自動的に呼び出されるのに対し、コードで明示的に呼び出されたときだけ実行されるプロシージャを、“ジェネラル プロシージャ”と呼びます。


グラフィックス メソッド

Form オブジェクト、PictureBox オブジェクト、または Printer オブジェクトに対して、グラフィックスの描画処理を行うメソッドです。グラフィックス メソッドには、Circle、Cls、Line、PaintPicture、Point、Print、PSet があります。


ハンドル

オペレーティング システムによって定義される、重複しない整数値です。フォームやコントロールなどのオブジェクトを識別したり、アクセスしたりするために、プログラムによって利用されます。


アイコン

目的やコンセプトを記号化して表現したものを指します。Microsoft Windows では、アプリケーションを最小化したときにアイコンが使われます。アイコンはビットマップで表され、最大サイズは 32 × 32 ピクセルです。アイコンのファイル拡張子は .ICO です。


イミディエイト ペイン

デバッグ ウィンドウの上部にあるペインで、コードをデバッグした結果と、ペインに直接コマンドを入力して実行した結果からの情報が表示されます。


埋め込み先編集

OLE サーバーによって提供されたオブジェクトを、アクティブにする処理です。他のアプリケーションで提供されているオブジェクトを現在のアプリケーション内でダブル クリックすると、他のアプリケーションやウィンドウに切り替えることなく、現在のアプリケーション内で作成元のアプリケーション (OLE サーバー) を操作できます。ビジュアル編集とも呼ばれます。


インデックス

配列、コントロール配列、またはコレクションの各要素を識別するために使われる番号です。


挿入可能なオブジェクト

Microsoft Excel のワークシートなど、アプリケーションから提供されるオブジェクトです。カスタム コントロールの一種と見なすこともでき、ツールボックスに追加および削除することもできます。このオブジェクトをツールボックスに追加または削除するには、[カスタム コントロール] ダイアログ ボックスを使います。


インスタンス

同じクラスを共有するオブジェクトの集合のうちの任意の 1 つを指します。たとえば、Form クラスの複数のインスタンスには、同じコードが記述されています。また、Form クラスが作成されたときに配置されたコントロールも、すべてのインスタンスに同様にロードされます。ただし、実行時には、フォームの各インスタンスにあるコントロールのプロパティに、異なる値を設定できます。


内部領域

マルチ ドキュメント インターフェイス (MDI) フォーム内の領域で、MDI 子フォームを表示するために使われます。内部領域には、MDI フォームのタイトル バー、境界線、メニュー バー、および MDI フォーム上で整列されたコントロールは含まれません。クライアント領域とも呼ばれます。


組み込み定数

アプリケーションによって提供される定数です。Microsoft Visual Basic の定数は、オブジェクト ブラウザで表示できます。


リンク オブジェクト

ほかのアプリケーションで作成されてから、Microsoft Visual Basic アプリケーションにリンクされたオブジェクトです。オブジェクトをリンクすると、アプリケーションにプレースホルダが挿入されます。埋め込みオブジェクトと異なり、リンクされたオブジェクトのデータは、実際には作成元のアプリケーションに格納され管理されます。


リスト ボックス

項目を一覧表示して、その中の 1 つを選択するときに使われるコントロールです。


マスター コピー

バージョン管理システムのデータベースに格納された、ファイルの最新のバージョンを示します。作業ディレクトリにあるファイルは、ローカル コピーといいます。


最大化ボタン

ほとんどのウィンドウの右上隅に表示されるボタンで、ユーザーが選択するとそのウィンドウが画面一杯に表示されます。


MDI 子フォーム

マルチ ドキュメント インターフェイス (MDI) アプリケーションで、MDI フォーム内に格納されたフォームです。子フォームを作成するには、MDIChild プロパティに 真 (True) を設定します。


MDI フォーム

マルチ ドキュメント インターフェイス (MDI) アプリケーションのバックグラウンドを構成するウィンドウです。MDI フォームは、アプリケーション内のすべての MDI 子フォームのコンテナとなります。


メモリ オブジェクト

Windows API の GlobalAlloc() を使って割り当てられたメモリ ブロックです。OLE コンテナ (OLE) コントロールの Format プロパティに設定された形式のデータを格納します。


メタファイル

画像をピクセルの集まりではなく、線、円、多角形などのグラフィカル オブジェクトの集まりとして保持しているファイルです。メタファイルには、標準および拡張の 2 種類あります。通常、標準メタファイルには、ファイル拡張子 .WMF が付きます。また、拡張メタファイルには、ファイル拡張子 .EMF が付きます。画像サイズを変更したときの画像のゆがみは、ビットマップの画像に比べて少なくなります。


最小化ボタン

ほとんどのウィンドウの右上隅に表示されるボタンで、ユーザーが選択するとそのウィンドウが最小化されます。


モーダル

ウィンドウ (フォームおよびダイアログ ボックス) には、“モーダル”と“モードレス”の 2 種類があります。モーダル ウィンドウの場合、[OK] ボタンまたは [キャンセル] ボタンによってそのウィンドウを閉じるまで、ユーザーはほかのウィンドウに切り替えることができません。


モードレス

ウィンドウ (フォームやダイアログ ボックス) には、“モードレス”と“モーダル”の 2 種類があります。モードレス ウィンドウの場合、ほかのウィンドウに切り替えるときに、[OK] または [キャンセル] ボタンによって閉じる必要はありません。


オブジェクト

コントロール、フォーム、アプリケーションなど、1 単位として扱われるコードやデータの組み合わせを指します。各オブジェクトは、クラスによって定義されます。


OLE サーバー

オブジェクトをほかのアプリケーションに提供しているアプリケーションです。これらのオブジェクトは、Microsoft Visual Basic アプリケーションで使うことができます。OLE オートメーション サーバーとも呼ばれます。


[オブジェクト] ボックス

  コード ウィンドウの左上に表示され、コードが割り当てられているフォームやコントロールが一覧表示される、ドロップダウン リスト ボックスです。また、プロパティ ウィンドウの最上部の、フォームとそのフォーム上のコントロールが一覧表示されるドロップダウン リスト ボックスも、[オブジェクト] ボックスと呼びます。


オブジェクト変数

オブジェクトを参照する変数です。


OLE (Object Linking and Embedding)

OLE は、Microsoft Windows が提供している機能の 1 つで、ほかのさまざまなソース アプリケーションを使って作成された構成要素を取り込んだ、複合ドキュメントを作成する方法です。


OLE オートメーション

アプリケーションが、ほかのアプリケーション、開発ツール、マクロ言語などに一貫した方法でオブジェクトを提供できるようにする技術です。


OLE オートメーション コントローラ

OLE サーバーによって提供されるオブジェクトを使う、Microsoft Visual Basic などのアプリケーションです。クライアント アプリケーションとも呼ばれます。


OLE カスタム コントロール

OLE カスタム コントロールは Visual Basic の機能を拡張するもので、ツールボックスから利用できます。OLE カスタム コントロールのファイル名には拡張子 .OCX が付きます。OLE カスタム コントロールには、グリッド (Grid) コントロールやコモン ダイアログ (CommonDialog) コントロールなどがあります。


オプション ボタン

関連する複数の選択肢 (オプション) から 1 つを選択するような場合に使われるコントロールです。


親フォーム

コントロールを含むフォームです。


[リンク貼り付け] コマンド

Microsoft Windows 対応アプリケーションからコピーしたクリップボードの内容を、ほかのアプリケーションに挿入するコマンドです。このコマンドは、アプリケーション間にリンクを作成するので、コピーしたデータは自動的に更新されます。


ペン

Line、Point、および Circle ステートメント、または現在の ForeColor プロパティおよび FillColor プロパティの設定によって指定される、色などのグラフィカルな特徴を指します。


継続表示属性を持つグラフィックス

グラフィックス メソッドによる出力が、メモリに格納されます。継続表示属性を持つグラフィックスは、ほかのウィンドウの後ろに隠れているフォームを再表示するときなど、ある種の画面イベントが発生したときに自動的に保存されます。グラフィックスが継続表示属性を持つのは、AutoRedraw プロパティに 真 (True) が設定されている場合です。


ピクセル

ピクチャー エレメント (picture element) の省略形で、“画素”の意味です。画面上に画像を表示するときの最小単位である“点 (ドット)”を“ピクセル (pixel)”と呼びます。ピクセルは、マシンに依存する単位で、ディスプレイのシステムや解像度によって、画面に表示される長さが異なります。


ポイント

文字のサイズを表すための単位で、1 インチ (25.4 mm) の 1/72 です。通常、フォントの高さをポイントで表します。


ポーク

ダイナミック データ エクスチェンジ (DDE) で、ディスティネーション アプリケーションからソース アプリケーションへ向けてデータを送ることです。フォームの LinkMode プロパティにソースを設定して、ディスティネーション アプリケーションがフォーム上のコントロールにデータを送ることができるようにする必要があります。


ポップアップ メニュー

メニュー バーとは別に、フォーム上に表示されるメニューです。通常、マウスの右ボタンをクリックすると、ポップアップ メニューが表示されます。メニューに含まれる項目は、メニューが表示されたときのポインタの位置によって異なります。コンテキスト メニューとも呼ばれます。


[プロシージャ] ボックス

[オブジェクト] ボックスに表示されているフォームおよびコントロールで使用できるイベントを一覧表示する、ドロップダウン リスト ボックスです。[プロシージャ] ボックスは、コード ウィンドウまたはデバッグ ウィンドウの右上に表示されます。


プロシージャ呼び出し

実行するプロシージャを Microsoft Visual Basic に伝え、そのプロシージャを実行させることを指します。


プロシージャ テンプレート

[新規プロシージャ] ダイアログ ボックスに Sub、Function、または Property プロシージャを指定した場合に、コード ウィンドウに自動的に挿入される最初と最後のステートメントです。


プロジェクト

互いに関連付けられたファイルが論理的にグループ化されたものを示します。一般に、ソフトウェアの構成要素を開発する場合に必要なファイルすべてを示します。また、プロジェクト内のファイルを更にグループ化し、子プロジェクトを作成する考え方もあります。プロジェクトは、ユーザーが必要なように定義できます。たとえば、各バージョンまたは各言語にプロジェクトを作成する方法もあります。一般に、プロジェクトはファイル ディレクトリと同じように編成されます。


プロジェクト ファイル

ファイル、オブジェクト、プロジェクト、オプション、環境オプション、EXE オプション、およびプロジェクトに関連した参照を管理するファイルで、ファイル名に拡張子 .VBP が付きます。


プロジェクト ウィンドウ

フォームやクラスや標準モジュールのリスト、リソース ファイル、およびプロジェクト内の参照を表示するウィンドウです。このウィンドウには、拡張子 .OCX および .VBX を持つファイルは表示されません。


プロパティ ボタン

プロパティ ウィンドウでプロパティの右側に表示されるボタンです。このボタンをクリックすると、指定したプロパティに関するすべての設定が表示されます。


プロパティ ウィンドウ

選択されているフォームやコントロールのデザイン時のプロパティを表示したり、変更するために使うウィンドウです。カスタム コントロールには、独自のプロパティ ウィンドウを持つものもあります。


プロパティ リスト

プロパティ ウィンドウに表示される 2 列のリストで、選択されたオブジェクトに対するすべてのプロパティと現在の設定を表示します。


Property プロシージャ

クラス モジュールのプロパティを作成し、操作するプロシージャです。Property プロシージャは、Property Let、Property Get、または Property Set ステートメントで始まり、End Property ステートメントで終わります。


読み取り専用ファイル

読み取り専用属性が設定されているファイルです。このファイルは、適切なテキスト エディタで表示できますが、内容の変更はできません。バージョン管理システムでは、通常、チェックインした場合および [取得] コマンドを使用した場合は、ファイルが読み取り専用に設定されます。


再帰

プロシージャがそのプロシージャ自体を呼び出すことを示します。再帰を多用すると、“スタック領域が不足です。”というエラーの原因になります。


リソース ファイル

ファイル名に拡張子 .RES が付く Microsoft Visual Basic のプロジェクトのファイルで、文字列やビットマップなどのデータを格納できます。このデータを別のファイルに格納すると、コードを再編集することなく、情報を変更できます。1 つのプロジェクトに対して、1 つのリソース ファイルを追加できます。


区分線

メニュー上のコマンドを、論理グループに分ける横線です。


ショートカット キー

そのキーを押すと、あらかじめ対応付けられているコマンドが実行される、ファンクション キーやキーの組み合わせを示します。たとえば、F5 キー、Ctrl + C キーなどがあります。ショートカット キーは、メニュー エディタで設定します。


ソース

ダイナミック データ エクスチェンジ (DDE) をサポートする複数のプログラムが同時に実行されている場合に、情報およびコマンドを送る側のアプリケーション、フォーム、またはコントロールです。


分割バー

コード ウィンドウまたはデバッグ ウィンドウに表示される細い横棒で、ウィンドウをペインと呼ばれる 2 つの部分に分割するときに使われます。デバッグ ウィンドウで、イミディエイト ペインは、分割バーによってウォッチ ペインと分割されます。


スタック

プロシージャの呼び出し中に、ローカル変数や引数を保持するために Microsoft Visual Basic が使用する、一定量のメモリです。


標準コントロール

ツールボックスに含まれているコントロールで、Microsoft Visual Basic の本体 (VB.EXE) に格納されています。たとえば、コマンド ボタン (CommandButton) コントロールやフレーム (Frame) コントロールなどです。ツールボックスに追加または削除できるカスタム コントロールや挿入可能なオブジェクトとは異なり、標準コントロールは常にツールボックスに含まれています。


スタートアップ フォーム

アプリケーションで最初に表示されるフォームで、通常、Microsoft Visual Basic 開発環境で最初に作成したフォームです。[プロジェクトの設定] ダイアログ ボックスの [スタートアップ フォーム] ボックスを使うと、スタートアップ フォームを変更できます。


Static

Microsoft Visual Basic のキーワードで、ローカル変数の値を保持するために使います。


Sub プロシージャ

プログラムの中で特定のタスクを実行し、値を返さないプロシージャです。Sub プロシージャは、Sub ステートメントで始まり、End Sub ステートメントで終わります。


サブメニュー

上位のメニューからメニュー項目 (コマンド) が選択されたときに開くメニューで、サブメニュー自体のコマンド一覧を表示します。


構文

プログラミング言語のさまざまな要素を、Microsoft Visual Basic が認識できるステートメントに組み立てるために必要な、あらかじめ規定されている記述方法を構文といいます。


システム モーダル

ユーザーに何らかの操作を要求するウィンドウやダイアログ ボックスを表します。“システム モーダル”は、単なる“モーダル”とは違って、同じアプリケーション内だけではなく実行中のほかのアプリケーションのフォームやダイアログ ボックスにも、フォーカスを切り替えることができません。


タブ オーダー

Tab キーまたは Shift + Tab キーを使って、フォーム上のコントロールのフォーカスを移動させるときの順序を指します。移動の順序は、TabIndex プロパティを使って設定します。明示的に設定しない場合は、コントロールを作成した順序がタブ オーダーになります。


twip

Microsoft Visual Basic で使われている画面上の長さの基本単位です。1 論理 cm は 567twip、1 論理インチは 1,440twip になります。ここで論理 cm および論理インチとは、画面上に表示されているものを印刷したときに、それぞれ 1cm および 1 インチとなる長さを指しています。つまり、twipはディスプレイに依存しません。この単位を使ってアプリケーションを作成すると、すべてのディスプレイ上で作成時と同じように表示させることができます。


2 の補数

正数と負数を表すために使われる、2 進表記の一種です。負数はすべてのビットを逆転し、その結果に 1 を加えて表します。逆転とは、すべての 1 を 0 に、すべての 0 を 1 に変更することです。


Unicode

ASCII 文字であるかどうかにかかわらず、すべての文字に 2 バイトを使う文字記号化スキーマです。このスキーマは Microsoft Windows NT でサポートされていて、32 ビットの OLE 技術によって使用されます。


ユーザー インターフェイス ネゴシエーション

Microsoft Visual Basic アプリケーションまたは OLE オートメーション コントローラのメニューやツールバーと、OLE サーバーのメニューやツールバーを、コンテナ フォームに一緒に配置するプロセスを指します。


動詞

[編集] などの、オブジェクトに対して実行できるアクションを指定します。


ビジュアル編集

OLE サーバーによって提供されたオブジェクトを、アクティブにする処理です。コンテナ フォーム上のオブジェクトをダブル クリックすると、ほかのアプリケーションやウィンドウに切り替えることなく、オブジェクトを供給するアプリケーションと対話することができます。埋め込み先編集とも呼ばれます。


ウォッチ ペイン

デバッグ ウィンドウの上部にあるペインで、現在のウォッチ式と、評価する各ウォッチ式を含むプロシージャやモジュールを表示します。


Windows API

API は、アプリケーション プログラム インターフェイス (Application Program Interface) の略です。Microsoft Windows の環境で実行するアプリケーションで使う、関数、メッセージ、データ構造、データ型、ステートメントで構成されています。API の情報で最も使用されるのは、Windows API 関数を呼び出すために定義する、コード要素です。これには、プロシージャ宣言 (Windows 関数に対する)、ユーザー定義型 (関数に渡されるデータ構造)、定数宣言 (関数に渡され、関数から返される値) が含まれています。


Windows OpenFile 関数

Windows OpenFile 関数は、一致するファイルを探すために、ディレクトリを次の順序で検索します。

1.	カレント ディレクトリ

2.	Windows のディレクトリ (\Windows)。パスは、GetWindowsDirectory 関数で検索します。

3.	Windows のシステム ディレクトリ (\Windows\system)。パスは、GetSystemDirectory 関数で検索します。

4.	カレント タスクに対する実行可能ファイルのあるディレクトリ。GetModuleFileName 関数で、このディレクトリへのパスを得ることができます。

5.	PATH 環境変数で指定されているディレクトリ。

6.	ネットワークで指定されたディレクトリの一覧。


作業ディレクトリ

バージョン管理システムのデータベースからファイルをチェックアウトする場合に、そのファイルを格納するためにローカル コンピュータに指定するディレクトリです。作業ディレクトリのファイルの内容を変更した後に、そのファイルをバージョン管理システムにチェックインすると、バージョン追跡が行なわれます。


Z オーダー

フォーム上でコントロールがどのように重なり合うかを決める相対的な順序です。


Activate、Deactivate イベント

関連項目	例	対象

Activate イベントは、フォームがアクティブ ウィンドウになったときに発生します。

Deactivate イベントは、フォームがアクティブ ウィンドウではなくなったときに発生します。

構文

Private Sub object_Activate( )

Private Sub object_Deactivate( )

引数 object には、イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

解説

フォームやコントロールがクリックされたり、コード内で Show メソッドや SetFocus メソッドが実行されると、フォームがアクティブになります。

Activate イベントが発生するのは、フォームが表示されているときに限られます。たとえば、Load ステートメントでロードされたフォームは表示されているフォームではありません。このフォームは、Show メソッドが実行されるか、そのフォームの Visible プロパティが真 (True) に設定されるまでは、画面に表示されません。

Activate イベントと Deactivate イベントは、アプリケーション内でフォーカスが移動した場合にだけ発生します。別のアプリケーションのフォームとの間でフォーカスが移動した場合には、いずれのイベントも発生しません。また、フォームがアンロードされるときには Deactivate イベントは発生しません。

Activate イベントは、GotFocus イベントよりも前に発生します。また、LostFocus イベントは、Deactivate イベントよりも前に発生します。

Activate イベントと Deactivate イベントが MDI 子フォームに対して発生するのは、子フォームと子フォームの間でフォーカスが移動した場合に限られます。たとえば、2 つの子フォームを持つ MDIForm オブジェクトの場合は、2 つの子フォームの間でフォーカスが移動した場合に限ってこれらのイベントが子フォームに対して発生します。ただし、MDI 子フォームでないフォームと子フォームの間でフォーカスが移動した場合は、親の MDIForm オブジェクトに対して Activate イベントと Deactivate イベントが発生します。


関連項目

GotFocus イベント

LostFocus イベント

SetFocus メソッド

Show メソッド

Visible プロパティ


Activate、Deactivate イベントの対象

Form オブジェクト

MDIForm オブジェクト


Change イベント

関連項目	例	対象

コントロールの既定プロパティの値が変化したときに発生します。既定プロパティは、コントロールによって異なります。このため Change イベントが発生する条件とタイミングは、コントロールによって異なります。次に、各コントロールでどのような変更が行われたときに Change イベントが発生するかについて示します。

コンボ ボックス (ComboBox) コントロールでは、テキスト ボックス内のテキストが変更されたとき。Style プロパティが 0 (ドロップダウン コンボ) または 1 (標準コンボ) のときに、ユーザーがテキストの内容を変更するか、コード内で Text プロパティが変更されたときに発生します。

ディレクトリ リスト ボックス (DirListBox) コントロールでは、新しいディレクトリが選択されたとき。ユーザーが新しいディレクトリをダブルクリックして選択するか、コード内で Path プロパティが変更されたときに発生します。

ドライブ リスト ボックス (DriveListBox) コントロールでは、新しいドライブが選択されたとき。ユーザーが新しいドライブを選択するか、コード内で Drive プロパティが変更されたときに発生します。

水平スクロール バー (HScrollBar) および垂直スクロール バー (VScrollBar) コントロールでは、スクロール バー上のスクロール ボックスの位置が変更されたとき。ユーザーがスクロールを行うか、コード内で Value プロパティが変更されたときに発生します。

ラベル (Label) コントロールでは、ラベル コントロールの内容が変更されたとき。DDE リンクが更新されるか、コード内で Caption プロパティが変更されたときに発生します。

ピクチャ ボックス (PictureBox) コントロールでは、ピクチャ ボックス コントロールの内容が変更されたとき。DDE リンクが更新されるか、コード内で Picture プロパティが変更されたときに発生します。

テキスト ボックス (TextBox) コントロールでは、テキスト ボックス コントロールの内容が変更されたとき。DDE リンクが更新されるか、ユーザーがテキストの内容を変更するか、コード内で Text プロパティが変更されたときに発生します。

構文

Private Sub object_Change([index As Integer])

Change イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

Change イベントは、コントロール間で同期を取ったり、表示されたデータ間の調整を行うために使われます。たとえば、スクロールバーの Change イベントに対するイベント プロシージャを使って、スクロール バーの Value プロパティの値を表示するテキスト ボックス コントロールを更新する処理を記述できます。また、作業領域にデータと数式を表示し、別の領域に計算結果を表示する処理などにも使用できます。

Change イベント プロシージャは、ファイルを扱うコントロール (ディレクトリ リスト ボックス、ドライブ リスト ボックス、ファイル リスト ボックス) の各プロパティを更新するときにも便利です。たとえば、Change イベントを使うと、ドライブ リスト ボックス コントロールの Drive プロパティが変更されたときに、ディレクトリ リスト ボックス コントロールの Path プロパティにそれを反映させることができます。

注   Change イベントによって、イベントの連鎖が発生し、処理がループしてしまう場合があります。これは、あるコントロールの Change イベントに対するイベント プロシージャによって、結果的にそのコントロール自体の内容が変更されてしまうような場合に起こります。たとえば、テキスト ボックス コントロールの Text プロパティの設定のように、コントロールの値を左右するプロパティの設定をコードに記述する場合がこれに相当します。イベントのループを防ぐには、次のようにしてください。

可能であれば、そのコントロールの内容を変更するような Change イベント プロシージャを記述しないようにしてください。さもなければ、1 個の Change イベント プロシージャの実行中に、もう一度そのイベント プロシージャが実行されないように、フラグ変数を設定してください。

それぞれの Change イベント プロシージャが相互に影響し合うような複数のコントロールを作成することは避けてください。たとえば、互いに相手を更新し合う 2 個のテキスト ボックスなどがこれに相当します。

このイベント中に、水平スクロール バー コントロールと垂直スクロール バー コントロールに、MsgBox 関数か MsgBox ステートメントを使うことは避けてください。


関連項目

Caption プロパティ

Drive プロパティ

KeyDown、KeyUp イベント

KeyPress イベント

LinkTopic プロパティ

LostFocus イベント

Path プロパティ

PathChange イベント

PatternChange イベント

Picture プロパティ

Style プロパティ

Text プロパティ

Value プロパティ


Change イベントの対象

コンボ ボックス (ComboBox) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

ラベル (Label) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


Click イベント

関連項目	例	対象

ユーザーがオブジェクト上でマウス ボタンをクリックしたときに発生します。コントロールの Value プロパティを変更したときにも発生することがあります。

フォーム オブジェクトの場合は、フォーム上のコントロールが配置されていない領域または Enabled プロパティが偽 (False) に設定されているコントロールをユーザーがマウスでクリックしたときに、Click イベントが発生します。コントロールの場合は、次に示す操作が行われたときに発生します。

コントロールがマウスの左右いずれかのボタンでクリックされたとき。チェック ボックス (CheckBox)、コマンド ボタン (CommandButton)、オプション ボタン (OptionButton)、リスト ボックス (ListBox) の各コントロールでは、左ボタンのクリックのみです。

方向キーやマウスのボタンで、コンボ ボックス (ComboBox) コントロールまたはリスト ボックス (ListBox) コントロールの項目が選択されたとき。

コマンド ボタン、オプション ボタン、チェック ボックスの各コントロールのいずれかがフォーカスを持つ状態で、Space キーが押されたとき。

Default プロパティが真 (True) に設定されているコマンド ボタン コントロールが存在するフォームで、Enter キーが押されたとき。

Cancel プロパティが真 (True) に設定されているコマンド ボタン コントロール、つまり [キャンセル] ボタンが存在するフォームで、Esc キーが押されたとき。

コントロールに割り当てられているアクセス キーが押されたとき。たとえば、“実行(&R) ”というキャプションを持つコマンド ボタン コントロールがあるときに Alt キーを押しながら R キーを押すと、イベントが発生します。

コード内で次に示す操作が行われたときも、Click イベントが発生します。

コマンド ボタン コントロールの Value プロパティが真 (True) に設定されたとき。

オプション ボタン コントロールの Value プロパティが真 (True) に設定されたとき。

チェック ボックス コントロールの Value プロパティが変更されたとき。

構文

Private Sub Form_Click( )

Private Sub object_Click([index As Integer])

Click イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます｡

解説

通常、コマンド ボタン コントロール、メニュー、ピクチャ ボックス コントロールに対しては、Click イベントに対応するイベント プロシージャを記述します。そのほかのコントロールの Click イベントには、各コントロールに対して行われた変更に対応するイベント プロシージャを記述します。

コントロールの Value プロパティを使うと、コード内でコントロールの状態を調べることができます。コントロールをクリックすると、Click イベントと共に MouseDown イベントおよび MouseUp イベントが発生します。この 3 つのイベントが発生する順序は、コントロールによって異なります。たとえば、リスト ボックスおよびコマンド ボタン コントロールの場合、MouseDown、Click、MouseUp の順にイベントが発生します。ファイル リスト ボックス、ラベル、およびピクチャ ボックス コントロールの場合には、MouseDown、MouseUp、Click の順にイベントが発生します。これらのイベントに対応するイベント プロシージャを記述するときは、その操作内容が競合しないように注意してください。アプリケーション内でイベントの発生順序が重要な場合は、コントロールのイベントの発生順序を確認してください。

注   マウスの左、右、中央のボタンを区別するときは、MouseDown イベントと MouseUp イベントを使います。


関連項目

Cancel プロパティ

DblClick イベント

Default プロパティ

MouseDown、MouseUp イベント

Value プロパティ


Click イベントの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

メニュー (Menu) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


DragDrop イベント

関連項目	例	対象

コントロールをフォームまたはコントロールの上にドラッグしてマウス ボタンを離したとき、つまりドラッグ アンド ドロップ操作が完了したときに発生します。また、Drag メソッドの引数 action を 2 (Drop) に設定したときにも発生します。

構文

Private Sub Form_DragDrop(source As Control, x As Single, y As Single)

Private Sub MDIForm_DragDrop(source As Control, x As Single, y As Single)

Private Sub object_DragDrop([index As Integer,]source As Control, x As Single, y As Single)

DragDrop イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

source	ドラッグされているコントロール (ソース コントロール) の名前が渡されます。この引数を使って、Source.Visible = 0 のようにプロパティの設定を行ったり、メソッドを実行することができます。

x, y	ドラッグ先 (ターゲット) のフォームまたはコントロールにおける、マウス ポインタの水平位置 (X) および垂直位置 (Y) が渡されます。これらの座標には、常にターゲットの座標系が使われます。ターゲットの座標系は、ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop の各プロパティを使って設定します。

解説

DragDrop イベント プロシージャには、ドラッグ アンド ドロップ操作が完了した後の動作を記述します。たとえば、ドラッグされたコントロールを新しい位置に移動したり、ファイルをコピーしたりする処理に利用できます。何種類かのコントロールがドラッグされる可能性があるときは、次に示す操作を行います。

If ステートメントとキーワード TypeOf を使って、引数 source に渡されたコントロールの種類を調べます。

コントロールの Tag プロパティをあらかじめ設定しておくと、同じ種類のコントロールが複数ある場合でも、1 個のコントロールを特定して DragDrop イベント プロシージャを実行できます。

注   ドラッグの開始方法を指定するには、DragMode プロパティと Drag メソッドを使ってください。また、ドラッグが開始されてから DragDrop イベントが発生するまでのイベントは、DragOver イベント プロシージャを使って処理できます。


関連項目

Drag メソッド

DragIcon プロパティ

DragMode プロパティ

DragOver イベント

MouseDown、MouseUp イベント

MouseMove イベント


DragDrop イベントの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


DragOver イベント

関連項目	例	対象

ドラッグ アンド ドロップ操作の進行中に発生します。DragOver イベントは、ドラッグの開始からターゲット上にドロップされるまでの間に、ソースのコントロールがどのような状態にあるかを調べるために使います。DragOver イベントは、そのときマウス ポインタが位置しているオブジェクトによって認識されます。

構文

Private Sub Form_DragOver(source As Control, x As Single, y As Single, state As Integer)

Private Sub MDIForm_DragOver(source As Control, x As Single, y As Single, state As Integer)

Private Sub object_DragOver([index As Integer,]source As Control, x As Single, y As Single, state As Integer)

DragOver イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

source	ドラッグされているコントロール (ソース コントロール) の名前が渡されます。この引数を使って、Source.Visible = False のようにプロパティの設定を行ったり、メソッドを実行することができます。

x, y	ドラッグ先 (ターゲット) のフォームまたはコントロールにおける、マウス ポインタの水平位置 (X) および垂直位置 (Y) が渡されます。これらの座標には、常にターゲットの座標系が使われます。ターゲットの座標系は、ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop の各プロパティを使って設定します。

state	ソースのコントロール (マウス ポインタ) とターゲットのフォームまたはコントロールの位置関係を示す、次のような値が渡されます。

0 - 範囲内に入る。

ソース コントロールはターゲットの範囲内へ入ったところです。

1 - 範囲外に出る。

ソース コントロールはターゲットの範囲の外へ出るところです。

2 - 範囲の上。

ソース コントロールはターゲット上を移動しています。

解説

DragOver イベントは、ドラッグの開始からターゲット上にドロップされるまでの間に、ソースのコントロールがどのような状態にあるかを調べるために使います。たとえば、ターゲットの領域に入っていることを示すために BackColor プロパティまたは ForeColor プロパティを使ってターゲットとなるオブジェクトの色を変更したり、ドラッグ中であることを示すために DragIcon プロパティまたは MousePointer プロパティを使ってマウス ポインタの形を変更することができます。

state は、マウス ポインタの位置によって状態が変化する処理を記述するのに役立ちます。たとえば、ターゲットの範囲内に入ったとき (state = 0) はそのターゲットを強調表示し、範囲外に出たとき (state = 1) は元に戻す処理を記述できます。

オブジェクトが state = 0 (範囲内に入る) の DragOver イベントを受け取ると、次に示す処理が行われます

ソース コントロールが有効なターゲット上にドロップされた場合は、DragDrop イベントが生成されます。

ソース コントロールが有効なターゲット上にドロップされない場合は、別の DragOver イベント (state = 1) が生成されます。

注   ドラッグの開始方法を指定するには、DragMode プロパティと Drag メソッドを使ってください。また、上に述べたような引数 source の利用法については、オンライン ヘルプの「DragDrop イベント」を参照してください。


関連項目

Drag メソッド

DragDrop イベント

DragIcon プロパティ

DragMode プロパティ

MouseDown、MouseUp イベント

MouseMove イベント

MouseUp イベント


DragOver イベントの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直 スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


DropDown イベント

関連項目	例	対象

コンボ ボックス (ComboBox) コントロールのリスト部分がドロップ ダウンするときに発生します。コンボ ボックス コントロールの Style プロパティが 1 (標準コンボ) の場合は発生しません。

構文

Private Sub object_DropDown([index As Integer])

DropDown イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

DropDown イベント プロシージャは、ユーザーが選択を行う前に、コンボ ボックス コントロールのリスト部分の内容を更新するために使います。このプロシージャでは、AddItem メソッドまたは RemoveItem メソッドを使って、リストに項目を追加したり削除したりできます。この方法は、複数のコントロールに相関性を持たせたいときに便利です。たとえば、オプション ボタンの選択状態に従って、コンボ ボックス コントロールのリスト部分に表示する内容を変化させることができます。


関連項目

Style プロパティ


DropDown イベントの対象

コンボ ボックス (ComboBox) コントロール


GotFocus イベント

関連項目	例	対象

オブジェクトがフォーカスを得たときに発生します。フォーカスは、クリックや Tab キーを押すなどの操作をユーザーが行ったときや、コード内で SetFocus メソッドが実行されたときに移動します。フォームは、コントロールが配置されていないか、配置されているすべてのコントロールが無効または非表示に設定されているときだけ、フォーカスを持つことができます。

構文

Private Sub Form_GotFocus( )

Private Sub object_GotFocus([index As Integer])

GotFocus イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

一般に GotFocus イベント プロシージャには、コントロールまたはフォームが最初にフォーカスを得たときの処理を記述します。たとえば、フォーム上の各コントロールの機能に関する説明を、画面やステータス バーに表示するときに使います。また、あるコントロールがフォーカスを得たときに、その他のコントロールを無効または有効にしたり、別のコントロールを新たに追加したりすることができます。

注   Enabled プロパティおよび Visible プロパティが真 (True) に設定されているオブジェクトだけが、フォーカスを得ることがでます。キーボードを使ってフォーカスを移動できるようにするには、タブ オーダーを設定するか、フォーム上のコントロールにアクセス キーを割り当てます。


関連項目

ActiveControl プロパティ

ActiveForm プロパティ

LostFocus イベント

SetFocus メソッド

TabIndex プロパティ

TabStop プロパティ


GotFocus イベントの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

リスト ボックス (ListBox) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


KeyDown、KeyUp イベント

関連項目	例	対象

ユーザーがキーを押したとき (KeyDown) または離したとき (KeyUp) に、そのときフォーカスを持っているオブジェクトに対して発生します。ANSI コードを解釈するには、KeyPress イベントを使います。

構文

Private Sub Form_KeyDown(keycode As Integer, shift As Integer)

Private Sub object_KeyDown([index As Integer,]keycode As Integer, shift As Integer)

Private Sub Form_KeyUp(keycode As Integer, shift As Integer)

Private Sub object_KeyUp([index As Integer,]keycode As Integer, shift As Integer)

KeyDown イベントおよび KeyUp イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

keycode	vbKeyF1 (F1 キー) や vbKeyHome (Home キー) などのキー コードが渡されます。キー コードを指定するには、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリ に一覧表示されている定数を使ってください。

shift	イベント発生時の Shift、Ctrl、Alt の各キーの状態を示す値が渡されます。各キーが押されたときに対応するビットが設定されます。引数 shift はビット フィールドになっています。つまり、最下位ビットから順にビット 0 が Shift キー、ビット 1 が Ctrl キー、ビット 2 が Alt キーに対応しています。各キーを示す値はそれぞれ 1、2、4 になります。各ビットは重複して設定でき、イベント発生時に押されていたキーの値を合計した値が渡されます。たとえば、Ctrl キーと Alt キーが押されている場合、引数 shift の値は 6 になります。

解説

いずれのイベントの場合も、フォーカスを持つオブジェクトはすべてのキー入力を検出できます。フォームに対してこれらのイベントが発生するのは、そのフォーム上に表示可能 (Visible プロパティが真 (True)) または有効 (Enabled プロパティが真 (True)) な、フォーカスを持つコントロールが存在しないときに限られます。KeyDown イベントおよび KeyUp イベントはほとんどのキーを検出できますが、おもに次のキーを検出するために使われます。

ファンクション キーなどの特殊キー

移動キー

標準の補助キーと各キーの組み合わせ

数値キーパッドと標準の数字キーの区別

KeyDown イベントおよび KeyUp イベント プロシージャは、キーが押されたときと離されたときの両方の処理を記述したいときに便利です。

次の状態のときは、KeyDown イベントおよび KeyUp イベントは発生しません。

Enter キー

Default プロパティが真 (True) に設定されているコマンド ボタンが存在するとき。

Esc キー

Cancel プロパティが真 (True) に設定されているコマンド ボタンが存在するとき。

Tab キー

フォーカスを持つコントロールが存在するとき。

KeyDown イベントと KeyUp イベントは、keycode と shift の 2 つの引数によって大文字と小文字を区別します。keycode は物理的なキーを表します ("A" と "a" は、同じキーとして返されます)。shift は shift + key の状態を表し、"A" か "a" のどちらかを返します。

引数 shift の値を調べる必要があるときは、オブジェクト ブラウザの Visual Basic (VB)オブジェクト ライブラリに一覧表示されている定数を使うことによって、引数内のビットの設定を定義する定数を宣言できます。定数 shift の値を次に示します。

定数	値	内容

vbShiftMask	1	Shift キー ビット マスク

vbCtrlMask	2	Ctrl キー ビット マスク

vbAltMask	4	Alt キー ビット マスク

これらの定数は、ボタンの状態を調べるときのビット マスクとして使用できます。定数は、プロシージャ レベルまたはモジュールの宣言セクションで宣言でき、次に示す構文を使います。

Const Constantname = expression

キーの状態を調べるには、shift とビット マスクの And 演算子で比較して、結果を一時的な整数変数に割り当てます。対応するボタンまたはキーが押されているときは、比較した結果が 0 よりも大きくなります。次に例を示します。

ShiftDown = (Shift And vbShiftMask) > 0

イベント プロシージャの中では、ボタンやキーのあらゆる組み合わせを条件式として設定できます。次に例を示します。

If ShiftDown And CtrlDown Then

注   KeyPreview プロパティが真 (True) のときは、フォーム上のコントロールよりも先に、フォームがこれらのイベントを認識します。全体的なキーボード処理ルーチンを記述する場合は、KeyPreview プロパティを真 (True) に設定します。


関連項目

KeyPreview プロパティ

演算子の優先順位

SendKeys ステートメント


KeyDown、KeyUp イベントの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

リスト ボックス (ListBox) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


KeyPress イベント

関連項目	例	対象

ANSI コードまたはシフト JIS コードに対応する文字が入力されたとき、発生します。

構文

Private Sub Form_KeyPress(keyascii As Integer)

Private Sub object_KeyPress([index As Integer,]keyascii As Integer)

KeyPress イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

keyascii	引数 keyascii には、標準の ANSI コードまたはシフト JIS コードの数値が参照によって渡されます。この値を変更すれば、オブジェクトに入力されたものとは別の文字をオブジェクトに送ることができます。keyascii の値を 0 に変更すると、オブジェクトは文字を受け取りません。これによって、キー入力をキャンセルすることができます。

解説

キー入力があると、そのときフォーカスを持っているオブジェクトに対してイベントが発生します。フォームに対して KeyPress イベントが発生するのは、そのフォーム上に表示可能 (Visible プロパティが真 (True)) もしくは有効 (Enabled プロパティが真 (True)) なコントロールが存在しないか、KeyPreview プロパティが真 (True) のときに限られます。KeyPress イベントが発生するのは、出力可能なすべてのキーボード上の文字 (アルファベット、数字、記号、スペースなど)、2 バイト文字、Ctrl キーとアルファベットまたはいくつかの特殊キーの 1 つとの組み合わせ、Enter キー、Backspace キーが入力されたときです。KeyPress イベント プロシージャは、テキスト ボックス (TextBox) コントロールやコンボ ボックス (ComboBox) コントロールに対するユーザーの入力をチェックするときに便利です。入力された文字を 1 つずつチェックしたり、入力と同時に書式を設定するときなどに使います。引数 keyascii の値が変わると、表示される文字も変化します。引数 keyascii は、次に示す式を使って文字に変換できます。

Chr(KeyAscii)

この状態で文字列操作を行った後、次に示す式を使って文字をコードに戻し、コントロールに渡すことができます。

KeyAscii = Asc(char)

ファンクション キー、編集キー、移動キーおよびこれらの各キーと補助キーの組み合わせなど、KeyPress イベントでは扱えないキーの入力を検出するには、KeyDown および KeyUp イベントを使います。KeyDown および KeyUp イベントとは異なり、KeyPress イベントはどのキーが押されたのか、離されたのかというキーボードの状態を示すのではなく、入力された文字を渡します。

KeyPress イベントは大文字と小文字を別のキーコードとして認識し、別の文字として取り扱います。KeyDown イベントと KeyUp イベントは、大文字と小文字を keycode と shift の 2 つの引数を使って識別します。引数 keycode は物理的なキーを示します。したがって "A" と "a" の引数は同じです。一方、引数 shift は Shift キーの状態を示しており、"A" と "a" を区別できます。

KeyPreview プロパティが真 (True) のときは、フォーム上のコントロールよりも先にフォームがこれらのイベントを認識します。全体的なキーボード処理ルーチンを記述する場合は、KeyPreview プロパティを使います。

注   Ctrl キーを押しながら @ キーを押したときは、ASCII コードとして 0 が生成されます。Microsoft Visual Basic では引数 keyascii が 0 の場合は Null 文字列として解釈されるため、アプリケーション内では Ctrl + @ キーの組み合わせを使わないでください。


関連項目

Asc 関数

Change イベント

ASCII 文字セット (0 - 127)

ASCII 文字セット (128 - 255)

Chr 関数

KeyDown、KeyUp イベント

KeyPreview プロパティ

SendKeys ステートメント


KeyPress イベントの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

リスト ボックス (ListBox) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


LinkClose イベント

関連項目	対象

DDE 通信が終了すると発生します。ソース アプリケーションもデスティネーション アプリケーションも任意の時点で DDE 通信を終了することができます。

構文

Private Sub Form_LinkClose( )

Private Sub MDIForm_LinkClose( )

Private Sub object_LinkClose([index As Integer])

LinkClose イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

LinkClose イベント プロシージャは通常、DDE 通信が終了したことをユーザーに通知するために使います。このとき、DDE 通信を再開するための方法をユーザーに示すメッセージを表示するのが良い方法です。簡単なメッセージを表示するには MsgBox 関数および MsgBox ステートメントを使います。


関連項目

LinkError イベント

LinkExecute イベント

LinkExecute メソッド

LinkMode プロパティ

LinkNotify イベント

LinkOpen イベント

LinkTopic プロパティ


LinkClose イベントの対象

Form オブジェクト

ラベル (Label) コントロール

MDIForm オブジェクト

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


LinkError イベント

関連項目	例	対象

DDE 通信中にエラーが起こると発生します。このイベントは、Microsoft Visual Basic のコードが実行されていないときに DDE 関連のエラーが起きた場合に限って認識されます。また、エラー番号が引数として渡されます。

構文

Private Sub Form_LinkError(linkerr As Integer)

Private Sub MDIForm_LinkError(linkerr As Integer)

Private Sub object_LinkError([index As Integer,]linkerr As Integer)

LinkError イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

linkerr	DDE 関連のエラーのエラー番号が渡されます。戻り値については、次の「戻り値」を参照してください。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

戻り値

引数 LinkErr として返されるエラー番号とその意味を次の表に示します。

エラー番号	内容

1	相手のアプリケーションが無効な形式でデータを要求したことを示します。このエラーは Visual Basic から相手のアプリケーションの認識する形式を捜す処理を実行中に繰り返し発生することがあります。

6	ソース フォームの LinkMode プロパティを 0 (なし) に設定した後で、ディスティネーション アプリケーションが DDE 通信の続行を試みたことを示します。

7	すべてのソース リンクが使用中 (1 個のソースあたり 128 リンクまでの制限があります) であることを示します。

8	デスティネーション コントロールに対して発生した場合は、自動リンクまたは LinkRequest メソッドによるコントロール内でのデータの更新に失敗したことを示します。

ソース フォームに対して発生した場合は、デスティネーション アプリケーションがコントロールに対してデータをポークすることに失敗したことを示します。

11	DDE 通信のためのメモリが不足していることを示します。

解説

LinkError イベント プロシージャは、何らかのエラーが発生したことをユーザーに通知するために使います。エラー処理のためのコードや、通信を再開するための方法を示すメッセージを表示するコードを記述することもできます。簡単なメッセージを表示するには MsgBox 関数を使います。


関連項目

LinkClose イベント

LinkExecute イベント

LinkExecute メソッド

LinkItem プロパティ

LinkMode プロパティ

LinkNotify イベント

LinkOpen イベント

LinkTopic プロパティ


LinkError イベントの対象

Form オブジェクト

ラベル (Label) コントロール

MDIForm オブジェクト

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


LinkExecute イベント

関連項目	例	対象

ディスティネーション アプリケーションが DDE 通信を介してコマンド文字列を送ると発生します。ここで送信するコマンド文字列は、ソース アプリケーションが認識でき、なおかつ実行可能なコマンドである必要があります。

構文

Private Sub object_LinkExecute(cmdstr As String, cancel As Integer)

LinkExecute イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

cmdstr	デスティネーション アプリケーションが送信したコマンド文字列式を指定します。

cancel	LinkExecute イベント プロシージャ終了時に、この引数によってコマンド文字列が受け取られたのか拒否されたのかをデスティネーション アプリケーションに通知することができます。cancel を 0 に設定すると、コマンド文字列が受け取られたことを表します。cancel を 0 以外の値に設定すると、コマンド文字列が拒否されたことをデスティネーション アプリケーションに通知できます。cancel の既定値は -1 です。

解説

引数 cmdstr には特定の構文はありません。この文字列に関する処理は、作成するアプリケーションによって異なります。

LinkExecute イベント プロシージャを記述しないときは、デスティネーション アプリケーションからのコマンド文字列は受け付けられません。


関連項目

LinkClose イベント

LinkError イベント

LinkExecute メソッド

LinkMode プロパティ

LinkNotify イベント

LinkOpen イベント

LinkTopic プロパティ


LinkExecute イベントの対象

Form オブジェクト

MDIForm オブジェクト


LinkNotify イベント

関連項目	例	対象

通知リンクで通信中に、ソース アプリケーションでデータが変更されたときに発生します。ディスティネーション コントロールの LinkMode プロパティが 3 (通知) に設定されている DDE リンクは通知リンクになります。

構文

Private Sub object_LinkNotify([index As Integer])

LinkNotify イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

LinkNotify イベントでは通常、ユーザーに通知するか、新しいデータを即座に受け取るか、データを受け取るタイミングを延期するか、のいずれかの処理を行います。ソースから新しいデータを受け取るときは LinkRequest メソッドを使います。


関連項目

LinkClose イベント

LinkError イベント

LinkExecute メソッド

LinkMode プロパティ

LinkOpen イベント

LinkRequest メソッド

LinkTopic プロパティ


LinkNotify イベントの対象

ラベル (Label) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


LinkOpen イベント

関連項目	対象

DDE 通信が開始されると発生します。

構文

Private Sub Form_LinkOpen(cancel As Integer)

Private Sub MDIForm_LinkOpen(cancel As Integer)

Private Sub object_LinkOpen([index As Integer,]cancel As Integer)

LinkOpen イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

cancel	この引数は、DDE 通信が実際に開始されたかどうかを、LinkOpen イベント プロシージャの終了時に判定するために使用します。cancel が 0 (既定値) のままだと通信が開始されたことを表します。cancel が 0 以外の値の場合は通信が拒否されたことを表します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

フォームでは、ディスティネーション アプリケーションがフォームに対して DDE 通信を開始しようとするときに、このイベントが発生します。コントロールでは、コントロールがソース アプリケーションに対して DDE 通信を開始しようとするときに、このイベントが発生します。


関連項目

LinkClose イベント

LinkError イベント

LinkExecute イベント

LinkExecute メソッド

LinkMode プロパティ

LinkNotify イベント

LinkTopic プロパティ


LinkOpen イベントの対象

Form オブジェクト

ラベル (Label) コントロール

MDIForm オブジェクト

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


Load イベント

関連項目	例	対象

フォームがメモリにロードされるときに発生します。スタートアップ フォームでは、Load ステートメントを実行したり、ロードされていないフォームのコントロールやプロパティを参照した結果として、アプリケーションが起動されたときに発生します。

構文

Private Sub Form_Load( )

Private Sub MDIForm_Load( )

解説

Load イベント プロシージャは、フォームの初期化を行うときに便利です。たとえば、各コントロールの初期設定を指定したり、コンボ ボックス (ComboBox) コントロールやリスト ボックス (ListBox) コントロールにロードされる内容を記述したり、そのフォーム全体で有効な変数を初期化したりできます。

Load イベントは、Initialize イベントの後に発生します。

コード内で、現在ロードされていないフォームのプロパティを参照すると、そのフォームが自動的にロードされます。ただしこの場合、MDIChild プロパティが真 (True) でない限り自動的に表示されることはありません。MDIForm オブジェクトがロードされておらず、MDI 子フォームがロードされているときは、MDIForm オブジェクトと子フォームは両方ともロードされ、自動的に表示されます。それ以外のフォームの場合、Show メソッドを使うか Visible プロパティを真 (True) に設定するまでは画面に表示されません。

MDIForm オブジェクトの Load イベント プロシージャに次に示すコードを記述すると、MDI 子フォームが自動的にロードされます (このとき、Form1 の MDIChild プロパティは真 (True) に設定します)。

Dim NewForm As New Form1

NewForm.Caption = "新しいフォーム"	' フォームを参照してロードします。

すべての子フォームはロードされると同時に表示されます。上記のコードでは、Caption プロパティを参照すると自動的にフォームがロードされることを利用して、フォームを画面に表示しています。

注   Activate、GotFocus、Paint、Resize などの互いに関連し合っているイベントのプロシージャを記述する場合は、コードの内容が相互に干渉しないようにするとともに、再帰的なイベントの呼び出しが発生しないように注意してください。


関連項目

Activate、Deactivate イベント

Load ステートメント

QueryUnload イベント

Unload イベント

Unload ステートメント


Load イベントの対象

Form オブジェクト

MDIForm オブジェクト


LostFocus イベント

関連項目	例	対象

オブジェクトがフォーカスを失ったときに発生します。フォーカスは、クリックや Tab キーを押すなどの操作が行われたとき、またはコード内で SetFocus メソッドが実行されたときに移動します。

構文

Private Sub Form_LostFocus( )

Private Sub object_LostFocus([index As Integer])

LostFocus イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

LostFocus イベントは、更新された内容が有効かどうかを確認するときに便利です。ユーザーがそのコントロールに対する設定を終えたときに、内容を確認するようにします。また、LostFocus イベントは、GotFocus イベントと同様に、あるコントロールがフォーカスを失ったときに、その他のコントロールを無効または有効にしたり、表示または非表示にしたりするために利用できます。GotFocus イベント プロシージャで行った変更を、前の状態に戻す場合にも便利です。


関連項目

ActiveControl プロパティ

ActiveForm プロパティ

GotFocus イベント

SetFocus メソッド

TabIndex プロパティ

TabStop プロパティ


LostFocus イベントの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

リスト ボックス (ListBox) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


MouseDown、MouseUp イベント

関連項目	例	対象

ユーザーがマウス ボタンを押したとき (MouseDown)、または離したとき (MouseUp) に発生します。

構文

Private Sub Form_MouseDown(button As Integer, shift As Integer, x As Single, y As Single)

Private Sub MDIForm_MouseDown(button As Integer, shift As Integer, x As Single, y As Single)

Private Sub object_MouseDown([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)

Private Sub Form_MouseUp(button As Integer, shift As Integer, x As Single, y As Single)

Private Sub MDIForm_MouseUp(button As Integer, shift As Integer, x As Single, y As Single)

Private Sub object _MouseUp([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)

MouseDown イベントおよび MouseUp イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

button	左、右、中央のいずれのボタンが操作されたかを示す値が渡されます。引数 button はビット フィールドになっています。つまり、最下位ビットから順にビット 0 が左ボタン、ビット 1 が右ボタン、ビット 2 が中央ボタンに対応しています。各ボタンを示す値はそれぞれ 1、2、4 になります。イベントに対応するボタンの 1 ビットだけが単独で設定されます。2 ビットが重複して設定されることはありません。

shift	イベント発生時の Shift、Ctrl、Alt の各キーの状態を示す値が渡されます。各キーが押されたときに対応するビットが設定されます。引数 shift はビット フィールドになっています。つまり、最下位ビットから順にビット 0 が Shift キー、ビット 1 が Ctrl キー、ビット 2 が Alt キーに対応しています。各キーを示す値はそれぞれ 1、2、4 になります。各ビットは重複して設定でき、イベント発生時に押されていたキーの値を合計した値が渡されます。たとえば、Ctrl キー (2) と Alt キー (4) が押されている場合、2 + 4 で shift の値は 6 になります。

x, y	マウス ポインタの水平位置 (X) および垂直位置 (Y) が渡されます。これらの座標には、常にターゲットの座標系が使われます。ターゲットの座標系は、ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop の各プロパティを使って設定します。

解説

MouseDown と MouseUp イベント プロシージャには、特定のマウス ボタンが押されたり離されたりしたときの動作を記述します。Click イベントや DblClick イベントとは異なり、MouseDown イベントと MouseUp イベントでは、マウスの左、右、中央のボタンを区別することができます。また、Shift、Ctrl、Alt などの補助キーを使った、マウスとキーボードを組み合わせた操作に対応するコードも記述できます。

Click イベントおよび DblClick イベントと MouseDown イベント、MouseUp イベントの関係では、次の点に注意してください。

マウス ポインタが、あるオブジェクトの上にあるときにマウス ボタンが押されると、そのオブジェクトが MouseDown イベントを認識します。つまり MouseDown イベントが発生したときは、マウス ポインタは必ずそのオブジェクトが配置されている領域内にあります。それ以降、MouseUp イベントが発生するまで、すべてのマウスに関連するイベントは、そのオブジェクトによって認識されます。これは、マウスに関連するイベントの発生によって得られたマウス ポインタの X 座標と Y 座標が、必ずしもそれを認識したオブジェクトが配置されている内部領域内にあるとは限らないことを意味します。

マウス ボタンが連続して押された場合、最初の MouseDown イベントを認識したオブジェクトが、すべてのボタンが離されるまで、すべてのイベントを認識します。

引数 button または shift の値を調べる必要があるときは、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリ に一覧表示されている定数を使って、引数内のビットの設定を定義することができます。

定数 (ボタン)	値	内容

vbLeftButton	1	左ボタンがクリックされました。

vbRightButton	2	右ボタンがクリックされました。

vbMiddleButton	4	中央ボタンがクリックされました。

定数 (シフト)	値	内容

vbShiftMask	1	Shift キーが押されています。

vbCtrlMask	2	Ctrl キーが押されています。

vbAltMask	4	Alt キーが押されています。

これらの定数は、ボタンの状態を調べるときのビット マスクとして使えます。これを使うと、ボタンの組み合わせごとにビット フィールドの値を作成する必要はありません。

注   マウスの移動をイベントとして利用するには、MouseMove イベントを使います。MouseDown イベントおよび MouseUp イベントの引数 button の意味は、MouseMove イベントと異なることに注意してください。MouseDown イベントや MouseUp イベントでは、引数 button は 1 個のボタンだけを特定しますが、MouseMove イベントでは複数のボタンを同時に押した状態にも対応できます。


関連項目

Click イベント

DblClick イベント

MouseMove イベント

MousePointer プロパティ


MouseDown、MouseUp イベントの対象

チェック ボックス (CheckBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


MouseMove イベント

関連項目	例	対象

ユーザーがマウスを動かしたときに発生します。

構文

Private Sub Form_MouseMove(button As Integer, shift As Integer, x As Single, y As Single)

Private Sub MDIForm_MouseMove(button As Integer, shift As Integer, x As Single, y As Single)

Private Sub object_MouseMove([index As Integer,] button As Integer, shift As Integer, x As Single, y As Single)

MouseMove イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

button	左、右、中央のいずれのボタンが操作されたかを示す値が渡されます。引数 button はビット フィールドになっています。最下位ビット から順にビット 0 が左ボタン、ビット 1 が右ボタン、ビット 2 が中央ボタンに対応しています。各ボタンを示す値はそれぞれ 1、2、4 になります。各ビットは重複して設定でき、イベント発生時に押されていたマウス ボタンの値を合計した値が渡されます。

shift	イベント発生時の Shift、Ctrl、Alt の各キーの状態を示す値が渡されます。各キーが押されたときに対応するビットが設定されます。引数 shift の値は、ビット フィールドになっています。つまり、最下位ビットから順にビット 0 が Shift キー、ビット 1 が Ctrl キー、ビット 2 が Alt キーに対応しています。各キーを示す値はそれぞれ 1、2、4 になります。各ビットは重複して設定でき、イベント発生時に押されていたキーの値を合計した値が渡されます。たとえば、Ctrl キー (2) と Alt  キー (4) が押されている場合、2 + 4 で shift の値は 6 になります。

x, y	マウス ポインタの水平位置 (X) および垂直位置 (Y) が渡されます。これらの座標には、常にターゲットの座標系が使われます。ターゲットの座標系は、ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop の各プロパティを使って設定します。

解説

MouseMove イベントは、マウス ポインタがオブジェクト上を移動するときに連続的に発生します。他のオブジェクトがマウスを認識している場合を除いて、あるオブジェクトが配置されている領域の上でマウス ポインタが移動すると、そのオブジェクトに対して MouseMove イベントが発生します。

引数 button または shift の値を調べる必要があるときは、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリ に一覧表示されている定数を使って、引数内のビットの設定を定義することができます。次に、これらのマウス ボタン定数の値を示します。

定数 (ボタン)	値	内容

vbLeftButton	1	左ボタンがクリックされました。

vbRightButton	2	右ボタンがクリックされました。

vbMiddleButton	4	中央ボタンがクリックされました。

定数 (シフト)	値	内容

vbShiftMask	1	Shift キーが押されています。

vbCtrlMask	2	Ctrl キーが押されています。

vbAltMask	4	Alt キーが押されています。

これらの定数は 、ボタンの状態を調べるときのビット マスクとして使えます。これを使うと、ボタンの組み合わせごとにビット フィールドの値を作成する必要はありません。

マウス ボタンやキーの状態を調べるには、引数 button または shift とビット マスクを And 演算子で比較して、結果を一時的な整数変数に割り当てます。対応するボタンまたはキーが押されているときは、比較結果が 0 よりも大きくなります。次に例を示します。

LeftDown = (Button And vbLeftButton) > 0
CtrlDown = (Shift And vbCtrlMask) > 0

イベント プロシージャの中では、ボタンやキーのあらゆる組み合わせを条件式と

して設定できます。例を次に示します。

If LeftDown And CtrlDown Then

注   マウス ボタンが押されたり離されたりしたときの動作は、MouseDown イベント プロシージャと MouseUp イベント プロシージャに記述します。

MouseMove イベントの引数 button の意味は、MouseDown イベントおよび MouseUp イベントと異なることに注意してください。MouseMove イベントでは複数のボタンを同時に押した状態に対応できますが、MouseDown イベントや MouseUp イベントでは引数 button は 1 個のボタンだけを特定します。

MouseMove イベントでウィンドウを移動すると、イベントの連鎖が発生します。MouseMove イベントは、ウィンドウがマウス ポインタの下に移動したときに発生します。MouseMove イベントは、マウスが完全に静止しているときにも発生します。


関連項目

Click イベント

DblClick イベント

MouseDown、MouseUp イベント

MousePointer プロパティ


MouseMove イベントの対象

チェック ボックス (CheckBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


Paint イベント

関連項目	例	対象

フォームの一部または全部、あるいはピクチャ ボックスが拡大されたり、上に重なって表示されていたウィンドウがなくなったときに発生します。

構文

Private Sub Form_Paint( )

Private Sub object_Paint([index As Integer])

Paint イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

Paint イベント プロシージャは、グラフィックス メソッドを使って描画出力を行うときに役立ちます。この場合 Paint イベント プロシージャを使って、既に出力した内容を必要に応じて再描画できます。

Paint イベントは、Refresh メソッドが使われたときに発生します。AutoRedraw プロパティが真 (True) に設定されているときは、必要に応じて自動的に再描画されるため、Paint イベントは発生しません。

ClipControls プロパティが偽 (False) のときは、Paint イベント プロシージャ内のグラフィックス メソッドはフォーム上で新しく表示された部分だけを再描画します。それ以外の場合、グラフィックス メソッドはコントロール (イメージ (Image)、ラベル (Label)、ライン (Line) およびシェイプ (Shape) コントロールは除く) に覆われていないすべての領域に対して再描画を行います。

Resize イベント プロシージャの中で Refresh メソッドを使うと、フォームの大きさが変更されるたびにオブジェクト全体が強制的に再描画されます。

注   Paint イベントによって、イベントの連鎖が発生してしまう場合があります。一般に、次に示すような状況で発生する Paint イベントを利用して制御することは避けてください。

フォームまたはコントロールの移動および大きさの変更をしたとき。

大きさまたは外観に影響する変数を変更 (たとえばオブジェクトの BackColor プロパティの変更など) したとき。

Refresh メソッドを実行したとき。

これらの状況では、Resize イベントを使う方がより適切です。


関連項目

AutoRedraw プロパティ

Circle メソッド

ClipControls プロパティ

Line メソッド

Print メソッド

PSet メソッド

Refresh メソッド

Resize イベント


Paint イベントの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール


PathChange イベント

関連項目	例	対象

FileName プロパティまたは Path プロパティが設定されているときに、パスが変更されることによって発生します。FileName プロパティおよび Path プロパティは、コード中で設定します。

構文

Private Sub object_PathChange([index As Integer])

PathChange イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

PathChange イベント プロシージャは、ファイル リスト ボックス (FileListBox) コントロールのディレクトリ パスが変更されたときの処理を記述するときに使われます。新しいパスを含む文字列が FileName プロパティに代入されると、ファイル リスト ボックス コントロールは PathChange イベントを発生させます。


関連項目

FileName プロパティ

Path プロパティ

Pattern プロパティ

PatternChange イベント


PathChange イベントの対象

ファイル リスト ボックス (FileListBox) コントロール


PatternChange イベント

関連項目	例	対象

FileName プロパティまたは Pattern プロパティが設定されているときに、表示するファイルのパターン (たとえば "*.*") が変更されることによって発生します。FileName プロパティおよび Path プロパティは、コード中で設定します。

構文

Private Sub object_PatternChange([index As Integer])

PatternChange イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

PatternChange イベントは、ファイル リスト ボックス (FileListBox) コントロールでファイルを指定するパターン (ワイルド カードを含む文字列) が変更されたとき、つまり新しいパターンを含む文字列が FileName プロパティに代入されると、ファイル リスト ボックス コントロールは PatternChange イベントを発生させます。


関連項目

FileName プロパティ

Path プロパティ

PathChange イベント

Pattern プロパティ


PatternChange イベントの対象

ファイル リスト ボックス (FileListBox) コントロール


QueryUnload イベント

関連項目	例	対象

フォームまたはアプリケーションが閉じられる直前に発生します。アプリケーションが閉じられるとき、MDIForm オブジェクトを閉じると、QueryUnload イベントはまず MDI フォームで発生し、その後に続いてすべての MDI 子フォームで発生します。QueryUnload イベントをキャンセルするフォームがない場合は、Unload イベントが、MDI フォーム以外のすべてのフォーム、次に MDI フォームという順番で発生します。子フォームまたは Form オブジェクトを閉じると、フォームの Unload イベントが発生する前にそのフォームの QueryUnload イベントが発生します。

構文

Private Sub Form_QueryUnload(cancel As Integer, unloadmode As Integer)

Private Sub MDIForm_QueryUnload(cancel As Integer, unloadmode As Integer)

QueryUnload イベントの構文の指定項目は次のとおりです。

指定項目	内容

cancel	この値を 0 以外に変更すると、ロードされているすべてのフォームに対する QueryUnload イベントは停止され、フォームやアプリケーションは閉じられません。

unloadmode	QueryUnload イベントが発生した原因を表わします。戻り値については、次の「戻り値」を参照してください。

戻り値

引数 unloadmode の内容は次のとおりです。

定数	値	内容

vbFormControlMenu	0	フォームのコントロール メニューから [閉じる] コマンドが選択された。

vbFormCode	1	コード内で Unload ステートメントが起動された。

vbAppWindows	2	現在の Microsoft Windows のセッションが終了しようとしている。

vbAppTaskManager	3	Windows の [アプリケーションの切り替え] ウィンドウで、アプリケーションが閉じられた。

vbFormMDIForm	4	MDI フォームが閉じられたために、MDI 子フォーム も閉じられた。

これらの定数は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリ] に一覧表示されます。

解説

QueryUnload イベントは通常、アプリケーションが閉じられる前に各フォームのすべての作業が終了していることを確認する処理に使われます。たとえば、あるフォーム上にまだ保存されていない新しいデータが存在する場合、そのデータを保存するかどうかをユーザーに確認するための処理に使われます。

アプリケーションが閉じられるときは、QueryUnload イベントと Unload イベントの 2 つのイベント プロシージャのどちらかで、Cancel プロパティを真 (True) に設定してアプリケーションを閉じる処理を取り消すことができます。QueryUnload イベントは最初のフォームがアンロードされる前にすべてのフォームに対して発生しますが、Unload イベントは各フォームがアンロードされるたびに発生します。


関連項目

Unload イベント

Unload ステートメント


QueryUnload イベントの対象

Form オブジェクト

MDIForm オブジェクト


Resize イベント

関連項目	例	対象

フォームまたはピクチャ ボックス (PictureBox) コントロールの大きさが変更されたとき、あるいはフォームが最初に表示されたときに発生します。

構文

Private Sub Form_Resize( )

Private Sub object_Resize(height As Single, width As Single)

Resize イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

height	コントロールの新しい高さを設定する数値を指定します。

width	コントロールの新しい幅を設定する数値を指定します。

解説

Resize イベント プロシージャは、親フォームの大きさが変更されたときに、その上に配置されている子フォームやコントロールを移動したり、大きさを変更する場合に便利です。また、フォームの大きさに依存する変数やプロパティ (たとえば ScaleHeight や ScaleWidth) を再計算するときにも使われます。フォームの大きさが変更されたときにグラフィックスの大きさがフォームに合わせて変更されるようにするには、Resize イベントの中で Refresh メソッドを使って、フォームの大きさが変更されるたびに Paint イベントを発生させるようにします。

フォームの AutoRedraw プロパティが偽 (False) に設定されている場合、フォームの大きさが変更されると、Resize イベントの後に Paint イベントが発生します。これらの関連するイベントに対するプロシージャを記述するときは、操作の内容が競合しないように注意してください。

OLE コンテナ (OLE) コントロールの SizeMode プロパティが 2 (オートサイズ) に設定されると、そのコントロールに含まれるオブジェクトの表示サイズに応じて、コントロールの大きさが自動的に変更されます。オブジェクトの表示サイズが変更されると、コントロールは、そのオブジェクトに合うように自動的に大きさが変更されます。この場合、OLE コンテナ コントロールの大きさが変更される前に、Resize イベントがこのオブジェクトに発生します。height と width は、オブジェクトを表示するのに最適な大きさを示しています。この大きさは、オブジェクトを作成したアプリケーションによって決定されます。Resize イベントの height と width の値を変更することによって、コントロールの大きさを変更することができます。


関連項目

AutoRedraw プロパティ

Load ステートメント

Paint イベント

Refresh メソッド

Show メソッド


Resize イベントの対象

Form オブジェクト

MDIForm オブジェクト

ピクチャ ボックス (PictureBox) コントロール


RowColChange イベント

関連項目	例	対象

現在アクティブなセルが別のセルに変更されたときに発生します。

構文

Private Sub object_RowColChange ([index As Integer, lastrow As String, lastcol As Integer])

RowColChange イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	コントロール配列内のコントロールを、一意に識別する整数を指定します。

lastrow	DB グリッド (DBGrid) コントロールの場合、直前の行の位置を設定する文字列式を指定します。

lastcol	DB グリッド コントロールの場合、直前の列の位置を設定する文字列式を指定します。

解説

このイベントは、ユーザーが現在選択されているセル以外のセルをクリックしたときや、プログラムで、選択範囲内でアクティブなセルを変更したときに発生します。このイベントは、コードから Col プロパティおよび Row プロパティを使ってアクティブ セルを変更することによっても発生します。

ユーザーが新しいセルをクリックしたときには SelChange イベントも発生します。これに対し、プログラムでアクティブなセルを変えずに選択範囲を変更しているときには SelChange イベントは発生しません。

DB グリッド コントロールでは、カレント セルの位置は、Bookmark プロパティおよび ColIndex プロパティによって指定されます。直前のセル位置は lastrow と lastcol によって指定されます。データを編集してカレント セルの位置を新しい行に移動するときには、他のセルがカレント セルになる前に、元の行に対する各 Update イベントが完了します。


RowColChange イベントの対象

DB グリッド (DBGrid) コントロール

グリッド (Grid) コントロール


関連項目

Col、Row プロパティ

SelChange イベント


Scroll イベント

関連項目	例	対象

スクロール バー上のスクロール ボックス、または DB グリッド (DBGrid) コントロールをドラッグしたときに発生します。

構文

Private Sub dbgrid_Scroll([cancel As Integer])

Private object_Scroll( )

Scroll イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

cancel	スクロール操作が正常に行われ、DB グリッド コントロールが再描画されるかどうかを判別します。

解説

DB グリッド コントロールでは、ユーザーがグリッドを水平か垂直にスクロールするときにこのイベントが発生します。ただし、これはスクロール操作の結果を表示するための再描画が行われる前です。

引数 cancel を真 (True) に設定すると、DB グリッド コントロールのスクロール操作は中止され、再描画も行われません。cancel が真 (True) に設定されていても、このイベント中に Refresh メソッドが呼び出されると、グリッドは新しい (スクロールした) 状態で再描画されます。しかしこの場合、スクロール操作が中止されて直前の位置に戻るので、グリッドがもう一度再描画されます。

このイベントを使って、計算を行ったり、スクロール バーの中で行われている変更に対応するようにコントロールを操作することができます。スクロール バーが変更された後で 1 回限りの変更が必要なときは、Change イベントを使います。

注   このイベント内で MsgBox ステートメント、および MsgBox 関数を使うことは避けてください。


関連項目

Change イベント


Scroll イベントの対象

DB グリッド (DBGrid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール


SelChange イベント

関連項目	例	対象

選択範囲が、別のセルまたはセル範囲に変更されたときに発生します。

構文

Private Sub DBGrid_SelChange ([cancel As Integer])

Private Sub object_SelChange( )

SelChange イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

cancel	セルの選択状態が、イベントが発生する前の位置に復帰するかどうかを判別します。

解説

SelChange イベントは、選択されているセル以外のセルをクリックしたときと、マウスをドラッグしてセルの範囲を新たに選択しているときに発生します。セルの範囲は、Shift キーを押しながら方向キーを使っても選択できます。

このイベントは、コードから SelEndCol、SelStartCol、SelEndRow、SelStartRow の各プロパティを設定することによって選択領域を変更しても、発生させることができます。DB グリッド (DBGrid) コントロールの場合は、SelStartCol、SelEndCol、SelectedRows の各プロパティを設定して選択領域を変更します。

ユーザーが新しいセルをクリックしたときには、RowColChange イベントも発生しますが、ユーザーがマウスをドラッグして範囲を選択しているときや、アクティブ セルを動かさずに、選択範囲をプログラムで変更しているときには発生しません。

DB グリッド コントロールに対して引数 cancel を真 (True) に設定すると、このイベントが発生する前の状態のセルまたは領域に復帰させることができます。


SelChange イベントの対象

DB グリッド (DBGrid) コントロール

グリッド (Grid) コントロール


関連項目

RowColChange イベント

SelEndCol、SelStartCol、SelEndRow、SelStartRow プロパティ


Timer イベント

関連項目	例	対象

設定した時間が経過するごとに発生します。Timer イベントを発生させる間隔は、タイマー (Timer) コントロールの Interval プロパティに、ミリ秒単位で設定します。

構文

Private Sub object_Timer([index As Integer])

Timer イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

index	object がコントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

Timer イベントを使うと、各タイマー コントロールで設定された時間が経過するごとに処理を行うことができます。Timer イベントの設定方法を、次に示します。

Timer イベントが発生する間隔は、Interval プロパティで設定します。単位はミリ秒です。

Timer イベントを発生させるには、タイマー コントロールの Enabled プロパティを真 (True) に設定し、さらに Interval プロパティを 0 を超える値に設定しておく必要があります。


関連項目

Enabled プロパティ

Interval プロパティ

Timer 関数


Timer イベントの対象

タイマー (Timer) コントロール


Unload イベント

関連項目	例	対象

フォームがメモリからアンロードされるときに発生します。フォームをロードし直すと、そのフォーム上のすべてのコントロールの内容は、デザイン時の設定に初期化されます。Unload イベントは、ユーザーがコントロール メニュー ボックスを使ってフォームを閉じるときや、コード内で Unload ステートメントを実行したときに発生します。

構文

Private Sub object_Unload(cancel As Integer)

Unload イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	イベントを受け取るオブジェクトへの参照を表すオブジェクト式を指定します。

cancel	フォームが画面から除去されるかどうかを判別する整数。cancel が 0 のときは、フォームが除去されます。cancel に 0 以外の値を設定すると、フォームは除去されません。

解説

cancel に 0 以外の値を設定すると、フォームはアンロードされませんが、Microsoft Windows を終了するというような、他のイベントを停止することはありません。Windows の終了を停止するためには、 QueryUnload イベントを使います。

Unload イベント プロシージャは、フォームを閉じるときの確認処理を行ったり、フォームを閉じるときに実行する処理を記述するときに便利です。フォームを閉じるときや、フォームのデータを保存するときの各フォーム単位での確認処理も、Unload イベント プロシージャの中で実行できます。

QueryUnload イベント、Unload イベント、Terminate イベントの順に発生します。

Unload イベントは、コード内で Unload ステートメントを実行したときや、ユーザーがフォームのコントロール メニューから [閉じる] コマンドを選択したり、Windows の [アプリケーションの切り替え] ウィンドウで [アプリケーションの終了] ボタンを選択してアプリケーションを終了したり、カレント フォームの親である MDI フォームを閉じたり、アプリケーションの実行中に Windows を終了するときに発生します。


関連項目

Load イベント

Load ステートメント

QueryUnload イベント

Unload ステートメント


Unload イベントの対象

Form オブジェクト

MDIForm オブジェクト


Activate、Deactivate イベントの例

次のプログラムでは、ステータス バーのテキストを更新して、アクティブ フォームのキャプションを表示します。このプログラムを実行するには、フォーム (Form1) と MDI フォーム (MDIForm1) を作成します。次に、MDIForm1 に ラベル (Label) コントロールを含むピクチャ ボックス (PictureBox) コントロールを配置します。次に、Form1 の MDIChild プロパティを真 (True) に設定します。MDIForm_Load イベント プロシージャのコードを MDI フォーム モジュール (Form1) のコード ウィンドウに、Form_Activate イベント プロシージャのコードを MDI 子フォーム (Form1) のコード ウィンドウに、それぞれ貼り付け、F5 キーを押します。

Private Sub MDIForm_Load ()

Form1.Caption = "Form #1"	' Form1 のキャプションを設定します。

Dim NewForm As New Form1	' 新しい子フォームを作成します。

Load NewForm

NewForm.Caption = "Form #2"	' 新しいフォームのキャプションを設定します。

NewForm.Show	' 新しいフォームを表示します。

End Sub

Private Sub Form_Activate ()

' ステータス バーのテキストを設定します。

MDIForm1.Label1.Caption = "現在のフォーム: " & Me.Caption & "です。"

End Sub


Change イベントの例

次のプログラムでは、テキスト ボックス (TextBox) コントロールに、水平スクロール バー (HScrollBar) コントロールの Value プロパティの設定値を表示します。このプログラムを実行するには、テキスト ボックス コントロールと水平スクロール バー コントロールを含むフォームを作成します。次に、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、水平スクロール バーをクリックします。

Private Sub Form_Load ()

HScroll1.Min = 0	' 最小値を設定します。

HScroll1.Max = 1000	' 最大値を設定します。

HScroll1.LargeChange = 100	' LargeChange プロパティを設定します。

HScroll1.SmallChange = 1	' SmallChange プロパティを設定します。

End Sub

Private Sub HScroll1_Change ()

Text1.Text = HScroll1.Value

End Sub


Click イベントの例

次のプログラムでは、ピクチャ ボックス (PictureBox) コントロールがクリックされるたびに、ピクチャ ボックス コントロールがフォームの対角線上を移動します。このプログラムを実行するには、ピクチャ ボックス コントロールをフォームの左下部分に作成します。次に、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、ピクチャ ボックス コントロールをクリックします。

Private Sub Picture1_Click ()

Picture1.Move Picture1.Left + 750, Picture1.Top - 550

End Sub


DragDrop イベントの例

次のプログラムでは、あるピクチャ ボックス (PictureBox) コントロールを別のピクチャ ボックス コントロールの上にドロップしたときの例を示します。このプログラムを実行するには、まず、3 つのピクチャ ボックス コントロールをフォームに配置します。次に、フォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、Picture1 と Picture2 の各 DragMode プロパティを 1 (自動) に設定します。次に、Picture プロパティを使ってビットマップを Picture1 と Picture2 に割り当て、F5 キーを押します。起動後、Picture1 または Picture2 を Picture3 上にドラッグします。

Private Sub Picture3_DragDrop (Source As Control, X as Single, Y As Single)

If TypeOf Source Is PictureBox Then

' Picture3 のビットマップにソース コントロールと同じものを設定します。

Picture3.Picture = Source.Picture

End If

End Sub


DragOver イベントの例

次のプログラムでは、有効なドロップ先をユーザーに認識させる方法を示します。テキスト ボックス (TextBox) コントロールがピクチャ ボックス (PictureBox) コントロール上にドラッグされたとき、マウス ポインタの形が通常の矢印から特殊なアイコンに変化します。ソース コントロールがピクチャ ボックス コントロール以外の場所にドラッグされると、このポインタは通常の矢印に戻ります。このプログラムを実行するには、まず、小さなテキスト ボックス コントロールとピクチャ ボックス コントロールを、フォーム上に作成し、コード ウィンドウに下のコードを貼り付けます。次に、テキスト ボックス コントロールの DragMode プロパティを 1 に設定し、F5 キーを押します。起動後、テキスト ボックス コントロールをピクチャ ボックス コントロール上にドラッグします。

Private Sub Picture1_DragOver (Source As Control, X As Single, Y As Single, State As Integer)

Const ENTER = 0	' 定数を定義します。

Const LEAVE = 1

Select Case State

Case ENTER

' アイコンを読み込みます。

Source.DragIcon = LoadPicture("ICONS\ARROWS\POINT03.ICO")

Case LEAVE

Source.DragIcon = LoadPicture()	' アイコンをクリアします。

End Select

End Sub

Private Sub Picture1_DragDrop (Source As Control, X As Single, Y As Single)

Source.DragIcon = LoadPicture()	' アイコンをクリアします。

End Sub


DropDown イベントの例

次のプログラムでは、オプション ボタン グループでユーザーが行った選択に基づいて、コンボ ボックス (ComboBox) コントロールを更新します。このプログラムを実行するには、コンボ ボックス コントロールと、2 つのオプション ボタン (OptionButton) コントロールをフォーム上に作成し、そのコード ウィンドウに下のコードを貼り付けます。次に、2 つのオプション ボタン コントロールの Name プロパティを OptionGroup に設定し、F5 キーを押します。起動後、オプション ボタン コントロールをクリックします。このコンボ ボックス コントロールには、選択したオプション ボタン コントロールに応じて、異なるアプリケーション名がリストに追加されます。

Private Sub Form_Load ()

Combo1.Text = ""	' コンボ ボックスの内容を消去します。

End Sub

Private Sub Combo1_DropDown ()

While Combo1.ListCount	' 既存の項目を削除します。

Combo1.RemoveItem 0

Wend

If OptionGroup(0).Value = True Then

Combo1.AddItem "Word for Windows", 0

Combo1.AddItem "Excel for Windows", 1

Else

Combo1.AddItem "PowerPoint for Windows"

End If

End Sub


GotFocus イベントの例

次のプログラムでは、グループ化されたオプション ボタン (OptionButton) コントロールの中で現在フォーカスを持っているボタンの名前をステータス バーに表示します。このプログラムを実行するには、ラベル (Label) コントロールと 2 つのオプション ボタン コントロールをフォーム上に作成し、そのコード ウィンドウに下のコードを貼り付けます。次に、2 つのオプション ボタン コントロールの Name プロパティを OptionGroup に設定し、F5 キーを押します。起動後、オプション ボタン コントロールをクリックします。

Private Sub Form_Load ()

Label1.AutoSize = True

End Sub

Private Sub OptionGroup_GotFocus (Index As Integer)

Select Case Index

Case 0

Label1.Caption = "Option 1 がフォーカスを持っています。"

Case 1

Label1.Caption = "Option 2 がフォーカスを持っています。"

End Select

End Sub

Private Sub OptionGroup_LostFocus (Index As Integer)

Label1.Caption = ""

End Sub


KeyDown、KeyUp イベントの例

次のプログラムでは、Alt、Shift、Ctrl の各キーと F2 キーの組み合わせを認識する、一般的なキーボード ハンドラを示します。キー定数は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリ に一覧表示されます。このプログラムを実行するには、テキスト ボックス (TextBox) コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、Alt、Shift、および Ctrl キーを組み合わせて F2 キーを押します。

Private Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer)

Dim ShiftDown, AltDown, CtrlDown, Txt

Const vbKeyF2 = &H71	' 定数を定義します。

Const vbShiftMask = 1

Const vbCtrlMask = 2

Const vbAltMask = 4

ShiftDown = (Shift And vbShiftMask) > 0

AltDown = (Shift And vbAltMask) > 0

CtrlDown = (Shift And vbCtrlMask) > 0

If KeyCode = vbKeyF2 Then	' キー操作の組み合わせを表示します。

If ShiftDown And CtrlDown And AltDown Then

Txt = "SHIFT+CTRL+ALT+F2."

ElseIf ShiftDown And AltDown Then

Txt = "SHIFT+ALT+F2."

ElseIf ShiftDown And CtrlDown Then

Txt = "SHIFT+CTRL+F2."

ElseIf CtrlDown And AltDown Then

Txt = "CTRL+ALT+F2."

ElseIf ShiftDown Then

Txt = "SHIFT+F2."

ElseIf CtrlDown Then

Txt = "CTRL+F2."

ElseIf AltDown Then

Txt = "ALT+F2."

ElseIf SHIFT = 0 Then

Txt = "F2."

End If

Text1.Text = Txt & "が押されました。"

End If

End Sub


KeyPress イベントの例

次のプログラムでは、テキスト ボックス (TextBox) コントロール内の小文字のアルファベットを大文字に変換します。このプログラムを実行するには、テキスト ボックス コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、テキスト ボックス コントロールに適当な小文字のアルファベットを入力します。

Private Sub Text1_KeyPress (KeyAscii As Integer)

Char = Chr(KeyAscii)

KeyAscii = Asc(UCase(Char))

End Sub


LinkError イベントの例

次のプログラムでは、テキスト ボックス (TextBox) コントロール (MyTextBox) で発生したエラーの処理を行います。このプロシージャは、引数として渡されたエラー番号 (LinkErr) に応じてエラー メッセージ を表示します。MyTextBox_LinkError イベント プロシージャを Form_LinkError イベント プロシージャに置き換えれば、このコードをソース フォームでも同じように利用できます。このプログラムは説明のために簡略化されています。

Private Sub MyTextBox_LinkError (LinkErr As Integer)

Dim Msg

Select Case LinkErr

Case 1

Msg = "無効なデータ フォーマット形式です。"

Case 11

Msg = "DDE 通信のためのメモリが足りません。"

End Select

MsgBox Msg, 48, "MyTextBox"

End Sub


LinkExecute イベントの例

次のプログラムでは、作成するアプリケーションのコマンドをいくつか定義します。デスティネーションは、これらのコマンドを DDE 通信を介して使用します。このプログラムは説明のために簡略化されています。

Private Sub Form_LinkExecute (CmdStr As String, Cancel As Integer)

Cancel = False

Select Case LCase(cmdStr)

Case "{big}"

WindowState = 2	' ウィンドウを最大化します。

Case "{little}"

WindowState = 1	' ウィンドウを最小化。

Case "{hide}"

Visible = False	' フォームを非表示にします。

Case "{view}"

Visible = True	' フォームを表示します。

Case Else

Cancel = True	' 実行を拒否します。

End Select

End Sub


LinkNotify イベントの例

次のプログラムでは、ピクチャ ボックス (PictureBox) コントロール (Picture1) でよく使われる LinkNotify イベントの例を示します。Picture1 の LinkMode プロパティを 3 (通知) に設定し、LinkTopic プロパティと LinkItem プロパティをソースのピクチャ データを示すように設定しておきます。ソースのピクチャ データが 変更されると、このピクチャ ボックスがアクティブ フォームにある場合 (そのフォームがフォーカスを持つ場合) のみ、このプロシージャによってデータが即時に更新されます。アクティブ フォームにない場合は、変数 flag が設定されます。このプログラムは説明のために簡略化されています。

Private Sub Picture1_LinkNotify ()

If Screen.ActiveForm Is Me Then

Picture1.LinkRequest	' ピクチャがアクティブ フォーム上にある場合、更新されます。

Else

NewDataFlag = True	' モジュール レベル変数と仮定します。

End If

End Sub


Load イベントの例

次のプログラムでは、フォームがロードされたときに、コンボ ボックス (ComboBox) コントロールに表示する項目をロードします。このプログラムを実行するには、コンボ ボックス コントロールをフォーム上に配置し、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub Form_Load ()

Combo1.AddItem "Mozart"	' 項目を追加します。

Combo1.AddItem "Beethoven"

Combo1.AddItem "Rock 'n Roll"

Combo1.AddItem "Reggae"

Combo1.ListIndex = 2	' 選択項目の初期設定をします。

End Sub


LostFocus イベントの例

次のプログラムでは、テキスト ボックス (TextBox) コントロールが、フォーカスを持っているときと持っていないときの色を変化させ、同時にメッセージをラベル (Label) コントロールに表示します。このプログラムを実行するには、ラベル コントロールと 2 つのテキスト ボックス コントロールをフォーム上に配置し、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、Text1 と Text2 の間でフォーカスを移動します。フォーカスを移動するには、マウスまたは Tab キーを使います。

Private Sub Text1_GotFocus ()

' 赤でフォーカスを持っていることを示します。

Text1.BackColor = RGB(255, 0, 0)

Label1.Caption = "Text1 がフォーカスを持っています。"

End Sub

Private Sub Text1_LostFocus ()

' 青でフォーカスがないことを示します。

Text1.BackColor = RGB(0, 0, 255)

Label1.Caption = "Text1 はフォーカスを持っていません。"

End Sub


MouseDown、MouseUp イベントの例

次のプログラムでは、基本的な描画アプリケーションを示します。マウス ボタンを押してドラッグすると、MouseDown イベント プロシージャと MouseMove イベント プロシージャを組み合わせて描画が行われます。MouseUp イベント プロシージャが発生すると、描画されなくなります。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックして、マウス ボタンを押したままマウスを動かしてください。

Dim PaintNow As Integer

Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)

PaintNow = True	' 描画をオンにします。

End Sub

Private Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)

PaintNow = False	' 描画をオフにします。

End Sub

Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)

If PaintNow Then

PSet (X, Y)	' 点を描画します。

End If

End Sub

Private Sub Form_Load ()

DrawWidth = 10	' 線の太さを設定します。

ForeColor = RGB(0, 0, 255)	' 色を設定します。

End Sub


MouseMove イベントの例

次のプログラムでは、基本的な描画アプリケーションを示します。マウス ボタンを押してドラッグすると、MouseDown イベント プロシージャと MouseMove イベント プロシージャを組み合わせて描画が行われます。MouseUp イベント プロシージャが発生すると、描画されなくなります。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックして、マウス ボタンを押したままマウスを動かしてください。

Dim PaintNow As Integer	' 変数を宣言します。

Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)

PaintNow = True	' 描画をオンにします。

End Sub

Private Sub Form_MouseUp (Button As Integer, X As Single, Y As Single)

PaintNow = False	' 描画をオフにします。

End Sub

Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)

If PaintNow Then

PSet (X, Y)	' 点を描画します。

End If

End Sub

Private Sub Form_Load ()

DrawWidth = 10	' 線の太さを設定します。

ForeColor = RGB(0, 0, 255)	' 色を設定します。

End Sub


Paint イベントの例

次のプログラムでは、フォームの各辺の中央を結ぶ、ひし形を描きます。ひし形の大きさはフォームのサイズの変化に合わせて自動的に変わります。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームのサイズを変更します。

Private Sub Form_Paint ()

Dim HalfX, HalfY	' 変数を宣言します。

HalfX = ScaleLeft + ScaleWidth / 2	' フォームの幅の半分に設定します。

HalfY = ScaleTop + ScaleHeight / 2	' フォームの高さの半分に設定します。

' ひし形を描きます。

Line (ScaleLeft, HalfY) - (HalfX, ScaleTop)

Line -(ScaleWidth + ScaleLeft, HalfY)

Line -(HalfX, ScaleHeight + ScaleTop)

Line -(ScaleLeft, HalfY)

End Sub

Private Sub Form_Resize

Refresh

End Sub


PathChange イベントの例

次のプログラムでは、ファイル リスト ボックス (FileListBox) コントロールの現在のパスの変更に応じて、ラベル (Label) コントロールの表示を更新します。ディレクトリ名をダブルクリックすると、そのディレクトリのファイル名のリストがファイル リスト ボックス コントロールに表示されます。同時に、そのディレクトリの絶対パス名がラベル コントロールに表示されます。このプログラムを実行するには、フォーム上にラベル コントロール、ディレクトリ リスト ボックス (DirListBox) コントロール、およびファイル リスト ボックス コントロールをそれぞれ配置し、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub File1_PathChange ()

Label1.Caption = "パス: " & Dir1.Path	' パス名をラベルに表示します。

End Sub

Private Sub Dir1_Change ()

File1.Path = Dir1.Path	' ファイルのパス名を設定します。

End Sub

Private Sub Form_Load ()

Label1.Caption = "パス: " & Dir1.Path	' パス名をラベルに表示します。

End Sub


PatternChange イベントの例

次のプログラムでは、テキスト ボックス (TextBox) コントロールに入力されたパターンと一致するファイルだけを表示するように、ファイル リスト ボックス (FileListBox) コントロールの内容を更新します。たとえば、テキスト ボックス コントロールに、C:\BIN\*.EXE と絶対パス名を入力すると、そのテキストの文字は自動的にパス名とパターンに分けられます。このプログラムを実行するには、フォーム上に、テキスト ボックス コントロール、ラベル (Label) コントロール、ファイル リスト ボックス コントロール、およびコマンド ボタン (CommandButton) コントロールをそれぞれ配置し、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、テキスト ボックス コントロールに有効なファイル パターンを入力してください。

Private Sub Form_Load ()

Command1.Default = True	' デフォルトのコマンド ボタンを設定します。

Command1.Caption = "OK"	' Caption プロパティを設定します。

End Sub

Private Sub Command1_Click ()	' [OK] ボタンが押された場合。

' 入力された文字列をパス名と検索ファイルのパターンとに分けます。

File1.FileName = Text1.Text

Label1.Caption = "パス: " & File1.Path

End Sub

Private Sub File1_PatternChange ()

Text1.Text = File1.Pattern	' ファイル パターンを更新します。

End Sub


QueryUnload イベントの例

次のプログラムでは、2 つの MDI 子フォームを持つ MDI フォームを使用します。コントロール メニューから [閉じる] コマンドを選択してフォームを閉じた場合と、[ファイル] - [終了] コマンドで閉じた場合では、表示されるメッセージが異なります。このプログラムを実行するには、MDI フォームを作成し、メニュー エディタを使って [ファイル] メニューとその下の [終了] コマンド (名前は FileExit) を作成します。次に、Form1 の MDIChild プロパティを真 (True) に設定します。それぞれのフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

' MDIForm1 の宣言セクションに貼り付けます。

Private Sub MDIForm_Load ()

Dim NewForm As New Form1	' Form1 の新しいインスタンスを宣言します。

NewForm.Caption = "Form2"	' Caption プロパティを設定、表示します。

End Sub

Private Sub FileExit_Click ()

Unload MDIForm1	' アプリケーションを終了します。

End Sub

Private Sub MDIForm_QueryUnload (Cancel As Integer, UnloadMode As Integer)

Dim Msg	' 変数を宣言します。

' メッセージ テキストを設定します。

Msg = "アプリケーションを終了しますか ?"

' [いいえ] ボタンが押されたら、QueryUnload イベントを終了します。

If MsgBox(Msg, 36, Me.Caption) = 7 Then Cancel = True

End Sub

' Form1 のコード ウィンドウに貼り付けます。

Private Sub Form_QueryUnload (Cancel As Integer, UnloadMode As Integer)

Dim Msg	' 変数を宣言します。

If UnloadMode > 0 Then

' アプリケーションを終了した場合は、次のメッセージを表示します。

Msg = "アプリケーションを終了しますか ?"

Else

' フォームを閉じた場合は、次のメッセージを表示します。

Msg = "フォームを閉じますか ?"

End If

' [いいえ] ボタンが押されたら、QueryUnload イベントを終了します。

If MsgBox(Msg, 36, Me.Caption) = 7 Then Cancel = True

End Sub


Resize イベントの例

次のプログラムでは、フォームの大きさが変更されるたびに、フォームに合わせてテキスト ボックス (TextBox) コントロールの大きさも自動的に変更します。このプログラムを実行するには、フォームにテキスト ボックス コントロールを配置し、そのコード ウィンドウに下のコードを貼り付けます。次に、テキスト ボックス コントロールの MultiLine プロパティを真 (True) に、ScrollBars プロパティを 3 に、BorderStyle プロパティを 0 に、それぞれ設定し、F5 キーを押します。起動後、フォームの大きさを変更してください。

Private Sub Form_Load ()

Text1.Text = ""	' テキストを削除します。

End Sub

Private Sub Form_Resize ()

Text1.Move 0,0, ScaleWidth, ScaleHeight

End Sub


RowColChange、SelChange イベントの例および Cols、Rows プロパティの例

次のプログラムでは、カレント セルの位置、または、ユーザーがセルまたはセル範囲を選択した場合は、選択範囲を表示します。範囲を選択している場合は、カレント セルは変更されません。範囲を選択してそのフォームをクリックすると、選択範囲の一番外側のセル間をカレント セルが移動します。このとき、選択範囲は変更されません。

このプログラムを実行するには、フォーム上にグリッド (Grid) コントロールと 2 つのラベル (Label) コントロールを配置して、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。グリッド コントロールがプロジェクトに読み込まれていない場合は、[ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスで [Microsoft Grid Control] を選択して、GRID16.OCX または GRID32.OCX をプロジェクトに追加してください。

Private Sub Form_Load ()

Grid1.Cols = 6	' 行と列を設定します。

Grid1.Rows = 7

End Sub

Private Sub Grid1_RowColChange ()

Msg = "カレント セル: " & Chr(64 + Grid1.Col)

Msg = Msg & Grid1.Row

Label1.Caption = Msg

End Sub

Private Sub Grid1_SelChange ()

Msg = "選択範囲: " & Chr(64 + Grid1.SelStartCol)

Msg = Msg & Grid1.SelStartRow

Msg = Msg & ":" & Chr(64 + Grid1.SelEndCol)

Msg = Msg & Grid1.SelEndRow

Label2.Caption = Msg

End Sub

Private Sub Form_Click ()

' この例では、フォームを

' クリックすると、

' 選択範囲の一番外側のセル間をカレント セルが移動します。

Dim GR, GC As Integer

If Grid1.Row = Grid1.SelStartRow Then

If Grid1.Col = Grid1.SelEndCol Then

GR = 1: GC = 0

Else

GR = 0: GC = 1

End If

ElseIf Grid1.Row = Grid1.SelEndRow Then

If Grid1.Col = Grid1.SelStartCol Then

GR = -1: GC = 0

Else

GR = 0: GC = -1

End If

Else

If Grid1.Col = Grid1.SelStartCol Then

GR = -1: GC = 0

Else

GR = 1: GC = 0

End If

End If

Grid1.Row = Grid1.Row + GR

Grid1.Col = Grid1.Col + GC

End Sub


Scroll イベントの例

次のプログラムでは、水平スクロール バー (HScrollBar) コントロールのスクロール ボックスをドラッグしたときに、スクロール量に応じてシェイプ (Shape) コントロールの大きさを変更します。このプログラムを実行するには、フォーム上に、シェイプ コントロール、ラベル (Label) コントロール、水平スクロール バー コントロールをそれぞれ配置し、そのコード ウィンドウに下のコードを貼り付けます。次に、コントロール配列を作成するために、シェイプ コントロールの Index プロパティを 0 に設定し、F5 キーを押します。起動後、スクロール ボックスを移動します。

Private Sub Form_Load ()

' 最初のシェイプ コントロールの移動および大きさの変更を設定します。

Shape1(0).Move HScroll1.Left, HScroll1.Top * 1.5, HScroll1.Width, HScroll1.Height

Label1.Caption = ""	' Caption プロパティを設定します。

Load Shape1(1)	' 2 番めのシェイプ コントロールを作成します。

' 2 番めのシェイプ コントロールの移動および大きさの変更を設定します。

Shape1(1).Move Shape1(0).Left, Shape1(0).Top, 1, Shape1(0).Height

Shape1(1).BackStyle = 1	' 1 - 不透明に設定します。

Shape1(1).Visible = True	' 2 番めを表示します。

HScroll1.Min = 1	' スクロール バーの値を設定します。

HScroll1.Max = HScroll1.Width

End Sub

Private Sub HScroll1_Change ()

Label1.Caption = "変更されました"	' メッセージを表示します。

End Sub

Private Sub HScroll1_Scroll ()

Shape1(1).BackColor = &HFF0000	' 青に変更します。

Label1.Caption = "変更中"	' メッセージを表示します。

Shape1(1).Width = HScroll1.Value ' スクロールに合わせた大きさに変更します。

End Sub


Timer イベントの例

次のプログラムでは、デジタル時計のアプリケーションを示します。このプログラムを実行するには、フォーム上にラベル (Label) コントロールとタイマー (Timer) コントロールを配置し、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub Form_Load ()

Timer1.Interval = 1000	' 発生間隔を設定します。

End Sub

Private Sub Timer1_Timer ()

Label1.Caption = Time	' 時間表示を更新します。

End Sub

次のプログラムでは、フォーム上でピクチャ ボックス (PictureBox) コントロールを移動します。このプログラムを実行するには、フォーム上にタイマー コントロールとピクチャ ボックス コントロールを配置し、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。ピクチャ ボックス コントロールの Picture プロパティにビットマップを指定すると、より視覚的な効果があります。

Dim DeltaX, DeltaY As Integer	' 変数を宣言します。

Private Sub Timer1_Timer ()

Picture1.Move Picture1.Left + Deltax, Picture1.Top + DeltaY

If Picture1.Left < ScaleLeft Then DeltaX = 100

If Picture1.Left + Picture1.Width > ScaleWidth + ScaleLeft Then

DeltaX = -100

End If

If Picture1.Top < ScaleTop Then DeltaY = 100

If Picture1.Top + Picture1.Height > ScaleHeight + ScaleTop Then

DeltaY = -100

End If

End Sub

Private Sub Form_Load ()

Timer1.Interval = 1000	' イベント発生間隔を設定します。

DeltaX = 100	' 変数を初期化します。

DeltaY = 100

End Sub


Unload イベントの例

次のプログラムでは、フォームを閉じる前に、確認のためのメッセージ ボックスを表示します。実際のアプリケーションでは、[ファイル] メニューの [終了]、[保存]、[名前を付けて保存] の各コマンドの処理を実行する Sub プロシージャで、このイベントを呼び出すと便利です。このプログラムを実行するには、まず、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームが表示されたら、Alt + F4 キーを押してフォームを閉じます。

Private Sub Form_Unload (Cancel As Integer)

Dim Msg, Response	' 変数を宣言します。

Msg = "データを保存してから終了しますか ?"

Response = MsgBox(Msg, 3 + 32, "保管")

Select Case Response

Case 2	' 終了処理を取り消す場合。

Cancel = -1

Msg = "取り消されました。"

Case 6

' ここには、データを保存するためのコードを記述してください。

Msg = "データを保存しました。"

Case 7

Msg = "データは保存されませんでした。"

End Select

MsgBox Msg, 0, "確認"	' メッセージを表示します。

End Sub


ジェネラル プロシージャの作成

関連項目

ジェネラル プロシージャには、特定の作業の実行方法を記述します。ジェネラル プロシージャは、定義した後、アプリケーションによって明示的に呼び出す必要があります。これに対してイベント プロシージャは、通常はアイドル状態にあり、ユーザー操作またはシステムにより発生するイベントに応じて呼び出されます。ジェネラル プロシージャは、フォーム モジュール、標準モジュール、クラス モジュールのいずれにも記述することができます。また、パブリック、プライベートのどちらにも指定できます。パブリック ジェネラル プロシージャは、アプリケーションのどのモジュールでも使用できますが、プロシージャ名と共に、プロシージャのあるモジュールの名前を指定する必要があります。ジェネラル プロシージャを使用すると、複雑なアプリケーション コードを、扱いやすい単位に分割できます。

ジェネラル プロシージャを作成するには

1.	プロシージャを記述するモジュールのコード ウィンドウを開きます。

2.	[挿入] - [プロシージャ] コマンドを選択します。

3.	テキスト ボックスにプロシージャ名を入力します。

4.	Sub プロシージャを作成する場合は [Sub プロシージャ] オプション ボタン、Function プロシージャを作成する場合は [Function プロシージャ] オプション ボタン、Property プロシージャを作成する場合は [Property プロシージャ] オプション ボタンを選択します。

Function プロシージャは値を返しますが、Sub プロシージャは値を返しません。

5.	モジュールの外部から呼び出せるプロシージャを作成する場合は [Public プロシージャ] オプション ボタンを、モジュールの内部のみで呼び出せるプロシージャを作成する場合は [Private プロシージャ] オプション ボタンを選択します。

6.	[OK] ボタンを選択します。

プロシージャ テンプレートが設定され、ジェネラル プロシージャのコードを入力できる状態になります。

注   現在のモジュールにプロシージャを新規作成するには、コード ウィンドウに「Sub ProcedureName」、「Function ProcedureName」、または「Property Procedurename」と入力する方法もあります。

構文

Sub プロシージャを記述するときは、次の構文を使います。

Sub ProcedureName (arguments)
ローカル変数とローカル定数の定義
ステートメント
End Sub

Function プロシージャを記述するときは、次の構文を使います。

Function ProcedureName (arguments) As datatype
ローカル変数とローカル定数の定義
ステートメント
ProcedureName = returnvalue
End Function

Property プロシージャを記述するときは、次の構文を使います。

Property {Get|Let|Set} propertyname [(arguments)] [As type]
ローカル変数とローカル定数の定義
ステートメント
End Property

注   ジェネラル プロシージャは、特に指定しない場合はパブリックになります。

ジェネラル プロシージャは、次のような場合に使います。

1 つのフォーム上の複数のコントロールで、コードを共有する場合に使います。フォーム コードにジェネラル プロシージャを記述し、それぞれのコントロールに、ジェネラル プロシージャを呼び出すイベント プロシージャを付加します。

複数のフォームでコードを共有する場合に使います。標準モジュールを作成し、その中にジェネラル プロシージャを共有コードとして記述します。コードを共有するフォームやコントロールのそれぞれに、ジェネラル プロシージャを呼び出すイベント プロシージャを付加します。

モジュール内のコードが多すぎると、メモリの制限を超えてしまう場合があります。そのような場合、1 個または複数の標準モジュールにジェネラル プロシージャを記述し、それらを呼び出す短いイベント プロシージャをフォームやコントロールに付加することによって、コードの量を減らすことができます。モジュールのいずれかに、パブリック宣言を記述します。

マルチ フォーム アプリケーションの起動用に使います。標準モジュールを作成し、起動プロシージャとして Main というジェネラル プロシージャを記述します。[オプション] ダイアログ ボックスの [プロジェクト] タブの [スタートアップ フォーム] ボックスで、[Sub Main] を指定する必要があります。


関連項目

フォームまたはコントロールへのイベント プロシージャの記述

プロシージャの作成

コードの入力と編集

[新規プロシージャ] ダイアログ ボックス


ウォッチ式の使い方

関連項目

Visual Basic で式を監視する方法は、2 通りあります。デバッグ ウィンドウで式の値を監視する方法と、式の値が真 (True) の時や、式の値が変化した時に、プログラムの実行を中断する方法です。

式の値を監視するとき、通常は、式の値を知りたい箇所のあるプロシージャにブレークポイントを設定し、[インスタント ウォッチ] コマンドを使って、プロシージャ内でプログラムの実行が中断した時の式の値を調べます。[インスタント ウォッチ] コマンドを使うときに、デバッグ ウィンドウに式を記述することもできます。

また、[ウォッチ式の追加] ダイアログ ボックスと [ウォッチ式の編集] ダイアログ ボックスの [ウォッチの種類] グループ ボックスの最後の 2 つのオプションを使って、式の値が 0 以外になった時、または、式の値が 0 から 0 以外に、あるいは 0 以外から 0 に変化した時に、アプリケーションの実行を中断できます。ウォッチポイントに関して“真”という場合、論理的に真であることを指し、組み込み定数の真 (True) で表される Not False の状態とは異なります。(組み込み定数の真 (True) はビットでの 0 の補数で、その値は常に -1 となります。)

たとえば、プロシージャの中の変数 MyVar に対して [式が True の時に中断] オプション ボタンを選択すると、MyVar の値が 0 以外になった時点でプログラムの実行を中断します。しかし、式 MyVar > 5 に対してこのオプションを選択すると、式 MyVar > 5 の評価結果が真になるまで、実行を中断しません。文字列変数は、それだけでは評価できません。文字列変数が空 (長さ 0) の状態から空以外の状態に変化した時に、ウォッチ式により実行を中断するには、StrVar$ <> "" のように比較式の中で使うか、または関数呼び出し Len(StrVar$) などにより評価する必要があります。

[対象] グループ ボックスでは、式の対象をその式のコンポーネントの適用範囲より広く設定できません。たとえば、ローカル変数の場合は [プロシージャ] 以外は設定できません。コンポーネントがモジュール レベルで定義されている式には、[プロシージャ] または [モジュール] を設定できます。適用範囲がパブリックの式には、どの対象も設定できます。


関連項目

[ウォッチ式の追加] ダイアログ ボックス

ウォッチ式の追加

デバッグ ウィンドウ

ウォッチ式の削除

[ウォッチ式の編集] ダイアログ ボックス

ウォッチ式の編集


イミディエイト ペインの使い方

関連項目

中断モード中にデバッグ ウィンドウのイミディエイト ペインのコードを実行するには

1.	デバッグ ウィンドウのイミディエイト ペインにコードを入力します。

2.	Enter キーを押してステートメントを実行します。

デバッグ ウィンドウのイミディエイト ペインは、次のような場合に使います。

問題のあるコードや新しく記述したコードをテストします。

アプリケーションの実行中に、変数の値を調べたり、変更したりします。

アプリケーションの実行中に、プロパティの値を調べたり、変更したりします。

コードの中と同じように、プロシージャを呼び出します。

プログラムの実行中に、デバッグ情報の出力を表示します。

注   イミディエイト ペインのステートメントは、対象範囲の中で、特定のモジュールに入力したのと同じように実行されます。この対象範囲は、デバッグ ウィンドウのタイトル バーに表示されます。

イミディエイト ペインで作業しているときに、関数、ステートメント、プロパティ、メソッドに関するヘルプを参照するには、キーワード、プロパティ名、メソッド名のいずれかを選択して F1 キーを押します。


関連項目

デバッグ ウィンドウ

デバッグのためのチェック リスト


グリッドの表示と非表示

関連項目

デザイン時には、フォームのインターフェイスにドットによるグリッドが表示されます。グリッドの間隔は twip を単位とします。このグリッドは、フォーム上のコントロールの位置を揃えるために使います。グリッドは表示と非表示を切り替えられます。

グリッドの表示/非表示を切り替えるには

1.	[ツール] - [オプション] コマンドを選択します。

2.	[環境] タブを選択します。

3.	[グリッドの表示] チェック ボックスをクリックし、グリッドの表示/非表示を切り替えます。

4.	[OK] ボタンを選択します。


関連項目

オブジェクトのグリッドへの位置揃え

グリッド間隔の変更

[環境] タブ ([オプション] ダイアログ ボックス)


グリッド間隔の変更

関連項目

アクティブなフォームに表示されているグリッドの間隔を調整できます。グリッドの間隔はピクセルで指定します。

グリッド間隔を変更するには

1.	[ツール] - [オプション] コマンドを選択します。

2.	[環境] タブを選択します。

3.	[横間隔] ボックスに水平方向のドットの間隔を入力します。

4.	[縦間隔] ボックスに垂直方向のドットの間隔を入力します。

5.	[OK] ボタンを選択します。


関連項目

オブジェクトのグリッドへの位置揃え

グリッドの表示と非表示

[環境] タブ ([オプション] ダイアログ ボックス)


フォームへのグラフィックスの表示

関連項目

デザイン時にフォームやコントロールにグラフィックスを追加するには、プロパティ ウィンドウで Picture プロパティを設定するか、または他のアプリケーションからグラフィックスをコピーし、Visual Basic に貼り付けます。ビットマップ、アイコン、メタファイルの表示領域としてピクチャ ボックス (PictureBox) コントロールやイメージ (Image) コントロールを使うと、フォアグラウンド グラフィックスとして表示され、フォーム全体を表示領域にすると、バックグラウンド グラフィックスとして表示されます。コードにより実行時にグラフィックスを追加することもできます。

デザイン時にプロパティ ウィンドウを使ってフォアグラウンド グラフィックスを追加するには

1.	フォーム上にピクチャ ボックス コントロールまたはイメージ コントロールを描きます。

2.	プロパティ ウィンドウで Picture プロパティを選択します。

3.	プロパティ名の右側に現在のイメージの種類が表示されます。設定ボックスの右の [...] ボタンをクリックします。

[ピクチャの読み込み] ダイアログ ボックスが表示されます。

4.	ダイアログ ボックスで、グラフィックスのファイル名を選択または入力します。

5.	[OK] ボタンを選択します。

グラフィックスのコンテナとなるコントロールに、グラフィックスが表示されます。必要に応じてコンテナのサイズを変更してください。

デザイン時にプロパティ ウィンドウを使ってバックグラウンド グラフィックスを追加するには

1.	フォームの空白部分をクリックし、フォームを選択します。

2.	プロパティ ウィンドウで Picture プロパティを選択します。

3.	上記の 3 ～ 5 と同じ手順に従います。

フォームにグラフィックスが表示されます。必要に応じて、グラフィックスを正しく表示できるようにフォームのサイズを変更してください。

デザイン時にコピーと貼り付けによってグラフィックスを追加するには

1.	他のアプリケーションを開き、グラフィックスをクリップボードにコピーします。

2.	Visual Basic に切り替えます。

3.	グラフィックスを貼り付けるフォームまたはコントロールを選択します。

4.	[編集] - [貼り付け] コマンド (Ctrl + V キー) を選択します。

注   デザイン時にグラフィックスを削除するには、プロパティ ウィンドウで Picture プロパティを選択し、設定ボックスの内容を削除します。

フォームの全画面にビットマップを表示すると、大量のメモリを消費します。メモリを節約するには、ピクチャ ボックス コントロールかイメージ コントロールを使ってフォアグラウンド グラフィックスを表示します。

ピクチャ ボックス コントロールを使うときは、AutoSize プロパティを真 (True) に設定しておくと、ピクチャに合わせてコントロールのサイズが自動変更されます。AutoSize プロパティを偽 (False) に設定すると、コントロールのサイズは変化せず、コントロールの領域を超えた部分のグラフィックスは表示されません。


関連項目

AutoSize プロパティ

フォームへの線と図形の描画

Form オブジェクト、Forms コレクション

フォーム ウィンドウ

イメージ (Image) コントロール

ピクチャ ボックス (PictureBox) コントロール

プロパティ ウィンドウ

フォームとコントロールのプロパティの設定


フォームへの線と図形の描画

関連項目

フォームに単純な線を描くには、ライン (Line) コントロールを使います。フォームに長方形 (4 隅が角のものと丸のもの)、正方形 (4 隅が角のものと丸のもの)、楕円、円を描くには、シェイプ (Shape) コントロールを使います。

フォームに線を描くには

1.	ツールボックスでライン コントロールを選択します。

ポインタは、フォーム上に移動するとクロス ポインタに変わります。

2.	フォーム上の線の開始位置をクリックします。

3.	マウス ボタンを押したまま、線の終了位置までクロス ポインタをドラッグし、マウス ボタンを離します。

4.	線のスタイルを変更するには、プロパティ ウィンドウで BorderStyle プロパティを選択します。

5.	設定ボックスでスタイルを選択します。

フォームに図形を描くには

1.	ツールボックスでシェイプ コントロールを選択します。

ポインタは、フォーム上に移動するとクロス ポインタに変わります。

2.	図形の開始位置をクリックし、適切なサイズになるまでクロス ポインタをドラッグします。

3.	プロパティ ウィンドウの Shape プロパティを選択します。

4.	設定ボックスでスタイルを選択します。

注   色を追加するには、BackColor プロパティを適切な色に設定します。

実行時に線、四角形、塗りつぶしたボックスを描くには、Line メソッドを使います。

実行時に円、楕円、円弧を描くには、Circle メソッドを使います。


関連項目

BackColor、ForeColor プロパティ

BorderStyle プロパティ

Circle メソッド

フォームへのグラフィックスの表示

フォーム ウィンドウ

ライン (Line) コントロール

Line メソッド

ピクチャ ボックス (PictureBox) コントロール

フォームとコントロールのプロパティの設定

シェイプ (Shape) コントロール

Shape プロパティ

ツールボックス


コントロールの配置

関連項目

コントロールは、ツールボックスのツールを使って配置するグラフィカル オブジェクトです。それぞれのコントロールには、プロパティ、イベント、メソッドがあり、アプリケーションに特別な機能を追加するために使うことができます。

コントロールを配置するには

1.	ツールボックスから配置したいコントロールのツールを選択します。

2.	コントロールを配置するフォームをクリックします。

ポインタは、フォーム上に移動するとクロス ポインタに変わります。

3.	コントロールの開始位置をクリックし、適切なサイズになるまでクロス ポインタをドラッグします。

ショートカット操作

ツールボックスから配置したいコントロールのツールをダブルクリックします。

フォームの中央にコントロールが表示されます。必要に応じてコントロールを移動し、サイズを変更します。

注   オプション ボタン (OptionButton) コントロールは、常にグループの構成要素として機能します。コンテナ内のいずれかのボタンを選択すると、同じグループの他のボタンはすべてクリアされます。フォームに複数のオプション ボタンのグループを作成するには、それぞれのオプション ボタン コントロールを、フレーム (Frame) コントロールまたはピクチャ ボックス (PictureBox) コントロールに配置します。


関連項目

フォームまたはコントロールへのイベント プロシージャの記述

コントロール配列の作成

フレーム (Frame) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

フォームとコントロールのプロパティの設定

ツールボックス


コントロールの選択

関連項目

コントロールを選択するには

フォーム上で選択するコントロールをクリックします。

複数のコントロールを選択するには

1.	フォーム上で、選択したいコントロールの 1 つをクリックします。

2.	次のいずれかの操作を行います。

最初のコントロールを選択した状態で、Ctrl キーを押しながら、その他のコントロールを 1 つずつクリックします。選択を取り消すには、Ctrl キーを押したまま、選択を取り消すコントロールをもう 1 度クリックします。

フォームをクリックし、選択したいコントロールをすべて囲むようにドラッグします。

注   コンテナ (フレーム (Frame) コントロールまたはピクチャ ボックス (PictureBox) コントロール) の中の複数のコントロールを選択するには、最初にコンテナの選択を取り消します。次に、Ctrl キーを押しながらクリックし、選択するコントロールをすべて囲むようにドラッグします。

複数のコントロールを選択すると、プロパティ ウィンドウで 1 回の変更を行うだけで、選択したすべてのコントロールに共通するプロパティの設定を変更できます。

選択を取り消すには

フォーム上の選択したコントロール以外の場所をクリックします。


関連項目

Form オブジェクト、Forms コレクション

フォーム ウィンドウ

フレーム (Frame) コントロール

ピクチャ ボックス (PictureBox) コントロール

プロパティ ウィンドウ


オブジェクトのグリッドへの位置揃え

関連項目

フォームにオブジェクトを描くときに、自動または手動でオブジェクトの位置をグリッドに合わせることができます。自動、手動のいずれの場合も、グリッドを表示しておく必要はありません。

オブジェクトを描くときに、自動的にオブジェクトの位置をグリッドに合わせるには

1.	[ツール] - [オプション] コマンドを選択します。

2.	[オプション] ダイアログ ボックスで [環境] タブを選択します。

3.	[グリッドの設定] グループ ボックスの [グリッドに合わせる] チェック ボックスを選択します。

手動でオブジェクトの位置をグリッドに合わせるには

1.	位置揃えをするオブジェクトを選択します。

2.	次のいずれかの操作を行います。

[編集] - [グリッドに合わせる] コマンドを選択します。

マウスの右ボタンをクリックし、ポップアップ メニューの [グリッドに合わせる] コマンドを選択します。


関連項目

グリッド間隔の変更

グリッドの表示と非表示

[環境] タブ ([オプション] ダイアログ ボックス)


メニュー バーの作成

関連項目

メニュー エディタを使って、アクティブ ウィンドウで使えるメニュー名を表示するメニュー バーを作成できます。また、コードを記述することによって、ユーザーの選択に動的に対応したり、実行時の条件に応じて、メニュー コマンドを選択不可能な状態にしたり、メニュー コマンドの追加や削除を行ったりすることもできます。

メニュー バーを作成するには

1.	メニュー バーを作成するフォームを開きます。

2.	次のいずれかの操作を行います。

[ツール] - [メニュー エディタ] コマンド (Ctrl + E キー) を選択するか、またはツールバーの [image] ボタンをクリックします。

Form オブジェクトを選択して、マウスの右ボタンをクリックし、さらにポップアップ メニューから [メニュー エディタ] コマンドを選択します。

3.	[キャプション] ボックスに、メニュー バーに表示するメニュー項目のキャプションを入力します。

メニュー項目をキーボードから選択できるようにするには、アクセス キーに設定する文字の前にアンパサンド (&) を入力します。実行時には、この文字が下線付きで表示され、Alt キーを押しながらアクセス キーを押すと、メニューやコマンドを選択できます。

メニューに区分線を作成するには、このボックスにハイフン (-) を入力します。

4.	[名前] ボックスに、コードでメニュー項目を参照するときに使うコントロール名を入力します。この名前は、キャプションと同じでもかまいません。

5.	左向きと右向きの矢印ボタンを使い、メニュー項目のレベルを、高いレベルから低いレベルへ、あるいは低いレベルから高いレベルへと変更します。サブメニューのレベルは最大で 4 レベルまでです。

上方向と下方向の矢印ボタンを使い、メニュー項目の位置を、リストの上または下へと変更します。

次の行へ移動し、メニューに項目を追加するには、[次へ] ボタンを選択します。

現在選択している行の前に行を追加するには、[挿入] ボタンを選択します。

現在選択している行を削除するには、[削除] ボタンを選択します。

6.	3 ～ 5 の手順を繰り返してメニュー項目を追加します。

7.	[OK] ボタンを選択し、変更をすべて確定して、選択されているフォームに適用します。

作成したメニューは、デザイン時に表示されますが、コードを記述しない限り、イベントは発生しません。

カスタム メニューのオプション機能

メニュー コントロール配列内でのコントロールの位置を決定するには、[インデックス] ボックスに数値を入力します。

メニュー項目にショートカット キーを割り当てるには、[ショートカット] ボックスからキーを選択します。

コントロールに状況依存のヘルプ トピックを割り当てるには、[ヘルプ コンテキスト番号] ボックスに重複しない数値を入力します。

メニュー バーと、OLE によって組み込んだアクティブなアプリケーションのメニュー項目のネゴシエーション方法を選択するには、[ネゴシエート位置] ボックスのいずれかの値を選択します。[ネゴシエート位置] の設定は、[ファイル]、[編集]、[ヘルプ] などのメニュー タイトルに対してのみ有効です。

メニュー項目の左に小さいチェック マークを表示し、そのコントロールが選択されていることを示したり、複数のモードのうちどれが有効なのかを示したりするには、[チェック] チェック ボックスをオンにします。

メニュー項目がイベントに対応するように初期状態を設定するには、[有効] チェック ボックスをオンにします。メニュー項目を選択できないように淡色表示にするには、このボックスをオフにします。初期状態で選択不可能な項目は、後からコードによって選択可能に変更できます。

メニュー項目をメニューに表示するには、[表示] チェック ボックスをオンにします。

メニュー項目に現在開いている MDI 子フォームの名前を使うには、[ウィンドウ リスト] ボックスをオンにします。


関連項目

フォームまたはコントロールへのイベント プロシージャの記述

メニュー コントロール配列の作成

メニュー (Menu) コントロール

メニュー エディタ

アクセス キーの設定


メニュー コントロール配列の作成

関連項目

メニュー コントロール配列は、同じ名前とイベント プロシージャを共有する 1 個以上のメニュー項目によって構成されています。それぞれのメニュー項目には、固有のインデックス番号がありますが、Name プロパティの設定はすべて同じです。同じメニュー レベルに、 1 つまたは複数のメニュー項目をコントロール配列として、引き続き指定できます。これによって、実行時に動的にメニュー項目を追加または削除できます。

1 個のメニュー項目で構成されるメニュー コントロール配列を作成するには

1.	メニュー項目を作成します。

2.	[インデックス] ボックスに数値を入力します。

複数のメニュー項目で構成されるメニュー コントロール配列を作成するには

1.	フォームを選択します。

2.	次のいずれかの操作を行います。

[ツール] - [メニュー エディタ] コマンドを選択します。

ツールバーの <メニュー エディタ> ボタン [image] をクリックします。

マウスの右ボタンをクリックし、ポップアップ メニューの [メニュー エディタ] コマンドを選択します。

3.	[キャプション] ボックスに、メニュー バーに表示する最初のメニュー タイトルの文字列を入力します。

メニュー コントロール リスト ボックスに、メニュー タイトルの文字列が表示されます。

4.	[名前] ボックスに、コードでメニュー (Menu) コントロールを参照するときの名前を入力します。Index プロパティには何も設定しません。

5.	次のインデント レベルで、配列の次の要素になるメニュー項目を作成するため、Caption プロパティと Name プロパティを設定します。

6.	配列の最初の要素の Index プロパティを 0 に設定します。

7.	最初と同じインデント レベルに、2 番めのメニュー項目を作成します。

8.	2 番めの要素の Name プロパティを、最初の要素と同じに設定し、Index プロパティを 1 に設定します。

9.	残りの配列の要素について、5 ～ 8 の手順を繰り返します。

重要   メニュー コントロール配列の要素は、メニュー コントロール リスト ボックスで隣り合っていて、同じインデント レベルに設定する必要があります。メニュー コントロール配列を作成するときは、必ずメニューに表示される区分線を設定してください。

配列内のコントロールがイベントを認識すると、そのグループに対応するイベント プロシージャが呼び出されます。このとき、追加の引数としてインデックスが引き渡されるため、どのコントロールがイベントを認識したのかを判断できます。


関連項目

実行時のコントロールの追加と削除

フォームまたはコントロールへのイベント プロシージャの記述

Index プロパティ (コントロール配列)

Name プロパティ


実行時のメニュー コマンドの追加と削除

関連項目

メニュー エディタを使い、1 個以上のメニュー項目のあるコントロール配列を作成した後、Load ステートメントまたは Unload ステートメントによって、実行時に動的にメニュー項目を追加または削除できます。

実行時にコントロール配列のメニュー項目を追加または削除するには

1.	メニュー コントロール配列を作成します。

2.	コントロールまたはフォームをダブルクリックし、コード ウィンドウを開きます。

3.	コントロール配列内のメンバに対して Load ステートメントまたは Unload ステートメントを実行したいイベントまたはプロシージャに移動し、そのプロシージャ内に、実行時にメニュー項目をロードまたはアンロードするコードを記述します。

注   実行時には、デザイン時に作成したコマンドは削除できません。


関連項目

実行時のコントロールの追加と削除

Load ステートメント

メニュー エディタ

Unload ステートメント


フォームとコントロールのプロパティの設定

関連項目

プロパティは、フォームやコントロールの名前付き属性です。オブジェクトのサイズ、色、画面上の位置などの特性や、オブジェクトが選択可能かどうかなど、オブジェクトのさまざまな特性を定義します。プロパティは、デザイン時にプロパティ ウィンドウで設定するか、または実行時にコードで設定します。

デザイン時にプロパティ ウィンドウでフォームやコントロールのプロパティを設定するには

1.	フォームの空白の部分をクリックし、フォームを選択します。または、コントロールをクリックし、コントロールを選択します。

2.	次のいずれかの操作を行います。

[表示] - [プロパティ ウィンドウ] コマンド ( F4 キー) を選択します。

ツールバーの [image] ボタンをクリックします。

マウスの右ボタンをクリックし、ポップアップ メニューの [プロパティ ウィンドウ] コマンドを選択します。

3.	プロパティ ウィンドウで、プロパティ リストのプロパティ名をクリックするか、または Ctrl キーと Shift キーを押しながら選択するプロパティ名の最初の文字を入力し、プロパティを選択します。同じ文字で始まるプロパティが複数ある場合は、適切なプロパティが選択されるまで、同じキー操作を繰り返します。

設定ボックスに、プロパティの現在の設定が表示されます。

4.	設定ボックスに設定値を入力します。

文字列または数値を入力する必要のあるプロパティの場合、それらを入力します。

番号、またはブール値が設定されているプロパティの場合、設定ボックスの右にある下向きの矢印ボタンをクリックし、コンボ ボックスから項目を選択するか、または、プロパティ名をダブルクリックし、選択肢のリストを順に参照します。

プロパティによっては、下向きの矢印ボタンの代わりに、[...] ボタンが表示されます。このボタンをクリックすると、プロパティの設定を選択するダイアログ ボックスが表示されます。

5.	選択したフォームまたはコントロールに設定するそれぞれのプロパティについて、上記の 3 ～ 4 の手順を繰り返します。

注   フォーム上の複数のコントロールで共有するプロパティを設定するには、プロパティを共有するコントロールをすべて選択します。プロパティ ウィンドウでプロパティを変更すると、選択中のすべてのコントロールに対してプロパティが設定されます。

実行時にフォームやコントロールのプロパティを設定するには

次の例のように、代入ステートメントの左辺に、プロパティへの参照 (object.property) を記述します。

Text1.Text = "Your Name"


関連項目

プロパティ ウィンドウ


色の設定

関連項目

カラー パレットを使い、フォームやコントロールの前景色と背景色を設定できます。

カラー パレットを使って色を設定するには

1.	[表示] - [カラー パレット] コマンドを選択します。

パレットの左側のボックスに、現在選択されている色が表示されます。前景色は内側のボックスに、背景色は外側のボックスに表示されます。

2.	色を変更するフォームまたはコントロールを選択します。

3.	選択したオブジェクトの前景色を変更するには、内側のボックスをクリックしてから、カラー ボックスで色を選択します。選択したオブジェクトの背景色を変更するには、外側のボックスをクリックしてから、カラー ボックスで色を選択します。

プロパティ ウィンドウで色を設定するには

1.	プロパティ ウィンドウで、プロパティ リストのプロパティ名をクリックするか、または Ctrl キーと Shift キーを押しながらプロパティ名の最初の文字を入力し、設定するプロパティを選択します。

設定ボックスに現在の色の設定が表示されます。

2.	[...] ボタンをクリックするか、またはプロパティ名をダブルクリックします。

3.	選択肢の中から設定する色をクリックします。

注   通常の RGB 色を設定するには、BackColor プロパティと ForeColor プロパティを使うか、または、コードで RGB 関数か QBColor 関数を使います。

色定数を使って色を指定した場合、ユーザーがコントロール パネルで設定した配色は、新しい色に置き換わります。


関連項目

BackColor、ForeColor プロパティ

カラー パレット

ユーザー定義色の作成

プロパティ ウィンドウ

QBColor 関数

RGB 関数


ユーザー定義色の作成

関連項目

カラー パレットを使ってユーザー定義色を作成できます。

カラー パレットに色を追加するには

1.	[表示] - [カラー パレット] コマンドを選択します。

2.	[ユーザー定義色] ボタンを選択します。

カラー パレットの下に、ユーザー定義色の設定に使用できる色ボックスが 1 列表示されます。

3.	空白の色ボックスを選択します。

4.	[色の作成] ボタンを選択します。

各種の色の設定を指定するダイアログ ボックスが表示されます。

5.	大きなボックスから適切な色を選んでクリックします。

6.	大きなボックスの右側のバーをクリックして色を選択するか、またはバーの右に表示されている矢印をクリックしてドラッグし、彩度と明度を調節します。

[色|純色] ボックスに選択した色が表示されます。

7.	オプション:   精密に色を調整するには、赤、青、緑の色の要素を数値で調整します。

8.	[追加] ボタンを選択し、カラー パレットに色を追加します。

注   自分で作成したユーザー定義色は、プロパティ ウィンドウで選択できます。


関連項目

カラー パレット

色の設定


フォームまたはコントロールへのイベント プロシージャの記述

関連項目

フォームやコントロールに付加するコードを、イベント プロシージャといいます。すべてのフォームとコントロールには、それぞれが認識できる定義済みのイベントがあります。イベント プロシージャは、フォームやコントロールが対応するイベントに対してのみ記述します。

フォームまたはコントロールにイベント プロシージャを記述するには

1.	フォームの空白部分をダブルクリックし、フォームのコード ウィンドウを開きます。コントロールにコードを記述するには、コントロールをダブルクリックします。

2.	[プロシージャ] ボックスで、コードを記述するイベントを選択します。

3.	表示されたテンプレートの中に、コードと宣言の入力と編集に関するガイドラインにしたがって、コードを入力します。

4.	同じフォームまたはコントロールにさらにイベント プロシージャを記述する場合は、2 ～ 3 の手順を繰り返します。

構文

イベント プロシージャを記述するときは、次の構文を使います。

Private Sub ObjectName_EventName (arguments)
ローカル変数とローカル定数の定義
ステートメント
End Sub

注   イベント プロシージャを付加するときは、コード ウィンドウの [オブジェクト] ボックスからフォームやコントロールを選択することもできます。選択したオブジェクトの定義済みイベントに応じて、[プロシージャ] ボックスの内容が変化します。[プロシージャ] ボックスの太字の部分は、コードを記述してあるイベント プロシージャを示しています。

自動的に表示されるテンプレートを使わずに、プロシージャを新規作成することもできます。このためには、コード ウィンドウに「Private Sub ProcedureName」と入力します。

プロシージャを付加した後で、コントロールの Name プロパティを変更した場合、コントロール名に合わせてプロシージャ名も変更する必要があります。変更しないと、コントロールとプロシージャを対応づけることができなくなります。プロシージャを探すには、コード ウィンドウの [オブジェクト] ボックスから [(general)] を選択し、[プロシージャ] ボックスからプロシージャを選択します。


関連項目

コード ウィンドウ

プロシージャの作成

コードの入力と編集

コードへの宣言の入力

Option Private ステートメント

Private ステートメント

Sub ステートメント


コードへの宣言の入力

関連項目

宣言は、外部プロシージャ、定数、変数に名前を付け、それらの属性 (データ型など) を定義する実行不可能なコード ステートメントです。宣言は、フォーム モジュール、標準モジュール、クラス モジュールのいずれかに記述します。モジュール レベルの宣言を入力するには、モジュールの宣言セクションに移動します。パブリック宣言を入力するには、モジュールの宣言セクションに移動し、定数や変数に対して Public ステートメントを使います。宣言には、キーワード Dim、キーワード Static、およびキーワード Private も使われます。

プロシージャ レベルの宣言も入力できます。どのコード レベルで、どの方法によって宣言する場合でも、変数や定数の宣言には、適用範囲に関するルールが適用されます。

モジュールの宣言セクションを開くには

1.	次のいずれかの操作を行います。

プロジェクト ウィンドウで、フォーム モジュール、標準モジュール、クラス モジュールのいずれかを選択し、[コード] ボタンをクリックします。

マウスの右ボタンをクリックし、ポップアップ メニューの [コードの表示] コマンドを選択します。

2.	[オブジェクト] ボックスから [(General)] を選択します。

[プロシージャ] ボックスには、自動的に [(Declarations)] が表示されます。

3.	宣言を入力します。


関連項目

コード ウィンドウ

Declare ステートメント

Dim ステートメント

コードの入力と編集

Private ステートメント

プロジェクト ウィンドウ

Public ステートメント

Static ステートメント


プロシージャの検索

関連項目

コード ウィンドウでプロシージャを検索するには

既存のジェネラル プロシージャを表示するには、コード ウィンドウの [オブジェクト] ボックスから [(general)] を選択し、[プロシージャ] ボックスからプロシージャを選択します。

イベント プロシージャを表示するには、コード ウィンドウの [オブジェクト] ボックスから適切なオブジェクトを選択し、[プロシージャ] ボックスからイベントを選択します。

注   コード ウィンドウでプロシージャを分割して表示するには、[オプション] ダイアログ ボックスの [書式] タブの [プロシージャの区分線] チェック ボックスをオンにします。

他のモジュールのプロシージャを検索するには

1.	[表示] - [オブジェクト ブラウザ] コマンド (F2 キー) を選択します。

2.	[ライブラリ / プロジェクト一覧] ボックスからプロジェクトを選択します。

3.	[クラス / モジュール一覧] ボックスからモジュールを選択し、[メソッド / プロパティ一覧] ボックスからプロシージャを選択します。

4.	[表示] ボタンを選択します。

選択したプロシージャが、コード ウィンドウに表示されます。

ショートカット キー

キー操作	操作内容

Ctrl + ↓	次のプロシージャの表示

Ctrl + ↑	前のプロシージャの表示

PageDown	コードの次のページへ

PageUp	コードの前のページへ

F2	オブジェクト ブラウザの表示


関連項目

コード ウィンドウ

コード ウィンドウのショートカット キー

[書式] タブ ([オプション] ダイアログ ボックス)

オブジェクト ブラウザ

コード内の文字列の置換

コード内の文字列の検索


作業内容の保存

関連項目

Visual Basic では、プロジェクト全体を保存することも、フォーム モジュール、標準モジュール、クラス モジュールを個別に保存することもできます。しかし、Visual Basic のプロジェクトに関連付けられているリソース ファイルは保存できません。標準的なリソース エディタを使って保存する必要があります。

新規または既存のプロジェクトを保存するには

1.	[ファイル] - [プロジェクトの上書き保存] コマンドを選択するか、またはツールバーの [image] ボタンをクリックします。

プロジェクトを 1 度も保存していない場合は、プロジェクトに名前を付けて保存するためのダイアログ ボックスが表示されます。

2.	[ファイル名] ボックスにプロジェクト名を入力します。

ファイル名の拡張子は、特に入力しないと、自動的に .VBP となります。

3.	[OK] ボタンを選択します。

プロジェクトにまだ保存していないフォーム モジュール、標準モジュール、クラス モジュールがある場合は、それらも保存するようメッセージが表示されます。

新規のフォーム モジュール、標準モジュール、クラス モジュールを保存するには

1.	次のいずれかの操作を行います。

保存するフォームのフォーム ウィンドウをクリックします。

保存するモジュールのコード ウィンドウをクリックします。

プロジェクト ウィンドウで保存するモジュールを選択します。

2.	次のいずれかの操作を行います。

[ファイル] - [名前を付けてファイルの保存] コマンド (Ctrl + A キー) を選択します。

マウスの右ボタンをクリックし、ポップアップ メニューの [名前を付けてファイルの保存] コマンドを選択します。

3.	[ファイル名] ボックスにモジュール名を入力します。

ファイル名の拡張子は、特に入力しない限り、自動的にフォーム モジュールの場合は .FRM、標準モジュールの場合は .BAS、クラス モジュールの場合は .CLS となります。

4.	[OK] ボタンを選択します。

既存のフォーム モジュール、標準モジュール、クラス モジュールを保存するには

1.	次のいずれかの操作を行います。

保存するモジュールをクリックします。

プロジェクト ウィンドウで保存するモジュールを選択します。

2.	次のいずれかの操作を行います。

[ファイル] - [ファイルの上書き保存] コマンド (Ctrl + S キー) を選択します。

マウスの右ボタンをクリックし、ポップアップ メニューの [ファイルの上書き保存] コマンドを選択します。


関連項目

コード ウィンドウ

フォーム ウィンドウ

モジュールへのテキスト ファイルの挿入

プロジェクト ウィンドウ

[ファイルの上書き保存]、[名前を付けてファイルの保存] コマンド ([ファイル] メニュー)

[プロジェクトの上書き保存]、[名前を付けてプロジェクトの保存] コマンド ([ファイル] メニュー)


オプションの設定

関連項目

[ツール] - [オプション] コマンドを使い、プログラミング環境や特定のプロジェクトに関して、新しい初期設定や既定値を設定できます。

[オプション] ダイアログ ボックスの [環境] タブは、Visual Basic の開発環境の属性を指定するときに使います。

[オプション] ダイアログ ボックスの [プロジェクト] タブは、現在の Visual Basic のプロジェクトの設定を指定するときに使います。

[オプション] ダイアログ ボックスの [書式] タブは、Visual Basic のコードの表示形式を指定するときに使います。コードで使う文字列の種類を設定するリストや、選択した文字列の種類に対して属性を指定するボックスがあります。

[オプション] ダイアログ ボックスの [詳細設定] タブは、エラー処理およびコンパイルのオプションを指定するときに使います。


関連項目

[環境] タブ ([オプション] ダイアログ ボックス)

[書式] タブ ([オプション] ダイアログ ボックス)

[プロジェクト] タブ ([オプション] ダイアログ ボックス)

[詳細設定] タブ ([オプション] ダイアログ ボックス)


MDI 機能の使い方

関連項目

Microsoft Visual Basic はマルチ ドキュメント インターフェイス (MDI) 機能を備えているため、親フォーム (MDI フォーム) の上で複数の子フォーム (MDIChild プロパティが真 (True) に設定されているフォーム) を使用するアプリケーションを作成できます。MDI アプリケーションを作成するときは、次の点に注意してください。

MDI 子フォームをスタートアップ モジュールにすると、MDI フォームは自動的にロードされますが、MDI 子フォームは、スタートアップ モジュールに指定されるか、コードの中で参照されるか、または Load ステートメントで指定された場合しかロードされません。

MDI 子フォーム用にデザインされたメニュー バーは、デザイン時には子フォームに表示されますが、実行時には、MDI 子フォームがアクティブなときに、MDI フォームに表示されます。

MDI フォームに配置できるコントロールは、ピクチャ ボックス (PictureBox) コントロールか、Align プロパティのあるカスタム コントロールだけです。ただし、ピクチャ ボックス コントロールの中に他のコントロールを配置することはできます。通常、ピクチャ ボックス コントロールはツールバーを作成するために使います。MDI フォーム上のピクチャ ボックス コントロールの幅は、MDI フォームの ScaleWidth プロパティの値と同じですが、高さは、フォームの ScaleHeight プロパティの値を上限とする任意の値に設定できます。ピクチャ ボックス コントロールは、MDI フォームの内部領域の上端または下端に揃えられます。

MDI アプリケーションで、複数の MDI 子フォームに同じ動作をさせたいときは、子フォームを別々に作成するのではなく、1 つのフォームの複数のインスタンス、またはフォームの配列を使います。Dim ステートメントを使って、実行時に動的に MDI 子フォームのインスタンスをロードしたり、作成したりできます。フォームのインスタンスを新規作成した後で、他のフォームには影響を与えずにそのインスタンスのプロパティのみを変更することもできます。

現在アクティブなフォームのインスタンスや、現在アクティブなフォームの配列要素を、共通のイベント プロシージャを使って参照するには、キーワード Me を使います。また、MDI フォームの ActiveForm プロパティは、フォーカスのある MDI 子フォーム、または直前にアクティブだった MDI 子フォームを調べるときに使います。

実行時に、メニュー (Menu) コントロールに現在開いている子フォームの一覧を表示するには、MDI フォームまたは MDI 子フォームのメニュー エディタの [ウィンドウ リスト] チェック ボックスをオンにします。

子フォームとそのアイコンを並べ替えるには、Arrange メソッドを使います。

注   Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。


関連項目

ActiveForm プロパティ

Align プロパティ

Arrange メソッド

Dim ステートメント

Load ステートメント

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

MDIChild プロパティ

Me キーワード

メニュー エディタ

ScaleHeight、ScaleWidth プロパティ


ダイナミック データ エクスチェンジ (DDE) の使い方

関連項目

Visual Basic はダイナミック データ エクスチェンジ (DDE) 機能を備えているため、DDE をサポートしている他の Windows 上で動くアプリケーションと直接、連続的にデータを交換できます。このようなデータ交換を DDE 通信といいます。データ交換を開始するには、まず DDE リンクを設定します。これは、デザイン時でも実行時でも設定できます。デザイン時に作成したリンクは、アプリケーションを実行すると、自動的に再設定されます。しかし、デザイン時にリンクを作成する場合、相手先のアプリケーションに [コピー] コマンドと [リンク貼り付け] コマンドが必要です。また、後から Visual Basic プロジェクトを実行したときに、相手先のアプリケーションが起動されていないと、エラーが発生します。デザイン時にリンクを設定すると、データが変更されたとき、コントロールはすべてその場で自動的に更新されます。実行時に相手先のアプリケーションで更新ができないと、リンクに失敗する可能性があります。

実行時に作成したリンクの方が柔軟な処理ができますが、データ交換を行うコントロールのプロパティを設定するコードを記述する必要があります。コードでリンクを作成すると、次のような利点があります。

相手先のアプリケーションには、[コピー] コマンドと [リンク貼り付け] コマンドは必要ありません。

アプリケーションの中で相手先のアプリケーションを起動してから、通信を始めることができます。

エラーのトラップと処理ができます。

実行時に DDE リンクを作成すると、リンクしたコントロールの間でいつ実際にデータを更新するのかを、アプリケーションから選択できます。

注   Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。


関連項目

DDE ソース リンクまたはディステネーション リンクの作成

LinkClose イベント

LinkError イベント

LinkExecute イベント

LinkExecute メソッド

LinkItem プロパティ

LinkMode プロパティ

LinkNotify イベント

LinkOpen イベント

LinkPoke メソッド

LinkRequest メソッド

LinkSend メソッド

LinkTimeout プロパティ

LinkTopic プロパティ

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)


特定のステートメントの実行

関連項目

コードの実行が中断している間、プロシージャの中のステートメントの実行順序を制御できます。余分なコードを実行せずに、選択したステートメントから実行を再開できます。

次に実行するステートメントを設定するには

1.	コード ウィンドウで、ステートメント上にカーソルを置きます。

2.	[実行] - [次のステートメントの設定] コマンド (Ctrl + F9 キー) を選択します。

注   同じプロシージャ内のステートメントにしかスキップできません。

実行時は、GoTo ステートメントによって、同じプロシージャの特定の行まで分岐できます。

[次のステートメントの設定] コマンドで特定のステートメントを実行するときに、[シングル ステップ] コマンドを併用すると、プロシージャを 1 ステートメントずつ実行できるため、コードを詳しく調べられます。実行時エラーを修正したり、回避したりするのにも役立ちます。


関連項目

コード ウィンドウ

デバッグのためのチェック リスト

プロシージャの検索

GoTo ステートメント

[次のステートメントの設定] コマンド ([実行] メニュー)

[シングル ステップ]、[プロシージャ ステップ]、[カーソル行の前まで実行] コマンド ([実行] メニュー)

実行のトレース


スタートアップ モジュールの指定

関連項目

アプリケーションは、プロジェクト内の最初に作成したフォームから起動する必要はありません。どのフォームからでも、また、標準モジュールの Sub Main プロシージャから起動することもできます。

スタートアップ モジュールを指定するには

1.	[ツール] - [オプション] コマンドを選択します。

[オプション] ダイアログ ボックスが表示されます。

2.	[プロジェクト] タブを選択します。

3.	[スタートアップ フォーム] ボックスからフォームを選択します。

4.	[OK] ボタンを選択します。

フォームをロードせずに、アプリケーションを起動するプロシージャを呼び出すこともできます。

スタートアップ プロシージャを指定するには

1.	Main という名前の Sub プロシージャを記述し、標準モジュールに保存します。

2.	[ツール] - [オプション] コマンドを選択します。

[オプション] ダイアログ ボックスが表示されます。

3.	[プロジェクト] タブを選択します。

4.	[スタートアップ フォーム] ボックスから [Sub Main] を選択します。

5.	[OK] ボタンを選択します。

プロジェクトが実行を開始すると、すぐに Sub Main が呼び出されます。

注   Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。


関連項目

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

[プロジェクト] タブ ([オプション] ダイアログ ボックス)


フォームへのアイコンの割り当て

関連項目

実行時にユーザーが最小化できるフォームには、任意のアイコンを割り当てられます。アイコンを割り当てなかった場合は、\ICONS\MISC ディレクトリの FORM.ICO ファイルが使われます。

プロパティ ウィンドウでフォームにアイコンを割り当てるには

1.	フォームの空白部分をクリックし、フォームを選択します。

2.	プロパティ ウィンドウで Icon プロパティを選択します。

3.	設定ボックスの右の [...] ボタンをクリックします。

[アイコンの読み込み] ダイアログ ボックスが表示されます。

4.	使用するアイコンの名前を入力するか、または選択します。

5.	[OK] ボタンを選択します。

注   実行時にユーザーが最小化できるフォームには、任意のアイコンを割り当てられます。任意のアイコンを割り当てると、フォームやアプリケーションの機能が一目でわかります。Visual Basic のアイコン ライブラリには、アイコンが豊富に揃っています。アイコン ライブラリは、Visual Basic のメイン ディレクトリの下の \ICONS ディレクトリにあります。


関連項目

Icon プロパティ

フォームとコントロールのプロパティの設定

スタートアップ モジュールの指定


アクセス キーの設定

関連項目

アクセス キーを設定しておくと、メニュー、コマンド、コントロールをキーボードからすばやく選択できます。ショートカット キーとは異なり、アクセス キーは、押しただけではコマンドは実行されません。デザイン時に、キャプションの中でアクセス キーにする文字を指定します。実行時には、この文字は下線付きで表示され、Alt キーを押しながらその文字を押すと、メニューやコマンドを選択できます。

プロパティ ウィンドウでコントロールにアクセス キーを割り当てるには

1.	コントロールをクリックして選択します。

2.	プロパティ ウィンドウで Caption プロパティを選択します。

3.	設定ボックスにキャプションを入力します。実行時に下線付きで表示する文字の直前に、アンパサンド (&) を入力します。たとえば、「&Add」と入力すると、コントロール上に“Add”というキャプションが表示され、アクセス キーは Alt + A キーとなります。

メニュー エディタでメニューまたはコマンドにアクセス キーを割り当てるには

1.	メニュー バーでフォームをクリックします。

2.	次のいずれかの操作を行います。

[ツール] - [メニュー エディタ] コマンド (Ctrl + E キー) を選択します。

ツールバーの [image] ボタンをクリックします。

マウスの右ボタンをクリックし、ポップアップ メニューの [メニュー エディタ] コマンドを選択します。

3.	[キャプション] ボックスに、メニュー バーに表示するメニュー名を入力します。実行時に下線付きで表示する文字の直前に、アンパサンド (&) を入力します。たとえば、「Fi&le」と入力すると、コントロール上に“File”というキャプションが表示され、アクセス キーは Alt + L キーとなります。

4.	[OK] ボタンを選択します。


関連項目

メニュー バーの作成

メニュー エディタ

プロパティ ウィンドウ


タブ オーダーの設定

関連項目

特に指定しない限り、コントロールには、フォームに描かれた順にタブ オーダーが割り当てられます。新しいコントロールは、タブ オーダーの最後に追加されます。アプリケーション内でコントロールがフォーカスを得る順番を制御するには、デザイン時にプロパティ ウィンドウで、またはコードによって実行時にタブ オーダーを変更します。

デザイン時にタブ オーダーを変更するには

1.	コントロールをクリックして選択します。

2.	プロパティ ウィンドウで TabIndex プロパティを選択します。

設定ボックスに現在のタブ オーダーが表示されます。

3.	新しいタブ オーダーの数値を入力します。

デザイン時に、Tab キーを押し、タブ オーダーをテストできます。

デザイン時にタブ ストップを有効または無効にするには

1.	コントロールをクリックして選択します。

2.	プロパティ ウィンドウで TabStop プロパティを選択します。

設定ボックスに現在のブール値が表示されます。

3.	コントロールをタブ ストップとして指定するには真 (True) を、タブ オーダーでそのコントロールをスキップするには偽 (False) を選択します。

注   コントロールのタブ オーダーを変更すると、挿入や削除に応じて、他のコントロールのタブ オーダーが自動的に振り直されます。

TabStop プロパティが偽 (False) に設定されているコントロールは、Tab キーでコントロールを移動するときにはスキップされますが、TabIndex プロパティで設定されたタブ オーダーの実際の位置を保持しています。


関連項目

プロパティ ウィンドウ

TabIndex プロパティ

TabStop プロパティ


DDE ソース リンクまたはデスティネーション リンクの作成
DDE ソース リンクまたはディスティネーション リンクの作成

関連項目

Visual Basic アプリケーションと、ダイナミック データ エクスチェンジ (DDE) をサポートする他のアプリケーションの間に、データ リンクを作成できます。DDE 通信を開始するアプリケーションをディスティネーションといいます。ディスティネーションに応答するアプリケーションをソースといいます。これらのリンクを使い、他のアプリケーションとの間で情報をやりとりします。

ディスティネーション リンクを作成するには

1.	ソース アプリケーションで、リンクするデータ項目を選択します。

2.	ソース アプリケーションの [編集] - [コピー] コマンドを選択します。

3.	Visual Basic アプリケーションで、データを受信するコントロール (テキスト ボックス (TextBox) コントロール、ラベル (Label) コントロール、ピクチャ ボックス (PictureBox) コントロールのいずれか) を選択します。

4.	Visual Basic の [編集] - [形式を選択して貼り付け] コマンドを選択します。

リンクが成功すると、ソース アプリケーションで選択したデータがコントロールに表示されます。

ソース リンクを作成するには

1.	Visual Basic アプリケーションで、送信するデータのあるフォームまたはコントロールを選択します。

2.	Visual Basic の [編集] - [コピー] コマンド (Ctrl + C キー) を選択します。

3.	ディスティネーション アプリケーションで、データのディスティネーションを選択します。

4.	ディスティネーション アプリケーションの [編集] - [リンク貼り付け] コマンドを選択します。

リンクが成功すると、コントロールの内容がディスティネーション アプリケーションに表示されます。

注   [リンク貼り付け] コマンドにより、自動リンクが設定されます。自動リンクとは、ソースのデータが変更されると、ディスティネーションのデータも自動的に更新されることをいいます。自動リンクの設定されたアプリケーションを開くと、ソース アプリケーションとの DDE 通信が自動的に再設定されます。一方、手動リンクの場合は、ユーザーが DDE 通信を設定してデータを更新する必要があります。ディスティネーション コントロールのリンク方法は、LinkMode プロパティで、1 - 自動、2 - 手動、3 - 通知のいずれかに設定します。


関連項目

LinkItem プロパティ

LinkMode プロパティ

LinkRequest メソッド

LinkTimeout プロパティ

LinkTopic プロパティ


コマンド ライン スイッチ

関連項目

プログラムをコンパイルして実行するか、コンパイルして実行可能 (.EXE) ファイルまたは OLE DLL ファイル (.DLL) を作成するか、あるいは Command 関数で返されるコマンド ラインの引数部分を設定するかを決定します。

構文

vb32[.exe] [[{/run | /r} projectname ] [[{/d compileconst}] {/make | /m } projectname] [{/makedll | /l } projectname] {/cmd argument | /c argument }]

注   この構文は 32 ビット版の Microsoft Visual Basic で動作します。16 ビット版の Visual Basic でコマンド ライン引数を指定して Visual Basic を起動する場合は、vb[.exe] を使用します。

コマンド ライン スイッチの構文は、次の要素によって構成されます。

要素	内容

projectname	プロジェクト (.VBP) ファイルの名前。

/run または /r	[オプション] ダイアログ ボックスの [詳細設定] タブの [コマンド ライン引数] ボックスに設定された引数を使って、projectname をコンパイルして実行するよう指定します。

/make または /m	App オブジェクトの Path プロパティ、EXEName プロパティ、Title プロパティの現在の設定を使って、projectname をコンパイルして実行可能 (.EXE) ファイルを作成するよう指定します。

/makedll または /l	projectname をコンパイルし、インプロセス OLE サーバー ファイル (.DLL) を作成するように Visual Basic に通知します。

/d または /D	コマンドライン引数 /make を指定して実行可能ファイル (.EXE) を作成するか、またはコマンドライン引数 /makedll を指定して OLE DLL を作成する場合にどの値を条件付きコンパイル定数として使用するかを、Visual Basic に通知します。

compileconst	プロジェクト ファイルで使用される条件付きコンパイル定数の名前および値を指定します。

/cmd または /c	[オプション] ダイアログ ボックスの [詳細設定] タブの [コマンド ライン引数] ボックスに argument を記述します。このスイッチを指定する場合は、コマンド ラインの最後に指定する必要があります。

argument	プログラムで使われる文字列式。この文字列は、Command 関数によって取得できます。

これらのスイッチを使うときは、Visual Basic を実行するコマンド ラインで使う必要があります。たとえば、Windows のプログラム マネージャの [アイコンの登録内容の変更] ダイアログ ボックスで使用できます。Visual Basic を起動し、特定のプロジェクトを読み込んで実行するコマンド ラインの例を示します。

C:\vb.exe /r MYPROJ.VBP


関連項目

App オブジェクト

Command 関数

[詳細設定] タブ ([オプション] ダイアログ ボックス)


コード ウィンドウのペインへの分割

関連項目

コード ウィンドウを縦に並ぶ 2 つのペインに分割し、同じモジュールの別々の部分を同時に見ることができます。それぞれのペインは、独立して水平方向にも垂直方向にもスクロールします。[プロシージャ] ボックスと [オブジェクト] ボックスの設定は、フォーカスのあるペインを参照します。コードを変更すると、両方のペインが更新されます。

コード ウィンドウを 2 つのペインに分割するには

垂直スクロール バーの上部にある分割バーを、コード ウィンドウの右上から下方向へドラッグします。

コード ウィンドウの分割を解除するには

分割バーをダブルクリックするかまたはコード ウィンドウの一番上か一番下までドラッグします。

注   コード ウィンドウの場合と同じ方法で、デバッグ ウィンドウも 2 つのペインに分割することができます。


関連項目

コード ウィンドウ


実行の中止

関連項目

アプリケーションの実行中に、次のような理由で実行が中止されることがあります。

トラップしていない実行時エラーが発生した。

トラップしている実行時エラーが発生し、[オプション] ダイアログ ボックスの [詳細設定] タブで [エラー発生時に中断] チェック ボックスが選択されている。

あらかじめ設定したブレークポイントに到達した。

値が変化するか、または真になったときに実行を中断するために設定したウォッチ式に到達した。

コード内に Stop ステートメントがあり、モードが中断モードに切り替わった。

コード内に End ステートメントがあり、モードがデザイン時に切り替わった。

特定のポイントで手動により実行を中止した。

手動で実行を中止するには

中断モードに切り替えるには、[実行] - [中断] コマンド (Ctrl + Break キー) を選択するか、またはツールバーの [image] ボタンをクリックします。

実行を終了するには、[実行] - [終了] コマンドを選択するか、またはツールバーの [image] ボタンをクリックします。

アプリケーションの実行が中断したときに実行を再開するには

次のいずれかの操作を行います。

[実行] - [継続] コマンド (F5 キー) を選択するか、またはツールバーの [image] ボタンをクリックします。

[実行] - [再実行] コマンド (Shift + F5 キー)、[実行] - [シングル ステップ] コマンド (F8 キー)、[実行] - [カーソル行の前まで実行] コマンド (Ctrl + F8 キー)、[実行] - [プロシージャ ステップ] コマンド (Shift + F8 キー) のいずれかを選択します。


関連項目

ウォッチ式の追加

実行の継続

デバッグのためのチェック リスト

End ステートメント

実行の終了

実行の再開

実行の開始

Stop ステートメント


ウォッチ式の追加

関連項目

ウォッチ式は、デバッグ ウィンドウで監視するために定義する式です。アプリケーションが中断モードに入ると、あらかじめ選択したウォッチ式がウォッチ ペインに表示され、その式の値を調べることができます。

ウォッチ式を追加するには

1.	[ツール] - [ウォッチ式の追加] コマンドを選択します。

2.	既にコード ウィンドウで式を選択している場合は、[式] ボックスにその式が自動的に表示されます。

式が表示されない場合は、評価する式を入力します。式には、変数、プロパティ、関数呼び出し、その他有効な式が指定できます。

3.	[対象] グループ ボックス内で、モジュール名またはプロシージャ名を選択して、式を評価する範囲を設定します。

注   必要最小限の適用範囲を選択します。[(すべてのプロシージャ)] または [(すべてのモジュール)] を選択すると、ステートメントを 1 つ実行するごとに式の評価を行うため、モジュールの実行が大幅に遅くなる場合があります。対象として 1 つのプロシージャを選択すると、アクティブなプロシージャ呼び出しの一覧の中にそのプロシージャがあるときのみ、式の評価が行われます。[呼び出し履歴] ダイアログ ボックスを表示するには、デバッグ ウィンドウのプロシージャ ボックスの右にある [...] ボタンをクリックします。

4.	[ウォッチの種類] グループ ボックスのオプションを選択し、ウォッチ式に対するシステムの処理方法を定義します。ウォッチ式には次の 3 種類があります。

種類	内容

[式のウォッチ]	ウォッチ式の値が表示されます。[呼び出し履歴] ダイアログ ボックスに表示されたプロシージャの中に式の適用範囲がない場合は、現在の値は表示されません。

[式が True の時に中断]	式の評価結果が真 (True) になった場合に、実行を中断します。

[式の値が変化した時に中断]	式の値が変化した場合に、実行を中断します。

5.	[OK] ボタンを選択します。


関連項目

[ウォッチ式の追加] ダイアログ ボックス

[呼び出し履歴] ダイアログ ボックス

デバッグ ウィンドウ

デバッグのためのチェック リスト

ウォッチ式の削除

ウォッチ式の編集

ブレークポイントの設定と解除


COMPRESS.EXE によるファイルの圧縮

関連項目

COMPRESS.EXE は、ファイルを圧縮するツールです。COMPRESS.EXE は、MS-DOS 上で動くユーティリティで、Microsoft Visual Basic のディレクトリの下の \SETUPKIT ディレクトリにあります。

構文

compress [-r] source destination

compress -r source [destination]

COMPRESS.EXE の構文の指定項目は次のとおりです。

指定項目	内容

-r	圧縮ファイルのファイル名を自動的に変更します。

source	ソース ファイルを圧縮します。複数のファイルを指定したり、ワイルドカードを使うことができます。

destination	ソース ファイルの圧縮先を指定します。ディレクトリの指定も可能です。source で複数のファイルを指定し、-r オプションを指定していない場合は、destination にはディレクトリを指定する必要があります。ワイルドカード文字は使えません。


関連項目

セットアップ ファイルの圧縮


実行の継続

関連項目

次のいずれかの場合、実行中のコードは、実行が中断されます。

トラップされない実行時エラーが発生した。

[オプション] ダイアログ ボックスの [詳細設定] タブで [エラー発生時に中断] が選択されているときにトラップしている実行時エラーが発生した。

あらかじめ設定したブレークポイントに到達した。

値が変化するか、または値が真 (True) になると中断するように設定したウォッチ式に到達した。

コードの中に Stop ステートメントがあり、モードが中断モードに切り替わった。

コードの中に End ステートメントがあり、モードがデザイン時に切り替わった。

特定のポイントで手動により実行を中止した。

手動で実行を中断するには

中断モードに切り替えるには、[実行] - [中断] コマンド (Ctrl + Break キー) を選択するか、またはツールバーの [image] ボタンをクリックします。

デザイン時に切り替えるには、[実行] - [終了] コマンドを選択するか、またはツールバーの [image] ボタンをクリックします。

アプリケーションの実行が中断したときに実行を継続するには

次のいずれかの操作を行います。

[実行] - [継続] コマンド (F5 キー) を選択するか、またはツールバーの [image] ボタンをクリックします。

[実行] - [再実行] コマンド (Shift + F5 キー)、[実行] - [シングル ステップ] コマンド (F8 キー)、[実行] - [プロシージャ ステップ] コマンド (Shift + F8 キー)、[実行] - [カーソル行の前まで実行] コマンド (Ctrl + F8 キー) のいずれかを選択します。


関連項目

ウォッチ式の追加

デバッグのためのチェック リスト

End ステートメント

実行の終了

実行の再開

ブレークポイントの設定と解除

実行の開始

Stop ステートメント

実行の中止


プロシージャの作成

関連項目

モジュール内のコードは、プロシージャという単位ごとにまとめられます。プロシージャには、特定の作業の実行方法を記述します。プロシージャを使用すると、複雑なアプリケーション コードを、扱いやすい単位に分割できます。

プロシージャを作成するには

1.	プロシージャを記述するモジュールを開きます。

Sub プロシージャ、Function プロシージャ、Property プロシージャが作成できます。

2.	「Sub」、「Function」、「Property」のいずれかを入力します。構文のヘルプを参照するには、F1 キーを押します。

3.	プロシージャのコードを入力します。

プロシージャには、End Sub、End Function、End Property のいずれかのステートメントが自動的に付加されます。

[新規プロシージャ] ダイアログ ボックスを使ってプロシージャを作成するには

1.	プロシージャを記述するモジュールを開きます。

2.	[名前] ボックスにプロシージャ名を入力します。

3.	作成するプロシージャの種類を、[Sub プロシージャ]、[Function プロシージャ]、[Property プロシージャ] の中から選択します。

4.	プロシージャの適用範囲を [Public プロシージャ] か [Private プロシージャ] のいずれかに設定します。

5.	[すべてのローカル変数を Static にする] チェック ボックスを選択すると、プロシージャの定義にキーワード Static を追加できます。

6.	[OK] ボタンを選択し、コード ウィンドウにプロシージャ テンプレートを挿入します。


関連項目

ジェネラル プロシージャの作成

コードの入力と編集

Function ステートメント

[新規プロシージャ] ダイアログ ボックス

Private ステートメント

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Public ステートメント

Static ステートメント

Sub ステートメント


デバッグのためのチェック リスト

関連項目

デバッグは、コード内のエラーを発見し、解決するプロセスです。アプリケーションの実行時に発生するエラーには、次の 3 種類があります。

コンパイル エラーの場合。

コードの構造に間違いがあるときに発生するエラーです。制御構造の対応関係に誤りがあったり (Next ステートメントに対応する For ステートメントがない場合など)、プログラミングのミスがあったり (単語の入力ミス、区切り記号の欠落、型の不一致など、Basic の規則に違反している場合) した場合に発生します。

コンパイル エラーには、構文エラーが含まれます。これは文法や区切り記号の誤りで、対応するかっこがない場合や、組み込み関数の引数の数が間違っている場合などです。

実行時エラーの場合。

アプリケーションが実行を開始した後に発生するエラーです。0 による除算や存在しないファイルへの書き込みなど、誤った処理を行おうとした場合などに発生します。

論理エラーの場合。

アプリケーションが意図したとおりに動作しなかったり、誤った結果を生じたりするエラーです。

コードのデバッグを行うには

1.	コードを画面上で見るよりも紙に出力した方がわかりやすいときは、コードを印刷します。

2.	アプリケーションを実行し、問題のある場所を捜します。

エラーのため実行が中断するまでアプリケーションを実行するか、またはエラーがあると思われる箇所で、Ctrl キーを押しながら Break キーを押して手動で実行を中断します

[ツール] - [オプション] コマンドを選択します。[オプション] ダイアログ ボックスの [詳細設定] タブで [エラー トラップ] オプションを設定します。このオプションは、[エラー発生時に中断]、[クラス モジュールで中断]、[エラー処理対象外のエラーで中断] のいずれかに設定できます。構文を自動的にチェックするには、[オプション] ダイアログ ボックスの [環境] タブで [構文エラーの表示] オプションを設定します。

エラー処理ルーチンにブレークポイントを設定し、Resume Next ステートメントを使います。

3.	デバッグ ツールを使って、バグを突き止めたりコードの流れを監視します。

ブレークポイントを設定し、特定の箇所で実行を中断して、データ型の誤り、変数の競合、論理比較の誤り、無限ループ、誤った出力、配列のエラーなどの問題点がないか調べます。ブレークポイントを設定することによって、コードの流れを監視したり、現在の状態に関する情報を調べたりすることもできます。

変数名に対して状況依存のヘルプ (F1 キー) を使い、矛盾がないか調べます。

[シングル ステップ] コマンド (F8 キー)、[プロシージャ ステップ] コマンド (Shift + F8 キー)、[カーソル行の前まで実行] コマンド (Ctrl + F8 キー) のいずれかを使い、コードをトレースします。

デザイン時にウォッチ式を追加するか、または中断モードで [インスタント ウォッチ] コマンドを使い、特定の式の値を監視します。

デバッグ ウィンドウのイミディエイト ペインを使い、コードやプロシージャを 1 行ずつ調べたり、中断モード中に値を変更したりします。

ループ中にエラーが発生した場合は、ブレーク式を使って問題のある箇所を判断します。イミディエイト ペインと [次のステートメントの設定] コマンドを併用し、修正した後にループを再び実行します。

中断モードに入り、プロシージャ ボックスの右の [...] ボタンをクリックして、現在実行中のコードの箇所を確認し、実行経路をトレースします。

4.	エラーが取り除かれたことを確認し、編集を行います。

デバッグ ウィンドウのイミディエイト ペインで、新しいコードまたはデバッグしたコードを 1 行ずつテストします。

エラーがあった場合、[編集] - [置換] コマンドを選択し、他のプロシージャやモジュールに同様のエラーがないか確認します。

[実行] - [再実行] コマンドを選択し、変数を再設定して最初から実行を再開します。


関連項目

ウォッチ式の追加

[詳細設定] タブ ([オプション] ダイアログ ボックス)

[呼び出し履歴] ダイアログ ボックス

実行の継続

ウォッチ式の削除

ウォッチ式の編集

実行の終了

コードの入力と編集

[環境] タブ ([オプション] ダイアログ ボックス)

[印刷] コマンド ([ファイル] メニュー)

コード内の文字列の置換

実行の再開

Resume ステートメント

ブレークポイントの設定と解除

実行の開始

実行の中止

実行のトレース

イミディエイト ペインの使い方


ウォッチ式の削除

関連項目

ウォッチ式を削除するには

デバッグ ウィンドウのウォッチ ペインでウォッチ式を削除するには、次のいずれかの操作を行います。

式を選択し、Del キーを押します。

式を選択し、[編集] - [クリア] コマンドを選択します。

式をダブルクリックし、[削除] ボタンを選択します。

式を選択し、[ツール] - [ウォッチ式の編集] コマンドを実行し、ダイアログ ボックスから [削除] ボタンを選択します。

マウスの右ボタンで式をクリックし、ポップアップ メニューから [ウォッチ式の削除] コマンドを選択します。


関連項目

デバッグ ウィンドウ

デバッグのためのチェック リスト

[ウォッチ式の編集] ダイアログ ボックス

ブレークポイントの設定と解除


ウォッチ式の編集

関連項目

ウォッチ式を編集するには

1.	次のいずれかの操作を行います。

デバッグ ウィンドウのウォッチ ペインの式をダブルクリックします。

式を選択し、[ツール] - [ウォッチ式の編集] コマンドを選択します。

マウスの右ボタンで式をクリックし、ポップアップ メニューから [ウォッチ式の編集] コマンドを選択します。

2.	式、対象、ウォッチの種類を変更します。

3.	[OK] ボタンを選択します。


関連項目

ウォッチ式の追加

デバッグ ウィンドウ

デバッグのためのチェック リスト

ウォッチ式の削除

[ウォッチ式の編集] ダイアログ ボックス

ブレークポイントの設定と解除


実行の終了

関連項目

実行を終了するには、[実行] - [終了] コマンドを選択するか、またはツールバーの <終了> ボタン [image] をクリックします。

コード内に End ステートメントを記述し、実行を終了することもできます。

注   Microsoft Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。


関連項目

End ステートメント

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

実行の再開

実行の開始

実行の中止


コードの入力と編集

関連項目

コードはモジュールに入力し、編集します。モジュールには、自動フォーマット機能と構文チェック機能が組み込まれています。

ガイドライン

コードを入力するには、フォーム モジュール、標準モジュール、クラス モジュールのいずれかを挿入するか、またはプロジェクト ウィンドウでモジュールを選択して [コード] ボタンを選択し、入力を開始します。

入力ミスを修正するには、BackSpace キーを押します。

文字列を削除するには、削除する文字列を選択して Del キーを押します。

カーソルを移動するには、移動先をクリックするか、または方向キーを使います。

文字列をインデントするには、インデントする行を選択して Tab キーを押します。

インデントを解除するには、Shift キーを押しながら Tab キーを押します。

挿入モードと上書きモードを切り替えるには、Insert キーを押します。

コード行にコメントを追加するには、行頭にアポストロフィ (') を付けるか、または Rem ステートメントを使います。

ステートメントを確定するには、行末で Enter キーを押すか、またはカーソルを他の行に移動します。

1 行に複数のステートメントを記述するには、次の例のように、区切り記号としてコロン (:) を使います。

For I = 1 to 100: A(I) = I: Next I

1 つのステートメントを 2 行にわたって続ける場合は、最初の行の行末に行継続文字を入力します。

コードの別の箇所を同時に表示するには、垂直スクロール バーの上にある分割バーを、コード ウィンドウの右上から下の方へドラッグします。

引数を受け取るプロシージャを定義するには、プロシージャ名の後ろにかっこを付け、すべての引数を囲みます。引数が複数ある場合は、次の例のように、引数をカンマ (,) で区切ります。

Sub IncrementXY(X, Y)

引数をプロシージャに渡すには、次の例のように、呼び出すプロシージャ名の後ろに引数を記述し、引数が複数ある場合にはカンマ (,) で区切ります。

IncrementXY X, Y

プロシージャ名の後ろの引数をかっこで囲むのは、次の例のようにプロシージャ名の前にキーワード Call を使うときに限ります。

Call IncrementXY(X, Y)

キーワードに関するヘルプを参照するには、キーワードを選択して F1 キーを押します。

変数を他の変数に代入するには、destination = source という構文を使います。


関連項目

コード ウィンドウ

コード ウィンドウのショートカット キー

プロシージャの作成

データ型の概要

コードへの宣言の入力

[環境] タブ ([オプション] ダイアログ ボックス)

[書式] タブ ([オプション] ダイアログ ボックス)

Rem ステートメント


モジュールへのテキスト ファイルの挿入

関連項目

コードが記述されたテキスト ファイルを現在のモジュールに挿入し、コード内で使うことができます。

テキスト ファイルをモジュールに挿入するには

1.	テキストを挿入するモジュールを開きます。

2.	[挿入] - [テキスト ファイルの読み込み] コマンドを選択します。

[テキスト ファイルの読み込み] ダイアログ ボックスが表示されます。

3.	[テキスト ファイルの読み込み] ダイアログ ボックスで、挿入するファイルを選択します。

4.	[OK] ボタンを選択します。


関連項目

コードの入力と編集

[テキスト ファイルの読み込み] コマンド ([挿入] メニュー)

ヘルプのサンプル コードの使い方


コード内の文字列の置換

関連項目

モジュール内の文字列を置換するには

1.	[編集] - [置換] コマンドを選択します。

[置換] ダイアログ ボックスが表示されます。

2.	[検索する文字列] ボックスに検索文字列を入力します。

3.	[置換後の文字列] ボックスに置換文字列を入力します。

4.	検索範囲を指定するには、[対象] オプション ボタンを選択します。

5.	検索方向を指定するには、[検索方向] ボックスで方向を選択します。

6.	検索条件を設定するには、次のオプションを選択します。

検索文字列を、単語の一部ではなく、1 つの単語として検索したい場合には、[完全に一致する単語だけを検索] チェック ボックスをオンにします。

大文字と小文字を区別するには、[大文字と小文字を区別する] チェック ボックスをオンにします。

ワイルドカード文字を指定するには、[パターン マッチングを使用] チェック ボックスをオンにします。

7.	文字列を置換する前に、変更箇所を確認するには、[次を検索] ボタンを選択します。見つかった文字列は強調表示され、[置換] ボタンを選択すると置換され、自動的に次の文字列が検索されます。[すべて置換] ボタンを選択すると、すべての検索文字列が自動的に置換されます。


関連項目

[置換] コマンド ([編集] メニュー)

コード内の文字列の検索


実行の再開

関連項目

中断モードから実行を再開できます。再開を行うと、コードは初期化された状態に戻り、変数はすべてリセットされ、メモリの中に処理中のプロシージャがあれば、削除されます。

実行を再開するには、[実行] - [再実行] コマンドを選択します。


関連項目

実行の継続

デバッグのためのチェック リスト

実行の終了

実行の開始

実行の中止


コード内の文字列の検索

関連項目

モジュール内の文字列を検索するには

1.	[編集] - [検索] コマンドを選択します。

[検索] ダイアログ ボックスが表示されます。

2.	[検索する文字列] ボックスに検索する文字列を入力します。または、ダイアログ ボックスを表示する前に検索する文字列を選択します。

3.	検索範囲を指定するには、[対象] オプションを選択します。

4.	検索方向を指定するには、[検索方向] ボックスで方向を選択します。

5.	検索条件を設定するには、次のオプションを選択します。

検索文字列を、単語の一部ではなく、1 つの単語として検索したい場合には、[完全に一致する単語だけを検索] チェック ボックスをオンにします。

大文字と小文字を区別するには、[大文字と小文字を区別する] チェック ボックスをオンにします。

ワイルドカードまたは文字の範囲を指定するには、[パターン マッチングを使用] チェック ボックスをオンにします。

6.	[次を検索] ボタンを選択します。


関連項目

[検索] コマンド ([編集] メニュー)

コード内の文字列の置換


ブレークポイントの設定と解除

関連項目

プロシージャの特定のステートメントで実行を中断するには、ブレークポイントを設定します。実行を中断する必要がなくなった場合は、ブレークポイントを解除します。

ブレークポイントを設定するには

1.	プロシージャ内の実行を中断する行にカーソルを置きます。

2.	[実行] - [ブレークポイントの設定/解除] コマンド (F9 キー) を選択するか、またはツールバーの [image] ボタンをクリックします。

ブレークポイントが追加され、[オプション] ダイアログ ボックスの [書式] タブで定義したブレークポイントの色に設定されます。

ブレークポイントを解除するには

1.	ブレークポイントのある行にカーソルを置きます。

2.	[実行] - [ブレークポイントの設定/解除] コマンド (F9 キー) を選択します。

ブレークポイントが解除され、強調表示から通常の表示に戻ります。

アプリケーションのすべてのブレークポイントを解除するには

[実行] - [すべてのブレークポイントを解除] コマンドを選択します。

注   コードに設定したブレークポイントは、コードを保存するときには保存されません。

複数のステートメントをコロン (:) で区切った行にブレークポイントを設定した場合は、その行の最初のステートメントで実行が中断されます。


関連項目

ウォッチ式の追加

デバッグのためのチェック リスト

ウォッチ式の削除

ウォッチ式の編集

[書式] タブ ([オプション] ダイアログ ボックス)


実行の開始

関連項目

コードをテストする方法のひとつは、コードを実行し、ユーザーと同じように作業をすることです。

実行を開始するには、[実行] - [開始] コマンド (F5 キー) を選択します。

アプリケーションが実行されない場合は、次の原因が考えられます。

コードに構文エラーなどのエラーがある。

コードに論理エラーがあり、それによって実行時エラーが発生している。

ヘルプを参照するには、エラー メッセージが表示されているときに [ヘルプ] ボタンを選択するか、または F1 キーを押してください。ヘルプを参考にしてエラーを修正してから、再びコードを実行します。

注   プログラミングのときは、実行の前に作業内容を保存するようにします。[オプション] ダイアログ ボックスの [環境] タブで [実行時に確認しないで保存] を選択すると、実行の前に自動的に作業内容が保存されます。


関連項目

実行の継続

デバッグのためのチェック リスト

End ステートメント

実行の終了

[環境] タブ ([オプション] ダイアログ ボックス)

実行の再開

実行の中止


実行のトレース

関連項目

どのステートメントが最初に実行されるのかがわからない場合に、実行の流れをトレースします。コードの実行を追跡するには、次の方法を使います。

[シングル ステップ] の場合。

プロシージャ内のコードを 1 行ずつ実行します。1 ステートメントごとの変数の変化を確認できます。

[プロシージャ ステップ] の場合。

ステートメントを 1 つずつ実行しますが、そのステートメントがプロシージャ呼び出しの場合は、そのプロシージャを 1 つのステートメントのようにまとめて実行します。

[カーソル行の前まで実行] の場合。

コード内で実行を中断するステートメントを選択できます。長いループなど、コード内の任意のセクションを一度に実行できます。

現在のステートメントから実行をトレースするには

[実行] - [シングル ステップ] コマンド (F8 キー) を選択するか、またはツールバーの [image] ボタンをクリックします。

[実行] - [プロシージャ ステップ] コマンド (Shift + F8 キー) を選択するか、またはツールバーの [image] ボタンをクリックします。

[実行] - [カーソル行の前まで実行] コマンド (Ctrl + F8 キー) を選択します。

中断モードでプログラムの最初から実行をトレースするには

[実行] - [シングル ステップ] コマンド (F8 キー)、[プロシージャ ステップ] コマンド (Shift + F8 キー)、[カーソル行の前まで実行] コマンド (Ctrl + F8 キー) のいずれかを選択します。


関連項目

デバッグのためのチェック リスト

ブレークポイントの設定と解除

[シングル ステップ]、[プロシージャ ステップ]、[カーソル行の前まで実行] コマンド ([実行] メニュー)


構文チェックの設定または解除

関連項目

Microsoft Visual Basic には、次のような構文チェック機能があります。

コードを入力中に、各ステートメントに構文エラー (キーワードの入力ミスや区切り記号の欠落など) がないかチェックし、エラーがあるとメッセージを表示します。

構文が正しい場合は、コードを内部形式に変換し、実行時への移行を高速化します。

この機能は、初期状態では設定されていますが、コードの記述中にエラー メッセージが表示されないようにしたい場合は、解除できます。

構文エラーを表示/非表示するには

1.	[ツール] - [オプション] コマンドを選択します。

2.	[環境] タブを選択します。

3.	[構文エラーの表示] チェック ボックスをオン/オフにします。

4.	[OK] ボタンを選択します。


関連項目

コードの入力と編集

[環境] タブ ([オプション] ダイアログ ボックス)


ヘルプのサンプル コードの使い方

関連項目

オンライン ヘルプからサンプル コードをコピーし、現在のモジュールに貼り付け、必要に応じて編集できます。

サンプル コードをコピーして貼り付けるには

1.	必要なヘルプ トピックを捜します。

2.	トピック上部の [例] をクリックし、サンプル コードを表示します。

3.	サンプル コードが表示された 2 次ウィンドウで、[コピー] ボタンを選択します。

4.	[コピーする範囲の指定] ウィンドウでコピーするコードを選択し、[一部分コピー] ボタンを選択します。

5.	モジュールの、サンプル コードを貼り付ける位置にカーソルを置きます。

6.	[編集] - [貼り付け] コマンドを選択します。

注   ヘルプからサンプル コードをコピーした後は、変数、定数、参照箇所の修正が必要な場合があります。また、コメントの前には必ずアポストロフィ (') を追加します。特に、コメントが 2 行にわたっている場合は注意します。アポストロフィを付け忘れると、コードが正しく実行されない場合があります。


関連項目

コードの入力と編集

コード内の文字列の置換


インスタント ウォッチの使い方

関連項目

中断モード中に、ウォッチ式を定義していない変数や式の現在の値をチェックできます。これは、[インスタント ウォッチ] コマンドを使って行います。

インスタント ウォッチを表示するには

1.	モジュールの中で式を選択します。

2.	[ツール] - [インスタント ウォッチ] コマンド (Shift + F9 キー) を選択します。

[インスタント ウォッチ] ダイアログ ボックスに、選択した式の現在の値が表示されます。

または

マウスの右ボタンをクリックすると表示されるポップアップ メニューから [インスタント ウォッチ] コマンドを選択します。

3.	[インスタント ウォッチ] ダイアログ ボックスの式を基にウォッチ式を追加するには、[追加] ボタンを選択します。


関連項目

ウォッチ式の追加

デバッグのためのチェック リスト

ウォッチ式の削除

ウォッチ式の編集

[インスタント ウォッチ] ダイアログ ボックス

ブレークポイントの設定と解除


アプリケーションのバージョン管理

関連項目

複数のバージョンのアプリケーションを作成し、配付することができます。複数のバージョンのアプリケーションがある場合、各バージョンを正しく管理していないと、次のような問題が起きることがあります。

OLE サーバーのバージョン間の互換がとれなくなることがあります。

セットアップのときに、以前のバージョンのファイルをコピーしてしまうことがあります。

OLE サーバーのバージョン管理

OLE サーバーの場合、既存のプロシージャに変更を加えると、変更後のバージョンと変更前のバージョンの間で互換がとれなくなる場合があります。

たとえば、次のような変更を行うと、互換がとれなくなることがあります。

プロシージャ名。

プロシージャに渡す引数の数。

プロシージャに渡す引数のデータ型。

前のバージョンのOLE サーバーを使うように記述されたコードの場合、これらの変更を行うと、エラーが発生することがあります。

Microsoft Visual Basic では、アプリケーションのバージョンを、変更内容を比較するときの参照先として定義できます。この参照されるバージョンのアプリケーションを、互換性のある OLE サーバーといいます。互換性のある OLE サーバーと互換がとれなくなる可能性のある変更を行うと、警告メッセージが表示されます。

互換性のある OLE サーバーを指定するには

1.	[ツール] - [プロジェクトの設定] コマンドを選択します。

[オプション] ダイアログ ボックスが表示されます。

2.	[プロジェクト] タブを選択します。

3.	[互換 OLE サーバー] フィールドに、バージョン間の互換性を調べるときに基準とする .EXE ファイルの絶対パスとファイル名を入力します。

4.	[OK] ボタンを選択します。

.EXE ファイルのバージョン管理

Windows のアプリケーションには、アプリケーションのバージョンに関する情報を持つ内部リソースを組み込むことができます。セットアップ プログラムでは、このリソースの情報を使い、これからセットアップする .EXE ファイルのバージョンが、既にシステムにあるバージョンより新しいかどうかを判断できます。アプリケーションのバージョン情報は、Windows のファイル マネージャで .EXE ファイルを選択し、Alt キーを押しながら Enter キーを押すと表示されます。ダイアログ ボックスから、作成した .EXE ファイルに組み込むバージョン情報を指定することもできます。

.EXE ファイルの作成時にバージョン情報を指定するには

1.	[ファイル] - [EXE ファイルの作成] コマンドを選択します。

[EXE ファイルの作成] ダイアログ ボックスが表示されます。

2.	[オプション] ボタンを選択します。

[EXE オプション] ダイアログ ボックスが表示されます。

3.	[アプリケーション] グループ ボックス内の、[タイトル] ボックスにアプリケーションのタイトルを入力するか、または既に表示されているプロジェクト名を使います。[アイコン] ボックスに表示されているアイコンから、アプリケーションに使うアイコンを選択します。

4.	ダイアログ ボックスの [バージョン番号] グループ ボックスに、.EXE ファイルのメジャー バージョン番号、マイナ バージョン番号、リビジョン番号を入力します。

[自動インクリメント] チェック ボックスをオンにすると、プロジェクトの [EXE ファイルの作成] コマンドを実行するたびに、自動的に [リビジョン] ボックスの値が増加します。

5.	ダイアログ ボックスの [バージョン情報] グループ ボックスで、[種類] ボックスからバージョン情報の種類を選択します。

6.	[値] ボックスに、選択したバージョン情報の値を入力します。

必要に応じて手順 4 と 5 を繰り返し、すべてのバージョン情報を指定します。次の項目を指定できます。

コメント

会社名

ファイルの説明

著作権

商標

製品名

7.	[OK] ボタンを選択します。

再び [EXE ファイルの作成] ダイアログ ボックスが表示されます。

8.	[OK] ボタンを選択し、.EXE ファイルを作成します。

注   Microsoft Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。


関連項目

OLE サーバーの作成

[EXE オプション] ダイアログ ボックス

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

SETUP.LST の編集

[プロジェクト] タブ ([オプション] ダイアログ ボックス)

インストール先ディレクトリの指定


グラフィカル オブジェクト

関連項目

グラフィカル コントロール (イメージ (Image)、ラベル (Label)、ライン (Line)、シェイプ (Shape)) を使うと、他のコントロールよりシステム リソースの消費が少なく、アプリケーションのパフォーマンスを高めることができます。

解説

グラフィカル コントロールは、フォーカスを得たり、他のコントロールのコンテナとなったりすることはできず、また hWnd プロパティはありません。通常グラフィカル コントロールは、他のコントロールに比べ、プロパティ、認識するイベント、メソッドが少なくなっています。たとえば、イメージ コントロールはピクチャを表示できますが、ピクチャ ボックス コントロールのように、グラフィックス メソッド (Print メソッド、Line メソッド、Circle メソッドなど) の対象オブジェクトとして使うことはできません。

グラフィカル オブジェクトは透明に設定できます。たとえば、label.Backstyle = 0 または shape.BackStyle = 0 と設定すると、これらのコントロールの下にあるオブジェクトが表示されます。ただし、イメージ コントロールに BackStyle プロパティはありません。実行時に Line メソッドや Circle メソッドを使う代わりに、デザイン時にライン コントロールやシェイプ コントロールを使って線や図形を描くことができます。


関連項目

Circle メソッド

hWnd プロパティ

イメージ (Image) コントロール

ラベル (Label) コントロール

ライン (Line) コントロール

Line メソッド

Print メソッド

シェイプ (Shape) コントロール


リソース ファイルの使い方

関連項目

Microsoft Visual Basic のコードを記述するときは、リテラル文字列、ピクチャ、データの代わりにリソース ファイルを使うことができます。リソース ファイルのリソースを使うには、LoadResString メソッド、LoadResPicture メソッド、LoadResData メソッドを使います。これらの要素をリソース ファイルに格納すると、次の 2 つの利点があります。

文字列、ビットマップ、アイコン、データを、フォームやモジュールをロードするときに一度に全部ロードせず、要求に応じてリソース ファイルからロードできるため、パフォーマンスが向上し、空きメモリが増えます。

国際対応アプリケーションを開発する場合、翻訳の必要があるリソースを 1 個のリソース ファイルにまとめられます。また、ソース コードを修正し、アプリケーションをコンパイルし直す必要がありません。

プロジェクトで使用できるリソース ファイルは 1 つだけです。複数のリソース ファイルを追加しようとすると、エラー メッセージが表示されます。

リソース ファイルを作成するには

1.	アプリケーションのすべての文字列リソースを格納したリソース ソース ファイル (*.RC) を作成します。

リソース ソース ファイルの作成方法の説明は、Windows Software Development Kit と Microsoft Developer Network CD にあります。それぞれのリソースに識別子 (ID) を付け、コードの中ではその ID を参照します。

2.	リソース コンパイラを使い、リソース ソース ファイルをリソース ファイル (*.RES) に変換します。ソース ファイルを変換するには、Microsoft Visual C++ に付属しているリソース コンパイラを使います。

注   Visual Basic では、ID が 1 のリソースは、アプリケーション アイコン用に予約されています。

したがって、.RES ファイルのリソースには、ID 番号 0 を付けることはできません。コードの中で 0 番のリソース ID をロードしようとすると、エラー メッセージが表示されます。

プロジェクトにリソース ファイルを追加するには

1.	[ファイル] - [ファイルの追加] コマンドを選択します。

2.	[ファイルの追加] ダイアログ ボックスで、[ファイルの種類] ボックスから [リソース ファイル (*.RES)] を選択します。

3.	プロジェクトに追加するリソース ファイルを選択し、[OK] ボタンを選択して [ファイルの追加] ダイアログ ボックスを閉じます。

リソース ファイルは .RES という拡張子によって認識されます。リソース ファイルに適切な拡張子が付いていないと、ロードできません。逆に、.RES という拡張子が付いているファイルは、プロジェクトに追加するときに、リソース ファイルと解釈されます。そのファイルがリソース ファイルの標準フォーマットに従っていないと、最初にリソース ファイルのサポート機能 (LoadResString メソッド、LoadResPicture メソッド、LoadResData メソッド) を使おうとしたときか、または .EXE ファイルを作成しようとしたときに、エラー メッセージが表示されます。16 ビットのリソース ファイルを 32 ビットのプロジェクトに追加しようとしたり、32 ビットのリソース ファイルを 16 ビットのプロジェクトに追加しようとしたときにも、同じエラー メッセージが表示されます。

リソース ファイルをプロジェクトに追加して、プロジェクト ウィンドウでそのファイルを選択すると、[フォーム] ボタンと [コード] ボタンは選択不可能になります。これは、そのファイルが、Microsoft Visual C++ やその他の Windows 用開発ツールによって作成、使用されているものと同様、標準リソースと見なされ、Visual Basic で編集できないためです。

[ファイル] - [EXE ファイルの作成] コマンドを選択すると、リソース ファイルのリソースはすべて .EXE ファイルにコンパイルされます。.RES ファイルは、.EXE ファイルをコンパイルする前も後も、Windows の標準リソース ファイルです。つまり、Windows 用の標準的なリソース エディタであれば、ファイルに格納されているリソースをロードできます。

リソース ファイルのロック

Visual Basic では、.RES ファイルをロックし、複数のアプリケーションで同時にファイルを使おうとしたときに、問題が発生するのを防ぐことができます。次の場合には、.RES ファイルは自動的にロックされます。

Visual Basic が実行時または中断モードにあるとき。

.EXE ファイルを作成するとき。.EXE ファイルの作成中は、.RES ファイルはロックされます。


関連項目

LoadResData メソッド

LoadResPicture メソッド

LoadResString メソッド


コントロール配列

関連項目

コントロール配列は、同じ Name プロパティ、種類、イベント プロシージャを共有するコントロールの集まりです。コントロール配列には少なくとも 1 個の要素があり、システム リソースとメモリの上限まで増やすことができます。サイズは、それぞれのコントロールが必要とするメモリと Windows リソースの容量によって決まります。コントロール配列で使用できるインデックスの上限は、32 ビット Windows プラットフォームで 32,767、16 ビット Windows プラットフォームで 16,000 です。

同じコントロール配列の要素には、固有のプロパティを設定します。コントロール配列は、メニュー (Menu) コントロール、オプション ボタン (OptionButton) コントロールの集まりなどによく使われます。

コントロール配列は、複数のコントロールでコードを共有するのに便利です。たとえば、3 つのオプション ボタン コントロールをコントロール配列として作成すると、どのボタンが Click イベントを受け取ったときにも、同じコードが実行されます。

実行時にコントロールを新規作成する場合は、そのコントロールは既存のコントロール配列のメンバである必要があります。コントロール配列では、新規作成したコントロールは、コントロール配列の共通のイベント プロシージャを継承します。

コントロール配列を使わない場合は、新しいコントロールには、イベント プロシージャが定義されないため、実行時にコントロールを新規作成できません。しかし、コントロール配列を使うと、新しいコントロールは、コントロール配列に関して記述された共通のイベント プロシージャを継承できます。たとえば、フォームに日付の値を受け取るテキスト ボックス (TextBox) コントロールが複数ある場合、コントロール配列を設定すると、すべてのテキスト ボックス コントロールで同じ入力検査のためのコードを共有できます。


関連項目

実行時のコントロールの追加と削除

コントロール配列の作成

メニュー バーの作成

メニュー コントロール配列の作成

Index プロパティ (コントロール配列)

Name プロパティ


コントロール配列の作成

関連項目

コントロール配列は、同じ種類のコントロールの集まり (すべてのリスト ボックスなど) によって構成されています。配列の各コントロールには、固有のインデックス番号があります。コントロール配列では、すべての項目の Name プロパティが同じ設定である必要があります。

注   コントロール自体を削除せずに、コントロール配列からコントロールを削除するには、コントロールの Name プロパティを変更し、Index プロパティを削除します。また、そのコントロールを別のコントロール配列の要素にする場合は、Index プロパティを再設定します。

配列内のコントロールがイベントを認識すると、そのグループのイベント プロシージャが呼び出され、追加引数としてインデックスが引き渡されるため、どのコントロールがイベントを認識したのかを判断できます。

コントロール配列のイベント プロシージャは、引数 "(Index as Integer)" によって定義されます。

名前の変更によってコントロール配列の要素を追加するには

1.	コントロール配列に追加するコントロールを配置します。コントロールはすべて同じ種類である必要があります。配列の最初の要素にするコントロールを決定します。

2.	いずれかのコントロールを選択し、Name プロパティの設定を、配列の最初の要素の Name プロパティと同じ設定にします。

3.	配列のコントロールに、既存の Name プロパティと同じ値を入力すると、コントロール配列を作成するかどうかを確認するダイアログ ボックスが表示されます。[はい] ボタンを選択すると、コントロール配列が作成されます。

この方法で追加されたコントロールは、Name プロパティとコントロールの種類のみを共有しています。他のプロパティは、最初にコントロールを配置したときのままです。

既存のコントロールのコピーによってコントロール配列の要素を追加するには

1.	コントロール配列のコントロールを配置します。

2.	コントロールがフォーカスを得ているときに、[編集] - [コピー] コマンドを選択します。

3.	[編集] - [貼り付け] コマンドを選択します。コントロール配列を作成するかどうかを確認するダイアログ ボックスが表示されます。[はい] ボタンを選択すると、コントロール配列が作成されます。

このコントロールには、インデックス番号 1 が割り当てられます。最初に配置したコントロールのインデックス番号は 0 です。

コントロール配列の新しい要素のインデックス番号は、その要素がコントロール配列に追加された順番に従って付けられます。この方法でコントロールを追加すると、Height プロパティ、Width プロパティ、色に関するプロパティなどのビジュアル プロパティのほとんどは、コントロール配列の最初のコントロールから、新しいコントロールにコピーされます。このため、最初のコントロールで、Height プロパティ、Width プロパティ、色に関するプロパティ、フォント プロパティなど、すべてのプロパティを設定してから、コピーして他の配列要素に貼り付けることをお勧めします。


関連項目

実行時のコントロールの追加と削除

コントロール配列

Index プロパティ (コントロール配列)

Name プロパティ


実行時のコントロールの追加と削除

関連項目

コントロール配列のコントロールを実行時に追加、削除するには、Load ステートメントと Unload ステートメントを使います。追加するコントロールは、既存のコントロール配列の要素である必要があります。デザイン時にコントロールを 1 つ作成し、Index プロパティを通常は 0 などに設定しておく必要があります。

コントロール配列の新しい要素をロードすると、配列内の既存の要素のうち最も低いレベルの要素から、プロパティの設定のほとんどがコピーされます。Visible プロパティ、Index プロパティ、TabIndex プロパティの設定は、コントロール配列の新しい要素に自動的にコピーされないため、新たに追加したコントロールを表示するには、Visible プロパティを真 (True) に設定する必要があります。

注   コントロール配列で既に使われているインデックス番号を使い、Load ステートメントを実行すると、エラーが発生します。

Load ステートメントで作成したコントロールを削除するには、Unload ステートメントを使います。ただし、コントロール配列の要素であるかどうかにかかわらず、デザイン時に作成したコントロールを、Unload ステートメントによって削除することはできません。


関連項目

コントロール配列

コントロール配列の作成

Index プロパティ (コントロール配列)

Load ステートメント

Unload ステートメント


実行時のコントロールの追加と削除の例

次の例は、実行時にコントロールを追加、削除する方法を示します。この例を実際に使うには、1 個のオプション ボタン (OptionButton) コントロール、2 個のコマンド ボタン (CommandButton) コントロール、大きなピクチャ ボックス (PictureBox) コントロールを含むフォームの宣言セクションにコードを貼り付けます。

オプション ボタン コントロールの Index プロパティを 0 に設定してコントロール配列を作成します。一方のコマンド ボタン コントロールの Caption プロパティを "追加" に、もう一方を "削除" に設定します。次に F5 キーを押します。オプション ボタン コントロールをクリックするたびに、ピクチャ ボックス コントロールの BackColor プロパティの設定が変わります。コマンド ボタン コントロールをクリックすると、どちらを選択するかによって、オプション ボタン コントロールが追加または削除されます。

Dim MaxId	' 変数の宣言。

Sub Option1_Click (Index As Integer)

Picture1.BackColor = QBColor(Index + 1)

End Sub

Sub Command1_Click ()

If MaxId >= 9 Then Exit Sub	' ボタンは 10 個までです。

MaxId = MaxId + 1	' ボタンの個数を 1 つだけ増加させます。

Load Option1(MaxId)	' ボタンの新規作成。

Option1(0).SetFocus	' ボタン選択のリセット。

' 前のボタンの下に新しいボタンを設定。

Option1(MaxId).Top = Option1(MaxId - 1).Top + 360

Option1(MaxId).Visible = True	' 新しいボタンを表示します。

End Sub

Sub Command2_Click ()

If MaxId = 0 Then Exit Sub	' 最初のボタンを保存します。

Unload Option1(MaxId)	' 最後のボタンを削除します。

MaxId = MaxId - 1	' ボタンの個数を 1 つだけ少なくします。

Option1(0).SetFocus	' ボタン選択をリセットします。

End Sub


16 ビット プラットフォームと 32 ビット プラットフォームの OLE コントロールの互換性

次の表は、16 ビットのインプロセス オブジェクトを、各種プラットフォームで動作する 16 ビット版および 32 ビット版の Microsoft Visual Basic にロードできるかどうかを示します。インプロセス オブジェクトは、コンテナの処理領域で動作します。クロスプロセス オブジェクトは、マーシャリングが可能です。これによって、リモートのプロシージャ呼び出しによって、インターフェイスへのポインタを渡すことができ、他の処理の OLE クライアント アプリケーションから、境界を超えてオブジェクトにアクセスし、オブジェクトを操作できます。

Visual Basic/プラットフォーム	16 ビット インプロセス コントロール	16 ビット インプロセス埋め込みオブジェクト	16 ビット インプロセス OLE オートメーション オブジェクト
16 ビット Visual Basic と Windows Version 3.1	ロードできます。	ロードできます。	ロードできます。
16 ビット Visual Basic と Windows NT	ロードできます。	ロードできます。	ロードできます。
16 ビット Visual Basic と Windows 95	ロードできます。	ロードできます。	ロードできます。
32 ビット Visual Basic と Windows NT	ロードできません。	ロードできません。	ロードできません。
32 ビット Visual Basic と Windows 95	ロードできません。	ロードできません。	ロードできません。
次の表は、32 ビットのインプロセス オブジェクトを、各種プラットフォームで動作する 16 ビット版と 32 ビット版の Visual Basic にロードできるかどうかを示します。

Visual Basic/プラットフォーム	32 ビット インプロセス コントロール	32 ビット インプロセス埋め込みオブジェクト	32 ビット インプロセス OLE オートメーション オブジェクト
16 ビット Visual Basic と Windows Version 3.1	ロードできません。	ロードできません。	ロードできません。
16 ビット Visual Basic と Windows NT	ロードできません。	ロードできません。*	ロードできません。
16 ビット Visual Basic と Windows 95	ロードできません。	ロードできません。*	ロードできません。
32 ビット Visual Basic と Windows NT	ロードできます。	ロードできます。	ロードできます。
32 ビット Visual Basic と Windows 95	ロードできます。	ロードできます。	ロードできます。
次の表は、16 ビットのクロスプロセス オブジェクトを、各種プラットフォームで動作する 16 ビット版と 32 ビット版の Visual Basic にロードできるかどうかを示します。

Visual Basic/プラットフォーム	16 ビット クロスプロセス コントロール	16 ビット クロスプロセス埋め込みオブジェクト	16 ビット クロスプロセス OLE オートメーション オブジェクト
16 ビット Visual Basic と Windows Version 3.1	ロードできません。	ロードできます。	ロードできます。
16 ビット Visual Basic と Windows NT	ロードできません。	ロードできます。	ロードできます。
16 ビット Visual Basic と Windows 95	ロードできません。	ロードできます。	ロードできます。
32 ビット Visual Basic と Windows NT	ロードできません。	ロードできます。	ロードできます。
32 ビット Visual Basic と Windows 95	ロードできません。	ロードできます。	ロードできます。
次の表は、32 ビット クロスプロセス オブジェクトを、各種プラットフォームで動作する 16 ビット版または 32 ビット版の Visual Basic にロードできるかどうかを示します。Win32S 用に記述され、Win32S で実行できる 32 ビット クロスプロセス オブジェクトは、すべて Windows Version 3.1 で使用できます。この場合、16 ビット版の Visual Basic と Windows Version 3.1 ではなく、16 ビット版の Visual Basic と Windows NT に 32 ビット クロスプロセス オブジェクトをロードする方法を参照してください。

Visual Basic/プラットフォーム	32 ビット クロスプロセス コントロール	32 ビット クロスプロセス埋め込みオブジェクト	32 ビット クロスプロセス OLE オートメーション オブジェクト
16 ビット Visual Basic と Windows Version 3.1	ロードできません。	ロードできません。	ロードできません。
16 ビット Visual Basic と Windows NT	ロードできません。	ロードできます。*	ロードできます。
16 ビット Visual Basic と Windows 95	ロードできません。	ロードできます。*	ロードできます。
32 ビット Visual Basic と Windows NT	ロードできません。	ロードできます。	ロードできます。
32 ビット Visual Basic と Windows 95	ロードできません。	ロードできます。	ロードできます。
*	これらのオブジェクトは、この表に示されているとおり使用できますが、[参照] ボタンを使って [カスタム コントロール] ダイアログ ボックスに追加することはできません。


Screen オブジェクトのプロパティへのアクセス

関連項目

Screen オブジェクトのプロパティは、アプリケーションの画面上のサイズを、ユーザーの画面の解像度に合わせるために使います。Screen オブジェクトには、フォームやコントロールと同じように、定義済みのプロパティがあります。しかし、フォームのプロパティやコントロールのプロパティとは異なり、Screen オブジェクトのプロパティは、実行時のみ使うことができ、プロパティ ウィンドウでは設定できません。Screen オブジェクトのプロパティは、実行時にコードでのみ取得および設定できます。Screen オブジェクトのプロパティは、現在のプロジェクト全体から参照できます。

コードで Screen オブジェクトのプロパティを取得または設定するには

Screen.propertyname という構文を使います。

例

Screen.Width


関連項目

App オブジェクト

Clipboard オブジェクト

Debug オブジェクト

Form オブジェクト、Forms コレクション

Printer オブジェクト、Printers コレクション

Screen オブジェクト


Windows API 関数の呼び出し

関連項目

Microsoft Visual Basic Professional Edition では、Visual Basic のディレクトリの下の \WINAPI ディレクトリのファイルに、Microsoft Windows API (Application Programming Interface) に関する情報があります。

WIN31API.TXT ファイルには、16 ビット Windows API の関数の宣言、Type 宣言、関数で使うパブリック定数の値の説明があります。WIN31WH.HLP ファイルは、各関数を C 言語との関連で説明しています。このファイルは、16 ビット版の Visual Basic だけに含まれています。

WIN32API.TXT ファイルには、32 ビット Windows API の関数の宣言、Type 宣言、関数で使うパブリック定数の値の説明があります。

WINMMSYS.TXT ファイルには、Windows 3.1 multimedia API 関数の宣言とパブリック記号定数の説明があります。

API ビューワーは、WIN31API.TXT、WIN32API.TXT、WINMMSYS.TXT を表示するツールです。このビューワーを使って API 関数をコピーし、Visual Basic のコードに貼り付けることができます。

注   API ビューワーをセットアップするには、Visual Basic をセットアップするときに [Windows API リファレンス] オプションを選択します。

API ビューワーを使うには

1.	[Visual Basic] プログラム グループの [API ビューワー] アイコンをダブルクリックし、API ビューワーを開きます。

2.	[ファイル] - [テキスト ファイルの読み込み] コマンドを選択します。

3.	Visual Basic のディレクトリの下の \WINAPI ディレクトリにある WIN31API.TXT (16 ビット版の Windows の宣言、型、定数) または WIN32API.TXT (32 ビット版の Windows の宣言、型、定数) を開きます。

4.	[API の型] ボックスで、[Declare 宣言]、[定数]、[型宣言] のいずれかを選択し、[有効な項目] ボックスに項目を表示します。

5.	[有効な項目] ボックスからプロジェクトに追加する項目を選択し、[追加] ボタンを選択します。[選択された項目] ボックスに項目が追加されます。関数に、Visual Basic 内で Type 宣言または定数宣言 STRUCT (構造体) が必要かどうかを確認します。

6.	コードにコピーする項目をすべて選択したら、[コピー] ボタンを選択し、[選択された項目] ボックスの項目をすべてクリップボードにコピーします。

7.	Visual Basic のプロジェクトを開き、宣言、定数、型を貼り付ける場所 (モジュールの宣言セクション) にカーソルを置き、[編集] - [貼り付け] コマンドを選択します。

重要   正しいデータ型の引数を渡すように注意する必要があります。データ型が誤っていると、実行時に一般保護違反が発生するおそれがあります。

ライブラリ名やデータ型には、16 ビット Windows API 関数と 32 ビット Windows API 関数とで異なるものがあるため、16 ビット版の Windows と 32 ビット版の Windows の両方のプラットフォームで使われるアプリケーションを開発する場合は、条件付きコンパイルを使う必要があります。たとえば、GetClassName API 関数を使うには、次のようなコードを使います。

# If Win32 Then	' 32 ビット版の Visual Basic では、次の宣言を使用します。

Declare Function OSGetClassName Lib "User32" Alias _

"GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, _

ByVal nMaxCount As Long) As Long

# Else	' 16 ビット版の Visual Basic では、次の宣言を使用します。

Declare Function OSGetClassName Lib "User" Alias "GetClassName" _

(ByVal hWnd As Integer, ByVal lpClassName As String, ByVal _

nMaxCount As Integer) As Integer

# End If

このコードを 32 ビット版の Visual Basic でコンパイルすると、条件付きコンパイル定数 Win32 の値は真 (True) となり、32 ビット用の宣言を使用してコンパイルされます。しかし、同じコードを 16 ビット版の Visual Basic でコンパイルすると、条件付きコンパイル定数 Win32 は偽 (False) となるため、16 ビット用の宣言を使用してコンパイルされます。

条件付きコンパイル定数には、Win32 のほかに Win16 があります。定数 Win32 が真 (True) のときは定数 Win16 が偽 (False) となり、定数 Win32 が偽 (False) のとき定数 Win16 は真 (True) となります。


関連項目

Call ステートメント

Declare ステートメント

[詳細設定] タブ ([オプション] ダイアログ ボックス)


OLE サーバーの作成

関連項目

OLE サーバーを使うと、標準的な Microsoft Visual Basic の構文を使って、他のアプリケーションから操作可能なクラスを定義できます。

OLE サーバーで定義したクラスには、独自のプロパティとメソッドを作成できます。

どのような機能を含むかによって、クラスは、定義したアプリケーションのみで使用できるようにすることも、他のアプリケーションによって使用できるようにすることもできます。

OLE サーバーを作成するには

1.	定義する必要のあるオブジェクトと、それらの相互関係を決定します。各クラスに必要なプロパティとメソッドも決定します。

2.	OLE サーバーのそれぞれのクラスを定義します。

3.	[オプション] ダイアログ ボックスの [プロジェクト] タブで、OLE サーバーの [プロジェクト名] オプション、[実行開始モード] オプション、[アプリケーションの説明] オプションを設定します。

4.	OLE サーバーの初期化の準備をします。OLE サーバーが、フォームを表示しないでコードのみでオブジェクトへアクセスする場合、[オプション] ダイアログ ボックスの [プロジェクト] タブの [スタートアップ フォーム] オプションを [Sub Main] に設定します。OLE サーバーの初期化コードは、標準モジュールの Sub Main プロシージャに記述します。


関連項目

OLE サーバーのクラスの定義

アプリケーションのバージョン管理

[プロジェクト] タブ ([オプション] ダイアログ ボックス)


OLE サーバーのクラスの定義

関連項目

OLE サーバーのクラスと、それらのプロパティとメソッドを定義するには、ClassModule オブジェクトを使います。

ClassModule オブジェクトは 1 つのクラスを定義するため、定義するクラスごとに ClassModule オブジェクトを作成する必要があります。各 ClassModule オブジェクトに記述するコードによって、そのクラスのプロパティとメソッドを定義します。

OLE サーバーのクラスを定義するには

1.	OLE サーバーの作成に使うプロジェクトを開きます。

2.	[挿入] - [クラス モジュール] コマンドを選択します。

プロジェクトに ClassModule オブジェクトが挿入され、ClassModule オブジェクトのコード ウィンドウが表示されます。

3.	プロジェクトの外部でこのクラスを使用できるようにするには、ClassModule オブジェクトの Public プロパティを真 (True) に設定します。

特に設定しない場合は、このプロパティは偽 (False) になり、ClassModule オブジェクトを含むプロジェクトでしかクラスを使用できません。

4.	パブリックの ClassModule オブジェクトでのクラスのインスタンスの作成方法を決定するには、プロパティ ウィンドウで ClassModule オブジェクトの Instancing プロパティを設定します。この Instancing プロパティの既定値は 0 で、外部アプリケーションではそのクラスのインスタンスを作成できないことを表します。

注   ClassModule で定義されたクラスは、Instancing プロパティの設定値に関係なく、同じプロジェクト内では常に作成できます。Public プロパティが偽 (False) に設定されていると、Instancing プロパティは無視されます。

5.	プロパティ ウィンドウで、ClassModule オブジェクトの Name プロパティを設定します。Name プロパティの値によって、OLE オートメーション コントローラによるクラスの識別方法が決まります。

6.	ClassModule オブジェクトで、必要に応じて、クラスのプロパティとメソッドを定義するためのコードを記述します。クラスのプロパティを作成するには、ClassModule オブジェクトでパブリック変数を宣言します。たとえば、次の例では、intBankBalance がクラスのプロパティになります。

Dim intBankBalance As Integer

パブリック変数を使うと、単純なプロパティであれば簡単に実装することができます。ただし、パブリック変数にヘルプ トピックを代入することはできません。

Property プロシージャを使ってプロパティを定義する方法もあります。このプロシージャは、プロパティが読み取られたり書き込まれたりしたときにコードを実行するだけでなく、値を返したり、代入したり、オブジェクトへの参照を設定したりします。Property プロシージャを使って定義されたプロパティには、ヘルプ トピックも代入することができます。

次に、クラスのメソッドを定義するには、Sub プロシージャまたは Function プロシージャを、キーワード Public と共に使います。たとえば、クラスに PrintExceptions メソッドを作成するには、そのクラス モジュールに、次のようなパブリック Sub プロシージャを追加します。

Public Sub PrintExceptions (FirstArgument, SecondArgument)

' ここにステートメントを記述します。

End Sub

7.	必要に応じて、オブジェクト ブラウザから [メンバ設定] ダイアログ ボックスを表示し、作成したクラス、メソッド、Property プロシージャの [説明] と [ヘルプ コンテキスト番号] を設定します。


関連項目

ClassModule オブジェクト

Instancing プロパティ

OLE サーバーの作成

[メンバ設定] ダイアログ ボックス

Name プロパティ

Property Get ステートメント

Property Let ステートメント

Property Set ステートメント

Public プロパティ

メンバ オプションの設定


メンバ オプションの設定

関連項目

OLE サーバーを作成すると、そのアプリケーションのユーザーは、オブジェクト ブラウザを使って、アプリケーションのパブリック メンバ (クラス、プロパティ、メソッド) に関する情報を取得できます。オブジェクト ブラウザを使って OLE サーバーを参照すると、公開されているクラス、プロパティ、メソッドが自動的に表示されます。OLE サーバーのメンバにプロパティを追加設定することにより、次のようなことができます。

Description プロパティによって、オブジェクト ブラウザにアプリケーションのメンバに関する説明を表示できます。

HelpContextID プロパティによって、オブジェクト ブラウザからアプリケーションのメンバに関する状況依存のヘルプをサポートできます。

注   この 2 つのプロパティは、パブリック メソッド、Property プロシージャ、クラスのみに設定できます。これらのプロパティは、単にデータ メンバとして定義されたプロパティには設定できません。

OLE サーバーのメンバ オプションを設定するには

1.	OLE サーバーのプロジェクトを開き、オブジェクト ブラウザを表示します。

2.	[ライブラリ / プロジェクト一覧] ボックスでプロジェクトを選択します。

3.	プロジェクトでクラス、プロパティ、メソッドのいずれかを選択します。

4.	[オプション] ボタンを選択します。

[メンバ設定] ダイアログ ボックスが表示されます。

5.	[説明] ボックスに説明文を入力します。この文字列は、そのメンバを選択したときにオブジェクト ブラウザに表示されます。

6.	HelpContextID プロパティの数値を入力します。表示されるヘルプ ファイルは、[オプション] ダイアログ ボックスの [プロジェクト] タブで指定したファイルです。


関連項目

OLE サーバーの作成

OLE サーバーのクラスの定義

[メンバ設定] ダイアログ ボックス

[プロジェクト] タブ ([オプション] ダイアログ ボックス)


カスタム コントロールの使い方

関連項目

カスタム コントロールは、.VBX または .OCX のファイル名拡張子が付いた別ファイルに格納されています。これには、コモン ダイアログ (CommonDialog) コントロールやサードパーティから提供されているコントロールなどの特殊コントロールの他、DB リスト (DBList) コントロールや DB コンボ (DBCombo) コントロールなど、標準コントロール機能が強化されたものが含まれます。

拡張子 .OCX の付いたカスタム コントロールは、OLE の技術を利用しています。拡張子 .VBX の付いたカスタム コントロールは、それ以前の技術を利用したもので、以前のバージョンの Microsoft Visual Basic で開発されたアプリケーションで使われています。

注   16 ビット版の Visual Basic では、引き続き .VBX カスタム コントロールを使えます。32 ビット版の Visual Basic では、これらのコントロールは使えません。

.OCX コントロールは、16 ビット版と 32 ビット版のどちらの Visual Basic でも使えます。ただし、16 ビット版の Visual Basic では 16 ビットの .OCX コントロールを、32 ビット版の Visual Basic では 32 ビットの .OCX コントロールを使う必要があります。

特に指定しない限り、.VBX コントロールを使ったプロジェクトを開くと、.VBX コントロールは .OCX コントロールに置き換えられますが、これは .OCX コントロールを使用できる場合だけです。

プロジェクトの中のカスタム コントロールの一覧を表示するには

[ツール] - [カスタム コントロール] コマンドを選択します。[利用可能なコントロール] ボックスにチェックマークがある場合は、プロジェクトに .VBX コントロール、.OCX コントロール、挿入可能なオブジェクトが含まれていることを示します。

カスタム コントロールを追加するには

1.	[ツール] - [カスタム コントロール] コマンドを選択します。

2.	[表示] の下の [挿入可能なオブジェクト] オプションと [コントロール] オプションを選択します。

3.	追加する .OCX コントロール、.VBX コントロール、挿入可能なオブジェクトの名前の隣のチェック ボックスをオンにし、[OK] ボタンを選択します。カスタム コントロールをツールボックスに配置すると、標準コントロールと同じようにフォームに追加できます。

使いたい .OCX コントロール、.VBX コントロール、挿入可能なオブジェクトが [利用可能なコントロール] ボックスの一覧にない場合は、[参照] ボタンを選択してファイルを捜します。

カスタム コントロールを削除するには

1.	プロジェクトのフォームから、コントロールのインスタンスをすべて削除します。プロジェクトのコードにあるコントロールへの参照も削除します。コードの中に、削除したコントロールへの参照が残っていると、アプリケーションをコンパイルするときにエラー メッセージが表示されます。

2.	[ツール] - [カスタム コントロール] コマンドを選択します。

3.	.VBX コントロール、.OCX コントロール、挿入可能なオブジェクトの名前の隣のチェック ボックスをオフにし、[OK] ボタンを選択します。プロジェクトのフォームに、コントロールのインスタンスが残っていると、エラー メッセージが表示されます。


関連項目

[カスタム コントロールのアップグレード] ダイアログ ボックス

[カスタム コントロール] ダイアログ ボックス

外部から作成可能なオブジェクトの使い方


外部から作成可能なオブジェクトの使い方

関連項目

Microsoft Excel の Application オブジェクトなどのオブジェクトへの参照をコードの中で作成できます。オブジェクトを作成した OLE サーバーの外部から、キーワード New (このキーワードをサポートしているアプリケーションの場合)、CreateObject 関数、GetObject 関数によってオブジェクトへの参照を設定できる場合、そのオブジェクトを外部から作成可能なオブジェクトといいます。

一方、Microsoft Excel の Button オブジェクトなどは、高いレベルのオブジェクトのメソッドを使わないとアクセスできないため、依存オブジェクトといいます。たとえば、Microsoft Excel の Worksheet オブジェクトの Cells メソッドは、Range オブジェクトを返します。

Microsoft Word 文書などのオブジェクトは、ユーザーが見ることができ、フォームに挿入したり、複合ドキュメント ファイルに埋め込んだりできます。Printer オブジェクトや Database オブジェクトなどは、フォーム上に表示されないため、挿入できません。挿入可能なオブジェクトは、カスタム コントロールと見なされます。これらは、ツールボックスに追加し、他の Microsoft Visual Basic のコントロールと同じように使うことができます。

最高レベルのオブジェクトのほとんどは、外部から作成できるため、直接参照できます。依存オブジェクトにアクセスする必要がある場合は、外部から作成可能なオブジェクトを使って参照します。

外部から作成可能なオブジェクトを参照するには

1.	オブジェクト型の変数の格納場所を作成します。この方法は、OLE サーバーにオブジェクト ライブラリがあるかどうかで異なります。

2.	新規オブジェクトまたは既存のオブジェクトを参照する変数を設定します。

3.	オブジェクトのメソッドとプロパティを使ってコードを記述します。

4.	オブジェクトを使い終わったら、オブジェクト変数を解放します。これには、変数を Nothing に設定するか、または変数の適用範囲をなくします。


関連項目

アプリケーションのオブジェクト ライブラリの確認

CreateObject 関数

GetObject 関数

New キーワード

Nothing キーワード

カスタム コントロールの使い方


アプリケーションのオブジェクト ライブラリの確認

関連項目

他のアプリケーションのオブジェクトを Microsoft Visual Basic アプリケーションの一部として使う場合は、それらのアプリケーションのオブジェクト ライブラリへの参照を設定できます。その前に、アプリケーションにオブジェクト ライブラリがあることを確認する必要があります。

アプリケーションのオブジェクト ライブラリの有無を確認するには

1.	[ツール] - [参照設定] を選択し、[参照設定] ダイアログ ボックスを表示します。

2.	オブジェクト ライブラリを参照するアプリケーションのリストをスクロールします。このダイアログ ボックスには、オペレーティング システムに登録されているオブジェクト ライブラリがすべて表示されます。オブジェクト ライブラリがリストにない場合は、[参照] ボタンを使ってタイプ ライブラリ (*.OLB と *.TLB) または実行可能ファイル (*.EXE と *.DLL) を探します。

3.	[参照可能なライブラリ ファイル] で参照を選択し、[OK] ボタンを選択します。

これで、Visual Basic のプロジェクトからアプリケーションのオブジェクト ライブラリを参照できます。オブジェクト ブラウザを開き (F2 キー)、アプリケーションのライブラリを選択すると、選択したオブジェクト ライブラリに格納されているオブジェクトと、各オブジェクトのメソッドとプロパティが表示されます。オブジェクト ブラウザでは、[メソッド / プロパティ一覧] ボックスでメソッドやプロパティを選択でき、[貼り付け] コマンドを選択すると、自動的に構文がコードに追加されます。


関連項目

[参照設定] ダイアログ ボックス

外部から作成可能なオブジェクトの使い方


OLE オートメーション オブジェクトによる作業

関連項目

次の表は、Microsoft Visual Basic で OLE オートメーション オブジェクトを扱うさまざまな方法をまとめたものです。

目的	操作
アプリケーションにオブジェクト ライブラリがあるかどうかを判断するには	[ツール] - [参照設定] コマンドを使います。[参照設定] ダイアログ ボックスに OLE サーバーが表示された場合、そのアプリケーションにはオブジェクト ライブラリがあります。
オブジェクト ライブラリのあるアプリケーションから、外部から作成可能なオブジェクトを参照するには	[参照設定] ダイアログ ボックスを使ってオブジェクト ライブラリへの参照を追加し、Dim ステートメントと Set ステートメントを使って、オブジェクトを参照する変数を作成します。
オブジェクト ライブラリのないアプリケーションから、外部から作成可能なオブジェクトを参照するには	CreateObject 関数を使い、オブジェクトへの参照を取得します。
依存オブジェクトを参照するには	階層の中でより高いレベルのオブジェクトから、メソッドを使います。
アプリケーションから既存のオブジェクトを取得するには	GetObject 関数を使い、オブジェクトの既存のインスタンスへの参照を取得します。
オブジェクトのメソッドとプロパティを使うには	標準的な object.method または object.property の構文を使います。
オブジェクトを解放するには	オブジェクト変数を Nothing に設定します。


関連項目

アプリケーションのオブジェクト ライブラリの確認

CreateObject 関数

Dim ステートメント

GetObject 関数

New キーワード

Nothing キーワード

Set ステートメント

外部から作成可能なオブジェクトの使い方


Microsoft Visual Basic Version 4.0 の新機能

Microsoft Visual Basic Applications Edition

Visual Basic Version 4.0 には言語エンジンとして Visual Basic Applications Edition Version 2.0 が搭載されています。このバージョンは、Microsoft Excel Version 5.0 および Microsoft Project Version 4.0 に含まれる Visual Basic Applications Edition Version 1.0 との互換性が完全に保たれています。Visual Basic Applications Edition を使用することによって、OLE オートメーション オブジェクトの開発が容易になります。また、Visual Basic のコードを、OLE オートメーションをサポートするアプリケーションのモジュールで使用することができます。

OLE オートメーション

Visual Basic の OLE オートメーションを使用すると、Visual Basic アプリケーションから他のアプリケーションのオブジェクトを操作して、その機能を利用することができます。オブジェクトが OLE オートメーション オブジェクトの場合は、そのオブジェクトのプロパティおよびメソッドを Visual Basic アプリケーションのコードで操作できます。OLE オートメーション オブジェクトはアプリケーションとは独立して動作するので、Visual Basic アプリケーションでは、コードを記述して、他のアプリケーションのデータまたは関数を集めたり公開することができます。たとえば、Excel を計算エンジンとして使用し、Microsoft Word の文書をレポートの作成に使用するアプリケーションを作成することができます。また、Microsoft Excel Chart のようなオブジェクトを、簡単なドラッグ アンド ドロップ操作で、ツールボックスに直接追加できます。

再利用が可能なオブジェクトおよびコレクション

再利用が可能なオブジェクトは、それ自体のプロパティおよびメソッドを利用して作成でき、それらを組み合わせてオブジェクト モデルを作成できます。これらのオブジェクトの定義はクラスと呼ばれ、Visual Basic の新しいクラス モジュールに含まれています。また、Visual Basic の新しい Collection オブジェクトを使用して、独自のコレクションも作成可能です。

環境開発の拡張

フォーム、コントロール、およびコードには、ポップアップ メニュー の使用が可能です。また、ソース コード管理機能などをアドインとして組み込むことができます。Professional Edition では、独自のアドインを作成することもできます。

Property プロシージャ

Property プロシージャを使用すると、独自のプロパティをフォーム モジュール、標準モジュール、およびクラス モジュールに追加することができ、そのプロパティが設定または訂正された場合に、コードを実行することができます。たとえば、Inverted というプロパティをフォームに追加して、このプロパティが真 (True) に設定されると、関連する Property プロシージャのコードによってフォーム上のビットマップを反転する API が呼び出されます。

オブジェクト ブラウザ

オブジェクト ブラウザでは、Visual Basic および他の OLE コンポーネントの利用可能なオブジェクトおよびそのオブジェクトのプロパティ、メソッドが表示されます。選択した項目のコード テンプレートをコードに貼り付けると、コードを簡単に記述できます。

32 ビット版のサポートおよび条件付きコンパイル

条件付きコンパイルを使用して、#If...Then...#Else ステートメントにプラットフォームを指定するコードを記述し、同一のコードから 16 ビット版または 32 ビット版のアプリケーションのどちらかを選択して作成することができます。32 ビット版の Visual Basic では、すべてのプロジェクト コンポーネントに長いファイル名を付けることができます。また、プロパティおよび Visual Basic 言語に対する 64 KB の制限のほとんどが解消されます。

新しいデータ連結コントロール

新しい DB リスト (DBList)、DB コンボ (DBCombo)、および DB グリッド (DBGrid) コントロールを含め、多くのコントロールにデータ (Data) コントロールを連結することができます。OLE コンテナ コントロールにもデータ コントロールを連結することができます。これらのデータ連結コントロールは、自動的にリストを管理し、外部データの読み取りおよび書き込みを自動的に行うことができます。

Jet データベース エンジン Version 2.5 および Version 3.0

Microsoft Jet データベース エンジン Version 2.5 (16 ビット) および Version 3.0 (32 ビット) では、新しいデータ アクセス オブジェクト (DAO) プログラミング モデル、連鎖更新および連鎖削除、プログラムでの参照整合性の保持、およびクエリーの高速化などの、新しい機能が提供されています。Microsoft Access を使用している場合は、Microsoft Jet データベース エンジンにセキュリティの設定および変更も可能です。Jet データベース エンジン Version 2.5 および Version 3.0 には機能の点で互換性があるので、どちらかのエンジンを使用して再度コンパイルするだけで、同じコードから 32 ビット版および 16 ビット版のデータベース アプリケーションを作成することができます。32 ビット版のアプリケーションを作成するには、マイクロソフト社の 32 ビット版のオぺレーティング システムである (Microsoft Windows 95 または Microsoft Windows NT Version 3.51) を使用します。また、Jet データベース エンジン Version 3.0 ではデータベースのレプリケーションを行うことができます。作成したレプリカを Visual Basic のコードで直接操作を行うこともできます。

新しいプロジェクト ファイルの拡張子

Visual Basic のプロジェクト ファイルを他の開発ツールが使用するソース ファイルと区別するために、Visual Basic のプロジェクト ファイルの拡張子が .MAK から .VBP に変わりました。

Windows 95 カスタム コントロール

Windows 95 カスタム コントロールを使用すると、Windows 95 と同様の外観と操作性を持つアプリケーションを作成できます。たとえば、開発したアプリケーションに、リスト ビュー、ツリー ビュー、ステータス バー、ツールバー、および、タブの付いたダイアログ ボックスを組み込むことができます。リッチテキスト ボックス コントロールを使用すると書式付きテキストを扱うことができます。また、ファイルをドラッグ アンド ドロップでロードすることができます。スライダ コントロールを使用すると、データを新しい方法で入力することができます。Windows 95 カスタム コントロールを使用することによって、アプリケーションの可能性を広げることができます。詳細については、『カスタム コントロール リファレンス』を参照してください。

Microsoft Visual Basic Enterprise Edition

Visual Basic Enterprise Edition では、企業内のデータを管理するクライアント サーバー アプリケーションを作成するための各種機能およびツールが提供されています。たとえば、リモート オートメーションを使用すると、ネットワークを介して共有する OLE オートメーション コンポーネントを作成できます。また、クライアント サーバー アプリケーションの開発を支援するツールとして、コンポーネント カタログの表示、コンポーネントの組み込みと設定、ソース コード管理などを行うユーティリティが用意されています。Enterprise Edition では、コンポーネントに基づくアプリケーションの開発と配置方法に関する概念的および実際的なガイドラインも提供します。

リモート データ オブジェクト (RDO) およびリモート データ (RemoteData) コントロール (RDC) を使用すると、アプリケーションはローカルのクエリー プロセッサを使用しなくても ODBC のアクセス可能なデータ ソースにアクセスできます。この機能によってアプリケーションからリモート クライアントおよびサーバー データベース エンジン にアクセスするパフォーマンスおよび柔軟性が向上します。RDO および RDC はどの ODBC データ ソースにもアクセスできますが、主に Microsoft SQL Server または Oracle のような複雑なクエリー エンジンを使用するデータベース サーバーを利用するために開発および調整されています。


Visual SourceSafe アドインの組み込み

関連項目

Visual SourceSafe アドインを組込むと、Visual Basic の開発環境で、ソース コード管理システムの 4 つの基本的なコマンドを使用できるようになります。Visual SourceSafe アドインを接続した後、[Visual SourceSafe のプロジェクトを開く] コマンドを使用して Visual SourceSafe から Visual Basic にプロジェクトを読み込むか、または [Visual SourceSafe へのファイルの追加] コマンドを使用してカレント プロジェクトを Visual SourceSafe に追加すると、[ツール] メニューの [取得] コマンド、[チェックイン] コマンド、[チェックアウト] コマンド、および [チェックアウトの取り消し] コマンドが有効になります。また、[アドイン] メニューにも Visual SourceSafe コマンドが追加されます。

注   Visual SourceSafe アドインは、Visual Basic Enterprise Edition でのみ使用できます。

Visual SourceSafe アドインを組み込むには

1.	[アドイン] - [アドイン マネージャ] コマンドを選択します。

2.	[利用可能なコントロール] ボックスから [Source Code Control Add-in] を選択します。

注   Visual SourceSafe アドインが [利用可能なコントロール] ボックスに表示されていない場合は、Visual SourceSafe の [クライアント] セットアップを実行する必要があります。これは Visual Basic とは別のインストールになります。詳細については、次の「Visual SourceSafe のインストール」を参照してください。

3.	[OK] ボタンを選択します。

Visual SourceSafe のメニューおよびそのサブメニューが、[アドイン] メニューに表示されます。

Visual SourceSafe のインストール

一般的なセットアップ構成では、まず、Visual SourceSafe データベース サーバーとなるリモート マシンに対して [サーバー] セットアップを行います。[サーバー] セットアップの詳細については、『Visual SourceSafe ユーザーズ ガイド』を参照してください。Visual SourceSafe アドインを Visual Basic 開発環境で使用するには、ローカル マシンに Visual SourceSafe の [クライアント] セットアップを実行する必要があります。

ローカル マシンに Visual SourceSafe をインストールするには

1.	CD-ROM ドライブに CD-ROM をセットします。

2.	CD-ROM のルート ディレクトリにある Visual SourceSafe セットアップ プログラム SETUP.EXE を実行します。

注   Visual SourceSafe の [クライアント] セットアップを実行する前に、Visual Basic をインストールしておいてください。

3.	画面に表示される指示に従い、[クライアント] セットアップを実行してください。

Visual SourceSafe のすべての機能を使用するには、Enterprise Edition で提供されている Visual SourceSafe をご利用ください。


関連項目

[アドイン マネージャ] ダイアログ ボックス

[チェックイン] コマンド ([ツール] メニュー)

[チェックアウト] コマンド ([ツール] メニュー)

[取得] コマンド ([ツール] メニュー)

[チェックアウトの取り消し] コマンド ([ツール] メニュー)


定数の使用
定数の使い方

関連項目

プログラムの中で、同じ値を何度も使う場合があります。また、記憶しておくことが困難な数値や、値の目的がわかりにくい値が、コード上で必要になることもあります。

このような場合、定数を使うとコードが読みやすくなり、保守も容易になります。定数とは、特定の値の代わりに使われる名前のことです。定数は変数と似ていますが、変数と違って、コードの実行中に値を変更したり新しい値を代入したりすることはできません。

定数のソース

定数には 2 つのソースがあります。

各種アプリケーションとコントロールで定義されている組み込み定数。Microsoft Excel および Microsoft Project など、オブジェクト ライブラリを提供する他のアプリケーションでも、各種の定数が定義されており、オブジェクト、メソッド、およびプロパティで使用できます。オブジェクト ブラウザでは、それぞれのオブジェクト ライブラリで提供されている定数を表示することができます。

ユーザー定義の定数 (記号定数)。Const ステートメントを使って宣言します。

従来の Visual Basic アプリケーションでは、定数名として、大文字とアンダースコア (_) を組み合わせた名前を宣言して使っていました。次に例を示します。

TILE_HORIZONTAL

注   Visual Basic の以前のバージョンで作成したアプリケーションで使用した定数は、Visual Basic Version 4.0 でも正しく認識されます。また、Visual Basic の以前のバージョンで標準的に使われていた定数名を、Visual Basic の組み込み定数に変更することもできます。オブジェクト ブラウザに一覧表示される組み込み定数を使う場合は、宣言する必要はありません。

Visual Basic Version 4.0 では、異なる値を表す定数に同じ名前を使用してしまうことを防ぐために組み込み定数は修飾されています。定数の名前を修飾する方法は 2 つあります。

プリフィックスを付けます。

ライブラリへの参照を使用します。

プリフィックスを使用して、定数を修飾する

オブジェクトに表示される組み込み定数は、大文字と小文字を混在させた名前を使い、定数名の先頭に、その定数を定義するオブジェクト ライブラリを示す 2 文字のプリフィックスを付けています。Visual Basic および Visual Basic for Applications のオブジェクト ライブラリで定義されている組み込み定数には "vb"、データ アクセス オブジェクト (DAO) のオブジェクト ライブラリで定義される定数には "db"、Microsoft Excel オブジェクト ライブラリで定義される定数には "xl" というプリフィックスがそれぞれついています。カスタム コントロールのプリフィックスは、次のように、タイプ ライブラリに応じて変ります。

vbTileHorizontal

dbAppendOnly

xlDialogBorder

grdAlignCenter

ライブラリへの参照を使用して、定数を修飾する

次の構文を使用して定数への参照を限定します。

[libname.][modulename.]constname

定数の修飾の指定項目は次のとおりです。

指定項目	内容

libname	その定数を定義するタイプ ライブラリの名前を指定します。ほとんどのカスタム コントロールの場合には、これはコントロールのクラス名でもあります。コントロールのクラス名を忘れたときは、マウス ポインタをツールボックスのコントロール上に移動させると、クラス名が表示されます。

modulename	その定数を定義するタイプ ライブラリ内のモジュールの名前を指定します。オブジェクト ブラウザを使用して、モジュールの名前を検索できます。

constname	タイプ ライブラリ内で、その定数に定義された名前を指定します。

たとえば、次のように指定します。

Threed.LeftJustify


関連項目

Const ステートメント

オブジェクト ブラウザ


[完全コンパイル後に開始] コマンド ([実行] メニュー)

関連項目

オプション ダイアログ ボックスのプロジェクト タブで指定されたスタートアップまたは Sub Main よりアプリケーションを実行します。すべてのデザインされたフォームは閉じられ、変数は初期化され、スタートアップ フォームがあればロードされます。[オプション] ダイアログ ボックスの [詳細設定] タブの [順次コンパイル] チェック ボックスの設定に関係なく、アプリケーションは完全にコンパイルされてから実行されます。[完全コンパイル後に開始] コマンドを選択しても、[順次コンパイル] チェック ボックスの設定を変更することにはなりせん。

OLE サーバーを作成しているプロジェクトに対しては [完全コンパイル後に開始] コマンドを使用してください。[順次コンパイル] チェック ボックスをオンにして、[開始] コマンドで OLE サーバー プロジェクトを実行すると、テスト アプリケーションを実行した後に実行時エラーが検出される場合があります。エラーを修正するのに OLE サーバーを再実行する必要がある場合は、テスト アプリケーションでオブジェクトへの不正な参照が設定されていることがあります。

このコマンドはデザイン時のみ使用可能です。実行時および中断モードでは、[完全コンパイル後に開始] コマンドは使用できません。

このコマンドのショート カット キーは、Ctrl + F5 キーです。


関連項目

[詳細設定] タブ ([オプション] ダイアログ ボックス)

[中断] コマンド ([実行] メニュー)

OLE サーバーの作成

オブジェクトの作成

[終了] コマンド ([実行] メニュー)

[プロジェクト] タブ ([オプション] ダイアログ ボックス)

[再実行] コマンド ([実行] メニュー)

[開始] コマンド ([実行] メニュー)


DB グリッド (DBGrid) コントロールの使用
DB グリッド (DBGrid) コントロールの使い方

関連項目

新規に作成した直後の DB グリッド コントロールには列と行が 1 つずつあります。DB グリッド コントロールの外観は、プロパティ ウィンドウで変更することができます。

DataSource プロパティにデータ コントロール名を設定すると、DB グリッド コントロールは、データ コントロールで作成した Recordset オブジェクトに連結します。DB グリッド コントロールの列数および次のプロパティの値が決まります。

Column プロパティ	Field オブジェクトのプロパティ

Caption	Name

ColIndex 	OrdinalPosition

DefaultValue	DefaultValue

DB グリッド コントロールの列は、基になる Recordset オブジェクトの Field オブジェクトの OrdinalPosition プロパティに従って、表示されたり、Columns コレクション内で順序付けされます。必要に応じて [フィールドの取得] オプションを使用して、現在の Recordset オブジェクトのフィールドと名前が一致するように DB グリッド コントロールを初期化できます。

ポップアップ メニュー

DB グリッド コントロールのユーザー インターフェイスをアクティブにするには、DB グリッド コントロールをマウスの右ボタンでクリックし、ポップアップ メニューの [編集] を選択します。DB グリッド コントロールのユーザー インターフェイスがアクティブになる前は、プロパティ ウィンドウではコントロールの全体のプロパティが表示され、DB グリッド コントロールの移動および大きさの変更を行うことができます。

一度 DB グリッド コントロールのユーザー インターフェイスをアクティブにすると、列見出しをクリックして 1 つ以上の列を選択したり、または列見出しをドラッグしたり、Shift キーを押しながら列見出しをクリックして列の範囲を選択できます。列を選択した後は、移動またはサイズの変更を行うことができます。また、カスタム コントロールのプロパティ ページ ダイアログ ボックスを使用して Column オブジェクトのプロパティを設定できます。

ポップアップ メニューを使って列を追加または削除したり、クリップボードとの間で列の切り取りおよび貼り付けを行います。

DB グリッド コントロールの外部をクリックすると、ユーザー インターフェイスはアクティブではなくなります。

プロパティ ページ ダイアログ ボックス

プロパティ ウィンドウの [(Custom)] の [...] ボタンを選択すると、[Apex Data Bound Grid Control のプロパティ] ダイアログ ボックスを表示できます。このダイアログ ボックスを使用して、DB グリッド コントロール全体あるいは個別に選択された列のプロパティを設定できます。DB グリッド コントロールには、次のタブがあります。

タブ	内容

[General]	DB グリッド コントロール全体に適用され、デザイン時に設定できるプロパティが表示されます。これらのプロパティは、プロパティ ウィンドウでも設定できます。

[Columns]	各列のプロパティが表示されます。複数の列が選択されている場合は、[Columns] タブで左端の列が影響を受けます。列プロパティの多くは、この方法でのみ設定が可能です。Column オブジェクトのプロパティの設定は、DB グリッド コントロール全体のプロパティには影響しません。

[カラー]	DB グリッド コントロール全体の色を選択できます。

[フォント］	DB グリッド コントロール全体および見出しのフォントを選択できます。

実行時の外観および操作性

実行時には、DB グリッド コントロールは基の Recordset オブジェクトからのレコードを表示します。Recordset オブジェクトにレコードがある限り、たとえ複数の行がコントロールで選択されていても、DB グリッド コントロールには常に 1 つのカレント レコードが存在します。また、たとえ複数の列がコントロールで選択されていても、DB グリッド コントロールにはカレントの列は常に 1 つしか存在しません。

DB グリッド コントロールの Bookmark プロパティを使用して、カレント レコードを設定できます。カレントの列を設定するには、ColIndex プロパティを使用します。RecordSelectors プロパティが真 (True) の場合には、その行の レコード セレクタ を選択すると、その行全体を選択することができます。

1 つの行内で個々のセルを選択できます。同じ行内で連続したセルであれば、いくつのセルでも選択でき、更にこの選択は隣接する列にも拡張できます。SelStartCol および SelEndCol プロパティで、水平方向の選択領域を設定できます。列見出しを選択すると HeadClick イベントが発生しますが、列の選択は影響を受けません。

Column オブジェクトの AllowSizing プロパティおよび DB グリッド コントロールの RecordSelectors プロパティの両方が真 (True) の場合には、行の間の枠線をドラッグして行の高さを調節できます。DB グリッド コントロールの HeadLines プロパティが 1 以上で、更に Column オブジェクトの AllowSizing プロパティが真 (True) の場合には、選択された Column オブジェクトの列の間の枠線をドラッグし、列の幅を調節できます。

非連結モード

DB グリッド コントロールの DataMode プロパティが 1 (Unbound) に設定されている場合は、コントロールは特定のデータ ソースに連結していません。データ ソースおよび DB グリッド コントロールに表示されるデータ間の同期は、アプリケーション側で行なわれます。また、DB グリッド コントロールで、データの自動制御から、特別な非連結イベントを使用したメッセージの送信に切り替えると、アプリケーションでのデータの制御が可能になります。

たとえば、連結 DB グリッド コントロールから 1 列を削除した場合、それに対応するデータも自動的に基のデータ ソースから削除されます。一方、非連結 DB グリッド コントロールから 1 列を削除した場合は、イベント (この場合は UnboundDeleteRow イベント) を通じてアプリケーションに通知されます。このイベントによって、グリッドから 1 列がユーザーによって削除されたことがアプリケーションに報告され、どの列が削除されたのかが表示されます。実際に基のデータ ソースから、どのような方法でその列を削除するかは、アプリケーションによって異なります。

本質的には、非連結 DB グリッド コントロールは、データの表示および編集のためのフロントエンド ユーザー インターフェイスとして機能します。一方で、データの管理の制御は、ユーザーが決定します。


関連項目

AllowSizing プロパティ

Bookmark プロパティ (データ アクセス)

Caption プロパティ

ColIndex プロパティ

Column オブジェクト、Columns コレクション

DataMode プロパティ

DataSource プロパティ

DB グリッド (DBGrid) コントロール

DefaultValue プロパティ

HeadLines プロパティ

MultiSelect プロパティ

RecordSelectors プロパティ

Recordset オブジェクト、Recordsets コレクション

RowSource プロパティ

SelBookmarks コレクション

UnboundDeleteRow イベント


Screen オブジェクト

関連項目	プロパティ

フォームの画面上の表示位置を設定したり、実行時にアプリケーションのフォームの外に出たマウス ポインタを制御したりするために使います。Screen オブジェクトにアクセスするには、キーワード Screen を指定します。

注   Screen オブジェクトを使用する場合の Visual Basic インプロセス OLE サーバー (DLL) に関する注意および制限については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

構文

Screen

解説

モーダル フォームが表示されているときには、砂時計ポインタを表示するように Screen オブジェクトの MousePointer プロパティを設定します。


関連項目

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)


Screen オブジェクトのプロパティ

ActiveControl プロパティ

ActiveForm プロパティ

FontCount プロパティ

Fonts プロパティ

Height プロパティ

MouseIcon プロパティ

MousePointer プロパティ

TwipsPerPixelX プロパティ

TwipsPerPixelY プロパティ

Width プロパティ


Refresh メソッド

関連項目	例	対象

フォームまたはコントロールを強制的に更新します。

構文

object.Refresh

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Refresh メソッドは次のような場合に使います。

他のフォームをロードする間、現在のフォームを完全な状態で表示するとき。

ファイル リスト ボックス (FileListBox) コントロールのようなファイル システムのためのコントロールであるリスト ボックスの内容を更新するとき。

データ (Data) コントロールのデータ構造を更新するとき。

Refresh メソッドは、MDI 子フォームを更新することはできますが、MDI フォームを更新することはできません。また、メニュー (Menu) コントロールやタイマー (Timer) コントロールには、Refresh メソッドを適用できません。

通常、フォームやコントロールの描画は、イベントが発生していないときに自動的に処理されますが、フォームやコントロールを即座に更新する必要がある場合もあります。たとえば、ファイル リスト ボックス (FileListBox)、ディレクトリ リスト ボックス (DirectoryListBox)、ドライブ リスト ボックス (DriveListBox) の各コントロールを使って現在のディレクトリ構造を表示するときは、Refresh メソッドを使ってディレクトリ構造が変更されるたびにリストを更新できます。

データ コントロールに対して Refresh メソッドを使うと、DatabaseName、ReadOnly、Exclusive、Connect の各プロパティが変更されたときに、データベースを開いたり、再び開いたりできます。また、コントロールの Recordset プロパティに指定されているダイナセットを再構成することもできます。


関連項目

DoEvents 関数

MDIChild プロパティ

MDIForm オブジェクト

Paint イベント


Refresh メソッドの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

データ (Data) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

水平スクロール バー (HScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

ライン (Line) コントロール

リスト ボックス (ListBox) コントロール

メニュー (Menu) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール

垂直スクロール バー (VScrollBar) コントロール


Refresh メソッドの例

次のプログラムでは、Refresh メソッドを使って試験的にファイルを作成するのに合わせてファイル リスト ボックス (FileListBox) コントロールを更新します。このプログラムを実行するには、フォーム上にファイル リスト ボックス コントロールを配置します。次に、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim FNMA, I, Msg	' 変数を宣言します。

File1.Pattern = "TestFile.*"	' ファイル パターンを設定します。

For I = 1 To 8	' 8 回行います。

FNMA = "TESTFILE." & I

Open FNMA For Output As FreeFile	' Null ファイルを作成します。

File1.Refresh	' リスト ボックスを更新します。

Close	' ファイルを閉じます。

Next I

Msg = "作成されたテスト ファイルを削除します。[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Kill "TESTFILE.*"	' テスト ファイルを削除します。

File1.Refresh	' ファイル リスト ボックスを更新します。

End Sub


SetFocus メソッド

関連項目	対象

指定されたコントロールまたはフォームに、フォーカスを移します。

構文

object.SetFocus

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

引数 object には Form オブジェクト、MDIForm オブジェクトを含む、フォーカスを受け取ることのできるコントロールを指定します。SetFocus メソッドの実行後は、指定したフォームまたはコントロールがユーザーからのすべての入力を受け取ります。

フォーカスを設定できるのは、表示されているフォームまたはコントロールだけです。フォームやフォーム上のコントロールは、各フォームの Load イベントが終了するまで表示されません。このため、Load イベント内でロードされたフォームに SetFocus メソッドを使ってフォーカスを移すには、Form_Load イベント プロシージャが終了する前に Show メソッドを使ってフォームを表示する必要があります。

フォームまたはコントロールの Enabled プロパティが偽 (False) に設定されていると、そのフォームまたはコントロールにはフォーカスを設定できません。デザイン時に Enabled プロパティを偽 (False) に設定したときは、SetFocus メソッドでフォーカスを移す前に Enabled プロパティを真 (True) に変更しておく必要があります。


関連項目

Enabled プロパティ

Load ステートメント

Show メソッド


SetFocus メソッドの 対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

水平スクロール バー (HScrollBar) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール

垂直スクロール バー (VScrollBar) コントロール


DblClick イベント

関連項目	例	対象

ユーザーがオブジェクト上でマウス ボタンを押して離す操作を 2 回続けて行ったとき (ダブルクリックしたとき) に発生します。

フォームの場合は、フォーム上のコントロールが配置されていない領域または Enabled プロパティが偽 (False) に設定されているコントロールをユーザーがダブルクリックしたときに、フォームの DblClick イベントが発生します。コントロールの場合は、次に示す操作が行われたときに DblClick イベントが発生します。

コントロールがマウスの左ボタンでダブルクリックされた場合。

Style プロパティが 1 (標準コンボ) に設定されたコンボ ボックス (ComboBox)、ファイル リスト ボックス (FileListBox)、リスト ボックス (ListBox)、DB コンボ (DBCombo)、DB リスト (DBList) の各コントロールの項目がダブルクリックされた場合。

構文

Private Sub Form_DblClick ( )

Private Sub object_DblClick (index As Integer)

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	コントロール配列の場合、コントロール配列のインデックス番号が渡されます。

解説

コントロール配列の場合、引数 index には、コントロール配列のインデックス番号が渡されます。DblClick イベント プロシージャは、アイコンをダブルクリックしてウィンドウや文書を開くような暗黙で行われる操作を記述するために使用できます。また、リスト ボックス内の項目をダブルクリックすると、それが選択されると同時にダイアログ ボックスを閉じるような処理が行えます。

このようなショートカットを設定するには、リスト ボックスまたはファイル リスト ボックスの DblClick イベント プロシージャと、デフォルト ボタン (Default プロパティを真 (True) に設定したコマンド ボタン (CommandButton) コントロール) を組み合わせて使います。つまり、リスト ボックスの DblClick プロシージャが、デフォルト ボタンの Click イベント プロシージャを呼び出すように設定します。

DblClick イベントが発生するときは、同時に MouseDown、Click、MouseUp の各イベントも発生します。発生する順序は、MouseDown、MouseUp、Click、DblClick、MouseUp です。

ユーザーがマウスの左ボタンを 2 回クリックしても、それがダブルクリックの設定時間内に行われなければ、オブジェクトは Click イベントが 2 回発生したと認識します。ダブルクリックの速さはコントロール パネルで変更できるため、それによってダブルクリックの設定時間も変化します。Click と DblClick の 2 つのイベント プロシージャを記述するときは、その操作内容が相互に干渉しないように注意してください。また、DblClick イベントを受け付けないコントロールでは、DblClick イベントではなく 2 回のクリックとして認識されることがあります。

注   マウスの左、右、中央のボタンを区別するときは、MouseDown イベントと MouseUp イベントを使います。


関連項目

Click イベント

MouseDown、MouseUp イベント


DblClick イベントの例

次のプログラムでは、コマンド ボタン (CommandButton) コントロールをクリックするか、リストの項目をダブルクリックするたびに、選択されたリスト項目をテキスト ボックス (TextBox) コントロールに表示します。このプログラムを実行するには、フォーム上に、リスト ボックス (ListBox)、テキスト ボックス、コマンド ボタン の各コントロールを配置します。次に、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、コマンド ボタン コントロールをクリックするか、リスト ボックス コントロールの項目をダブルクリックします。

Private Sub Form_Load ()

List1.AddItem "John"	' リスト ボックスの項目を設定します。

List1.AddItem "Paul"

List1.AddItem "George"

List1.AddItem "Ringo"

End Sub

Private Sub List1_DblClick ()

Command1.Value = True	' Click イベントを発生させます。

End Sub

Private Sub Command1_Click ()

Text1.Text = List1.Text	' 選択項目をテキスト ボックスに表示します。

End Sub


DblClick イベントの対象

コンボ ボックス (ComboBox) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


HelpFile プロパティ (App オブジェクト、コモン ダイアログ、MenuLine オブジェクト)

関連項目	例	対象

ヘルプやオンライン ドキュメントをアプリケーションに表示するために使う、ヘルプ ファイルのパスとファイル名を指定します。

構文

object.HelpFile[ = filename]

HelpFile プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

filename	アプリケーションのヘルプ ファイルのパスとファイル名を表す文字列式を指定します。

解説

アプリケーションに対応する Microsoft Windows のヘルプ ファイルを作成して、アプリケーションの HelpFile プロパティを設定しておくと、ユーザーが F1 キーを押すことによって自動的にヘルプが呼び出されます。アクティブ コントロールまたはアクティブ フォームの HelpContextID プロパティによって示されるコンテキスト番号が見つかると、ヘルプは現在のヘルプ コンテキストに対応するトピックを表示します。見つからない場合はそのヘルプ ファイルの目次の画面を表示します。

HelpFile プロパティを使うと、ユーザーが OLE サーバーのオブジェクト ブラウザからヘルプを要求したときに表示されるヘルプ ファイルを指定することができます。

注   ヘルプ ファイルを作成するには、Microsoft Visual Basic Professional Edition および Enterprise Edition に含まれるヘルプ コンパイラが必要です。


関連項目

HelpContextID プロパティ


HelpFile プロパティの例

次のプログラムでは、Microsoft Visual Basic のオンライン ヘルプ ファイルの項目を使って、ヘルプ項目のコンテキスト番号を指定する方法を説明します。このプログラムを実行するには、Form オブジェクトにテキスト ボックス (TextBox) コントロールとフレーム (Frame) コントロールを作成します。フレーム コントロールの中にオプション ボタン (OptionButton) コントロールを配置します。次にフォーム モジュールのコード ウィンドウにコードを貼り付け、F5 キーを押します。起動後、フォーム上のいずれかのオブジェクトにフォーカスを移して F1 キーを押します。

' Visual Basic のヘルプ ファイルの実際のコンテキスト番号を設定します。

Const winColorPalette = 21004	' 定数を定義します。

Const winToolbox = 21001

Const winCodeWindow = 21005

Private Sub Form_Load ()

App.HelpFile = "VB.HLP"

Frame1.HelpContextID = winColorPalette

Text1.HelpContextID = winToolbox

Form1.HelpContextID = winCodeWindow

End Sub


HelpFile プロパティの対象

App オブジェクト

コモン ダイアログ (CommonDialog) コントロール

MenuLine オブジェクト (アドイン)


Clipboard オブジェクト

メソッド

Clipboard オブジェクトを使うと、システムのクリップボードへアクセスすることができます。

構文

Clipboard

解説

Clipboard オブジェクトは、クリップボード上のテキストやグラフィックスを操作するために使われます。このオブジェクトを使って、アプリケーションの中でテキストやグラフィックスのコピー、切り取り、貼り付け機能を提供することができます。

Clipboard オブジェクトは、それぞれが異なる形式であれば、複数のデータを保持することができます。たとえば、SetData メソッドを使って定数 VbCFBitmap で指定される形式のビットマップを Clipboard オブジェクト上に配置し、続いて SetText メソッドを使って定数 VbCFText で指定される形式のテキストを配置できます。次に、GetText メソッドを使ってテキストを取得し、GetData メソッドを使ってグラフィックスを取得することができます。同じ形式の他のデータを、コードまたはメニュー コマンドを使って Clipboard オブジェクト上に置くと、古いデータは失われます。


Clipboard オブジェクトのメソッド

Clear メソッド

GetData メソッド

GetFormat メソッド

GetText メソッド

SetData メソッド

SetText メソッド


Printer オブジェクト、Printers コレクション

関連項目	プロパティ	メソッド

Printer オブジェクトを使うと、システム プリンタ (あらかじめ、Microsoft Windows のコントロールパネルで通常使うプリンタとして設定されているプリンタ) を操作できます。

Printers コレクションを使うと、システム上で利用できるすべてのプリンタに関する情報を収集できます。

注   Printer オブジェクト、Printers コレクションを使用する場合の Visual Basic のインプロセス OLE サーバー (DLL) に関する注意および制限については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

構文

Printer

Printers(index)

引数 index には、LBound プロパティの設定値から UBound プロパティの設定値までの範囲の整数を指定します。引数 index には、0 ～ Printers.Count-1 の範囲の整数を指定します。

解説

Printer オブジェクトにテキストやグラフィックスを描画するには、グラフィックス メソッドを使います。Printer オブジェクトが印刷する出力情報を保持すると、EndDoc メソッドを使って、アプリケーションが通常使うプリンタとして設定されているプリンタに、その出力を直接送ることができます。

フォームを印刷するときは、そのレイアウトを確認し、必要に応じて修正します。Print メソッドを使うと、グラフィカル イメージはページに収まるようにクリップされ、テキストは次のページに送られます。

Printers コレクションは利用可能なプリンタを調べて、アプリケーションが通常使うプリンタを指定できるようにします。たとえば、利用可能なプリンタがどのプリンタ ドライバを使うかを特定する必要がある場合もあります。次のコードは、ページの印刷方向が縦に設定されている最初のプリンタを利用可能なプリンタの中から捜し出します。

Dim X As Printer

For Each X In Printers

If X.Orientation = vbPRORPortrait Then

' プリンタをシステムの通常使うプリンタに設定します。

Set Printer = X

' プリンタの検索を中止します。

Exit For

End If

Next

Printers コレクション内の 1 つのプリンタを通常使うプリンタとして指定するには、Set ステートメントを使います。上の例では、オブジェクト変数 X によって指定されるプリンタをアプリケーションが通常使うプリンタとして指定しています。

注   Printers コレクションを使って、Printers(3) のように特定のプリンタを指定した場合は、読み取り専用のプロパティにしかアクセスできません。個別のプリンタのプロパティの読み取りまたは書き込みを行うには、あらかじめそのプリンタをアプリケーションの既定のプリンタにする必要があります。


 関連項目

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

Set ステートメント


Printer オブジェクト、Printers コレクションのプロパティ

凡例

ColorMode プロパティ

Copies プロパティ

Count プロパティ

CurrentX、CurrentY プロパティ

DeviceName プロパティ

DrawMode プロパティ

DrawStyle プロパティ

DrawWidth プロパティ

DriverName プロパティ

Duplex プロパティ

FillColor プロパティ

FillStyle プロパティ

Font プロパティ

FontBold プロパティ

FontCount プロパティ

FontItalic プロパティ

FontName プロパティ

Fonts プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontTransparent プロパティ

FontUnderline プロパティ

ForeColor プロパティ

hDC プロパティ

Height プロパティ

Orientation プロパティ

Page プロパティ

PaperBin プロパティ

PaperSize プロパティ

Port プロパティ

PrintQuality プロパティ

ScaleHeight プロパティ

ScaleLeft プロパティ

ScaleMode プロパティ

ScaleTop プロパティ

ScaleWidth プロパティ

TrackDefault プロパティ

TwipsPerPixelX、TwipsPerPixelY プロパティ

Width プロパティ

Zoom プロパティ


Printer オブジェクト、Printers コレクションのメソッド

凡例

Circle メソッド

EndDoc メソッド

KillDoc メソッド

Line メソッド

NewPage メソッド

PaintPicture メソッド

Print メソッド

PSet メソッド

Scale メソッド

ScaleX、ScaleY メソッド

TextHeight メソッド

TextWidth メソッド


Font オブジェクト

関連項目	プロパティ

Font オブジェクトは、アプリケーションのインターフェイスへの表示用、または印刷出力用のテキストのフォント設定に必要な情報を保持します。

構文

Font

解説

Font オブジェクトは、Form オブジェクトや Printer オブジェクトのように、テキストを表示するオブジェクトの Font プロパティを使って設定されます。

Dim X As New Font のようにコードを使用して Font オブジェクトを作成することはできません。Font オブジェクトを作成する場合、次のように StdFont オブジェクトを使用する必要があります。

Dim X As New StdFont

テキスト ボックス (TextBox) コントロール (Text1) をフォーム上に配置した場合、次のコードを記述し、Set ステートメントを使用して 1 つの Font オブジェクトの設定を別のオブジェクトに代入することができます。

Dim X As New StdFont

Set X = Font

X.Bold = True

X.Name = "Arial"

Set Text1.Font = X


関連項目

Font プロパティ

Fonts プロパティ

Set ステートメント


Font オブジェクトのプロパティ

Bold プロパティ

Italic プロパティ

Name プロパティ

Size プロパティ

StrikeThrough プロパティ

Underline プロパティ

Weight プロパティ


Load ステートメント

関連項目	例

フォームまたはコントロールをメモリにロードします。

構文

Load object

引数 object には、ロードする Form オブジェクト、MDIForm オブジェクト、またはコントロール配列の要素の名前を指定します。

解説

フォームを表示せずにロードするとき以外は、Load ステートメントを使う必要はありません。通常、フォームがまだロードされていないときにフォームを参照すると、そのフォームは自動的にロードされます。ただし、Set ステートメントまたは If...TypeOf ステートメントを使って参照した場合を除きます。たとえば、Show メソッドを使うと、フォームは表示する前にロードされます。フォームがロードされると、フォームが表示されているかどうかにかかわらず、アプリケーションはそのコントロールとプロパティを変更できます。また、初期化のときにすべてのフォームをロードしておき、後で必要に応じて表示することも可能です。

同じフォームの複数のインスタンスがロードされている場合、プロパティや変数は各フォームごとに管理されます。このため、プロパティと変数は、フォームごとに変更することができます。

Microsoft Visual Basic で Form オブジェクトをロードすると、フォームのプロパティが初期値に設定され、Load イベント プロシージャが実行されます。アプリケーションを起動すると、アプリケーションのスタートアップ フォームが自動的にロードされ、表示されます。

MDIForm オブジェクトをロードする前に MDIChild プロパティを真 (True) に設定した Form オブジェクトをロードすると、MDI 子フォームより先に、自動的に MDIForm オブジェクトがロードされます。MDI 子フォームは非表示にはできないので、ロードされた MDI 子フォームは Form_Load イベント プロシージャが終了するとすぐに表示されます。

MsgBox 関数や InputBox 関数のような Visual Basic の関数が作成する標準ダイアログ ボックスは直接起動されるので、ロード、表示、およびアンロードの操作は必要ありません。


関連項目

Hide メソッド

InputBox 関数

MsgBox 関数

Show メソッド

Unload ステートメント


Load ステートメントの例

次のプログラムでは、Load ステートメントを使って Form オブジェクトをロードします。このプログラムを実行するには、コードを Form オブジェクトのコード ウィンドウに貼り付け、F5 キーを押します。起動後、Form オブジェクトをクリックします。

Private Sub Form_Click ()

Dim Answer, Msg	' 変数を宣言します。

Unload Form1	' フォームをアンロードします。

Msg = "Form1 をアンロードしました。フォームをロードして表示するときは"

Msg = Msg & "[はい] を選択し、フォームをロードして非表示にするときは"

Msg = Msg & "[いいえ] を選択してください。"

Answer = MsgBox(Msg, 4)	' ユーザーの応答を受け取ります。

If Answer = 6 Then	' 応答を評価します。

Show	' [はい] のときはフォームを表示します。

Else

Load Form1	' [いいえ] のときはフォームをロードするだけです。

Msg = "Form1 をロードしました。フォームを表示します。[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Show	' フォームを表示します。

End If

End Sub


Unload ステートメント

関連項目	例

フォームまたはコントロールをメモリからアンロードします。

構文

Unload object

引数 object には、アンロードする Form オブジェクトまたはコントロール配列の要素の名前を指定します。

解説

使用中のメモリを他の用途に使う場合や、プロパティを元の値にリセットする場合は、フォームまたはコントロールを一度アンロードした方がよいとき、またはアンロードしなければならないときがあります。

フォームをアンロードするときは、まず Query_Unload イベントが発生し、続いて Form_Unload イベント プロシージャが起動されます。Query_Unload イベントまたは Form_Unload イベントの引数 Cancel を真 (0 以外の値) に設定すると、フォームはアンロードされません。MDIForm オブジェクトをアンロードするときは、まず MDIForm オブジェクトに対応する Query_Unload イベントが発生し、次に各 MDI 子フォームに対応する Query_Unload イベントと Form_Unload イベント、最後に MDIForm オブジェクトに対応する Form_Unload イベントが発生します。

フォームをアンロードすると、実行時にフォーム上に配置されたコントロールにアクセスできなくなります。デザイン時にフォーム上に配置されたコントロールはそのまま残りますが、実行時にそれらのコントロールやコントロールのプロパティに加えた変更は、フォームを再びロードすると失われます。また、フォームのプロパティに対して行った変更もすべて失われます。

注   フォームをメモリからアンロードするときには、表示されている構成要素だけがアンロードされ、そのフォーム モジュールのコードはメモリに保持されます。

実行時にフォーム上に追加されたコントロール配列の要素だけを、Unload ステートメントを使ってアンロードすることができます。アンロードされたコントロールのプロパティは、そのコントロールが再びロードされたときに初期化されます。


関連項目

Hide メソッド

Load ステートメント

QueryUnload イベント

Show メソッド


Unload ステートメントの例

次のプログラムでは、Unload ステートメントを使って Form オブジェクトをアンロードします。このプログラムを実行するには、コードを Form オブジェクトのコード ウィンドウに貼り付け、F5 キーを押します。起動後、Form オブジェクトをクリックします。

Private Sub Form_Click ()

Dim Answer, Msg	' 変数を宣言します。

Unload Form1	' フォームをアンロードします。

Msg = "Form1 をアンロードしました。フォームをロードして表示するときは"

Msg = Msg & "[はい] を選択し、フォームをロードして非表示にするときは"

Msg = Msg & "[いいえ] を選択してください。"

Answer = MsgBox(Msg, 4)	' ユーザーの応答を受け取ります。

If Answer = 6 Then	' 応答を評価します。

Show	' [はい] のときはフォームを表示します。

Else

Load Form1	' [いいえ] のときはフォームをロードするだけです。

Msg = "Form1 をロードしました。フォームを表示します。[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Show	' フォームを表示します。

End If

End Sub


LoadPicture 関数

関連項目	例

Form オブジェクト、ピクチャ ボックス (PictureBox)、イメージ (Image) の各コントロールにピクチャをロードします。

構文

LoadPicture([stringexpression])

引数 stringexpression には、ロードするピクチャ ファイルの名前を指定します。

解説

LoadPicture 関数の引数を省略すると、フォーム (Form)、ピクチャ ボックス、イメージの各コントロール内のピクチャが消去されます。

Microsoft Visual Basic で認識されるピクチャ ファイルには、ビットマップ (.BMP)、アイコン (.ICO)、run-length エンコード ファイル (.RLE)、メタファイル (.WMF) などがあります。

ピクチャをロードしてピクチャ ボックス コントロールやイメージ コントロール内に表示したり、フォームの背景として使ったりする場合は、ピクチャを表示するオブジェクトの Picture プロパティに、LoadPicture 関数の戻り値を割り当てます。次に例を示します。

Picture = LoadPicture("PARTY.BMP")

Picture1.Picture = LoadPicture("PARTY.BMP")

アイコン ファイル (.ICO) をフォームのアイコンとしてロードするには、LoadPicture 関数の戻り値を Form オブジェクトの Icon プロパティに割り当てます。

Form1.Icon = LoadPicture("MYICON.ICO")

このほかにアイコンは、タイマー (Timer) コントロールとメニュー (Menu) コントロールを除くすべてのコントロールの DragIcon プロパティに割り当てることができます。次に例を示します。

Command1.DragIcon = LoadPicture("MYICON.ICO")

ピクチャ ファイルをシステムのクリップボードにロードするには、LoadPicture 関数を次のように使います。

Clipboard.SetData LoadPicture("PARTY.BMP")


関連項目

DragIcon プロパティ

Icon プロパティ

Picture プロパティ

SavePicture ステートメント

SetData メソッド


LoadPicture 関数の例

次のプログラムはで、LoadPicture 関数を使ってピクチャを Form オブジェクトにロードした後、Form オブジェクト上のピクチャを消去します。このプログラムを実行するには、コードを Form オブジェクトのコード ウィンドウに貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim Msg	' 変数を宣言します。

On Error Resume Next	' エラー処理を設定します。

Height = 3990: Width = 4890	' 高さと幅を設定します。

Picture = LoadPicture("PAPER.BMP")	' ビットマップをロードします。

If Err Then

Msg = ".BMP ファイルが見つかりませんでした。"

MsgBox Msg	' エラー メッセージを表示します。

Exit Sub	' エラー発生時は処理を終了します。

End If

Msg = "フォームからビットマップを削除します。"

Msg = Msg & "[OK] ボタンを選択してください。"

Msgbox Msg

Picture = LoadPicture()	' ビットマップを削除します。

End Sub


SavePicture ステートメント

関連項目	例

Form オブジェクト、ピクチャ ボックス (PictureBox)、イメージ (Image) の各コントロール内のピクチャをファイルに保管します。

構文

SavePicture picture, stringexpression

SavePicture ステートメントの構文の指定項目は次のとおりです。

指定項目	内容

picture	ピクチャ ファイルに保管するピクチャを持つ Picture プロパティまたは Image プロパティを指定します。

stringexpression	ピクチャを保管するピクチャ ファイルの名前を指定します。

解説

デザイン時または実行時にファイルから Picture プロパティにピクチャをロードしたとき、そのピクチャは元のファイルと同じ名前と形式で保管されます。Image プロパティ内のピクチャは、常にビットマップ (.BMP) ファイルとして保管されます。


関連項目

Image プロパティ

LoadPicture 関数

Picture プロパティ


SavePicture ステートメントの例

次のプログラムでは、SavePicture ステートメントを使って Form オブジェクト上に描画したグラフィックスを保管します。このプログラムを実行するには、コードを Form オブジェクトのコード ウィンドウに貼り付け、F5 キーを押します。起動後、Form オブジェクトをクリックします。

Private Sub Form_Click ()

Dim CX, CY, Limit, Msg, Radius	' 変数を宣言します。

ScaleMode = 3	' ピクセル単位を設定します。

AutoRedraw = -1	' 有効にします。

Width = Height	' 幅を高さと同じにします。

CX = ScaleWidth / 2	' X 軸位置を設定します。

CY = ScaleHeight / 2	' Y 軸位置を設定します。

Limit = CX	' 円のサイズの制限を設定します。

For Radius = 0 To Limit	' 半径を設定します。

Circle (CX, CY), Radius, RGB(Rnd * 255, Rnd * 255, Rnd * 255)

DoEvents	' 他の処理に制御を渡します。

Next Radius

Msg = "フォームのグラフィックスを TEST.BMP というファイル名"

Msg = Msg & "で保管します。[OK] ボタンを選択してください。"

MsgBox Msg

SavePicture Image, "TEST.BMP"	' ピクチャをファイルに保管します。

End Sub


ﾌｨｰﾙﾄﾞ名を取得するには、ﾃﾞｰﾀ ｺﾝﾄﾛｰﾙの RecoardSource ﾌﾟﾛﾊﾟﾃｨの設定が必要です。

連結可能コントロールの DataField プロパティに設定できる値のリストを表示させる場合は、その前にデータ (Data) コントロールの RecordSource プロパティを設定しておく必要があります。


ﾚｺｰﾄﾞ ｿｰｽの一覧を取得するためには、DatabaseName ﾌﾟﾛﾊﾟﾃｨと Connect ﾌﾟﾛﾊﾟﾃｨを設定してください。

データ (Data) コントロールの RecordSource プロパティに設定できる値の一覧を表示するには、Microsoft Access のデータベースの .MDB ファイルの場合は DatabaseName プロパティを、Access 以外のデータベース ファイルの場合は Connect プロパティを設定しておく必要があります。


ｸﾘｯﾌﾟﾎﾞｰﾄﾞを空にできません。

Clipboard オブジェクトを開きましたが、内容を消去できませんでした。


ｸﾘｯﾌﾟﾎﾞｰﾄﾞを開けません。

Clipboard オブジェクトは、既に他のアプリケーションによって開かれています。


行 'item1': ｺﾝﾄﾛｰﾙ 'item2' のﾌﾟﾛﾊﾟﾃｨ名が不正です。

フォームの ASCII ファイル内で、プロパティ名が記述されているはずの場所にクォーテーション マークで囲まれた文字列がありました。プロパティ名は、クォーテーション マークで囲まないでください。


行 'item1': すべてのｺﾝﾄﾛｰﾙはﾒﾆｭｰの前に置いてください。ｺﾝﾄﾛｰﾙ 'item2' がﾛｰﾄﾞできません。

フォームの ASCII ファイル内で、コントロールが間違った場所に記述されています。コントロールはすべて、メニューよりも先にロードされる必要があります。


行 'item1': ｺﾝﾄﾛｰﾙ 'item2' がﾛｰﾄﾞできません。不正なｺﾝﾃﾅです。

有効なコンテナではないコントロールにコントロールをロードしようとしました。


行 'item1': ｺﾝﾄﾛｰﾙ 'item2' がﾛｰﾄﾞできません。この名前は既に使われています。

この ASCII ファイルに記述されているこのコントロールの名前は、同じアプリケーションの他の場所で既に使われています。このコントロールはロードできません。


行 'item1': ﾒﾆｭｰ 'item2' の Checked ﾌﾟﾛﾊﾟﾃｨは設定できません。親ﾒﾆｭｰはﾁｪｯｸできません。

テキストの ASCII ファイル内に、Checked プロパティが真 (True) に設定されている最上位のメニュー (Menu) コントロールがあります。最上位のメニューにチェック マークを付けることはできません。このメニュー コントロールは、ロードされますが、Checked プロパティは設定されません。


行 'item1': 'item2' の Shortcut ﾌﾟﾛﾊﾟﾃｨが設定できません。親ﾒﾆｭｰにはｼｮｰﾄｶｯﾄｷｰを設定することはできません。

フォームの ASCII ファイル内に、ショートカット キーを定義された最上位のメニュー (Menu) コントロールがあります。最上位のメニューにショートカット キーを設定することはできません。このメニュー コントロールは、ロードされますが、Shortcut プロパティは設定されません。


行 'item1': ｸﾗｽ 'item2' (ｺﾝﾄﾛｰﾙ 'item3') はﾛｰﾄﾞされていません。

フォームの ASCII ファイル内に、Visual Basic では認識できないコントロール クラスが記述されています。このクラスのカスタム コントロールをプロジェクトに追加してください。


行 'item1': ｸﾗｽ名が長すぎるので 'item2' に切り詰めます。

ASCII ファイル内に、40 文字を超える長さのクラス名があります。このクラスは、41 文字め以降を切り捨てられた名前でロードされます。


行 'item1': ｺﾝﾄﾛｰﾙ名が長すぎるので 'item2' に切り詰めます。

ASCII ファイル内に、40 文字を超える長さのコントロール名があります。このコントロールは、41 文字め以降を切り捨てられた名前でロードされます。


行 'item1': ｺﾝﾄﾛｰﾙ 'item2' の Index ﾌﾟﾛﾊﾟﾃｨがありません。

インデックスが見つからないうえ、既に同じ名前のコントロールがロードされているため、このコントロールはロードできません。


行 'item1': ｺﾝﾄﾛｰﾙの最大ﾈｽﾄ (入れ子) ﾚﾍﾞﾙを越えています ('item2')。

ASCII ファイル内に、ネスト レベルが 8 以上のコントロールがあります。


行 'item1': ﾌｧｲﾙ 'item2' のｺﾝﾄﾛｰﾙ ｸﾗｽがないか、不正です。

ASCII ファイル内に、フォームの記述が不明なコントロール クラスか、Visual Basic では無効な文字列を使ったクラス名があります。


行 'item1': ﾌｧｲﾙ 'item2' のｺﾝﾄﾛｰﾙ名がないか、不正です。

ASCII ファイル内で、フォームの記述の中に不明なコントロール名が書かれているか、Visual Basic では無効な文字列がコントロール名に使われています。


行 'item1': ﾒﾆｭｰ 'item2' が不正です。親ﾒﾆｭｰはｾﾊﾟﾚｰﾀにはなりません。

ASCII ファイル内に、メニュー区分線が親メニューか最上位のメニューに定義されているメニュー (Menu) コントロールがあります。最上位のメニューをメニュー区分線にすることはできません。区分線は設定されません。


行 'item1': ﾌﾟﾛﾊﾟﾃｨ 'item2' (ｺﾝﾄﾛｰﾙ 'item3') が読み込めません。

ASCII ファイル内に、不明なプロパティがあります。フォームをロードするときには、このプロパティはスキップされます。


行 'item1': ﾌﾟﾛﾊﾟﾃｨ 'item2' ('item3') が設定できません。

Visual Basic では、このコントロールのプロパティを、ASCII ファイル内のフォームの記述で指示されたように設定することはできません。


行 'item1': ﾌﾟﾛﾊﾟﾃｨ 'item2' ('item3') のﾌｧｲﾙ参照が不正です。

ASCII ファイル内で参照されたファイルは、指定されたディレクトリでは見つかりませんでした。


行 'item1': ﾌﾟﾛﾊﾟﾃｨ 'item2' ('item3') が不正な値です。

ASCII ファイル内に、このコントロールに対しては有効ではない値が設定されたプロパティがあります。このプロパティには既定値が設定されます。


行 'item1': ﾌﾟﾛﾊﾟﾃｨ 'item2' ('item3') は引用符で囲む必要があります。

ASCII ファイル内に、引用符 (クォーテーション マーク) で囲む必要があるのに囲まれていないプロパティがあります。フォームの記述ではこの行は無視されます。


行 'item1': ﾌﾟﾛﾊﾟﾃｨ 'item2' (ｺﾝﾄﾛｰﾙ 'item3') のﾌﾟﾛﾊﾟﾃｨ ｲﾝﾃﾞｯｸｽが不正です。

ASCII ファイル内に、255 を超えるプロパティ インデックスを持つプロパティの名前があります。


行 'item1': 構文ｴﾗｰです。ﾌﾟﾛﾊﾟﾃｨ 'item2' ('item3') に '=' がありません。

ASCII ファイル内のプロパティの記述で、プロパティ名とその設定値との間の等号が抜けています。このプロパティはロードされません。


行 'item1': CLSID 'item2' または 'item3' は不正です。

ASCII ファイル内に、Visual Basic では無効な文字列がコントロール名になっているコントロールがあります。このコントロールはロードされません。


行 'item1': ﾌｫｰﾑ名または MDI ﾌｫｰﾑ名 'item2' は既に使われています。

ASCII ファイル内に、同じのアプリケーションの他の場所で既に使われている名前を持つフォームがあります。このフォームはロードされません。


行 'item1': ﾌｫｰﾑ または MDI ﾌｫｰﾑ名 'item2' が不正です。このﾌｫｰﾑは読み込めません。

ASCII ファイル内に、Visual Basic では無効な文字列がフォーム名になっているフォームがあります。このフォームはロードされません。


行 'item1': 'item2' は既に 'item3' の名前として使われています。

ASCII ファイル内に、同じアプリケーションの他の場所で既に使われている名前があります。


行 'item1': ﾌﾟﾛﾊﾟﾃｨ名 'item2' ('item3') が不正です。

ASCII ファイル内で、コントロールに対して無効なプロパティが指定されています。


ｸﾞﾘｯﾄﾞには非固定行が 1 行以上必要です。 (Error 30015)

グリッド (Grid) コントロールには、少なくても 1 行の行が含まれている必要があります。


固定行には AddItem は使えません。 (Error 30001)

グリッド (Grid) コントロールに固定型の行を挿入することはできません。FixedRows プロパティを使って、グリッド コントロールに固定型の行の数を設定してください。


固定行には RemoveItem は使えません。 (Error 30000)

関連項目

グリッド (Grid) コントロールの固定型の行を削除することはできません。固定型の行の数は FixedRows プロパティによって決まります。


関連項目

FixedCols、FixedRows プロパティ


FixedCols ﾌﾟﾛﾊﾟﾃｨにすべての列の数を指定することはできません。 (Error 30017)

関連項目

グリッド (Grid) コントロール内で固定型にする列の数 (FixedCols プロパティの値) は、列の数より小さくしなければなりません。


関連項目

FixedCols、FixedRows プロパティ


FixedRows ﾌﾟﾛﾊﾟﾃｨにすべての行の数を指定することはできません。 (Error 30016)

関連項目

グリッド (Grid) コントロールで固定型にする行の数 (FixedRows プロパティの値) は、列の数より小さくしなければなりません。


関連項目

FixedCols、FixedRows プロパティ


指定された行はありません。 (Error 30002)

関連項目

存在しない行にアクセスしようとしました。グリッド (Grid) コントロールの最初の行は 0 です。そのため最後の行は、行の数から 1 引いた値となります。グリッド コントロールが持つ行の数の設定や取得には、Rows プロパティを使ってください。


関連項目

Cols、Rows プロパティ


Alignment ﾌﾟﾛﾊﾟﾃｨの値が不正です。 (Error 30005)

関連項目

ColAlignment プロパティと FixedAlignment プロパティに設定できる値は、0 (左詰め)、1 (右詰め)、2 (中央揃え) です。FixedAlignment プロパティには、これ以外に 3 (ColAlignment プロパティの値を使う) という設定もできます。


関連項目

FixedAlignment プロパティ

ColAlignment プロパティ


列番号が不正です。 (Error 30004)

関連項目

固定型の列の配置設定を ColAlignment プロパティで行うことはできません。FixedAlignment プロパティを使ってください。ColAlignment プロパティの引数として指定する列の番号には、固定型ではない列を指定してください。FixedCols プロパティは、グリッド (Grid) コントロールが持つ固定型の列の数を返します。


関連項目

FixedAlignment プロパティ

ColAlignment プロパティ

FixedCols、FixedRows プロパティ


列番号が不正です。 (Error 30010)

関連項目

存在しない列にアクセスしようとしました。グリッド (Grid) コントロールの最初の列は 0 です。そのため最後の列は、列の数から 1 引いた値となります。グリッド コントロールが持つ列の数の設定や取得には、Cols プロパティを使ってください。


関連項目

Cols、Rows プロパティ


Width ﾌﾟﾛﾊﾟﾃｨの値が不正です。 (Error 30014)

関連項目

ColWidth プロパティの値は 1 以上でなければなりません。


関連項目

ColWidth プロパティ


Height ﾌﾟﾛﾊﾟﾃｨの値が不正です。 (Error 30013)

関連項目

RowHeight プロパティの値は 1 以上でなければなりません。


関連項目

RowHeight プロパティ


行番号が不正です。 (Error 30009)

関連項目

存在しない行にアクセスしようとしました。グリッド (Grid) コントロールの最初の行は 0 です。そのため最後の行は、行の数から 1 引いた値となります。グリッド コントロールが持つ行の数の設定や取得には、Rows プロパティを使ってください。


関連項目

Cols、Rows プロパティ


ﾋﾟｸﾁｬの種類が不正です。 (Error 30008)

関連項目

グリッド (Grid) コントロールのセルに Windows のメタファイル (.WMF) を表示することはできません。Picture プロパティがサポートするのは、ビットマップ (.BMP) とアイコン (.ICO) だけです。


関連項目

Picture プロパティ


ﾒﾓﾘが足りません。 (Error 30006)

メモリ不足です。使用していないアプリケーションやドキュメントを閉じてください。


ﾒﾓﾘが足りません。 (Error 30011)

メモリ不足で、グリッド (Grid) コントロールに保存するよう要求された情報を保存できませんでした。


ﾊﾟﾌﾞﾘｯｸ ｸﾗｽ ﾓｼﾞｭｰﾙが見つかりません。

関連項目

Public プロパティが真 (True) に設定されているクラスが、プロジェクトにひとつもありません。

[OLE DLL ファイルの作成] コマンドを使用すると、プロジェクトはインプロセス OLE サーバーとしてコンパイルされます。他のアプリケーションから使用するためには、外部から作成可能なクラスが少なくともひとつは、インプロセス OLE サーバーに含まれていることが必要です。このクラス モジュールでは、 Public プロパティが真 (True) に、Instancing プロパティが Createable MultiUse に設定されています。

他のアプリケーションでは、 Set ステートメントと共に New 演算子を使用することで、 New キーワードを指定して変数を宣言することで、または CreateObject 関数を呼び出すことで、外部から作成可能なクラスからオブジェクトを作成することができます。


関連項目

OLE サーバーの作成

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

外部から作成可能なオブジェクトの使い方


AddItem メソッド

関連項目	例	対象

実行時にリスト ボックス (ListBox) コントロールまたはコンボ ボックス (ComboBox) コントロールに新しい項目を追加したり、グリッド (Grid) コントロールに新しい行を追加します。名前付き引数は指定できません。

構文

object.AddItem item, index

AddItem メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

item	必ず指定します。追加する文字列式を追加します。グリッド コントロールの場合は、新しく追加する行に含まれる文字列を指定します。このとき、列ごとの区切りにはタブ文字 (ASCII コード 9) を使います。

index	省略可能です。オブジェクト内に新しい項目または行を配置する位置を示す整数です。リスト ボックス コントロールやコンボ ボックス コントロールの先頭に項目を追加するときや、グリッド コントロールの 1 行めに行を追加するときは、引数 index に 0 を指定します。

解説

引数 index に有効な値を指定すると、item が引数 object に指定されたコントロール内の指定した位置に配置されます。引数 index を省略すると、Sorted プロパティが真 (True) のとき、item は並べ替えられてから適切な位置に配置されます。Sorted プロパティが偽 (False) のとき、item はリストの最後に追加されます。

データ (Data) コントロールに結合されたリスト ボックス コントロールやコンボ ボックス コントロールでは、AddItem メソッドは使えません。


関連項目

Clear メソッド (Clipboard オブジェクト、コンボ ボックス、リスト ボックス)

RemoveItem メソッド


AddItem メソッドの対象

コンボ ボックス (ComboBox) コントロール

グリッド (Grid) コントロール

リスト ボックス (ListBox) コントロール


Arrange メソッド

関連項目	例	対象

MDIForm オブジェクト上のウィンドウやアイコンを整列します。名前付き引数は指定できません。

構文

object.Arrange arrangement

Arrange メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

arrangement	必ず指定します。MDIForm オブジェクト上でウィンドウやアイコンを整列する方法を示す値または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 arrangement の設定値は次のとおりです。

定数	値	内容

vbCascade	0	最小化されていないすべての MDI 子フォームを重ねて表示します。

vbTileHorizontal	1	最小化されていないすべての MDI 子フォームを横割り表示します。

vbTileVertical	2	最小化されていないすべての MDI 子フォームを縦割り表示します。

vbArrangeIcons	3	最小化した MDI 子フォームのアイコンを整列させます。

解説

ここで示した定数はオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

MDIForm オブジェクトが最小化されているときでも、フォームのウィンドウやアイコンは整列されます。結果を確認するには、最小化した MDIForm オブジェクトを元のサイズに戻すか最大化します。


関連項目

ZOrder メソッド


Arrange メソッドの対象

MDIForm オブジェクト


Clear メソッド (クリップボード、コンボ ボックス (ComboBox) コントロール、リスト ボックス (ListBox) コントロール)
Clear メソッド (Clipboard オブジェクト、コンボ ボックス、リスト ボックス)

関連項目	例	対象

リスト ボックス (ListBox) コントロール、コンボ ボックス (ComboBox) コントロール、またはクリップボードの内容をクリアします。

構文

object.Clear

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

データ (Data) コントロールに結合されたリスト ボックス コントロールやコンボ ボックス コントロールでは、Clear メソッドは使えません。


関連項目

AddItem メソッド

RemoveItem メソッド


Clear メソッドの対象

Clipboard オブジェクト

コンボ ボックス (ComboBox) コントロール

リスト ボックス (ListBox) コントロール


Cls メソッド

関連項目	例	対象

実行時に作成したグラフィックスまたはテキストを、フォームまたはピクチャ ボックス (PictureBox) コントロールからクリアします。

構文

object.Cls

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、フォーカスを持っている Form オブジェクトが object としてクリアされます。

解説

Cls メソッドは、実行時にグラフィックス関連のステートメントまたは出力関連のステートメントで作成された、テキストとグラフィックスをクリアします。Picture プロパティで設定した背景のビットマップや、デザイン時にフォームに配置したコントロールは Cls メソッドではクリアされません。Cls メソッドを実行する前に AutoRedraw プロパティを偽 (False) に設定すると、AutoRedraw プロパティが真 (True) の間にフォーム、ピクチャ ボックス コントロールなどの上に配置したグラフィックスやテキストも、Cls メソッドではクリアされません。このように、フォーム、ピクチャ ボックス コントロールなどの AutoRedraw プロパティを操作して、グラフィックスやテキストを保持することができます。

Cls メソッドを実行すると、指定したフォーム、イメージ コントロール、ピクチャ ボックス コントロールの CurrentX プロパティと CurrentY プロパティが 0 に再設定されます。


関連項目

AutoRedraw プロパティ

CurrentX、CurrentY プロパティ


Cls メソッドの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール


Drag メソッド

関連項目	例	対象

ライン (Line)、メニュー (Menu)、シェイプ (Shape)、タイマー (Timer)、コモンダイアログ (CommonDialog) の各コントロール以外のオブジェクトのドラッグ操作を、開始、終了、またはキャンセルします。名前付き引数は指定できません。

構文

object.Drag action

Drag メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、Drag メソッドを呼び出したイベント プロシージャのオブジェクトが object と見なされます。

action	実行する動作を示す定数または値を指定します。設定する値については、次の「設定値」を参照してください。引数 action を省略すると、オブジェクトのドラッグを開始します。

設定値

引数 action の設定値は次のとおりです。

定数	値	内容

vbCancel	0	ドラッグ操作を取り消します。

vbBeginDrag	1	object のドラッグを開始します。

vbEndDrag	2	object のドラッグを終了して、object をドロップします。

解説

ここで示した定数はオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

コントロールの DragMode プロパティが 0 (手動) に設定されているときだけ、Drag メソッドを使ってドラッグ アンド ドロップ操作を制御する必要があります。コントロールの DragMode プロパティが 1 または定数 vbAutomatic (自動) に設定されているときも、Drag メソッドを使ってドラッグ アンド ドロップできます。

コントロールのドラッグ中にマウス ポインタを変更するには、DragIcon プロパティまたは MousePointer プロパティを使ってマウス ポインタを定義します。MousePointer プロパティは、DragIcon プロパティが指定されていないときにだけ使われます。

以前のバージョンの Microsoft Visual Basic では、Drag メソッドはドラッグ操作が終了していなくても次のステートメントが実行される非同期メソッドでした。Visual Basic Version 4.0 の Drag メソッドは、ドラッグ操作が終了するまで次のステートメントが実行されない同期メソッドです。


関連項目

DragDrop イベント

DragIcon プロパティ

DragMode プロパティ

DragOver イベント

MousePointer プロパティ


Drag メソッドの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB グリッド (DBGrid) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール

垂直スクロール バー (VScrollBar) コントロール


EndDoc メソッド

関連項目	例	対象

Printer オブジェクトに送っているドキュメントを終了し、印刷デバイスやスプーラに出力処理の制御を渡します。

構文

object.EndDoc

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

EndDoc メソッドを NewPage メソッドの直後に実行しても、余分な空白ページは印刷されません。


関連項目

KillDoc メソッド

NewPage メソッド


EndDoc メソッドの対象

Printer オブジェクト


GetData メソッド

関連項目	例	対象

Clipboard オブジェクトにロードされているピクチャを返します。名前付き引数は指定できません。

構文

object.GetData (format)

GetData メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

format 	Clipboard オブジェクトのグラフィックス形式を指定する定数または値を、かっこで囲んで指定します。設定する値については、次の「設定値」を参照してください。引数 format に 0 を指定するか、省略すると、GetData メソッドは自動的に適切な形式を使います。

設定値

引数 format の設定値は次のとおりです。

定数	値	クリップボードの形式

vbCFBitmap	2	ビットマップ (.BMP ファイル)

vbCFMetafile	3	メタファイル (.WMF ファイル)

vbCFDIB	8	デバイス独立ビットマップ (DIB ファイル)

vbCFPalette	9	カラー パレット

解説

ここで示した定数はオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

指定した形式と一致するピクチャがクリップボードにないと、GetData メソッドはなにも返しません。クリップボードにカラー パレットしかないときは、最小のサイズ (1 x 1) のデバイス独立ビットマップが作成されます。


関連項目

GetFormat メソッド

GetText メソッド

SetData メソッド

SetText メソッド


GetData メソッドの対象

Clipboard オブジェクト


GetFormat メソッド

関連項目	例	対象

指定した形式と一致するアイテムが Clipboard オブジェクトにあるかどうかを示す整数を返します。名前付き引数は指定できません。

構文

object.GetFormat (format)

GetFormat メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

format 	必ず指定します。Clipboard オブジェクトの形式を示す値または定数を、かっこで囲んで指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 format の設定値は次のとおりです。

定数	値	クリップボードの形式

vbCFLink	HBF00	DDE 通信の情報

vbCFText	1	テキスト

vbCFBitmap	2	ビットマップ (.BMP ファイル)

vbCFMetafile	3	メタファイル (.WMF ファイル)

vbCFDIB	8	デバイス独立ビットマップ (DIB ファイル)

vbCFPalette	9	カラー パレット

解説

ここで示した定数はオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

GetFormat メソッドは、指定した形式と一致するアイテムがクリップボード上にあるときは真 (True) を返します。その他の場合は偽 (False) を返します。

定数 vbCFDIB または vbCFBitmap を指定したときは、クリップボード上のパレットを使ってピクチャを表示します。


関連項目

GetData メソッド

GetText メソッド

SetData メソッド

SetText メソッド


GetFormat メソッドの対象

Clipboard オブジェクト


GetText メソッド

関連項目	例	対象

Clipboard オブジェクトからテキスト文字列を返します。名前付き引数は指定できません。

構文

object.GetText (format)

GetText メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

format 	Clipboard オブジェクトの形式を示す値または定数を、かっこで囲んで指定します。また、この引数は省略可能です。設定する値については、次の「設定値」を参照してください。

設定値

引数 format の設定値は次のとおりです。

定数	値	クリップボードの形式

vbCFLink	&HBF00	DDE 通信の情報

vbCFText	1	(既定値) テキスト

解説

ここで示した定数はオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

指定した形式と一致するテキスト文字列がクリップボード上にないとき、GetText メソッドは長さ 0 の文字列 ("") を返します。


関連項目

GetData メソッド

GetFormat メソッド

SetData メソッド

SetText メソッド


GetText メソッドの対象

Clipboard オブジェクト


Hide メソッド

関連項目	例	対象

MDIForm オブジェクトまたは Form オブジェクトを非表示にします。ただし、アンロードはしません。

構文

object.Hide

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、フォーカスを持っている Form オブジェクトが object として非表示になります。

解説

フォームを非表示にすると、そのフォームは画面から消えて、フォームの Visible プロパティが偽 (False) に設定されます。ユーザーは非表示にしたフォームのコントロールにはアクセスできませんが、実行中の Microsoft Visual Basic のプログラムからはアクセスできます。その他、ダイナミック データ エクスチェンジ (DDE) を通じてアプリケーションと通信しているプロセスやタイマー (Timer) コントロールのイベントからも、非表示にしたフォームのコントロールにアクセスできます。

フォームを非表示にすると、フォームを非表示にしたイベント プロシージャ内のコードがすべて実行されるまでそのフォームを操作できません。

フォームがロードされていない状態で Hide メソッドを実行すると、指定したフォームがロードされますが、表示はされません。


関連項目

Load ステートメント

Show メソッド

Unload ステートメント

Visible プロパティ


Hide メソッドの対象

Form オブジェクト

MDIForm オブジェクト


KillDoc メソッド

関連項目	例	対象

現在実行されている印刷ジョブを直ちに終了します。

構文

object.KillDoc

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

オペレーティング システムのプリント マネージャが印刷ジョブを実行している場合、つまり、プリント マネージャが実行中でバックグラウンドでの印刷が有効になっている場合、KillDoc メソッドは現在の印刷ジョブを削除し、プリンタがデータを受け取らないようにします。

プリント マネージャが印刷ジョブを実行していない場合、つまり、バックグラウンドでの印刷が無効になっている場合は、KillDoc メソッドが有効になる前に、データの一部または全部がプリンタに送られることがあります。このような場合、可能であれば、プリンタ ドライバがプリンタを再設定し、印刷ジョブを終了します。


関連項目

EndDoc メソッド


KillDoc メソッドの対象

Printer オブジェクト


LinkExecute メソッド

関連項目	例	対象

ダイナミック データ エクスチェンジ (DDE) 通信の相手となるソース アプリケーションにコマンド文字列を送ります。名前付き引数は指定できません。

構文

object.LinkExecute string

LinkExecute メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

string	必ず指定します。ソース アプリケーションが認識するコマンドを含む文字列式を指定します。

解説

引数 string の実際の値は、ソース アプリケーションによって異なります。たとえば、Microsoft Excel と Microsoft Word では、これらのアプリケーションのマクロ コマンドを角かっこ ([ ]) で囲んだものをコマンド文字列として受け取ります。ソース アプリケーションが受け取ることのできるコマンド文字列については、各アプリケーションのマニュアルを参照してください。


関連項目

LinkExecute イベント

LinkPoke メソッド

LinkRequest メソッド

LinkSend メソッド


LinkExecute メソッドの対象

ラベル (Label) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


LinkPoke メソッド

関連項目	例	対象

ダイナミック データ エクスチェンジ (DDE) 通信のソース アプリケーションにラベル (Label) コントロール、ピクチャ ボックス (PictureBox) コントロール、テキスト ボックス (TextBox) コントロールの内容を送ります。

構文

object.LinkPoke

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

引数 object には、DDE 通信のディスティネーションとなるテキスト ボックス、ピクチャ ボックス、ラベル の各コントロールの名前 (Name プロパティの設定値) を指定します。引数 object にラベル コントロールが指定されている場合、LinkPoke メソッドは Caption プロパティの現在の内容をソースに送ります。object がピクチャ ボックス コントロールの場合、LinkPoke メソッドは Picture プロパティの現在の内容をソースに送ります。object がテキスト ボックス コントロールの場合、LinkPoke メソッドは Text プロパティの現在の内容をソースに送ります。

通常、DDE 通信における情報はソースからディスティネーションへデータを送りますが、LinkPoke メソッドを使うとディスティネーション オブジェクトからソースへデータを送ることができます。ただし、ソース アプリケーションによっては、この機能に対応していないものもあります。ソース アプリケーションがデータを受け取れない場合は、エラーが発生します。


関連項目

LinkExecute メソッド

LinkRequest メソッド

LinkSend メソッド


LinkPoke メソッドの対象

ラベル (Label) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


LinkRequest メソッド

関連項目	例	対象

DDE (ダイナミック データ エクスチェンジ) 通信のソースに、ラベル (Label)、ピクチャ ボックス (PictureBox)、テキスト ボックス (TextBox) の各コントロールの内容の更新を要求します。

構文

object.LinkRequest

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

引数 object には、DDE 通信のディスティネーションとなるラベル、ピクチャ ボックス、テキスト ボックス の各コントロールの名前 (Name プロパティの設定値) を指定します。LinkRequest メソッドによってソース アプリケーションは最新のデータを object に送ります。object がラベル コントロールの場合は Caption プロパティの値、ピクチャ ボックス コントロールの場合は Picture プロパティの値、テキスト ボックス コントロールの場合は Text プロパティの値が、それぞれ更新されます。

object の LinkMode プロパティが自動 (1 または定数 vbLinkAutomatic) に設定されていると、ソース アプリケーションが object の値を自動的に更新するので、LinkRequest メソッドは必要ありません。LinkMode プロパティの値が手動 (2 または定数 vbLinkManual) に設定されていると、LinkRequest メソッドによって要求された場合のみ、ソース アプリケーションが object を更新します。LinkMode プロパティが通知 (3 または定数 vbLinkNotify) に設定されていると、LinkNotify イベントによってデータの変更がディスティネーションに通知されますが、実際にディスティネーションのデータを更新するには、LinkRequest メソッドを使う必要があります。


関連項目

LinkExecute メソッド

LinkMode プロパティ

LinkNotify イベント

LinkPoke メソッド

LinkSend メソッド


LinkRequest メソッドの対象

ラベル (Label) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


LinkSend メソッド

関連項目	対象

DDE 通信のディスティネーション アプリケーションに、ピクチャ ボックス (PictureBox) コントロールの内容を送ります。

構文

object.LinkSend

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

引数 object には、DDE 通信のソース となっている Form オブジェクト上のピクチャ ボックス コントロールの名前 (Name プロパティの設定値) を指定します。

作成するアプリケーションのフォームに対して他のアプリケーションからの自動リンクが設定されている場合、そのフォーム上のテキスト ボックス (TextBox) コントロールやラベル (Label) コントロールの内容が変更されると、ディスティネーション アプリケーションに対して自動的に更新が行われます。しかし、ソース フォーム上のピクチャ ボックス コントロールの Picture プロパティが変更されても、DDE ディスティネーションは更新されません。これは、ピクチャ ボックス コントロールに保持されているデータ量が非常に大きくなる場合があり、1 ピクセルの変更ごとに更新していると効率が非常に低下してしまうためです。このため、Microsoft Visual Basic アプリケーションでピクチャ ボックス コントロールの内容が変更されたときは、LinkSend メソッドを使って明示的に DDE ディスティネーションを更新するようにしてください。


関連項目

LinkExecute メソッド

LinkPoke メソッド

LinkRequest メソッド

Picture プロパティ


LinkSend メソッドの対象

ピクチャ ボックス (PictureBox) コントロール


LoadResData メソッド

関連項目

リソース (.RES) ファイルからロード可能な形式のデータをロードして、バイト型 (Byte) の配列を返します。

構文

LoadResData(index, format)

LoadResData メソッドの構文の指定項目は次のとおりです。

指定項目	内容

index	必ず指定します。リソース ファイルのデータの識別子 (ID) を指定する整数または文字列を指定します。リソース ID が 1 のリソースは、アプリケーションのアイコンのために予約されています。

format	必ず指定します。返されるデータの元の形式を指定する値です。設定する値については、次の「設定値」を参照してください。ユーザー定義のリソースの文字列の名前を指定することもできます。

設定値

引数 format の設定値は次のとおりです。

設定値	内容

1	カーソル リソース

2	ビットマップ リソース

3	アイコン リソース

4	メニュー リソース

5	ダイアログ ボックス

6	文字列テーブルリソース

7	フォント ディレクトリ リソース

8	フォント リソース

9	アクセラレータ テーブル

10	ユーザー定義リソース

12	グループ カーソル

14	グループ アイコン

解説

LoadResData メソッドがリソース ファイルからロードできるデータのサイズは、64KB までです。

ビットマップ、アイコン、カーソルの各リソースに対して LoadResData メソッドを使うと、リソースの実際のビットを保持している文字列が返されます。ビットマップ、アイコンを実際に使う場合は、LoadResPicture メソッドを使います。

LoadResData メソッドは、Microsoft Visual Basic アプリケーションのローカライズに役立ちます。このメソッドを使うと、翻訳が必要なリソースが 1 つのリソースに分離されます。また、ソースコードを操作したり、アプリケーションを再コンパイルする必要がなくなります。


関連項目

LoadResPicture メソッド

LoadResString メソッド

リソース ファイルの使い方


LoadResPicture メソッド

関連項目

リソース (.RES) ファイルからビットマップ、アイコン、またはカーソルをロードします。

構文

LoadResPicture(index, format)

LoadResPicture メソッドの構文の指定項目は次のとおりです。

指定項目	内容

index	必ず指定します。リソース ファイルのデータの識別子 (ID) を指定する整数を指定します。すべてのリソース ファイルの最初の ID に対する引数 index は、1 になります。リソース ID が 1 のリソースは、アプリケーションのアイコンのために予約されています。

format	必ず指定します。返されるデータの形式を指定する値または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 format の設定値は次のとおりです。

定数	値	内容

vbResBitmap	0	ビットマップ リソース

vbResIcon	1	アイコン リソース

vbResCursor	2	カーソル リソース

解説

Form オブジェクトまたはコントロールの Picture プロパティに保存されているピクチャを参照する代わりに、LoadResPicture メソッドを使うことができます。

リソース ファイルにビットマップ、アイコン、またはカーソルを保存し、それらをアクセスすると、Form オブジェクトをロードするときに一度にすべてのリソースをロードするのではなく、必要に応じて個々にリソース ファイルからロードすることができるので、ロード時間を短縮することができます。

LoadResPicture メソッドは、Microsoft Visual Basic アプリケーションのローカライズに役立ちます。このメソッドを使うと、翻訳が必要なリソースが 1 つのリソースに分離されます。また、ソースコードを操作したり、アプリケーションを再コンパイルする必要がなくなります。


関連項目

LoadResData メソッド

LoadResString メソッド

リソース ファイルの使い方


LoadResString メソッド

関連項目

リソース (.RES) ファイルから文字列をロードします。

構文

LoadResString(index)

LoadResString メソッドの構文の指定項目は次のとおりです。

指定項目	内容

index	必ず指定します。リソース ファイルのデータの識別子 (ID) を指定する整数を指定します。リソース ID が 1 のリソースは、アプリケーションのアイコンのために予約されています。

解説

コード内でリテラル文字列を使う代わりに、LoadResString メソッドを使うことができます。リソース ファイルに長い文字列データを保存し、その文字列にアクセスすると、Form オブジェクトをロードするときに一度にすべてをロードするのではなく、必要に応じて個々にリソース ファイルからロードすることができるので、ロード時間を短縮することができます。

LoadResString メソッドは、Microsoft Visual Basic アプリケーションのローカライズに役立ちます。このメソッドを使うと、翻訳が必要なリソースが 1 つのリソースに分離されます。また、ソースコードを操作したり、アプリケーションを再コンパイルする必要がなくなります。


関連項目

LoadResData メソッド

LoadResPicture メソッド

リソース ファイルの使い方


Move メソッド

関連項目	例	対象

MDIForm オブジェクト、Form オブジェクト、またはコントロールを移動します。名前付き引数は指定できません。

構文

object.Move left, top, width, height

Move メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、フォーカスを持っている Form オブジェクトが指定されます。

left	必ず指定します。object の左端の水平方向の座標を示す単精度の値を指定します。

top	省略可能です。object の上端の垂直方向の座標を示す単精度の値を指定します。

width	省略可能です。object の幅を示す単精度の値を指定します。

height	省略可能です。object の高さを示す単精度の値を指定します。

解説

引数 left 以外の引数はすべて省略可能ですが、left 以外の引数を指定するときは、指定する引数より前の引数をすべて指定する必要があります。たとえば、引数 width を指定するときは、必ず引数 left と top も指定します。指定した引数より後にある指定しなかった引数の値は、変更されません。フォームやフレーム (Frame) コントロール内のコントロールでは、常に twip 単位の座標系を使います。画面上でフォームを移動したり、フレーム コントロール内でコントロールを移動したりするときは、常に原点 (0,0) を基準とします。原点は画面またはフレームの左上隅です。また、Form オブジェクトやピクチャ ボックス (PictureBox) コントロール (または、MDIForm オブジェクト上の MDI 子フォーム) 上でコントロールを移動するときは、コンテナ オブジェクトで設定されている座標系を使います。座標系を設定するには、デザイン時に ScaleMode プロパティを使います。実行時に Scale メソッドを使って、座標系を変更することもできます。


関連項目

Height、Width プロパティ

Left、Top プロパティ

ScaleHeight、ScaleWidth プロパティ

ScaleLeft、ScaleTop プロパティ

ScaleMode プロパティ


Move メソッドの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

ライン (Line) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール

垂直スクロール バー (VScrollBar) コントロール


NewPage メソッド

関連項目	例	対象

現在のページを終了し、次のページに進みます。

構文

object.NewPage

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

NewPage メソッドはプリンタ出力の改ページを行い、印刷位置を新しいページの左上隅にリセットします。NewPage メソッドが実行されると、Printer オブジェクトの Page プロパティの値が 1 つ増やされます。


関連項目

EndDoc メソッド

KillDoc メソッド

Page プロパティ


NewPage メソッドの対象

Printer オブジェクト


PaintPicture メソッド

関連項目	対象

Form オブジェクト、ピクチャ ボックス (PictureBox) コントロール、Printer オブジェクト上のグラフィックス ファイル (.BMP、.WMF、.EMF、.ICO、または .DIB) を描きます。名前付き引数は指定できません。

構文

object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode

PaintPicture メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、フォーカスを持っている Form オブジェクトにピクチャが描かれます。

picture	必ず指定します。object に描かれるピクチャのソースを指定します。指定するピクチャは、Form オブジェクトまたはピクチャ ボックス (PictureBox) コントロールの Picture プロパティと同じにします。

x1, y1	必ず指定します。picture が描かれる、object 内のディスティネーションの座標 (x 軸と y 軸) を示す単精度の値を指定します。

width1	省略可能です。picture のディスティネーションの幅を示す単精度の値を指定します。object の ScaleMode プロパティによって単位が決まります。ディスティネーションの幅がソースの幅 (width2) と等しくない場合、picture はそれに合うように拡大、または縮小されます。引数を省略すると、指定したソースの幅が使われます。

height1	省略可能です。picture のディスティネーションの高さを示す単精度の値を指定します。object の ScaleMode プロパティによって単位が決まります。ディスティネーションの高さがソースの高さ (height2) と等しくない場合、picture はそれに合うように拡大、または縮小されます。この引数を省略すると、指定したソースの高さが使われます。

x2, y2	picture 内のクリップ領域の座標 (x 軸と y 軸) を示す単精度の値を指定します。省略すると、0 と見なされます。

width2	省略可能です。picture 内のクリッピング領域のソース幅を示す単精度の値を指定します。object の ScaleMode プロパティによって単位が決まります。この引数を省略すると、指定したソース全体の幅が使われます。

height2	省略可能です。picture 内のクリッピング領域のソースの高さを示す単精度の値を指定します。object の ScaleMode プロパティによって単位が決まります。この引数を省略すると、指定したソースの高さが使われます。

opcode	省略可能です。ビットマップだけで使われる長整数型 (Long) の値またはコードを指定します。picture を object 上に描くときに実行されるビット演算 (Not 演算子や Xor 演算子) を定義します。ビット演算の一覧については、Windows SDK ヘルプ ファイル (WIN31WH.HLP) の「BitBlt」を参照してください。

解説

ディスティネーションの高さ (height1) や幅 (width1) に負の値を使って、ビットマップを垂直方向、または水平方向に反転することができます。

オプションを設定するための引数は、必要なければ省略できます。オプションの引数を省略する場合、最後の引数の後ろにはカンマを付けないでください。オプションの引数を指定する場合、その前の構文のすべてのオプションの引数を指定する必要があります。


関連項目

Scale メソッド

ScaleMode プロパティ

ScaleX、ScaleY メソッド


PaintPicture メソッドの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


Point メソッド

関連項目	例	対象

Form オブジェクトやピクチャ ボックス (PictureBox) コントロールの、指定された位置の色を示す (RGB) 値を長整数型 (Long) の整数で返します。名前付き引数は指定できません。

構文

object.Point(x, y)

Point メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	省略可能です。オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、フォーカスを持っている Form オブジェクトが object と見なされます。

x, y	必ず指定します。Form オブジェクトやピクチャ ボックス コントロールの ScaleMode プロパティの点の水平 (x 軸) と垂直 (y 軸) の座標を示す単精度の値を指定します。これらはかっこで囲みます。

解説

x 座標と y 座標によって指定した点が object の外側にあると、Point メソッドは -1 を返します。


関連項目

Circle メソッド

Line メソッド

Print メソッド

PSet メソッド


Point メソッドの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール


PopupMenu メソッド

関連項目	例	対象

MDIForm オブジェクトや Form オブジェクト上の、現在のマウスの位置または指定された座標にポップアップ メニューを表示します。名前付き引数は指定できません。

構文

object.PopupMenu menuname, flags, x, y, boldcommand

PopupMenu メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	省略可能です。オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、フォーカスを持っている Form オブジェクトが object と見なされます。

menuname	必ず指定します。表示するポップアップ メニューの名前を指定します。指定されたメニューは、少なくとも 1 つのサブメニューを持っている必要があります。

flags	省略可能です。ポップアップ メニューの位置と動作を指定する値または定数を指定します。設定する値については、次の「設定値」を参照してください。

x	省略可能です。ポップアップ メニューを表示する x 座標を指定します。省略すると、マウスの座標が指定されます。

y	省略可能です。ポップアップ メニューを表示する y 座標を指定します。省略すると、マウスの座標が使われます。

boldcommand	省略可能です。ポップアップ メニューのうち太字で表示されるメニュー コントロールを指定します。省略すると、ポップアップ メニューのコントロールはすべて太字の指定なしで表示されます。

この引数は、Microsoft Windows 95 で実行中のアプリケーションでのみ有効です。Microsoft Windows 3.1 または Microsoft Windows NT 3.51 でアプリケーションを実行する場合は、この引数は無効になります。

設定値

引数 flags の設定値は次のとおりです。

定数 (位置)	値	内容

vbPopupMenuLeftAlign	0	(既定値) ポップアップ メニューの左端が x に配置されます。

vbPopupMenuCenterAlign	4	ポップアップ メニューの中央が x に配置されます。

vbPopupMenuRightAlign	8	ポップアップ メニューの右端が x に配置されます。

定数 (動作)	値	内容

vbPopupMenuLeftButton	0	(既定値) ポップアップ メニューの項目は、左マウス ボタンを押したときのみ、クリックに反応します。

vbPopupMenuRightButton	2	左右どちらのマウス ボタンを押したときも、ポップアップ メニューの項目はクリックに反応します。

注   引数 flags を 2 つ指定するときは、Or 演算子を使ってそれぞれのグループから 1 つずつ定数を組み合わせます。

解説

ここで示した定数は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

x 座標と y 座標の単位は、ScaleMode プロパティを使って指定します。x 座標と y 座標は、指定されたフォームを基準として、ポップアップ メニューが表示される位置を定義します。x 座標と y 座標が指定されていない場合、ポップアップ メニューはマウス ポインタの現在位置に表示されます。

ポップアップ メニューを表示すると、PopupMenu メソッドの呼び出しに続くコードは、ユーザーがメニューのコマンドを選択する (この場合、PopupMenu ステートメントに続くコードの前にそのメニュー コマンドの Click イベントに対応するコードが実行されます) か、メニューを取り消すまで実行されません。また、同時に表示できるポップアップ メニューは 1 つだけです。そのため、ポップアップ メニューが既に表示されているか、プルダウン メニューが開いている場合には、この PopupMenu メソッドの呼び出しは無視されます。

Visual Basic では、ポップアップ メニューを表示するときにメニューの Visible プロパティが無視されるので、メニュー エディタでメニュー バーの Visible プロパティを偽 (False) に設定して、メニュー バー上に表示しないようになっていても、ポップアップ メニューは表示されます。


関連項目

メニュー エディタ

MouseDown、MouseUp イベント

Or 演算子

ScaleMode プロパティ

Visible プロパティ


PopupMenu メソッドの対象

Form オブジェクト

MDIForm オブジェクト


PrintForm メソッド

関連項目	例	対象

Form オブジェクトのビット単位のイメージをプリンタに送ります。

構文

object.PrintForm

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、フォーカスを持っている Form オブジェクトが指定されます。

解説

PrintForm メソッドはフォーム上に表示されているすべてのオブジェクトとビットマップを印刷します。また、実行時に Form オブジェクトやピクチャ ボックス (PictureBox) コントロールに追加されたピクチャも、それが描画されたときに AutoRedraw プロパティが真 (True) になっていれば印刷します。

PrintForm メソッドで出力を行うときには、Microsoft Windows のコントロール パネルで設定されているプリンタが使われます


関連項目

AutoRedraw プロパティ

EndDoc メソッド

Print メソッド

Printer オブジェクト、Printers コレクション

TrackDefault プロパティ


PrintForm メソッドの対象

Form オブジェクト


RemoveItem メソッド

関連項目	例	対象

実行時にリスト ボックス (ListBox) コントロールまたはコンボ ボックス (ComboBox) コントロールから項目を削除します。または、グリッド (Grid) コントロールから行を削除します。名前付き引数は指定できません。

構文

object.RemoveItem index

RemoveItem メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

index	必ず指定します。削除する項目または行のオブジェクト内の位置を示す整数値を指定します。リスト ボックス コントロールまたはコンボ ボックス コントロールの先頭の項目を削除するときや、グリッド コントロールの 1 行めを削除するときは、引数 index に 0 を指定します。

解説

データ (Data) コントロールに結合されたリスト ボックス コントロールやコンボ ボックス コントロールでは、RemoveItem メソッドは使用できません。


関連項目

AddItem メソッド

Clear メソッド (Clipboard オブジェクト、コンボ ボックス、リスト ボックス)


RemoveItem メソッドの対象

コンボ ボックス (ComboBox) コントロール

グリッド (Grid) コントロール

リスト ボックス (ListBox) コントロール


Scale メソッド

関連項目	例	対象

Form オブジェクト、ピクチャ ボックス (PictureBox) コントロール、Printer オブジェクトの座標系を定義します。名前付き引数は指定できません。

構文

object.Scale (x1, y1) - (x2, y2)

Scale メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	省略可能です。オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、フォーカスを持っている Form オブジェクトが指定されます。

x1, y1	省略可能です。object の左上隅の水平 (x 軸) および垂直 (y 軸) 座標を定義する単精度の値を指定します。値はかっこで囲みます。この引数を省略すると、引数 x2、y2 で設定された値も省略されます。

x2, y2	省略可能です。object の右下隅の水平および垂直座標を定義する単精度の値を指定します。値はかっこで囲みます。この引数を省略すると、引数 x1、y1 で設定された値も省略されます。

解説

Scale メソッドを使うと、任意のスケールに座標系を設定できます。Scale メソッドは、実行時のグラフィックス関連のステートメントとコントロールの配置との両方の座標系に影響します。引数を省略して Scale メソッドを実行すると、座標系は twip 単位にリセットされます。


関連項目

ScaleHeight、ScaleWidth プロパティ

ScaleLeft、ScaleTop プロパティ

ScaleMode プロパティ


Scale メソッドの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


ScaleX、ScaleY メソッド

関連項目	対象

Form オブジェクト、ピクチャ ボックス (PictureBox) コントロール、Printer オブジェクトの幅や高さの値を、ScaleMode プロパティに設定されている単位から別の単位に変換します。名前付き引数は指定できません。

構文

object.ScaleX (width, fromscale, toscale)

object.ScaleY (height, fromscale, toscale)

ScaleX メソッドと ScaleY メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	省略可能です。オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、フォーカスを持っている Form オブジェクトが指定されます。

width	必ず指定します。オブジェクトの幅の値を変換前の単位で指定します。

height	必ず指定します。オブジェクトの高さの値を変換前の単位で指定します。

fromscale	object の width や height の変換前の座標系を指定する定数または値を指定します。設定する値については、次の「設定値」を参照してください。引数 fromscale に指定可能な値は ScaleMode プロパティの値と同じですが、HiMetric (0.01 ミリメートル単位) という値が新規に追加されています。

toscale	object の width や height の変換後の座標系を指定する定数または値です。設定する値については、次の「設定値」を参照してください。引数 toscale に指定可能な値は ScaleMode プロパティの値と同じですが、HiMetric という値が新規に追加されています。

設定値

引数 fromscale と toscale の設定値は次のとおりです。

定数	値	内容

vbUser	0	ユーザー定義。object の幅や高さを任意の値に設定することを示します。

vbTwips	1	twip 単位 (論理インチ当たり 1440 twip。論理センチメートル当たりでは 567 twip)。

vbPoints	2	ポイント 単位 (論理インチ当たり 72 ポイント)。

vbPixels	3	ピクセル 単位 (モニタやプリンタの解像度の最小単位)。

vbCharacters	4	文字 (水平方向では単位当たり 120 twip。垂直方向では単位当たり 240 twip)。

vbInches	5	インチ。

vbMillimeters	6	ミリメートル。

vbCentimeters	7	センチメートル。

指定なし。	8	(既定値)HiMetric。引数 fromscale を省略すると、HiMetric が既定値となります。

解説

ScaleX メソッドと ScaleY メソッドは、引数 fromscale に指定された単位 (width または height ) で値を受け取り、それを引数 toscale に指定された単位の値に変換します。

また、PaintPicture メソッドと組み合わせて、ScaleX メソッドと ScaleY メソッドを使うこともできます。


関連項目

ScaleHeight、ScaleWidth プロパティ

ScaleLeft、ScaleTop プロパティ

ScaleMode プロパティ


ScaleX、ScaleY メソッドの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


SetData メソッド

関連項目	対象

指定した形式で、Microsoft Windows の Clipboard オブジェクトにピクチャを挿入します。名前付き引数は指定できません。

構文

object.SetData data, format

SetData メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

data	必ず指定します。Clipboard オブジェクトに挿入するピクチャ (Image プロパティまたは Picture プロパティの値) を指定します。

format	Microsoft Visual Basic で認識される Clipboard オブジェクトの形式を指定します。設定する値については、次の「設定値」を参照してください。引数 format を省略すると、自動的に適切な形式が選択されます。

設定値

引数 format の設定値は次のとおりです。

定数	値	クリップボードの形式

vbCFBitmap	2	ビットマップ (.BMP ファイル)

vbCFMetafile	3	メタファイル (.WMF ファイル)

vbCFDIB	8	デバイス独立ビットマップ (DIB)

vbCFPalette	9	カラー パレット

解説

ここで示した定数はオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

Clipboard オブジェクトに挿入するピクチャは、LoadPicture 関数か、Form オブジェクト、イメージ (Image) コントロール、ピクチャ ボックス (PictureBox) コントロールの Picture プロパティで設定します。


関連項目

GetData メソッド

GetFormat メソッド

GetText メソッド

SetText メソッド


SetData メソッドの対象

Clipboard オブジェクト


SetText メソッド

関連項目	例	対象

指定したクリップボードの形式で、Microsoft Windows の Clipboard オブジェクトにテキスト文字列をコピーします。名前付き引数は指定できません。

構文

object.SetText data, format

SetText メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。

data	必ず指定します。クリップボードに挿入する文字列データを指定します。

format	省略可能です。Microsoft Visual Basic で認識されるクリップボード形式を示す定数または値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 format の設定値は次のとおりです。

定数	値	クリップボードの形式

vbCFLink	&HBF00	DDE 通信の情報

vbCFRTF	&HBF01	リッチ テキスト

vbCFText	1	(既定値) テキスト

解説

ここで示した定数はオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。


関連項目

GetData メソッド

GetFormat メソッド

GetText メソッド

SetData メソッド


SetText メソッドの対象

Clipboard オブジェクト


Show メソッド

関連項目	例	対象

MDIForm オブジェクトまたは Form オブジェクトを表示します。名前付き引数は指定できません。

注   Show メソッドを使用する場合の Visual Basic インプロセス OLE サーバー (DLL) に関する注意および制限については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

構文

object.Show style

Show メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	省略可能です。オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、アクティブなフォーム モジュールに関連付けられたフォームが指定されます。

style	省略可能です。フォームがモーダルであるかモードレスであるかを示す整数を指定します。引数 style に 0 を指定すると、フォームはモードレスになります。引数 style に 1 を指定すると、フォームはモーダルになります。

解説

指定したフォームがまだロードされていない場合に Show メソッドを実行すると、フォームは自動的にロードされます。

モードレス フォームを表示した後は、Show メソッド以後の Microsoft Visual Basic コードが順に実行されます。モーダル フォームを表示した後は、フォームを非表示にするかアンロードするまで、Show メソッド以後の Visual Basic コードは実行されません。

モーダル フォームを表示するときは、モーダル フォームを非表示にするかアンロードするまで、他のフォームはユーザーからの (キーボードまたはマウス クリックを使った) 入力を受け取れないことに注意してください。プログラムでは、入力を求める前にモーダル フォームを (通常はなんらかの操作に応じて) 非表示にするかアンロードしておきます。MDIForm オブジェクトをモーダル フォームとして表示することはできません。

モーダル フォームを表示すると、同じアプリケーション内の他のフォームは無効になりますが、他のアプリケーションのフォームは有効です。

アプリケーションのスタートアップ フォームに対応する Load イベント プロシージャを実行すると、スタートアップ フォームが自動的に表示されます。


関連項目

Activate、Deactivate イベント

Hide メソッド

Load ステートメント

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

Unload ステートメント

Visible プロパティ


Show メソッドの対象

Form オブジェクト

MDIForm オブジェクト


ShowColor メソッド

関連項目	例	対象

コモン ダイアログ (CommonDialog) コントロールの [色の設定] ダイアログ ボックスを表示します。

構文

object.ShowColor

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。


関連項目

ShowFont メソッド

ShowHelp メソッド

ShowOpen メソッド

ShowPrinter メソッド

ShowSave メソッド


ShowColor メソッドの対象

コモン ダイアログ (CommonDialog) コントロール


ShowFont メソッド

関連項目	例	対象

コモン ダイアログ (CommonDialog) コントロールの [フォントの指定] ダイアログ ボックスを表示します。

構文

object.ShowFont

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

ShowFont メソッドを使う前に、コモン ダイアログ (CommonDialog) コントロールの Flags プロパティを設定しなければなりません。設定できる定数または値はそれぞれ 3 つあり、これらの中から 1 つを選択して設定します。定数と値はそれぞれ対応しており、定数 cdlCFBoth と &H3、定数 cdlCFPrinterFonts と &H2、定数 cdlCFScreenFonts と &H1 があります。Flags プロパティが設定されていない場合は、“フォントがありません。”というメッセージ ボックスが表示され、実行時エラーが発生します。


関連項目

Flags プロパティ ([フォントの指定] ダイアログ ボックス)

ShowColor メソッド

ShowHelp メソッド

ShowOpen メソッド

ShowPrinter メソッド

ShowSave メソッド


ShowFont メソッドの対象

コモン ダイアログ (CommonDialog) コントロール


ShowHelp メソッド

関連項目	例	対象

WINHELP.EXE を実行し、指定されたヘルプ ファイルを表示します。

構文

object.ShowHelp

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

ShowHelp メソッドを使う前に、コモン ダイアログ (CommonDialog) コントロールの HelpFile プロパティおよび HelpCommand プロパティに適切な定数や値を設定する必要があります。設定されていない場合、WINHELP.EXE はヘルプ ファイルを表示しません。


関連項目

HelpCommand プロパティ

HelpFile プロパティ

ShowColor メソッド

ShowFont メソッド

ShowOpen メソッド

ShowPrinter メソッド

ShowSave メソッド


ShowHelp メソッドの対象

コモン ダイアログ (CommonDialog) コントロール


ShowOpen メソッド

関連項目	例	対象

コモン ダイアログ (CommonDialog) コントロールの [ファイルを開く] ダイアログ ボックスを表示します。

構文

object.ShowOpen

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。


関連項目

ShowColor メソッド

ShowFont メソッド

ShowHelp メソッド

ShowPrinter メソッド

ShowSave メソッド


ShowOpen メソッドの対象

コモン ダイアログ (CommonDialog) コントロール


ShowPrinter メソッド

関連項目	例	対象

コモン ダイアログ (CommonDialog) コントロールの [印刷] ダイアログ ボックスを表示します。

構文

object.ShowPrinter

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。


関連項目

ShowColor メソッド

ShowFont メソッド

ShowHelp メソッド

ShowOpen メソッド

ShowSave メソッド


ShowPrinter メソッドの対象

コモン ダイアログ (CommonDialog) コントロール


ShowSave メソッド

関連項目	例	対象

コモン ダイアログ (CommonDialog) コントロールの [ファイル名を付けて保存] ダイアログ ボックスを表示します。

構文

object.ShowSave

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。


関連項目

ShowColor メソッド

ShowFont メソッド

ShowHelp メソッド

ShowOpen メソッド

ShowPrinter メソッド


ShowSave メソッドの対象

コモン ダイアログ (CommonDialog) コントロール


TextHeight メソッド

関連項目	例	対象

Form オブジェクト、ピクチャ ボックス (PictureBox) コントロール、または Printer オブジェクトの現在のフォントでテキスト文字列を印刷したときの高さを返します。名前付き引数は指定できません。

構文

object.TextHeight(string)

TextHeight メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	省略可能です。オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、フォーカスを持っている Form オブジェクトが object と見なされます。

string	必ず指定します。テキストの高さを決める文字列への参照を表す文字列式を指定します。文字列式はかっこで囲みます。

解説

高さには、参照する object の ScaleMode プロパティまたは Scale メソッドで設定されている座標系が使われます。TextHeight メソッドは、テキストを表示するために必要な垂直方向の空間を調べるときに使います。返される高さには、通常の文字列の上下の空間も含まれます。このため、Form オブジェクト、ピクチャ ボックス コントロール、または Printer オブジェクトに複数行のテキストを出力するために必要な高さや出力位置を求めるときに、この高さを使うことができます。また、string に改行が含まれている場合、TextHeight メソッドは各行に上下の空間を含んだ高さの合計を返します。


関連項目

FontSize プロパティ

Scale メソッド

ScaleMode プロパティ

TextWidth メソッド


TextHeight メソッドの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


TextWidth メソッド

関連項目	例	対象

Form オブジェクト、ピクチャ ボックス (PictureBox) コントロール、または Printer オブジェクトの現在のフォントでテキスト文字列を印刷したときの幅を返します。名前付き引数は指定できません。

構文

object.TextWidth(string)

TextWidth メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、フォーカスを持っている Form オブジェクトが object と見なされます。

string	必ず指定します。テキストの幅を決める文字列への参照を表す文字列式を指定します。文字列式はかっこで囲みます。

解説

幅には、参照する object の ScaleMode プロパティまたは Scale メソッドで設定されている座標系が使われます。TextWidth メソッドは、テキストを表示するために必要な水平方向の空間を調べるときに使います。引数 string に改行が含まれている場合、TextWidth メソッドは最も長い行の幅を返します。


関連項目

FontSize プロパティ

Scale メソッド

ScaleMode プロパティ

TextHeight メソッド


TextWidth メソッドの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


ZOrder メソッド

関連項目	対象

指定された MDIForm オブジェクト、Form オブジェクト、またはコントロールの同一階層内での Z オーダーを変更します。名前付き引数は指定できません。

構文

object.ZOrder position

ZOrder メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	省略可能です。オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、フォーカスを持っている Form オブジェクトが指定されます。

position 	object から同じ object の別のインスタンスへの相対的な位置を示す整数を指定します。引数 position に 0 を指定するか省略すると、object の Z オーダーは先頭に移動します。引数 position に 1 を指定すると、object の Z オーダーは後方に移動します。

解説

オブジェクトの Z オーダーを設定するには、デザイン時に [編集] - [上層へ移動] コマンドまたは [下層へ移動] コマンドを選択します。

MDIForm オブジェクト内で ZOrder メソッドを使うと、引数 position の値に応じて MDI 子フォームを MDI クライアント領域の前面または後方に移動します。MDIForm オブジェクトや Form オブジェクトを指定すると、ZOrder メソッドは、引数 position の値に応じてフォームを画面の前面または後方に移動します。その結果、フォームは他の実行中のアプリケーションの前面または後方に表示されます。

フォームやコンテナ上に配置されているオブジェクトは、上層、中層、下層の 3 つの階層に分けて管理されています。下層は描画スペースでグラフィックス メソッドの出力が表示されます。中層には、グラフィカル コントロールとラベル (Label) コントロールが表示されます。上層にはコマンド ボタン (CommandButton)、チェック ボックス (CheckBox)、リスト ボックス (ListBox) など、グラフィカル コントロール以外のすべてのコントロールが表示されます。ある層に配置されたものはすべて、それより下の層にあるものより前面に表示されます。ZOrder メソッドは、この 3 つの階層の間でオブジェクトの位置を変更するのではなく、指定したオブジェクトが存在する層の中での上下関係を変更します。


関連項目

Arrange メソッド


ZOrder メソッドの対象

App オブジェクト

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

ライン (Line) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

Screen オブジェクト

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール

垂直スクロール バー (VScrollBar) コントロール


AddItem メソッドの例

次のプログラムでは、AddItem メソッドを使って、リスト ボックスに 100 個の項目を追加します。このプログラムを実行するには、フォーム上にリスト ボックス (ListBox) コントロールを配置して、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim Entry, I, Msg	' 変数を宣言します。

Msg = "リスト ボックスに 100 個の項目を追加します。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

' 1 ～ 100 の項目をカウントします。

For I = 1 To 100

Entry = "登録 " & I	' 登録項目を作成します。

List1.AddItem Entry	' 登録項目を追加します。

Next I

Msg = "偶数番号の登録項目を削除します。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

For I = 1 To 50	' 偶数番号の項目を削除します。

List1.RemoveItem I

Next I

Msg = "リスト ボックスからすべての項目を削除します。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

' リスト ボックスの内容をすべて削除します。

List1.Clear

End Sub


Arrange メソッドの例

次のプログラムでは、Arrange メソッドを使って、MDI フォーム上のウィンドウとアイコンを整列させます。このプログラムを実行するには、MDI フォーム (MDIForm1) モジュールのコード ウィンドウに、下のコードを貼り付けます。そして、MDI フォームにピクチャ ボックス (PictureBox) コントロール (Picture1) を配置します。次に、Form1 の MDIChild プロパティを真 (True) に設定して MDI 子フォームを作成し、F5 キーを押します。起動後、ピクチャ ボックスをクリックし、Arrange メソッドを実行した結果を確認します。

Const FORMCOUNT = 5

Dim F(1 To FORMCOUNT) As New Form1

Private Sub MDIForm_Load ()

Dim I	' ローカル変数を宣言します。

Load Form1	' 元のフォームをロードします。

For I = 1 To FORMCOUNT

F(I).Caption = "Form" & I + 1	' キャプションを変更します。

Next I

End Sub

Private Sub Picture1_Click ()

Static ClickCount	' 変数を宣言します。

Dim I, PrevWidth, Start

ClickCount = ClickCount + 1	' カウンタに 1 を加算します。

Select Case ClickCount

Case 1

MDIForm1.Arrange 1	' 横割りに表示します。

Case 2

MDIForm1.Arrange 2	' 縦割りに表示します。

Case 3	' 各フォームを最小化します。

PrevWidth = MDIForm1.Width	' MDIForm オブジェクトの幅を取得します。

MDIForm1.Width = PrevWidth / 2	' MDIForm オブジェクトの横幅を 2 等分します。

Form1.WindowState = 1	' 元のフォームを最小化します。

For I = 1 To FORMCOUNT	' F を 1 つずつ処理します。

F(I).WindowState = 1	' 複写したフォームを最小化します。

Next I

Start = Timer

Do

Loop Until Timer = Start + 5

MDIForm1.Width = PrevWidth	' 元のサイズに戻します。

MDIForm1.Arrange 3	' アイコンを整列します。

End Select

End Sub


Clear メソッドの例

次のプログラムでは、Clear メソッドを使って、リスト ボックス内の項目を初期化します。このプログラムを実行するには、フォーム上にリスト ボックス (ListBox) コントロール (List1) を配置して、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim Entry, I, Msg	' 変数を宣言します。

Msg = "リスト ボックスに 100 個の項目を追加します。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

For I = 1 To 100	' 1 ～ 100 の項目をカウントします。

Entry = "登録 " & I	' 登録項目を作成します。

List1.AddItem Entry	' 登録項目を追加します。

Next I

Msg = "偶数番号の登録項目を削除します。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

For I = 1 To 50	' 偶数番号の項目を削除します。

List1.RemoveItem I

Next I

Msg = "リスト ボックスからすべての項目を削除します。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

' リスト ボックスの内容をすべて削除します。

List1.Clear

End Sub

次のプログラムでは、Clear メソッドを使って Clipboard オブジェクトをクリアします。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Const CF_BITMAP = 2	' ビットマップの書式を設定します。

Dim Msg	' 変数を宣言します。

On Error Resume Next	' エラー処理を設定します。

Msg = "ビットマップをクリップボード上にロードします。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Clipboard.Clear	' Clipboard オブジェクトをクリアします。

' ビットマップをロードします。

Clipboard.SetData LoadPicture("PAPER.BMP")

If Err Then

Msg = ".BMP ファイルが見つかりません。"

MsgBox Msg	' エラー メッセージを表示します。

Exit Sub

End If

Msg = "ビットマップはクリップボード上にあります。"

Msg = Msg & "クリップボードからフォームにビットマップをコピーします。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Picture = Clipboard.GetData()	' Clipboard オブジェクトからコピーします。

Msg = "ビットマップを削除します。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Picture = LoadPicture()	' ビットマップを削除します。

End Sub


Cls メソッドの例

次のプログラムでは、Cls メソッドを使って、フォーム上に表示された情報を初期化します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim Msg	' 変数を宣言します。

AutoRedraw = -1	' AutoRedraw プロパティを有効にします。

ForeColor = QBColor(15)	' 前景色を白に設定します。

BackColor = QBColor(1) 	' 背景色を青に設定します。

FillStyle = 7	' 網掛け模様に設定します。

Line (0, 0)-(ScaleWidth, ScaleHeight), , B	' ボックスを描画します。

Msg = "これはフォームの背景に表示された情報です。"

CurrentX = ScaleWidth / 2 - TextWidth(Msg) / 2	' X 軸を設定します。

CurrentY = 2 * TextHeight(Msg)	' Y 軸を設定します。

Print Msg	' メッセージを出力します。

Msg = "フォーム上の情報と背景の網掛け模様を初期化します。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Cls	' フォームの背景を初期化します。

End Sub


Drag メソッドの例

次のプログラムでは、Drag メソッドを使って、ビットマップ形式 (.BMP) のファイルのファイル名を、ビットマップを表示するピクチャ ボックスにドラッグします。このプログラムを実行するには、フォーム上にドライブ リスト ボックス (DriveListBox)、ディレクトリ リスト ボックス (DirectoryListBox)、ファイル リスト ボックス (FileListBox)、ピクチャ ボックス (PictureBox)、ラベル (Label) の各コントロールを配置します。次に、このフォーム モジュールのコード ウィンドウに下のコードを貼り付けます。コントロール名はすべて既定の名前を使います。次に、コントロールのサイズと位置を使いやすいように変更します。ラベルのサイズと位置は実行時に変化するので、変更する必要はありません。プログラムの起動後は、パスを変更して任意のビットマップをロードできます。表示したいビットマップを捜し、そのビット マップのファイル名をピクチャ ボックス コントロール上へドラッグします。

Private Sub Form_Load ()

Picture1.AutoSize = -1	' AutoSize プロパティを有効にします。

Label1.Visible = 0	' ラベルを非表示にします。

File1.Pattern = "*.BMP; *.ICO; *.WMF"	' ファイル パターンを設定します。

End Sub

Private Sub Dir1_Change ()	' Dir1 と File1 を

File1.Path = Dir1.Path	' 連動させます。

End Sub

Private Sub Drive1_Change ()	' Drive1 と Dir1 を

Dir1.Path = Drive1.Drive	' 連動させます。

End Sub

Private Sub File1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim DY	' 変数を宣言します。

DY = TextHeight("A")	' 文字の高さを取得します。

Label1.Move File1.Left, File1.Top + Y - DY /2, File1.Width, DY

Label1.Drag	' ラベルをドラッグします。

End Sub

Private Sub Dir1_DragOver (Source As Control, X As Single, Y As Single, State As Integer)

If State = 0 Then Source.MousePointer = 12	' ポインタを禁止に設定します。

If State = 1 Then Source.MousePointer = 0	' ポインタを元に戻します。

End Sub

Private Sub Drive1_DragOver (Source As Control, X As Single, Y As Single, State As Integer)

If State = 0 Then Source.MousePointer = 12	' ポインタを禁止に設定します。

If State = 1 Then Source.MousePointer = 0	' ポインタを元に戻します。

End Sub

Private Sub Form_DragOver (Source As Control, X As Single, Y As Single, State As Integer)

If State = 0 Then Source.MousePointer = 12	' ポインタを禁止に設定します。

If State = 1 Then Source.MousePointer = 0	' ポインタを元に戻します。

End Sub

Private Sub File1_DragOver (Source As Control, X As Single, Y As Single, State As Integer)

On Error Resume Next

If State = 0 And Right$(File1.Filename,4) = ".ico" Then

Label1.DragIcon = LoadPicture(File1.Path + "\" + File1.Filename)

If Err Then MsgBox "アイコン ファイルがロードできません。"

ElseIf State = 1 Then

Label1.DragIcon = LoadPicture ()	' ドラッグ アイコンを使用しません。

End If

End Sub

Private Sub Picture1_DragDrop (Source As Control, X As Single, Y As Single)

On Error Resume Next

Picture1.Picture = LoadPicture(File1.Path + "\" + File1.Filename)

If Err Then MsgBox "ピクチャ ファイルがロードできません。"

End Sub


EndDoc メソッドの例

次のプログラムでは、中央にページ番号を付けて 2 ページ印刷した後に、文書の終わりを示すために EndDoc メソッドを使用します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim HWidth, HHeight, I, SMsg, EMsg	' 変数を宣言します。

On Error GoTo ErrorHandler	' エラー処理を設定します。

SMsg = "このテキストは、"

EMsg = " ページめに印刷されます。"

For I = 1 To 2	' 2 枚セットします。

' 文字列の幅を半分に設定します。

HWidth = Printer.TextWidth(Msg) / 2

' 文字列の高さを半分に設定します。

HHeight = Printer.TextHeight(Msg) /2

Printer.CurrentX = Printer.ScaleWidth / 2 - HWidth

Printer.CurrentY = Printer.ScaleHeight / 2 - HHeight

Printer.Print SMsg & Printer.Page & EMsg	' 印刷します。

Printer.NewPage	' 改ページします。

Next I

Printer.EndDoc	' 印刷を終了します。

Msg = "プリンタへ 2 ページにわたり、"

Msg = Msg & "用紙の中央にテキストを送りました。"

MsgBox Msg	' 結果を表示します。

Exit Sub

ErrorHandler:

MsgBox "プリンタに問題があります。"

Exit Sub

End Sub


GetData メソッドの例

次のプログラムでは、GetData メソッドを使って、Clipboard オブジェクトからフォームへビットマップをコピーします。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Const CF_BITMAP = 2	' ビットマップの書式を設定します。

Dim Msg	' 変数を宣言します。

On Error Resume Next	' エラー処理を設定します。

Msg = "ビットマップをクリップボード上にロードします。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Clipboard.Clear	' Clipboard オブジェクトの内容を消去します。

Clipboard.SetData LoadPicture("PAPER.BMP")	' ビットマップを取得します。

If Err Then

Msg = ".BMP ファイルが見つかりません。"

MsgBox Msg	' エラー メッセージを表示します。

Exit Sub

End If

Msg = "ビットマップはクリップボード上にあります。クリップボードから"

Msg = Msg & "フォームにビットマップをコピーします。[OK] ボタン"

Msg = Msg & "を選択してください。"

MsgBox Msg	' メッセージを表示します。

Picture = Clipboard.GetData()	' Clipboard オブジェクトからコピーします。

Msg = "ビットマップを削除します。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Picture = LoadPicture()	' ビットマップを削除します。

End Sub


GetFormat メソッドの例

次のプログラムでは、GetFormat メソッドを使って、Clipboard オブジェクト上のデータの形式を調べます。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

' ビットマップの書式を定義します。

Dim ClpFmt, Msg	' 変数を宣言します。

On Error Resume Next	' エラー処理を設定します。

If Clipboard.GetFormat(vbCFText) Then ClpFmt = ClpFmt + 1

If Clipboard.GetFormat(vbCFBitmap) Then ClpFmt = ClpFmt + 2

If Clipboard.GetFormat(vbCFDIB) Then ClpFmt = ClpFmt + 4

Select Case ClpFmt

Case 1

Msg = "クリップボード上にあるのはテキストだけです。"

Case 2, 4, 6

Msg = "クリップボード上にあるのはビットマップだけです。"

Case 3, 5, 7

Msg = "クリップボード上にあるのはテキストとビットマップです。"

Case Else

Msg = "クリップボード上には何もありません。"

End Select

MsgBox Msg	' メッセージを表示します。

End Sub


GetText メソッドの例

次のプログラムでは、GetText メソッドを使って、Clipboard オブジェクトから文字列変数へテキスト文字列をコピーします。このプログラムを実行するには、テキスト ボックス (TextBox) コントロール (Text1) を配置したフォームを作成します。フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックしてください。

Private Sub Form_Click ()

Dim I, Msg, Temp	' 変数を宣言します。

On Error Resume Next	' エラー処理を設定します。

Msg = "テキスト ボックスに適当な文字を入力してください。"

Text1.Text = InputBox(Msg)	' 入力されたテキストを取得します。

Msg = "テキスト ボックスの内容をクリップボードにコピーします。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

ClipBoard.Clear	' Clipboard オブジェクトの内容を消去します。

' Clipboard オブジェクト上にテキストを設定します。

Clipboard.SetText Text1.Text

If Clipboard.GetFormat(vbCFText) Then

' テキスト ボックスの内容を消去します。

Text1.Text = ""

Msg = "テキストは現在、クリップボード上にあります。"

Msg = Msg & "今度は、クリップボードからテキスト ボックスへ"

Msg = Msg & "テキストをコピーします。このとき、その文字列を"

Msg = Msg & "逆順にします。[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

' Clipboard オブジェクト上のテキストを取得します。

Temp = Clipboard.GetText(vbCFText)

For I = Len(Temp) To 1 Step -1	' 文字列を逆順にします。

Text1.Text = Text1.Text & Mid(Temp, I, 1)

Next I

Else

Msg = "クリップボード上にテキストがありません。"

MsgBox Msg	' エラー メッセージを表示します。

End If

End Sub


Hide メソッドの例

次のプログラムでは、Hide メソッドを使ってフォームを非表示にします。このプログラムを実行するには、MDI フォーム以外のフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim Msg	' 変数を宣言します。

Hide	' フォームを非表示にします。

Msg = "フォームを再表示します。[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Show	' フォームを再表示します。

End Sub


KillDoc メソッドの例

次のプログラムでは、KillDoc メソッドを使って現在の印刷ジョブを終了します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click()

For i = 1 To 40

Printer.CurrentX = 1440	' 左マージンを設定します。

Printer.CurrentY = (i * 300)	' 次の行に紙送りをします。

Printer.Print "これは、テキストの " & Str$(i) & " 行めです。"

On Error Resume Next	' プリンタ エラーを処理します。

If i = 26 Then

Printer.KillDoc	' 印刷ジョブを直ちに終了します。

Printer.EndDoc

End

End If

Next i

End Sub


LinkExecute メソッドの例

次のプログラムでは、Microsoft Excel との間の DDE 通信を開始し、新しいワークシートの第 1 列のいくつかのセルに値を入力し、グラフを作成します。ワークシートのアクティブ化、値の選択、グラフの描画などのコマンドを Excel に送るために、LinkExecute メソッドを使います。このプログラムを実行する場合は、あらかじめ Excel をインストールし、Excel のパスを正しく設定しておく必要があります。このプログラムを実行するには、フォーム上にテキスト ボックス (TextBox) コントロール (Text1) を配置します。次に、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim Cmd, I, Q, Row, Z	' 変数を宣言します。

Q = Chr(34)	' クォーテーション マークを定義します。

' Microsoft Excel のマクロ コマンドを含む文字列を作成します。

Cmd = "[ACTIVATE(" & Q &"SHEET1" & Q & ")]"

Cmd = Cmd & "[SELECT(" & Q & "R1C1:R5C2" & Q & ")]"

Cmd = Cmd & "[NEW(2,1)][ARRANGE.ALL()]"

If Text1.LinkMode = vbNone Then

Z = Shell("Excel", 4)	' を起動します。

Text1.LinkTopic = "Excel|Sheet1"	' トピックを設定します。

Text1.LinkItem = "R1C1"	' アイテムを設定します。

Text1.LinkMode = vbLinkManual	' モードを設定します。

End If

For I = 1 To 5

Row = I	' 列番号を定義します。

Text1.LinkItem = "R" & Row & "C1"	' アイテムを設定します。

Text1.Text = Chr(64 + I)	' Text プロパティに値を代入します。

Text1.LinkPoke	' セルに値をポークします。

Text1.LinkItem = "R" & Row & "C2"	' アイテムを設定します。

Text1.Text = Row	' Text プロパティに値を代入します。

Text1.LinkPoke	' セルに値をポークします。

Next I

On Error Resume Next

Text1.LinkExecute Cmd	' Excel のコマンドを実行します。

MsgBox "Microsoft Excel との LinkExecute メソッドの DDE のデモを終了します。", 64

End

End Sub


LinkPoke メソッドの例

次のプログラムでは、Microsoft Excel との間の DDE リンクを開始し、新しいワークシートの第 1 列の数個のセルに値を入力し、グラフを作成します。グラフを作成するための値を Excel のワークシートに送るために、LinkPoke メソッドを使います。このプログラムを実行するには、あらかじめ Excel をインストールし、Excel のパスを正しく設定しておく必要があります。次に、フォーム上にテキスト ボックス (TextBox) コントロール (Text1) を配置し、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim Cmd, I, Q, Row, Z	' 変数を宣言します。

Q = Chr(34)	' クォーテーション マークを定義します。

' Excel マクロ コマンドを含む文字列を作成します。

Cmd = "[ACTIVATE(" & Q &"SHEET1" & Q & ")]"

Cmd = Cmd & "[SELECT(" & Q & "R1C1:R5C2" & Q & ")]"

Cmd = Cmd & "[NEW(2,1)][ARRANGE.ALL()]"

If Text1.LinkMode = vbNone Then

Z = Shell("Excel", 4)	' Excel を起動します。

Text1.LinkTopic = "Excel|Sheet1"	' トピックを設定します。

Text1.LinkItem = "R1C1"	' アイテムを設定します。

Text1.LinkMode = vbLinkManual	' モードを設定します。

End If

For I = 1 To 5

Row = I	' 列番号を定義します。

Text1.LinkItem = "R" & Row & "C1"	' アイテムを設定します。

Text1.Text = Chr(64 + I)	' Text プロパティに値を代入します。

Text1.LinkPoke	' セルに値をポークします。

Text1.LinkItem = "R" & Row & "C2"	' アイテムを設定します。

Text1.Text = Row	' Text プロパティに値を代入します。

Text1.LinkPoke	' セルに値をポークします。

Next I

Text1.LinkExecute Cmd	' Excel のコマンドを実行します。

On Error Resume Next

MsgBox "Microsoft Excel との LinkPoke メソッドの DDE のデモを終了します。", 64

End

End Sub


LinkRequest メソッドの例

次のプログラムでは、LinkRequest メソッドを使って、テキスト ボックスの値を Microsoft Excel のワークシートの値に合わせて更新します。このプログラムを実行する場合は、あらかじめ Excel をインストールし、Excel のパスを正しく設定する必要があります。次に、Excel を起動し、最初に表示されるワークシート Sheet1 の 1 行 1 列 (R1C1) に任意のデータを入力しておきます。このプログラムを実行するには、フォーム上にテキスト ボックス (TextBox) コントロール (Text1) を配置し、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

If Text1.LinkMode = vbNone Then	' リンク モードを調べます。

Text1.LinkTopic = "Excel|Sheet1"	' トピックを設定します。

Text1.LinkItem = "R1C1"	' アイテムを設定します。

Text1.LinkMode = vbLinkManual	' モードを設定します。

Text1.LinkRequest	' テキスト ボックスを更新します。

Else

If Text1.LinkItem  = "R1C1" Then

Text1.LinkItem = "R2C1"

Text1.LinkRequest	' テキスト ボックスを更新します。

Else

Text1.LinkItem = "R1C1"

Text1.LinkRequest	' テキスト ボックスを更新します。

End If

End If

End Sub


Move メソッドの例

次のプログラムでは、Move メソッドを使って画面上でフォームを移動します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim Inch, Msg	' 変数を宣言します。

Msg = "フォームの大きさを変えて移動します。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Inch = 1440	' インチ単位に設定します。

Width = 4 * Inch	' 幅を 4 インチに設定します。

Height = 2 * Inch	' 高さを 2 インチに設定します。

Left = 0	' 左端を設定します。

Top = 0	' 上端を設定します。

Msg = "Move メソッドを使ってフォームの大きさを変えて移動します。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Move Screen.Width - 2 * Inch, Screen.Height - Inch, 2 * Inch, Inch

End Sub


NewPage メソッドの例

次のプログラムでは、ページの中央に 1 行のテキストを出力した後で、新しいページの印刷を開始するために NewPage メソッドを使います。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim HWidth, HHeight, I, Msg	' 変数を宣言します。

On Error GoTo ErrorHandler	' エラー処理を設定します。

Msg = "このテキストが印刷されるページ:"

For I = 1 To 2	' 2 枚セットします。

HWidth = Printer.TextWidth(Msg) / 2	' 文字列の幅を半分に設定します。

HHeight = Printer.TextHeight(Msg) /2	' 文字列の高さを半分に設定します。

Printer.CurrentX = Printer.ScaleWidth / 2 - HWidth

Printer.CurrentY = Printer.ScaleHeight / 2 - HHeight

Printer.Print Msg & Printer.Page & "."	' 印刷します。

Printer.NewPage	' 改ページします。

Next I

Printer.EndDoc	' 印刷を終了します。

Msg = "プリンタへ 2 ページにわたり、"

Msg = Msg & "用紙の中央にテキストを送りました。"

MsgBox Msg	' 結果を表示します。

Exit Sub

ErrorHandler:

MsgBox "プリンタに問題があります。"

Exit Sub

End Sub


Point メソッドの例

次のプログラムでは、フォーム上の特定の点の色を決定するために Point メソッドを使います。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim LeftColor, MidColor, Msg, RightColor	' 変数を宣言します。

AutoRedraw = -1	' AutoRedraw プロパティを有効にします。

Height = 3 * 1440	' 高さを 3 インチに設定します。

Width = 5 * 1440	' 幅を 5 インチに設定します。

BackColor = QBColor(1)	' 背景色を青に設定します。

ForeColor = QBColor(4)	' 前景色を赤に設定します。

Line (0, 0)-(Width / 3, Height), , BF	' 赤のボックスを描画します。

ForeColor = QBColor(15)	' 前景色を白に設定します。

Line (Width / 3, 0)-((Width / 3) * 2, Height), , BF

LeftColor = Point(0, 0)	' 左側、中央、

MidColor = Point(Width / 2, Height / 2)	' 右側のボックスの

RightColor = Point(Width, Height)	' 色を調べます。

Msg = "フォームの左側の赤地の部分の色番号は"

Msg = Msg & LeftColor & "、"

Msg = Msg & "中央の白地の部分の色番号は"

Msg = Msg & MidColor & "、右側の青地の部分の色番号は"

Msg = Msg & RightColor & " です。"

MsgBox Msg	' 結果を表示します。

End Sub


PopupMenu メソッドの例

次のプログラムでは、フォーム上でマウスの右ボタンをクリックしたときに、カーソル位置にポップアップ メニューを表示します。このプログラムを実行するには、フォーム上にメニュー (Menu) コントロール (mnuFile) を配置します。mnuFile は 1 つ以上のサブメニューを持っている必要があります。次に、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 2 Then

PopupMenu mnuFile

End If

End Sub


PrintForm メソッドの例

次のプログラムでは、PrintForm メソッドを使って、現在のフォームを出力します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付けた後、フォームと共に出力する任意のコントロールをフォームに配置し、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim Msg	' 変数を宣言します。

On Error GoTo ErrorHandler	' エラー処理を設定します。

PrintForm	' フォームを出力します。

Exit Sub

ErrorHandler:

Msg = "フォームの印刷ができません。"

MsgBox Msg	' 結果を表示します。

Resume Next

End Sub


RemoveItem メソッドの例

次のプログラムでは、RemoveItem メソッドを使って、リスト ボックス内のエントリを削除します。このプログラムを実行するには、フォーム上にリスト ボックス (ListBox) コントロール (List1) を配置し、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim Entry, I, Msg	' 変数を宣言します。

Msg = "リスト ボックスに 100 個の項目を追加します。[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

For I = 1 To 100	' 1 ～ 100 の項目をカウントします。

Entry = "登録 " & I	' 登録項目を作成します。

List1.AddItem Entry	' 登録項目を追加します。

Next I

Msg = "偶数番号の登録項目を削除します。[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

For I = 1 To 50	' 偶数番号の項目を

List1.RemoveItem I	' 削除する方法

Next I	' を指定します。

Msg = "リスト ボックスからすべての項目を削除します。[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

List1.Clear	' リスト ボックスの内容をすべて削除します。

End Sub


Scale メソッドの例

次のプログラムでは、Scale メソッドを使って、フォーム上に棒グラフを描くための座標系を設定します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim I, OldFontSize	' 変数を宣言します。

Width = 8640: Height = 5760	' フォームのサイズを設定 (twip) します。

Move 100,100	' フォームを移動します。

AutoRedraw = -1	' AutoRedraw プロパティを有効にします。

OldFontSize = FontSize	' 現在のフォント サイズを保管します。

BackColor = QBColor(7)	' 背景色を灰色に設定します。

Scale (0, 110)-(130, 0)	' 座標を設定します。

For I = 100 To 10 Step -10

Line (0, I)-(2, I)	' 目盛りを 10 単位に設定します。

CurrentY = CurrentY + 1.5	' カーソル位置を移動します。

Print I	' 左側の目盛りを表示します。

Line (ScaleWidth - 2, I)-(ScaleWidth, I)

CurrentY = CurrentY + 1.5	' カーソル位置を移動します。

CurrentX = ScaleWidth - 9

Print I	' 右側の目盛りを表示します。

Next I

' 棒グラフを引きます。

Line (10, 0)-(20, 45), RGB(0, 0, 255), BF	' 1 番めの青い棒グラフを引きます。

Line (20, 0)-(30, 55), RGB(255, 0, 0), BF	' 1 番めの赤い棒グラフを引きます。

Line (40, 0)-(50, 40), RGB(0, 0, 255), BF

Line (50, 0)-(60, 25), RGB(255, 0, 0), BF

Line (70, 0)-(80, 35), RGB(0, 0, 255), BF

Line (80, 0)-(90, 60), RGB(255, 0, 0), BF

Line (100, 0)-(110, 75), RGB(0, 0, 255), BF

Line (110, 0)-(120, 90), RGB(255, 0, 0), BF

CurrentX = 18: CurrentY = 100	' カーソル位置を移動します。

FontSize = 14	' フォントを拡大します。

Print "年 4 回の商品セール"	' タイトルを出力します。

FontSize = OldFontSize	' フォント サイズを戻します。

CurrentX = 27: CurrentY = 93	' カーソル位置を移動します。

Print "計画 Vs 実績"	' サブ タイトルを出力します。

Line (29, 86)-(34, 88), RGB(0, 0, 255), BF	' グラフ サンプルを出力します。

Line (43, 86)-(49, 88), RGB(255, 0, 0), BF

End Sub


SetText メソッドの例

次のプログラムでは、SetText メソッドを使って、テキスト ボックスから Clipboard オブジェクトへテキストをコピーします。このプログラムを実行するには、フォーム上にテキスト ボックス (TextBox) コントロール (Text1) を配置して、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Const CF_TEXT = 1	' ビットマップの書式を定義します。

Dim I, Msg, Temp	' 変数を宣言します。

On Error Resume Next	' エラー処理を設定します。

Msg = "テキスト ボックスに適当な文字を入力してください。"

Text1.Text = InputBox(Msg)	' 入力されたテキストを取得します。

Msg = "テキスト ボックスの内容をクリップボードにコピーします。"

Msg = Msg & "[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

ClipBoard.Clear	' Clipboard オブジェクトの内容を消去します。

Clipboard.SetText Text1.Text	' Clipboard オブジェクトへ挿入します。

If Clipboard.GetFormat(CF_TEXT) Then

Text1.Text = ""	' テキスト ボックスの内容を消去します。

Msg = "テキスト文字列はクリップボード上にあります。"

Msg = Msg & "今度は、クリップボードからテキスト ボックスへ"

Msg = Msg & "コピーします。このとき文字列を逆順にします。[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Temp = Clipboard.GetText(CF_TEXT)	' Clipboard オブジェクト上のテキストを取得します。

For I = Len(Temp) To 1 Step -1	' 文字列を逆順にします。

Text1.Text = Text1.Text & Mid(Temp, I, 1)

Next I

Else

Msg = "クリップボード上にテキストがありません。"

MsgBox Msg	' エラー メッセージを表示します。

End If

End Sub


Show メソッドの例

次のプログラムでは、Show メソッドを使って、非表示になっているフォームを表示します。このプログラムを実行するには、MDI フォーム以外のフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim Msg	' 変数を宣言します。

Hide	' フォームを非表示にします。

Msg = "フォームを再表示します。[OK] ボタンを選択してください。"

MsgBox Msg	' メッセージを表示します。

Show	' フォームを再表示します。

End Sub


ShowColor、ShowFont、ShowHelp、ShowOpen、ShowPrinter、ShowSave メソッドの例

次のプログラムでは、コモン ダイアログ (CommonDialog) コントロールと、ShowColor、ShowFont、ShowHelp、ShowOpen、ShowPrinter、ShowSave の各メソッドを使って、コモン ダイアログ ボックスを表示します。このプログラムを実行するには、フォーム上にコモン ダイアログ 、コマンド ボタン (CommandButton)、オプション ボタン (OptionButton) の各コントロールを作成し、オプション ボタン コントロールの Index プロパティに 0 を設定します。次に、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、オプション ボタンを使って、表示したいコモン ダイアログ ボックスを選び、コマンド ボタンを選択します。

Private Sub Form_Paint ()

Static FlagFormPainted As Integer

' フォームが最初に描画された場合。

If FlagFormPainted <> True Then

For i = 1 To 5

Load Option1(i)	' 5 つのオプション ボタンを配列に追加します。

Option1(i).Top = Option1(i - 1).Top + 350

Option1(i).Visible = True

Next i

Option1(0).Caption = "ファイルを開く"	' 各オプション ボタンのキャプションを設定します。

Option1(1).Caption = "名前を付けて保存。"

Option1(2).Caption = "色の設定"

Option1(3).Caption = "フォントの指定"

Option1(4).Caption = "印刷"

Option1(5).Caption = "ヘルプ"

Command1.Caption = "ダイアログ ボックスの表示"	' コマンド ボタンにラベルを付けます。

FlagFormPainted = True	' フォームの描画を終了します。

End If

End Sub

Private Sub Command1_Click ()

If Option1(0).Value Then	' [ファイルを開く] オプション ボタンが選択された場合

CommonDialog1.ShowOpen	' [ファイルを開く] コモン ダイアログ ボックスを表示します。

ElseIf Option1(1).Value Then	' または、

CommonDialog1.ShowSave	' [名前を付けて保存] コモン ダイアログ ボックスを表示します。

ElseIf Option1(2).Value Then	'または、

CommonDialog1.ShowColor	' [色の設定] コモン ダイアログ ボックスを表示します。

ElseIf Option1(3).Value Then	' または、

CommonDialog1.Flags = cdlCFBoth	' ShowFont メソッドを使う前に

' Flags プロパティに定数 cdlCFBoth、

' cdlCFPrinterFonts、 または

' cdlCFScreenFonts を設定します。

CommonDialog1.ShowFont	' [フォントの指定] コモン ダイアログ ボックスを表示します。

ElseIf Option1(4).Value Then	' または、

CommonDialog1.ShowPrinter	' [印刷] コモン ダイアログ ボックスを表示します。

ElseIf Option1(5).Value Then	' または、

CommonDialog1.HelpFile = "VB.HLP"

CommonDialog1.HelpCommand = cdlHelpContents

CommonDialog1.ShowHelp	' Microsoft Visual Basic ヘルプの目次を表示します。

End If

End Sub


TextHeight メソッドの例

次のプログラムでは、TextHeight メソッドを使って、出力する行をフォームの垂直方向に対して中央になるように配置します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim HalfWidth, HalfHeight, Msg	' 変数を宣言します。

AutoRedraw = -1	' AutoRedraw プロパティの設定を有効にします。

BackColor = QBColor(4)	' 背景色を設定します。

ForeColor = QBColor(15)	' 前景色を設定します。

Msg = "Visual Basic"	' メッセージを設定します。

FontSize = 48	' フォント サイズを設定します。

HalfWidth =  TextWidth(Msg) / 2 	' 幅を半分に設定します。

HalfHeight = TextHeight(Msg) / 2	' 高さを半分に設定します。

CurrentX = ScaleWidth / 2 - HalfWidth	' X 軸を設定します。

CurrentY = ScaleHeight / 2 - HalfHeight	' Y 軸を設定します。

Print Msg	' メッセージを出力します。

End Sub


TextWidth メソッドの例

次のプログラムでは、TextWidth メソッドを使って、出力する行をフォームの水平方向に対して中央になるように配置します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim HalfHeight, HalfWidth, Msg	' 変数を宣言します。

AutoRedraw = -1	' AutoRedraw プロパティの設定を有効にします。

BackColor = QBColor(4)	' 背景色を設定します。

ForeColor = QBColor(15)	' 前景色を設定します。

Msg = "Visual Basic"	' メッセージを設定します。

FontSize = 48	' フォント サイズを設定します。

HalfWidth = TextWidth(Msg) / 2 	' 幅を半分に設定します。

HalfHeight = TextHeight(Msg) / 2	' 高さを半分に設定します。

CurrentX = ScaleWidth / 2 - HalfWidth	' X 軸を設定します。

CurrentY = ScaleHeight / 2 - HalfHeight	' Y 軸を設定します。

Print Msg	' メッセージを出力します。

End Sub


App オブジェクト

関連項目	プロパティ

App オブジェクトは特殊オブジェクトの 1 つです。App オブジェクトにアクセスするには、キーワード App を指定します。アプリケーションのタイトルと、その実行ファイルおよびオンライン ヘルプ ファイルの名前とパス名、同じアプリケーションの実行中のインスタンスが存在するかどうかを設定します。

注   App オブジェクトを使用する場合の Visual Basic インプロセス OLE サーバー (DLL) に関する注意および制限については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

構文

App

解説

App オブジェクトはイベントやメソッドを持ちません。


関連項目

HelpContextID プロパティ

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)


App オブジェクトのプロパティ

Comments プロパティ

CompanyName プロパティ

EXEName プロパティ

FileDescription プロパティ

HelpFile プロパティ

hInstance プロパティ

LegalCopyright プロパティ

LegalTrademarks プロパティ

Major プロパティ

Minor プロパティ

OLERequestPendingMsgText プロパティ

OLERequestPendingMsgTitle プロパティ

OLERequestPendingTimeout プロパティ

OLEServerBusyMsgText プロパティ

OLEServerBusyMsgTitle プロパティ

OLEServerBusyRaiseError プロパティ

OLEServerBusyTimeout プロパティ

Path プロパティ

PrevInstance プロパティ

ProductName プロパティ

Revision プロパティ

StartMode プロパティ

TaskVisible プロパティ

Title プロパティ


チェック ボックス (CheckBox) コントロール

関連項目	プロパティ	メソッド 	イベント

チェック ボックス コントロールを選択すると、X が表示されます。もう一度チェック ボックスを選択すると、チェック ボックスは“クリア”されて X の表示は消えます。このコントロールは、“真 (True)/偽 (False)”や“はい/いいえ”のような、2 つの状態を切り替えるときに使います。複数の選択肢を一度にユーザーに示すには、チェック ボックスをグループ化して使います。

構文

CheckBox

解説

チェック ボックス コントロールとオプション ボタン (OptionButton) コントロールの機能は、2 つの状態を切り替えるという意味では似ていますが、重要な違いがあります。1 つのフォーム上のチェック ボックスは同時にいくつもオンにできますが、同一グループ内のオプション ボタンは、常にいずれか 1 つしか選択できません。

チェック ボックスの右側にテキストを表示するには、Caption プロパティを設定します。ボックスがオフ、オン、または無効のうちのどの状態にあるかを調べるには、Value プロパティを使います。


関連項目

Caption プロパティ

Value プロパティ


チェック ボックス (CheckBox) コントロールのプロパティ

Alignment プロパティ

Appearance プロパティ

BackColor プロパティ

Caption プロパティ

Container プロパティ

DataChanged プロパティ

DataField プロパティ

DataSource プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

ForeColor プロパティ

Height プロパティ

HelpContextID プロパティ

hWnd プロパティ

Index プロパティ

Left プロパティ

MousePointer プロパティ

Name プロパティ

Parent プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Top プロパティ

Value プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


チェック ボックス (CheckBox) コントロールのメソッド

Drag メソッド

Move メソッド

Refresh メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


チェック ボックス (CheckBox) コントロールのイベント

Click イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント


コンボ ボックス (ComboBox) コントロール

関連項目	プロパティ	メソッド	イベント

コンボ ボックス コントロールは、テキスト ボックス (TextBox) コントロールとリスト ボックス (ListBox) コントロールの機能を組み合わせたものです。ユーザーは、テキスト ボックス部分にテキストを直接入力する方法と、リスト部分から項目を選択する方法のどちらでも入力できます。

構文

ComboBox


関連項目

リスト ボックス (ListBox) コントロール

テキスト ボックス (TextBox) コントロール


コンボ ボックス (ComboBox) コントロールのプロパティ

Appearance プロパティ

BackColor プロパティ

Container プロパティ

DataChanged プロパティ

DataField プロパティ

DataSource プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

ForeColor プロパティ

Height プロパティ

HelpContextID プロパティ

hWnd プロパティ

Index プロパティ

IntegralHeight プロパティ

ItemData プロパティ

Left プロパティ

ListCount プロパティ

ListIndex プロパティ

List プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

NewIndex プロパティ

Parent プロパティ

SelLength プロパティ

SelStart プロパティ

SelText プロパティ

Sorted プロパティ

Style プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Text プロパティ

Top プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


コンボ ボックス (ComboBox) コントロールのメソッド

AddItem メソッド

Clear メソッド

Drag メソッド

Move メソッド

Refresh メソッド

RemoveItem メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


コンボ ボックス (ComboBox) コントロールのイベント

Change イベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

DropDown イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント


コマンド ボタン (CommandButton) コントロール

関連項目	プロパティ	メソッド 	イベント

コマンド ボタン コントロールを選択すると、処理の開始、中断、終了などが行われます。選択したコマンド ボタンは、ボタンが押し下げられたように外観が変わるので、“プッシュ ボタン”とも呼ばれます。

構文

CommandButton

解説

コマンド ボタン コントロールにテキストを表示するには、Caption プロパティを設定します。コマンド ボタンを選択するには、マウスでそのコマンド ボタンをクリックします。マウスでクリックして選択する以外に、フォーカスを持っているコマンド ボタンは、Enter キーを入力して選択することもできます。また、コマンド ボタンには“デフォルト ボタン”と“キャンセル ボタン”と呼ばれる 2 つの特殊な設定があります。

デフォルト ボタン

フォームが表示されたときにフォーカスを持っているボタンを指し、Enter キーを押したときに選択されます。コマンド ボタンをデフォルト ボタンとして設定するには、そのボタンの Default プロパティを真 (True) に設定します。通常、ダイアログ ボックスなどの複数のボタンが配置されているフォームで、標準的に選択されるボタンに割り当てます。

キャンセル ボタン

Esc キーを押したときに選択されるボタンを指します。コマンド ボタンをキャンセル ボタンとして設定するには、Cancel プロパティを真 (True) に設定します。キャンセル ボタンは、ダイアログ ボックスなどで行った操作を無効にして、そのダイアログ ボックスを閉じるときに使われます。通常、キャプション (Caption プロパティ) を“キャンセル”に設定します。


関連項目

Cancel プロパティ

Caption プロパティ

Default プロパティ


コマンド ボタン (CommandButton) コントロールのプロパティ

Appearance プロパティ

BackColor プロパティ

Cancel プロパティ

Caption プロパティ

Container プロパティ

Default プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

Height プロパティ

HelpContextID プロパティ

hWnd プロパティ

Index プロパティ

Left プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Parent プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Top プロパティ

Value プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


コマンド ボタン (CommandButton) コントロールのメソッド

Drag メソッド

Move メソッド

Refresh メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


コマンド ボタン (CommandButton) コントロールのイベント

Click イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント


コモン ダイアログ (CommonDialog) コントロール

関連項目	プロパティ	メソッド

コモン ダイアログ コントロールは、ファイルを開く、保存、印刷、色やフォントの選択などの操作を行うための標準ダイアログ ボックスを提供します。

構文

CommonDialog

解説

コモン ダイアログ コントロール は、Microsoft Visual Basic および Microsoft Windows のダイナミック リンク ライブラリである COMMDLG.DLL との間のインターフェイスを提供します。このコントロールを使ってダイアログ ボックスを作成するには、COMMDLG.DLL が Windows の \SYSTEM ディレクトリにある必要があります。

アプリケーションでコモン ダイアログ ボックスを使うには、コモン ダイアログ コントロールをフォーム上に配置して、各プロパティを設定します。表示されるダイアログ ボックスの種類は、メソッドに指定する値によって決まります。実行時に適切なメソッドを指定すると、ダイアログ ボックスが表示されます。コモン ダイアログ コントロールは、デザイン時にはフォーム上にアイコンで表示されます。このアイコンの大きさを変更することはできません。

Microsoft Windows 95 では、次の操作を行うと、コモン ダイアログ コントロールによって、ダイアログ ボックス上のインターフェースに関するコンテキスト ヘルプが自動的に表示されます。

タイトル バーの [?] ボタンをクリックして、それから情報の必要なコントロールをクリックします。

マウスの右ボタンで情報の必要なコントロールをクリックし、表示されたポップアップ メニューから [ヘルプ] コマンドを選択します。

オペレーティング システムによって、Windows 95 のコンテキスト ヘルプに文字列が表示されます。ただし、Flags プロパティを設定してコモン ダイアログ コントロールに表示された [?] ボタンには、トピックはありません。

注   ダイアログ ボックスを表示する位置を指定することはできません。

配布時の注意   コモン ダイアログ コントロールはカスタム コントロールで、.OCX の拡張子を持つ独立したファイルです。アプリケーション上でコモン ダイアログ コントロールを使うには、COMDLG16.OCX または COMDLG32.OCX ファイルをプロジェクトに追加する必要があります。このカスタム コントロールを自動的に新しいプロジェクトに追加するには、AUTOLOAD.VBP に必要なファイルを追加します。アプリケーションを配布するときには、ユーザーの Windows の \SYSTEM ディレクトリに .OCX ファイルをインストールします。カスタム コントロールをプロジェクトに追加する方法の詳細については、『プログラミング ガイド』を参照してください。


関連項目

Call ステートメント

Declare ステートメント

セットアップ ツールキットの概要


コモン ダイアログ (CommonDialog) コントロールのプロパティ

[色の設定] ダイアログ ボックスのプロパティ

[ファイルを開く]、[ファイル名を付けて保存] ダイアログ ボックスのプロパティ

[フォントの指定] ダイアログ ボックスのプロパティ

[印刷] ダイアログ ボックスのプロパティ


[色の設定] ダイアログ ボックスのプロパティ (コモン ダイアログ)

Action プロパティ

CancelError プロパティ

Color プロパティ

Flags プロパティ

HelpCommand プロパティ

HelpContext プロパティ

HelpFile プロパティ

HelpKey プロパティ

Object プロパティ


[ファイルを開く]、[ファイル名を付けて保存] ダイアログ ボックスのプロパティ (コモン ダイアログ)

Action プロパティ

CancelError プロパティ

DefaultExt プロパティ

DialogTitle プロパティ

FileName プロパティ

FileTitle プロパティ

Filter プロパティ

FilterIndex プロパティ

Flags プロパティ

HelpCommand プロパティ

HelpContext プロパティ

HelpFile プロパティ

HelpKey プロパティ

InitDir プロパティ

MaxFileSize プロパティ

Object プロパティ


[フォントの指定] ダイアログ ボックスのプロパティ (コモン ダイアログ)

Action プロパティ

CancelError プロパティ

Flags プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

HelpCommand プロパティ

HelpContext プロパティ

HelpFile プロパティ

HelpKey プロパティ

Max プロパティ

Min プロパティ

Object プロパティ


[印刷] ダイアログ ボックスのプロパティ (コモン ダイアログ)

Action プロパティ

CancelError プロパティ

Copies プロパティ

Flags プロパティ

FromPage プロパティ

hDC プロパティ

HelpCommand プロパティ

HelpContext プロパティ

HelpFile プロパティ

HelpKey プロパティ

Max プロパティ

MaxFileSize プロパティ

Min プロパティ

Object プロパティ

PrinterDefault プロパティ

ToPage プロパティ


コモン ダイログ (CommonDialog) コントロールのメソッド

ShowColor メソッド

ShowFont メソッド

ShowHelp メソッド

ShowOpen メソッド

ShowPrinter メソッド

ShowSave メソッド


Controls コレクション

関連項目	プロパティ

Controls コレクションを使うと、フォーム上のすべてのコントロール (コントロール配列の要素を含む) のプロパティを設定することができます。Controls コレクションで設定できるプロパティは、配列の要素の個数を指定する Count プロパティだけです。

構文

object.Controls(index)

Controls コレクションの構文の指定項目は次のとおりです。

指定項目	内容

object	Form オブジェクトへの参照を表すオブジェクト式を指定します。

index	0 ～ Forms.Count - 1 の範囲の整数を指定します。

解説

Controls コレクションは、フォーム上にロードされているコントロールを列挙します。このコレクションはコントロールを参照する場合に便利です。Controls コレクションでは、フォームのモジュール レベルの組み込みの変数 Controls が使用できます。引数 object を省略するときは、キーワード Controls が必要です。引数 object を指定すると、キーワード Controls は省略可能です。たとえば、次の 2 つのコードの動作は同じです。

MyForm.Controls(6).Top = MyForm.Controls(5).Top + increment

MyForm(6).Top = MyForm(5).Top + increment

Controls クラスとして指定される引数を持つ関数に、Controls(index) を渡すことができます。


関連項目

Form オブジェクト、Forms コレクション


Controls コレクションのプロパティ

Count プロパティ


ディレクトリ リスト ボックス (DirListBox) コントロール

関連項目	プロパティ	メソッド 	イベント

ディレクトリ リスト ボックス コントロールを使って、実行時にディレクトリとパスのリストを表示します。このコントロールを使うと、ディレクトリの階層構造を表示できます。たとえば、このコントロール使って、利用可能なすべてのディレクトリの中から 1 つのファイルを開くダイアログ ボックスを作ることができます。

構文

DirListBox

解説

ディレクトリ リスト ボックス コントロールに表示された項目を参照するには、List、ListCount、ListIndex の各プロパティを正しく設定してください。ドライブ リスト ボックス (DriveListBox) コントロールおよびファイル リスト ボックス (FileListBox) コントロールと共に表示する場合は、これら 3 つのリスト ボックスが互いに協調して動作するようにコードを記述します。


関連項目

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

List プロパティ

ListCount プロパティ

ListIndex プロパティ


ディレクトリ リスト ボックス (DirListBox) コントロールのプロパティ

Appearance プロパティ

BackColor プロパティ

Container プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

ForeColor プロパティ

Height プロパティ

HelpContextID プロパティ

hWnd プロパティ

Index プロパティ

Left プロパティ

List プロパティ

ListCount プロパティ

ListIndex プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Parent プロパティ

Path プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Top プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


ディレクトリ リスト ボックス (DirListBox) コントロールのメソッド

Drag メソッド

Move メソッド

Refresh メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


ディレクトリ リスト ボックス (DirListBox) コントロールのイベント

Change イベント

Click イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント


ドライブ リスト ボックス (DriveListBox) コントロール

関連項目	プロパティ	メソッド 	イベント

ドライブ リスト ボックス (DriveListBox) コントロールを使うと、実行時に有効なディスク ドライブを選択できます。このコントロールを使うと、使用しているシステムの有効なドライブの一覧を表示できます。たとえば、このコントロールを使って、別のドライブのディスクにあるファイルを開くためのダイアログ ボックスを作ることができます。

構文

DriveListBox

解説

ドライブ リスト ボックス コントロールに表示された項目を参照するには、List、ListCount、ListIndex の各プロパティを正しく設定してください。ディレクトリ リスト ボックス (DirListBox) コントロールおよびファイル リスト ボックス (FileListBox) コントロールと共に表示する場合は、これら 3 つのリスト ボックスが互いに協調して動作するようにコードを記述します。


関連項目

ディレクトリ リスト ボックス (DirListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

List プロパティ

ListCount プロパティ

ListIndex プロパティ


ドライブ リスト ボックス (DriveListBox) コントロールのプロパティ

Appearance プロパティ

BackColor プロパティ

Container プロパティ

DragIcon プロパティ

DragMode プロパティ

Drive プロパティ

Enabled プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

ForeColor プロパティ

Height プロパティ

HelpContextID プロパティ

hWnd プロパティ

Index プロパティ

Left プロパティ

List プロパティ

ListCount プロパティ

ListIndex プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Parent プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Top プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


ドライブ リスト ボックス (DriveListBox) コントロールのメソッド

Drag メソッド

Move メソッド

Refresh メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


ドライブ リスト ボックス (DriveListBox) コントロールのイベント

Change イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント


ファイル リスト ボックス (FileListBox) コントロール

関連項目	プロパティ	メソッド 	イベント

ファイル リスト ボックス コントロールを使うと、実行時に、Path プロパティに設定したディレクトリに存在するファイルを検索し、一覧表示することができます。このコントロールを使うと、指定したファイル属性を持つファイル名の一覧を表示できます。たとえば、ファイルとそのグループを選択するためのダイアログ ボックスを作るために使います。

構文

FileListBox

解説

ファイル リスト ボックス コントロールに表示された項目を参照するには、List、ListCount、ListIndex の各プロパティを正しく設定してください。ドライブ リスト ボックス (DriveListBox) コントロールおよびディレクトリ リスト ボックス (DirListBox) コントロールと共に表示する場合は、これら 3 つのリスト ボックスが互いに協調して動作するようにコードを記述します。


関連項目

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

List プロパティ

ListCount プロパティ

ListIndex プロパティ

Path プロパティ


ファイル リスト ボックス (FileListBox) コントロールのプロパティ

Appearance プロパティ

Archive プロパティ

BackColor プロパティ

Container プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

FileName プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

ForeColor プロパティ

Height プロパティ

HelpContextID プロパティ

Hidden プロパティ

hWnd プロパティ

Index プロパティ

Left プロパティ

List プロパティ

ListCount プロパティ

ListIndex プロパティ

MouseIcon プロパティ

MousePointer プロパティ

MultiSelect プロパティ

Name プロパティ

Normal プロパティ

Parent プロパティ

Path プロパティ

Pattern プロパティ

ReadOnly プロパティ

Selected プロパティ

System プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Top プロパティ

TopIndex プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


ファイル リスト ボックス (FileListBox) コントロールのメソッド

Drag メソッド

Move メソッド

Refresh メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


ファイル リスト ボックス (FileListBox) コントロールのイベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント

PathChange イベント

PatternChange イベント


Form オブジェクト、Forms コレクション

関連項目	例	プロパティ	メソッド 	イベント

Form オブジェクトは、アプリケーションのユーザー インターフェイスの基本となるウィンドウまたはダイアログ ボックスです。

Forms コレクションは、アプリケーションにロードされている各フォーム (MDI フォーム、MDI 子フォーム、非 MDI フォームを含む) を表す要素を持つコレクションです。Forms コレクションのプロパティは、コレクション上の要素の数を指定する Count プロパティだけです。

注   Form オブジェクトおよび Forms コレクションを使用する場合の Visual Basic インプロセス OLE サーバー (DLL) に関する注意および制限については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

構文

Form

Forms(index)

引数 index には、0 ～ Forms.Count - 1 の範囲の整数を指定します。

解説

Forms コレクションを使って、アプリケーションにロードされているすべてのフォームを参照することができます。このコレクションでは、どこからでも参照できる組み込み変数 Forms が使用できます。Forms(index) は、Form クラスの引数として関数に渡すことができます。

フォームには、位置、サイズ、色などの外観や、フォームのサイズを変更できるかどうかなどの動作を決めるためのプロパティがあります。

フォームは、ユーザーの操作や、システムによって発生するイベントを認識できます。たとえば、ユーザーがフォームをクリックすると色を変更するような Click イベント プロシージャのコードを記述できます。

プロパティやイベントと共に、コード内にメソッドを記述してフォームを操作できます。たとえば、フォームの位置やサイズを変更するには、Move メソッドを使います。

特殊なフォームである MDI フォームには、MDI 子フォームと呼ばれる別のフォームを含めることができます。MDI フォームを作成するには、[挿入] メニューの [MDI フォーム モジュール] コマンドを選択します。MDI 子フォームを作成するには、[挿入] メニューの [フォーム モジュール] を選択し、MDIChild プロパティを真 (True) に設定します。

Dim、Set、Static ステートメントでキーワード New を使うと、コードで複数のフォームのインスタンスを作成できます。

フォームをデザインするときには、BorderStyle プロパティを設定してフォームの境界線を定義し、Caption プロパティを設定してタイトル バーにテキストを表示します。Hide メソッドまたは Show メソッドを使うと、実行時にコードでフォームを表示または非表示にすることができます。

注   BorderStyle プロパティを 0 に設定すると、境界線はなくなります。フォームの境界線が、タイトル バー、コントロール メニュー ボックス、最大化ボタン、最小化ボタンを持たないようにするには、フォームの Caption プロパティのテキストを削除し、ControlBox、MaxButton、MinButton の各プロパティを偽 (False) に設定します。

Form はオブジェクト データ型です。デザイン時に宣言したフォームのインスタンスとして変数を設定する前に、同じ変数を Form 型として宣言できます。プロシージャに Form 型の引数を渡すこともできます。

フォームは DDE 通信のソースとして使うこともできます。ラベル (Label)、ピクチャ ボックス (PictureBox)、テキスト ボックス (TextBox) コントロールのいずれかのデータがディスティネーションへ渡されます。

Controls コレクションを使用すると、Form オブジェクト内のコントロールのコレクションを参照または操作できます。たとえば、Form オブジェクト内のコントロールをすべて非表示にするには、次のコードを記述します。

For Each Control in Form1.Controls

Control.Visible = False

Next Control


関連項目

Controls コレクション

Count プロパティ (VB コレクション)

Dim ステートメント

Hide メソッド

ラベル (Label) コントロール

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

MDIChild プロパティ

MDIForm オブジェクト

Move メソッド

ピクチャ ボックス (PictureBox) コントロール

Set ステートメント

Static ステートメント

テキスト ボックス (TextBox) コントロール


Form オブジェクト、Forms コレクションのプロパティ

凡例

ActiveControl プロパティ

ActiveForm プロパティ

AutoRedraw プロパティ

Appearance プロパティ

BackColor プロパティ

BorderStyle プロパティ

Caption プロパティ

ClipControls プロパティ

ControlBox プロパティ

Count プロパティ

CurrentX プロパティ

CurrentY プロパティ

DrawMode プロパティ

DrawStyle プロパティ

DrawWidth プロパティ

Enabled プロパティ

FillColor プロパティ

FillStyle プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontTransparent プロパティ

FontUnderline プロパティ

ForeColor プロパティ

hDC プロパティ

Height プロパティ

HelpContextID プロパティ

hWnd プロパティ

Icon プロパティ

Image プロパティ

KeyPreview プロパティ

Left プロパティ

LinkMode プロパティ

LinkTopic プロパティ

MaxButton プロパティ

MDIChild プロパティ

MinButton プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

NegotiateMenus プロパティ

NewEnum プロパティ

Picture プロパティ

ScaleHeight プロパティ

ScaleLeft プロパティ

ScaleMode プロパティ

ScaleTop プロパティ

ScaleWidth プロパティ

ShowInTaskbar プロパティ

Tag プロパティ

Top プロパティ

Visible プロパティ

WhatsThisButton プロパティ

WhatsThisHelp プロパティ

Width プロパティ

WindowState プロパティ


Form オブジェクト、Forms コレクションのメソッド

凡例

Circle メソッド

Cls メソッド

Hide メソッド

Item メソッド

Line メソッド

Move メソッド

PaintPicture メソッド

Point メソッド

PopupMenu メソッド

Print メソッド

PrintForm メソッド

PSet メソッド

Refresh メソッド

Scale メソッド

ScaleX メソッド

ScaleY メソッド

SetFocus メソッド

Show メソッド

TextHeight メソッド

TextWidth メソッド

WhatsThisMode メソッド

ZOrder メソッド


Form オブジェクト、Forms コレクションのイベント

Activate イベント

Click イベント

DblClick イベント

Deactivate イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

Initialize イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LinkClose イベント

LinkError イベント

LinkExecute イベント

LinkOpen イベント

Load イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント

Paint イベント

QueryUnload イベント

Resize イベント

Terminate イベント

Unload イベント


フレーム (Frame) コントロール

関連項目	プロパティ	メソッド 	イベント

フレーム コントロールを使って、他のコントロールをグループ化するための四角形の領域を表示します。フレームを使って、1 つのフォームを複数に区切って使うこともできます。たとえば、オプション ボタンを複数のグループに分けることができます。

構文

Frame

解説

コントロールをグループ化するには、フレーム コントロールを配置してから、その中にコントロールを配置します。こうすると、フレームはコンテナとして機能し、フレームといっしょにその中のコントロールも移動するようになります。


関連項目

オプション ボタン (OptionButton) コントロール


フレーム (Frame) コントロールのプロパティ

Appearance プロパティ

BackColor プロパティ

Caption プロパティ

ClipControls プロパティ

Container プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

ForeColor プロパティ

Height プロパティ

HelpContextID プロパティ

hWnd プロパティ

Index プロパティ

Left プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Parent プロパティ

TabIndex プロパティ

Tag プロパティ

Top プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


フレーム (Frame) コントロールのメソッド

Drag メソッド

Move メソッド

Refresh メソッド

ShowWhatsThis メソッド

ZOrder メソッド


フレーム (Frame) コントロールのイベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント


グリッド (Grid) コントロール

関連項目	プロパティ	メソッド 	イベント

グリッド コントロールを使って、連続した行と列を表示することができます。行と列の交差するところがセルになります。それぞれのセルの内容と取得はコードで行います。

構文

Grid

解説

グリッド コントロールのセルには、テキストやピクチャを入れることができます。

グリッド上の現在のセルを指定するには、Row、Col の各プロパティを使います。カレントのセルはコードで指定することができ、実行時にマウスや方向キーを使ってカレントのセルを変更することもできます。カレントのセルの内容を参照するには、Text プロパティを使います。

テキストが長すぎて 1 つのセルの中に表示することができないときは、テキストはセル内の次の行に送られます。送られたテキストを表示するには、セルの列幅 (ColWidth プロパティ) を増やすか、行の高さ (RowHeight プロパティ) を増やす必要があります。

グリッド コントロールの列数と行数を指定するには、Cols プロパティと Rows プロパティを使います。Cols プロパティと Rows プロパティに指定できる最大値は、それぞれ 16352 と 5450y です。

実行時にコントロール配列に新しいコントロールがロードされた場合、新しいコントロールは元のコントロールの実行時のプロパティを継承しません。

配布時の注意   グリッド コントロールはカスタム コントロールで、.OCX の拡張子を持つ独立したファイルです。アプリケーション上でグリッド コントロールを使うには、GRID16.OCX または GRID32.OCX ファイルをプロジェクトに追加する必要があります。このカスタム コントロールを自動的に新しいプロジェクトに追加するには、AUTOLOAD.VBP に必要なファイルを追加します。アプリケーションを配布するときには、Microsoft Windows の \SYSTEM ディレクトリに .OCX ファイルをインストールします。カスタム コントロールをプロジェクトに追加する方法の詳細については、『プログラミング ガイド』を参照してください。


関連項目

Col、Row プロパティ

ColWidth プロパティ

RowHeight プロパティ

Text プロパティ


グリッド (Grid) コントロールのプロパティ

BackColor プロパティ

BorderStyle プロパティ

CellSelected プロパティ

Clip プロパティ

Col プロパティ

ColAlignment プロパティ

ColIsVisible プロパティ

ColPos プロパティ

Cols プロパティ

ColWidth プロパティ

Container プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

FillStyle プロパティ

FixedAlignment プロパティ

FixedCols プロパティ

FixedRowsプロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

ForeColor プロパティ

GridLines プロパティ

GridLineWidth プロパティ

Height プロパティ

HelpContextID プロパティ

HighLight プロパティ

hWnd プロパティ

Index プロパティ

Left プロパティ

LeftCol プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Object プロパティ

Parent プロパティ

Picture プロパティ

Row プロパティ

RowHeight プロパティ

RowIsVisible プロパティ

RowPos プロパティ

Rows プロパティ

ScrollBars プロパティ

SelEndCol プロパティ

SelEndRow プロパティ

SelStartCol プロパティ

SelStartRow プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Text プロパティ

Top プロパティ

TopRow プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


グリッド (Grid) コントロールのメソッド

AddItem メソッド

Drag メソッド

Move メソッド

Refresh メソッド

RemoveItem メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


グリッド (Grid) コントロールのイベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント

RowColChange イベント

SelChange イベント


水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

関連項目	プロパティ	メソッド 	イベント

スクロール バーを使って、画面をスクロールさせ、長いリストや大量の情報を速やかに操作したり、その範囲内での現在位置を示すことができます。スクロール バーは、スピードや量のインジケータとしても使えます。たとえば、コンピュータ ゲームの音量を調節したり、時間を計っている処理で経過時間を示したりすることに利用できます。

構文

HScrollBar

VScrollBar

解説

スクロール バーを、量やスピードのインジケータとして使うときや、入力デバイスとして使うときは、Max プロパティと Min プロパティで適切な範囲を設定してください。

スクロール バーのバーの部分がクリックされたときの変更量を指定するには LargeChange プロパティを使い、バーの両端にある矢印がクリックされたときの変更量を指定するには SmallChange プロパティを使います。そのスクロール バーの Value プロパティの値は、LargeChange プロパティと SmallChange プロパティに設定されている値を単位として増減します。また、実行時にスクロール ボックスの位置を設定するには、Value プロパティに 0 ～ 32,767 の範囲の値を設定します。


関連項目

LargeChange、SmallChange プロパティ

Max、Min プロパティ (スクロール バー)

Value プロパティ


水平スクロール バー (HScrollBar) コントロール、垂直スクロール バー (VScrollBar) コントロールのプロパティ

Container プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Height プロパティ

HelpContextID プロパティ

hWnd プロパティ

Index プロパティ

LargeChange プロパティ

Left プロパティ

Max プロパティ

Min プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Parent プロパティ

SmallChange プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Top プロパティ

Value プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


水平スクロール バー (HScrollBar) コントロール、垂直スクロール バー (VScrollBar) コントロールのメソッド

Drag メソッド

Move メソッド

Refresh メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


水平スクロール バー (HScrollBar) コントロール、垂直スクロール バー (VScrollBar) コントロールのイベント

Change イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント

Scroll イベント


イメージ (Image) コントロール

関連項目	プロパティ	メソッド 	イベント

イメージ コントロールは、画像を表示するグラフィカル コントロールです。

構文

Image

解説

イメージ コントロールは、ピクチャ ボックス (PictureBox) コントロールと比べてリソースの消費が少ないうえに高速ですが、ピクチャ ボックス コントロールが持つプロパティ、イベント、メソッドの一部しかサポートしていません。画像をコントロールの大きさに合わせてサイズを変更するか、反対にコントロールを画像の大きさに合わせてサイズを変更するかは、Stretch プロパティを使って設定します。イメージ コントロールをコンテナ上に配置することはできますが、そのコントロールをコンテナとして使うことはできません。


関連項目

グラフィカル オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Stretch プロパティ


イメージ (Image) コントロールのプロパティ

Appearance プロパティ

BorderStyle プロパティ

Container プロパティ

DataChanged プロパティ

DataField プロパティ

DataSource プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Height プロパティ

Index プロパティ

Left プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Parent プロパティ

Picture プロパティ

Stretch プロパティ

Tag プロパティ

Top プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


イメージ (Image) コントロールのメソッド

Drag メソッド

Move メソッド

Refresh メソッド

ShowWhatsThis メソッド

ZOrder メソッド


イメージ (Image) コントロールのイベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント


ラベル (Label) コントロール

関連項目	プロパティ	メソッド 	イベント

ラベル コントロールは、ユーザーが直接変更できないテキストを表示するグラフィカル コントロールです。

構文

Label

解説

実行時にイベントに応答してラベル コントロールの内容を変えて表示すれば、ユーザーに対するメッセージを表示するためにラベル コントロールを利用できます。たとえば、長い時間がかかる処理の場合、進行状況を示すメッセージを表示できます。また、ラベル コントロールを使って、Caption プロパティを持たないコントロール (テキスト ボックス (TextBox) コントロールなど) に対して説明のテキストを表示することもできます。

長さが変化するテキストや複数行のテキストを表示するには、AutoSize プロパティと WordWrap プロパティを設定します。

ラベル コントロールは、DDE 通信のディスティネーション に設定することができます。リンクを設定するには、LinkTopic プロパティを使ってリンクを開設し、LinkItem プロパティを使って通信対象のアイテムを指定し、LinkMode プロパティを使ってリンクをアクティブにします。以上の設定が完了すると、Microsoft Visual Basic は DDE 通信を開始します。なんらかの理由で通信ができない場合は、メッセージが表示されます。

アクセス キーとしてラベル コントロールの Caption プロパティに 1 文字を定義するには、UseMnemonic プロパティを真 (True) に設定します。ラベル コントロールにアクセス キーを定義すると、Alt キーと指定した文字のキーを同時に押して、次のタブ オーダーのコントロールにフォーカスを移動することができます。


関連項目

AutoSize プロパティ

Caption プロパティ

DataField プロパティ

DataSource プロパティ

グラフィカル オブジェクト

LinkItem プロパティ

LinkMode プロパティ

LinkTopic プロパティ

TabIndex プロパティ

テキスト ボックス (TextBox) コントロール

WordWrap プロパティ


ラベル (Label) コントロールのプロパティ

Alignment プロパティ

Appearance プロパティ

AutoSize プロパティ

BackColor プロパティ

BackStyle プロパティ

BorderStyle プロパティ

Caption プロパティ

Container プロパティ

DataChanged プロパティ

DataSource プロパティ

DataField プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

ForeColor プロパティ

Height プロパティ

Index プロパティ

Left プロパティ

LinkItem プロパティ

LinkMode プロパティ

LinkTimeout プロパティ

LinkTopic プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Parent プロパティ

TabIndex プロパティ

Tag プロパティ

Top プロパティ

UseMnemonic プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ

WordWrap プロパティ


ラベル (Label) コントロールのメソッド

Drag メソッド

LinkExecute メソッド

LinkPoke メソッド

LinkRequest メソッド

Move メソッド

Refresh メソッド

ShowWhatsThis メソッド

ZOrder メソッド


ラベル (Label) コントロールのイベント

Change イベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

LinkClose イベント

LinkError イベント

LinkNotify イベント

LinkOpen イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント


ライン (Line) コントロール

関連項目	プロパティ	メソッド

ライン コントロールは、水平、垂直、斜めの直線を描くグラフィカル コントロールです。

構文

Line

解説

ライン コントロールは、デザイン時にフォーム上に直線を描くために使います。実行時には、ライン コントロールを Line メソッドの代わりに使ったり、両者を組み合わせて使うことができます。ライン コントロールを使って描いた直線は、AutoRedraw プロパティが偽 (False) に設定されていても画面上に残ります。ライン コントロールは、フォームの上、ピクチャ ボックス内、フレーム内のいずれにも直線を描けます。実行時に、ライン コントロールを Move メソッドを使って移動することはできませんが、X1、X2、Y1、Y2 の各プロパティを設定することによって移動およびサイズ変更が可能です。BorderStyle プロパティの設定は、BorderWidth プロパティの設定によって変わる点に注意してください。BorderWidth プロパティが 1 でなく、BorderStyle プロパティが 0 または 6 でないときは、BorderStyle プロパティは 1 に設定されます。


関連項目

BorderStyle プロパティ

BorderWidth プロパティ

フレーム (Frame) コントロール

グラフィカル オブジェクト

Line メソッド

Move メソッド

ピクチャ ボックス (PictureBox) コントロール


ライン (Line) コントロールのプロパティ

Appearance プロパティ

BorderColor プロパティ

BorderStyle プロパティ

BorderWidth プロパティ

Container プロパティ

DrawMode プロパティ

Index プロパティ

Name プロパティ

Parent プロパティ

Tag プロパティ

Visible プロパティ

X1 プロパティ

X2 プロパティ

Y1 プロパティ

Y2 プロパティ


ライン (Line) コントロールのメソッド

Refresh メソッド

ZOrder メソッド


リスト ボックス (ListBox) コントロール

関連項目	プロパティ	メソッド 	イベント

リスト ボックス コントロールを使うと、選択肢の一覧を表示し、ユーザーがその中から 1 つの項目を選択できます。項目が表示領域に入りきらない場合は、リスト ボックスに自動的にスクロール バーが追加されます。

構文

ListBox

解説

リスト ボックス コントロール内の項目は AddItem メソッドを使って追加、RemoveItem メソッドを使って削除できます。コードを使って、リスト ボックスに表示されている項目を調べたり変更したりするには、List、ListCount、ListIndex の各プロパティを使います。


関連項目

AddItem メソッド

List プロパティ

ListCount プロパティ

ListIndex プロパティ

RemoveItem メソッド


リスト ボックス (ListBox) コントロールのプロパティ

Appearance プロパティ

BackColor プロパティ

Columns プロパティ

Container プロパティ

DataChanged プロパティ

DataField プロパティ

DataSource プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

ForeColor プロパティ

Height プロパティ

HelpContextID プロパティ

hWnd プロパティ

Index プロパティ

IntegralHeight プロパティ

ItemData プロパティ

Left プロパティ

List プロパティ

ListCount プロパティ

ListIndex プロパティ

MouseIcon プロパティ

MousePointer プロパティ

MultiSelect プロパティ

Name プロパティ

NewIndex プロパティ

Parent プロパティ

SelCount プロパティ

Selected プロパティ

Sorted プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Text プロパティ

Top プロパティ

TopIndex プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


リスト ボックス (ListBox) コントロールのメソッド

AddItem メソッド

Clear メソッド

Drag メソッド

Move メソッド

Refresh メソッド

RemoveItem メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


リスト ボックス (ListBox) コントロールのイベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント


MDIForm オブジェクト

関連項目	プロパティ	メソッド 	イベント

MDI (Multiple-Document Interface) フォームは、アプリケーションのバックグラウンドとして機能するウィンドウで、MDIChild プロパティを真 (True) に設定したフォームのコンテナになります。

注   MDIForm オブジェクトを使用する場合の Visual Basic インプロセス OLE サーバー (DLL) に関する注意および制限については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

構文

MDIForm

解説

MDI フォーム (MDIForm オブジェクト) を作成するには、[挿入] - [MDI フォーム モジュール] を選択します。

アプリケーションは、1 個の MDI フォームと複数の MDI 子フォームで構成することができます。MDI 子フォームがメニューを持つ場合は、子フォームがアクティブになったときに、そのメニュー バーが自動的に MDI フォームのメニュー バーと置き換えられます。最小化された MDI 子フォームは、MDI フォーム上のアイコンとして表示されます。

MDI フォームを持つことができるのは、メニュー (Menu) コントロール、ピクチャ ボックス (PictureBox) コントロール、および Align プロパティを設定できるカスタム コントロールに限られます。これ以外のコントロールを MDI フォーム上に配置するには、まずフォーム上にピクチャ ボックスを置き、そのピクチャ ボックスの上にコントロールを置きます。MDI フォーム上に置かれたピクチャ ボックス上にテキストを表示するには Print メソッドを使いますが、Print メソッドでテキストを直接 MDI フォーム上に表示することはできません。

MDI フォームは、モーダルには設定できません。

MDI 子フォームはデザイン時には MDI フォームから独立していますが、実行時には常に MDI フォーム上に置かれる点に注意してください。

Controls コレクションを使用すると、MDIForm オブジェクト内のコントロールのコレクションを参照および操作できます。たとえば、MDIForm オブジェクト内のコントロールをすべて非表示にするには、次のコードを記述します。

For Each Control in MDIForm1.Controls

Control.Visible = False

Next Control

MDIForm オブジェクトの Count プロパティは、Controls コレクション内のコントロールの数を示します。


関連項目

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

MDIChild プロパティ

Print メソッド


MDIForm オブジェクトのプロパティ

ActiveControl プロパティ

ActiveForm プロパティ

Appearance プロパティ

AutoShowChildren プロパティ

BackColor プロパティ

Caption プロパティ

Enabled プロパティ

Height プロパティ

HelpContextID プロパティ

hWnd プロパティ

Icon プロパティ

Left プロパティ

LinkMode プロパティ

LinkTopic プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Picture プロパティ

ScaleHeight プロパティ

ScaleWidth プロパティ

ScrollBars プロパティ

Tag プロパティ

Top プロパティ

Visible プロパティ

WhatsThisHelp プロパティ

Width プロパティ

WindowState プロパティ


MDIForm オブジェクトのメソッド

Arrange メソッド

Hide メソッド

Move メソッド

PopupMenu メソッド

SetFocus メソッド

Show メソッド

WhatsThisMode メソッド

ZOrder メソッド


MDIForm オブジェクトのイベント

Activate イベント

Click イベント

DblClick イベント

Deactivate イベント

DragDrop イベント

DragOver イベント

Initialize イベント

LinkClose イベント

LinkError イベント

LinkExecute イベント

LinkOpen イベント

Load イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント

QueryUnload イベント

Resize イベント

Terminate イベント

Unload イベント


メニュー (Menu) コントロール

関連項目	プロパティ	イベント

メニュー コントロールを使うと、アプリケーションに独自のメニューを加えることができます。メニューは、コマンド、サブメニュー タイトル、区分線から構成されます。メニューは、4 段階までの階層を持つことができます。

構文

Menu

解説

メニュー コントロールの作成は、メニュー エディタを使って行います。メニュー タイトルは、[キャプション] ボックスを使って入力します。区分線を表示するには、[キャプション] ボックスにハイフン (-) を設定します。メニュー項目の左にチェック マークを表示するには、[チェック] チェック ボックスをオンにします。

メニュー コントロールのプロパティの一部は、メニュー エディタでも設定できますが、すべてのプロパティを設定するには [プロパティ] ウィンドウを使います。メニュー コントロールのプロパティを表示するには、[プロパティ] ウィンドウの一番上のオブジェクト ボックスからメニュー名を選択します。

MDI (Multiple-Document Interface) アプリケーションを作成する場合は、子フォームがアクティブになったときに、MDI 子フォームのメニューが MDI フォームのメニュー バーに入れ替わります。


関連項目

MDIForm オブジェクト

メニュー エディタ


メニュー (Menu) コントロールのプロパティ

Appearance プロパティ

Caption プロパティ

Checked プロパティ

Enabled プロパティ

HelpContextID プロパティ

Index プロパティ

Name プロパティ

NegotiatePosition プロパティ

Parent プロパティ

ShortCut プロパティ

Tag プロパティ

Visible プロパティ

WindowList プロパティ


メニュー (Menu) コントロールのイベント

Click イベント


オプション ボタン (OptionButton) コントロール

関連項目	プロパティ	メソッド 	イベント

オプション ボタン コントロールを使うと、オン/オフや真 (True)/偽 (False) のような、2 つの状態が切り替わるオプションを選択できます。

構文

OptionButton

解説

オプション ボタン コントロールはチェック ボックスと異なり、通常はグループ化して、複数の選択肢の中から 1 つだけを選択するような場合に使われます。オプション ボタンをグループ化するには、フレーム (Frame) コントロールまたはピクチャ ボックス (PictureBox) コントロールに配置するか、またはフォームに直接配置します。フレームやピクチャ ボックス内でオプション ボタンをグループ化するには、まずフレームまたはピクチャ ボックスをフォームに配置してから、その中にオプション ボタンを配置します。こうすると、フレームまたはピクチャ ボックスはコンテナとして機能し、コンテナと共にその中のオプション ボタンも移動するようになります。一方、フォーム上に配置したオプション ボタンは、フレームやピクチャ ボックス内に配置したオプション ボタンとは別のグループとしてグループ化されます。

オプション ボタン (OptionButton) コントロールとチェック ボックス (CheckBox) コントロールの機能は 2 つの状態を切り換えるという意味では似ていますが、目的は異なります。オプション ボタンはグループ化して、複数の選択肢から 1 つの項目だけを選択するために使います。これに対してチェック ボックスは、ある 1 つの項目のオン/オフを切り替えるために使います。


関連項目

チェック ボックス (CheckBox) コントロール

Form オブジェクト、Forms コレクション

フレーム (Frame) コントロール

ピクチャ ボックス (PictureBox) コントロール


オプション ボタン (OptionButton) コントロールのプロパティ

Alignment プロパティ

Appearance プロパティ

BackColor プロパティ

Caption プロパティ

Container プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

ForeColor プロパティ

Height プロパティ

HelpContextID プロパティ

hWnd プロパティ

Index プロパティ

Left プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Parent プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Top プロパティ

Value プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


オプション ボタン (OptionButton) コントロールのメソッド

Drag メソッド

Move メソッド

Refresh メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


オプション ボタン (OptionButton) コントロールのイベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント


ピクチャ ボックス (PictureBox) コントロール

関連項目	プロパティ	メソッド 	イベント

ピクチャ ボックス コントロールは、ビットマップ、アイコン、メタファイルなどのグラフィックスを表示します。コントロールの大きさが、表示されるイメージの大きさよりも小さいときは、コントロールからはみ出した部分は画面に表示されません。

構文

PictureBox

解説

ピクチャ ボックス コントロールには、グラフィックス メソッドの出力や、Print メソッドのテキスト出力も表示できるほか、オプション ボタン (OptionButton) コントロールをグループ化するためのコンテナとしても使えます。

表示するグラフィックスの大きさに合わせて、ピクチャ ボックス コントロールのサイズが自動的に変更されるようにするには、AutoSize プロパティを真 (True) に設定します。

アニメーションのようなグラフィックスを使った処理を作成するには、各種のグラフィックス プロパティとグラフィックス メソッドを使います。実行時に出力操作 (たとえば出力時のフォームのフォーマットを変更する) を行うには、グラフィックス プロパティとイベントが役立ちます。

ピクチャ ボックス コントロールは、DDE通信におけるディスティネーションとしても使えます。

Microsoft Visual Basic の標準コントロールの中で、MDI フォームの内部領域に配置できるのはピクチャ ボックス (PictureBox) コントロールだけです。ツール バーやステータス バーを作成するには、ピクチャ ボックス コントロールを使って内部領域の最上部または最下部にあるコントロールをグループ化できます。


関連項目

AutoSize プロパティ

MDIForm オブジェクト

Print メソッド


ピクチャ ボックス (PictureBox) コントロールのプロパティ

Align プロパティ

Appearance プロパティ

AutoRedraw プロパティ

AutoSize プロパティ

BackColor プロパティ

BorderStyle プロパティ

ClipControls プロパティ

Container プロパティ

CurrentX プロパティ

CurrentY プロパティ

DataChanged プロパティ

DataField プロパティ

DataSource プロパティ

DragIcon プロパティ

DragMode プロパティ

DrawMode プロパティ

DrawStyle プロパティ

DrawWidth プロパティ

Enabled プロパティ

FillColor プロパティ

FillStyle プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontTransparent プロパティ

FontUnderline プロパティ

ForeColor プロパティ

hDC プロパティ

Height プロパティ

HelpContextID プロパティ

hWnd プロパティ

Image プロパティ

Index プロパティ

Left プロパティ

LinkItem プロパティ

LinkMode プロパティ

LinkTimeout プロパティ

LinkTopic プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Parent プロパティ

Picture プロパティ

ScaleHeight プロパティ

ScaleLeft プロパティ

ScaleMode プロパティ

ScaleTop プロパティ

ScaleWidth プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Top プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


ピクチャ ボックス (PictureBox) コントロールのメソッド

Circle メソッド

Cls メソッド

Drag メソッド

Line メソッド

LinkExecute メソッド

LinkPoke メソッド

LinkRequest メソッド

LinkSend メソッド

Move メソッド

PaintPicture メソッド

Point メソッド

Print メソッド

PSet メソッド

Refresh メソッド

Scale メソッド

ScaleX メソッド

ScaleY メソッド

SetFocus メソッド

ShowWhatsThis メソッド

TextHeight メソッド

TextWidth メソッド

ZOrder メソッド


ピクチャ ボックス (PictureBox) コントロールのイベント

Change イベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LinkClose イベント

LinkError イベント

LinkNotify イベント

LinkOpen イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント

Paint イベント

Resize イベント


シェイプ (Shape) コントロール

関連項目	プロパティ	メソッド

シェイプ コントロールは、長方形、正方形、だ円、円、丸みのある長方形、丸みのある正方形などの基本的な図形を表示するグラフィカル コントロールです。

構文

Shape

解説

シェイプ コントロールは、デザイン時に円や四角を描くために使います。実行時には、ライン (Line) コントロールを Circle メソッドや Line メソッドの代わりに使ったり、両者を組み合わせて使うことができます。シェイプ コントロールは、コンテナ上に配置することはできますが、シェイプ コントロール自体をコンテナとして使うことはできない点に注意してください。また、BorderStyle プロパティの設定は BorderWidth プロパティの設定に依存している点にも注意してください。BorderWidth プロパティが 1 でなく、BorderStyle プロパティが 0 または 6 でないときは、BorderStyle プロパティは 1 に設定されます。


関連項目

Circle メソッド

フレーム (Frame) コントロール

グラフィカル オブジェクト

Line メソッド

ピクチャ ボックス (PictureBox) コントロール


シェイプ (Shape) コントロールのプロパティ

Appearance プロパティ

BackColor プロパティ

BackStyle プロパティ

BorderColor プロパティ

BorderStyle プロパティ

BorderWidth プロパティ

Container プロパティ

DrawMode プロパティ

FillColor プロパティ

FillStyle プロパティ

Height プロパティ

Index プロパティ

Left プロパティ

Name プロパティ

Parent プロパティ

Shape プロパティ

Tag プロパティ

Top プロパティ

Visible プロパティ

Width プロパティ


シェイプ (Shape) コントロールのメソッド

Move メソッド

Refresh メソッド

ZOrder メソッド


テキスト ボックス (TextBox) コントロール

関連項目	プロパティ	メソッド 	イベント

テキスト ボックス コントロールの内容は、デザイン時にあらかじめ指定しておくことができます。実行時は、ユーザーがテキスト ボックス コントロールに入力するか、コードで設定することもできます。テキスト ボックス コントロールは、“編集フィールド”または“編集コントロール”と呼ばれることもあります。

構文

TextBox

解説

実行時に複数行のテキストを表示するには、MultiLine プロパティを真 (True) に設定してください。複数行のテキスト ボックス コントロールで水平スクロール バーを表示していないときは、テキスト ボックス コントロールのサイズ変更に合わせて、ボックス内のテキストも自動的に折り返されます。テキスト ボックス コントロールに表示されるスクロール バーの組み合わせを設定するには、ScrollBars プロパティを使います。

MultiLine プロパティを真 (True) に設定すると、Alignment プロパティを使ってテキスト ボックス (TextBox) コントロール内のテキストの配置を設定できます。既定値では、テキストは左揃えになります。MultiLine プロパティが偽 (False) のときは、Alignment プロパティを設定しても無効です。

また、テキスト ボックス (TextBox) コントロールは、DDE 通信でのディスティネーションとしても動作します。


関連項目

Alignment プロパティ

MultiLine プロパティ

ScrollBars プロパティ


テキスト ボックス (TextBox) コントロールのプロパティ

Alignment プロパティ

Appearance プロパティ

BackColor プロパティ

BorderStyle プロパティ

Container プロパティ

DataChanged プロパティ

DataField プロパティ

DataSource プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

Font プロパティ

FontBold プロパティ

FontItalic プロパティ

FontName プロパティ

FontSize プロパティ

FontStrikethru プロパティ

FontUnderline プロパティ

ForeColor プロパティ

Height プロパティ

HelpContextID プロパティ

HideSelection プロパティ

hWnd プロパティ

Index プロパティ

Left プロパティ

LinkItem プロパティ

LinkMode プロパティ

LinkTimeout プロパティ

LinkTopic プロパティ

Locked プロパティ

MaxLength プロパティ

MouseIcon プロパティ

MousePointer プロパティ

MultiLine プロパティ

Name プロパティ

Parent プロパティ

PasswordChar プロパティ

ScrollBars プロパティ

SelLength プロパティ

SelStart プロパティ

SelText プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Text プロパティ

Top プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


テキスト ボックス (TextBox) コントロールのメソッド

Drag メソッド

LinkExecute メソッド

LinkPoke メソッド

LinkRequest メソッド

Move メソッド

Refresh メソッド

SetFocus メソッド

ShowWhatsThis メソッド

ZOrder メソッド


テキスト ボックス (TextBox) コントロールのイベント

Change イベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LinkClose イベント

LinkError イベント

LinkNotify イベント

LinkOpen イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント


タイマー (Timer) コントロール

関連項目	プロパティ	イベント

タイマー コントロールを使うと、Timer イベントを使って、一定の時間が経過するたびにコードを実行できます。

構文

Timer

解説

タイマー コントロールは実行時には表示されないため、バックグラウンド処理を実行するときに役立ちます。

タイマー コントロールの Enabled プロパティは、タイマー以外のコントロールを複数選択したものに対しては設定できません。


関連項目

Enabled プロパティ

Timer イベント


タイマー (Timer) コントロールのプロパティ

Enabled プロパティ

Index プロパティ

Interval プロパティ

Left プロパティ

Name プロパティ

Parent プロパティ

Tag プロパティ

Top プロパティ


タイマー (Timer) コントロールのイベント

Timer イベント


Forms コレクションの例

次のプログラムでは、現在ロードされているすべてのフォームのキャプションの一覧をリスト ボックスに表示します。

Private Sub Form_Activate ()

Dim I	' 変数を宣言します。

' インスタンスの追加または削除が行われるたびに、リストを再設定します。

lstForms.Clear	' リスト ボックスを初期化します。

For I = 0 To Forms.Count - 1

lstForms.AddItem Forms(I).Caption

Next I

End Sub


Controls コレクションの例

次のプログラムでは、メニュー (Menu) コントロール以外の、フォーム上に現在ロードされているすべてのコントロールを有効にします。

Sub EnableControlsOn (Frm As Form, State As Integer)

Dim I	' 変数を宣言します。

For I = 0 To Frm.Controls.Count - 1

If Not TypeOf Frm.Controls(I) Is Menu Then

Frm.Controls(I).Enabled = State

End If

Next I

End Sub


OLE コンテナ (OLE) コントロール

関連項目	プロパティ	メソッド	イベント

OLE コンテナ コントロールは、Microsoft Visual Basic アプリケーションのフォームに挿入可能なオブジェクトを追加できます。OLE コンテナ コントロールを使うと、次のことができます。

アプリケーションに、挿入可能なオブジェクトのプレースホルダを作成します。実行時には OLE コンテナ コントロール内に表示されるオブジェクトを作成でき、デザイン時には OLE コンテナ コントロールに配置したオブジェクトを変更できます。

アプリケーションに、リンク オブジェクトを作成できます。

データ (Data) コントロールを使って、OLE コンテナ コントロールをデータベースに結合できます。

デザイン時に OLE 関連の ダイアログ ボックス ([オブジェクトの挿入] ダイアログ ボックス、[形式を選択して貼り付け] ダイアログ ボックスなど) を使ってオブジェクトを作成するか、実行時に適切なプロパティを設定することでオブジェクトを作成します。

OLE コンテナ コントロールのポップアップ メニューの使用

フォームに OLE コンテナ コントロールを作成するたびに、[オブジェクトの挿入] ダイアログ ボックスが表示されます。このダイアログ ボックスで、リンク オブジェクトや埋め込みオブジェクトを作成できます。[キャンセル] ボタンを選択すると、オブジェクトは作成されません。

デザイン時に、OLE コンテナ コントロールを右のマウス ボタンでクリックすると、ポップアップ メニューが表示されます。ポップアップ メニューに表示されるコマンドは、OLE コンテナ コントロールの状態によって次の表のように違います。

コマンド	ポップアップ メニューが有効となる条件

オブジェクトの挿入	常に有効です。

形式を選択して貼り付け	Clipboard オブジェクトに貼り付け可能なオブジェクトがあるときに有効です。

埋め込みオブジェクトの削除	OLE コンテナ コントロールに埋め込みオブジェクトがあるときに有効です。

リンクの削除	OLE コンテナ コントロールにリンク オブジェクトがあるときに有効です。

リンクの作成	SourceDoc プロパティが設定されているときに有効です。

埋め込みオブジェクトの作成	Class プロパティかまたは SourceDoc プロパティが設定されているときに有効です。

OLE コンテナ コントロールに入れることができるオブジェクトは、常に 1 つだけです。リンク オブジェクトや埋め込みオブジェクトは、次の方法で作成できます。

[オブジェクトの挿入] ダイアログ ボックスまたは [形式を選択して貼り付け] ダイアログ ボックスを使います (実行時またはデザイン時)。

プロパティ ウィンドウで Class プロパティを設定します。OLE コンテナ コントロールを右のマウス ボタンでクリックし、適切なコマンドを選択します。この方法はデザイン時のみ使えます。

OLE コンテナ コントロールの適切なメソッドを使います。

クラス名の検索

アプリケーションで利用可能なクラス名のリストを取得するには、プロパティ ウィンドウで Class プロパティを選択してからプロパティ ボタンをクリックします。

注   [オブジェクトの挿入] ダイアログ ボックスには、クラス名のリストは表示されません。このダイアログ ボックスには、各オブジェクトのクラスの名前がわかりやすい名前で表示されます。


関連項目

CreateObject 関数

GetObject 関数

Object プロパティ

OLE の基礎

Open ステートメント


OLE コンテナ (OLE) コントロール プロパティ

Action プロパティ (OLE コンテナ)

Appearance プロパティ

AppIsRunning プロパティ

AutoActivate プロパティ

AutoVerbMenu プロパティ

BackColor プロパティ

BackStyle プロパティ

BorderStyle プロパティ

Class プロパティ

Container プロパティ

Data プロパティ

DataChanged プロパティ

DataField プロパティ

DataSource プロパティ

DataText プロパティ

DisplayType プロパティ

DragIcon プロパティ

DragMode プロパティ

Enabled プロパティ

FileNumber プロパティ

Format プロパティ

Height プロパティ

HelpContextID プロパティ

HostName プロパティ

hWnd プロパティ

Index プロパティ

Left プロパティ

lpOleObject プロパティ

MiscFlags プロパティ

MouseIcon プロパティ

MousePointer プロパティ

Name プロパティ

Object プロパティ

ObjectAcceptFormats プロパティ

ObjectAcceptFormatsCount プロパティ

ObjectGetFormats プロパティ

ObjectGetFormatsCount プロパティ

ObjectVerbFlags プロパティ

ObjectVerbs プロパティ

ObjectVerbsCount プロパティ

OLEDropAllowed プロパティ

OLEType プロパティ

OLETypeAllowed プロパティ

Parent プロパティ

PasteOK プロパティ

Picture プロパティ

SizeMode プロパティ

SourceDoc プロパティ

SourceItem プロパティ

TabIndex プロパティ

TabStop プロパティ

Tag プロパティ

Top プロパティ

UpdateOptions プロパティ

Verb プロパティ

Visible プロパティ

WhatsThisHelpID プロパティ

Width プロパティ


OLE コンテナ (OLE) コントロール メソッド

Close メソッド (OLE コンテナ)

Copy メソッド

CreateEmbed メソッド

CreateLink メソッド

Delete メソッド (OLE コンテナ)

DoVerb メソッド

Drag メソッド

FetchVerbs メソッド

InsertObjDlg メソッド

Move メソッド

Paste メソッド

PasteSpecialDlg メソッド

ReadFromFile メソッド

Refresh メソッド

SaveToFile メソッド

SaveToOle1File メソッド

SetFocus メソッド

ShowWhatsThis メソッド

Update メソッド (OLE コンテナ)

ZOrder メソッド


OLE コンテナ (OLE) コントロール イベント

Click イベント

DblClick イベント

DragDrop イベント

DragOver イベント

GotFocus イベント

KeyDown イベント

KeyPress イベント

KeyUp イベント

LostFocus イベント

MouseDown イベント

MouseMove イベント

MouseUp イベント

ObjectMove イベント

Resize イベント

Updated イベント


OLE の基礎

OLE (Object Linking and Embedding) を使用すると、動作している別のアプリケーションのデータを表示したり、データを作成元アプリケーションで編集できるアプリケーションを作成できます。また、Microsoft Visual Basic で作成したアプリケーションからデータを編集できる場合もあります。Visual Basic で OLE の使い方を理解するために必要な基本的な用語と概念は次のとおりです。

オブジェクト

アプリケーションが提供する個々のデータをオブジェクトと呼びます。OLE に対応しているアプリケーションはさまざまな種類のオブジェクトを公開できます。たとえば、表計算アプリケーションは、ワーク シートやマクロ シート、グラフ、セル、連続したセルを、すべて異なる型のオブジェクトとして公開できます。

Visual Basic で他のアプリケーションのオブジェクトを使うには、次の 3 種類の方法があります。

[ツール] - [カスタム コントロール] コマンドを使って、ツール ボックスにオブジェクトを追加します。次に、フォームに直接オブジェクトを作成します。この方法を使うと、アプリケーションのフォーム上に、オブジェクトが埋め込まれます。

CreateObject 関数または GetObject 関数を使って、コードでオブジェクトを作成します。この方法を使うと、オブジェクトを提供するアプリケーションの実行中のインスタンスがオブジェクトを作成します。

OLE コンテナ (OLE) コントロールにオブジェクトを埋め込むかリンクします。この方法を使うと、実行時にフォーム上のオブジェクトを変更したり、リンク オブジェクトを作成したり、データ (Data) コントロールに OLE コンテナ コントロールを結合したりすることができます。

OLE オートメーション

アプリケーションによっては、OLE オートメーションをサポートするオブジェクトを提供します。Visual Basic を使うと、OLE オートメーションをサポートするオブジェクトのデータをプログラム コードで操作できます。また、OLE オートメーションをサポートするオブジェクトには、リンクと埋め込みをサポートしているオブジェクトもあります。

OLE コンテナ コントロールのオブジェクトが OLE オートメーションをサポートしているときは、Object プロパティを使ってそのプロパティとメソッドを操作することができます。フォームにオブジェクトを直接描画するか、またはオブジェクトをコードで作成するときは、オブジェクトのプロパティやメソッドを直接操作することができます。

クラス

オブジェクトのデータとそのオブジェクトに含まれているデータの型を提供するアプリケーションは、オブジェクトのクラスを決定します。アプリケーションで利用可能なクラス名のリストを取得するには、プロパティ ウィンドウで Class プロパティを選択して、プロパティ ボタンをクリックします。

コンテナ アプリケーション

コンテナ アプリケーションは、オブジェクトのデータを受け取って表示するアプリケーションです。たとえば、OLE コンテナ コントロールを使って、他のアプリケーションのデータを埋め込んだりリンクしたりする Visual Basic アプリケーションは、コンテナ アプリケーションです。

リンク オブジェクト

リンク オブジェクトのデータは、そのオブジェクトを提供したアプリケーションが保存します。オブジェクトをリンクされたアプリケーションには、リンクの参照情報だけが保存されています。

オブジェクトがリンクされたときには、そのオブジェクトがリンクされているすべてのアプリケーションからそのデータにアクセスしたり、オブジェクトを変更することができます。たとえば、Visual Basic アプリケーションにテキスト ファイルをリンクすると、そのテキスト ファイルはリンクしているどのアプリケーションからでも変更できます。変更された結果は、テキスト ファイルがリンクされているすべてのアプリケーション ドキュメントに反映されます。OLE コンテナ コントロールは、Visual Basic アプリケーションにリンクするオブジェクトを作成するために使います。

埋め込みオブジェクト

埋め込みオブジェクトを作成すると、そのオブジェクトに関連するすべてのデータがそのオブジェクト自体に保存されます。たとえば、埋め込みオブジェクトがスプレッド シートである場合、そのスプレッド シートのセルに関連するデータ (必要な数式も) は、すべて OLE コンテナ コントロールか挿入可能なオブジェクトに保存されます。オブジェクトを作成したアプリケーションの名前も、データと共に保存されます。

Visual Basic アプリケーションの操作中にユーザーが埋め込みオブジェクトを選択すると、表計算アプリケーションが自動的に起動して、セルを編集できるようになります。他のアプリケーションは、埋め込みオブジェクトのデータを参照できません。埋め込みオブジェクトは、他のアプリケーションで作成されたデータを、Visual Basic アプリケーションだけで管理したいときに使います。


Class プロパティ

関連項目	対象

埋め込みオブジェクトのクラス名を設定します。値の取得も可能です。

構文

object.Class [ = string]

Class プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	クラス名を指定する文字列式を指定します。

解説

クラス名はオブジェクトの種類を定義します。OLE または OLE オートメーションを完全にサポートしているアプリケーションでは、オブジェクトのクラス名は次の構文のいずれかを使います。

application.objecttype.version

objecttype.version

OLE クラス名の構文の指定項目は次のとおりです。

指定項目	内容

application	オブジェクトを提供するアプリケーションの名前を指定します。

objecttype	オブジェクト ライブラリで定義されたオブジェクトの名前を指定します。

version	オブジェクトまたはオブジェクトを提供するアプリケーションのバージョン番号を指定します。

Microsoft Excel Version 5.0 は、ワークシートやグラフを含めて、多くのオブジェクトをサポートしています。たとえば、ワークシート、グラフのクラス名はそれぞれ Excel.Sheet.5、Excel.Chart.5 です。また Microsoft WordArt Version 2.0 は 1 種類のオブジェクトだけをサポートし、そのクラス名は MSWordArt.2 です。

注   OLE のプログラミング関連のドキュメントによっては、クラス名をプログラム ID と呼んでいる場合があります。

デザイン時に [オブジェクトの挿入] ダイアログ ボックスや [形式を選択して貼り付け] ダイアログ ボックスを使ってオブジェクトを作成すると、OLE コンテナ (OLE) コントロールのプロパティ ウィンドウの Class プロパティに、作成したオブジェクトのクラス名が自動的に設定されます。

システムで利用可能なクラス名のリストを表示するには、プロパティ ウィンドウで Class プロパティを選択してからプロパティ ボタンをクリックします。クリップボードからオブジェクトをコピーすると、Class プロパティが更新されます。たとえば、以前に Excel のワークシートが入っていた OLE コンテナ コントロールに、クリップボードから Excel のグラフを貼り付けると、Class プロパティの設定値は Excel.Sheet.5 から Excel.Chart.5 に変わります。

実行時には、Paste メソッドか PasteSpecialDlg メソッドで、クリップボードからオブジェクトを貼り付けることができます。


Class プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

OLE の基礎

Paste メソッド

PasteOK プロパティ

PasteSpecialDlg メソッド


ObjectVerbFlags プロパティ

関連項目	対象

ObjectVerbs プロパティの配列の各 OLE 動詞に対応するメニューの状態を返します。

構文

object.ObjectVerbFlags(number)

ObjectVerbFlags プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	配列の要素を示す数式を指定します。

戻り値

ObjectVerbFlags プロパティが返す値は次のとおりです。

定数	値	内容

vbOLEFlagChecked	&H0008	メニュー項目が選択されています。

vbOLEFlagDisabled	&H0002	メニュー項目は無効です。ただし淡色表示ではありません。

vbOLEFlagEnabled	&H0000	メニュー項目は有効です。

vbOLEFlagGrayed	&H0001	メニュー項目は淡色表示です。

vbOLEFlagSeparator	&H0800	メニュー項目は区分線です。

注   これらの定数のリストは、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリに表示されます。

解説

ObjectVerbs プロパティの返す配列の最初の OLE 動詞が既定値です。このリストの他の OLE 動詞は、メニューに表示するのにふさわしい OLE 動詞です。ObjectVerbFlags プロパティの返す配列には、ObjectVerbs プロパティの配列の各 OLE 動詞のメニューの状態 (淡色表示や選択など) の情報が含まれています。

オブジェクトの OLE 動詞が入っているメニューを表示するときは、このプロパティの値を調べて、項目がどのように表示されるかを調べてください。


ObjectVerbFlags プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

AutoVerbMenu プロパティ

ObjectVerbs プロパティ

ObjectVerbsCount プロパティ

Verb プロパティ


SizeMode プロパティ

関連項目	対象

オブジェクトが入っているときの OLE コンテナ (OLE) コントロールのサイズやイメージの表示方法を示す値を設定します。値の取得も可能です。

構文

object.SizeMode [ = value]

SizeMode プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	コントロールのサイズやイメージの表示方法を示す整数または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbOLESizeClip	0	(既定値)クリップ。オブジェクトは実際のサイズで表示されます。オブジェクトが OLE コンテナ コントロールより大きい場合、そのオブジェクトのイメージはコントロールの境界線でクリップされ (切られ) ます。

vbOLESizeStretch	1	ストレッチ。オブジェクトのサイズが OLE コンテナ コントロールのサイズに合わせて変更されます。オブジェクトの縦横比が、元の縦横比と変わってしまうこともあります。

vbOLESizeAutoSize	2	オートサイズ。オブジェクト全体を表示するように、OLE コンテナ コントロールのサイズが変更されます。

vbOLESizeZoom	3	ズーム。元の縦横比を保ったまま OLE コンテナ コントロールのサイズに合わせてオブジェクトのサイズが変更されます。

解説

SizeMode プロパティが 2 (オートサイズ) に設定されるていると、オブジェクトの表示サイズに合わせて OLE コンテナ コントロールのサイズが自動的に変わります。そのとき、OLE コンテナ コントロールのサイズが変更される前に、Resize イベントが発生します。Resize イベント プロシージャの引数 heightnew と widthnew は、オブジェクトを表示するための最適なサイズを示します。このサイズはオブジェクトを作成したアプリケーションによって決定されます。また、Resize イベント プロシージャの引数 heightnew と widthnew の値を変更することによって、コントロールのサイズを変えることもできます。


SizeMode プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

Resize イベント

Updated イベント


Data プロパティ

関連項目	対象

指定された形式のデータが入っているメモリ オブジェクトまたはグラフィカル デバイス インターフェイス (GDI) オブジェクトのハンドルを設定します。値の取得も可能です。デザイン時には使えません。

構文

object.Data [ = number]

Data プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	ハンドルを指定する数式を指定します。

解説

このプロパティは、オブジェクトを作成したアプリケーションにデータを送信するために設定します。Data プロパティを使う前に、メモリ オブジェクトか GDI オブジェクトに入っているデータの形式を決定するために Format プロパティを設定してください。

ObjectAcceptFormats プロパティと ObjectGetFormats プロパティを使って、オブジェクトの適切な形式の一覧を取得することができます。

このプロパティの設定値を 0 にすると、そのハンドルに割り当てられたメモリを解放できます。

ヒント   OLE オートメーションは、オブジェクトを操作するための、より簡単で信頼性の高い方法です。オブジェクトが OLE オートメーションをサポートしているときは、Object プロパティを介して、または CreateObject 関数か GetObject 関数を使って、オブジェクトを参照して操作することができます。


Data プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

CreateObject 関数

DataText プロパティ

Format プロパティ

GetObject 関数

Object プロパティ

ObjectAcceptFormats プロパティ

ObjectAcceptFormatsCount プロパティ

ObjectGetFormats プロパティ

ObjectGetFormatsCount プロパティ

OLE オートメーション


DataText プロパティ

関連項目	例 	対象

指定されたオブジェクトの文字列を設定します。文字列の取得も可能です。

構文

object.DataText [ = string]

DataText プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	文字列を指定する文字列式を指定します。

解説

オブジェクトに文字列を送るためには、最初にオブジェクトがサポートしている形式を Format プロパティに設定します。オブジェクトがサポートしている形式の一覧を取得するには、ObjectGetFormatsプロパティ と ObjectAcceptFormats プロパティを使います。

オブジェクトからデータを取得するときに、DataText プロパティは、オブジェクトから送られた文字列の中の最初の Null 文字までの文字列を返します。

16 ビット版の Microsoft Visual Basic を使っている場合、DataText プロパティが扱う文字列は 64KB 以下に制限されています。32 ビット版の Visual Basic を使っている場合、DataText プロパティが扱う文字列はメモリの許す範囲内であれば特に制限はありません。

ヒント   OLE オートメーションは、オブジェクトを操作するための、より簡単で信頼性の高い方法です。オブジェクトが OLE オートメーションをサポートしているときは、Object プロパティを介して、または CreateObject 関数か GetObject 関数を使って、オブジェクトを参照し操作することができます。


DataText プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

CreateObject 関数

Data プロパティ

Format プロパティ

GetObject 関数

Object プロパティ

ObjectAcceptFormats プロパティ

ObjectAcceptFormatsCount プロパティ

ObjectGetFormats プロパティ

ObjectGetFormatsCount プロパティ

OLE オートメーション


FileNumber プロパティ

関連項目	対象

保存またはロードに使うファイル番号を設定します。ファイル番号の取得も可能です。また、最後に使ったファイル番号を取得することもできます。デザイン時には使えません。

注   FileNumber プロパティは、以前のバージョンの Action プロパティとの互換性を維持するためのプロパティです。現在のバージョンでは、SaveToFile メソッドと ReadFromFile メソッドを使ってください。

構文

object.FileNumber [ = number]

FileNumber プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	ファイル番号を指定する数式を指定します。

解説

ファイル番号は、開かれているバイナリ ファイルに対応していなければなりません。

ReadFromFile メソッドで、ファイルを開いたり、SaveToFile メソッドや SaveToOle1File メソッドで保存するときに、このプロパティを使ってファイルの番号を指定することができます。


関連項目

ReadFromFile メソッド

SaveToFile メソッド

SaveToOle1File メソッド


FileNumber プロパティの対象

OLE コンテナ (OLE) コントロール


HostName プロパティ

関連項目 	対象

Microsoft Visual Basic アプリケーションのホスト アプリケーションの名前を設定します。値の取得も可能です。

構文

object.HostName [ = name]

HostName プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

name	ホスト アプリケーション名を指定する文字列式を指定します。

解説

オブジェクトを編集するときには、HostName プロパティの設定値がオブジェクトのウィンドウ のタイトルに表示されます。しかし、オブジェクトを提供するアプリケーションの中には、HostName プロパティの設定値を表示しないものもあります。


HostName プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

OLE の基礎


lpOleObject プロパティ

対象

オブジェクトのアドレスを返します。

構文

object.lpOleObject

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

OLE の ダイナミック リンク ライブラリ (DLL) の多くの関数の場合、呼び出すときに、引数にオブジェクトのアドレスを指定する必要があります。OLE の DLL の API 関数を呼び出すときに、lpOleObject プロパティが示す値を関数に渡します。オブジェクトが表示されていないときには、この値は 0 です。OLE コンテナ (OLE) コントロールをコールバックする API の呼び出しを行った場合、その結果は予測できません。

このプロパティで返されるアドレスは、アクティブなオブジェクトへのインターフェイスを指す far ポインタです。


lpOleObject プロパティの対象

OLE コンテナ (OLE) コントロール


ObjectAcceptFormats プロパティ

関連項目	例	対象

オブジェクトに受け入れることができるデータ形式の一覧を返します。

構文

object.ObjectAcceptFormats(number)

ObjectAcceptFormats プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	配列の要素を示す数式を指定します。

解説

ObjectAcceptFormats プロパティは、インデックス番号 0 から始まる文字列の配列を格納します。この配列は、Data プロパティおよび DataText プロパティを使ってオブジェクトのデータを交換する場合に Format プロパティで使って、有効なデータ形式の一覧を示します。ObjectAcceptFormatsCount プロパティは ObjectAcceptFormats プロパティの配列内の要素の数を示します。1 つのオブジェクトから受け入れることのできるデータを取得することができます。OLE コンテナ (OLE) コントロールにオブジェクトがないときは、このプロパティを参照するとエラーが発生します。


ObjectAcceptFormats プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

Data プロパティ

DataText プロパティ

Format プロパティ

ObjectAcceptFormatsCount プロパティ

ObjectGetFormats プロパティ

ObjectGetFormatsCount プロパティ


ObjectAcceptFormatsCount プロパティ

関連項目	例 	対象

オブジェクトが受け入れることのできるデータ形式の数を取得します。

構文

object.ObjectAcceptFormatsCount

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

このプロパティは、ObjectAcceptFormats プロパティの配列の要素の数を取得するために使います。


ObjectAcceptFormatsCount プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

Data プロパティ

DataText プロパティ

Format プロパティ

ObjectAcceptFormats プロパティ

ObjectGetFormats プロパティ

ObjectGetFormatsCount プロパティ


DisplayType プロパティ

関連項目	対象

オブジェクトが、データの内容を表示するか、またはアイコンを表示するかを示す値を設定します。値の取得も可能です。

構文

object.DisplayType [ = value]

DisplayType プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	オブジェクトが、データの内容を表示するか、またはアイコンを表示するかを示す整数または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbOLEDisplayContent	0	(既定値) データ。OLE コンテナ (OLE) コントロールにオブジェクトがあるときに、オブジェクトのデータがコントロールに表示されます。

vbOLEDisplayIcon	1	アイコン。OLE コンテナ コントロールにオブジェクトがあるときに、オブジェクトのアイコンがコントロールに表示されます。

解説

このプロパティは、[オブジェクトの挿入] ダイアログ ボックスと [形式を選択して貼り付け] ダイアログ ボックスの [アイコンで表示] チェック ボックスの既定値を決定します。実行時に InsertObjDlg メソッドか PasteSpecialDlg メソッドを使ってこれらのダイアログ ボックスを表示するか、またはデザイン時に表示すると、このプロパティが 1 (アイコン) に設定されているときには、[アイコンで表示] チェック ボックスが自動的にオンになります。

CreateEmbed メソッド、または CreateLink メソッドで実行時にオブジェクトを作成するときは、オブジェクトをアイコン表示 (DisplayType プロパティを 1 に設定) するか、オブジェクトのデータをコントロールに表示 (DisplayType プロパティを 0 に設定) するかを決定するために、DisplayType プロパティを使います。

一度オブジェクトを作成すると、その表示形式は変更できません。


関連項目

CreateEmbed メソッド

CreateLink メソッド

InsertObjDlg メソッド

PasteSpecialDlg メソッド


DisplayType プロパティの対象

OLE コンテナ (OLE) コントロール


ObjectGetFormats プロパティ

関連項目	例 	対象

オブジェクトが提供できるデータ形式の一覧を返します。

構文

object.ObjectGetFormats(number)

ObjectGetFormats プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	配列の要素を示す数式を指定します。

解説

リストはインデックス番号 0 から始まる文字列の配列です。Data プロパティと DataText プロパティを使ってオブジェクトからデータを取得するときに、Format プロパティを設定するために、この配列の要素を使うことができます。


ObjectGetFormats プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

Data プロパティ

DataText プロパティ

Format プロパティ

ObjectAcceptFormats プロパティ

ObjectGetFormatsCount プロパティ


ObjectGetFormatsCount プロパティ

関連項目	例 	対象

オブジェクトが提供できるデータ形式の数を取得します。

構文

object.ObjectGetFormatsCount

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

このプロパティは、ObjectGetFormats プロパティの配列で要素の数を取得するために使います。


ObjectGetFormatsCount プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

Data プロパティ

DataText プロパティ

Format プロパティ

ObjectAcceptFormats プロパティ

ObjectAcceptFormatsCount プロパティ


OLEType プロパティ

関連項目	対象

OLE コンテナ (OLE) コントロールの中のオブジェクトの状態を返します。

構文

object.OLEType

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

OLEType プロパティは次の値を返します。

定数	値	内容

vbOLELinked	0	リンク。OLE コンテナ コントロールには、リンク オブジェクトがあります。オブジェクトのデータはすべてデータを作成したアプリケーションが管理します。SaveToFile メソッドを使ってオブジェクトを保存すると、単に SourceDoc プロパティや SourceItem プロパティなどのリンク情報が、Microsoft Visual Basicアプリケーションで指定したファイルに保存されます。

vbOLEEmbedded	1	埋め込み。OLE コンテナ コントロールには埋め込みオブジェクトがあります。オブジェクトのデータはすべて Visual Basic アプリケーションが管理します。SaveToFile メソッドを使ってオブジェクトを保存すると、オブジェクトに関連するデータはすべて指定したファイルに保存されます。

vbOLENone	3	なし。OLE コンテナ コントロールにはオブジェクトがありません。

解説

このプロパティは、OLE コンテナ コントロールにオブジェクトがあるかどうかを調べたり、コントロールにあるオブジェクトの状態を調べるために使います。

オブジェクトを作成したアプリケーションが実行中かどうか調べるためには AppIsRunning プロパティを使います。

オブジェクトを作成するときは、OLETypeAllowed プロパティを使って、作成可能なオブジェクトの形式を指定します。


OLEType プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

AppIsRunning プロパティ

FileNumber プロパティ

OLETypeAllowed プロパティ

SaveToFile メソッド


ObjectVerbs プロパティ

関連項目	例 	対象

オブジェクトがサポートする OLE 動詞のリストを返します。

構文

object.ObjectVerbs(number)

ObjectVerbs プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	配列で要素を示す数式を指定します。

解説

ObjectVerbs プロパティはインデックス番号 0 から始まる文字列の配列です。あるオブジェクトがサポートする OLE 動詞を調べるには、ObjectVerbsCount プロパティと共にこのプロパティを使います。OLE 動詞は、DoVerb メソッドでオブジェクトがアクティブにされるときに、実行する動作を決定するために使います。OLE 動詞の配列のリストは、オブジェクトによって違い、その状態によっても違います。

オブジェクトは、それぞれオブジェクト内に持つ一連の OLE 動詞をサポートします。すべてのオブジェクトがサポートする標準的な OLE 動詞の値は、次のとおりです。

値	アクション

0	既定値のオブジェクトの動作です。

-1	編集のためにオブジェクトをアクティブにします。オブジェクトを作成したアプリケーションが埋め込み先編集をサポートしているときは、オブジェクトは OLE コンテナ (OLE) コントロールの中でアクティブになります。

-2	別のアプリケーション ウィンドウでオブジェクトを開きます。オブジェクトを作成したアプリケーションが埋め込み先編集をサポートしているときは、オブジェクトはそのアプリケーションのウィンドウでアクティブになります。

-3	埋め込みオブジェクトとして表示し、オブジェクトを作成したアプリケーションは表示しません。

-4	オブジェクトが埋め込み先編集をサポートしているときは、埋め込み先編集のためにオブジェクトをアクティブにして、ユーザー インターフェイス ツールを表示します。オブジェクトが埋め込み先編集をサポートしていないときは、オブジェクトはアクティブにならず、エラーが発生します。

-5	ユーザーが OLE コンテナ コントロールにフォーカスを移動すると、オブジェクトのウィンドウが作成され、オブジェクトを編集できるように準備します。マウスのクリックでオブジェクトをアクティブにする機能をオブジェクトがサポートしていないときは、エラーが発生します。

-6	オブジェクトをアクティブにしたまま、オブジェクトのアプリケーションが操作を取り消すことができる変更のすべてを破棄するときに使用します。

注   これらの OLE 動詞は、ObjectVerbs プロパティの配列のリストにない場合もあります。

ObjectVerbs プロパティの配列の最初の OLE 動詞、つまり ObjectVerbs (0) は、既定値の OLE 動詞です。他のアクションを指定していないときは、この OLE 動詞はオブジェクトをアクティブにします。

配列の中の OLE 動詞をメニューに表示することができます。メニューに既定値の OLE 動詞を表示するのが適切なときは、ObjectVerbs プロパティの配列には既定値の OLE 動詞が 2 つ入ります。

一般的なオブジェクトを表示するアプリケーションには [編集] - [オブジェクト] コマンドがあります。ユーザーが [編集] - [オブジェクト] コマンドを選択すると、メニューにオブジェクトの OLE 動詞が表示されます。実行時にこのような OLE 動詞を表示するメニューを作成するには、ObjectVerbs、ObjectVerbsCount、ObjectVerbFlags の各プロパティを使います。

オブジェクトがサポートする OLE 動詞の一覧は、オブジェクトの状態によって変わることがあります。オブジェクトがサポートする OLE 動詞の一覧を更新するには、FetchVerbs メソッドを使います。オブジェクトの一覧を表示する前に、OLE 動詞の一覧を確実に更新してください。

オブジェクトを右のマウス ボタンでクリックしたときに、ポップアップ メニューに ObjectVerbs プロパティの配列の OLE 動詞を自動的に表示するには、AutoVerbMenu プロパティを真 (True) に設定します。


ObjectVerbs プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

AutoVerbMenu プロパティ

DoVerb メソッド

FetchVerbs メソッド

ObjectVerbFlags プロパティ

ObjectVerbsCount プロパティ

Verb プロパティ


ObjectVerbsCount プロパティ

関連項目	例 	対象

オブジェクトがサポートする OLE 動詞の数を返します。

構文

object.ObjectVerbsCount

引数 object には、OLE コンテナ (OLE) コントロールを表すオブジェクト式を指定します。

解説

このプロパティは、ObjectVerbs プロパティの配列の要素の数を調べるために使います。

オブジェクトがサポートする OLE 動詞の一覧は、オブジェクトの状態によって変わることがあります。オブジェクトがサポートする OLE 動詞の一覧を更新するには、FetchVerbs メソッドを使います。


ObjectVerbsCount プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

FetchVerbs メソッド

ObjectVerbFlags プロパティ

ObjectVerbs プロパティ

Verb プロパティ


SourceDoc プロパティ

関連項目	対象

オブジェクトを作成するときに使うファイル名を設定します。値の取得も可能です。

注   SourceDoc プロパティは、以前のバージョンの Action プロパティとの互換性を維持するためのプロパティです。現在のバージョンでは、CreateEmbed メソッドと CreateLink メソッドを使ってください。

構文

object.SourceDoc [ = name]

SourceDoc プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

name	ファイル名を指定する文字列式を指定します。

解説

SourceDoc プロパティは、Action プロパティを使ってリンク オブジェクトを作成するときに、リンクするファイルを指定するために使います。

リンクするファイルの中のデータを指定するには、SourceItem プロパティを使います。

Action プロパティで埋め込みオブジェクトを作成するときに、SourceDoc プロパティに有効なファイル名を設定した場合、指定されたファイルをテンプレートとして埋め込みオブジェクトが作成されます。

リンク オブジェクトが作成されると、SourceItem プロパティは SourceDoc プロパティと連携します。実行時に SourceItem プロパティは長さ 0 の文字列 ("") を返し、SourceDoc プロパティはリンクされたファイルの絶対パス名を返します。このパスには、感嘆符 (!) か円記号 (\) の後ろに SourceItem プロパティが続きます。たとえば、次のようになります。

"C:\WORK\QTR1\REVENUE.XLS!R1C1:R30C15"


SourceDoc プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

Action プロパティ (OLE コンテナ)

Class プロパティ

CreateEmbed メソッド

CreateLink メソッド

OLEType プロパティ

OLETypeAllowed プロパティ

SourceItem プロパティ


SourceItem プロパティ

関連項目	対象

リンク オブジェクトを作成するときに、ファイルにあるリンクされるデータを設定します。値の取得も可能です。

構文

object.SourceItem [ = string]

SourceItem プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	リンクされるデータを指定する文字列式を指定します。

解説

このプロパティを使うときには、OLETypeAllowed プロパティは 0 (リンク) または 2 (両方) に設定しなければなりません。リンクするファイルを指定するには、SourceDoc プロパティを使ってください。

データの指定には、各オブジェクト固有の構文を使います。このプロパティを設定するには、オブジェクトが認識するデータの単位を指定してください。たとえば、Microsoft Excel をリンクするときは、SourceItem プロパティには“R1C1”や“R3C4:R9C22”などのセルやセルの範囲か、“売上”などの範囲名で指定します。

オブジェクトのデータ指定の構文については、オブジェクトを作成したアプリケーションのマニュアルを参照してください。

ヒント   デザイン時に、[形式を選択して貼り付け] コマンドを使ってリンク オブジェクトを作成 (右のマウス ボタンで OLE コンテナ (OLE) コントロールをクリック) することにより、この構文を調べられる場合があります。オブジェクトが作成されたら、プロパティ ウィンドウで SourceDoc プロパティを選択し、設定ボックスで文字列を確認してください。ほとんどのオブジェクトで、リンクしたファイルの絶対パス名に感嘆符 (!) か円記号 (\) が続き、その後ろにリンクしたデータの構文が続きます。

リンク オブジェクトが作成されると、SourceItem プロパティは SourceDoc プロパティと連携します。実行時に SourceItem プロパティは長さ 0 の文字列 ("") を返し、SourceDoc プロパティはリンクされたファイルの絶対パス名を返します。このパスには、感嘆符 (!) か円記号 (\) の後ろに SourceItem プロパティが続きます。たとえば、次のようになります。

"C:\WORK\QTR1\REVENUE.XLS!R1C1:R30C15"


SourceItem プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

Class プロパティ

OLEType プロパティ

OLETypeAllowed プロパティ

SourceDoc プロパティ


AppIsRunning プロパティ

関連項目	対象

OLE コンテナ (OLE) コントロール内のオブジェクトの作成元アプリケーションが、実行中であるかどうか示す値を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.AppIsRunning [= boolean]

AppIsRunning プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	OLE コンテナ コントロールの中のオブジェクトの作成元アプリケーションが実行中であるかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	OLE コンテナ コントロールの中のオブジェクトの作成元アプリケーションは実行中です。

False	OLE コンテナ コントロールの中のオブジェクトの作成元アプリケーションは実行されていません。

解説

AppIsRunning プロパティの値を設定して、OLE コンテナ コントロールの中のオブジェクトの作成元アプリケーションを起動することができます。こうすると、オブジェクトをより早くアクティブにできます。このプロパティを偽 (False) に設定すると、オブジェクトからフォーカスを他のコントロールに移動することでアプリケーションを閉じることができます。


関連項目

OLEType プロパティ


AppIsRunning プロパティの対象

OLE コンテナ (OLE) コントロール


UpdateOptions プロパティ

関連項目	対象

リンクされているデータが変更されたときに、オブジェクトを更新する方法を示す値を設定します。値の取得も可能です。

構文

object.UpdateOptions [ = number]

UpdateOptions プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	オブジェクトの更新の方法を示す整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 number の設定値は次のとおりです。

定数	値	内容

vbOLEAutomatic	0	(既定値) 自動。リンクされているデータが変更されるたびにオブジェクトを更新します。

vbOLEFrozen	1	固定。データの作成元アプリケーションがリンクされているデータを保存するたびにオブジェクトを更新します。

vbOLEManual	2	手動。Update メソッドを実行したときに限りオブジェクトを更新します。

解説

リンクされたデータに対して、他のユーザーや他のアプリケーションが、参照したり変更できるようなオブジェクトの場合に、このプロパティは便利です。

オブジェクトのデータが変更されると、Updated イベントが発生します。


UpdateOptions プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

Class プロパティ

OLEType プロパティ

OLETypeAllowed プロパティ

Update メソッド (OLE コンテナ)

Updated イベント


Verb プロパティ

関連項目	対象

Action プロパティを使ってオブジェクトをアクティブにしたときに、実行する操作を示す値を設定します。値の取得も可能です。

注   Verb プロパティは、以前のバージョンの Action プロパティとの互換性を維持するためのプロパティです。現在のバージョンでは、DoVerb メソッドを使ってください。

構文

object.Verb [= number]

Verb プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	実行する操作を示す値を指定します。

解説

オブジェクトは、それぞれオブジェクト内に持つ OLE 動詞をサポートしています。オブジェクトがサポートしている OLE 動詞の一覧を調べるには、ObjectVerbs プロパティと ObjectVerbsCount プロパティを使います。

リスト内の最初の OLE 動詞を指定するには Verb プロパティを 1 に設定し、2 番めの OLE 動詞を指定するには Verb プロパティを 2 に設定します。

AutoActivate プロパティを 2 (ダブルクリック) に設定すると、ユーザーがオブジェクトをダブルクリックしたときにオブジェクトが自動的にアクティブになります。

AutoVerbMenu プロパティを真 (True) にすると、右のマウス ボタンでオブジェクトをクリックしたときに、そのオブジェクトの OLE 動詞を示すポップアップ メニューが表示されます。


Verb プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

Action プロパティ (OLE コンテナ)

AutoActivate プロパティ

AutoVerbMenu プロパティ

DoVerb メソッド

ObjectVerbs プロパティ

ObjectVerbsCount プロパティ

OLEType プロパティ

OLETypeAllowed プロパティ


Updated イベント

関連項目	対象

オブジェクトのデータが変更されたときに発生します。

構文

Private Sub object_Updated (code As Integer)

Updated イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

code	オブジェクトの更新の方法を示す整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 code の設定値は次のとおりです。

定数	値	内容

vbOLEChanged	0	オブジェクトのデータが変更されたことを示します。

vbOLESaved	1	オブジェクトの作成元アプリケーションで、オブジェクトのデータが保存されたことを示します。

vbOLEClosed	2	オブジェクトの作成元アプリケーションで、リンク オブジェクトのデータが、クローズされたことを示します。

vbOLERenamed	3	オブジェクトの作成元アプリケーションで、リンク オブジェクトのデータの、名前が変えられたことを示します。

解説

これらの定数は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリに表示されます。このイベントは、オブジェクトのデータが最後に保存された後で変更されたかどうかを調べるために使うことができます。これを調べるには、オブジェクトを保存する必要があることを表すパブリック変数を、Updated イベント プロシージャに設定し、オブジェクトを保存したら、その変数をリセットします。


Updated イベントの対象

OLE コンテナ (OLE) コントロール


関連項目

Class プロパティ

OLEType プロパティ

OLETypeAllowed プロパティ

UpdateOptions プロパティ


AutoActivate プロパティ

関連項目	対象

ユーザーが OLE コンテナ (OLE) コントロールをダブルクリックするか、OLE コンテナ コントロールにフォーカスを移動したときに、オブジェクトをアクティブにするための方法を示す値を設定します。値の取得も可能です。

構文

object.AutoActivate [= value]

AutoActivate プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	OLE コンテナ コントロールでオブジェクトをアクティブにするための方法を示す整数または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbOLEActivateManual	0	手動。オブジェクトは自動的にはアクティブになりません。DoVerb メソッドを使って、オブジェクトをコードでアクティブにします。

vbOLEActivateGetFocus	1	フォーカス。OLE コンテナ コントロールにオブジェクトがある場合、OLE コンテナ コントロールがフォーカスを受け取ると、オブジェクトを提供するアプリケーションがアクティブになります。

vbOLEActivateDoubleclick	2	(既定値) ダブルクリック。OLE コンテナ コントロールにオブジェクトがある場合、そのコントロールにフォーカスがある状態で Enter キーを押すか OLE コンテナ コントロールをダブルクリックすると、そのオブジェクトを提供するアプリケーションがアクティブになります。

vbOLEActivateAuto	3	自動。OLE コンテナ コントロールにオブジェクトがある場合、コントロールがフォーカスを受け取っているか、またはユーザーがコントロールをダブルクリックしたときに、通常のアクティブ化の方法によって、オブジェクトを提供するアプリケーションがアクティブになります。

解説

OLEType プロパティを調べることで、OLE コンテナ コントロールにオブジェクトがあるかどうかを確認することができます。

注   AutoActivate プロパティを 2 (ダブルクリック) に設定すると、OLE コンテナ コントロールをダブルクリックしても、DblClick イベントは発生しません。


AutoActivate プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

DoVerb メソッド

OLEType プロパティ


AutoVerbMenu プロパティ

関連項目	対象

ユーザーが右のマウス ボタンで OLE コンテナ (OLE) コントロールをクリックしたときに、オブジェクトの OLE 動詞を示すポップアップ メニューを表示するかどうか決定する値を設定します。値の取得も可能です。

構文

object.AutoVerbMenu[ = boolean]

AutoVerbMenu プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	ポップアップ メニューの表示を指定するブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	(既定値) 右のマウス ボタンで OLE コンテナ コントロールをクリックすると、オブジェクトがサポートするコマンドを示すポップアップ メニューが表示されます。

False	ポップアップ メニューは表示されません。

解説

このプロパティを真 (True) に設定したときは、右のマウス ボタンで OLE コンテナ コントロールをクリックしても、Click イベントおよび MouseDown イベントは発生しません。


関連項目

ObjectVerbs プロパティ

ObjectVerbsCount プロパティ

Verb プロパティ


AutoVerbMenu プロパティの対象

OLE コンテナ (OLE) コントロール


Object プロパティ (OLE コンテナ)

関連項目	対象

OLE コンテナ (OLE) コントロールにあるオブジェクト、あるいはオブジェクトのプロパティまたはメソッドを取得します。

構文

object.Object[.property | .method]

Object プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

property	オブジェクトがサポートするプロパティを指定します。

method	オブジェクトがサポートするメソッドを指定します。

解説

このプロパティは、OLE オートメーションのタスクで使用するオブジェクトを指定するために使います。

OLE オートメーション オブジェクトのプロパティとメソッドを使う場合には、Object プロパティで返されたオブジェクトに対してプロパティやメソッドを指定します。オブジェクトがサポートしているプロパティやメソッドの詳細については、オブジェクトを作成したアプリケーションのマニュアルを参照してください。


Object プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

CreateObject 関数

GetObject 関数

OLE オートメーション


OLETypeAllowed プロパティ

関連項目	対象

OLE コンテナ (OLE) コントロールに入れることができるオブジェクトの形式を設定します。値の取得も可能です。

構文

object.OLETypeAllowed [ = value]

OLETypeAllowed プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	オブジェクトの形式を指定する整数または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbOLELinked	0	リンク。OLE コンテナ コントロールには、リンク オブジェクトだけを入れることができます。

vbOLEEmbedded	1	埋め込み。OLE コンテナ コントロールには、埋め込みオブジェクトだけを入れることができます。

vbOLEEither	2	(既定値) 両方。OLE コンテナ コントロールには、リンク オブジェクトと埋め込みオブジェクトのどちらのオブジェクトでも入れることができます。

解説

このプロパティは、ユーザーが作成できるオブジェクトの形式を決定します。

[オブジェクトの挿入] ダイアログ ボックスを使うときは、ダイアログ ボックスは InsertObjDlg メソッドを使って表示します。

[形式を選択して貼り付け] ダイアログ ボックスを使うときは、ダイアログ ボックスは PasteSpecialDlg メソッドを使って表示します。

クリップボードからオブジェクトを貼り付けるときは、Paste メソッドを使います。

オブジェクトがリンク オブジェクトであるか埋め込みオブジェクトであるかを調べるには、OLEType プロパティを使います。


OLETypeAllowed プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

AppIsRunning プロパティ

InsertObjDlg メソッド

OLEType プロパティ

Paste メソッド

PasteSpecialDlg メソッド


PasteSpecialDlg メソッド

関連項目	対象

[形式を選択して貼り付け] ダイアログ ボックスを表示します。

構文

object.PasteSpecialDlg

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

実行時には、クリップボードからオブジェクトを貼り付けできるようにするために、[形式を選択して貼り付け] ダイアログ ボックスを表示します。このダイアログ ボックスには、オブジェクトのリンク オブジェクトや埋め込みオブジェクトなどの、いくつかのオプションが表示されます。作成できるオブジェクトの形式 (リンク オブジェクト、埋め込みオブジェクト、またはその両方) を調べるには OLETypeAllowed プロパティを使います。

PasteOK プロパティの値が真 (True) で、Microsoft Visual Basic がオブジェクトを貼り付けできないときは、OLE コンテナ (OLE) コントロールの中のすべてのオブジェクトが削除されます。


関連項目

OLETypeAllowed プロパティ


PasteSpecialDlg メソッドの対象

OLE コンテナ (OLE) コントロール


Copy メソッド

関連項目	対象

OLE コンテナ (OLE) コントロールからクリップボードにオブジェクトをコピーします。

構文

object.Copy

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

オブジェクトをクリップボードにコピーすると、オブジェクトに含まれるすべてのデータとリンク情報が、クリップボードにコピーされます。クリップボードには、リンク オブジェクトも埋め込みオブジェクトもコピーできます。

アプリケーションで [編集] - [コピー] コマンドをサポートするときは、このメソッドを使うと便利です。


関連項目

Paste メソッド


Copy メソッドの対象

OLE コンテナ (OLE) コントロール


CreateEmbed メソッド

関連項目	対象

埋め込みオブジェクトを作成します。名前付き引数は指定できません。

構文

object.CreateEmbed sourcedoc, class

CreateEmbed メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

sourcedoc	必ず指定します。埋め込みオブジェクトのテンプレートとして使用されたドキュメントのファイル名を指定します。ソースドキュメントを指定しない場合は、長さ 0 の文字列 ("") でなければなりません。

class	省略可能です。埋め込みオブジェクトのクラス名を指定します。引数 sourcedoc にファイル名を指定すると、無効になります。

解説

システム上の有効なクラス名を表示するには、プロパティ ウィンドウで Class プロパティを選択して、プロパティ ボタンをクリックします。

注   CreateEmbed メソッドを使って埋め込みオブジェクトを作成する場合、Class プロパティと SourceDoc プロパティを設定する必要はありません。

新しいオブジェクトを作成するときに、クラス名に関連するアプリケーション (たとえば、EXCEL.EXE) が、オペレーティング システムに正しく登録されている必要があります。正しく登録されていないときはアプリケーションのセットアップ プログラムを使って、アプリケーションを正しく登録してください。


関連項目

Class プロパティ

OLETypeAllowed プロパティ


CreateEmbed メソッドの対象

OLE コンテナ (OLE) コントロール


CreateLink メソッド

関連項目	対象

ファイルの内容からリンク オブジェクトを作成します。名前付き引数は指定できません。

構文

object.CreateLink sourcedoc, sourceitem

CreateLink メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

sourcedoc	必ず指定します。オブジェクトが作成されたファイルを指定します。

sourceitem	省略可能です。リンク オブジェクトにリンクしているファイルのデータを指定します。

解説

このメソッドの引数の値を指定したときは、指定した値が SourceDoc プロパティと SourceItem プロパティの設定値よりも優先されます。このメソッドを呼び出すと、SourceDoc プロパティと SourceItem プロパティの値は引数の値にあわせて更新されます。

このメソッドを使ってオブジェクトを作成すると、OLE コンテナ (OLE) コントロールには SourceDoc プロパティで指定したファイルのイメージが表示されます。OLE コンテナ コントロールにはメタファイルのイメージだけが入り、実際のデータは入っていません。そのため、オブジェクトを保存しても、リンクの参照情報のみが保存されます。

新しいオブジェクトを作成するときに、クラス名に関連するアプリケーション (たとえば、EXCEL.EXE) が、オペレーティング システムに正しく登録されている必要があります。正しく登録されていないときは、アプリケーションのセットアップ プログラムを使って、アプリケーションを正しく登録してください。


関連項目

CreateEmbed メソッド

OLETypeAllowed プロパティ

SourceDoc プロパティ

SourceItem プロパティ


CreateLink メソッドの対象

OLE コンテナ (OLE) コントロール


Delete メソッド (OLE コンテナ)

対象

指定されたオブジェクトを削除して、割り当てられたメモリを解放します。

構文

object.Delete

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

このメソッドを使うと、指定したオブジェクトを削除できます。フォームが閉じられるかオブジェクトが新しいオブジェクトで置き換えられると、オブジェクトは自動的に削除されます。


Delete メソッドの対象

OLE コンテナ (OLE) コントロール


InsertObjDlg メソッド

関連項目	対象

[オブジェクトの挿入] ダイアログ ボックスを表示します。

構文

object.InsertObjDlg

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

実行時に、ユーザーがこのダイアログ ボックスでオブジェクトを提供するアプリケーションと形式 (リンクまたは埋め込み) を選択して、リンク オブジェクトまたは埋め込みオブジェクトを作成できるようになります。

このダイアログ ボックスを使うときには、OLETypeAllowed プロパティで作成できるオブジェクトの形式 (リンク、埋め込み、またはその両方) を指定します。

新しいオブジェクトを作成するときに、クラス名に関連するアプリケーション (たとえば、EXCEL.EXE) が、オペレーティング システムに正しく登録されている必要があります。正しく登録されていないときは、アプリケーションのセットアップ プログラムを使って、アプリケーションを正しく登録してください。


関連項目

OLETypeAllowed プロパティ


InsertObjDlg メソッドの対象

OLE コンテナ (OLE) コントロール


Paste メソッド

関連項目	対象

クリップボードから OLE コンテナ (OLE) コントロールにデータを貼り付けます。

構文

object.Paste

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

このメソッドを使うには、OLETypeAllowed プロパティを設定し、次に PasteOK プロパティの値を調べます。

PasteOK プロパティが真 (True) の値を返さないときは、貼り付けることはできません。

Paste メソッドが実行された場合、OLEType プロパティは 0 (vbOLELinked) または 1 (vbOLEEmbedded) に設定されます。Paste メソッドが実行されなかった場合、OLEType プロパティは 3 (vbOLENone) に設定されます。

アプリケーションで [編集] - [貼り付け] コマンドをサポートするときは、このメソッドを使うと便利です。PasteOK プロパティの設定値が真 (True) で、Microsoft Visual Basic がオブジェクトを貼り付けできないときは、OLE コンテナ コントロールのオブジェクトはすべて削除されます。


 関連項目

OLEType プロパティ

OLETypeAllowed プロパティ

PasteOK プロパティ


Paste メソッドの対象

OLE コンテナ (OLE) コントロール


ReadFromFile メソッド

関連項目	対象

SaveToFile メソッドを使って作成したデータ ファイルからオブジェクトを読み込みます。名前付き引数は指定できません。

構文

object.ReadFromFile filenumber

ReadFromFile メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

filenumber	必ず指定します。オブジェクトを読み込むときに使うファイル番号を指定する数式を指定します。ファイル番号は開いているバイナリ ファイルに対応していなければなりません。

解説

オブジェクトは、SaveToFile メソッドか SaveToOle1File メソッドを使ってデータ ファイルに保存できます。


関連項目

SaveToFile メソッド

SaveToOle1File メソッド


ReadFromFile メソッドの対象

OLE コンテナ (OLE) コントロール


SaveToFile メソッド

関連項目	対象

データ ファイルにオブジェクトを保存します。名前付き引数は指定できません。

構文

object.SaveToFile filenumber

SaveToFile メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

filenumber	必ず指定します。オブジェクトを保存するときに使うファイル番号を指定する数式を指定します。ファイル番号は開いているバイナリ ファイルに対応していなければなりません。

解説

このメソッドは、OLEのオブジェクトを保存するために使います。OLE 1.0 のオブジェクトを保存するには、SaveToOle1File メソッドを使ってください。

オブジェクトがリンク オブジェクト (OLEType プロパティを 0 (vbOLELinked) に設定) である場合は、リンク情報とデータのイメージが指定されたファイルに保存されます。オブジェクトのデータは、作成元のアプリケーションが管理します。オブジェクトが埋め込みオブジェクト (OLEType プロパティを 1 (vbOLEEmbedded) に設定) のときは、オブジェクトのデータは OLE コンテナ (OLE) コントロールが管理し、Microsoft Visual Basic アプリケーションが保存します。

ReadFromFile メソッドを使って、データ ファイルに保存されたオブジェクトを読み込むことができます。


関連項目

OLEType プロパティ

ReadFromFile メソッド

SaveToOle1File メソッド


SaveToFile メソッドの対象

OLE コンテナ (OLE) コントロール


DoVerb メソッド

関連項目	対象

編集などのオブジェクトの操作を行うために、オブジェクトを開きます。名前付き引数は指定できません。

構文

object.DoVerb (verb)

DoVerb メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

verb	省略可能です。OLE コンテナ (OLE) コントロールのオブジェクトが実行する OLE 動詞を指定します。OLE 動詞を指定しないとき、既定値の OLE 動詞が実行されます。この引数の値は、すべてのオブジェクトがサポートする標準の OLE 動詞のいずれか、または、ObjectVerbs プロパティ配列のインデックスです。

解説

AutoActivate プロパティに 2 (ダブルクリック) を設定すると、ユーザーがコントロールをダブルクリックしたときに、自動的に現在のオブジェクトがアクティブになります。

オブジェクトは、それぞれオブジェクト内に持つ OLE 動詞をサポートします。すべてのオブジェクトがサポートする標準的な OLE 動詞の値は、次のとおりです。

定数	値	内容

vbOLEPrimary	0	既定値のオブジェクトの動作です。

vbOLEShow	-1	編集のためにオブジェクトをアクティブにします。オブジェクトを作成したアプリケーションが埋め込み先編集をサポートしている場合、オブジェクトは OLE コンテナ コントロールの中でアクティブになります。

vbOLEOpen	-2	別のアプリケーション ウィンドウでオブジェクトを開きます。オブジェクトを作成したアプリケーションが埋め込み先編集をサポートしているときは、オブジェクトはそのアプリケーションのウィンドウでアクティブになります。

vbOLEHide	-3	埋め込みオブジェクトとして表示し、オブジェクトを作成したアプリケーションは表示しません。

vbOLEUIActivate	-4	オブジェクトが埋め込み先編集をサポートしている場合、埋め込み先編集のためにオブジェクトをアクティブにして、ユーザー インターフェイス ツールを表示します。オブジェクトが埋め込み先編集をサポートしていないときは、オブジェクトはアクティブにならず、エラーが発生します。

vbOLEInPlaceActivate	-5	ユーザーが OLE コンテナ コントロールにフォーカスを移動すると、オブジェクトのウィンドウが作成され、オブジェクトを編集できるように準備します。マウスのクリックでオブジェクトをアクティブにする機能をオブジェクトがサポートしていないときは、エラーが発生します。

vbOLEDiscardUndoState	-6	オブジェクトをアクティブにしたまま、オブジェクトのアプリケーションが操作を取り消すことができる変更のすべてを破棄するときに使用します。

注   これらの OLE 動詞は、ObjectVerbs プロパティ配列の一覧にない場合もあります。


関連項目

AutoActivate プロパティ

ObjectVerbs プロパティ

Verb プロパティ


DoVerb メソッドの対象

OLE コンテナ (OLE) コントロール


FetchVerbs メソッド

関連項目	対象

オブジェクトがサポートする OLE 動詞の一覧を更新します。

構文

object.FetchVerbs

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

ObjectVerbs プロパティを使って、更新された OLE 動詞の一覧を読み込むことができます。


関連項目

AutoVerbMenu プロパティ

DoVerb メソッド

ObjectVerbs プロパティ

ObjectVerbsCount プロパティ


FetchVerbs メソッドの対象

OLE コンテナ (OLE) コントロール


Close メソッド (OLE コンテナ)

対象

オブジェクトを閉じて、オブジェクトを提供しているアプリケーションとの接続を終了します。

構文

object.Close

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

このメソッドは埋め込みオブジェクトだけに有効で、オブジェクトを閉じることと同じ効果があります。リンク オブジェクトには影響を与えません。


Close メソッド (OLE コンテナ)の対象

OLE コンテナ (OLE) コントロール


Update メソッド (OLE コンテナ)

対象

オブジェクトを提供したアプリケーションから最新のデータを取り込み、OLE コンテナ (OLE) コントロールにそのデータをグラフィック データとして表示します。

構文

object.Update

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。


Update メソッド (OLE コンテナ)の対象

OLE コンテナ (OLE) コントロール


Action プロパティ (OLE コンテナ)

関連項目	対象

実行する操作を示す値を設定します。デザイン時には使えません。

注   Action プロパティは、以前のバージョンとの互換性を維持するためのプロパティです。現在のバージョンでは、後の「設定値」の表に示すメソッドを使ってください。

構文

object.Action = value

Action プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	操作を示す整数または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

値	内容	作業中のメソッド
0	埋め込みオブジェクトを作成します。	CreateEmbed
1	ファイルの内容からリンク オブジェクトを作成します。	CreateLink
4	クリップボードにオブジェクトをコピーします。	Copy
5	クリップボードから OLE コンテナ (OLE) コントロールへデータをコピーします。	Paste
6	オブジェクトの作成元アプリケーションから最新のデータを取り込み、OLE コンテナ コントロールにピクチャとして表示します。	Update
7	編集などの操作のためにオブジェクトを開きます。	DoVerb
9	オブジェクトを閉じて、オブジェクトを提供したアプリケーションとの接続を終了します。	Close
10	指定したオブジェクトを削除し、割り当てられていたメモリを解放します。	Delete
11	データ ファイルにオブジェクトを保存します。	SaveToFile
12	データ ファイルに保存されているオブジェクトを読み込みます。	ReadFromFile
14	[オブジェクトの挿入] ダイアログ ボックスを表示します。	InsertObjDlg
15	[形式を選択して貼り付け] ダイアログ ボックスを表示します。	PasteSpecialDlg
17	オブジェクトがサポートする OLE 動詞の一覧を更新します。	FetchVerbs
18	オブジェクトを OLE のファイル形式で保存します。	SaveToOle1File


アクション プロパティ (OLE コンテナ)の対象

OLE コンテナ (OLE) コントロール


関連項目

Close メソッド (OLE コンテナ)

Copy メソッド

CreateEmbed メソッド

CreateLink メソッド

Delete メソッド (OLE コンテナ)

DoVerb メソッド

FetchVerbs メソッド

InsertObjDlg メソッド

Paste メソッド

PasteSpecialDlg メソッド

ReadFromFile メソッド

SaveToFile メソッド

SaveToOle1File メソッド

Update メソッド (OLE コンテナ)


MiscFlags プロパティ

関連項目	対象

OLE コンテナ (OLE) コントロールの拡張機能を利用するための値を設定します。値の取得も可能です。

構文

object.MiscFlags [ = value]

MiscFlags プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	利用する拡張機能を示す定数または整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbOLEMiscFlagMemStorage	1	オブジェクトを読み込むときに、メモリにオブジェクトを保存するようにします。

vbOLEMiscFlagDisableInPlace	2	埋め込み先編集をサポートしている場合に、そのコントロールの既定値の動作を変更し、埋め込み先編集ができないようにします。

解説

既定値の動作では、オブジェクトをディスク上の一時的なファイルに保存するのに対して、vbOLEMiscFlagMemStorage フラグを設定すると、オブジェクトをメモリに保存するので、既定値の動作よりも速く動作します。しかし、描画アプリケーションのビットマップのように大容量を必要とするオブジェクトに対してこの設定を行うと、メモリを大量に消費する可能性があります。

オブジェクトが埋め込み先編集をサポートしている場合、vbOLEMiscFlagDisableInPlace フラグを設定することで、オブジェクトを強制的に別のウィンドウでアクティブにできます。

値を組み合わせるには、Or 演算子を使います。たとえば、両方のフラグを組み合わせるには、次のようにします。

Ole1.MiscFlags = vbOLEMiscFlagMemStorage Or vbOLEMiscFlagDisableInPlace


MiscFlags プロパティの対象

OLE コンテナ (OLE) コントロール


関連項目

And 演算子

Or 演算子


SaveToOle1File メソッド

関連項目	対象

オブジェクトを OLE 1.0 のファイル形式で保存します。OLE 2.0 のオブジェクトを保存するには、SaveToFile メソッドを使用してください。名前付き引数は指定できません。

構文

object.SaveToOle1File filenumber

SaveToOle1File メソッドの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

filenumber	必ず指定します。オブジェクトの保存、読み込みのとき使うファイル番号を指定する数式を指定します。ファイル番号は開いているバイナリ ファイルに対応していなければなりません。

解説

リンク オブジェクト (OLEType プロパティを 0 (vbOLELinked) に設定) のときは、リンク情報とデータのイメージが指定されたファイルに保存されます。オブジェクトのデータは、作成元のアプリケーションが管理します。埋め込みオブジェクト (OLEType プロパティを 1 (vbOLEEmbedded) に設定) のときは、オブジェクトのデータは OLE コンテナ (OLE) コントロールが管理し、Microsoft Visual Basic アプリケーションが保存します。

オブジェクトを OLE のファイル形式で保存する場合は、SaveToFile メソッドを使ってください。


関連項目

ReadFromFile メソッド

SaveToFile メソッド


SaveToOle1File メソッドの対象

OLE コンテナ (OLE) コントロール


Format プロパティ

関連項目	対象

オブジェクトを作成したアプリケーションとのデータの交換形式を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.Format [ = format]

Format プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

format	Data プロパティと DataText プロパティで使う形式を指定する文字列式を指定します。

解説

特定のオブジェクトが受け入れることができるデータ形式の一覧を取得するためには、ObjectAcceptFormats、ObjectAcceptFormatsCount、ObjectGetFormats、ObjectGetFormatsCount の各プロパティを使います。

オブジェクトを提供するアプリケーションの多くは、1 種類か 2 種類のデータ形式だけをサポートしています。たとえば、Microsoft Draw がサポートする形式は、CF_METAFILEPICT 形式だけです。CF_METAFILEPICT 形式は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリで定義されている CFMetafile (数値 3) に似ていますが、実際にはリテラル文字であり、次のようにして代入します。

Ole1.Format = "CF_METAFILEPICT"

多くの場合、オブジェクトが受け入れることのできる形式 (ObjectAcceptFormats プロパティ) の一覧は、オブジェクトが提供できる形式 (ObjectGetFormats プロパティ) の一覧とは異なります。


関連項目

Data プロパティ

DataText プロパティ

ObjectAcceptFormats プロパティ

ObjectAcceptFormatsCount プロパティ

ObjectGetFormats プロパティ

ObjectGetFormatsCount プロパティ


Format プロパティの対象

OLE コンテナ (OLE) コントロール


PasteOK プロパティ

関連項目	例	対象

クリップボードの内容を OLE コンテナ (OLE) コントロールに貼り付けできるかどうかを示す値を返します。

構文

object.PasteOK

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

このプロパティの設定値が真 (True) のときは、OLE コンテナ コントロールにクリップボードの内容を貼り付けることができます。

OLE コンテナ コントロールに貼り付けるオブジェクトの形式 (リンク オブジェクトまたは埋め込みオブジェクト) を調べるには OLETypeAllowed プロパティを使います。OLE コンテナ コントロールにオブジェクトを貼り付けると、OLEType プロパティの設定値を使って作成されたオブジェクトの形式を調べることができます。

アプリケーションで [編集] - [貼り付け] コマンドをサポートするときは、このプロパティを使うと便利です。PasteOK プロパティが偽 (False) の場合は [貼り付け] コマンドを無効にして、PasteOK プロパティが真 (True) の場合は有効にしてください。メニュー コマンドの有効と無効は、それぞれ Enabled プロパティを真 (True) または偽 (False) に設定することで指定します。

OLE コンテナ コントロールにオブジェクトを貼り付けるには、Paste メソッドを使います。

ユーザーがもっと柔軟に操作できるようにしたいときは、[編集] - [貼り付け] コマンドを選んだときに、[形式を選択して貼り付け] ダイアログ ボックスを表示します。つまり、OLETypeAllowed プロパティを 2 に設定してから PasteSpecialDlg メソッドを使います。このダイアログ ボックスを表示すると、ユーザーがダイアログボックスで選択した条件に従ってクリップボードにオブジェクトを貼り付けられます。


関連項目

Enabled プロパティ

OLEType プロパティ

OLETypeAllowed プロパティ

Paste メソッド

PasteSpecialDlg メソッド


PasteOK プロパティの対象

OLE コンテナ (OLE) コントロール


DataText プロパティの例

次のプログラムでは、Microsoft Graph にデータを送ります。このプログラムを実行するには、システムに Microsoft Graph をインストールする必要があります。まず画面の約半分の大きさのフォームを作成し、次にそのフォームの左上にコマンド ボタン (CommandButton) コントロールを、そのコマンド ボタン コントロールの下に OLE コンテナ (OLE) コントロール (OLE1) をそれぞれ配置します。

フォームに OLE コンテナ コントロール を配置すると、[オブジェクトの挿入] ダイアログ ボックスが表示されます。[キャンセル] ボタンを選択してから F5 キーを押すと、このプログラムが実行されます。

Private Sub Command1_Click ()

Dim Msg, NL, TB	' 変数を宣言します。

TB = Chr(9)	' タブ文字を定義します。

NL = Chr(10)	' 改行文字を定義します。

' 既定値の Graph データを置換するためにデータを作成します。

Msg = TB + "Drew" & TB & "Teresa" & TB & "Bob"

Msg = Msg + NL & "Eric" & TB & "1" & TB & "2" & TB & "3"

Msg = Msg + NL & "Ted" & TB & "11" & TB & "22" & TB & "33"

Msg = Msg + NL & "Arthur" & TB & "21" & TB & "32" & TB & "23"

' DataText プロパティを使ってデータを送ります。

' MSGRAPH を非表示にして、アクティブにします。

Ole1.DoVerb - 3

If Ole1.AppIsRunning Then

Ole1.DataText = Msg

' オブジェクトを更新します。

Ole1.Update

Else

MsgBox "Graph がアクティブではありません。"

End If

End Sub

Sub Form_Load ()

Ole1.Format = "CF_TEXT"	' ファイル形式をテキストに設定します。

Ole1.SizeMode = 2	' 自動サイズ調整をします。

Ole1.CreateEmbed "", "MSGRAPH"

End Sub


ObjectAcceptFormats、ObjectAcceptFormatsCount、ObjectGetFormats、ObjectGetFormatsCount、ObjectVerbs、ObjectVerbsCount プロパティ
ObjectAcceptFormats、ObjectAcceptFormatsCount、ObjectGetFormats、ObjectGetFormatsCount、ObjectVerbs、ObjectVerbsCount プロパティの例

次のプログラムでは、[オブジェクトの挿入] ダイアログ ボックスを表示して、オブジェクトを作成し、リスト ボックスにそのオブジェクトに関する情報を表示します。このプログラムを実行するには、まずフォーム上に OLE コンテナ (OLE) コントロールを 1 つと、リスト ボックス (ListBox) コントロールを 3 つ配置します。次に、フォーム モジュールのコード ウィンドウに下のコードを貼り付けて F5 キーを押してからフォームをクリックします。[オブジェクトの挿入] ダイアログ ボックスが表示されたら、[オブジェクトの形式] ボックスからアプリケーションを選択して [OK] ボタンを選ぶと、オブジェクトが作成されます。

Private Sub Form_Click ()

Dim I	' 変数を宣言します。

' [オブジェクトの挿入] ダイアログ ボックスを表示します。

Ole1.InsertObjDlg

' 使用できる OLE 動詞リストを更新します。

Ole1.FetchVerbs	' OLE 動詞を読み出します。

' リスト ボックスの内容をクリアします。

List1.Clear

List2.Clear

List3.Clear

' リスト ボックスに OLE 動詞リストを表示します。ObjectVerbs(0) は

' 既定の OLE 動詞で、ObjectVerbs() 配列の中で繰り返されるので、

' カウントは 1 から始めます。

For I = 1 To Ole1.ObjectVerbsCount - 1

List1.AddItem Ole1.ObjectVerbs(I)

Next I

' リスト ボックスにオブジェクトが受け入れることができる形式の一覧を表示します。

For I = 0 To Ole1.ObjectAcceptFormatsCount - 1

List2.AddItem Ole1.ObjectAcceptFormats(I)

Next I

' リスト ボックスにオブジェクトが提供する形式の一覧を表示します。

For I = 0 To Ole1.ObjectGetFormatsCount - 1

List3.AddItem Ole1.ObjectGetFormats(I)

Next I

End Sub


PasteOK プロパティの例

このプログラムでは、PasteOK プロパティの設定値が真 (True) のときは、OLE コンテナ (OLE) コントロールのオブジェクトが貼り付けられます。また、PasteOK プロパティの設定値が偽 (False) のときは、メッセージ ボックスが表示されます。

Private Sub mnuEditPaste_Click ()

' PasteOK プロパティの値をチェックします。

If Ole1.PasteOK Then	' 真 (True) の場合。

Ole1.Paste	' [貼り付け] コマンドを実行します。

Else	' 偽 (False) の場合。

mnuEditPaste.Enabled = False	' [貼り付け] コマンドを無効にします。

MsgBox "貼り付けはできません。"	' メッセージを表示します。

End If

End Sub


ObjectMove イベント

関連項目	対象

オブジェクトがアクティブなときに、OLE コンテナ (OLE) コントロール内のオブジェクトの移動、またはサイズ変更を行った直後に発生します。

構文

Private Sub object_ObjectMove(left As Single, top As Single, width As Single, height As Single)

ObjectMove イベントの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

left	移動またはサイズ変更の直後の、OLE コンテナ コントロールの左端の座標を指定します。

top	移動またはサイズ変更の直後の、OLE コンテナ コントロールの上端の座標を指定します。

width	移動またはサイズ変更の直後の、OLE コンテナ コントロールの幅を指定します。

height	移動またはサイズ変更の直後の、OLE コンテナ コントロールの高さを指定します。

解説

ユーザーが OLE コンテナ コントロールの移動やサイズ変更を行ったときに、ObjectMove イベントを使って、コントロールのサイズと位置を変更するかどうかを決めることができます。ObjectMove イベント プロシージャで OLE コンテナ コントロールの位置やサイズを変更しなかった場合は、OLE コンテナ コントロール内のオブジェクトは元の位置に戻り、新しいサイズを受け取ります。このイベントに引数として渡される座標には、OLE コンテナ コントロールの境界線も含まれます。

ObjectMove イベントおよび Resize イベントは、OLE コンテナ コントロールが持っているオブジェクトのサイズに関する情報を受け取ったときに起動します。ただし、Resize イベントはコントロールの位置に関する情報は受け取りません。OLE コンテナ コントロールがフォームの外に移動した場合、オブジェクトの位置を示す引数の値は、フォームの左上隅を基準に相対的な正または負の値になります。


関連項目

DragMode プロパティ

Move メソッド

Resize イベント

SizeMode プロパティ


ObjectMove イベントの対象

OLE コンテナ (OLE) コントロール


OLEDropAllowed プロパティ

関連項目	対象

OLE のドラッグ アンド ドロップ操作で、OLE コンテナ (OLE) コントロールがドロップの対象になれるかどうかを指定する値を設定します。値の取得も可能です。

構文

object.OLEDropAllowed [= boolean]

OLEDropAllowed プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	OLE コンテナ コントロールがドロップの対象になれるかどうかを示すブール式を指定します。設定する値については、「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	リンク可能、または埋め込み可能なオブジェクトをドラッグすると、マウス ポインタが OLE コンテナ コントロールの上に移動したときにドロップ アイコンが表示されます。OLE コンテナ コントロールにオブジェクトをドロップすると、Paste メソッドを使ってシステム クリップボードからオブジェクトを貼り付けたときと結果は同じになります。

False	(既定値) リンク可能、または埋め込み可能なオブジェクトを OLE コンテナ コントロール上にドラッグしても、ドロップ アイコンは表示されません。また、オブジェクトを OLE コンテナ コントロール上にドロップしても、コントロールには何も起こりません。

解説

OLEDropAllowed プロパティが真 (True) に設定されている場合は、マウス ポインタの形状は MousePointer プロパティによって決定されます。MousePointer プロパティが 0 (既定値) の場合は、操作の実行中は標準のドラッグ アンド ドロップ アイコンが表示されます。

リンク可能、または埋め込み可能なオブジェクトの移動やコピーを行うには、OLETypeAllowed プロパティを 1 (vbOLEEmbedded) または 2 (vbOLEEither) に設定します。オブジェクトをリンク可能にするには、OLETypeAllowed プロパティを 0 (vbOLELinked) か 2 に設定します。OLEDropAllowed プロパティが真 (True) に設定されているときにオブジェクトをドロップすると、Class、SourceDoc、SourceItem の各プロパティの設定は OLE コンテナ コントロールの Paste メソッドを使う場合と同じになります。

OLEDropAllowed プロパティが真 (True) に設定されていると、オブジェクトをドラッグしても OLE コンテナ コントロールは DragDrop イベントや DragOver イベントを受け取りません。また、OLEDropAllowed プロパティが真 (True) に設定されている場合、DragMode プロパティの設定値は OLE コンテナ コントロールのドラッグ アンド ドロップ操作には影響を与えません。


関連項目

Class プロパティ

DragMode プロパティ

OLETypeAllowed プロパティ

Paste メソッド

SourceDoc プロパティ

SourceItem プロパティ


OLEDropAllowed プロパティの対象

OLE コンテナ (OLE) コントロール


ClassModule オブジェクト

関連項目	プロパティ	イベント

ClassModule オブジェクトには、クラスの特性を決定するプロパティと、クラスのプロパティとメソッドを定義するコードが含まれています。

解説

ClassModule オブジェクトは、作成するクラスのプロパティとメソッドを定義するコードのコンテナとして使います。ClassModule オブジェクトが定義するクラスは 1 つだけですが、プロジェクト内には複数の ClassModule オブジェクトを持つことができます。ClassModule オブジェクトは、オブジェクト自体が画面に表示されるインターフェイスを持たないことを除いて、フォームと機能的に似ています。

たとえば、MyClass が ClassModule オブジェクトのオブジェクト名である場合、次のようなコードを使って、ClassModule オブジェクトで定義されたクラスの、複数のインスタンスを作成することができます。

Dim MyInstance As New MyClass

ClassModule オブジェクトは、デザイン時のみ作成可能で、使用するには [挿入] - [クラス モジュール] コマンドを選択します。

ClassModule オブジェクトの作成後に、モジュールにコードを記述して、そのクラスのプロパティとメソッドを定義します。さらにクラスの動作を定義するには、次に示す ClassModule オブジェクトのプロパティを設定します。

Instancing プロパティは、プロジェクトの外部のアプリケーションが、新たに作成したクラスのインスタンスを宣言できるかどうかを指定します。

Public プロパティは、他のアプリケーションがクラスのプロパティやメソッドを呼び出すコードを記述できるかどうかを指定します。

Name プロパティは、クラスの名前を指定します。


関連項目

Form オブジェクト、Forms コレクション


ClassModule オブジェクトのプロパティ

Instancing プロパティ

Name プロパティ

Public プロパティ


ClassModule オブジェクトのイベント

Initialize イベント

Terminate イベント


Instancing プロパティ

関連項目	対象

プロジェクトの外部でパブリック クラスのインスタンスを作成できるかどうかを設定します。実行時には使えません。

設定値

Instancing プロパティの設定値は次のとおりです。

設定値	内容

0	(既定値) Not Creatable。プロジェクトの内部だけでクラスのインスタンスを作成できます。

1	Creatable SingleUse。プロジェクトの内部と外部の両方で、クラスのインスタンスを作成できます。プロジェクト外の OLE クライアントからのクラスのインスタンスの作成要求に対して、それぞれ別の OLE サーバーのコピーが起動します。

2	Creatable MultiUse。プロジェクトの内部と外部の両方で、クラスのインスタンスを作成できます。プロジェクト外の OLE クライアントからのクラスのインスタンスの作成要求に対して、既に OLE サーバーのコピーが実行されている場合は、そのコピーを使用します。実行されていない場合は、OLE サーバーのコピーが 1 つ起動し、クラスを提供します。

解説

クラスが作成可能な場合は、次に示すいずれかの方法を使って、他のアプリケーションからクラスのインスタンスを作成します。

CreateObject 関数を次のように使います。

Set MyInstance = CreateObject("MyProject.MyClass")

プロジェクトの内部で、次のような Dim ステートメントを使います。また、Public プロパティも真 (True) に設定されている場合は、プロジェクトの外部からも使うことができます。

Dim MyInstance As New MyClass

Public プロパティが偽 (False) に設定されている場合、Instancing プロパティの設定は無効です。クラスを定義するプロジェクトの内部では、常にクラスのインスタンスを作成できます。Public プロパティが真 (True) に設定されている場合は、クラスは参照可能です。この場合、クラスのインスタンスが存在するときは、他のアプリケーションから制御できます。


関連項目

CreateObject 関数

Dim ステートメント

Public プロパティ


Instancing プロパティの対象

ClassModule オブジェクト


Description プロパティ (ClassModule オブジェクト)

対象

オブジェクト ブラウザでクラスが選択されているときに、表示されるテキストを設定します。実行時には使えません。

設定値

Description プロパティには、オブジェクト ブラウザでクラスが選択されたときに、クラスの用途を示す文字列を指定します。このプロパティの既定値は、長さ 0 の文字列 ("") です。

Description プロパティを設定するには、オブジェクト ブラウザでプロジェクトとクラスを選択します。次に、[オプション] ボタンを選択して [メンバ設定] ダイアログ ボックスを表示し、[説明] ボックスに Description プロパティの値を入力します。

解説

このプロパティを設定した後は、他のユーザーがオブジェクト ブラウザを使って、作成されたコンパイル済みの OLE サーバーが提供するクラスの、プロパティとメソッドに関する情報を参照できるようになります。

Description プロパティの設定値は、[オプション] ダイアログ ボックスの [プロジェクト] タブで入力できる [アプリケーションの説明] ボックス内の文字列とは異なります。[アプリケーションの説明] ボックス内の文字列は、[参照設定] ダイアログ ボックスに表示される OLE サーバーの説明です。Description プロパティには、オブジェクト ブラウザに表示されるクラスの説明、およびクラスのプロパティとメソッドの説明を設定します。


Description プロパティの対象

ClassModule オブジェクト


Public プロパティ

関連項目	対象

作成したクラスがプロジェクトの外部から利用可能かどうかを指定する値を設定します。実行時には使えません。

設定値

Public プロパティの設定値は次のとおりです。

設定値	内容

True	作成したクラスはプロジェクトの内部でも、プロジェクトの外部のアプリケーションからも利用可能です。

False	(既定値) 作成したクラスはプロジェクトの内部だけで利用可能です。

解説

Instancing プロパティと Public プロパティを組み合わせると、定義したクラスを他のアプリケーションに公開する方法を指定できます。2 つのプロパティをそれぞれ設定した場合に、他のアプリケーションからのクラスの使用または作成が可能かどうかを次に示します。

Public	Instancing	結果

False	なし	クラスは、クラスを定義したプロジェクト内だけで作成可能で、他のアプリケーションからは使用できません。

True	0	クラスは、クラスを定義したプロジェクト内だけで作成可能で、他のアプリケーションからは使用できません。

True	1	クラスは、クラスを定義したプロジェクト内だけで作成できます。他のアプリケーションからも使用できます。クラスのインスタンスが存在する場合、他のアプリケーションからでも制御できます。プロジェクトの内部と外部の両方で、クラスのインスタンスを作成できます。プロジェクト外の OLE クライアントからのクラスのインスタンスの作成要求に対して、それぞれ別の OLE サーバーのコピーが起動します。クラスは参照可能なので、クラスのインスタンスが存在するときは、他のアプリケーションから制御できます。

True	2	クラスは、クラスを定義したプロジェクトと他のアプリケーションの両方で作成可能です。クラスは他のアプリケーションからも使用可能であり、クラスのインスタンスが存在する場合、他のアプリケーションからでも制御できます。プロジェクトの内部と外部の両方で、クラスのインスタンスを作成できます。プロジェクト外の OLE クライアントからのクラスのインスタンスの作成要求に対して、既に OLE サーバーのコピーが実行されている場合は、そのコピーを使用します。実行されていない場合は、OLE サーバーのコピーが 1 つ起動し、クラスを提供します。クラスは参照可能なので、クラスのインスタンスが存在するときは、他のアプリケーションから制御できます。


関連項目

Instancing プロパティ


Public プロパティの対象

ClassModule オブジェクト


Initialize イベント

関連項目	対象

アプリケーションが Form オブジェクトや MDIForm オブジェクト、またはクラスのインスタンスを作成したときに発生します。

構文

Private Sub object_Initialize( )

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Initialize イベントは、次の場合に発生します。

次のように、CreateObject 関数を使ってクラスのインスタンスを作成した場合。

Set X = CreateObject("Project1.MyClass")

フォームやクラスの、自動的に作成されるインスタンスのプロパティまたはイベントを、コード内で参照した場合。

MyForm.Caption = "Example"

このイベントを使うと、Form オブジェクトや MDIForm オブジェクト、またはクラスのインスタンスが使うすべてのデータを初期化することができます。Form オブジェクトと MDIForm オブジェクトの Initialize イベントは、Load イベントの前に発生します。


関連項目

CreateObject 関数

Dim ステートメント

Load イベント

Terminate イベント


Initialize イベントの対象

ClassModule オブジェクト

Form オブジェクト、Forms コレクション

MDIForm オブジェクト


Terminate イベント

関連項目	対象

オブジェクトを参照するすべての変数が Nothing に設定されたために、Form オブジェクト、MDIForm オブジェクト、クラスのインスタンスへのすべての参照がメモリから解放されるか、またはオブジェクトの最後の参照が適用範囲 (スコープ) 外に出ると発生します。

構文

Private Sub object_Terminate( )

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Form オブジェクトと MDIForm オブジェクトの Terminate イベントは、Unload イベントの後に発生します。

アプリケーションの異常終了によってフォームやクラスのインスタンスがメモリ上から解放された場合、Terminate イベントは発生しません。たとえば、クラスやフォームの、既存のすべてのインスタンスをメモリ上から解放する前にアプリケーションが End ステートメントを実行すると、そのクラスやフォームには Terminate イベントが発生しません。


関連項目

Initialize イベント

QueryUnload イベント

Set ステートメント

Unload イベント


Terminate イベントの対象

ClassModule オブジェクト

Form オブジェクト、Forms コレクション

MDIForm オブジェクト


Negotiate プロパティ

関連項目	対象

フォーム上のアクティブなオブジェクトが 1 つ以上のツールバーを表示する場合に、コントロールを表示するかどうかを設定します。実行時には使えません。

設定値

Negotiate プロパティの設定値は次のとおりです。

設定値	内容

True	フォーム内でコントロールが特定の位置に配置されている (Align プロパティが 0 以外の値に設定されている) 場合、フォーム上のアクティブなオブジェクトがツールバーを表示しているときでも、コントロールは表示されたままになります。

False	(既定値) フォーム上のアクティブなオブジェクトがツールバーを表示しているとき、コントロールは表示されません。コントロールの位置には、アクティブなオブジェクトのツールバーが表示されます。

解説

すべてのコントロールには、Align プロパティとNegotiate プロパティがあります。Align プロパティは、Form オブジェクトや MDIForm オブジェクト内のコントロールを特定の位置に配置するために使いますが、ツールバーのネゴシエーションは MDIForm オブジェクト上だけで起こります。したがって、コントロールは、必ず MDIForm オブジェクト上に配置してください。

NegotiateToolbars プロパティが偽 (False) に設定されていると、Negotiate プロパティを設定しても効果はありません。


関連項目

Align プロパティ

NegotiateToolbars プロパティ


Negotiate プロパティの対象

データ (Data) コントロール

ピクチャ ボックス (PictureBox) コントロール


NegotiateMenus プロパティ

関連項目	対象

フォームのメニューバーに、フォーム上のオブジェクトから、メニューを取り込むかどうかを設定します。実行時には使えません。

設定値

NegotiateMenus プロパティの設定値は次のとおりです。

設定値	内容

True	(既定値) フォーム上のオブジェクトが編集可能なとき、そのオブジェクトのメニューがフォームのメニュー バーに表示されます。

False	フォーム上のオブジェクトのメニューは、フォームのメニュー バーに表示されません。

解説

NegotiateMenus プロパティは、フォーム上のアクティブなオブジェクトのメニューがフォームのメニュー バーのスペースを共有 (またはネゴシエート) するかどうかを指定します。作成したフォームのメニュー バーに、アクティブなオブジェクトのメニューを含めたくない場合は、NegotiateMenus プロパティを偽 (False) に設定します。

MDIForm オブジェクトと MDIForm オブジェクト上のオブジェクトとの間で、メニューをネゴシエートすることはできません。

NegotiateMenus プロパティが真 (True) に設定されている場合は、メニュー バーが表示されていないときでも、フォームはメニュー バーの定義を持つ必要があります。フォームの MDIChild プロパティを真 (True) に設定すると、アクティブなオブジェクトのメニューは MDI 親ウィンドウ (MDIForm オブジェクト) のメニュー バーに表示されます。

NegotiateMenus プロパティを真 (True) に設定すると、それぞれのメニュー コントロールの NegotiatePosition プロパティを使って、アクティブなオブジェクトのメニューと共にフォームが表示するメニューを指定できます。


関連項目

NegotiatePosition プロパティ


NegotiateMenus プロパティの対象

Form オブジェクト、Forms コレクション


NegotiatePosition プロパティ

関連項目	対象

フォーム上のリンク オブジェクト、または埋め込みオブジェクトがアクティブでメニューを表示しているときに、トップ レベルのメニュー コントロールをメニュー バーに表示するかどうかを設定します。実行時には使えません。

設定値

NegotiatePosition プロパティの設定値は次のとおりです。

設定値	内容

0	(既定値) なし。オブジェクトがアクティブなとき、メニューはメニュー バーに表示されません。

1	左。オブジェクトがアクティブなとき、メニューはメニュー バーの左端に表示されます。

2	中央。オブジェクトがアクティブなとき、メニューはメニュー バーの中央に表示されます。

3	右。オブジェクトがアクティブなとき、メニューはメニュー バーの右端に表示されます。

解説

NegotiatePosition プロパティを使うと、フォーム上のアクティブなオブジェクトのメニューとメニュー バーのスペースを共有 (またはネゴシエート) するメニュー バーのメニューを、個々に指定できます。NegotiatePosition プロパティが 0 以外に設定されたメニューは、アクティブなオブジェクトのメニューと共にフォームのメニュー バーに表示されます。

NegotiateMenus プロパティが偽 (False) に設定されている場合は、NegotiatePosition プロパティを設定しても効果はありません。


関連項目

NegotiateMenus プロパティ


NegotiatePosition プロパティの対象

メニュー (Menu) コントロール


NegotiateToolbars プロパティ

関連項目	対象

MDI 子フォーム上のオブジェクトがアクティブなときに、MDI 子フォーム上のオブジェクトのツールバーを MDIForm オブジェクト上に表示するかどうかを設定します。実行時には使えません。

設定値

NegotiateToolbars プロパティの設定値は次のとおりです。

設定値	内容

True	(既定値) MDIForm オブジェクトは、アクティブなオブジェクトのツールバーを MDIForm オブジェクトの上端または下端に表示します。ツールバーを MDIForm オブジェクトの上端か下端のどちらに表示するかは、アクティブなオブジェクトによって決定されます。

False	アクティブなオブジェクトのツールバーは、まったく表示されないか、移動 ツールバーとして表示されます。どちらで表示されるかは、アクティブなオブジェクトによって決まります。

解説

NegotiateToolbars プロパティは、MDI 子フォーム上にオブジェクトを持つマルチ ドキュメント インターフェイス (MDI) アプリケーションを作成するときに使います。このプロパティを使って、アクティブなオブジェクトがツールバーを表示する方法を指定します。このプロパティに真 (True) を設定すると、MDIForm オブジェクトはフォームの上端または下端のスペースを共有 (またはネゴシエート) して、アクティブなオブジェクトのツールバーを表示します。

ツールバーが MDIForm オブジェクトにもある場合に、それぞれのツールバーが限られたスペースをどのようにして共有するかを指定するには、Negotiate プロパティを使います。


関連項目

Negotiate プロパティ


NegotiateToolbars プロパティの対象

MDIForm オブジェクト


Action プロパティ (コモン ダイアログ)

関連項目	対象

表示するダイアログ ボックスの種類を設定します。値の取得も可能です。デザイン時には使えません。

注   Action プロパティは、Microsoft Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ以下のメソッドを使用してください。

ShowColor、ShowFont、ShowHelp、ShowOpen、ShowPrinter、ShowSave メソッド。

構文

object.Action [= value]

Action プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	表示されるダイアログ ボックスの種類を指定する数式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

0	何も実行しません。

1	[ファイルを開く] ダイアログ ボックスを表示します。

2	[ファイル名を付けて保存] ダイアログ ボックスを表示します。

3	[色の設定] ダイアログ ボックスを表示します。

4	[フォントの指定] ダイアログ ボックスを表示します。

5	[印刷] ダイアログ ボックスを表示します。

6	WINHELP.EXE を起動します。


関連項目

ShowColor メソッド

ShowFont メソッド

ShowHelp メソッド

ShowOpen メソッド

ShowPrinter メソッド

ShowSave メソッド


Action プロパティ (コモン ダイアログ) の対象

コモン ダイアログ (CommonDialog) コントロール


BackColor、ForeColor プロパティ

関連項目	例	対象

BackColor プロパティ

ForeColor プロパティ

構文

object.BackColor [= color]
object.ForeColor [= color]

BackColor プロパティと ForeColor プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

color	オブジェクトの背景色や前景色を決定する定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

Microsoft Visual Basic では Microsoft Windows の RGB 方式を採用しています。引数 color の設定値は次のとおりです。

設定値	内容

通常の RGB カラー	カラーパレット、またはコード内で RGB 関数や QBColor 関数を使って指定する色です。

システム カラー	オブジェクト ブラウザ の Visual Basic (VB) オブジェクト ライブラリに表示されるシステム カラー定数を使って指定する色です。Windows のコントロール パネルの設定に基づいて変換されます。

すべてのフォームやコントロールについて、デザイン時の既定値は次のとおりです。

BackColor プロパティは、定数 vbWindowBackground によって指定されるシステムの既定値の色に設定されます。

ForeColor プロパティは、定数 vbWindowText によって指定されるシステムの既定値の色に設定されます。

解説

ラベル (Label) コントロールとシェイプ (Shape) コントロールの BackStyle プロパティの設定が 0 (透明) のときは、BackColor プロパティは無視されます。

Form オブジェクトやピクチャ ボックス (PictureBox) コントロールの BackColor プロパティを設定したときは、継続表示属性を持つグラフィックスを含むすべてのテキストとグラフィックスは消去されます。ForeColor プロパティの設定によって、既に描かれているグラフィックスや画面出力は影響されません。他のすべてのコントロールでは、画面の色はすぐに変更されます。

通常の RGB カラーの有効な値の範囲は、0 ～ 16,777,215 (&HFFFFFF) です。この値の最上位バイトは 0 で、下位の 3 バイトが最下位バイトから最上位バイトに向かって順に赤、緑、青の強さをそれぞれ決定します。赤、緑、青の各要素は、それぞれ 0 ～ 255 (&HFF) の数値で表されます。最上位バイトが 0 でないときは、Visual Basic ではコントロール パネルで設定されているシステム カラーが使われます。これは、ユーザーのコントロール パネルの設定やオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリに表示される定数によって定義されます。

Windows でテキストを表示するには、テキストと背景色の両方が純色でなければなりません。選択したテキストや背景の色が表示されない場合は、選択されたどちらかの色がディザリングされている (最大 3 色の異なるピクセルから構成されている) 可能性があります。テキストや背景にディザリングされた色を指定すると、最も近い純色が使われます。


関連項目

FillColor プロパティ

FillStyle プロパティ


BackColor、ForeColor プロパティの対象

チェック ボックス (CheckBox) コントロール

Column オブジェクト

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール (BackColor プロパティのみ)

データ (Data) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト (BackColor プロパティのみ)

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール (BackColor プロパティのみ)

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト (ForeColor プロパティのみ)

シェイプ (Shape) コントロール (BackColor プロパティのみ)

テキスト ボックス (TextBox) コントロール


BackStyle プロパティ

関連項目	対象

ラベル (Label) コントロールまたはシェイプ (Shape) コントロールの背景を透明にするか不透明にするかを設定します。値の取得も可能です。

構文

object.BackStyle [= number]

BackStyle プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	透明または不透明を指定する数式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 number の設定値は次のとおりです。

設定値	内容

0	透明。

背景の色やグラフィックスがコントロールによって隠されずに表示されます。

1	(既定値) 不透明。

このコントロールの BackColor プロパティで指定されている色で表示され、背景の色やグラフィックスは隠されます。

解説

フォームまたはピクチャ ボックス (PictureBox) コントロールの背景色を表示する場合、またはピクチャ内にコントロールを配置する場合に、BackStyle プロパティを設定して、透明なコントロールを作成できます。逆にコントロール内の背景を隠したいときは、コントロールを不透明にします。

BackStyle プロパティを 0 に設定すると、コントロールの BackColor プロパティの設定は無視されます。


関連項目

BackColor、ForeColor プロパティ


BackStyle プロパティの対象

ラベル (Label) コントロール

OLE コンテナ (OLE) コントロール

シェイプ (Shape) コントロール


BorderColor プロパティ

関連項目	対象

オブジェクトの境界線の色を設定します。値の取得も可能です。

構文

object.BorderColor [= color]

BorderColor プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

color	境界線の色を決定する数値または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

Visual Basic では色の指定に Windows の RGB 方式を採用しています。引数 color の設定値は次のとおりです。

設定値	内容

通常の RGB カラー	カラーパレット、またはコード内で RGB 関数や QBColor 関数を使って指定する色です。

システム カラー	オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリに表示されるシステム カラー定数によって指定する色です。Windows のコントロール パネルの設定に基づいて変換されます。

解説

通常の RGB カラーの有効な値の範囲は、0 ～ 16,777,215 (&HFFFFFF) です。この値の最上位バイトは 0 で、下位の 3 バイトが下位バイトから最上位バイトに向かって順に赤、緑、青の強さをそれぞれ決定します。赤、緑、青の各要素は、0 ～ 255 (&HFF) の数値で表されます。最上位バイトが 0 でないときは、Visual Basic ではコントロール パネルで設定されているシステム カラーが使われます。これは、ユーザーのコントロール パネルの設定やオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリに表示される定数によって定義されます。


関連項目

BackColor、ForeColor プロパティ

DrawWidth プロパティ


BorderColor プロパティの対象

ライン (Line) コントロール

シェイプ (Shape) コントロール


BorderStyle プロパティ

関連項目	対象

オブジェクトの境界線のスタイルを設定します。値の取得も可能です。Form オブジェクトとテキスト ボックス (TextBox) コントロールについては、実行時には値の取得のみ可能です。

構文

object.BorderStyle = [value]

BorderStyleColor プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	境界線のスタイルを決定する数値や定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

Form オブジェクトの BorderStyle プロパティの設定値は次のとおりです。

設定値	内容

0	なし。境界および境界に関連する要素を表示しません。

1	固定 (実線)。コントロール メニュー ボックス、タイトル バー、最大化ボタン、最小化ボタンを表示できます。最大化ボタンおよび最小化ボタンによるサイズ変更のみ可能です。

2	可変 (既定値)。コントロール メニュー ボックス、タイトル バー、最大化ボタン、最小化ボタンのいずれを使ってもサイズ変更できます。

3	固定ダイアログ。コントロール メニュー ボックスとタイトル バーは表示できますが、最大化および最小化ボタンは表示されません。サイズ変更もできません。

4	固定ツール ウィンドウ。16 ビット版の Windows、Windows NT Version 3.51、およびこれより以前のバージョンの Windows NT では、境界線のスタイルを固定 (実線) に設定した場合と同じように動作します。最大化および最小化ボタンは表示されません。また、サイズ変更もできません。Windows 95 では、閉じるボタンが表示され、タイトル バー テキストの縮小フォント サイズで表示されます。フォームは Windows 95 のタスク バーに表示されません。

5	可変ツール ウィンドウ。16 ビット版の Windows、Windows NT Version 3.51、およびこれより以前のバージョンの Windows NT では、境界線のスタイルを可変に設定した場合と同じように動作します。最大化および最小化ボタンは表示されません。サイズ変更が可能です。Windows 95 では、閉じるボタンが表示され、タイトル バー テキストの縮小フォント サイズで表示されます。フォームは Windows 95 タスク バーに表示されません。

グリッド (Grid)、イメージ (Image)、ラベル (Label)、OLE コンテナ (OLE)、ピクチャ ボックス (PictureBox)、テキスト ボックス (TextBox) の各コントロールの BorderStyle プロパティの設定値は次のとおりです。

設定値	内容

0	なし。これはイメージ、ラベル コントロールの既定値です。

1	実線。これはグリッド、ピクチャ ボックス、テキスト ボックス、OLE コンテナの各コントロールの既定値です。

ライン (Line)、シェイプ (Shape) の各コントロールの BorderStyle プロパティの設定値は次のとおりです。

設定値	内容

0	透明。

1	(既定値) 実線 (中心線)。境界の中心線がオブジェクトの外形線と一致するように描かれます。

2	鎖線。

3	点線。

4	一点鎖線。

5	二点鎖線。

6	塗りつぶし。境界の外側の線がオブジェクトの外形線と一致するように描かれます。

解説

フォームの BorderStyle プロパティでは、フォームのスタイル (表示形式) を変更することができます。フォームを通常のウィンドウとして使用するのか、ダイアログ ボックスとして使用するのか、その目的に応じて表示スタイルを設定します。標準的なダイアログ ボックスを作成するには、BorderStyle プロパティを 3 (固定ダイアログ) に設定します。4 (固定ツール ウィンドウ) および 5 (可変ツール ウィンドウ) に設定すると、ツールボックス形式のウィンドウを作成することができます。

フォームの BorderStyle プロパティを 0 (なし) に設定すると、タイトル バーや境界は表示されません。MDI フォームの子フォームに対してこの設定を行うと、MDI フォームと子フォームの BackColor プロパティが別の値に設定されていない限り、MDI フォームと子フォームのコントロールの区別がつかなくなります。

MDI 子フォームを MDI フォーム内に表示する場合、BorderStyle プロパティを 2 (可変) に設定すると、フォームは Windows に定義されている大きさで画面に表示され、2 (可変) 以外の値に設定すると、デザイン時に指定した値に従って表示されます。Form オブジェクトの BorderStyle プロパティの設定値を変更すると、MinButton、MaxButton、ShowInTaskbar の各プロパティの設定値が変更される場合があります。BorderStyle プロパティを 1 (固定 (実線)) または 2 (可変) に設定すると、MinButton、MaxButton、ShowInTaskbar の各プロパティは自動的に真 (True) に設定されます。BorderStyle プロパティを 0 (なし)、3 (固定ダイアログ)、4 (固定ツール ウィンドウ)、または 5 (可変ツール ウィンドウ) に設定すると、MinButton、MaxButton、ShowInTaskbar の各プロパティは自動的に偽 (False) に設定されます。

注   フォームにメニューを作成する場合、BorderStyle プロパティを 3 (固定ダイアログ) に設定しても、1 (固定 (実線)) の境界線で表示されます。

フォームは、実行時には、Show メソッドを使って指定したモーダルかモードレスのどちらかになります。


関連項目

Caption プロパティ

ControlBox プロパティ

DrawStyle プロパティ

MaxButton プロパティ

MinButton プロパティ

ShowInTaskbar プロパティ (Windows 95)


BorderStyle プロパティの対象

Form オブジェクト

グリッド (Grid) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

ライン (Line) コントロール

OLE コンテナ (OLE) コントロール

ピクチャ ボックス (PictureBox) コントロール

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール


BorderWidth プロパティ

関連項目	例	対象

コントロールの境界線の幅を設定します。値の取得も可能です。

構文

object.BorderWidth [= number]

BorderWidth プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	1 ～ 8,192 の範囲の数式を指定します。

解説

BorderWidth プロパティの値は、1 ～ 8,192 の範囲で設定します。ライン (Line) コントロールとシェイプ (Shape) コントロールの境界線を設定するには、BorderWidth プロパティと BorderStyle プロパティを使ってください。次の表に、BorderStyle プロパティの設定が BorderWidth プロパティに与える影響を示します。

BorderStyle	BorderWidth プロパティの効果

0	BorderWidth プロパティの設定は無効になります。

1 ～ 5	境界線の幅だけ境界線の中心から広がります。コントロールの高さと幅は、境界線の中心を基準にして測定されます。

6	境界線の幅だけ境界線の外側からコントロールの内側に広がります。コントロールの高さと幅は、境界線の外側を基準にして測定されます。

BorderWidth プロパティが 1 よりも大きい場合、有効な BorderStyle プロパティの設定は 1 (実線(中心線)) と 6 (塗りつぶし) だけになります。


関連項目

BorderStyle プロパティ

DrawWidth プロパティ

Height、Width プロパティ


BorderWidth プロパティの対象

ライン (Line) コントロール

シェイプ (Shape) コントロール


Cancel プロパティ

関連項目	対象

コマンド ボタンをそのフォームのキャンセル ボタンにするかどうかを設定します。値の取得も可能です。コマンド ボタンとは、コマンド ボタン (CommandButton) コントロールまたはコマンド ボタンとして動作する OLE コンテナ (OLE) コントロール内のオブジェクトを指します。

構文

object.Cancel [= boolean]

Cancel プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	オブジェクトを キャンセル ボタンにするかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	コマンド ボタンはキャンセル ボタンになります。

False	(既定値) コマンド ボタンはキャンセル ボタンになりません。

解説

キャンセル ボタンは、主にそれまでユーザーが行った変更を無効にして、フォームを変更前の状態に戻すといった用途に使われます。

フォーム上でキャンセル ボタンにできるコマンド ボタン コントロールは 1 つだけです。1 つのコマンド ボタン コントロールの Cancel プロパティを真 (True) に設定すると、フォーム上のその他のすべてのコマンド ボタン コントロールの Cancel プロパティは自動的に偽 (False) に設定されます。

アクティブなフォーム上にキャンセル ボタンがあるとき、そのボタンを選択するには次に示す 3 つの方法があります。

そのコマンド ボタンをクリックする。

Esc キーを押す。

そのコマンド ボタンにフォーカスがあるときに Enter キーを押す。

OLE コンテナ コントロールでは、Cancel プロパティはコマンド ボタンとして動作するオブジェクトだけに用意されています。

ヒント   削除のように、以前の状態に戻すことができない操作をフォームが提供している場合、キャンセル ボタンをそのフォームのデフォルト ボタンに設定しておくとよいでしょう。キャンセル ボタンの Cancel プロパティと Default プロパティをいずれも真 (True) に設定します。


関連項目

Default プロパティ

KeyDown、KeyUp イベント

KeyPress イベント


Cancel プロパティの対象

コマンド ボタン (CommandButton) コントロール

OLE コンテナ (OLE) コントロール


CancelError プロパティ

対象

キャンセル ボタンをユーザーが選択したときエラーを発生させるかどうかを設定します。値の取得も可能です。

構文

object.CancelError [= boolean]

CancelError プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	エラーを発生させるかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	エラーが発生します。

False	(既定値) エラーは発生しません。

解説

このプロパティを真 (True) に設定すると、ユーザーがキャンセル ボタンを選択したときにエラー番号 32755 (cdlCancel) のエラーが発生します。


CancelError プロパティの対象

コモン ダイアログ (CommonDialog) コントロール


Col、Row プロパティ

関連項目	例	対象

グリッド (Grid) コントロールのアクティブ セルを設定します。値の取得も可能です。デザイン時には設定できません。

構文

object.Col [= number]
object.Row [= number]

Col プロパティと Row プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	アクティブ セルの行数と列数を指定します。

解説

これらのプロパティは、グリッド コントロール内のセル位置を指定したり、どの行または列にアクティブなセルがあるかどうかを調べるために使います。Col プロパティには列、Row プロパティには行の位置を示す番号を指定します。列と行には 0 から番号が振られ、グリッドの上端が行の 0 で、左端が列の 0 になります。実行時にこれらのプロパティを設定しても、選択されているセルは変更されません。選択領域を指定するには、SelEndCol、SelStartCol、SelEndRow、SelStartRow の各プロパティを使ってください。

注   Col、Row プロパティは、Cols、Rows プロパティとは異なります。


関連項目

Clip プロパティ

Cols、Rows プロパティ

SelEndCol、SelStartCol、SelEndRow、SelStartRow プロパティ

Text プロパティ


Col、Row プロパティの対象

DB グリッド (DBGrid) コントロール

グリッド (Grid) コントロール


Cols、Rows プロパティ

関連項目	例	対象

グリッド (Grid) コントロールの列または行の総数を設定します。値の取得も可能です。

構文

object.Cols [= number]
object.Rows [= number]

Cols プロパティと Rows プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	グリッド コントロールの列数または行数を指定します。列数の最小値は 1 で、最大値は 400 です。行数の最小値は 1 で、最大値は 2,000 です。

解説

このプロパティを使うと、実行時にグリッド コントロールの列数または行数を動的に広げることができます。グリッド コントロールには、非固定型の列と非固定型の行が少なくとも 1 つずつ必要です。

注   Cols、Rows プロパティは、Col、Row プロパティとは異なります。


関連項目

Col、Row プロパティ


Cols、Rows プロパティの対象

グリッド (Grid) コントロール


ControlBox プロパティ

関連項目	対象

実行時に、フォームにコントロール メニュー ボックスを表示するかどうかを設定します。値の取得も可能です。実行時には値の取得のみ可能です。

構文

object.ControlBox

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

ControlBox プロパティの設定値は次のとおりです。

設定値	内容

True	(既定値) コントロール メニュー ボックスを表示します。

False	コントロール メニュー ボックスを表示しません。

解説

コントロール メニュー ボックスを表示するには、フォームの BorderStyle プロパティを 1 (固定 (実線))、2 (可変)、3 (固定ダイアログ) のいずれかに設定する必要があります。

コントロール メニュー ボックスは、ウィンドウがモーダルかモードレスかにかかわらず表示できます。

実行時に利用できるコマンドは、関連するプロパティの設定に依存します。たとえば、MaxButton プロパティや MinButton プロパティを偽 (False) に設定している場合は、[最小化] または [最大化] コマンドはコントロール メニューでも使えません。一方、[移動] または [閉じる] コマンドは使えます。

注   ControlBox、BorderStyle、MaxButton、MinButton の各プロパティを設定しても、フォームの外観はデザイン時には変化しません。


関連項目

BorderStyle プロパティ

MaxButton プロパティ

MinButton プロパティ


ControlBox プロパティの対象

Form オブジェクト


DefaultExt プロパティ

対象

[ファイルを開く] ダイアログ ボックスまたは [ファイル名を付けて保存] ダイアログ ボックスのファイル拡張子の既定値を設定します。値の取得も可能です。

構文

object.DefaultExt [= string]

DefaultExt プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	ファイルの拡張子を指定する文字列式を指定します。

解説

このプロパティを使って、".TXT" や ".DOC" のようなファイル拡張子の既定値を指定できます。

拡張子を省略してファイルを保存すると、自動的にこのプロパティで指定した拡張子が、保存されるファイル名 (FileName プロパティ) に付加されます。


DefaultExt プロパティの対象

コモン ダイアログ (CommonDialog) コントロール


DialogTitle プロパティ

対象

ダイアログ ボックスのタイトル バーに表示する文字列を設定します。値の取得も可能です。

構文

object.DialogTitle [= title]

DialogTitle プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

title	ダイアログ ボックスの名前を指定する文字列式を指定します。

解説

このプロパティを使って、タイトル バーにダイアログ ボックスの名前を表示します。

注   [色の設定] ダイアログ ボックスまたは [フォントの指定] ダイアログ ボックスを表示するときは、コモン ダイアログ コントロールの DialogTitle プロパティの設定値は無効です。

[ファイルを開く] ダイアログ ボックスのタイトルの既定値は“ファイルを開く”です。[ファイル名を付けて保存] ダイアログ ボックスのタイトルの既定値は“ファイル名を付けて保存”です。


DialogTitle プロパティの対象

コモン ダイアログ (CommonDialog) コントロール


DrawWidth プロパティ

関連項目	例	対象

グラフィックス メソッドを使って描画する線の太さを設定します。値の取得も可能です。

構文

object.DrawWidth [= size]

DrawWidth プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

size	1 ～ 32,767 の範囲の数式で、描画する線の太さをピクセル単位で指定します。既定値は、1 (1 ピクセル) です。

解説

DrawWidth プロパティの値を大きくすると、描画される線もそれだけ太くなります。DrawWidth プロパティを 1 よりも大きい値に設定したときは、DrawStyle プロパティが 1 ～ 4 のいずれの値であっても画面には実線しか表示されず、DrawStyle プロパティの値は変化しません。一方、DrawWidth プロパティを 1 に設定したときは、DrawStyle プロパティの設定値に従って、DrawStyle プロパティで設定した線が描画されます。


関連項目

Circle メソッド

DrawMode プロパティ

DrawStyle プロパティ

FillColor プロパティ

FillStyle プロパティ

BackColor、ForeColor プロパティ


DrawWidth プロパティの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


FileTitle プロパティ

対象

開くファイル、または保存するファイルの、パスを含まない名前を設定します。値の取得も可能です。

構文

object.FileTitle

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

ユーザーがファイルを選択して、[ファイルを開く]、[ファイル名を付けて保存] の各ダイアログ ボックスで [OK] ボタンをクリックすると、FileTitle プロパティは、選択されたファイル名を格納します。

注   定数 cdlOFNNoValidate を設定した場合は、FileTitle プロパティは値を返しません。


FileTitle プロパティの対象

コモン ダイアログ (CommonDialog) コントロール


Filter プロパティ (コモン ダイアログ)

関連項目	対象

ダイアログ ボックスの [ファイルの種類] リスト ボックスに表示されるフィルタを設定します。値の取得も可能です。

構文

object.Filter [= description1 |filter1 |description2 |filter2...]

Filter プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

description	ファイルの種類を表す文字列式を指定します。

filter	ファイル名の拡張子を指定する文字列を指定します。

解説

フィルタを使うと、ダイアログ ボックスの [ファイル名] リスト ボックスに表示されるファイルの種類を指定することができます。たとえば、フィルタ“*.TXT”を選択すると、拡張子“.TXT”を持つすべてのファイルが表示されます。

Filter プロパティを使うと、ダイアログ ボックスに、選択できるフィルタの一覧を表示することができます。

パイプ記号 (  | ) (文字コード 124) によって引数 description と filter の値を区切ります。パイプ記号の前後にスペースは入れません。スペースを入れると、そのスペースも引数 description と filter に含まれます。

次のコードは、ユーザーがテキスト ファイルと、ビットマップまたはアイコンのグラフィック ファイルを選択できるようにするフィルタの例です。

Text (*.txt)|*.txt|Pictures(*.bmp;*.ico)|*.bmp;*.ico

1 つのダイアログ ボックスに対して 2 つ以上のフィルタを指定するときは、FilterIndex プロパティを使って、どちらのフィルタを既定値として表示するかを決定します。


Filter プロパティ (コモン ダイアログ) の対象

コモン ダイアログ (CommonDialog) コントロール


関連項目

FilterIndex プロパティ


FilterIndex プロパティ

関連項目	対象

[ファイルを開く]、[ファイル名を付けて保存] の各ダイアログ ボックスについてフィルタの既定値を設定します。値の取得も可能です。

構文

object.FilterIndex [= number]

FilterIndex プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	フィルタの既定値を示す数式を指定します。

解説

FilterIndex プロパティは、[ファイルを開く]、[ファイル名を付けて保存] ダイアログ ボックスで Filter プロパティを使って指定するフィルタの、既定値を指定します。

最初に定義されたフィルタのインデックスは 1 です。


FilterIndex プロパティの対象

コモン ダイアログ (CommonDialog) コントロール


関連項目

Filter プロパティ (コモン ダイアログ)


Flags プロパティ ([色の設定] ダイアログ ボックス)

関連項目	対象

[色の設定] ダイアログ ボックスのオプションを設定します。値の取得も可能です。

構文

object.Flags [= value]

Flags プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	[色の設定] ダイアログ ボックスの状態を設定する定数または数値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

cdCClFullOpen	&H2&	色を作成する部分を含んだダイアログ ボックス全体が表示されるようにします。このフラグを指定しない場合、ユーザーがユーザー定義色を作成するために [色の作成] ボタンを選択するまでこの部分は表示されません。

cdlCCPreventFullOpen	&H4&	[色の作成] ボタンを無効にして、ユーザーがユーザー定義色を作成できないようにします。

cdlCCRGBInit	&H1&	ダイアログ ボックスの色の初期値を設定します。

cdlCCShowHelp	&H8&	ダイアログ ボックスを起動して [ヘルプ] ボタンを表示します。

解説

ここで示した定数は オブジェクト ブラウザの MSComDlg オブジェクト ライブラリにも表示されます。

Or 演算子を使って複数のフラグを設定するには、次のように記述します。

CMDialog1.Flags = &H10& Or &H200&

次のように定数を加算しても、同じ結果になります。

CMDialog1.Flags = &H210&


関連項目

Or 演算子


Flags プロパティ ([色の設定] ダイアログ ボックス) の対象

コモン ダイアログ (CommonDialog) コントロール


Flags プロパティ ([ファイルを開く]、[ファイル名を付けて保存] ダイアログ ボックス)

関連項目	対象

[ファイルを開く]、[ファイル名を付けて保存] の各ダイアログ ボックスのオプションを設定します。値の取得も可能です。

構文

object.Flags [= value]

Flags プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	[ファイルを開く]、[ファイル名を付けて保存] の各ダイアログ ボックスの状態を設定する定数または数値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	数値	内容
cdlOFNAllowMultiselect	&H200&	[ファイル名] リスト ボックスで複数のファイルを選択できるようにします。 ユーザーは、実行時に Shift キーと上下の方向キーを使って複数のファイルを選択できます。複数のファイルが選択されると、FileName プロパティは選択されたすべてのファイルの名前の文字列を取得します。文字列中のファイル名は、スペースで区切られます。
cdlOFNCreatePrompt	&H2000&	ファイル保存時に指定したファイルが存在しないときは、新規にファイルを作成するかどうかを問い合わせます。このフラグを設定すると、cdlOFNPathMustExist フラグと cdlOFNFileMustExist フラグが自動的に設定されます。
cdlOFNExtensionDifferentt	&H400&	取得したファイル名の拡張子が DefaultExt プロパティによって指定された拡張子と異なることを示します。DefaultExt プロパティを Null 値にするか、拡張子が一致するか、ファイルが拡張子を持たないときは、このフラグは設定されません。このフラグの値は、ダイアログ ボックスを閉じるときに参照できます。
cdlOFNFileMustExist	&H1000&	既存のファイルだけ入力できるようにします。このフラグを設定すると、ユーザーが不正なファイル名を入力したときに警告メッセージを表示します。このフラグは cdlOFNPathMustExist フラグを自動的に設定します。
cdlOFNHideReadOnly	&H4&	[読み取り専用] チェック ボックスを表示しません。
cdlOFNNoChangeDir	&H8&	ダイアログ ボックスを開いたときに現在のディレクトリを表示します。
cdlOFNNoReadOnlyReturn	&H8000&	読み取り専用属性を持たず、読み取り専用ディレクトリにないファイルを取得します。
cdlOFNNoValidate	&H100&	コモン ダイアログ ボックスで、無効な文字を含むファイル名を指定することができます。
cdlOFNOverwritePrompt	&H2&	[ファイル名を付けて保存] ダイアログ ボックスで選択したファイルが既に存在している場合、そのファイルを上書きするかどうかを確認するメッセージ ボックスを表示します。
cdlOFNPathMustExist	&H800&	有効なパスだけを入力できるようにします。このフラグを設定すると、無効なパスを入力したときに警告メッセージを表示します。
cdlOFNReadOnly	&H1&	ダイアログ ボックスが作成されたときにあらかじめ [読み取り専用] チェック ボックスをオンにするように設定します。また、このフラグはダイアログ ボックスを閉じたときの [読み取り専用] チェック ボックスの状態をフラグとして使えます。
cdlOFNShareAware	&H4000&	共有違反エラーを無視するように設定します。
cdlOFNHelpButton	&H10&	ダイアログ ボックスに [ヘルプ] ボタンを表示します。
cdlOFNExplorer	&H80000&	エクスプローラに似たダイアログ ボックスを使用します (Windows 95 のみ)。
cdlOFNNoDereferenceLinks	&H100000&	ショートカット (シェルとのリンク) を実行しません (Windows 95 のみ)。
cdlOFNLongNames	&H200000&	長いファイル名を使用します (Windows 95 のみ)。
解説

ここで示した定数はオブジェクト ブラウザの MSComDlg オブジェクト ライブラリにも表示されます。

Or 演算子を使って複数のフラグを設定するには、次のように記述します。

CMDialog1.Flags = &H10& Or &H200&

次のように定数を加算しても、同じ結果になります。

CMDialog1.Flags = &H210&


関連項目

Const ステートメント

DefaultExt プロパティ

FileName プロパティ


Flags プロパティ ([ファイルを開く]、[ファイル名を付けて保存] ダイアログ ボックス) の対象

コモン ダイアログ (CommonDialog) コントロール


Flags プロパティ ([フォントの指定] ダイアログ ボックス)

関連項目	対象

[フォントの指定] ダイアログ ボックスのオプションを設定します。値の取得も可能です。

構文

object.Flags [= value]

Flags プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	[フォントの指定] ダイアログ ボックスの項目を指定する定数または数値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 flag の設定値は次のとおりです。

定数	数値	内容
cdlCFANSIOnly	&H400&	Windows の文字セットを使うフォントだけを選択できるようにします。このフラグを設定すると、シンボルだけしか持たないフォントは選択できなくなります。
cdlCFBoth	&H3&	利用可能なプリンタ フォントと画面フォントを表示します。hDC プロパティは、プリンタと関連付けられたデバイス コンテキストを識別します。
cdlCFEffects	&H100&	取り消し線、下線、色の設定を可能にします。
cdlCFFixedPitchOnly	&H4000&	固定ピッチ フォントだけを選択できるように指定します。
cdlCFForceFontExist	&H10000&	存在しないフォントやスタイルを選択したときにエラー メッセージを表示します。
cdlCFLimitSize	&H2000&	Min および Max プロパティによって指定される範囲のフォント サイズだけを選択できるようにします。
cdlCFNoSimulations	&H1000&	グラフィック デバイス インターフェイス (GDI) フォント のシミュレーションを行わないようにします。
cdlCFNoVectorFonts	&H800&	ベクタ フォントを選択できないようにします。
cdlCFPrinterFonts	&H2&	プリンタがサポートするフォントだけを表示します。フォントは hDC プロパティで指定します。
cdlCFScalableOnly	&H20000&	スケーラブル フォントだけを選択できるようにします。
cdlCFScreenFonts	&H1&	システムでサポートされる画面フォントだけを表示します。
cdlCFHelpButton	&H4&	ダイアログ ボックスに [ヘルプ] ボタンを表示します。
cdlCFTTOnly	&H40000&	TrueType フォントだけを選択できるようにします。
cdlCFWYSIWYG	&H8000&	プリンタと画面の両方で使用可能なフォントだけを選択できるようにします。このフラグを設定するときには、cdlCFBoth と cdlCFScalableOnly の 2 つのフラグも設定する必要があります。
解説

ここで示した定数はオブジェクト ブラウザの MSComDlg オブジェクト ライブラリにも表示されます。

フラグを定義することもできます。フラグを定義するには、スタートアップ フォームの宣言セクションでキーワード Const を使用します。

Const ReadOnly = &H00000001&

Const effects = &H00000001&

Or 演算子を使って複数のフラグを設定するには、次のように記述します。

CMDialog1.Flags = &H10& Or &H200&

次のように定数を加算しても、同じ結果になります。

CMDialog1.Flags = &H210&

注   [フォントの指定] ダイアログ ボックスを表示する前に、Flags プロパティに定数 cdlCFScreenFonts、定数 cdlCFPrinterFonts、または定数 cdlCFBoth を設定してください。設定していない場合、“フォントがありません”というエラーが発生します。


関連項目

hDC プロパティ

Max、Min プロパティ (コモン ダイアログ)

Or 演算子


Flags プロパティ ([フォントの指定] ダイアログ ボックス) の対象

コモン ダイアログ (CommonDialog) コントロール


Flags プロパティ ([印刷] ダイアログ ボックス)

関連項目	対象

[印刷] ダイアログ ボックスのオプションを設定します。値の取得も可能です。

構文

object.Flags [= value]

Flags プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	[印刷] ダイアログ ボックスの項目を指定する定数または数値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	数値	内容
cdlPDAllPages	&H0&	[全ページ] オプション ボタンの状態を設定します。値の取得も可能です。
cdlPDCollate	&H10&	[部単位で印刷] チェック ボックスの状態を設定します。値の取得も可能です。
cdlPDDisablePrintToFile	&H80000&	[ファイルへ出力] チェック ボックスを無効にします。
cdlPDHidePrintToFile	&H100000&	[ファイルへ出力] チェック ボックスを非表示にします。
cdlPDNoPageNums	&H8&	[ページ指定] オプション ボタンと [ページから] および [ページまで] ボックスを無効にします。
cdlPDNoSelection	&H4&	[選択した部分] オプション ボタンを無効にします。
cdlPDNoWarning	&H80&	通常使うプリンタがないときでも、警告メッセージを表示しないようにします。
cdlPDPageNums	&H2&	[ページ指定] オプション ボタンの状態を設定します。値の取得も可能です。
cdlPDPrintSetup	&H40&	システムに [印刷] ダイアログ ボックスではなく [プリンタの設定] ダイアログ ボックスを表示させます。
cdlPDPrintToFile	&H20&	[ファイルへ出力] チェック ボックスの状態を設定します。値の取得も可能です。
cdlPDReturnDC	&H100&	ダイアログ ボックスで選択されたプリンタのデバイス コンテキストを取得します。デバイス コンテキストはダイアログ ボックスの hDC プロパティで取得します。
cdlPDReturnIC	&H200&	選択されたプリンタに関する情報コンテキストを取得します。情報コンテキストによって、デバイス コンテキストを作成せずにデバイスに関する情報が得られます。情報コンテキストはダイアログ ボックスの hDC プロパティで取得します。
cdlPDReturnDefault	&H400&	通常使うプリンタ名を返します。
cdlPDSelection	&H1&	[選択した部分] オプション ボタンを選択された状態にします。値の取得も可能です。cdlPDPageNums と cdlPDSelection のどちらも指定しない場合は、[全ページ] オプション ボタンが選択されている状態になります。
cdlPDHelpButton	&H800&	ダイアログ ボックスに [ヘルプ] ボタンを表示します。
cdlPDUseDevModeCopies	&H40000&	このフラグを設定すると、プリンタ ドライバが複数印刷をサポートしない場合、[部数] ボックスは無効になります。また、プリンタ ドライバが複数印刷をサポートする場合、ダイアログ ボックスは Copies プロパティに必要な部数を格納します。
解説

ここで示した定数はオブジェクト ブラウザの MSComDlg オブジェクト ライブラリにも表示されます。

フラグを定義することもできます。フラグを定義するには、スタートアップ フォームの宣言セクションでキーワード Const を使用します。

Const ReadOnly  = &H00000001&

Const Effects    = &H00000100&

Or 演算子を使って複数のフラグを設定するには、次のように記述します。

CMDialog1.Flags = &H10& Or &H200&

次のように定数を加算しても、同じ結果になります。

CMDialog1.Flags = &H210&


Flags プロパティ ([印刷] ダイアログ ボックス) の対象

コモン ダイアログ (CommonDialog) コントロール


関連項目

Copies プロパティ

hDC プロパティ

Or 演算子


FontBold、FontItalic、FontStrikethru、FontUnderline プロパティ

関連項目	例	対象

フォントに太字 (ボールド)、斜体 (イタリック)、取り消し線、下線の各スタイルを設定します。値の取得も可能です。

注   FontBold、FontItalic、FontStrikethru、FontUnderline の各プロパティは、コモン ダイアログ (CommonDialog) コントロールでの使用、および Microsoft Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ Font オブジェクトやそのプロパティを使用してください。ただし、Font オブジェクトはコモン ダイアログ コントロールでは使用できません。

構文

object.FontBold [= boolean]
object.FontItalic [= boolean]
object.FontStrikethru [= boolean]
object.FontUnderline [= boolean]

FontBold、FontItalic、FontStrikethru、および FontUnderline の各プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	フォント スタイルを指定するブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	フォントに指定されたスタイルを設定します。これは、コモン ダイアログ (CommonDialog) コントロール以外の FontBold プロパティの既定値です。

False	フォントのスタイルの指定を解除します。これは FontItalic、FontStrikethru、FontUnderline の各プロパティと、コモン ダイアログ コントロールの FontBold プロパティの既定値です。

解説

これらの Fontxxx プロパティは、デザイン時にプロパティ ウィンドウで設定するか、実行時にコードで設定します。フォーム、ピクチャ ボックス (PictureBox) コントロール、Printer オブジェクトの場合、以前に描画されたグラフィックス出力やプリンタ出力が Fontxxx プロパティの設定によって変化することはありませんが、それ以外のコントロールではプロパティの変更と同時に画面フォントも変化します。

コモン ダイアログ コントロールで Fontxxx プロパティを使うには、定数 vbCFEffects を設定する必要があります。

注   Visual Basic で利用できるフォントの種類は、システム構成、ディスプレイおよびプリンタの種類 (プリンタ ドライバ) などに応じて変化します。Fontxxx プロパティが設定できるのは、実際に存在しているフォントに限られます。通常、FontSize、FontBold、FontItalic、FontStrikethru、FontTransparent、FontUnderline の各プロパティでフォントのサイズやスタイル属性の設定をする前に、FontName プロパティを設定する必要があります。また、8 ポイント未満のフォント サイズを設定する場合には確認が必要です。フォントによっては 8 ポイント未満のフォント サイズをサポートしていないものもあるため、FontSize プロパティに 8 ポイント未満のフォントを設定すると自動的に別のフォントや別の大きさに変更される場合があります。このような状況を避けるために、8 ポイント未満のフォント サイズを指定するときは、FontSize プロパティを設定した後に FontName プロパティや FontSize プロパティの値をもう一度確認してください。


関連項目

Font オブジェクト

FontName プロパティ

FontSize プロパティ

TextHeight メソッド

TextWidth メソッド


FontBold、FontItalic、FontStrikethru、FontUnderline プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

コモン ダイアログ (CommonDialog) コントロール

データ (Data) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト

テキスト ボックス (TextBox) コントロール


FontName プロパティ

関連項目	例	対象

コントロールに表示されるテキストのフォント、あるいは実行時に描画または印刷操作で使われるフォントを設定します。値の取得も可能です。

注   FontName プロパティは、コモン ダイアログ (CommonDialog) コントロールでの使用、および Microsoft Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ Font オブジェクトやそのプロパティを使用してください。ただし、Font オブジェクトはコモン ダイアログ コントロールでは使用できません。

構文

object.FontName [= font]

FontName プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

font	使用するフォント名を示す文字列式を指定します。

解説

このプロパティの既定値はシステムによって決まります。Visual Basic で使用できるフォントは、システムの設定、ディスプレイ、プリンタによって変わります。フォントに関連する各プロパティの設定値は、使用可能なフォントがサポートしている値に限られます。

通常、FontSize、FontBold、FontItalic、FontStrikethru、FontUnderline の各プロパティを使ってサイズやスタイル属性を設定する前に FontName プロパティの設定を行います。

注   実行時に FontCount、Fonts プロパティを参照すると、システムで使用できるフォントに関する情報を取得できます。


関連項目

FontBold、FontItalic、FontStrikethru、FontUnderline プロパティ

FontCount プロパティ

Fonts プロパティ

FontSize プロパティ

Print メソッド

TextHeight メソッド

TextWidth メソッド


FontName プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

コモン ダイアログ (CommonDialog) コントロール

データ (Data) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト

テキスト ボックス (TextBox) コントロール


FontSize プロパティ

関連項目	例	対象

コントロールに表示されるテキストのフォント、あるいは実行時の描画または印刷操作で使われるフォントのサイズを設定します。値の取得も可能です。

注   FontSize プロパティは、コモン ダイアログ (CommonDialog) コントロールでの使用、およびMicrosoft Visual Basic の以前のバージョンとの互換性を保つために、サポートされています。できるだけ Font オブジェクトやそのプロパティを使用してください。ただし、Font オブジェクトはコモン ダイアログ コントロールでは使用できません。

構文

object.FontSize [= points]

FontSize プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

points	フォントのサイズを示す数式を、ポイント単位で指定します。

解説

FontSize プロパティは、表示するテキストのフォントのサイズを設定したいときに使います。既定のフォント サイズは、使用しているシステムによって決まります。既定値を変更するには、ポイント単位でフォント サイズを指定します。

FontSize プロパティに指定できる値の最大値は 2,160 ポイントです。

注   Visual Basic で使用可能なフォントは、使用しているシステムの設定、ディスプレイ、プリンタによって異なります。フォントに関連する各プロパティの設定値は、使用可能なフォントがサポートしている値に限られます。

通常、FontSize、FontBold、FontItalic、FontStrikethru、FontTransparent、FontUnderline の各プロパティを使ってフォントのサイズとスタイル属性を設定する前に、FontName プロパティを使ってフォント名を設定する必要があります。また、8 ポイント未満のフォント サイズを設定する場合には確認が必要です。フォントによっては 8 ポイント未満のフォント サイズをサポートしていないものもあるため、FontSize プロパティに 8 ポイント未満のフォントを設定すると自動的に別のフォントや別のサイズに変更される場合があります。このような状況を避けるために、8 ポイント未満のフォント サイズを指定するときは、FontSize プロパティを設定した後に FontName プロパティや FontSize プロパティの値をもう一度確認してください。


関連項目

FontBold、FontItalic、FontStrikethru、FontUnderline プロパティ

FontCount プロパティ

FontName プロパティ

Fonts プロパティ


FontSize プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

コモン ダイアログ (CommonDialog) コントロール

データ (Data) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト

テキスト ボックス (TextBox) コントロール


FromPage、ToPage プロパティ

対象

[ページから]、[ページまで] の各ボックスの数値を設定します。値の取得も可能です。

構文

object.FromPage [= number]
object.ToPage [= number]

FromPage プロパティおよび ToPage プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	印刷する最初のページと最後のページを指定する数式を指定します。

解説

FromPage、ToPage の各プロパティは cdlPageNums フラグが設定されているときだけ有効です。


FromPage、ToPage プロパティの対象

コモン ダイアログ (CommonDialog) コントロール ([印刷] ダイアログ ボックス)


Height、Width プロパティ

関連項目	例	対象

オブジェクトの大きさ、または DB グリッド (DBGrid) コントロールの Columns オブジェクトの幅を設定します。値の取得も可能です。Printer、Screen の各オブジェクトでは、デザイン時には使えません。

構文

object.Height [= number]
object.Width [= number]

Height、Width プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	オブジェクトの寸法を指定する数式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

大きさを表す各数値は object によって異なり、次のように計算されます。

フォームの場合には、境界線やタイトル バーを含む、一番外側の高さと幅を指定します。

コントロールの場合には、異なる境界線幅を持つコントロールが整列するように、コントロールの境界線の中央からの幅が指定されます。これらのプロパティは設定するコントロールが配置されているコンテナのスケール単位を使用します。

Printer オブジェクトの場合には、使用するプリンタで設定されている、用紙の実際の大きさが使われます。デザイン時には使えません。実行時には値の取得のみ可能です。

Screen オブジェクトの場合には、画面の幅と高さです。デザイン時には使えません。実行時には値の取得のみ可能です。

Picture オブジェクトの場合には、0.01 ミリメートル単位 (HiMetric) でのピクチャの高さと幅です。

解説

フォーム、Printer オブジェクト、Screen オブジェクトのこれらのプロパティの値は必ず twip 単位で設定します。フォームやコントロールでは、そのオブジェクトの大きさが、ユーザーの操作やコードによって変更されると、これらのプロパティの値も変化します。すべてのオブジェクトで、これらのプロパティの最大値はプログラムの動作環境によって異なります。

Height、Width プロパティをサポートしないプリンタ ドライバに対して設定してもエラーにはなりませんが、用紙のサイズは変更されません。一定の値だけしか指定できないプリンタ ドライバに対して Height、Width プロパティを設定した場合もエラーにはならず、各プロパティはドライバが許す範囲の値に設定されます。たとえば、Height プロパティに 150 を設定しても、ドライバはそれを 144 に設定することがあります。

Height、Width、Left、Top の各プロパティは、オブジェクトのサイズ変更や移動などでオブジェクト全体の大きさを調べたり、変更したりする場合に使用します。オブジェクト内に他のオブジェクトを表示したり移動したりする場合など、オブジェクト内部のサイズを参照する場合は ScaleLeft、ScaleTop、ScaleHeight、ScaleWidth の各プロパティを使用します。

注   Style プロパティを 0 (ドロップダウン コンボ) または 2 (ドロップダウン リスト) に設定したドライブ リスト ボックス (DriveListBox) コントロールまたはコンボ ボックス (ComboBox) コントロールでは、Height プロパティの変更はできません。

DB グリッド コントロールの Columns オブジェクトの場合、DB グリッド コントロールを含むオブジェクトの単位で、Width プロパティを指定します。Width プロパティの既定値は、DB グリッド コントロールの DefColWidth プロパティの値です。

Picture オブジェクトの場合は、ScaleX メソッドと ScaleY メソッドを使って、0.01 ミリメートル単位 (HiMetric) から必要なスケールに変換してください。


関連項目

DB グリッド (DBGrid) コントロール

DefColWidth プロパティ

Left、Top プロパティ

Move メソッド

PaperSize プロパティ

ScaleHeight、ScaleWidth プロパティ

ScaleLeft、ScaleTop プロパティ

ScaleX、ScaleY メソッド

Width # ステートメント


Height、Width プロパティの対象

チェック ボックス (CheckBox) コントロール

Column オブジェクト

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

データ (Data) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

Picture オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト

Screen オブジェクト

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール


HelpCommand プロパティ

関連項目	対象

表示されるオンライン ヘルプのトピックの種類を設定します。値の取得も可能です。

構文

object.HelpCommand [= value]

HelpCommand プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ヘルプの種類を指定する定数や数値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容
cdlHelpCommand	&H102	ヘルプ マクロを実行します。
cdlHelpContents	&H3	.HPJ ファイルの [OPTION] セクションの [Contents] オプションの定義にしたがってヘルプの目次トピックを表示します。
cdlHelpContext	&H1	HelpContext プロパティで指定されているコンテキスト番号を持つヘルプ トピックを表示します。
cdlHelpContextPopup	&H8	.HPJ ファイルの [MAP] セクションで定義されたコンテキスト番号によって識別される特定のヘルプ トピックをポップアップ ウィンドウに表示します。
cdlHelpForceFile	7H9	WINHELP.EXE が正しいヘルプ ファイルを表示するようにします。正しいヘルプ ファイルが表示されている場合は、何も実行しません。別のヘルプ ファイルが表示されているときに、WINHELP.EXE は正しいファイルを開きます。
cdlHelpOnHelp	&H4	アプリケーションのヘルプの使い方についてのヘルプ トピックを表示します。
cdlHelpIndex	&H3	指定されたヘルプ ファイルのインデックスを表示します。この設定はインデックスが 1 つしかないヘルプ ファイルでのみ有効です。
cdlHelpKey	&H101	特定のキーワードのヘルプを表示します。この設定を使う場合は、HelpKey プロパティを使ってキーワードを指定しなければなりません。
cdlHelpPartialKey	&H105	引数 dwData で検索したキーワードが一致したトピックを表示します。一致するキーワードが 2 件以上あるときは、[検索] ダイアログ ボックスが表示され、[ジャンプ] リスト ボックスに見つかったトピックが表示されます。一致するキーワードがないときは、[検索] ダイアログ ボックスが表示されます。キーワードを指定せずに [検索] ダイアログ ボックスを表示させるには、長さ 0 の文字列を指す長整数型 (Long) のポインタを使います。
cdlHelpQuit	&H2	指定されたヘルプ ファイルがもう使われていないことをヘルプ アプリケーションに通知します。
cdlHelpSetContents	7H5	ユーザーが F1 キーを押したときに、どの内容のトピックが表示されるかを決定します。
cdlHelpSetIndex	&H5	HelpContext プロパティで指定したコンテキスト番号を HelpFile プロパティで指定されるヘルプ ファイルの現在のインデックスとして設定します。ユーザーが別のヘルプ ファイルにアクセスするまでこのインデックスが現在のインデックスとなります。複数のインデックスを持つヘルプ ファイルだけに設定できます。
解説

HelpCommand プロパティに関連する定数は、オブジェクト ブラウザの MSComDlg オブジェクト ライブラリにも表示されます。


HelpCommand プロパティの対象

コモン ダイアログ (CommonDialog) コントロール


関連項目

HelpContext プロパティ (コモン ダイアログ)

HelpFile プロパティ

HelpKey プロパティ


HelpContext プロパティ (コモン ダイアログ)

関連項目	対象

要求されるヘルプ トピックのコンテキスト番号を設定します。

構文

object.HelpContext [= value]

HelpContext プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	要求されたヘルプ トピックのコンテキスト番号を指定する文字列式を指定します。

解説

HelpCommand プロパティと一緒にこのプロパティを使って (HelpCommand プロパティに cdlContext を設定)、表示するヘルプ トピックを指定します。


HelpContext プロパティ (コモン ダイアログ)の対象

コモン ダイアログ (CommonDialog) コントロール


関連項目

HelpCommand プロパティ


HelpKey プロパティ

関連項目	対象

要求されるヘルプ トピックのキーワードを設定します。値の取得も可能です。

構文

object.HelpKey [= string]

HelpKey プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	ヘルプ トピックを識別するキーワードを示す文字列式を指定します。

解説

HelpCommand プロパティと一緒にこのプロパティを使って (HelpCommand プロパティに定数 cdlHelpKey を設定)、表示するヘルプ トピックを指定します。


HelpKey プロパティの対象リスト

コモン ダイアログ (CommonDialog) コントロール


関連項目

HelpCommand プロパティ


Icon プロパティ

関連項目	例	対象

実行時に、フォームを最小化したときに表示されるアイコンを設定します。値の取得も可能です。

構文

object.Icon

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Icon プロパティは、実行時にユーザーが最小化できる (MinButton プロパティが真 (True) に設定されている) フォームに、アイコンを割り当てる場合に使います。フォームが持っている機能を表現するようなアイコンを割り当てると効果的です。

アイコンは、デザイン時にプロパティ ウィンドウの Icon プロパティを使って指定します。アイコンとして指定するファイルは、ファイル名の拡張子が .ICO のアイコン ファイル形式である必要があります。特にアイコンを指定しなかった場合は、Visual Basic で用意しているフォームを示すアイコンが割り当てられます。

\ICONS ディレクトリのアイコン ライブラリには、利用できるアイコンが豊富に用意されています。実行可能ファイルのアイコンを設定するには、そのアプリケーションのいずれかのフォームの Icon プロパティに、アイコンを設定します。

注   フォームのアイコンを表示するには、そのフォームを最小化する必要があります。このとき BorderStyle プロパティは 1 (固定 (実線)) または 2 (可変) に、MinButton プロパティは真 (True) に設定してください。

実行時に、あるオブジェクトの Icon プロパティを他のオブジェクトの DragIcon プロパティまたは Icon プロパティとして設定することもできます。また、LoadPicture 関数の戻り値をアイコンとして代入することも可能です。たとえば、引数を省略した LoadPicture 関数を使って空のアイコンをフォームに代入しておき、実行中に別のアイコンを設定できます。


関連項目

LoadPicture 関数


Icon プロパティの対象リスト

Form オブジェクト

MDIForm オブジェクト


InitDir プロパティ

対象

ダイアログ ボックスを表示するとき、最初に表示されるディレクトリを設定します。値の取得も可能です。

構文

object.InitDir [= string]

InitDir プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	最初に表示するディレクトリを示す文字列式を指定します。

解説

このプロパティを指定しない場合は、現在のディレクトリが使われます。


InitDir プロパティの対象

コモン ダイアログ (CommonDialog) コントロール ([ファイルを開く]、[ファイル名を付けて保存] ダイアログ ボックス)


Interval プロパティ

関連項目	例	対象

タイマー (Timer) コントロールの Timer イベントが発生する時間間隔をミリ秒単位で設定します。値の取得も可能です。

構文

object.Interval [= milliseconds]

Interval プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

milliseconds	ミリ秒単位の数値を示す数式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 milliseconds の設定値は次のとおりです。

設定値	内容

0	(既定値) タイマー コントロールを使用できないようにします。

1 ～ 65,535 	Timer イベントの発生間隔をミリ秒単位で設定します。Timer イベントが発生するには、タイマー コントロールの Enabled プロパティが真 (True) に設定されている必要があります。設定値のデータ型は、長整数型 (Long) です。10,000 ミリ秒は 10 秒に相当し、最長の設定である 65,535 ミリ秒は 1 分間よりも少し長い時間間隔になります。

解説

Interval プロパティはデザイン時と実行時のどちらでも設定できます。Interval プロパティを設定する場合、次の点に注意してください。

タイマー コントロールのオン/オフは Enabled プロパティによって設定されます。つまり、Enabled プロパティが真 (True) のときはタイマーはオンになり、偽 (False) のときはタイマーはオフになります。また、タイマーの設定が有効になると、常に Interval プロパティの設定値から秒読みが開始されます。

タイマー イベント プロシージャは、Interval プロパティの設定時間が経過するたびに、繰り返し実行されます。

注   Interval プロパティにはミリ秒単位で時間を設定しますが、実際のイベントの発生間隔はハードウェアに依存します。


関連項目

Enabled プロパティ


Interval プロパティの対象

タイマー (Timer) コントロール


Left、Top プロパティ

関連項目	例	対象

Left プロパティ

オブジェクトの内側の左端とコンテナの左端の間隔を設定します。値の取得も可能です。

Top プロパティ

オブジェクトの内側の上端とコンテナの上端の間隔を設定します。値の取得も可能です。

構文

object.Left [= value]
object.Top [= value]

Left プロパティおよび Top プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	オブジェクトの間隔を示す数式を指定します。

解説

フォームでは、Left プロパティおよび Top プロパティは常に twip 単位で示されます。コントロールでは、そのコンテナの座標系を使って示されます。オブジェクトがユーザーの操作、コードの記述によって移動されると、これらのプロパティの値も変化します。タイマー (Timer) コントロールの場合は、これらのプロパティは実行時には設定できません。

Left プロパティおよび Top プロパティの値として、単精度浮動小数点数を設定することができます。

Left プロパティおよび Top プロパティや、関連するプロパティである Height プロパティおよび Width プロパティは、オブジェクトのサイズ変更や移動などの、オブジェクト自体の位置や領域の計算が必要な場合に使用します。これに対して ScaleLeft、ScaleTop、ScaleHeight、ScaleWidth の各プロパティは、オブジェクト内の別のオブジェクトの描画や移動など、オブジェクト内部の領域の計算が必要なときに使います。スケールに関係するプロパティは、フォーム、ピクチャ ボックス (PictureBox) コントロール、Printer オブジェクトに対してのみ適用されます。


関連項目

Left 関数

Move メソッド

ScaleHeight、ScaleWidth プロパティ

ScaleLeft、ScaleTop プロパティ

ScaleMode プロパティ


Left、Top プロパティの対象

チェック ボックス (CheckBox) コントロール

Column オブジェクト

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

コモン ダイアログ (CommonDialog) コントロール

データ (Data) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール

タイマー (Timer) コントロール


List プロパティ

関連項目	例	対象

コントロールのリスト部分の項目を設定します。値の取得も可能です。リスト部分に含まれる各項目は、文字列配列に格納されています。List プロパティは、デザイン時には設定できません。ディレクトリ リスト ボックス (DirListBox)、ドライブ リスト ボックス (DriveListBox)、ファイル リスト ボックス (FileListBox) コントロールの場合、実行時には値の取得のみ可能です。また、コンボ ボックス (ComboBox)、リスト ボックス (ListBox) コントロールの場合は、実行時に値の取得および設定ともに可能です。

構文

object.List(index) [= string]

List プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	リスト内の特定の項目の番号を指定します。

string	リストの項目を示す文字列式を指定します。

解説

List プロパティは、リスト内の項目にアクセスするときに使われます。

ディレクトリ リスト ボックス (DirListBox) 以外のすべてのコントロールでは、配列のインデックスは 0 から始まり、最大値は“項目数 -1”です。項目数は、ListCount プロパティで調べることができます。

ディレクトリ リスト ボックス コントロールでは、実行時にコントロールが作成された時点のディレクトリとサブディレクトリの状態に従って、インデックスが割り当てられます。現在展開されているディレクトリのインデックスは、-1 になります。また、展開されたディレクトリよりも上の階層のディレクトリには、階層の低い順から順番に負の値が割り当てられます。つまり、すぐ上の階層のディレクトリが -2、その上の階層のディレクトリが -3、という順番で割り当てられます。一方、展開されているディレクトリの下のディレクトリには、0 ～項目数 -1 の値が順番に割り当てられます。

コンボ ボックス、リスト ボックス コントロールを生成した直後は、何も項目がない状態です。一方、ファイル関係のコントロールでは、実行時にそのコントロールが作成された時点のファイル システムの状態が初期値として読み込まれます。

ディレクトリ リスト ボックス コントロールの場合、すべてのディレクトリを表示して、-n ～項目数 -1 のインデックスを割り当てます。項目数は、ListCount プロパティで調べることができます。

ドライブ リスト ボックス コントロールの場合、接続されているドライブの一覧を表示します。

ファイル リスト ボックス コントロールの場合、その時点で展開されているディレクトリに含まれるファイルのうち、Pattern プロパティの設定に一致するファイルの一覧を表示します。パスは含まれません。

List プロパティは、ListCount プロパティおよび ListIndex プロパティと組み合わせて利用されます。

ディレクトリ リスト ボックス 以外のコントロールでは、0 ～項目数 -1 の範囲の値でリストの項目を返します。ディレクトリ リスト ボックス コントロールでは、-n ～項目数 -1 の範囲の値で現在展開されているディレクトリの上の階層のディレクトリとすべてのサブディレクトリを返します。ここで、n は現在展開されているディレクトリの上に存在するディレクトリの階層の数を示します。

注   コンボ ボックス コントロール、リスト ボックス コントロールに項目を追加するには、AddItem メソッドを使い、項目を削除するには RemoveItem メソッドを使います。リスト内の項目を文字コード順に並べるには、項目を追加する前にコントロールの Sorted プロパティを真 (True) に設定しておきます。

宣言セクションで Option Base = 1 と宣言しても、コントロール内の要素に付けられる順番は変化しません。最初の要素は常に 0 になります。

リスト ボックス コントロールにおいて、List プロパティのインデックスとして実際には存在しない範囲の値を設定すると、長さ 0 の文字列が返されます。たとえば、コンボ ボックス やリスト ボックス コントロールでは List(-1) は長さ 0 の文字列を返します。


関連項目

AddItem メソッド

ListCount プロパティ

ListIndex プロパティ

Pattern プロパティ

RemoveItem メソッド

Sorted プロパティ


List プロパティの対象

コンボ ボックス (ComboBox) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

リスト ボックス (ListBox) コントロール


ListCount プロパティ

関連項目	例	対象

コントロールの現在の項目数を返します。

構文

object.ListCount

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

ListCount プロパティの内容は、次のようにコントロールによって異なります。

コンボ ボックス (ComboBox)、リスト ボックス (ListBox) コントロールの場合、リストに含まれる項目数を表します。

ディレクトリ リスト ボックス (DirListBox) コントロールの場合、そのとき展開されているディレクトリに含まれるサブディレクトリ数を表します。

ドライブ リスト ボックス (DriveListBox) コントロールの場合、接続されているドライブ数を表します。

ファイル リスト ボックス (FileListBox) コントロールの場合、その時点で展開されているディレクトリに含まれるファイルのうち、Pattern プロパティに一致するファイルの数を表します。

項目が何も選択されていなければ、ListIndex プロパティの値は -1 になります。リストの最初の項目は ListIndex = 0 です。ListCount プロパティは常に ListIndex プロパティの最大値よりも 1 だけ大きい値になります。


関連項目

AddItem メソッド

List プロパティ

ListIndex プロパティ

Pattern プロパティ

RemoveItem メソッド


ListCount プロパティの対象

コンボ ボックス (ComboBox) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

リスト ボックス (ListBox) コントロール


ListIndex プロパティ

関連項目	例	対象

コントロールのリスト部分で、現在選択されている項目のインデックスを設定します。値の取得も可能です。デザイン時には使えません。

構文

object.ListIndex [= index]

ListIndex プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	現在の項目を示す数式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 index の設定値は次のとおりです。

設定値	内容

-1	(コンボ ボックス (ComboBox)、ディレクトリ リスト ボックス (DirListBox)、ドライブ リスト ボックス (DriveListBox) コントロールの既定値) 現在選択されている項目がないことを示します。コンボ ボックス コントロールでは、リスト部分の項目の選択ではなく、テキスト ボックス部分へ直接入力が行われたことを示します。ディレクトリ リスト ボックス コントロールでは、現在のパスのインデックスを示します。ドライブ リスト ボックス コントロールでは、実行時にコントロールが作成された時点で選択されていたドライブのインデックスを示します。

n	(ファイル リスト ボックス (FileListBox)、リスト ボックス (ListBox) コントロールの既定値) 現在選択されている項目のインデックスを示します。

解説

List(List1.ListIndex) という式は、現在選択されている項目の文字列を返します。

リストの最初の項目は ListIndex = 0 です。

複数の項目を選択できるコントロールでは、ListIndex プロパティの動作は、選択されている項目の数によって異なります。項目を 1 つだけ選択している場合、ListIndex プロパティはその項目のインデックスを返します。複数の項目を選択している場合、ListIndex プロパティは、フォーカスを持っている項目のインデックスを返します。ListCount プロパティは常に ListIndex プロパティの最大値よりも 1 だけ大きい値になります。


関連項目

AddItem メソッド

Drive プロパティ

List プロパティ

ListCount プロパティ

Path プロパティ

RemoveItem メソッド


ListIndex プロパティの対象

コンボ ボックス (ComboBox) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

リスト ボックス (ListBox) コントロール


Max、Min プロパティ (コモン ダイアログ)

対象

Max、Min プロパティは、次のダイアログ ボックスに対して設定することができます。

[フォントの指定] ダイアログ ボックス

[サイズ] リスト ボックスに表示されるフォント サイズの最小値と最大値を設定します。

[印刷] ダイアログ ボックス

印刷領域として使用可能な最小値と最大値を設定します。

構文

object.Min [= points]
object.Max [= points]
object.Min [= number ]
object.Max [= number ]

Max、Min プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

points	フォント サイズの最小値と最大値を示す数式を指定します。

number	ページ番号の最小値と最大値を示す数式を指定します。

解説

[フォントの指定] ダイアログ ボックスで Max、Min プロパティを使うときは、LimitSize フラグを設定する必要があります。

[印刷] ダイアログ ボックスで、ユーザーが [ページから] ボックスで指定できるページの最小値を指定するには、Min プロパティを使います。ユーザーが [ページまで] ボックスで指定できるページの最大値を指定するには、Max プロパティを使います。


Max、Min プロパティ (コモン ダイアログ)の対象

コモン ダイアログ (CommonDialog) コントロール


MaxButton プロパティ

関連項目	対象

フォームの右上隅に最大化ボタンを表示するかどうかを示す値を設定します。値の取得も可能です。

構文

object.MaxButton

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

MaxButton プロパティの設定値は次のとおりです。

設定値	内容

True	(既定値) フォームに最大化ボタンを表示します。

False	フォームに最大化ボタンを表示しません。

解説

最大化ボタンをクリックすると、フォーム ウィンドウは拡大されて画面全体に表示されます。最大化ボタンを表示するには、MaxButton プロパティを真 (True) に設定するとともにフォームの BorderStyle プロパティが 1 (固定 (実線)) または 2 (可変) に設定されている必要があります。

フォームが最大化されると、最大化ボタンは自動的に元のサイズに戻すボタンに変わります。フォームが元のサイズに戻ると、元のサイズに戻すボタンは自動的に最大化ボタンに戻ります。

MaxButton、MinButton、BorderStyle、ControlBox の各プロパティの設定は、実行時に初めて反映されます。

注   実行時にフォームを最大化にすると、Resize イベントが発生します。また、WindowState プロパティを使ってウィンドウの表示状態を変更することもできます。

WindowState プロパティを 2 (最大化) に設定すると、MaxButton プロパティおよび BorderStyle プロパティの設定とは無関係にフォームは最大化されます。


関連項目

ControlBox プロパティ

MinButton プロパティ


MaxButton プロパティの対象

Form オブジェクト


MinButton プロパティ

関連項目	対象

フォームの右上隅に最小化ボタンを表示するかどうかを示す値を設定します。値の取得も可能です。

構文

object.MinButton

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

MinButton プロパティの設定値は次のとおりです。

設定値	内容

True	(既定値) フォームに最小化ボタンを表示します。

False	フォームに最小化ボタンを表示しません。

解説

最小化ボタンを押すと、フォーム ウィンドウは縮小されてアイコンとして表示されます。最小化ボタンを表示するには、MinButton プロパティを真 (True) に設定するとともに、フォームの BorderStyle プロパティが 1 (固定(実線)) または 2 (可変) に設定されている必要があります。

MaxButton、MinButton、BorderStyle、ControlBox の各プロパティの設定は、実行時に初めて反映されます。

注   実行時にフォームを最小化すると、Resize イベントが発生します。また、WindowState プロパティを使ってウィンドウの表示状態を変更することもできます。WindowState プロパティを 1 (最小化) に設定すると、MinButton プロパティおよび BorderStyle プロパティの設定とは無関係にフォームは最小化されます。


関連項目

ControlBox プロパティ

MaxButton プロパティ


MinButton プロパティの対象

Form オブジェクト


Picture プロパティ

関連項目	例	対象

コントロール内に表示されるグラフィックスを設定します。OLE コンテナ (OLE) コントロールでは、デザイン時には使えません。実行時には値の取得のみ可能です。

構文

object.Picture [= picture]

Picture プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

picture	グラフィックスを含むファイルを示す文字列式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 picture の設定値は次のとおりです。

設定値	内容

(なし)	(既定値) ピクチャはありません。

(ビットマップ、アイコン、メタファイル)	グラフィックスを指定します。デザイン時にプロパティ ウィンドウでグラフィックスを指定してロードすることができます。また、実行時にはビットマップ、アイコン、メタファイルのいずれかに対して LoadPicture 関数を使うことによって、このプロパティを設定できます。

解説

デザイン時に Picture プロパティを使ってフォームにグラフィックスをロードした場合、そのグラフィックスはフォームと一緒に保管、ロードされます。また、実行可能ファイルを生成すると、生成されたファイルにはイメージも含まれます。一方、グラフィックスを実行時にロードする場合は、そのグラフィックスはそのアプリケーションには保管されません。この場合、フォームまたはピクチャ ボックス (PictureBox) コントロールのグラフィックスをファイルに保管するには、SavePicture ステートメントを実行してください。

注   実行時には、Picture プロパティの設定を他のすべてのオブジェクトの DragIcon、Icon、Image、Picture の各プロパティに設定することができます。Picture プロパティへの代入は直接プロパティを指定して行う必要があります。変数に割り当てることはできません。


関連項目

AutoRedraw プロパティ

Icon プロパティ

LoadPicture 関数

SavePicture ステートメント


Picture プロパティの対象

Form オブジェクト

イメージ (Image) コントロール

MDIForm オブジェクト

OLE コンテナ (OLE) コントロール

ピクチャ ボックス (PictureBox) コントロール


PrinterDefault プロパティ

対象

ユーザーが [プリンタの設定] ダイアログ ボックスで指定した設定を、システムの既定のプリンタの設定として指定するかどうかを設定します。値の取得も可能です。

構文

object.PrinterDefault [= value]

PrinterDefault プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ユーザーの設定を、システムの既定のプリンタの設定に変更するかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

True	[プリンタの設定] ダイアログ ボックスで設定した内容 (プリンタの選択、印刷方向など) に従って、システムの既定のプリンタ設定を変更します。Windows NT オペレーティング システムの場合、この情報はレジストリに格納されます。

False	[プリンタの設定] ダイアログ ボックスでシステムの既定のプリンタの設定を変更することはできません。

解説

PrinterDefault プロパティが真 (True) のときは、Miscrosoft Visual Basic の Printer オブジェクトに直接出力することができます。それ以外の方法を使う場合は、グラフィック デバイス インターフェイス (GDI) を呼び出してコントロールの hDC プロパティによって指定されるプリンタに出力しなければなりません。

注   Printer オブジェクトに出力を行ったら、プリンタに関連する hDC を解放するために、Printer.EndDoc ステートメントを使ってプリント ジョブを終了させます。次に Printer オブジェクトに出力を行うときには、通常使うプリンタの新しい hDC が得られます。これを行わないと、Printer オブジェクトがプリンタへの以前のハンドルを保持している間は、ユーザーは新しいプリンタを選択できなくなります。


PrinterDefault プロパティの対象

コモン ダイアログ (CommonDialog) コントロール


Sorted プロパティ

関連項目	対象

コンボ ボックス (ComboBox) コントロールまたはリスト ボックス (ListBox) コントロールのリスト部分の項目を自動的に文字コード順に並べ替えるかどうかを示す値を設定します。値の取得も可能です。

構文

object.Sorted

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

Sorted プロパティの設定値は次のとおりです。

設定値	内容

True	リストの項目は文字コード順に並べ替えられます。大文字と小文字は区別されます。

False	(既定値) リストの項目は文字コード順に並べ替えられません。

解説

Sorted プロパティを真 (True) に設定すると、必要な文字列操作が実行されて文字コード順に並べ替えが行われます。リスト項目の追加や削除に伴うインデックスの変更も併せて行われます。

注   AddItem メソッドを使うと、リスト内の特定の位置に項目が追加されて並べ替えられた順番が変更され、その後に追加された項目が正しく並べ替えられない場合があります。


関連項目

AddItem メソッド

List プロパティ

ListCount プロパティ

ListIndex プロパティ

RemoveItem メソッド


Sorted プロパティの対象

コンボ ボックス (ComboBox) コントロール

リスト ボックス (ListBox) コントロール


TabIndex プロパティ

関連項目	例	対象

Tab キーを使ってコントロールのフォーカスを移動するときの順序 (タブ オーダー) を設定します。値の取得も可能です。

構文

object.TabIndex [= index]

TabIndex プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	0 ～ (n -1) の範囲の整数を指定します。n は TabIndex プロパティを持つ、フォーム内のコントロールの数です。TabIndex プロパティに負の値を設定するとエラーが発生します。

解説

各コントロールの TabIndex プロパティの既定値は、フォームにコントロールが配置された順番と同じになります。新しく配置されたコントロールは、タブ オーダーの最後に追加されます。

あるコントロールの TabIndex プロパティの既定値を変更すると、他のコントロールの TabIndex プロパティはそれに合わせて自動的に変更されます。TabIndex プロパティは、デザイン時にプロパティ ウィンドウで変更することができます。また、実行時にコードから変更することもできます。

メニューとタイマーを除くすべてのコントロールには、タブ オーダーが割り当てられます。実行時に非表示または無効のコントロールやフォーカスを受け取れないコントロール (フレームやラベル) に対してもタブ オーダーは設定されています。ただし、Tab キーを押して移動するときには、これらのコントロールはスキップされます。

TabIndex プロパティは ZOrder メソッドの影響を受けません。

注   コントロールのタブ オーダーは、関連するアクセス キーには影響しません。

また、フレームまたはラベルのアクセス キーを押すと、フォーカスはタブ オーダーの中で次にフォーカスを受けられるコントロールの上に移動します。

ASCII テキスト形式で保管されたフォームをロードすると、フォームの記述にリストされていないコントロールで TabIndex プロパティを持つものについては、自動的に TabIndex プロパティの値が割り当てられます。その後、コントロールがロードされた時点でその TabIndex プロパティの値が保管前の値と異なる場合は、新しい値が自動的に割り当てられます。


関連項目

TabStop プロパティ

ZOrder メソッド


TabIndex プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


Tag プロパティ

関連項目	例	対象

プログラムから参照するためのデータを格納する文字列式を指定します。値の取得も可能です。他のプロパティと異なり、Tag プロパティの値は Microsoft Visual Basic によって使われることはありません。Tag プロパティはオブジェクトの識別子として利用できます。

構文

object.Tag [= expression]

Tag プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

expression	オブジェクトを識別する文字列式を指定します。既定値は長さ 0 の文字列 ("") です。

解説

既定値では、Tag プロパティは長さ 0 の文字列 ("") になります。Tag プロパティを使うと、他のプロパティや動作にはいっさい影響を与えず、オブジェクトを判別するための文字列を割り当てることができます。Tag プロパティは、コントロールや MDI フォームに対する識別子をコードから参照する必要があるときに役立ちます。

ヒント   フォームの新しいインスタンスを作成するたびに、その Tag プロパティに個別の値を割り当てておけば、後で識別子として使えます。


関連項目

Name プロパティ


Tag プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

コモン ダイアログ (CommonDialog) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

ライン (Line) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

メニュー (Menu) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール

タイマー (Timer) コントロール


Text プロパティ

関連項目	例	対象

コンボ ボックス (ComboBox) コントロール (Style プロパティを 0 (ドロップダウン コンボ) または 1 (シンプル コンボ) に設定した場合) とテキスト ボックス (TextBox) コントロール

各コントロールの編集領域に表示されるテキストを設定します。値の取得も可能です。

コンボ ボックス コントロール (Style プロパティを 2 (ドロップダウン リスト) に設定された場合) とリスト ボックス (ListBox) コントロール

各コントロールの選択された項目を取得します。取得される値は常に List (ListIndex) 式によって取得される値と同じです。デザイン時、実行時ともに値の取得のみ可能です。

グリッド (Grid) コントロール

セルまたは複数のセルの範囲に格納されている文字列を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.Text [= string]

Text プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	テキストを示す文字列式を指定します。

解説

Text プロパティの既定値は次のとおりです。これらの既定値はデザイン時のみ有効です。

コンボ ボックス およびテキスト ボックス コントロールの場合、そのコントロールの Name プロパティ。

リスト ボックス (ListBox) コントロールの場合、長さ 0 の文字列 ("")。

Style プロパティが 0 (ドロップダウン コンボ) または 1 (シンプル コンボ) のコンボ ボックス およびテキスト ボックス コントロールでは、Text プロパティの値を参照することにより、テキスト ボックス またはコンボ ボックス コントロールの編集領域に表示されている文字列を調べることができます。Style プロパティが 2 (ドロップダウン リスト) のコンボ ボックス およびリスト ボックス コントロールでは、Text プロパティの値を参照することにより、リスト部分で選択 (強調表示) されている項目を調べることができます。

テキスト ボックス (TextBox) コントロールの Text プロパティに設定する文字列は、MultiLine プロパティが真 (True) の場合は最大で約 32KB まで、偽 (False) の場合は最大で 2,048 文字までに、それぞれ制限されています。

グリッド コントロールでセルの位置を指定するには、Row プロパティ、Col プロパティを使います。また Text プロパティで数値データを設定するときは、Str$ 関数を使ってください。

グリッド コントロールの場合、Text プロパティを設定して、単一のセルに文字列を追加することができます。Text プロパティは、グリッド コントロールの Row プロパティ、Col プロパティの現在の値で定義されているセルに適用されます。

Text プロパティ、FillStyle プロパティを使うと、反転表示されたセルの範囲に同じ文字列を追加できます。FillStyle プロパティが 0 の場合、Text プロパティに指定した文字列は、現在の Row プロパティ、Col プロパティの値で定義されているセルにだけ、追加されます。FillStyle プロパティが 1 の場合は、CellSelected プロパティが真 (True) に設定されているすべてのセルに、文字列が追加されます。

Clip プロパティを使って、セルの範囲に文字列をコピーすることもできます。たとえば、Clipboard オブジェクトからグリッド コントロールに、多くの情報をまとめて貼り付けることができます。


関連項目

SelLength、SelStart、SelText プロパティ

Value プロパティ


Text プロパティの対象

Column オブジェクト

コンボ ボックス (ComboBox) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

グリッド (Grid) コントロール

リスト ボックス (ListBox) コントロール

テキスト ボックス (TextBox) コントロール


Value プロパティ

関連項目	例	対象

チェック ボックス (CheckBox)、オプション ボタン (OptionButton) コントロールでは、そのコントロールの状態を設定します。値の取得も可能です。

コマンド ボタン (CommandButton) コントロールでは、ボタンが選択されているかいないかを示す値を設定します。値の取得も可能です。デザイン時には使えません。

Field オブジェクトでは、フィールドの内容を設定します。デザイン時には使えません。

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロールでは、スクロール バーの現在の位置を設定します。値の取得も可能です。取得した値は、常に Max、Min プロパティの間の値になります。

構文

object.Value [= value]

Value プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	コントロールの状態、内容、位置を指定する値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

チェック ボックス コントロールの場合

0 はオフ (既定値)、1 はオン、2 は無効になります。

コマンド ボタン コントロールの場合

真 (True) はそのボタンが押されたことを示します。既定値は偽 (False) で、そのボタンが押されていないことを示します。コードで Value プロパティを真 (True) に設定すると、そのボタンの Click イベントが呼び出されます。

オプション ボタン コントロールの場合

真 (True) はそのボタンが選択されたことを示します。既定値は偽 (False) で、そのボタンが選択されていないことを示します。

水平スクロール バーおよび垂直スクロール バー コントロールの場合

スクロール ボックスの位置を -32,768 ～ 32,767 の範囲の値で設定します。

解説

オブジェクトの既定プロパティを参照していると見なされる場合、コードでは明確にプロパティを指定する必要はありません。たとえば、Field プロパティは Recordset の既定プロパティで、Value プロパティは Field オブジェクトの既定プロパティです。このことから、次の 2 つのステートメントは同じ内容になります。

Dn.Fields("PubID").Value = X

Dn.("PubID") = X

最初のステートメントでは既定プロパティが指定されています。これに対し、2 番めのステートメントでは既定プロパティがあると見なされるので指定されていません。


関連項目

Max、Min プロパティ (スクロール バー)


Value プロパティの対象

チェック ボックス (CheckBox) コントロール

Column オブジェクト

コマンド ボタン (CommandButton) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

オプション ボタン (OptionButton) コントロール


Visible プロパティ

関連項目	例	対象

オブジェクトを表示するか非表示にするかを指定する値を設定します。値の取得も可能です。

構文

object.Visible [= boolean]

Visible プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	オブジェクトを表示するか非表示にするかを示すブール式を指定します。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	(既定値) オブジェクトを表示します。

False	オブジェクトを非表示にします。

注   Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

解説

起動時にオブジェクトを非表示にするには、デザイン時に Visible プロパティを偽 (False) に設定します。このプロパティをコードで設定することによって、コントロールを非表示にした後で、実行時に特定のイベントに応じて再び表示することができます。

注   フォームの Show メソッドまたは Hide メソッドを使うことは、フォームの Visible プロパティをコードで真 (True) または偽 (False) に設定することと同じです。

MDI 子フォームを非表示にはできません。


関連項目

Hide メソッド

Load ステートメント

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

Show メソッド


Visible プロパティの対象

チェック ボックス (CheckBox) コントロール

Column オブジェクト

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

ライン (Line) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

メニュー (Menu) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール


BackColor、ForeColor プロパティの例

次のプログラムは、フォームおよびピクチャ ボックス (PictureBox) コントロールの前景色と背景色を毎秒 2 回、ランダムに設定し直します。このプログラムを実行するには、まず、ピクチャ ボックス コントロールとタイマー (Timer) コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して実行します。

Private Sub Form_Load ()

Timer1.Interval = 500

End Sub

Private Sub Timer1_Timer ()

BackColor = QBColor(Rnd * 15)

ForeColor = QBColor(Rnd * 10)

Picture1.BackColor = QBColor(Rnd * 15)

Picture1.ForeColor = QBColor(Rnd * 10)

End Sub


BorderWidth プロパティの例

次のプログラムは、コンボ ボックス (ComboBox) コントロールを 2 つ使って、シェイプ (Shape) コントロールの境界線に、幅とスタイルを設定します。このプログラムを実行するには、まず、シェイプ コントロールと、コンボ ボックス コントロールを 1 つ含むフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。次に、コンボ ボックス コントロールのコントロール配列を作成するために Style = 2、Index = 0 をそれぞれ設定します。最後に、F5 キーを押して、フォームをクリックします。

Private Sub Form_Load ()

Combo1(0).Width = 1440 * 1.5

Load Combo1(1)

Combo1(1).Top = Combo1(0).Top + Combo1(0).Height * 1.5

Combo1(1).Visible = True

For I = 0 To 6

Combo1(0).AddItem "BorderStyle = " & I

Next I

For I = 1 To 10

Combo1(1).AddItem "BorderWidth = " & I

Next I

Combo1(0).ListIndex = 1

Combo1(1).ListIndex = 0

End Sub

Private Sub Combo1_Click (Index As Integer)

If Index = 0 Then

Shape1.BorderStyle = Combo1(0).ListIndex

Else

Shape1.BorderWidth = Combo1(1).ListIndex + 1

End If

End Sub


Col、Row プロパティの例

次のプログラムは、"カレント" をカレント セルに入力した後、アクティブ セルを 3 行めの 3 列めのセルに変更し、"固定" をそのセルに入力します。このプログラムを実行するには、まず、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックス の [Microsoft Grid Control] チェック ボックスを選択して、GRID16.OCX または GRID32.OCX をプロジェクトに追加します。次に、グリッド (Grid) コントロールを新しいフォーム上に配置し、そのフォーム モジュールのコード ウィンドウに下のコードを貼り付けます。最後に、F5 キーを押して、グリッド コントロールをクリックします。

Private Sub Form_Load ()

Grid1.Rows = 8	' 行数と列数を設定します。

Grid1.Cols = 5

End Sub

Private Sub Grid1_Click ()

' カレント セルにテキストを設定します。

Grid1.Text = "カレント"

' 3 行めの 3 列めのセルにテキストを設定します。

Grid1.Col = 2

Grid1.Row = 2

Grid1.Text = "固定"

End Sub

次のプログラムでは、セルを 1 つ選択するか、あるいは一定の範囲のセルを選択すると、アクティブ セルの位置と選択範囲が表示されます。範囲を選択しても、アクティブ セルは変更されません。範囲を選択してからフォームをクリックすると、選択範囲内の一番外側のセルをアクティブ セルが順次移動します。選択範囲は変更されません。

このプログラムを実行するには、まず、新しいプロジェクトを作成し、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックス の [Microsoft Grid Control] チェック ボックスを選択して、GRID16.OCX または GRID32.OCX をプロジェクトに追加します。次に、1 つのグリッド コントロールと 2 つのラベル (Label) コントロールをフォーム上に配置します。そのフォーム モジュールのコード ウィンドウに下のコードを貼り付けて、F5 キーを押して実行します。

Private Sub Form_Load ()

Grid1.Cols = 6	' 列数と行数を設定します。

Grid1.Rows = 7

End Sub

Private Sub Grid1_RowColChange ()

Msg = "アクティブ セル: " & Chr(64 + Grid1.Col)

Mst = Msg & Grid1.Row

Label1.Caption = Msg

End Sub

Private Sub Grid1_SelChange ()

Msg = "選択範囲: " & Chr(64 + Grid1.SelStartCol)

Msg = Msg & Grid1.SelStartRow

Msg = Msg & ":" & Chr(64 + Grid1.SelEndCol)

Msg = Msg & Grid1.SelEndRow

Label2.Caption = Msg

End Sub

Private Sub Form_Click ()

' このプロシージャは、フォームがクリックされると

' そのとき選択されているセル範囲の周辺に

' アクティブ セルを移動します。

Dim GR, GC As Integer

If Grid1.Row = Grid1.SelStartRow Then

If Grid1.Col = Grid1.SelEndCol Then

GR = 1: GC = 0

Else

GR = 0: GC = 1

End If

ElseIf Grid1.Row = Grid1.SelEndRow Then

If Grid1.Col = Grid1.SelStartCol Then

GR = -1: GC = 0

Else

GR = 0: GC = -1

End If

Else

If Grid1.Col = Grid1.SelStartCol Then

GR = -1: GC = 0

Else

GR = 1: GC = 0

End If

End If

Grid1.Row = Grid1.Row + GR

Grid1.Col = Grid1.Col + GC

End Sub


DrawWidth プロパティの例

次のプログラムは、フォーム上に、幅が徐々に広くなる線を描画します。このプログラムを実行するには、まず、フォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して、フォームをクリックします。

Private Sub Form_Click ()

Dim I	' 変数を宣言します。

DrawWidth = 1	' 最初のペンの幅を設定します。

PSet (0, ScaleHeight / 2)	' 描画開始位置を設定します。

ForeColor = QBColor(5)	' ペンの色を設定します。

For I = 1 To 100 Step 10	' ループします。

DrawWidth = I	' ペンの幅を再設定します。

Line - Step(ScaleWidth / 10, 0)	' 線を描画します。

Next I

End Sub


FontBold、FontItalic、FontStrikethru、FontUnderline プロパティの例

次のプログラムは、マウスをクリックするたびに、 2 つのフォント スタイルを組み合わせて、テキストをフォームに表示します。このプログラムを実行するには、まず、フォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して、フォームをクリックします。

Private Sub Form_Click ()

FontStrikethru = Not FontStrikethru	' 取り消し線を切り替えます。

FontItalic = Not FontItalic	' 斜体を切り替えます。

Print "おみごと!"	' テキストを表示します。

End Sub


FontName プロパティの例

次のプログラムは、特定のフォントの名前をそれぞれのフォントを使って表示します。このプログラムを実行するには、まず、フォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して実行します。フォームをクリックするたびに、フォント名が表示されます。

Private Sub Form_Click ()

Static I	' 変数を宣言します。

Dim OldFont

OldFont = FontName	' 現在のフォントを保存します。

FontName = Screen.Fonts(I)	' 新しいフォントに変更します。

Print Screen.Fonts(I)	' フォント名を表示します。

I = I + 1	' カウンタを 1 増やします。

If I = FontCount Then I = 0	' 最初から繰り返します。

FontName = OldFont	' フォントを元に戻します。

End Sub


FontSize プロパティの例

次のプログラムでは、マウスをクリックすると、テキストを異なる 2 つのポイント サイズでフォームに表示します。このプログラムを実行するには、まず、フォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押してから、フォームをクリックします。

Private Sub Form_Click ()

FontSize = 24	' 大きいフォント サイズを設定します。

Print "24 ポイントで出力"	' 大きい方のフォントで表示します。

FontSize = 8	' 小さいフォント サイズを設定します。

Print "8 ポイントで出力"	' 小さい方のフォントで表示します。

End Sub


Height、Width プロパティの例

次のプログラムは、フォームの大きさを画面の大きさの 75% に設定し、フォームがロードされるときに、画面の中央に表示します。このプログラムを実行するには、まず、フォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して、フォームをクリックします。

Private Sub Form_Click ()

Width = Screen.Width * .75	' フォームの幅を設定します。

Height = Screen.Height * .75	' フォームの高さを設定します。

Left = (Screen.Width - Width) / 2	' フォームを画面の水平方向にセンタリングします。

Top = (Screen.Height - Height) / 2	' フォームを画面の縦方向にセンタリングします。

End Sub


Icon プロパティの例

次のプログラムは、フォーム用に空のアイコンを作成し、フォームが最小化されている間、色のついた点をアイコンに描画します。このプログラムを実行するには、まず、フォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して、フォームを最小化します。

Private Sub Form_Resize ()

Dim X, Y	' 変数を宣言します。

If Form1.WindowState = 1 Then

Form1.Icon = LoadPicture()	' 空のアイコンをロードします。

Do While Form1.WindowState = 1	' フォームが最小化されている間、ループします。

Form1.DrawWidth = 10	' 点の大きさを設定します。

' 点の色をランダムに選択します。

Form1.ForeColor = QBColor(Int(Rnd * 15))

' アイコン上の位置をランダムに設定します。

X = Form1.Width * Rnd

Y = Form1.Height * Rnd

PSet (X, Y)	' アイコンに点を描画します。

DoEvents	' 他のイベントを実行します。

Loop

End If

End Sub


Interval プロパティの例

次のプログラムは、フォームの色を切り替える時間間隔を調整できるようにします。このプログラムを実行するには、まず、タイマー (Timer) 、水平スクロール バー (HScrollBar) 、およびピクチャ ボックス (PictureBox) の各コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して、スクロール バーをクリックします。

Private Sub Form_Load ()

Timer1.Interval = 900	' タイマーの間隔を設定します。

HScroll1.Min = 100	' スクロールの最小値。

HScroll1.Max = 900	' スクロールの最大値。

End Sub

Private Sub HScroll1_Change ()

' スクロール バーの位置に従って、タイマーの間隔を設定します。

Timer1.Interval = 1000 - HScroll1.Value

End Sub

Private Sub Timer1_Timer ()

' BackColor プロパティを赤または青に切り替えます。

If Picture1.BackColor = RGB(255, 0, 0) Then

Picture1.BackColor = RGB(0, 0, 255)

Else

Picture1.BackColor = RGB(255, 0, 0)

End If

End Sub


Left、Top プロパティの例

次のプログラムは、フォームの大きさを画面の大きさの 75% に設定し、フォームがロードされるときに、画面の中央に表示します。このプログラムを実行するには、まず、フォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して、フォームをクリックします。

Private Sub Form_Click ()

Width = Screen.Width * .75	' フォームの幅を設定します。

Height = Screen.Height * .75	' フォームの高さを設定します。

Left = (Screen.Width - Width) / 2	' フォームを画面の水平方向にセンタリングします。

Top = (Screen.Height - Height) / 2	' フォームを画面の縦方向にセンタリングします。

End Sub


List プロパティの例

次のプログラムは、サンドイッチの名前の一覧を含むコンボ ボックス (ComboBox) コントロールをロードし、一覧の最初の項目を表示します。このプログラムを実行するには、まず、コンボ ボックス コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して実行します。

Private Sub Form_Load ()

Combo1.AddItem "エッグサンド"	' 各項目を一覧に追加します。

Combo1.AddItem "焼きそばサンド"

Combo1.AddItem "野菜サンド"

Combo1.Text = Combo1.List(0)	' 最初の項目を表示します。

End Sub


ListCount プロパティの例

次のプログラムは、プリンタ フォントの一覧を含むコンボ ボックス (ComboBox) コントロールをロードし、一覧の最初の項目を表示します。さらに、フォントの総数も表示します。また、コマンド ボタン (CommandButton) コントロールをクリックするたびに、一覧のすべての項目が大文字または小文字に変更します。このプログラムを実行するには、まず、コンボ ボックス コントロール (Style = 2 に設定) とコマンド ボタン コントロールを含むフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。次に、F5 キーを押して、コマンド ボタン コントロールをクリックします。

Private Sub Form_Load ()

Dim I	' 変数を宣言します。

AutoRedraw = True	' AutoRedraw プロパティを設定します。

For I = 0 To Printer.FontCount - 1	' 一覧にフォント名を追加します。

Combo1.AddItem Printer.Fonts(I)

Next I

Combo1.ListIndex = 0	' テキストを最初の項目に設定します。

' 一覧の項目数を表示します。

Print "プリンタ フォントの数:"; Combo1.ListCount

End Sub

Private Sub Command1_Click ()

Static UpperCase

Dim I	' 変数を宣言します。

For I = 0 To Combo1.ListCount - 1	' 一覧の項目数だけループします。

If UpperCase Then

Combo1.List(I) = UCase(Combo1.List(I))

Else

Combo1.List(I) = LCase(Combo1.List(I))

End If

Next I

UpperCase = Not UpperCase	' 大文字または小文字に変更します。

End Sub


ListIndex プロパティの例

次のプログラムは、3 人の選手の名前を一覧表示し、選択した選手に対応する給料をラベル (Label) コントロールに表示します。このプログラムを実行するには、コンボ ボックス (ComboBox) コントロールとラベル コントロールを含むフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。次に、F5 キーを押して、名前をコンボ ボックス コントロールから選択します。

Dim Player(0 To 2)	' 2 次元配列を作成します。

Dim Salary(0 To 2)

Private Sub Form_Load ()

Dim I	' 変数を宣言します。

AutoSize = True

Player(0) = "大前田"	' 配列に初期化データを設定します。

Player(1) = "下河内"

Player(2) = "クレイグ"

Salary(0) = "300,000,000"

Salary(1) = "120,000,000"

Salary(2) = "70,000,000"

For I = 0 To 2	' 一覧に名前を追加します。

Combo1.AddItem Player(I)

Next I

Combo1.ListIndex = 0	' 一覧の最初の項目を表示します。

End Sub

Private Sub Combo1_Click ()

' 選択された名前に対応する給料を表示します。

Label1.Caption = Salary(Combo1.ListIndex)

End Sub


Picture プロパティの例

次のプログラムは、Visual Basic のアイコン ライブラリから、3 つのピクチャ ボックス (PictureBox) コントロールのうちの 2 つにアイコンをロードします。3 番めのピクチャ ボックス コントロールを使って、フォームがクリックされたときに、アイコンを切り替えます。任意の 2 つのアイコンを使うことができます。まず、3 つの小さなピクチャ ボックス コントロール ( Picture3 の Visible プロパティを偽 (False) に設定します。) を含むフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。次に、F5 キーを押して、フォームをクリックします。

Private Sub Form_Load ()

' アイコンをロードします。

Picture1.Picture = LoadPicture("ICONS\COMPUTER\TRASH02A.ICO")

Picture2.Picture = LoadPicture("ICONS\COMPUTER\TRASH02B.ICO")

End Sub

Private Sub Form_Click ()

' アイコンを切り替えます。

Picture3.Picture = Picture1.Picture

Picture1.Picture = Picture2.Picture

Picture2.Picture = Picture3.Picture

' 3 番めのピクチャを削除します。 (非表示ならば不要です。)

Picture3.Picture = LoadPicture()

End Sub

次のプログラムは、クリップボードからピクチャ ボックス (PictureBox) コントロールにビットマップを貼り付けます。クリップボード フォーマット定数 (vbCF で始まる定数) の値については、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリを参照してください。このプログラムを実行するには、まず、ピクチャ ボックス コントロールを含むフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。次に、F5 キーを押して実行します。別のアプリケーションでアイコンをクリップボードにコピーし、再び Visual Basic に切り替えて、フォームをクリックします。

Private Sub Form_Click ()

Const vbCFBitmap = 2

Picture1.Picture = Clipboard.GetData(vbCFBitmap)

End Sub


TabIndex プロパティの例

次のプログラムは、コマンド ボタン (CommandButton) コントロール配列の TabIndex プロパティを変更して、これらのボタンのタブ オーダーを逆にします。このプログラムを実行するには、4 つのコマンド ボタン コントロールを含むフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。次に、各ボタンをコントロール配列にするために Name プロパティを CommandX に設定し、F5 キーを押して実行します。フォームをクリックすると、ボタンのタブ オーダーが逆になります。

Private Sub Form_Click ()

Dim I, X	' 変数を宣言します。

' 最初の値 ( X ) を変更して、タブ オーダーの順序を逆転させます。

If CommandX(0).TabIndex = 0 Then X = 4 Else X = 1

For I = 0 To 3

CommandX(I).Caption = X	' Caption プロパティのテキストを設定します。

CommandX(I).TabIndex = X - 1	' タブ オーダーを設定します。

If CommandX(0).TabIndex = 3 Then

X = X - 1

Else

X = X + 1

End If

Next I

End Sub


Tag プロパティの例

次のプログラムは、コントロールがドラッグされたときに、それぞれに固有のアイコンを表示します。このプログラムを実行するには、まず、ピクチャ ボックス (PictureBox) コントロールを 3 つ含むフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。次に、Picture1 と Picture2 の DragMode プロパティを 1 に設定してから、F5 キーを押して実行します。最後に、マウスを使って、Picure1 または Picture2 を、Picture3 へドラッグします。

Private Sub Form_Load ()

Picture1.Tag = "Pic1"

Picture2.Tag = "Pic2"

End Sub

Private Sub Picture3_DragOver (Source As Control, X As Single, Y As Single, State As Integer)

Const ENTER = 0, LEAVE = 1, OVER = 2

If State = ENTER Then

' 実行時には名前が有効になっていないので、Tag プロパティを使って選択します。

Select Case Source.Tag

Case "Pic1"

' Picture1 にアイコンをロードします。

Source.DragIcon = LoadPicture ("ICONS\ARROWS\POINT03.ICO")

Case "Pic2"

' Picture2 にアイコンをロードします。

Source.DragIcon = LoadPicture ("ICONS\ARROWS\POINT04.ICO")

End Select

ElseIf State = LEAVE Then

' Picture3 にドラッグしなかった場合、アイコンを削除します。

Source.DragIcon = LoadPicture ()

End If

End Sub


Text プロパティの例

次のプログラムは、Text プロパティの動作を示しています。このプログラムを実行するには、まず、3 つのテキスト ボックス (TextBox) コントロールとコマンド ボタン (CommandButton) コントロールを含むフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。次に、F5 キーを押し、テキストを Text1 に入力します。

Private Sub Text1_Change ()

Text2.Text = LCase(Text1.Text)	' テキストを小文字で表示します。

Text3.Text = UCase(Text1.Text)	' テキストを大文字で表示します。

End Sub

Private Sub Command1_Click ()	' テキストを削除します。

Text1.Text = ""

End Sub


Value プロパティの例

次のプログラムは、水平スクロール バー (HScrollBar) コントロールの Value プロパティの値をテキスト ボックス (TextBox) コントロールに表示します。このプログラムを実行するには、まず、テキスト ボックス コントロールと水平スクロールバー コントロールを含むフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。次に、F5 キーを押して、スクロール バーをクリックします。

Private Sub Form_Load ()

HScroll1.Min = 0	' スクロール バーを初期化します。

HScroll1.Max = 1000

HScroll1.LargeChange = 100

HScroll1.SmallChange = 1

End Sub

Private Sub HScroll1_Change ()

Text1.Text = Format (HScroll1.Value)

End Sub


Visible プロパティの例

次のプログラムは、ピクチャ ボックス (PictureBox) コントロールを 2 個使って、アニメーションを作成します。このプログラムを実行するには、アイコンと同じ大きさのピクチャ ボックス コントロールを 2 個含むフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。次に、2 つのピクチャ ボックス コントロールの Name プロパティを FileCab に設定してコントロール配列を作成し、F5 キーを押します。ピクチャをクリックすると、アニメーションが表示されます。

Private Sub Form_Load ()

Dim I	' 変数を宣言します。

FileCab(0).BorderStyle = 0	' BorderStyle プロパティを設定します。

FileCab(1).BorderStyle = 0

' ピクチャ ボックスにアイコンをロードします。

FileCab(1).Picture = LoadPicture("ICONS\OFFICE\FILES03B.ICO")

FileCab(0).Picture = LoadPicture("ICONS\OFFICE\FILES03A.ICO")

For I = 0 To 1

FileCab(I).Move 400, 400	' 同じ位置にグラフィックスを配置します。

Next I

FileCab(1).Visible = False	' FileCab(1) を非表示にします。

FileCab(0).Visible = True	' FileCab(0) を表示します。

End Sub

Private Sub FileCab_Click (Index As Integer)

Dim I	' 変数を宣言します。

For I = 0 To 1

' 2 つのグラフィックスのうち、表示されるグラフィックスを切り替えます。

FileCab(I).Visible = Not FileCab(I).Visible

Next I

End Sub


Align プロパティ

関連項目	例	対象

オブジェクトの表示方法を設定します。値の取得も可能です。オブジェクトは、任意のサイズでフォームの任意の位置に表示するか、フォームの上端、下端、右端、左端に自動的にフォームの幅に合わせて表示することができます。

構文

object.Align [= number]

Align プロパティの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	オブジェクトを表示する方法を整数で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 number の設定値は次のとおりです。

設定値	内容

0	(非 MDI フォームの既定値) なし。

サイズと位置はデザイン時、または実行時にコードで設定できます。MDI フォームでは、この設定は無視されます。

1	(MDI フォームの既定値) 上に合わせる。

オブジェクトはフォームの上端に表示され、その幅はフォームの ScaleWidth プロパティに設定された値と等しくなります。

2	下に合わせる。

オブジェクトはフォームの下端に表示され、その幅はフォームの ScaleWidth プロパティに設定された値と等しくなります。

3	左に合わせる。

オブジェクトはフォームの左端に表示され、その幅はフォームの ScaleWidth プロパティに設定された値と等しくなります。

4	右に合わせる。

オブジェクトはフォームの右端に表示され、その幅はフォームの ScaleWidth プロパティに設定された値と等しくなります。

解説

Align プロパティを使って、ツールバーやステータス バーをフォームの上下左右の端に、簡単に作成できます。ユーザーがフォームのサイズを変更すると、Align プロパティの値を 1 か 2 に設定されたオブジェクトは、自動的にフォームの幅に合うようにサイズが変更されます。

MDI フォームに配置することができる標準コントロールは、ピクチャ ボックス (PictureBox) コントロールとデータ (Data) コントロールだけです。これらのコントロールが配置されていない MDI フォームの領域は、内部領域になります。MDI 子フォームが、親 MDI フォームの中で最大化されても、親 MDI フォームに配置されたコントロールが隠れることはありません。

フォームや MDI フォームの、右端または左端にツールバーを配置するには、引数 number に 3 か 4 を設定します。MDI フォームにツールバーが 2 つあるときは、上下に配置されたツールバーが左右に配置されたツールバーに優先します。


関連項目

Alignment プロパティ

ScaleHeight、ScaleWidth プロパティ


Align プロパティの対象

データ (Data) コントロール

ピクチャ ボックス (PictureBox) コントロール


Alignment プロパティ

関連項目	対象

チェック ボックス (CheckBox) コントロールやオプション ボタン (OptionButton) コントロールの配置、コントロール内のテキスト、DB グリッド (DBGrid) コントロールの列の中の値の配置を設定します。値の取得も可能です。チェック ボックス、オプション ボタン、テキスト ボックス (TextBox) の各コントロールは、実行時には値の取得のみ可能です。

構文

object.Alignment [= number]

Alignment プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	配置の種類を整数で指定します。設定する値については、次の「設定値」を参照してください。

設定値

チェック ボックス、オプション ボタン コントロールの引数 number の設定値は次のとおりです。

設定値	内容

0	(既定値) 左揃え。コントロールを左揃えにし、その右側にテキストを配置します。

1	右揃え。コントロールを右揃えにし、その左側にテキストを配置します。

ラベル (Label)、テキスト ボックス コントロールの引数 number の設定値は次のとおりです。

設定値	内容

0	(既定値) 左揃え。

1	右揃え。

2	中央揃え。

DB グリッド コントロールの列に対する引数 number の設定値は次のとおりです。

設定値	内容

0	左揃え。

1	右揃え。

2	中央揃え。

3	(既定値) 一般。

テキストは左揃え、数字は右揃えになります。

解説

テキストは、オプション ボタン コントロールとチェック ボックス コントロールの左右に表示できます。

テキスト ボックス コントロールの MultiLine プロパティが偽 (False) に設定されているときは、Alignment プロパティの設定は無視されます。


関連項目

Align プロパティ


Alignment プロパティの対象

チェック ボックス (CheckBox) コントロール

Column オブジェクト

DB グリッド (DBGrid) コントロール

ラベル (Label) コントロール

オプション ボタン (OptionButton) コントロール

テキスト ボックス (TextBox) コントロール


Archive、Hidden、Normal、System プロパティ

関連項目	対象

ファイル リスト ボックス (FileListBox) コントロールに表示するファイルの属性を設定します。値の取得も可能です。ファイルの属性には、Archive (アーカイブ)、Hidden (隠しファイル)、Normal (通常)、System (システム ファイル) があります。

構文

object.Archive [= boolean]
object.Hidden [= boolean]
object.Normal [= boolean]
object.System [= boolean]

Archive、Hidden、Normal、System の各プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	表示するファイルの種類をブール式で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	(Archive、Normal プロパティの既定値) 指定した属性を持つファイルが、表示されます。

False	(Hidden、System プロパティの既定値) 指定した属性を持つファイルは、表示されません。

解説

これらのプロパティを利用することにより、ファイル リスト ボックス コントロールに表示するファイルの種類を指定することができます。ファイルの属性は、使用しているオペレーティング システムによって管理されています。実行時にコードでこれらのプロパティの設定を変更したときは、変更した属性に対応してファイル リスト ボックス コントロールの表示内容も更新されます。たとえば、検索と置換を行う場合に、System プロパティを真 (True) に、他のプロパティを偽 (False) に設定すると、システム ファイルだけを表示することができます。


関連項目

Path プロパティ

Pattern プロパティ


Archive、Hidden、Normal、System プロパティの対象

ファイル リスト ボックス (FileListBox) コントロール


AutoRedraw プロパティ

関連項目	例	対象

グラフィックス メソッドによって描画されたグラフィックスの属性を設定します。値の取得も可能です。AutoRedraw プロパティが真 (True) に設定されているグラフィックスは、継続表示属性を持つグラフィックスになります。

構文

object.AutoRedraw [= boolean]

AutoRedraw プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	オブジェクトの再描画の方法を、ブール式で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	Form オブジェクトまたはピクチャ ボックス (PictureBox) コントロールは、自動的に再描画されます。グラフィックスとテキストは、画面に表示されるだけでなく、同時にメモリ イメージとしても保持されます。そのオブジェクトの再描画が必要なときには、オブジェクトは Paint イベントを受け取らず、メモリ イメージが使われます。

False	(既定値) オブジェクトの自動的な再描画は行われません。グラフィックスやテキストは画面にのみ表示され、メモリには保持されません。そのオブジェクトの再描画が必要なときには、Microsoft Visual Basic によってオブジェクトの Paint イベントが呼び出されます。

解説

AutoRedraw プロパティの設定が重要な意味を持つのは、Circle、Cls、Line、Point、Print、PSet の各グラフィックス メソッドを使う場合です。AutoRedraw プロパティを真 (True) に設定すると、オブジェクトのサイズが変更されたり、いったん他のオブジェクトの下に隠れたオブジェクトが再表示されるときに、これらのメソッドからの出力は、ピクチャ ボックス コントロールや Form オブジェクトに自動的に再描画されます。

AutoRedraw プロパティの設定を実行時にコードで切り替えることで、背景やグリッドなどの継続表示属性を持つグラフィックスと、継続表示属性を持たないグラフィックスとを使い分けることができます。AutoRedraw プロパティを偽 (False) に設定すると、以前の出力は背景の一部になり、描画領域を Cls メソッドでクリアしても、背景のグラフィックスは消去されません。背景のグラフィックスを消去するには、AutoRedraw プロパティを真 (True) に設定してから Cls メソッドを使います。

注   BackColor プロパティの設定を行うと、継続表示属性を持つグラフィックスを含むすべてのグラフィックスとテキストが消去されます。一般に、AutoRedraw プロパティが真 (True) に設定されていない場合には、グラフィックスの再描画のための処理を Paint イベント プロシージャ内に記述するのが一般的な方法です。

AutoRedraw プロパティが真 (True) に設定されているときに作成された継続表示属性を持つグラフィックスを再描画するには、Image プロパティを使います。AutoRedraw プロパティが真 (True) に設定されているときに、継続表示属性を持つグラフィックスを Windows API に渡すには、そのオブジェクトの hDC プロパティを使います。

AutoRedraw プロパティが偽 (False) に設定されているフォームを最小化した場合、ScaleHeight プロパティと ScaleWidth プロパティはアイコンのサイズに設定されます。AutoRedraw プロパティが真 (True) に設定されている場合は、ScaleHeight プロパティと ScaleWidth プロパティの値は、メモリに保管されたウィンドウのサイズを保持します。


関連項目

Circle メソッド

Cls メソッド

hDC プロパティ

Image プロパティ

Line メソッド

Paint イベント

Point メソッド

Print メソッド

PSet メソッド

ScaleHeight、ScaleWidth プロパティ


AutoRedraw プロパティの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール


AutoShowChildren プロパティ

関連項目	例	対象

MDI 子フォームを、ロード時に表示するかどうかを設定します。値の取得も可能です。

構文

object.AutoShowChildren [= boolean]

AutoShowChildren プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	MDI 子フォームを、ロード時に自動的に表示するどうかをブール式で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	(既定値) MDI 子フォームは自動的に表示されます。

False	MDI 子フォームは自動的に表示されません。

解説

AutoShowChildren プロパティを使うと、MDI 子フォームをロードしても、Show メソッドを使うまで非表示にしておくことができます。


関連項目

ActiveForm プロパティ

MDIChild プロパティ


AutoShowChildren プロパティの対象

MDIForm オブジェクト


AutoSize プロパティ

関連項目	対象

コントロールのサイズが、その内容 (ロードするピクチャのサイズなど) に合わせて自動的に変更されるかどうかを設定します。値の取得も可能です。

構文

object.AutoSize [= boolean]

AutoSize プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	コントロールの大きさを自動的に変更するかどうかをブール式で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	内容に合わせて、自動的にコントロールの大きさが変更されます。

False	(既定値) コントロールの大きさを一定に保ちます。コントロールの大きさからはみ出した部分は画面に表示されません。


関連項目

Alignment プロパティ

Resize イベント


AutoSize プロパティの対象

ラベル (Label) コントロール

ピクチャ ボックス (PictureBox) コントロール


CellSelected プロパティ

関連項目	例	対象

Col プロパティと Row プロパティで指定されたセル (アクティブ セル) が、グリッド (Grid) コントロールの選択領域内にあるかどうかを示す値を返します。

構文

object.CellSelected

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

CellSelected プロパティの設定値は、次のとおりです。

設定値	内容

True	アクティブ セルは、選択領域内にあります。

False	アクティブ セルは、選択領域内にありません。

解説

このプロパティを使って、特定のセルまたは特定のセルの範囲が、選択されているかどうかを調べることができます。

実行時にセルの範囲を選択するには、セルをクリックしてからマウスをドラッグするか、Shift キーを押しながら方向キーを押します。

選択された領域を調べるには、SelEndCol、SelStartCol、SelEndRow、SelStartRow の各プロパティを使います。アクティブ セルを調べるには、Col プロパティと Row プロパティを使います。


関連項目

Col、Row プロパティ

RowColChange イベント

SelChange イベント

SelEndCol、SelStartCol、SelEndRow、SelStartRow プロパティ


CellSelected プロパティの対象

グリッド (Grid) コントロール


Clip プロパティ

関連項目	例	対象

グリッド (Grid) コントロールの、選択された領域内のセルの値を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.Clip [= string]

Clip プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	セルの値を含む文字列式を指定します。

解説

引数 string には、複数の列と行の内容を指定できます。引数 string ではタブ (ASCII 文字 9) は列の区切り、キャリッジ リターン (ASCII 文字 13) は行の区切りを表します。これらの文字を文字列に入れるには、Chr 関数を使います。たとえば、次のステートメントは、高さ 2 行、幅 2 列の選択領域にテキストを入力します。

Grid1.Clip = "1st" & Chr(9) & "a" & Chr(13) & "2nd" & Chr(9) & "b"

データは、グリッド コントロールの選択されたセルにしか入力できません。選択された領域に、引数 string に記述されたセルより多くのセルがあるときは、余分なセルには Null が設定されます。引数 string に記述された値の数が、選択された領域内のセルよりも多いときは、引数 string の余分な部分は無視されます。


関連項目

Chr 関数

SelEndCol、SelStartCol、SelEndRow、SelStartRow プロパティ

Text プロパティ


Clip プロパティの対象

グリッド (Grid) コントロール


ClipControls プロパティ

関連項目	例	対象

Paint イベント プロシージャ内で定義されているグラフィックス メソッドで描画するときに、オブジェクト全体を再描画するか、新たに表示された領域だけを再描画するかを設定します。値の取得も可能です。また、オブジェクト内に配置されている非グラフィカル コントロールを除くクリッピング領域を Microsoft Windows が生成するかどうかも決定します。実行時には値の取得のみ可能です。

構文

object.ClipControls

ClipControls プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	オブジェクトの再描画の方法をブール式で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	(既定値) Paint イベント プロシージャ内で定義されているグラフィックス メソッドは、オブジェクト全体を再描画します。Paint イベントの前に、フォームの非グラフィカル コントロールの周囲に、クリッピング領域が生成されます。

False	Paint イベント プロシージャ内で定義されているグラフィックス メソッドは、新たに表示された領域だけを再描画します。Paint イベントの前に、フォームの非グラフィカル コントロールの周囲に、クリッピング領域は生成されません。ClipControls プロパティが偽 (False) に設定されていると、複雑なフォームでもロードや再描画が高速になります。

解説

クリッピングは、フォームが表示されたとき、フォームや、フレーム (Frame) コントロールまたはピクチャ ボックス (PictureBox) コントロールなどのコンテナの、どの部分が描画されるかを決定するための処理です。Microsoft Windows では、背景を描画するときに、テキスト ボックス (TextBox) コントロールの内容など、描画する背景以外の部分に影響を与えないために、フォームやコントロールの輪郭線をメモリに作成します。クリッピング領域はメモリに作成されるため、このプロパティを偽 (False) に設定すると、フォームの再描画に必要な時間を減らすことができます。

ほとんどのコントロールがクリッピング領域の対象となりますが、イメージ (Image)、ラベル (Label)、ライン (Line)、シェイプ (Shape) の各コントロールはクリップされません。


 関連項目

AutoRedraw プロパティ

Circle メソッド

Line メソッド

Paint イベント

Print メソッド


Clipコントロール プロパティの対象

Form オブジェクト

フレーム (Frame) コントロール

ピクチャ ボックス (PictureBox) コントロール


ColAlignment プロパティ

関連項目	例	対象

特定の列のデータの配置を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.ColAlignment(column) [= number]

ColAlignment プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

column	列の位置を示す番号を指定します。

number	列のデータの配置を整数で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 number の設定値は次のとおりです。

設定値	内容

0	(既定値) 左詰め。

1	右詰め。

2	中央揃え。

解説

グリッド (Grid) コントロールでは、列ごとに異なる配置設定ができます。このプロパティは、固定型の行のセルに対しては効果がありません。固定型の列の配置設定を行うには、FixedAlignment プロパティを使います。


関連項目

Alignment プロパティ

FixedAlignment プロパティ


ColAlignment プロパティの対象

グリッド (Grid) コントロール


Color プロパティ

関連項目	対象

[色の設定] ダイアログ ボックス、または [フォントの指定] ダイアログ ボックスで選択される色を設定します。値の取得も可能です。

構文

object.Color [= number]

Color プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	カラーを示す数式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 number の設定値は次のとおりです。

設定値	内容

通常の RGB カラー	RGB 関数や QBColor 関数で指定した色になります。

システム カラー	オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにある、システム カラー定数を使って指定した色です。Microsoft Windows では、ユーザーがコントロール パネルで行った設定に従って色が割り当てられます。

解説

このプロパティを使って [色の設定] ダイアログ ボックスで選択されている色を取得するには、RGBInit フラグを設定します。[フォントの指定] ダイアログ ボックスの場合は、Effects フラグを設定します。


関連項目

カラー定数

Flags プロパティ ([色の設定] ダイアログ ボックス)

QBColor 関数

RGB 関数


Color プロパティの対象

コモン ダイアログ (CommonDialog) コントロール ([色の設定] ダイアログ ボックス)


ColorMode プロパティ

関連項目	対象

カラー プリンタに出力を行うときに、カラーかモノクロのどちらで印刷するかを設定します。値の取得も可能です。デザイン時には使えません。

構文

object.ColorMode [= value]

ColorMode プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	印刷モードを示す定数または値を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbPRCMMonochrome	1	出力をモノクロ (通常は白黒のハーフ トーン) で印刷します。

vbPRCMColor	2	カラーで印刷します。

解説

既定値は、プリンタ ドライバとそのときのプリンタの設定によって異なります。また、モノクロのプリンタでは、このプロパティの設定は無効になります。

注   Printer オブジェクトのプロパティを設定する場合、その結果はプリンタ メーカーが提供するドライバによって異なります。プロパティを設定しても効果がなかったり、プロパティに異なる値を設定しても、結果が同じになることもあります。また、有効な範囲を超えた設定を行うと、エラーになることもあります。ドライバの詳細な情報については、そのメーカーのマニュアルを参照してください。


関連項目

Printer オブジェクト、Printers コレクション


ColorMode プロパティの対象

Printer オブジェクト


Columns プロパティ (ListBox)
Columns プロパティ (リスト ボックス)

関連項目	例	対象

リスト ボックス (ListBox) コントロールのスクロール方向 (垂直または水平) を設定します。値の取得も可能です。水平にスクロールする場合は、表示する列数を指定します。

構文

object.Columns [= number]

Columns プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	コントロールのスクロール方向、または列内の項目の表示方法を示す整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 number の設定値は次のとおりです。

設定値	内容

0	(既定値) 項目は 1 桁に並べられ、リスト ボックス コントロールは、垂直にスクロールします。

1 ～ n	リスト内の項目は各列に順に並べられていきます。まず 1 列めに並べられ、1 列めがいっぱいになると 2 列めに並べられます。以降の列も同様です。リスト ボックス コントロールは水平にスクロールし、指定した数の列が表示されます。

解説

水平スクロールするリスト ボックス コントロールでは、各列の幅はリスト ボックス コントロールの幅を列数で割ったものになります。

このプロパティを実行時に 0 に設定したり、0 から他の値に変えることはできません。つまり、実行時に複数の列のリスト ボックス コントロールを、1 列のリスト ボックス コントロールに変更したり、その逆に変更することはできません。


 関連項目

AddItem メソッド

List プロパティ

ListCount プロパティ

ListIndex プロパティ

RemoveItem メソッド

TopIndex プロパティ


Columns プロパティの対象

リスト ボックス (ListBox) コントロール


ColWidth プロパティ

関連項目	例	対象

指定した列の幅を twip 単位で設定します。値の取得も可能です。デザイン時には使えません。

構文

object.ColWidth(column) [= number]

ColWidth プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

column	列の位置を示す番号を指定します。

number	列の幅を示す数式を指定します。

解説

このプロパティを使って、実行時に任意の列の幅を設定できます。また、ユーザーも列と列の間にマウス ポインタを置いてクリックし、ドラッグして列幅を変更できます。


関連項目

RowHeight プロパティ


ColWidth プロパティの対象

グリッド (Grid) コントロール


Copies プロパティ

関連項目	対象

印刷部数を設定します。値の取得も可能です。Printer オブジェクトに使用する場合、デザイン時には使えません。

構文

object.Copies [= number]

Copies プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	印刷部数を示す数式を指定します。この値は整数でなければなりません。

解説

このプロパティは、ユーザーが [印刷] ダイアログ ボックスで、[部数] ボックスに入力した、印刷部数を取得します。コモン ダイアログ (CommonDialog) コントロールの UseDevModeCopies フラグが設定されている場合、このプロパティには常に 1 が設定されます。

Printer オブジェクトを使って複数の部数を印刷すると、ドライバによってはページ順に並ぶ場合と並ばない場合があります。文書全体の複数印刷も、各ページの複数印刷も可能ですが、プリンタが、ページ順に並んだ印刷をサポートしていない場合は、Copies プロパティを 1 に設定して、コードでループを使って文書全体の複数印刷をするようにしてください。

注   Printer オブジェクトのプロパティの設定の結果は、プリンタ メーカーが提供するドライバによって変わります。プロパティを設定しても効果がなかったり、異なるプロパティを設定しても、結果が同じになることもあります。また、有効な範囲を超えた設定を行うと、エラーになることもあります。ドライバの詳細な情報については、そのメーカーのマニュアルを参照してください。


関連項目

Duplex プロパティ

PaperBin プロパティ


Copies プロパティの対象

コモン ダイアログ (CommonDialog) コントロール

Printer オブジェクト


CurrentX、CurrentY プロパティ

関連項目	対象

次の表示、または描画メソッドの開始点の水平 (CurrentX プロパティ) および垂直 (CurrentY プロパティ) 座標を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.CurrentX [= x]
object.CurrentY [= y]

CurrentX、CurrentY プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

x	水平座標を示す数値を指定します。

y	垂直座標を示す数値を指定します。

解説

座標はオブジェクトの左上隅を基準にします。オブジェクトの左端では CurrentX プロパティは 0 で、上端では CurrentY プロパティが 0 です。座標は twip単位、または ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop、ScaleMode の各プロパティで決定される現在のスケールで表されます。

各種のグラフィックス メソッドを使うと、CurrentX プロパティと CurrentY プロパティの設定は、それぞれ次に示すように変更されます。

メソッド	新しい CurrentX、CurrentY プロパティの設定

Circle	オブジェクトの中心

Cls	0, 0

EndDoc	0, 0

Line	線の終了点

NewPage	0, 0

Print	次の表示位置

PSet	描かれた点


関連項目

Circle メソッド

Cls メソッド

DrawMode プロパティ

DrawStyle プロパティ

EndDoc メソッド

Left、Top プロパティ

Line メソッド

NewPage メソッド

Print メソッド

PSet メソッド

ScaleHeight、ScaleWidth プロパティ

ScaleLeft、ScaleTop プロパティ


CurrentX、CurrentY プロパティの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


Default プロパティ

関連項目	対象

フォームで、デフォルト ボタンとなるコマンド ボタン (CommandButton) コントロールを設定します。値の取得も可能です。

構文

object.Default[= boolean]

Default プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	コマンド ボタンを、デフォルトのコマンド ボタンにするかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定は次のとおりです。

設定値	内容

True	設定されたコマンド ボタン コントロールが、デフォルトのコマンド ボタンになります。

False	(既定値) コマンド ボタン コントロールは、デフォルトのコマンド ボタンにはなりません。

解説

1 つのフォームでこのプロパティを設定できるコマンド ボタンは 1 つだけです。あるコマンド ボタンの Default プロパティが真 (True) に設定されると、そのフォームの他のすべてのボタンの Default プロパティは自動的に偽 (False) に設定されます。Default プロパティが真 (True) に設定されていて、その親フォームがアクティブであるとき、ユーザーは Enter キーを押すことでそのコマンド ボタンを選択できます。つまり、Click イベントを発生させます。ユーザーが同じフォームの他のコマンド ボタンにフォーカスを移動しない限り、他のフォーカスのあるコントロールが、Enter キーのキーボード イベント (KeyDown、KeyPress、KeyUp) を受け取ることはできません。同じフォームの他のコマンド ボタンにフォーカスを移動した場合は、Enter キーを押すことによって、デフォルトのコマンド ボタンではなく、フォーカスを持っているコマンド ボタンが選択されます。

削除のように、取り消すことのできない操作を行うフォームやダイアログ ボックスでは、[キャンセル] ボタンの Default プロパティを真 (True) に設定して、それをデフォルトのコマンド ボタンにしてください。

OLE コンテナ (OLE) コントロールでは、Default プロパティは、コマンド ボタン コントロールとして動作するオブジェクトにだけ適用されます。


関連項目

Cancel プロパティ


Default プロパティの対象

コマンド ボタン (CommandButton) コントロール

OLE コンテナ (OLE) コントロール


DeviceName プロパティ

関連項目	対象

プリンタ ドライバがサポートしているデバイス名を取得します。

構文

object.DeviceName

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

プリンタ ドライバは 1 つまたはそれ以上のデバイスをサポートします。たとえば、OKI MICROLINE 801PS はデバイス名です。

注   Printer オブジェクトのプロパティの設定の結果は、プリンタ メーカーが提供するドライバによって変わります。プロパティを設定しても効果がなかったり、異なるプロパティを設定しても、結果が同じになることもあります。また、有効な範囲を超えた設定を行うと、エラーになることもあります。ドライバの詳細な情報については、そのメーカーのマニュアルを参照してください。


関連項目

hDC プロパティ


DeviceName プロパティの対象

Printer オブジェクト


DragIcon プロパティ

関連項目	例	対象

ドラッグ アンド ドロップ操作中に、ポインタとして表示されるアイコンを設定します。値の取得も可能です。

構文

object.DragIcon [= icon]

DragIcon プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

icon	アイコンとして有効な値を返すコードを指定します。フォームのアイコン (Form1.Icon) や他のコントロールの DragIcon プロパティ (Text1.DragIcon) を参照したり、LoadPicture 関数を使うことができます。

設定値

引数 icon の設定値は次のとおりです。

設定値	内容

(なし)	(既定値) 四角形に囲まれた矢印ポインタが表示されます。

Icon	指定したマウス ポインタが表示されます。アイコンを指定するには、デザイン時にプロパティ ウィンドウで、アイコン ファイルを指定してロードするか、または実行時に LoadPicture 関数を使います。ロードするファイルは、拡張子が .ICO で、アイコン ファイル形式でなければなりません。

解説

DragIcon プロパティを使うことにより、ドラッグ操作が行われていることをユーザーにわかりやすく伝えることができます。たとえば、ソース コントロールが対応するターゲット上にあることを示す場合などに使用できます。DragIcon プロパティに設定されたアイコンは、ユーザーがドラッグ操作を開始すると同時に有効になります。通常、DragIcon プロパティは MouseDown イベント プロシージャまたは DragOver イベント プロシージャで設定します。

注   実行時における DragIcon プロパティの設定値は、他のオブジェクトの DragIcon プロパティまたは Icon プロパティ、または LoadPicture 関数の戻り値として得られたアイコンのいずれでもかまいません。


関連項目

Drag メソッド

DragDrop イベント

DragMode プロパティ

LoadPicture 関数

MousePointer プロパティ


DragIcon プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

データ (Data) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


DragMode プロパティ

関連項目	例	対象

ドラッグ アンド ドロップ操作におけるドラッグ モードを手動と自動のどちらかに設定します。値の取得も可能です。

構文

object.DragMode [= number]

DragMode プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	ドラッグ モードを整数で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 number の設定値は次のとおりです。

設定値	内容

0	(既定値) 手動。

対象のコントロールのドラッグ アンド ドロップ操作を開始するには、Drag メソッドを使います。

1	自動。

対象のコントロールをクリックすると、自動的にドラッグ アンド ドロップ操作が開始されます。OLE コンテナ (OLE) コントロールは、フォーカスを持っていないときにだけ、自動的にドラッグされます。

解説

DragMode プロパティを 1 (自動) に設定すると、そのコントロールはマウスからの通常のイベントを認識しなくなります。ドラッグ アンド ドロップ操作の開始や終了を識別するには、0 (手動) に設定してください。この設定は、キーボードやメニュー コマンドに応答してドラッグ アンド ドロップ操作を開始したり、ドラッグ アンド ドロップ操作の前に、ソース コントロールに MouseDown イベントを認識させる場合に役立ちます。

ドラッグ アンド ドロップ操作中に、マウス ポインタがターゲット オブジェクトやフォーム内にあるときにマウスをクリックすると、ターゲット オブジェクトの DragDrop イベントが発生してドラッグ アンド ドロップ操作は終了します。ドラッグ アンド ドロップ操作によって DragOver イベントも発生します。

注   コントロールがドラッグされている間、ユーザーの操作によって発生するマウスやキーボードに関連した他のイベント (KeyDown、KeyPress、KeyUp、またはMouseDown、MouseMove、MouseUp) は認識されません。ただしコントロールは、コードまたは DDE リンクからの操作によって発生したイベントを認識します。


関連項目

DragDrop イベント

DragIcon プロパティ

DragOver イベント


DragMode プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

データ (Data) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ファイル リスト ボックス (FileListBox) コントロール

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


DrawMode プロパティ

関連項目	例	対象

グラフィックス メソッドの出力や、シェイプ (Shape) コントロールまたはライン (Line) コントロールの出力の外観を設定します。値の取得も可能です。

構文

object.DrawMode [= number]

DrawMode プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	外観を示す整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 number の設定値は次のとおりです。

設定値	内容

1	黒

2	Not Marge Pen

15 (Marge Pen) を反転した設定になります。

3	Mask Not Pen

ペンの反転色と背景色に共通する色を組み合わせて出力します。

4	Not Copy Pen

13 (Copy Pen) を反転した設定になります。

5	Mask Pen Not

ペンと表示色の反転色に共通する色を組み合わせて出力します。

6	Invert

表示色を反転して出力します。

7	Xor Pen

ペンと表示色に使われている色で、どちらか一方に含まれている色を組み合せて出力します。

8	Not Mask Pen

9 (Mask Pen) を反転した設定になります。

9	Mask Pen

ペンと表示色に共通する色を組み合わせて出力します。

10	Not Xor Pen

7 (Xor Pen) を反転した設定になります。

11	Nop (No operation)

色を加工せずにそのまま出力します。この設定にすると画面に描画されません。

12	Marge Not Pen

表示色とペンの反転色を組み合わせて出力します。

13	(既定値) Copy Pen

ForeColor プロパティで指定した色で出力します。

14	Marge Pen Not

ペンの色と、表示色の反転色を組み合わせて出力します。

15	Marge Pen

ペンの色と表示色を組み合わせて出力します。

16	白

解説

DrawMode プロパティは、シェイプ コントロールおよびライン コントロールや、グラフィックス メソッドを使って描画を行う場合に、視覚的効果を高めるために使います。描画パターンのピクセルと、対応する背景のピクセルを比較して、ビット単位で演算を行って結果を画面に出力します。たとえば、7 (Xor Pen) に設定すると、描画パターンと背景のピクセルに対して Xor 演算子を行います。

DrawMode プロパティの設定による実際の画面表示は、実行時における表示方法と画面の背景の状況に応じて変化します。1、6、7、11、13、16 のいずれかの値に設定した場合は、通常、必要とする出力イメージに近いものになります。


関連項目

DrawStyle プロパティ

DrawWidth プロパティ

FillColor プロパティ

FillStyle プロパティ

BackColor、ForeColor プロパティ

Xor 演算子


DrawMode プロパティの対象

Form オブジェクト

ライン (Line) コントロール

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト

シェイプ (Shape) コントロール


DrawStyle プロパティ

関連項目	例	対象

グラフィックス メソッドで使う、線の種類を設定します。値の取得も可能です。

構文

object.DrawStyle [= number]

DrawStyle プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	線の種類を整数で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 number の設定値は次のとおりです。

設定値	内容

0	(既定値) 実線

1	鎖線

2	点線

3	一点鎖線

4	二点鎖線

5	透明

6	塗りつぶし

解説

DrawWidth プロパティを 1 より大きい値に設定したときは、DrawStyle プロパティが 1 ～ 4 の範囲の値であっても画面には実線しか表示されません。ただし、DrawStyle プロパティは設定された値を保持します。一方、DrawWidth プロパティを 1 に設定したときは、DrawStyle プロパティの設定に従って、上に示した種類の線が表示されます。


関連項目

Circle メソッド

DrawMode プロパティ

DrawWidth プロパティ

FillColor プロパティ

FillStyle プロパティ

BackColor、ForeColor プロパティ

Line メソッド

PSet メソッド


DrawStyle プロパティの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


Drive プロパティ

関連項目	例	対象

ドライブ リスト ボックス (DriveListBox) コントロールで実行時に選択されているドライブを設定します。値の取得も可能です。デザイン時には使えません。

構文

object.Drive [= drive]

Drive プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

drive	選択されているドライブを示す文字列式を指定します。

解説

Drive プロパティを使うと、実行時にコントロールが作成または更新された時点の、システムのすべての有効なドライブ (ネットワーク上のドライブを含む) を取得できます。特に指定しない限り、Drive プロパティには、コントロールがロードされたときのドライブが設定されます。

Drive プロパティを使って現在設定されているドライブ名を調べるときは、次のいずれかの形式でドライブ名を取得できます。

フロッピー ディスクの場合

"a:"、"b:" など

ハード ディスクの場合

"c: [volume id]"

ネットワーク上のドライブの場合

"x: \\server\share"

Drive プロパティの設定を変更する場合、次のような点に注意する必要があります。

文字列の最初の 1 文字だけが有効です。ただし、大文字と小文字は区別されません。

Drive プロパティの設定が変更されると Change イベントが発生します。

存在しないドライブを指定するとエラーが発生します。

Drive プロパティの設定が変更されると、そのとき有効なドライブが自動的に再度チェックされます。これによって、実行中に接続されたネットワーク上のドライブを調べることができます。

FileName プロパティにドライブ名の指定なしで有効なネットワーク パス名が設定されている場合は、Drive プロパティの値は長さ 0 の文字列 ("") になり、ドライブは選択されず、ListIndex プロパティには -1 が設定されます。

注   Drive プロパティの返す値は、ListIndex プロパティが返す値とは異なります。ListIndex プロパティは選択されたリスト ボックスの値を返します。


関連項目

FileName プロパティ

ListIndex プロパティ

Path プロパティ

PathChange イベント

Pattern プロパティ

PatternChange イベント


Drive プロパティの対象

ドライブ リスト ボックス (DriveListBox) コントロール


DriverName プロパティ

関連項目	対象

Printer オブジェクトのプリンタ ドライバ名を返します。

構文

object.DriverName

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

ドライバにはそれぞれに名前があります。たとえば、ポストスクリプト プリンタのいくつかに対応するドライバの DriverName プロパティは PSCRIPT です。通常、DriverName プロパティには、拡張子を含まないプリンタ ドライバのファイル名が設定されます。

注   Printer オブジェクトのプロパティを設定する場合、その設定の結果はプリンタ メーカーが提供するドライバによって異なります。プロパティを設定しても効果がなかったり、プロパティに異なる値を設定しても、結果が同じになることもあります。また、有効な範囲を超えた設定を行うと、エラーになることもあります。ドライバの詳細な情報については、そのメーカーのマニュアルを参照してください。


関連項目

DeviceName プロパティ


DriverName プロパティの対象

Printer オブジェクト


Duplex プロパティ

対象

プリンタが両面印刷機能を持っている場合に、両面印刷を行うかどうかを設定します。値の取得も可能です。デザイン時には使えません。

構文

object.Duplex [= value]

Duplex プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	印刷の種類を示す値または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbPRDPSimplex	1	現在の用紙方向の設定に従って片面印刷を行います。

vbPRDPHorizontal	2	水平方向に裏返して、両面印刷を行います。

vbPRDPVertical	3	垂直方向に裏返して、両面印刷を行います。

解説

水平方向の両面印刷では、両面の上端と下端が同じ位置になります。垂直方向の両面印刷では、あるページの下端と、次のページの上端が、同じ位置になります。次の図に水平方向と垂直方向の両面印刷の違いを示します。

注   Printer オブジェクトのプロパティを設定する場合、その設定の結果はプリンタ メーカーが提供するドライバによって異なります。プロパティを設定しても効果がなかったり、プロパティに異なる値を設定しても、結果が同じになることもあります。また、有効な範囲を超えた設定を行うと、エラーになることもあります。ドライバの詳細な情報については、そのメーカーのマニュアルを参照してください。


Duplex プロパティの対象

Printer オブジェクト


FileName プロパティ

関連項目	例	対象

ファイル リスト ボックス (FileListBox) コントロールでそのとき選択されているファイルのパスおよびファイル名を設定します。値の取得も可能です。ファイル リスト ボックス コントロールおよび ProjectTemplate オブジェクトに使用する場合には、デザイン時には使えません。

構文

object.FileName [=  pathname]

FileName プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

pathname	パスおよびファイル名を含む文字列式を指定します。

解説

実行時にコントロールを作成、表示した時点では、FileName プロパティは選択されたファイルがないことを示す長さ 0 の文字列 ("") が設定されます。

コモン ダイアログ (CommonDialog) コントロールの場合は、ダイアログ ボックスを開く前にファイル名を設定できます。

FileName プロパティは、リスト内の現在選択 (強調表示) されているファイル名を返します。パス名は Path プロパティを使ってファイル名とは別に返します。FileName プロパティの値は、List (ListIndex) プロパティの値と等しくなります。ファイルが選択されていないときは、FileName プロパティは、長さ 0 の文字列を返します。

このプロパティを設定するときは、次に示す点に注意する必要があります。

ドライブ、パス、パターンを含む文字列をファイル名として指定すると、Drive、Path、Pattern の各プロパティも変更されます。

既存のファイル名 (ワイルド カードを含む) を文字列に指定すると、そのファイルが強調表示されます。

FileName プロパティを変更すると、変更の内容に応じて、PathChange (パスを変更した場合)、PatternChange (パターンを変更した場合)、DblClick (既存のファイル名を直接指定した場合) の各イベントが発生します。

次の構文を使って、FileName プロパティに有効なネットワーク パスとファイル名を指定することもできます。

\\servername\sharename\pathname


関連項目

Drive プロパティ

List プロパティ

ListIndex プロパティ

Path プロパティ

PathChange イベント

Pattern プロパティ

PatternChange イベント


FileName プロパティの対象

コモン ダイアログ (CommonDialog) コントロール

ファイル リスト ボックス (FileListBox) コントロール

ProjectTemplate オブジェクト (アドイン)


FillColor プロパティ

関連項目	例	対象

図形内部の塗りつぶしに使う色を設定します。値の取得も可能です。Circle、Line などのグラフィックス メソッドで表示した図形内部の塗りつぶしに使う色の指定にも使用します。

構文

object.FillColor [= value]

FillColor プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	塗りつぶしに使う色を決定する値か定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

通常の RGB カラー	RGB 関数や QBColor 関数で指定した色になります。

システム カラー	オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにある、システム カラー定数を使って指定した色です。Microsoft Windows では、ユーザーがコントロール パネルで行った設定に従って色が割り当てられます。

FillColor プロパティの既定値は 0 (黒) に設定されています。

解説

FillStyle プロパティが、既定値の 1 (透明) に設定されている場合は、FillColor プロパティの設定は無効になります。Form オブジェクト以外のオブジェクトで、FillStyle プロパティが既定値の 1 (透明) に設定されている場合、FillColor プロパティの設定は無効になります。


関連項目

BackColor、ForeColor プロパティ

カラー定数

FillStyle プロパティ

QBColor 関数

RGB 関数


FillColor プロパティの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト

シェイプ (Shape) コントロール


FillStyle プロパティ

関連項目	例	対象

グリッド (Grid) コントロール

グリッド コントロールの Text プロパティで設定されたデータをどのように読み込むかを設定し、それが選択されたすべてのセルに表示されるかどうかを設定します。値の取得も可能です。

その他のすべてのオブジェクト

シェイプ (Shape) コントロール、および Circle、Line の各グラフィックス メソッドで作成された円と四角を塗りつぶすときのパターンを設定します。値の取得も可能です。

構文

object.FillStyle [= number]

FillStyle プロパティの構文の指定項目は、次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	塗りつぶしのパターンを整数で指定します。設定する値については、次の「設定値」を参照してください。

設定値

グリッド コントロールの引数 number の設定値は次のとおりです。

設定値	内容

0	Single

Text プロパティを変更されると、アクティブ セルだけが影響を受けます。

1	Repeat

Text プロパティが変更されると、すべての選択されているセルが影響を受けます。

その他のオブジェクトの引数 number の設定値は次のとおりです。

設定値	内容

0	塗りつぶし

1	(既定値) 透明

2	横線

3	縦線

4	斜線 (左上 - 右下)

5	斜線 (左下 - 右上)

6	クロス

7	網かけ

解説

FillStyle プロパティが 1 (透明) に設定されている場合は、FillColor プロパティは無効になります。Form オブジェクト以外のオブジェクトで、FillStyle プロパティが既定値の 1 (透明) に設定されている場合、FillColor プロパティの設定は無効になります。


関連項目

BorderStyle プロパティ

FillColor プロパティ

Paint イベント


FillStyle プロパティの対象

Form オブジェクト

グリッド (Grid) コントロール

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト

シェイプ (Shape) コントロール


FixedAlignment プロパティ

関連項目	例	対象

特定の列の固定型セルのデータの配置を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.FixedAlignment(column) [= number]

FixedAlignment プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

column	列の番号を指定します。

number	データの配置方法を示す整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 numbe の設定値は次のとおりです。

設定値	内容

0	(既定値) 左詰め。

1	右詰め。

2	中央揃え。

3	引数 column で指定された列の ColAlignment プロパティの設定を使います。

解説

FixedAlignment プロパティは、ColAlignment プロパティと同じような働きをします。ただし、このプロパティは固定型のセルの配置設定にのみ有効です。見出しの列の配置設定を他の列と異なる設定にしたい場合に役立ちます。


関連項目

ColAlignment プロパティ


FixedAlignment プロパティの対象

グリッド (Grid) コントロール


FixedCols、FixedRows プロパティ

関連項目	例	対象

グリッド (Grid) コントロールの固定型の列または固定型の行の総数を設定します。値の取得も可能です。既定値では、グリッド コントロールには、固定型の列と固定型の行がそれぞれ 1 つずつ設定されています。

構文

object.FixedCols [= number]
object.FixedRows [= number]

FixedCols プロパティおよび FixedRows プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	固定型の列、または固定型の行の総数を数式で指定します。

解説

固定型の列とは、グリッド コントロールの左側の固定された列のことで、固定型の行とは、グリッド コントロールの上端の固定された行のことです。固定型の列と行は、それぞれ任意の数だけ設定でき、設定しなくてもかまいません。固定型の列と行は灰色で表示され、他の列や行をスクロールしても動きません。固定型の列と行の色を変更することはできません。

固定型の列と行は、主に表計算アプリケーションで使われ、列名と行番号、または文字列の表示に使われます。

グリッド コントロールには、非固定型の列と行が少なくとも 1 つずつ必要です。グリッド コントロール上で設定できる非固定型の列と行の最大数は列または行数の総数から 1 を引いた数です。


関連項目

Cols、Rows プロパティ

FixedAlignment プロパティ


FixedCols、FixedRows プロパティの対象

グリッド (Grid) コントロール


FontCount プロパティ

関連項目	例	対象

現在の表示デバイスまたは有効なプリンタで、利用可能なフォントの数を返します。

構文

object.FontCount

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

FontCount プロパティは、Fonts プロパティと組み合わせて、利用可能な画面フォントやプリンタ フォントの一覧を取得するために使われます。Microsoft Visual Basic で利用できるフォントは、システム構成、表示デバイス、プリンタの種類によって異なります。


関連項目

FontName プロパティ

Fonts プロパティ


FontCount プロパティの対象

Printer オブジェクト

Screen オブジェクト


Fonts プロパティ

関連項目	例	対象

現在の表示デバイスまたは有効なプリンタで、利用可能なフォントの名前を返します。

構文

object.Fonts(index)

Fonts プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	0 から FontCount プロパティの値から 1 を引いた範囲の整数を指定します。

解説

Fonts プロパティは、FontCount プロパティと組み合わせて利用可能な画面フォントやプリンタ フォントの一覧を取得するために使われます。Microsoft Visual Basic で利用できるフォントは、システム構成、表示デバイス、プリンタの種類によって異なります。


関連項目

FontBold、FontItalic、FontStrikethru、FontUnderline プロパティ

FontName プロパティ

FontSize プロパティ

TextHeight メソッド

TextWidth メソッド


Fonts プロパティの対象

Printer オブジェクト

Screen オブジェクト


GridLines プロパティ

関連項目	例	対象

セルとセルの間の線を、表示するかどうかを設定します。値の取得も可能です。

構文

object.Gridlines[ = boolean]

Gridlines プロパティの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	セルとセルの間の線を、表示するかどうかをブール式で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値 	内容

True	(既定値) グリッド ラインを表示します。

False	グリッド ラインを表示しません。


関連項目

Cols、Rows プロパティ

GridLineWidth プロパティ


GridLines プロパティの対象

グリッド (Grid) コントロール

GridLineWidth プロパティ


hDC プロパティ

関連項目	例	対象

オブジェクトのデバイス コンテキストに設定されているハンドルを返します。

構文

object.hDC

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

hDC プロパティは、Microsoft Windows で使われているデバイス コンテキストのハンドルを取得します。Windows では、システム ディスプレイを管理するために、Printer オブジェクトやアプリケーションのフォームとピクチャ ボックス (PictureBox) コントロールに対してデバイス コンテキストが割り当てられています。hDC プロパティを使って、オブジェクトのデバイス コンテキストに対応するハンドルを参照することによって、Windows API を呼び出すときに渡す値を調べることができます。

コモン ダイアログ (CommonDialog) コントロールで、ReturnDC フラグを設定しているときは、このプロパティは [印刷] ダイアログ ボックスで選択されたプリンタのデバイス コンテキストのハンドルを返します。また ReturnIC フラグを設定しているときは、情報コンテキストを返します。

注  hDC プロパティの値はプログラムの実行中に変化する可能性があるため、取得したハンドルの値を変数に保存しておいて参照するのではなく、必要に応じて hDC プロパティを直接参照してください。

hDC プロパティの値は、AutoRedraw プロパティの設定に影響されます。フォームとピクチャ ボックス コントロールの AutoRedraw プロパティを真 (True) に設定しているときは、hDC プロパティは継続表示属性を持つグラフィックスのデバイス コンテキストのハンドルを返します。このハンドルは Image プロパティでも取得できます。一方、AutoRedraw プロパティを偽 (False) に設定しているときは、hDC プロパティはフォーム ウィンドウ、ピクチャ ボックス コントロールのデバイス コンテキストを指すハンドル (hDC) を返します。hDC プロパティの設定は、AutoRedraw プロパティの設定とは関係なく、プログラムの実行中に変化することに注意してください。


関連項目

AutoRedraw プロパティ

hWnd プロパティ

Icon プロパティ


hDC プロパティの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


HideSelection プロパティ

例	対象

コントロールがフォーカスを失ったときに、選択されているテキストを強調表示するかどうか指定します。

構文

object.HideSelection

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

HideSelection プロパティの設定値は次のとおりです。

設定値	内容

True	(既定値) コントロールがフォーカスを失うと、選択されたテキストは強調表示されません。

False	コントロールがフォーカスを失っても、選択されたテキストは強調表示のままです。

解説

このプロパティは、他のフォームやダイアログ ボックスにフォーカスがある場合 (ワード プロセッサ アプリケーションのスペル チェッカーを起動中など) に、どのテキストが選択された状態にあるかを示すために使われます。


HideSelection プロパティの対象

テキスト ボックス (TextBox) コントロール


HighLight プロパティ

関連項目	例	対象

選択されたセルを強調表示するかどうかを設定します。値の取得も可能です。

構文

object.Highlight [=boolean]

Highlight プロパティの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	選択されたセルを強調表示するかどうかをブール式で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	(既定値) 選択されたセルは強調表示されます。

False	選択されたセルは強調表示されません。

解説

このプロパティが偽 (False) に設定されている場合、ユーザーがセルの範囲を選択しても、それを示す表示は行われません。


関連項目

Col、Row プロパティ


HighLight プロパティの対象

グリッド (Grid) コントロール


hWnd プロパティ

関連項目	例	対象

フォームまたはコントロールに、ハンドルを返します。

注   このプロパティは OLE コンテナ (OLE) コントロールでは、サポートされていません。

構文

object.hWnd

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Microsoft Windows では、アプリケーション内の各フォームおよびコントロールを識別するために、各オブジェクトにハンドル hWnd を割り当てます。hWnd プロパティは Windows API の呼び出しで使われます。Windows で使われる多くの関数は、引数として現在のウィンドウの hWnd を必要とします。

注   hWnd プロパティの値はプログラムの実行中に変更される可能性があるので、値は変数に格納しないで、直接参照するようにしてください。


関連項目

Declare ステートメント

hDC プロパティ

Icon プロパティ


hWnd プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


Image プロパティ

関連項目	例	対象

継続表示属性を持つグラフィックスに対応するハンドルを返します。ハンドルの値は、Microsoft Windows によって自動的に設定されます。

構文

object.Image

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Image プロパティは、Windows におけるビットマップ ハンドルを示します。AutoRedraw プロパティが真 (True) に設定されていると、そのオブジェクト内のグラフィックスは継続表示属性を持つグラフィックスとしてメモリに保存され、再描画が必要なときに Paint イベントを使わずに処理できます。Windows はオブジェクトの継続表示属性を持つグラフィックスを操作するためにハンドルを割り当てますが、Image プロパティを使うと、このハンドルを取得できます。

Image プロパティの値は、AutoRedraw プロパティの設定とは関係なく存在します。AutoRedraw プロパティが真 (True) に設定されていて、描画されたグラフィックスが存在しない場合は、BackColor プロパティで設定された色とピクチャだけが表示されます。

Image プロパティの値を、Picture プロパティに割り当てることができます。また、Image プロパティの値を、Windows API を呼び出すときに渡すこともできます。

他のプロパティに値を割り当てる場合、SavePicture ステートメントを使って保存する場合、またはクリップボードに保管する場合は、Image、DragIcon、Picture の 3 つのプロパティは直接そのプロパティを指定して設定しなければなりません。これらのプロパティの値を別の一時的な変数に代入して、その変数を使って値を引き渡すという操作を行うことはできません。

AutoRedraw プロパティの設定によっては、グラフィックスのハンドルである Image プロパティが変更される場合があります。つまり、AutoRedraw プロパティが真 (True) のとき、オブジェクトの hDC プロパティは Image プロパティのグラフィックスを含むデバイス コンテキストへのハンドルになります。


関連項目

AutoRedraw プロパティ

BackColor プロパティ

DragIcon プロパティ

Paint イベント

Picture プロパティ

SavePicture ステートメント


Image プロパティの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール


ItemData プロパティ

関連項目	例	対象

コンボ ボックス (ComboBox) コントロール、またはリスト ボックス (ListBox) コントロールに含まれる各項目に、個別の番号を設定します。値の取得も可能です。

構文

object.ItemData(index) [= number]

ItemData プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	オブジェクトに含まれる項目を示す番号を指定します。

number	引数 index で指定される項目と関連付ける個別の番号を指定します。

解説

ItemData プロパティは、長整数型 (Long) の値を構成要素とする配列で、コントロールの List プロパティと同じ数の項目を含みます。これらの番号は、リスト内の各項目を指定するために使用できます。たとえば、雇用者名を並べたリスト ボックス コントロールの各雇用者に ID 番号を割り振ることができます。リスト ボックスを作成するときに、ItemData プロパティの配列の対応する項目にも番号を割り振ります。

通常、ItemData プロパティはリスト ボックス コントロール内の項目であるデータの配列にインデックス番号を割り振るために使います。

注   AddItem メソッドを使ってリストに項目を追加したときは、項目は自動的に ItemData プロパティの配列にも追加されます。ただし、その値は初期化された値が割り当てられるのではなく、リスト内の追加された場所の項目に割り当てられていた ItemData プロパティと同じ値になります。ItemData プロパティを使うときは、新しくリストに追加する項目に割り当てる値を必ず代入するようにしてください。


関連項目

AddItem メソッド

List プロパティ

ListIndex プロパティ

NewIndex プロパティ

RemoveItem メソッド

Selected プロパティ

TopIndex プロパティ


ItemData プロパティの対象

コンボ ボックス (ComboBox) コントロール

リスト ボックス (ListBox) コントロール


 KeyPreview プロパティ

関連項目	例	対象

フォームのキーボード イベントとコントロールのキーボード イベントのどちらを先に実行するかを設定します。値の取得も可能です。キーボード イベントには KeyDown、KeyUp、KeyPress があります。

構文

object.KeyPreview [= boolean]

KeyPreview プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	イベントを受け取る順番をブール式で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	まずフォームがキーボード イベントを受け取り、その後でアクティブなコントロールがキーボード イベントを受け取ります。

False	(既定値) アクティブなコントロールがキーボード イベントを受け取ります。フォームは受け取りません。

解説

このプロパティは、ユーザーからのキー入力に対する処理を個々のコントロールで行うのではなく、フォームで一括して処理するようなアプリケーションを作成するときに利用します。たとえば、ファンクション キーを使うアプリケーションでは、キー入力に関するイベントを個々のコントロールに対するイベントとして受け取るよりも、フォームで処理する方が効率的です。フォームが表示されておらず、その中のコントロールが有効ならば、そのフォームが自動的にすべてのキーボード イベントを受け取ります。キーボード イベントの処理をフォーム レベルだけで行い、コントロールにキーボード イベントを送らないようにするには、フォームの KeyPress イベントで引数 KeyAscii を 0 に設定し、フォームの KeyDown イベントで引数 KeyCode を 0 に設定します。

注   フォームがキーボード イベントを受け取る前に、そのキーボード イベントを受け取るコントロールがあります。たとえば、フォーカスがコマンド ボタン (CommandButton) コントロールにあるときの Enter キー、およびフォーカスがリスト ボックス (ListBox) コントロールにあるときの方向キーなどがあります。


関連項目

KeyDown、KeyUp イベント

KeyPress イベント


KeyPreview プロパティの対象

Form オブジェクト、Forms コレクション


LargeChange、SmallChange プロパティ

関連項目	例	対象

LargeChange プロパティ

ユーザーがスクロール ボックスとスクロール バーの矢印ボタンの間の領域をクリックしたときにスクロールする量を、スクロール バー (HScrollBar または VScrollBar) コントロールの Value プロパティに設定します。値の取得も可能です。

SmallChange プロパティ

ユーザーがスクロール バーの矢印ボタンをクリックしたときにスクロールする量を、スクロール バー コントロールの Value プロパティに設定します。値の取得も可能です。

構文

object.LargeChange [= number]
object.SmallChange [= number]

LargeChange プロパティおよび SmallChange プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	Value プロパティに設定するスクロール量を整数で指定します。

解説

LargeChange プロパティおよび SmallChange プロパティには、1 ～ 32,767の範囲の整数を指定します。既定値はいずれも 1 です。

Form オブジェクト、コンボ ボックス (ComboBox) コントロール、リスト ボックス (ListBox) コントロールのスクロール バーでは、表示されるデータの量に基づいて、Microsoft Windows が自動的にスクロール量を調整します。一方、スクロール バー コントロールの場合は、これらのスクロール量を設定する必要があります。LargeChange プロパティと SmallChange プロパティのスクロール量は、スクロール バーの利用目的に応じて設定してください。

通常、LargeChange プロパティおよび SmallChange プロパティの値はデザイン時に設定しますが、必要に応じて実行時にコードで動的に変更することもできます。

注   スクロール バー コントロールの設定可能範囲 (Value プロパティの最大値と最小値) を設定するには、Max プロパティおよび Min プロパティを使います。


関連項目

Change イベント

Max、Min プロパティ

Value プロパティ


LargeChange、SmallChange プロパティの対象

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール


LeftCol プロパティ

関連項目	例	対象

グリッド (Grid) コントロール、または DB グリッド (DBGrid) コントロールの左端に表示する列 (固定型の列を除く) を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.LeftCol [= number]

LeftCol プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	表示する列を数式で指定します。既定値は 0 です。

解説

LeftCol プロパティを使うと、コードを記述して、グリッド コントロールまたは DB グリッド コントロールをスクロールすることができます。グリッド コントロールまたは DB グリッド コントロールの上端に表示する行を指定するには、TopRow プロパティを使います。


関連項目

Col、Row プロパティ

TopRow プロパティ


LeftCol プロパティの対象

DB グリッド (DBGrid) コントロール

グリッド (Grid) コントロール


LinkItem プロパティ

関連項目	例	対象

他のアプリケーションとの間の DDE 通信でディスティネーション コントロールに渡されるデータを設定します。値の取得も可能です。

構文

object.LinkItem [= string]

LinkItem プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	ディスティネーション コントロールに渡されるデータを示す文字列式を指定します。

解説

このプロパティは、application、topic、item を引数として、標準的な DDE の構文の引数 item に対応します。このプロパティを設定する場合は、アプリケーションで対象となるデータを参照するための指定方法に従う必要があります。Microsoft Excel では "R1C1" のように指定します。

LinkTopic プロパティと LinkItem プロパティを組み合わせて指定することにより、ソース アプリケーションとの間に完全なデータ リンクを作成できます。作成したリンクをアクティブにするには、LinkMode プロパティを使います。

LinkItem プロパティはディスティネーション側のコントロールで設定します。Microsoft Visual Basic のフォームが、DDE 通信のソースになる場合は、ディスティネーションが使う文字列 application|topic!item の item に該当する部分として、フォーム内の任意のラベル (Label)、ピクチャ ボックス (PictureBox)、テキスト ボックス (TextBox) の各コントロールを指定できます。たとえば、次の構文は Excel から Visual Basic アプリケーションを参照する場合に有効な構文です。

=VizBasicApplication|MyForm!TextBox1

この構文を、Excel の数式バーの中のディスティネーション セルに記述することができます。

DDE コントロールはディスティネーションとソースの役割を同時に果たすことができます。ただし、ディスティネーション - ソースの組み合わせで対応しているコントロールどうしが同時にソース - ディスティネーションの役割を持っている場合には、無限ループに入ってしまいます。たとえば、テキスト ボックス コントロールは、Excel の同一のセルに対してソース (親フォームを通じて) にもディスティネーションにもなれます。Visual Basic のテキスト ボックス コントロールのデータが変更されると、そのデータは Excel に送られます。この結果セルが変更されて、再びテキスト ボックス コントロールにデータが送られます。これを繰り返してループが発生します。

このようなループを回避するには、アプリケーション間で双方向に通信するときに、同じアイテムの組み合わせで同時にディスティネーション - ソースとソース - ディスティネーションのリンクを作成することを避け、リンクごとに別のアイテムを用意します。たとえば、Excel のワークシートを Visual Basic のコントロールとの間で双方向に通信するときは、precedents や dependents によって関連付けられた 2 つのセルを使って、1 つのアイテムが同時にディスティネーションとソースにならないようにします。実行時に [リンク貼り付け] コマンドが使用できるようにしてある場合は、あらかじめ作成されている application|topic ペアを、ユーザーに知らせる必要があります。

注   デザイン時に [編集] - [リンク貼り付け] コマンドを使って、永久データ リンクを作成すると、LinkMode、LinkTopic、LinkItem の各プロパティの値も設定されます。設定したリンクはフォームに保管されます。フォームがロードされるたびに、Visual Basic は通信の再開を試みます。


関連項目

LinkMode プロパティ

LinkTopic プロパティ


LinkItem プロパティの対象

ラベル (Label) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


LinkMode プロパティ

関連項目	例	対象

DDE 通信のリンクの種類を設定します。値の取得も可能です。また次のように接続をアクティブにします。

コントロールの場合

Microsoft Visual Basic のフォームのディスティネーション コントロールに対してこのプロパティを設定すると、LinkTopic プロパティと LinkItem プロパティの設定に従って通信が開始されます。

フォームの場合

Visual Basic のフォームに対してこのプロパティを設定すると、ディスティネーション アプリケーションの式 application|topic!item に従ってソース フォームとしての通信が開始されます。

構文

object.LinkMode [= number]

LinkMode プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	通信の種類を整数で指定します。設定する値については、次の「設定値」を参照してください。

設定値

DDE 通信のディスティネーションとなるコントロールの、引数 number の設定値は次のとおりです。

設定値	内容

0	(既定値) なし。

DDE 通信は行われません。

1	自動。

リンク先のデータが変更されるたびに、ディスティネーション コントロールのデータも更新されます。

2	手動。

ディスティネーション コントロールは、LinkRequest メソッドを実行したときに限って更新されます。

3	通知。

リンク先のデータが変更されるたびに、LinkNotify イベントが発生しますが、更新は行われません。LinkRequest メソッドを実行したときに限って更新されます。

DDE 通信のソースとなるフォームの、引数 number の設定値は次のとおりです。

設定値	内容

0	(既定値) なし。

DDE 通信は行われません。他のディスティネーション アプリケーションが、このソース フォームをトピックとして通信を開始したり、データのポークを行うことはできません。デザイン時に LinkMode プロパティを 0 (なし) に設定してしまうと、実行時に 1 (ソース) に変更することはできません。

1	ソース。

フォーム内の任意のラベル (Label)、ピクチャ ボックス (PictureBox)、テキスト ボックス (TextBox) の各コントロールは、そのフォームに対して DDE 通信の開始を求めてきたディスティネーション アプリケーションに、データを供給できます。このリンクでは、Visual Basic はコントロールのデータに変更があったときは、自動的にディスティネーションに通知します。また、ディスティネーション アプリケーションは、フォーム内の任意のラベル、ピクチャ ボックス、またはテキスト ボックスの各コントロールのデータに対してポークすることもできます。デザイン時に LinkMode プロパティを 1 (ソース) に設定したときは、実行時に 0 (なし) に変更したり再び戻したりできます。

解説

LinkMode プロパティを使う場合、次に示す条件が適用されます。

ディスティネーション コントロールの LinkMode プロパティを 0 以外の値に設定すると、Visual Basic は LinkTopic プロパティと LinkItem プロパティで指定されているソースに対して通信要求を行います。ソースは指定されたリンクの種類 (自動、手動、通知のいずれか) に従ってディスティネーション コントロールのデータを更新します。

ラベル、ピクチャ ボックス、テキスト ボックスの各コントロールと、ソース アプリケーションとの間で自動リンクが成立していると、新しいデータが入力されるたびに Change イベントが発生します。Change イベントは、入力されたデータが現在のコントロールの値と同一であっても発生します。ラベル コントロールでは、これ以外に Change イベントが発生することはありません。

ソース アプリケーションが Visual Basic のディスティネーション コントロールとの通信を終了すると、そのコントロールの LinkMode プロパティは 0 (なし)に設定されます。

デザイン時にフォームの LinkMode プロパティを、既定値 0 (なし) に設定しておくと、実行時に設定を変更することはできません。フォームをソースとして動作させるには、デザイン時に LinkMode プロパティを 1 (ソース)に設定します。これによって、実行時に LinkMode プロパティの値を変更できます。

注   デザイン時に [編集] - [リンク貼り付け] コマンドを使って、永久データ リンクを作成すると、LinkMode、LinkTopic、LinkItem の各プロパティの値も設定されます。設定されたリンクはフォームに保管されます。フォームがロードされるたびに、Visual Basic は通信の再開を試みます。


関連項目

LinkClose イベント

LinkError イベント

LinkExecute イベント

LinkExecute メソッド

LinkItem プロパティ

LinkNotify イベント

LinkOpen イベント

LinkRequest メソッド

LinkSend メソッド

LinkTimeout プロパティ

LinkTopic プロパティ


LinkMode プロパティの対象

Form オブジェクト

ラベル (Label) コントロール

MDIForm オブジェクト

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


LinkTimeout プロパティ

関連項目	対象

コントロールが DDE メッセージに対する応答を待つ時間を設定します。値の取得も可能です。

構文

object.LinkTimeout [= number]

LinkTimeout プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	待ち時間を示す数式を指定します。

解説

既定値では、LinkTimeout プロパティは 50 (5 秒) に設定されています。必要な秒数の 10 倍の値を設定してください。

DDE 通信の応答が返ってくる時間はソース アプリケーションによってさまざまです。LinkTimeout プロパティを変更すると、ディスティネーション コントロールがソース アプリケーションからの応答を待つ時間を調節できます。これによって、ソース アプリケーションの応答が遅いという理由で、Microsoft Visual Basic がエラーを発生するのを防ぐことができます。

注   コントロールの最大待機時間は設定値で 65,535 (約 6553.5 秒) つまり約 1 時間 49 分です。LinkTimeout プロパティを -1 に設定すると、そのコントロールは最大待機時間だけ DDE 通信の応答を待ちます。ユーザーが Esc キーを押すと、コントロールは待機を中断します。


関連項目

LinkClose イベント

LinkItem プロパティ

LinkMode プロパティ

LinkOpen イベント

LinkSend メソッド

LinkTopic プロパティ


LinkTimeout プロパティの対象

ラベル (Label) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


Locked プロパティ

関連項目	対象

コントロールの設定変更が可能かどうかを設定します。値の取得も可能です。

構文

object.Locked [ = boolean]

Locked プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	コントロールの設定変更が可能かどうかをブール式で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	テキスト ボックス (TextBox) コントロールの場合、コントロール内のテキストのスクロールと強調表示は可能ですが、変更はできません。コードを使用すれば、Text プロパティを変更してテキストを修正できます。

Column オブジェクトの場合、行の値は、変更はできません。

False	テキスト ボックス コントロールの場合、コントロール内のテキストを変更できます。

Column オブジェクトの場合、行の値の変更が可能です。

解説

Column オブジェクトの場合、基のフィールドの DataUpdatable プロパティの値が、Locked プロパティの既定値になります。ただし、Column オブジェクトが連結されていないか、またはデータ ソースで DataUpdatable プロパティがサポートされていない場合は、既定値は真 (True) になります。基のフィールドの DataUpdatable プロパティが偽 (False) の場合、このプロパティを真 (True) に設定しても、エラーは発生しません。ただし、変更したデータをデータ ベースに書き込もうとすると、エラーが発生します。


 関連項目

DataUpdatable プロパティ

ReadOnly プロパティ


Locked プロパティの対象

Column オブジェクト

テキスト ボックス (TextBox) コントロール


ReadOnly プロパティ

関連項目	対象

オブジェクトの設定変更が可能かどうかを設定します。値の取得も可能です。

構文

object.ReadOnly [ = boolean]

ReadOnly プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	コントロールの設定変更が可能かどうかをブール式で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	データ (Data) コントロールの場合、コントロールの Database オブジェクトは、データに対して読み取り専用の権限で開かれます。データの変更はできません。

ファイル リスト ボックス (FileListBox) コントロールの場合、読み取り専用のファイルがリストに表示されます。

False	(既定値) データ コントロールの場合、コントロールの Database オブジェクトは、データに対して読み取りおよび書き込みの権限で開かれます。

ファイル リスト ボックス コントロールの場合、読み取りおよび書き込み可能なファイルがリストに表示されます。


ReadOnly プロパティの対象

データ (Data) コントロール

ファイル リスト ボックス (FileListBox) コントロール


関連項目

Database オブジェクト

Locked プロパティ


Align プロパティの例

次のプログラムでは、ピクチャ ボックス (PictureBox) コントロールを、MDI フォーム上でツールバーとして使います。このフォームには、ピクチャ ボックス コントロールをフォームの上端から下端へ移動するための コマンド ボタン (CommandButton) コントロールがあります。このプログラムを実行するには、新規に MDI フォームを作成し、Form1 の MDIChild プロパティを真 (True) に設定します。次に、ピクチャ ボックス コントロールをこの MDI フォームに配置します。さらに、コマンド ボタン コントロールをピクチャ ボックス コントロールに配置します。MDI フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、コマンド ボタン コントロールをクリックすると、ピクチャ ボックス コントロールが移動します。

Private Sub Command1_Click ()

If Picture1.Align = 1 Then

Picture1.Align = 2	' Align プロパティをフォームの最下部に設定します。

Else

Picture1.Align = 1	' Align プロパティをフォームの最上部に設定します。

End If

End Sub


AutoRedraw プロパティの例

次のプログラムでは、2 種類のグラフィックスをピクチャ ボックス (PictureBox) コントロールに交互に表示します。表示するグラフィックスは、継続表示属性を持つ塗りつぶされた円、および継続表示属性を持たない縦の直線です。ピクチャ ボックス コントロールをクリックすると、線を描画または再描画します。フォームの大きさを変更した場合、継続表示属性を持たないグラフィックスを再描画する必要があります。このプログラムを実行するには、フォームに Picture1 という名前でピクチャ ボックス コントロールを作成し、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームの大きさを変更するたびに、グラフィックスをクリックします。

Private Sub Form_Load ()

Picture1.ScaleHeight = 100	' スケールを 100 に設定します。

Picture1.ScaleWidth = 100

Picture1.AutoRedraw = True	' 自動的な再描画をオンにします。

Picture1.ForeColor = 0	' ForeColor プロパティを設定します。

Picture1.FillColor = QBColor(9)	' FillColor プロパティを設定します。

Picture1.FillStyle = 0	' FillStyle プロパティを設定します。

Picture1.Circle (50, 50), 30	' 円を描画します。

Picture1.AutoRedraw = False	' 自動的な再描画をオフにします。

End Sub

Private Sub Picture1_Click ()

Dim I	' 変数を宣言します。

Picture1.ForeColor = Rgb(Rnd * 255, 0, 0)	' 直線の色をランダムに選択します。

For I = 5 To 95 Step 10	' 直線を描画します。

Picture1.Line (I, 0)-(I, 100)

Next

End Sub


AutoShowChildren プロパティの例

次のプログラムでは、AutoShowChildren プロパティを利用して、MDI 子フォームのもう 1 つのインスタンスとして非表示のフォームを作成し、その後、表示する MDI 子フォームを作成します。このプログラムを実行するには、Form1 の MDIChild プロパティを真 (True) に設定します。次に、[挿入] - [MDI フォーム モジュール] コマンドで MDI フォームを作成します。MDI フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub MDIForm_Load()

MDIForm1.AutoShowChildren = False	' 子フォームをロード時に非表示にします。

Dim HideForm As New Form1	' 新しいフォームを宣言して、

HideForm.Caption = "非表示フォーム"	' そのキャプションを設定します。

Load HideForm	' 非表示のままロードします。

MDIForm1.AutoShowChildren = True	' 子フォームをロード時に表示します。

Dim ShowForm As New Form1	' もう 1 つ新規フォームを宣言して、

ShowForm.Caption = "表示フォーム"	' そのキャプションを設定します。

Load ShowForm	' 表示状態でロードします。

End Sub


CellSelected プロパティの例

次のプログラムでは、セルをランダムに選択し、グリッド (Grid) コントロールがクリックされたときに、そのセルが選択されているかどうかを示すメッセージを表示します。このプログラムを実行するには、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスの [Microsoft Grid Control] チェック ボックスを選択して、GRID16.OCX または GRID32.OCX をプロジェクトに追加します。次に、フォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、グリッド (Grid) コントロールとラベル (Label) コントロールをこのフォームに配置し、ラベル コントロールの AutoSize プロパティを真 (True) に設定し、F5 キーを押します。

Dim TRow As Integer

Dim TCol As Integer

Private Sub Form_Load ()

Grid1.Rows = 8	' 列と行の総数を設定します。

Grid1.Cols = 5

Randomize	' ランダムにセルを選択します。

TRow = Int(Rnd * (Grid1.Rows - 1)) + 1

TCol = Int(Rnd * (Grid1.Cols - 1)) + 1

End Sub

Private Sub Grid1_Click ()

Grid1.Row = TRow

Grid1.Col = TCol

' クリックしたセルが選択されているかを示すメッセージを表示します。

If Grid1.CellSelected Then	' クリックしたセルが選択されていた場合。

Label1.Caption = "見つかりました!"	' メッセージを表示します。

Else

Label1.Caption = "残念でした。もう一度。"

End If

End Sub


Clip プロパティの例

次のプログラムでは、ユーザーによってフォームがクリックされると、グリッド (Grid) コントロール内の選択した領域に現在の日時を表示します。このプログラムを実行するには、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスの [Microsoft Grid Control] チェック ボックスを選択して、GRID16.OCX または GRID32.OCX をプロジェクトに追加します。次に、新しいフォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、グリッド コントロールを配置し、F5 キーを押します。

Private Sub Form_Load ()

Grid1.Rows = 8	' 列と行の総数を設定します。

Grid1.Cols = 5

End Sub

Private Sub Form_Click ()

Dim Msg As String

Msg = "日付: " & Chr(9)	' テキスト文字列を作成します。

Msg = Msg & Format(Now, "Short Date") & Chr(13)

Msg = Msg & "時間: " & Chr(9)

Msg = Msg & Format(Now, "Short Time")

Grid1.Clip = Msg	' グリッドに文字列を貼り付けます。

End Sub


ClipControls プロパティの例

次のプログラムでは、ClipControls プロパティがフォームの再描画にどのように影響するかを示します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームのサイズを変更したり、フォームの一部が別のフォームまたはアプリケーションによって隠れるたびに、フォーム全体の色が変化します。プログラムを終了した後で、ClipControls プロパティを偽 (False) に設定し、プログラムを再び実行すると、フォームの新たに現れた部分だけが再描画されます。

Private Sub Form_Paint ()

' 背景色をランダムに選択します。

BackColor = &HFFFFFF * Rnd

End Sub


ColAlignment プロパティの例

次のプログラムでは、1 つのグリッド (Grid) コントロールを文字“m”で埋め、1 列おきに列の配置を右詰めに設定します。このプログラムを実行するには、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスの [Microsoft Grid Control] チェック ボックスを選択して、GRID16.OCX または GRID32.OCX をプロジェクトに追加します。次に、グリッド コントロールを新しいフォームに配置します。次にそのフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub Form_Load ()

' 列と行の総数を設定します。

Grid1.Cols = 5

Grid1.Rows = 8

' すべてのセルを選択します。

Grid1.SelStartCol = 1

Grid1.SelStartRow = 1

Grid1.SelEndCol = Grid1.Cols - 1

Grid1.SelEndRow = Grid1.Rows - 1

' すべてのセルに文字を設定します。

Grid1.FillStyle = 1	' 塗りつぶしをオンに設定します。

Grid1.Text = "m"

' 偶数番号の列の ColAlignment プロパティを設定します

For I = 2 To 4 Step 2

Grid1.ColAlignment(I) = 1	' 右詰めにします。

Next I

Grid1.FillStyle = 0	' 塗りつぶしをオフにします。

End Sub


Columns プロパティの例

次のプログラムでは、2 種類のリスト ボックス (ListBox) コントロールに同じデータが含まれている場合に、これらのコントロールがどのように機能するかを示します。このプログラムを実行するには、2 種類のリスト ボックス コントロールを配置したフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。List2 の Columns プロパティを 2 に設定し、F5 キーを押します。

Private Sub Form_Load ()

Dim I	' 変数を宣言します。

List1.Move 50, 50, 2000, 1750	' リスト ボックスを配置します。

List2.Move 2500, 50, 3000, 1750

For I = 0 To Screen.FontCount -1	' 2 つのリスト ボックスに、

List1.AddItem Screen.Fonts(I)	' スクリーン フォント名を表示します。

List2.AddItem Screen.Fonts(I)

Next I

End Sub


ColWidth プロパティの例

次のプログラムでは、選択した列の幅を > キーで大きくし、< キーで小さくできます。このプログラムを実行するには、新規にプロジェクトを作成し、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスの [Microsoft Grid Control] チェック ボックスを選択して、GRID16.OCX または GRID32.OCX を追加します。次に、グリッド (Grid) コントロールをフォームに配置します。次にこのフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub Form_Load ()

' 列と行の総数を設定します。

Grid1.Cols = 6

Grid1.Rows = 8

End Sub

Private Sub Grid1_KeyPress (KeyAscii As Integer)

Select Case KeyAscii

Case 62	' > key.

' 選択されている各列のインデックスを取得します。

For I = Grid1.SelStartCol To Grid1.SelEndCol

' 列の幅を 1 増やします。

Grid1.ColWidth(I) = Grid1.ColWidth(I) + 50

Next I

Case 60	' < key.

' 選択されている各列のインデックスを取得します。

For I = Grid1.SelStartCol To Grid1.SelEndCol

' 列の幅を 1 減らします。

Grid1.ColWidth(I) = Grid1.ColWidth(I) - 50

Next I

End Select

End Sub


DragIcon プロパティの例

次のプログラムでは、ピクチャ ボックス (PictureBox) コントロールをドラッグするたびに、DragIcon プロパティの設定を変更します。このプログラムを実行するには、ピクチャ ボックス コントロールを含むフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。DragMode プロパティを 1 に設定し、F5 キーを押します。起動後、ピクチャ ボックス コントロールをクリックして、ドラッグします。

Private Sub Form_DragDrop (Source As Control, X As Single, Y As Single)

Dim Pic	' 変数を宣言します。

Source.Move X, Y	' コントロールの位置を設定します。

Pic = "ICONS\OFFICE\CRDFLE01.ICO"	' アイコン ファイル名を取得します。

If Source.DragIcon = False Then	' ピクチャがロードされていない場合は、

Source.DragIcon = LoadPicture(Pic)	' ピクチャを読み込みます。

Else

Source.DragIcon = LoadPicture()	' ピクチャを削除します。

End If

End Sub


DragMode プロパティの例

次のプログラムでは、フォームをクリックするたびに、コマンド ボタン (CommandButton) コントロールをドラッグする機能の有効/無効を切り替えます。このプログラムを実行するには、コマンド ボタン コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

If Command1.DragMode = 0 Then	' DragMode プロパティを調べます。

Command1.DragMode = 1	' ドラッグを有効にします。

Else

Command1.DragMode = 0	' ドラッグを無効にします。

End If

End Sub


DrawMode プロパティの例

次のプログラムでは、マウス ポインタをドラッグするとフォーム上に図形を描画します。マウスをクリックするたびに、DrawMode プロパティに異なる値が設定されます。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Load

DrawWidth = 10	' DrawWidth プロパティを設定します。

End Sub

Private Sub Form_Click ()

Static M As Integer	' 現在の DrawMode プロパティの設定を保存するための変数。

ForeColor = QBColor(Int(Rnd * 15))	' 色を選択します。

M = ((M + 1) Mod 16) + 1	' DrawMode プロパティを 16 以下に保ちます。

DrawMode = M	' DrawWidth プロパティを設定します。

End Sub

Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button Then	' ボタンが押されている間、

PSet (X, Y)	' 大きな点を描画します。

End If

End Sub


DrawStyle プロパティの例

次のプログラムでは、7 本の線を、それぞれに異なる DrawStyle プロパティの設定を示しながら、フォームに描画します。AutoRedraw プロパティを真 (True) に設定すると、フォームのサイズを変更してクリックするたびに、フォームには新しい線を描画します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim I	' 変数を宣言します。

ScaleHeight = 8	' 高さを 8 で割ります。

For I = 0 To 6

DrawStyle = I	' スタイルを変更します。

Line (0, I + 1) - (ScaleWidth, I + 1)	' 新しい線を描画します。

Next I

End Sub


Drive プロパティの例

次のプログラムでは、カレント ドライブおよびディレクトリのファイルの一覧を表示します。このプログラムを実行するには、ドライブ リスト ボックス (DriveListBox) コントロール、ディレクトリ リスト ボックス (DirListBox) コントロール、およびファイル リスト ボックス (FileListBox) コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、ドライブまたはディレクトリを変更するには、マウスを使います。

Private Sub Drive1_Change ()

Dir1.Path = Drive1.Drive	' ドライブが変更された場合、ディレクトリ パスを設定します。

End Sub

Private Sub Dir1_Change ()

File1.Path = Dir1.Path	' ディレクトリが変更された場合、ファイルのパスを設定します。

End Sub


FileName プロパティの例

次のプログラムでは、ファイル リスト ボックス (FileListBox) コントロールに表示されているファイル名をダブルクリックすると、ラベル (Label) コントロールにメッセージを表示します。このプログラムを実行するには、ラベル コントロール、ディレクトリ リスト ボックス (DirListBox) コントロール、およびファイル リスト ボックス コントロールをフォームにそれぞれ配置します。フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、ファイル リスト ボックス コントロール内の任意のファイル名をダブルクリックします。

Private Sub Dir1_Change ()

File1.Path = Dir1.Path	' File1 にパスを設定します。

End Sub

Private Sub File1_PathChange ()

Dir1.Path = File1.Path	' Dir1 にパスを設定します。

End Sub

Private Sub File1_DblClick ()

' ダブルクリックされたときに、選択されたファイル名を表示します。

Label1.Caption = "選択されたファイル名は: " + UCase(File1.FileName)

End Sub


FillColor プロパティの例

次のプログラムでは、マウスをクリックすると、FillColor プロパティと FillStyle プロパティをランダムに設定して、円をフォーム上に表示します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)

FillColor = QBColor(Int(Rnd * 15))	' FillColor をランダムに選択します。

FillStyle = Int(Rnd * 8)	' FillStyle をランダムに選択します。

Circle (X, Y), 250	' 円を描画します。

End Sub


FillStyle プロパティの例

次のプログラムでは、マウスをクリックすると、FillColor プロパティと FillStyle プロパティをランダムに設定して、円をフォームに表示します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)

FillColor = QBColor(Rnd * 15)	' FillColor をランダムに選択します。

FillStyle = Int(Rnd * 8)	' FillStyle をランダムに選択します。

Circle (X, Y), 250	' 円を描画します。

End Sub


FixedAlignment プロパティの例

次のプログラムでは、列見出しと行番号を中央揃えにしたシートを作成します。このプログラムを実行するには、新規にプロジェクトを作成し、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスの [Microsoft Grid Control] チェック ボックスを選択して、GRID16.OCX または GRID32.OCX を追加します。次に、グリッド (Grid) コントロールを配置します。フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub Form_Load ()

Grid1.Cols = 5	' 列数と行数を設定します。

Grid1.Rows = 7

Grid1.Row = 0

Grid1.FixedAlignment(0) = 2	' 行番号の配置を設定します。

For I = 1 To Grid1.Cols - 1	' 列の見出しと、その配置を設定します。

Grid1.FixedAlignment(I) = 2

Grid1.Col = I

Grid1.Text = Chr(64 + I)

Next I

Grid1.Col = 0

For I = 1 To Grid1.Rows - 1	' 行番号を設定します。

Grid1.Row = I

Grid1.Text = I

Next I

End Sub


FixedCols、FixedRows プロパティの例

次のプログラムでは、2 行の固定された行と、2 列の固定された列があるシートを作成します。このプログラムを実行するには、新規にプロジェクトを作成し、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスの [Microsoft Grid Control] チェック ボックスを選択して、GRID16.OCX または GRID32.OCX を追加します。次に、グリッド (Grid) コントロールを配置します。次にこのフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub Form_Load ()

Grid1.Rows = 8	' 列と行の総数を設定します。

Grid1.Cols = 6

Grid1.FixedRows = 2	' 固定された列と行の総数を設定します。

Grid1.FixedCols = 2

End Sub


FontCount プロパティの例

次のプログラムでは、リスト ボックス (ListBox) コントロールにプリンタ フォントの一覧を表示します。このプログラムを実行するには、“List1”という名前のリスト ボックス コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim I	' 変数を宣言します。

For I = 0 To Printer.FontCount -1	' フォントの総数を決定します。

List1.AddItem Printer.Fonts (I)	' リスト ボックスに各フォントを追加します。

Next I

End Sub


Fonts プロパティの例

次のプログラムでは、リスト ボックス (ListBox) コントロールにプリンタ フォントの一覧を表示します。このプログラムを実行するには、“List1”という名前のリスト ボックス コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

Private Sub Form_Click ()

Dim I	' 変数を宣言します。

For I = 0 To Printer.FontCount -1	' フォントの総数を決定します。

List1.AddItem Printer.Fonts (I)	' リスト ボックスに各フォントを追加します。

Next I

End Sub


GridLines プロパティの例

次のプログラムでは、フォームをクリックするたびに、GridLines プロパティのオン/オフを切り替えます。このプログラムを実行するには、新規にプロジェクトを作成し、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスの [Microsoft Grid Control] チェック ボックスを選択して、GRID16.OCX または GRID32.OCX を追加します。次に、グリッド (Grid) コントロールを配置します。次にこのフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub Form_Load ()

Grid1.Cols = 6	' 列数と行数を設定します。

Grid1.Rows = 7

End Sub

Private Sub Form_Click ()	' グリッドラインのオン/オフを切り替えます。

Grid1.GridLines = Not Grid1.GridLines

End Sub


hDC プロパティの例

次のプログラムでは、三角形を描画し、Microsoft Windows の API 関数を使ってカラーで塗りつぶします。このプログラムを実行するには、[挿入] - [標準モジュール] コマンドを使って、新規に標準モジュールを作成します。作成した標準モジュールに Declare ステートメントを貼り付け、そのステートメントが途中で切れたり、改行されたりせずに、1 行に収まっていることを確認します。次に、フォーム モジュールのコード ウィンドウに Sub プロシージャを貼り付け、F5 キーを押します。起動後、フォームをクリックします。

' Windows ルーチンの宣言。このステートメントはモジュールのために使います。

Declare Sub FloodFill Lib "GDI" (ByVal hDC As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal Color As Long)

' 以下のコードはフォームに使います。

Private Sub Form_Click ()

ScaleMode = 3	' Windows はピクセル単位で描画を行います。

ForeColor = 0	' 線の色を黒に設定します。

Line (100, 50)-(300, 50)	' 三角形を描画します。

Line -(200, 200)

Line -(100, 50)

FillStyle = 0	' FillStyle プロパティを 0 (塗りつぶし) に設定します。

FillColor = RGB(128, 128, 255)	' FillColor プロパティを設定します。

FloodFill hDC, 200, 100, ForeColor	' Windows API を呼び出して塗りつぶします。

End Sub


HideSelection プロパティの例

次のプログラムでは、各フォーム内のテキストを選択でき、タイトル バーをクリックすると、フォーカスがフォーム間を移動します。フォームがアクティブでない場合も、選択された対象は表示されたままです。このプログラムを実行するには、2 つのフォームを作成し、それぞれにテキスト ボックス (TextBox) コントロールを描画します。両方のテキスト ボックス コントロールの MultiLine プロパティを真 (True) に設定し、一方のテキスト ボックス コントロールの HideSelection プロパティを偽 (False) に設定します。両方のフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub Form_Load ()

Open "README.TXT" For Input As 1	' テキスト ボックスにファイルを読み込みます。

Text1.Text = Input$(LOF(1), 1)

Close 1

Form2.Visible = True	' Form2 がロードされていなければ、ロードします。

' フォームを並べて表示します。

Form1.Move 0, 1050, Screen.Width / 2, Screen.Height

Form2.Move Screen.Width / 2, 1050, Screen.Width / 2, Screen.Height

' テキスト ボックスをフォームのサイズまで拡大します。

Text1.Move 0, 0, ScaleWidth, ScaleHeight

End Sub


HighLight プロパティの例

次のプログラムでは、フォームをクリックするたびに、反転表示のオン/オフを切り替えます。このプログラムを実行するには、新規にプロジェクトを作成し、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスの [Microsoft Grid Control] チェック ボックスを選択して、GRID16.OCX または GRID32.OCX を追加します。次に、グリッド (Grid) コントロールをフォームに配置します。次に、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub Form_Load ()

Grid1.Cols = 6	' 列数と行数を設定します。

Grid1.Rows = 7

End Sub

Private Sub Form_Click ()	' 反転表示のオン/オフを切り替えます。

Grid1.HighLight = Not Grid1.HighLight

End Sub


hWnd プロパティの例

次のプログラムでは、フォームが常に一番手前に表示されるようにします。このプログラムを実行するには、MDI 子フォーム以外のフォームを作成し、その Caption プロパティを“つねに手前に表示”に設定します。フォームに、[つねに手前に表示] コマンド (mnuTopmost メニュー コントロール) を含むメニューを作成します。[挿入] - [標準モジュール] コマンドを使って、新規の標準モジュールを作成します。作成した標準モジュールに Declare ステートメントを貼り付け、そのステートメントが途中で切れたり、改行されたりせずに、1 行に収まっていることを確認します。次に、フォーム モジュールのコード ウィンドウに Sub プロシージャを貼り付け、F5 キーを押します。このプログラムを実行するには、Microsoft Windows Version 3.1 が必要です。

' Windows API 関数の宣言。このステートメントはモジュールのために使います。

Declare Sub SetWindowPos Lib "User" (ByVal hWnd As Integer, ByVal hWndInsertAfter As Integer, ByVal x As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer)

' WINAPI.TXT に定義されている定数をいくつか設定します。

Const conHwndTopmost = -1

Const conHwndNoTopmost = -2

Const conSwpNoActivate = &H10

Const conSwpShowWindow = &H40

Private Sub mnuTopmost_Click ()

' メニューのチェック マークを表示または消去します。

mnuTopmost.Checked = Not mnuTopmost.Checked

If mnuTopmost.Checked Then

'  TopMost 属性をオンにします。

SetWindowPos hWnd, conHwndTopmost, 0, 0, 0, 0, conSwpNoActivate Or conSwpShowWindow

Else

' TopMost 属性をオフにします。

SetWindowPos hWnd, conHwndNoTopmost, 0, 0, 0, 0, conSwpNoActivate Or conSwpShowWindow

End If

End Sub

次のプログラムでは、コンボ ボックス (ComboBox) コントロールがフォーカスを受け取ると、常にリスト部分を自動的にドロップ ダウン表示します。このプログラムを実行するには、フォームを新規作成し、コンボ ボックス コントロール、およびフォーカスを受け取るためだけに使われるオプション ボタン (OptionButton) コントロールを配置します。次に、[挿入] - [標準モジュール] コマンドを使って、標準モジュールを作成します。作成した標準モジュールに Declare ステートメントを貼り付け、そのステートメントが途中で切れたり、改行されたりせずに、1 行に収まっていることを確認します。次に、フォーム モジュールのコード ウィンドウに Sub プロシージャを貼り付け、F5 キーを押します。起動後、Tab キーを使って、フォーカスをコンボ ボックス コントロールへ移動したり、他へ移動したりします。

Declare Function SendMessage Lib "User" (ByVal hWnd As Integer, ByVal Msg As Integer, ByVal Wp As Integer, Lp As Any) As Long

Const WM_USER = &H400

Private Sub Combo1_GotFocus ()

Const CB_SHOWDROPDOWN = WM_USER + 15

Dim Tmp

Tmp = SendMessage(Combo1.hWnd, CB_SHOWDROPDOWN, 1, ByVal 0&)

End Sub


Image プロパティの例

次のプログラムでは、最初のピクチャ ボックス (PictureBox) コントロールをクリックすると、そのコントロール内に円を描画します。2 番めのピクチャ ボックス コントロールをクリックすると、最初のピクチャ ボックス コントロールのグラフィックスが 2 番めのピクチャ ボックス コントロールにコピーされます。このプログラムを実行するには、等しいサイズの大きなピクチャ ボックス コントロールをフォームに配置します。フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、ピクチャ ボックス コントロールをクリックします。

Private Sub Form_Load ()

Picture1.AutoReDraw = True	' AutoRedraw プロパティを 真 (True) に設定します。

End Sub

Private Sub Picture1_Click ()

Dim PW, PH	' 変数を宣言します。

Picture1.FillStyle = 0	' FillStyle プロパティを 0 (塗りつぶし) に設定します。

Picture1.FillColor = QBColor(Int(Rnd * 15))   ' カラーをランダムに選択します。

PW = Picture1.ScaleWidth	' ScaleWidth プロパティを設定します。

PH = Picture1.ScaleHeight	' ScaleHeight プロパティを設定します。

' Draw a circle in random location.

Picture1.Circle (Int(Rnd * PW), Int(Rnd * PH)), 250

End Sub

Private Sub Picture2_Click ()

Picture2.Picture = Picture1.Image	' イメージを Picture2 にコピーします。

End Sub


ItemData プロパティの例

次のプログラムでは、リスト ボックス (ListBox) コントロールに従業員名を表示し、NewIndex プロパティを使って ItemData プロパティ配列に従業員番号を格納します。ItemData プロパティ配列には、リストの項目に対応する番号が並べ替えられて格納されます。ユーザーが項目を選択すると、ラベル (Label) コントロールに、項目の名前と番号を表示します。このプログラムを実行するには、リスト ボックス コントロールおよびラベル コントロールを配置したフォームを作成します。次に、フォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。次に、リスト ボックス コントロールの Sorted プロパティを真 (True) に設定し、F5 キーを押します。起動後、リスト ボックス コントロールをクリックします。

Private Sub Form_Load ()

' List1 を満たし、ItemData の配列に

' ソート順に対応する項目を設定します。

List1.AddItem "和泉 智子"

List1.ItemData(List1.NewIndex) = 42310

List1.AddItem "石本 和幸"

List1.ItemData(List1.NewIndex) = 52855

List1.AddItem "高樹 聡"

List1.ItemData(List1.NewIndex) = 64932

List1.AddItem "丸山 裕美"

List1.ItemData(List1.NewIndex) = 39227

End Sub

Private Sub List1_Click ()

' 従業員番号と雇用者名をラベルに追加します。

Msg = List1.ItemData(List1.ListIndex) & " "

Msg = Msg & List1.List(List1.ListIndex)

Label1.Caption = Msg

End Sub


KeyPreview プロパティの例

次のプログラムでは、フォームの KeyDown イベントに対応するキーボード ハンドラを作成します。最初の 4 つのファンクション キーを押すと、それぞれ異なるメッセージを表示します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、最初の 4 つのファンクション キー (F1 ～ F4 キー) のいずれか 1 つを押します。

' VB オブジェクト ライブラリの値。

Const vbKeyF1 = &H70

Const vbKeyF2 = &H71

Const vbKeyF3 = &H72

Const vbKeyF4 = &H73

Private Sub Form_Load ()

KeyPreview = True

End Sub

Private Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)

Select Case KeyCode

Case vbKeyF1: MsgBox "F1 キーが押されました。"

Case vbKeyF2: MsgBox "F2 キーが押されました。"

Case vbKeyF3: MsgBox "F3 キーが押されました。"

Case vbKeyF4: MsgBox "F4 キーが押されました。"

End Select

End Sub


LargeChange、SmallChange プロパティの例

次のプログラムでは、スクロール バーを使って、フォーム上のピクチャ ボックス (PictureBox) コントロールを移動します。このプログラムを実行するには、サイズの小さなピクチャ ボックス コントロールと水平スクロール バー (HScrollBar) コントロールをフォーム上に作成し、フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。起動後、スクロール バーをクリックします。

Private Sub Form_Load ()

HScroll1.Max = 100	' スクロールの最大値を設定します。

HScroll1.LargeChange = 20	' 5 回のクリックで下端。

HScroll1.SmallChange = 5	' 20 回のクリックで下端。

Picture1.Left = 0	' 左端から移動を開始します。

Picture1.BackColor = QBColor(3)	' ピクチャ ボックスのカラーを設定します。

End Sub

Private Sub HScroll1_Change ()

' スクロール バーの値に従ってピクチャを移動します。

Picture1.Left = (HScroll1.Value / 100) * ScaleWidth

End Sub


LeftCol プロパティの例

次のプログラムでは、フォームをクリックするたびに、LeftCol プロパティを変更します。このプログラムを実行するには、新規にプロジェクトを作成し、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスの [Microsoft Grid Control] チェック ボックスを選択して、GRID16.OCX または GRID32.OCX を追加します。次に、フォームにグリッド (Grid) コントロールを配置します。次にこのフォーム モジュールのコード ウィンドウにコードを貼り付け、F5 キーを押します。

Private Sub Form_Load ()

Grid1.Rows = 8	' 列と行の総数を設定します。

Grid1.Cols = 9

Grid1.Row = 0

For I = 1 To Grid1.Cols - 1	' 列の先頭に番号を設定します。

Grid1.Col = I

Grid1.Text = I

Next I

End Sub

Private Sub Form_Click ()

On Error GoTo LeftColError

' 1 列ずつスクロールします。

Grid1.LeftCol = Grid1.LeftCol + 1

On Error GoTo 0

Exit Sub

LeftColError:

Grid1.LeftCol = 1	' 最初の列を表示します。

Resume Next

End Sub


LinkItem、LinkMode、LinkTopic プロパティの例

次のプログラムでは、マウスをクリックするたびに、Microsoft Excel のワークシート内のセルが Microsoft Visual Basic のテキスト ボックス (TextBox) コントロールの内容を更新します。このプログラムを実行するには、Excel を起動し、“Sheet1”という名前のワークシートを新規に作成し、適当なデータを最初の列に入力します。次に、Visual Basic でテキスト ボックス コントロールを配置したフォームを作成します。最後に、このフォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押します。

Private Sub Form_Click ()

Dim CurRow As String

Static Row	' ワークシートの列の総数を保存します。

Row = Row + 1	' ワークシートの列数 を 1 増やします。

If Row = 1 Then	' 最初の 1 回だけ実行します。

' リンクを、確実に非アクティブな状態にします。

Text1.LinkMode = 0

' アプリケーション名とトピック名を設定します。

Text1.LinkTopic = "Excel|Sheet1"

Text1.LinkItem = "R1C1"	' LinkItem プロパティを設定します。

Text1.LinkMode = 1	' LinkMode プロパティを自動に設定します。

Else

' データ項目の列を更新します。

CurRow = "R" & Row & "C1"

Text1.LinkItem = CurRow	' LinkItem プロパティを設定します。

End If

End Sub


GridLineWidth プロパティ

関連項目	例	対象

グリッド (Grid) コントロールのグリッド ラインの幅をピクセル単位で設定します。値の取得も可能です。

構文

object.GridLineWidth [= value]

GridLineWidth プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトを表すオブジェクト式を指定します。

value	グリッド ラインの幅を整数で指定します。設定可能な値の最小値は 1 (既定値)で、最大値は 10 です。


関連項目

GridLines プロパティ


GridLineWidth プロパティの対象

グリッド (Grid) コントロール


LinkTopic プロパティ

関連項目	例	対象

ディスティネーション コントロールは、ソース アプリケーションとトピック (アプリケーションで使われる基礎的なデータ単位) を指定します。LinkTopic プロパティと LinkItem プロパティを組み合わせると、リンクを完全に指定できます。

ソース フォームは、そのソース フォームが DDE 通信で応答するトピックを指定します。

構文

object.LinkTopic [= value]

LinkTopic プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	DDE 構文の要素を表す文字列式を指定します。

解説

LinkTopic プロパティは、ディスティネーションまたはソース リンクを成立させるために必要な情報の主要部分を指定する文字列で、重要な設定要素の 1 つです。LinkTopic プロパティに指定する文字列は、ディスティネーション コントロールとソース フォームのどちらを指定するかによって異なります。文字列は標準の DDE 構文の 1 つまたは複数の要素 (アプリケーション、トピック、アイテム) から構成されます。

注   DDE リンクの標準的な定義には“アプリケーション”、“トピック”、“アイテム”という要素があります。ただし、ディスティネーション リンクを持つアプリケーションが、ソース アプリケーションに対して指定するときの構文は、多少これとは異なります。たとえば、Microsoft Excel for Windows では次の構文を使います。

application|topic!item

Microsoft Word for Windows では次の構文を使います。

application topic item

縦棒 (|) や感嘆符 (!) は使いません。

Visual Basic アプリケーションでは、次の構文を使います。

application|topic

topic の後の感嘆符は必要ありません。自動的に付加されます。

ディスティネーション コントロール

ディスティネーション コントロールの LinkTopic プロパティを設定するには、application|topic という構文を使います。ここで、引数 application、topic は次のように指定します。

引数 application には、データを提供する側のアプリケーション (ソース) の名前を指定します。通常は実行可能ファイル名から拡張子を除いた名前 (ベース名) になります。たとえば、Microsoft Excel は "Excel" で表されます。

引数 application と topic の間には縦棒 (|、文字コード 124) を指定します。

引数 topic には、ソース アプリケーションで使われる基本的なデータ単位を指定します。たとえば、Microsoft Excel ではワークシートがこれに相当します。

また、ディスティネーション コントロールの場合に限り、LinkItem プロパティを使ってリンクのアイテムを設定する必要があります。たとえば Microsoft Excel のワークシートでは、"R1C1" のようなセル参照がこれに該当します。

ソース フォーム

ソース フォームに LinkTopic プロパティを設定するには、フォームに対する適切な識別子を引数 value に設定します。ディスティネーション アプリケーションは、フォームを使って DDE リンクを確立するときに、この文字列を topic 引数として使います。Visual Basic でソース フォームの LinkTopic プロパティを設定する場合はこの文字列だけで十分ですが、ディスティネーション アプリケーションでは次に示す各項目を指定する必要があります。

ここで設定しているソース フォームを含む Visual Basic アプリケーションの名前 application を指定します。Visual Basic のプロジェクト名から拡張子 .VBP を除いた名前 (アプリケーションを Visual Basic の開発環境から実行している場合) または Visual Basic アプリケーション名から拡張子 .EXE を除いた名前 (アプリケーションを実行可能ファイルとして実行している場合) を指定します。ユーザーがファイル名を変更しない限り、App オブジェクトの EXEName プロパティにはこの名前が文字列として保管されます。ただし、App.EXEName はディスク上にあるアプリケーションの実際のファイル名を返しますが、DDE では [EXE ファイルの作成] ダイアログ ボックスで指定した元の名前が使われます。

ディスティネーション アプリケーションが使うアイテム名 item を指定します。ソース フォームのラベル (Label)、ピクチャ ボックス (PictureBox)、テキスト ボックス (TextBox) の各コントロールの Name プロパティに対応します。

次の構文は、Microsoft Excel (ディスティネーション) から Visual Basic アプリケーション (ソース) のデータを参照しています。

=VizBasicApplication|FormN!TextBox1

この参照式は、Microsoft Excel で対象となるセルを選択してから数式バーに入力します。

LinkTopic プロパティを使ってデータ リンク セットをアクティブにするには、LinkMode プロパティを 0 以外の適切な値に設定してリンクの型を指定します。一般的には、LinkTopic プロパティを設定してから LinkMode プロパティを設定します。ディスティネーション コントロールに対して LinkTopic プロパティを変更すると、既存のリンクは破壊され、DDE 通信が終了します。ソース フォームに対して LinkTopic プロパティで設定されたデータ リンクを開始するには、LinkMode プロパティを 0 以外の適切な値に設定してリンクのタイプを指定します。原則的には LinkTopic プロパティを設定してから LinkMode プロパティを設定します。ディスティネーション コントロールの LinkTopic プロパティを変更すると、通信中のリンクが切断されて DDE 通信が停止します。ソース フォームの LinkTopic プロパティを変更すると、そのトピックを使用するすべてのディスティネーション リンクが切断されるため、LinkTopic プロパティを変更する前には LinkMode プロパティを 0 に変更しておくようにします。ディスティネーション コントロールの LinkTopic プロパティを変更した後は、新しいトピックによる通信を開始するために LinkMode プロパティを 1 (自動)、2 (手動)、3 (通知) のいずれかに設定する必要があります。

注   デザイン時に [編集] - [リンク貼り付け] コマンドを使って永久データ リンクを設定すると、LinkMode、LinkTopic、LinkItem の各プロパティも設定されます。このコマンドによって作成されたリンクはフォームに保管されます。フォームがロードされるたびに通信の再開が試みられます。


関連項目

LinkClose イベント

LinkError イベント

LinkItem プロパティ

LinkMode プロパティ

LinkOpen イベント

LinkSend メソッド


LinkTopic プロパティの対象

Form オブジェクト

ラベル (Label) コントロール

MDIForm オブジェクト

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


Max、Min プロパティ (スクロール バー)

関連項目	対象

Max プロパティ

スクロール ボックスが下端 (垂直スクロール バーの場合) または右端 (水平スクロール バーの場合) にあるときのスクロール バーの位置、つまり Value プロパティの最大値を設定します。値の取得も可能です。

Min プロパティ

スクロール ボックスが上端 (垂直スクロール バーの場合) または左端 (水平スクロール バーの場合) にあるときのスクロール バーの位置、つまり Value プロパティの最小値を設定します。値の取得も可能です。

構文

object.Max [= value]

object.Min [= value]

Max と Min プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	Value プロパティの最大値と最小値を示す数式を指定します。

設定値

Max および Min プロパティには、-32,768 ～ 32,767 の範囲の整数値を設定できます。各プロパティの既定値を次に示します。

Max = 32,767

Min = 0

解説

Microsoft Windows では、フォーム、コンボ ボックス (ComboBox) コントロール、リスト ボックス (ListBox) コントロールのスクロール バーのスクロール範囲は、表示しているデータの量に比例して自動的に設定されます。一方、水平スクロール バー (HScrollBar) コントロールや垂直スクロール バー (VScrollBar) コントロールのスクロール範囲は、その利用目的 (たとえば入力デバイス、速度や量のインジケータなど) に応じて、Max プロパティと Min プロパティを使って明示的に設定する必要があります。

通常、Max プロパティと Min プロパティの値はデザイン時に設定しますが、必要に応じて実行時にコードで変更することもできます。たとえば、レコードが追加されていくデータベースをスクロール バーで操作する場合などがこれに相当します。スクロール バーの移動単位、つまりスクロール ボックスとスクロール矢印の間の領域やスクロール矢印自身をクリックしたときのスクロール量を設定するには、LargeChange プロパティと SmallChange プロパティを使います。

注   Max プロパティに Min プロパティよりも小さい値を指定すると、スクロール ボックスは、水平スクロール バーなら左端、垂直スクロール バーなら下端が最大値を表すようになります。


関連項目

LargeChange、SmallChange プロパティ


Max、Min プロパティの対象

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール


MaxFileSize プロパティ

関連項目	対象

コモン ダイアログ (CommonDialog) コントロールを使って開かれたファイル名の最大サイズを設定します。値の取得も可能です。

構文

object.MaxFileSize [= value]

MaxFileSize プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ファイル名の最大値をバイト単位の整数で指定します。このプロパティの範囲は 1 バイト～ 32 キロバイトです。既定値は 256 バイトです。


MaxFileSize プロパティの対象

コモン ダイアログ (CommonDialog) コントロール ([ファイル] ダイアログ ボックス)


関連項目

FileName プロパティ


MaxLength プロパティ

関連項目	例	対象

テキスト ボックス (TextBox) コントロールに入力するバイト数を制限するかどうかを示す値を設定します。値の取得も可能です。入力可能なバイト数を制限する場合は、その最大値を指定します。

構文

object.MaxLength [= value]

MaxLength プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	テキスト ボックス コントロールにユーザーが入力できるバイト数の最大値を整数で指定します。MaxLength プロパティの既定値は 0 です。この場合 1 行のテキスト ボックスはシステムのメモリが許す限りの長さの文字列を受け取り、複数行のテキスト ボックスは最大約 32KB の文字列を受け取ることができます。0 よりも大きい値を設定すると、その値が最大バイト数を示します。

解説

MaxLength プロパティは、ユーザーがテキスト ボックス コントロールに入力できる最大バイト数を設定するときに使います。

MaxLength プロパティの設定よりも長いテキストをテキスト ボックス コントロールに割り当てようとすると、エラーは発生しませんが、最大バイト数を超える部分は Text プロパティに格納されません。このプロパティの値を変更しても現在のテキスト ボックスの内容には影響しませんが、以降のテキスト ボックスへの変更に影響を与えます。


関連項目

Len 関数

MultiLine プロパティ


MaxLength プロパティの対象

テキスト ボックス (TextBox) コントロール


MDIChild プロパティ

関連項目	例	対象

フォームを MDI フォームの MDI 子フォームとして表示するかどうかを設定します。実行時には、値の取得のみ可能です。

構文

object.MDIChild

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

MDIChild プロパティの設定値は次のとおりです。

設定値	内容

True	フォームは MDI 子フォームになり、MDI 親フォームの中に表示されます。

False	(既定値) MDI 子フォームにはなりません。

注   Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

解説

MDIChild プロパティは MDI (Multiple-Document Interface) アプリケーションを作成するときに使います。このプロパティを真 (True) に設定すると、フォームは実行時に MDI フォームの中に表示されます。MDI 子フォームは MDI 親フォームの内側で最大化、最小化、移動が可能です。

MDI 子フォームを使う場合は次の点に注意してください。

実行時に MDI 子フォームが最大化されると、子フォームのキャプションは MDI 親フォームのタイトル バーに親フォームのキャプションと一緒に表示されるようになります。

デザイン時には、MDI 子フォームは他のフォームと同じように表示されます。MDI 子フォームが親フォームの中に表示されるのは実行時だけです。フォームを MDI 子フォームに設定すると、プロジェクト ウィンドウに表示されるフォームのアイコンが MDI 子フォームを示すアイコンに変わります。

MDI 子フォームは非表示やモーダルにできません。

Load イベント プロシージャ内で特別に設定しない限り、MDI 子フォームの初期位置やサイズは Microsoft Windows によって決定されます。

親フォームがロードされていない状態で MDI 子フォームを参照すると、親フォームが自動的にロードされまれます。逆に子フォームがロードされていない状態で親フォームを参照すると、子フォームはロードされません。

注   Microsoft Windows Version 3.0 のグラフィックス環境で実行すると、すべての MDI 子フォームは BorderStyle、ControlBox、MinButton、MaxButton の各プロパティの設定にかかわらず、フォームのサイズの変更が可能で、コントロール メニュー ボックス、最小化ボタン、最大化ボタンを持ちます。

MDIForm オブジェクトへの参照 (プロパティの読み書きを含む) を行うと、そのフォームがロードされて表示されます。


関連項目

ActiveControl プロパティ

ActiveForm プロパティ

BorderStyle プロパティ

ControlBox プロパティ

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

MaxButton プロパティ

MinButton プロパティ

WindowList プロパティ


MDIChild プロパティの対象

Form オブジェクト


MouseIcon プロパティ

関連項目	例	対象

ユーザー定義のマウス アイコンを設定します。

構文

object.MouseIcon = LoadPicture(pathname)

object.MouseIcon = picture

MouseIcon プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

pathname	ユーザー定義のアイコンのファイルのパスとファイル名を表す文字列式を指定します。

picture	Form オブジェクト、ピクチャ ボックス (PictureBox) コントロール、イメージ (Image) コントロールの Picture プロパティを指定します。

解説

MouseIcon プロパティには、MousePointer プロパティを 99 に設定した場合に使用する、ユーザー定義のアイコンを設定します。Visual Basic Version 4.0 では、スタティック ポインタ ファイル (.CUR) を作成することはできませんが、MouseIcon プロパティを使用して、スタティック ポインタ ファイルまたはアイコン ファイルをロードできます。MouseIcon プロパティを使用すると、どの大きさのユーザー定義のスタティック ポインタ ファイルでも、プログラムから簡単に操作できます。また、任意の位置にホット スポットを設定することもできます。32 ビット版のウィンドウズではアニメーション ポインタ ファイル (.ANI) がサポートされていますが、32 ビット版の Visual Basic では、アニメーション ポインタ ファイルをロードできません。


関連項目

DragIcon プロパティ

Icon プロパティ

LoadPicture 関数

MousePointer プロパティ

Picture プロパティ

SavePicture ステートメント


MouseIcon プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

データ (Data) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

Screen オブジェクト

テキスト ボックス (TextBox) コントロール


MousePointer プロパティ

関連項目	例	対象

実行時にマウスがフォームまたはコントロール内の特定の位置に置かれたときに表示されるマウス ポインタの種類を設定します。値の取得も可能です。

構文

object.MousePointer [= value]

MousePointer プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	表示するマウス ポインタの種類を整数で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

0	(既定値) 形状はオブジェクトによって決定されます。

1	矢印。

2	クロス。十文字のポインタです。

3	I - ビーム。アルファベットの I の形のポインタです。

4	アイコン。2 重の四角形のポインタです。

5	サイズ (上下左右)。上下左右を指している矢印のポインタです。

6	サイズ (右上 - 左下)。斜めに 2 方向を指している矢印のポインタです。

7	サイズ (上下)。上下 2 方向を指している矢印のポインタです。

8	サイズ (左上 - 右下)。斜めに 2 方向を指している矢印のポインタです。

9	サイズ (左右)。左右 2 方向を指している矢印のポインタです。

10	上矢印。

11	砂時計 (待機)。

12	禁止。

13	矢印と砂時計。Visual Basic 32 ビット版でのみ使用できます。

14	矢印と疑問符。Visual Basic 32 ビット版でのみ使用できます。

15	サイズ (すべて)。Visual Basic 32 ビット版でのみ使用できます。

99	MouseIcon プロパティによって設定するユーザー定義のアイコンです。

解説

MousePointer プロパティはマウス ポインタの形状を管理します。このプロパティは、マウス ポインタがフォームやダイアログ ボックス上を通過したときに生じる機能上の変化を視覚的に表現したい場合に使われます。たとえば、砂時計 (MouseIcon プロパティを 11 に設定) を表示して、処理または操作が終了するまで待機するように、ユーザーに指示できます。

注   Screen オブジェクトの MousePointer プロパティを設定すると、ポインタの設定は全画面に対して一様に適用されます。アプリケーションが DoEvents 関数を呼び出さず、しかも 32 ビット アプリケーションでないときには、すべてのコントロールと他のアプリケーションにおける MousePointer プロパティの設定が無効になります。アプリケーションが DoEvents 関数を呼び出している場合、カスタム コントロール内にマウス ポインタがあるときに MousePointer プロパティが一時的に変わることもあります。


関連項目

DragIcon プロパティ

マウス ポインタ定数

MouseIcon プロパティ

MouseMove イベント


MousePointer プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

データ (Data) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

Screen オブジェクト

テキスト ボックス (TextBox) コントロール


MultiLine プロパティ

関連項目	対象

テキスト ボックス (TextBox) コントロールにおいて、複数行のテキストの取得と表示ができるように設定します。実行時には値の取得のみ可能です。

構文

object.MultiLine

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

MultiLine プロパティの設定値は次のとおりです。

設定値	内容

True	複数行のテキストの取得と表示を可能にします。

False	(既定値) 改行を無視し、データを 1 行に詰めて表示します。

解説

MultiLine プロパティを真 (True) に設定すると、入力されたテキストが表示領域 (右端) を超えるときに折り返しが行われます。

大きなテキスト ボックス コントロールの場合、ScrollBars プロパティを使ってスクロール バーを表示することも可能です。この場合、水平スクロール バー (HScrollBar) コントロールが指定されない限り、複数行テキスト ボックスのテキストは自動的に折り返されます。

注   デフォルト ボタンのないフォームでは、複数行を表示できるテキスト ボックス コントロールの内部で Enter キーを押すと、フォーカスが次の行に移ります (改行されます)。デフォルト ボタンが存在するフォームで次の行に移るには、Ctrl + Enter キーを押してください。


関連項目

Default プロパティ

ScrollBars プロパティ


MultiLine プロパティの対象

テキスト ボックス (TextBox) コントロール


 MultiSelect プロパティ

関連項目	例	対象

ファイル リスト ボックス (FileListBox) コントロールやリスト ボックス (ListBox) コントロールで複数の項目を選択できるかどうか、また複数の項目を選択する方法を設定します。実行時には値の取得のみ可能です。

構文

object.MultiSelect

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

MultiSelect プロパティの設定値は次のとおりです。

設定値	内容

0	(既定値) 複数の項目の選択はできません。

1	単純な複数選択を行います。クリックまたは Space キーによって、リスト内の項目の選択および選択解除を行います。選択候補のフォーカスの移動は方向キーを使用します。

2	拡張複数選択を行います。Shift + クリックまたは Shift + 方向キーによって、連続した項目が選択されます。Ctrl + クリックによって、リスト内の項目を 1 つずつ選択、選択解除できます。


関連項目

AddItem メソッド

Clear メソッド (Clipboard オブジェクト、コンボ ボックス、リスト ボックス)

List プロパティ

ListCount プロパティ

NewIndex プロパティ

RemoveItem メソッド

Selected プロパティ

TopIndex プロパティ


MultiSelect プロパティの対象

ファイル リスト ボックス (FileListBox) コントロール

リスト ボックス (ListBox) コントロール


NewIndex プロパティ

関連項目	対象

コンボ ボックス (ComboBox) コントロールやリスト ボックス (ListBox) コントロールに、最後に加えられた項目のインデックスを返します。

構文

object.NewIndex

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

NewIndex プロパティは、並べ替えたリストを使用する場合に役立ちます。ItemData プロパティの配列の各項目に対応する現在の値を知りたいときに、このプロパティを使います。Sorted プロパティが真 (True) に設定されているリストに項目を追加すると、その項目は自動的に文字コード順に並べ替えた位置に挿入されます。このプロパティは追加した項目の位置を知らせます。これによって、対応する項目を ItemData プロパティの適切な位置に格納することができます。

リスト内に項目が存在しない場合、または最後に挿入された項目が削除されてしまった場合は、NewIndex プロパティは -1 を返します。


関連項目

AddItem メソッド

Clear メソッド (Clipboard オブジェクト、コンボ ボックス、リスト ボックス)

ItemData プロパティ

List プロパティ

ListCount プロパティ

MultiSelect プロパティ

RemoveItem メソッド

Selected プロパティ

TopIndex プロパティ


NewIndex プロパティの対象

コンボ ボックス (ComboBox) コントロール

リスト ボックス (ListBox) コントロール


Orientation プロパティ

関連項目	対象

ドキュメントの印刷を縦方向、横方向のどちらのモードで行うかを示す値を設定します。デザイン時には使えません。

構文

object.Orientation [= value]

Orientation プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ページの方向を決定する値または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbPRORPortrait	1	ドキュメントは用紙幅の狭い側を上にして印刷されます。

vbPRORLandscape	2	ドキュメントは用紙幅の広い側を上にして印刷されます。

解説

これらの定数はオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

注   Printer オブジェクトのプロパティを設定する場合、その設定の結果はプリンタ メーカーが提供するドライバによって異なります。プロパティを設定しても効果がなかったり、プロパティに異なる値を設定しても、結果が同じになることもあります。また、有効な範囲を超えた設定を行っても、エラーが発生しないことがあります。ドライバの具体的な情報については、そのメーカーのマニュアルを参照してください。


関連項目

Printer オブジェクト、Printers コレクション


Orientation プロパティの対象

Printer オブジェクト


Page プロパティ

関連項目	例	対象

現在のページ番号を返します。

構文

object.Page

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Visual Basic では、アプリケーションの起動、あるいは直前の EndDoc ステートメントが Printer オブジェクトで実行されてから印刷されたページ数を数えています。このカウントは 1 から始まり、次に示す操作が発生するたびに 1 ずつ増えていきます。

NewPage メソッドを使った場合。

Print メソッドを使ったときに、出力するテキストが現在のページと一致しなかった場合。

注   グラフィックス メソッドを使って出力するときは、ページ設定と一致しないときでも新しいページには継続されず、そのページの出力領域におさまる範囲だけを切り取って出力されます。


関連項目

EndDoc メソッド

NewPage メソッド

Print メソッド


Page プロパティの対象

Printer オブジェクト


PaperBin プロパティ

関連項目	対象

印刷中に用紙を供給するプリンタの用紙トレーの既定値を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.PaperBin [= value]

PaperBin プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	用紙トレーの既定値を表す値または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbPRBNUpper	1	上段のトレーの用紙を使います。

vbPRBNLower	2	下段のトレーの用紙を使います。

vbPRBNMiddle	3	中央のトレーの用紙を使います。

vbPRBNManual	4	用紙が 1 枚ずつ手差しで供給されるまで待機します。

vbPRBNEnvelope	5	封筒フィーダの封筒を使います。

vbPRBNEnvManual	6	封筒フィーダの封筒が手差しで供給されるまで待機します。

vbPRBNAuto	7	(既定値) 現在の既定値のトレーの用紙を使います。

vbPRBNTractor	8	トラクタ フィーダの用紙を使います。

vbPRBNSmallFmt	9	小さいペーパー フィーダの用紙を使います。

vbPRBNLargeFmt	10	大きいペーパー フィーダの用紙を使います。

vbPRBNLargeCapacity	11	容量の大きいフィーダの用紙を使います。

vbPRBNCassette	14	カセット カートリッジの用紙を使います。

解説

これらの定数は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

設定された内容がすべてのプリンタで使えるわけではありません。設定できる内容については、プリンタのマニュアルを参照してください。

注   Printer オブジェクトのプロパティを設定する場合、その設定の結果はプリンタ メーカーが提供するドライバによって異なります。プロパティを設定しても効果がなかったり、プロパティに異なる値を設定しても、結果が同じになることもあります。また、有効な範囲を超えた設定を行っても、エラーが発生しないこともあります。ドライバの具体的な情報については、そのメーカーのマニュアルを参照してください。


関連項目

Printer オブジェクト、Printers コレクション


PaperBin プロパティの対象

Printer オブジェクト


PaperSize プロパティ

関連項目	対象

現在のプリンタの用紙サイズを示す値を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.PaperSize [= value]

PaperSize プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	用紙サイズを示す値、または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbPRPSLetter	1	レター、8 1/2 x 11 インチ

vbPRPSLetterSmall	2	レター スモール、8 1/2 x 11 インチ

vbPRPSTabloid	3	タブロイド、11 x 17 インチ

vbPRPSLedger	4	レジャー、17 x 11 インチ

vbPRPSLegal	5	リーガル、8 1/2 x 14 インチ

vbPRPSStatement	6	ステートメント、5 1/2 x 8 1/2 インチ

vbPRPSExecutive	7	エグゼクティブ、7 1/2 x 10 1/2 インチ

vbPRPSA3	8	A3、297 x 420 mm

vbPRPSA4	9	A4、210 x 297 mm

vbPRPSA4Small	10	A4 Small、210 x 297 mm

vbPRPSA5	11	A5、148 x 210 mm

vbPRPSB4	12	B4、250 x 354 mm

vbPRPSB5	13	B5、182 x 257 mm

vbPRPSFolio	14	フォリオ、8 1/2 x 13 インチ

vbPRPSQuarto	15	クォート、215 x 275 mm

vbPRPS10x14	16	10 x 14 インチ

vbPRPS11x17	17	11 x 17 インチ

vbPRPSNote	18	ノート、8 1/2 x 11 インチ

vbPRPSEnv9	19	封筒 #9、3 7/8 x 8 7/8 インチ

vbPRPSEnv10	20	封筒 #10、4 1/8 x 9 1/2 インチ

vbPRPSEnv11	21	封筒 #11、4 1/2 x 10 3/8 インチ

vbPRPSEnv12	22	封筒 #12、4 1/2 x 11 インチ

vbPRPSEnv14	23	封筒 #14、5 x 11 1/2 インチ

vbPRPSCSheet	24	C サイズ シート

vbPRPSDSheet	25	D サイズ シート

vbPRPSESheet	26	E サイズ シート

vbPRPSEnvDL	27	封筒 DL、110 x 220 mm

vbPRPSEnvC3	29	封筒 C3、324 x 458 mm

vbPRPSEnvC4	30	封筒 C4、229 x 324 mm

vbPRPSEnvC5	28	封筒 C5、162 x 229 mm

vbPRPSEnvC6	31	封筒 C6、114 x 162 mm

vbPRPSEnvC65	32	封筒 C65、114 x 229 mm

vbPRPSEnvB4	33	封筒 B4、250 x 353 mm

vbPRPSEnvB5	34	封筒 B5、176 x 250 mm

vbPRPSEnvB6	35	封筒 B6、176 x 125 mm

vbPRPSEnvItaly	36	封筒、110 x 230 mm

vbPRPSEnvMonarch	37	封筒 Monarch、3 7/8 x 7 1/2 インチ

vbPRPSEnvPersonal	38	封筒、3 5/8 x 6 1/2 インチ

vbPRPSFanfoldUS	39	U.S. スタンダード ファンフォールド、14 7/8 x 11 インチ

vbPRPSFanfoldStdGerman	40	ドイツ スタンダード ファンフォールド、8 1/2 x 12 インチ

vbPRPSFanfoldLglGerman	41	ドイツ リーガル ファンフォールド、8 1/2 x 13 インチ

vbPRPSUser	256	ユーザー定義のサイズ

解説

これらの定数は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

プリンタの Height プロパティや Width プロパティを設定すると、PaperSize プロパティには自動的に定数 vbPRPSUser が設定されます。

注   Printer オブジェクトのプロパティを設定する場合、その設定の結果はプリンタ メーカーが提供するドライバによって異なります。プロパティを設定しても効果がなかったり、プロパティに異なる値を設定しても、結果が同じになることもあります。また、有効な範囲を超えた設定を行っても、エラーが発生しないこともあります。ドライバの具体的な情報については、そのメーカーのマニュアルを参照してください。


関連項目

Printer オブジェクト、Printers コレクション


PaperSize プロパティの対象

Printer オブジェクト


PasswordChar プロパティ

関連項目	例	対象

テキスト ボックス (TextBox) コントロールに入力された文字を表示するか、プレースホルダを表示するかを設定します。値の取得も可能です。また、プレースホルダとして使う文字を設定します。値の取得も可能です。

構文

object.PasswordChar [= value]

PasswordChar プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	プレースホルダとして使う文字を表す文字列式を指定します。

解説

PasswordChar プロパティはダイアログ ボックスでパスワードの入力を受け付けるインターフェイスを作成するために使います。任意の文字を使用できますが、ほとんどの Windows アプリケーションではアスタリスク (*) (Chr(42)) が使われています。

PasswordChar プロパティは Text プロパティには影響を与えません。Text プロパティにはユーザーが入力したとおりの文字列、または、あらかじめプログラムで設定した文字列が格納されます。入力したとおりの文字列を表示するには PasswordChar プロパティを長さ 0 の文字列 ("") に設定します。既定値は長さ 0 の文字列です。

このプロパティには任意の文字列が代入可能ですが、1 バイトめだけが有効です。2 バイトめ以降は無視されます。

注   MultiLine プロパティに真 (True) を設定すると、PasswordChar プロパティは無効になります。


関連項目

Text プロパティ


PasswordChar プロパティの対象

テキスト ボックス (TextBox) コントロール


Pattern プロパティ

関連項目	例	対象

実行時にファイル リスト ボックス (FileListBox) コントロールに表示されるファイル名を示すパターンを設定します。値の取得も可能です。

構文

object.Pattern [= value]

Pattern プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	“*.*”や“*.FRM”のような、ファイルを特定する文字列式を指定します。既定値はすべてのファイルの一覧を表示する“*.*”です。このワイルドカード以外にも、セミコロン (;) で区切って複数のパターンを指定することもできます。たとえば、“*.COM;*.EXE; *.BAT”と設定すると、すべての実行可能ファイルと MS-DOS バッチ ファイルの一覧が表示されます。

解説

Pattern プロパティは、ファイルの参照や操作を行う処理で使われます。Pattern プロパティを他のファイル制御用のプロパティと組み合わせることによって、ファイルを調べたり分類できるようになります。たとえば、他のプログラムを起動するアプリケーションでは、ファイル リスト ボックスを使ってファイル選択をする処理で、実行可能ファイル (*.EXE) だけを表示するようにできます。そのほかのファイル制御プロパティとして、Drive、FileName、Path の各プロパティがあります。

Pattern プロパティの値を変更すると、PatternChange イベントが発生します。


関連項目

Archive、Hidden、Normal、System プロパティ

Drive プロパティ

FileName プロパティ

Path プロパティ

PathChange イベント

PatternChange イベント


Pattern プロパティの対象

ファイル リスト ボックス (FileListBox) コントロール


Port プロパティ

関連項目	例	対象

ドキュメントをプリンタに送信するときのポート名を返します。

構文

object.Port

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

LPT1: や LPT2: などのポート名は、オペレーティング システムによって決定されます。

注   Printer オブジェクトのプロパティを設定する場合、その設定の結果はプリンタ メーカーが提供するドライバによって異なります。プロパティを設定しても効果がなかったり、プロパティに異なる値を設定しても、結果が同じになることもあります。また、有効な範囲を超えた設定を行っても、エラーが発生しないこともあります。ドライバの具体的な情報については、そのメーカーのマニュアルを参照してください。


関連項目

Printer オブジェクト、Printers コレクション


Port プロパティの対象

Printer オブジェクト


PrevInstance プロパティ

対象

アプリケーションのインスタンスが既に実行されているかどうかを示す値を返します。

構文

object.PrevInstance

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Load イベント プロシージャ内で PrevInstance プロパティを参照することによって、ユーザーが既にアプリケーションのインスタンスを実行しているかどうかを調べることができます。アプリケーションによっては、Microsoft Windows で同時に 1 つのインスタンスしか実行されないようにするときには、このプロパティを使います。


PrevInstance プロパティの対象

App オブジェクト


PrintQuality プロパティ

関連項目	対象

プリンタの解像度を示す値を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.PrintQuality [= value]

PrintQuality プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	プリンタの解像度を示す値または定数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbPRPQDraft	-1	簡易印刷

vbPRPQLow	-2	低品位

vbPRPQMedium	-3	中品位

vbPRPQHigh	-4	高品位

あらかじめ定義された負の値の他にも、300 のように正の値で 1 インチあたりのドット数 (dpi) を設定することもできます。

解説

これらの定数は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリにも表示されます。

既定値はプリンタ ドライバとプリンタの現在の設定によって異なります。また、設定の結果はプリンタおよびプリンタ ドライバによって異なります。ただし、プリンタによっては、異なる設定でも同じ結果になることもあります。

注   Printer オブジェクトのプロパティを設定する場合、その設定の結果はプリンタ メーカーが提供するドライバによって異なります。プロパティを設定しても効果がなかったり、プロパティに異なる値を設定しても、結果が同じになることもあります。また、有効な範囲を超えた設定を行っても、エラーが発生しないこともあります。ドライバの具体的な情報については、そのメーカーのマニュアルを参照してください。


関連項目

Printer オブジェクト、Printers コレクション


PrintQuality プロパティの対象

Printer オブジェクト


RowHeight プロパティ

関連項目	例	対象

グリッド (Grid) コントロールに対しては、twip 単位で指定された行 (レコード) の高さを設定します。値の取得も可能です。デザイン時には使えません。

DB グリッド (DBGrid) コントロールに対しては、コントロールのすべての行の高さを設定します。値の取得も可能です。RowHeight プロパティの単位は、常に DB グリッド コントロールのコンテナと同じです。

構文

object.RowHeight[(number)] [= value ]

RowHeight プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	グリッド コントロールの行数を指定します。

value	高さを表す数式を指定します。

解説

グリッド コントロールでは、RowHeight プロパティの最小値は 1 ピクセルです。ユーザーはグリッドの左端の固定型の列の行間にマウス ポインタを置いてクリックし、ドラッグすることで、実行時に任意の行の RowHeight プロパティを変更できます。


関連項目

ColWidth プロパティ

Col、Row プロパティ


RowHeight プロパティの対象

DB グリッド (DBGrid) コントロール

グリッド (Grid) コントロール


ScaleHeight、ScaleWidth プロパティ

関連項目	例	対象

グラフィックス メソッドを使うとき、またはコントロールを配置するときに使うオブジェクトの水平 (ScaleWidth) および垂直 (ScaleHeight) 方向の長さを設定します。値の取得も可能です。MDIForm オブジェクトについては、デザイン時には使えません。実行時には値の取得のみ可能です。

構文

object.ScaleHeight [= value]

object.ScaleWidth [= value]

ScaleHeight と ScaleWidth プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	水平および垂直方向の長さを表す数式を指定します。

解説

ScaleHeight プロパティと ScaleWidth プロパティを使うと、描画や表示を行うときの座標系を自由に設定できます。たとえば、ScaleHeight = 100 というステートメントを実行すると、オブジェクト内部の高さを論理的に 100 分割します。つまり、オブジェクト内部の高さの 1/100 を垂直方向の 1 と定義します。

twip、ポイント、ピクセル、文字、インチ、ミリメートル、センチメートルといった標準的な単位に基づいたスケールを定義するときは、ScaleMode プロパティを使ってください。

ScaleHeight プロパティと ScaleWidth プロパティを正の値に設定すると、座標はそれぞれ上から下、または左から右の方向に増加するようになります。負の値に設定すると、座標は下から上、または右から左の方向に増加するようになります。

ScaleHeight プロパティと ScaleWidth プロパティ、および関連する ScaleLeft プロパティや ScaleTop プロパティを使うと、正と負の座標を持った完全な座標系を設定できます。これら 4 つのスケールに関するプロパティは、ScaleMode プロパティと次のように関連しています。

任意のスケール プロパティの既定値を変更すると、ScaleMode プロパティは自動的に 0 に設定されます。

ScaleMode プロパティを 0 以外の値に設定すると、ScaleHeight プロパティと ScaleWidth プロパティの単位が変更され、ScaleLeft プロパティおよび ScaleTop プロパティが 0 に設定されます。また、CurrentX プロパティおよび CurrentY プロパティが現在位置の新しい座標を反映するように変更されます。

Scale メソッドを使うと、ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop の各プロパティを 1 行のステートメントで設定できます。

注   ScaleHeight プロパティや ScaleWidth プロパティは、Height プロパティや Width プロパティとは異なるので注意してください。

MDIForm オブジェクトでは、ScaleHeight プロパティおよび ScaleWidth プロパティは、フォームのピクチャ ボックス (PictureBox) コントロール以外の領域だけを参照します。MDIForm オブジェクトの Resize イベントでピクチャ ボックス コントロールのサイズを変更するためにこれらのプロパティを使うことは避けてください。


関連項目

CurrentX、CurrentY プロパティ

DrawMode プロパティ

DrawStyle プロパティ

FillColor プロパティ

BackColor、ForeColor プロパティ

Height、Width プロパティ

Scale メソッド

ScaleLeft、ScaleTop プロパティ

ScaleMode プロパティ


ScaleHeight、ScaleWidth プロパティの対象

Form オブジェクト

MDIForm オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


ScaleLeft、ScaleTop プロパティ

関連項目	例	対象

グラフィックス メソッドを使うとき、またはコントロールを配置するときにオブジェクトの左端の水平座標 (ScaleLeft) と上端の垂直座標 (ScaleTop) を設定します。値の取得も可能です。どちらのプロパティも既定値は 0 です。

構文

object.ScaleLeft [= value]

object.ScaleTop [= value]

ScaleLeft と ScaleTop プロパティの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	水平座標または垂直座標を示す数式を指定します。既定値は 0 です。

解説

これらのプロパティと、それに関連する ScaleHeight プロパティおよび ScaleWidth プロパティを使えば、正と負の座標を備えた完全な座標系を設定できます。これら 4 つのスケールに関するプロパティは、ScaleMode プロパティと次のように関連付けられています。

任意のスケール プロパティの既定値を変更すると、ScaleMode プロパティは自動的に 0 に設定されます。

ScaleMode プロパティの値を 0 以上に変更すると、ScaleHeight プロパティと ScaleWidth プロパティの単位が変更され、ScaleLeft プロパティと ScaleTop プロパティは 0 に設定されます。また、CurrentX プロパティと CurrentY プロパティも現在位置の新しい座標を反映するように変更されます。

Scale メソッドを使うと、ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop の各プロパティを 1 行のステートメントで設定できます。

注   ScaleLeft プロパティと ScaleTop プロパティは、Left プロパティと Top プロパティとは異なります。


関連項目

DrawMode プロパティ

DrawStyle プロパティ

FillColor プロパティ

BackColor、ForeColor プロパティ

Left、Top プロパティ

Scale メソッド

ScaleHeight、ScaleWidth プロパティ

ScaleMode プロパティ


ScaleLeft、ScaleTop プロパティの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


ScaleMode プロパティ

関連項目	例	対象

グラフィックス メソッドを使うとき、またはコントロールを配置するときに使うオブジェクトの座標系の単位を設定します。値の取得も可能です。

構文

object.ScaleMode [= value]

ScaleMode プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	座標の単位を表す整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

0	ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop の各プロパティのうち 1 つ以上が独自の値に設定されていることを示します。

1	(既定値) twip (論理インチあたり 1,440 twip、論理センチあたり 567 twip)。

2	ポイント (論理インチあたり 72 ポイント)。

3	ピクセル (画面またはプリンタの解像度の最小単位)。

4	キャラクタ (水平 = 1 単位あたり 120 twip、垂直 = 1 単位あたり 240 twip)。

5	インチ。

6	ミリメートル。

7	センチメートル。

解説

関連する ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop の各プロパティを使用すると、正と負の座標を備えた独自の座標系を作成できます。スケールに関するこれらの 4 つのプロパティは、ScaleMode プロパティと次のように関連付けられています。

任意のスケール プロパティの既定値を変更すると、ScaleMode プロパティは自動的に 0 に設定されます。

ScaleMode プロパティの値を 0 以上に設定すると、ScaleHeight プロパティと ScaleWidth プロパティの単位が変更され、ScaleLeft プロパティと ScaleTop プロパティは 0 に設定されます。また、CurrentX プロパティと CurrentY プロパティも現在位置の新しい座標を反映するように変更されます。


関連項目

DrawMode プロパティ

DrawStyle プロパティ

FillColor プロパティ

BackColor、ForeColor プロパティ

Scale メソッド

ScaleHeight、ScaleWidth プロパティ

ScaleLeft、ScaleTop プロパティ


ScaleMode プロパティの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


ScrollBars プロパティ

関連項目	対象

オブジェクトの水平および垂直のスクロール バーを設定します。実行時には値の取得のみ可能です。

構文

object.ScrollBars

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

MDIForm オブジェクトの ScrollBars プロパティの設定値は次のとおりです。

設定値	内容

True	(既定値) フォームは、水平または垂直スクロール バーのいずれか、またはその両方を持ちます。

False	フォームは、スクロール バーを持ちません。

グリッド (Grid) コントロールまたはテキスト ボックス (TextBox) コントロールの ScrollBars プロパティの設定値は次のとおりです。

設定値	内容

0	(既定値) なし

1	水平

2	垂直

3	両方

解説

テキスト ボックス コントロールで 1 (水平)、2 (垂直)、3 (両方) のいずれかに設定してスクロール バーを表示するには、MultiLine プロパティを真 (True) に設定する必要があります。

実行時のテキスト ボックス コントロールでは、方向キー、Home キー、End キーなどの標準的なキーボード インターフェイスも使えます。

オブジェクトの表示内容がオブジェクトの境界線を超えた場合、初めてスクロール バーが表示されます。たとえば MDIForm オブジェクトでは、子フォームの一部が親 MDI フォームの境界線の下に隠れて非表示になると、水平スクロール バー (HScrollBar) コントロールが表示されます。グリッド コントロールの場合、すべての行が一度に表示できないときに、垂直スクロール バー (VScrollBar) コントロールが表示されます。また、テキスト ボックス コントロールの場合、テキストのすべての行を一度に表示できないときに垂直スクロール バーが表示されます。ScrollBars プロパティを偽 (False) に設定すると、オブジェクトの内容にかかわりなく、スクロール バーは表示されません。


関連項目

MultiLine プロパティ

WordWrap プロパティ


ScrollBars プロパティの対象

Column オブジェクト

グリッド (Grid) コントロール

MDIForm オブジェクト

テキスト ボックス (TextBox) コントロール


SelCount プロパティ

関連項目	対象

リスト ボックス (ListBox) コントロールで選択されている項目の数を返します。

構文

object.SelCount

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

項目が選択されていない場合、SelCount プロパティは 0 を返します。それ以外のときは、現在選択されているリスト項目の数を返します。このプロパティは、ユーザーが複数の項目を選択できるリスト ボックス コントロールでは、特に役立ちます。


関連項目

AddItem メソッド

List プロパティ

ListIndex プロパティ

MultiSelect プロパティ

NewIndex プロパティ

RemoveItem メソッド

Selected プロパティ

TopIndex プロパティ


SelCount プロパティの対象

リスト ボックス (ListBox) コントロール


Selected プロパティ

関連項目	対象

ファイル リスト ボックス (FileListBox) コントロールまたはリスト ボックス (ListBox) コントロール内の項目が、選択状態にあるかどうか設定します。値の取得も可能です。このプロパティは、List プロパティと同じ数の項目を持つブール型の配列です。デザイン時には使えません。

構文

object.Selected(index) [= boolean]

Selected プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	コントロールの項目のインデックス番号を示す数字を指定します。

boolean	項目が選択されているかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	項目は選択されています。

False	(既定値) 項目は選択されていません。

解説

Selected プロパティを使用すると、ユーザーによる項目の複数選択が可能なプログラムで、リスト内の選択されている項目を簡単に調べることができます。また、このプロパティを使うとコードでリスト内の項目の選択や解除ができます。

項目が 1 つだけ選択されている場合、ListIndex プロパティを使って選択されている項目のインデックスを取得できます。これに対し、複数の項目が選択されている場合は、ListIndex プロパティは、項目が実際に選択されているかどうかにかかわらず、フォーカスを持つ項目のインデックスを返します。


関連項目

AddItem メソッド

Clear メソッド (Clipboard オブジェクト、コンボ ボックス、リスト ボックス)

List プロパティ

ListCount プロパティ

ListIndex プロパティ

MultiSelect プロパティ

NewIndex プロパティ

RemoveItem メソッド

TopIndex プロパティ


Selected プロパティの対象

ファイル リスト ボックス (FileListBox) コントロール

リスト ボックス (ListBox) コントロール


SelEndCol、SelStartCol、SelEndRow、SelStartRow プロパティ

関連項目	対象

セルの選択範囲の開始行、開始列、最終行、最終列を設定します。値の取得も可能です。デザイン時には使えません。

SelEndCol (選択された最右端の列)

SelStartCol (選択された最左端の列)

SelEndRow (選択された最後の行)

SelStartRow (選択された最初の行)

構文

object.SelEndCol [= value ]

object.SelStartCol [= value]

object.SelEndRow [= value]

object.SelStartRow [= value]

SelEndCol、SelStartCol、SelEndRow、SelStartRow の各プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	最初あるいは最後の行、または列を表す数式を指定します。

解説

これらのプロパティを使うと、グリッド (Grid) コントロールの特定の範囲をコードで選択したり、ユーザーの選択した範囲の大きさをコードで調べることができます。

選択範囲の左上隅のセルを指定するには SelStartCol プロパティおよび SelStartRow プロパティを使います。選択範囲の右下隅のセルを指定するには、SelEndCol プロパティおよび SelEndRow プロパティを使います。

現在の選択箇所を移動せずにセルを指定するには、Col プロパティおよび Row プロパティを使います。

SelStartCol プロパティおよび SelEndCol プロパティの既定値は -1 です。


関連項目

Col、Row プロパティ


SelEndCol、SelStartCol、SelEndRow、SelStartRow プロパティの対象

DB グリッド (DBGrid) コントロール (SelEndCol および SelStartCol のみ)

グリッド (Grid) コントロール


SelLength、SelStart、SelText プロパティ

関連項目	例	対象

SelLength プロパティは、選択されたテキストの文字数を設定します。値の取得も可能です。

SelStart プロパティは、選択されたテキストの開始点を設定します。値の取得も可能です。テキストが選択されていないときは、挿入ポインタの位置を示します。

SelText プロパティは、現在選択されているテキストを含む文字列を設定します。値の取得も可能です。文字が選択されていないときは、長さ 0 の文字列 ("") を返します。

これらのプロパティは、デザイン時には使えません。

構文

object.SelLength [= number]

object.SelStart [= index]

object.SelText [= value]

SelLength、SelStart、SelText プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	選択されている文字数を表す数式を指定します。SelLength プロパティと SelStart プロパティでは、設定可能な値の有効な範囲は 0 から、コンボ ボックス (ComboBox) コントロールまたはテキスト ボックス (TextBox) コントロールのテキストの長さ (編集領域の文字の総数) までです。

index	選択されているテキストの開始点を示す数式を指定します。設定する値については、次の「設定値」を参照してください。

value	選択されているテキストを含む文字列式を指定します。

解説

SelLength、SelStart、SelText の各プロパティは、挿入ポインタの設定、挿入範囲の選択、コントロール内の文字列の選択、テキストの消去などの操作に使われます。これらのプロパティを Clipboard オブジェクトと組み合わせて使うと、切り取り、コピー、貼り付けの各操作が実行できます。

これらのプロパティを使うときは、次の点に注意してください。

SelLength プロパティに負の値を設定すると実行時エラーが発生します。

SelStart プロパティに、そのとき表示されている文字列の文字数より大きい値を設定すると、テキストの文字数と等しい値を設定したのと同じ結果になります。このとき、表示されているテキストの末尾が挿入ポインタの位置になり、SelLength プロパティは 0 に設定されます。

SelText プロパティに新しい値を設定すると、SelLength プロパティには 0 が代入され、現在選択されているテキストが新しい文字列に置き換えられます。


関連項目

ActiveControl プロパティ

ActiveForm プロパティ

Text プロパティ


SelLength、SelStart、SelText プロパティの対象

コンボ ボックス (ComboBox) コントロール

DB コンボ (DBCombo) コントロール

テキスト ボックス (TextBox) コントロール


Shape プロパティ

関連項目	例	対象

シェイプ (Shape) コントロールの形を設定します。値の取得も可能です。

構文

object.Shape [= value]

Shape プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

コントロールの形を示す整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

0	(既定値) 長方形

1	正方形

2	楕円

3	円

4	丸みのある長方形

5	丸みのある正方形


関連項目

BorderStyle プロパティ


Shape プロパティの対象

シェイプ (Shape) コントロール


Shortcut プロパティ

関連項目	対象

Menu オブジェクトに割り当てるショートカット キーを設定します。実行時には使えません。

解説

このプロパティは、メニュー コマンドのショートカット キーを指定するために使います。また、設定にはメニュー エディタを使うこともできます。利用可能なショートカット キーの一覧は、メニュー エディタの [ショートカット] ボックスを参照してください。

注   各コマンド、メニュー、コントロールに対して、ショートカット キー以外にアクセス キーを割り当てることもできます。アクセス キーは Caption プロパティの中でアンパサンド (&) を使って指定します。


関連項目

Caption プロパティ

メニュー エディタ


Shortcut プロパティの対象

メニュー (Menu) コントロール


Stretch プロパティ

関連項目	例	対象

イメージ (Image) コントロールのサイズに合うようにピクチャのサイズを変更するかどうかを示す値を設定します。値の取得も可能です。

構文

object.Stretch [= boolean]

Stretch プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	ピクチャのサイズを変更するかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	ピクチャのサイズがコントロールのサイズに合うように変更されます。

False	(既定値) コントロールのサイズがピクチャのサイズに合うように変更されます。

解説

Stretch プロパティが真 (True) の場合にコントロールのサイズを変更すると、そのコントロールに含まれるピクチャのサイズも変更されます。


関連項目

Image プロパティ

Picture プロパティ


Stretch プロパティの対象

イメージ (Image) コントロール


Style プロパティ

関連項目	対象

コンボ ボックス (ComboBox) コントロールの種類と、そのリスト部分の動作を示す値を設定します。実行時には値の取得のみ可能です。

構文

object.Style

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

Style プロパティの設定値は次のとおりです。

設定値	内容

0	(既定値) ドロップダウン コンボ。

ドロップダウン リストとテキスト ボックスから構成されます。ユーザーは、ドロップダウンしたリストから項目を選択することも、テキスト ボックス部分に値を直接入力することもできます。

1	シンプル コンボ。

常に表示されているリストとテキスト ボックスから構成されます。ユーザーは、リスト部分から項目を選択することも、テキスト ボックス部分に値を直接入力することもできます。シンプル コンボに設定されたコンボ ボックス コントロールの大きさは、テキスト ボックス部分とリスト部分を合わせた値です。シンプル コンボに設定されたコンボ ボックス コントロールは、初期設定ではリスト部分がない状態の大きさです。リスト部分のサイズを広げるには、Height プロパティの値を増やします。

2	ドロップダウン リスト。

このスタイルでは、ユーザーはドロップダウン リストからの項目の選択だけができます。

解説

Style プロパティの設定の指針を次に示します。

0 (ドロップダウン コンボ) または 1 (シンプル コンボ)に設定すると、ユーザーはリスト部分から選択することも、テキスト ボックス部分に直接入力することも可能です。ドロップダウン コンボの場合は、ユーザーが選択を完了するとリスト部分が閉じるので、画面のスペースを節約できます。

2 (ドロップダウン リスト)に設定すると、ユーザーはリスト部分からの選択が可能で、選択が完了するとリスト部分が閉じられます。内容が固定されていて変更できない項目から、項目を 1 つ選択するような場合に使われます。


関連項目

Change イベント

Click イベント

DblClick イベント

DropDown イベント


Style プロパティの対象

コンボ ボックス (ComboBox) コントロール

DB コンボ (DBCombo) コントロール


TabStop プロパティ

関連項目	対象

Tab キーを使ってフォーカスを移動するとき、そのオブジェクトにフォーカスが移るかどうかを示す値を設定します。値の取得も可能です。

構文

object.TabStop [= boolean]

TabStop プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	オブジェクトにフォーカスを移動できるかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	(既定値) Tab キーでそのオブジェクトにフォーカスが移動します。

False	Tab キーを押しても、そのオブジェクトにはフォーカスは移動しません。また、TabIndex プロパティを通じてタブ オーダーが設定されていても、フォーカスは移動しません。

解説

TabStop プロパティを使うと、フォーム内のタブ オーダーからコントロールをはずしたり加えたりできます。たとえば、ピクチャ ボックス (PictureBox) コントロールを使って描画するときに、その TabStop プロパティを偽 (False) に設定することで、ユーザーが Tab キーを使って、そのピクチャ ボックス コントロールにフォーカスを移動できないようにできます。


関連項目

TabIndex プロパティ


TabStop プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

リスト ボックス (ListBox) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


Title プロパティ

関連項目	対象

Microsoft Windows の [アプリケーションの切り替え] ウィンドウの中に表示されるアプリケーションのタイトルを設定します。値の取得も可能です。タイトルは実行時にも変更できますが、変更は保存されません。タイトルは最大 40 文字までです。

構文

object.Title [= value]

Title プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	アプリケーションのタイトルを示す文字列式を指定します。指定可能な文字列の長さは最大 40 文字です。

解説

Title プロパティをデザイン時に設定するには、[ファイル] - [EXE ファイルの作成] コマンドで表示されるダイアログ ボックスを使います。


関連項目

Caption プロパティ


Title プロパティの対象

App オブジェクト


TopIndex プロパティ

関連項目	例	対象

ファイル リスト ボックス (FileListBox) コントロール、またはリスト ボックス (ListBox) コントロールの最上部に表示される項目を指定する値を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.TopIndex [= value]

TopIndex プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	最上部に表示されるリスト項目の番号を指定します。既定値は 0 で、リストの先頭の項目です。

解説

TopIndex プロパティを使うと、項目を選択をしていない状態で、ファイル リスト ボックス コントロールやリスト ボックス コントロールをスクロールすることができます。

リスト ボックス コントロールの Columns プロパティが 0 に設定されている場合、下にリストの表示部分を満たす十分な項目があるときは、その項目が最上部に表示されます。

リスト ボックス コントロールの Columns プロパティが 0 より大きい値に設定されている場合、その項目の列は最も左になります。列内での、その項目の位置は変化しません。


関連項目

AddItem メソッド

Clear メソッド (Clipboard オブジェクト、コンボ ボックス、リスト ボックス)

Columns プロパティ (リスト ボックス)

List プロパティ

ListCount プロパティ

MultiSelect プロパティ

NewIndex プロパティ

RemoveItem メソッド

Selected プロパティ


TopIndex プロパティの対象

ファイル リスト ボックス (FileListBox) コントロール

リスト ボックス (ListBox) コントロール


TopRow プロパティ

関連項目	例	対象

グリッド (Grid) コントロールに表示される一番上の行を指定します。値の取得も可能です。デザイン時には使えません。

構文

object.TopRow [= value ]

TopRow プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	一番上の行に表示する行の番号を指定します。

解説

TopRow プロパティを使うと、グリッド コントロールの一番上に表示される行をプログラムで取得したり、設定することができます。グリッドの一番上に表示される列を調べるには、LeftCol プロパティを使います。

このプロパティに設定できる最大の行番号は、行の総数からグリッド コントロールに表示できる行数を引いたものです。これよりも大きな行番号を設定しようとすると、エラーが発生します。


関連項目

Col、Row プロパティ

LeftCol プロパティ


TopRow プロパティの対象

グリッド (Grid) コントロール


TwipsPerPixelX、TwipsPerPixelY プロパティ

関連項目	対象

オブジェクトの水平 (TwipsPerPixelX) または垂直 (TwipsPerPixelY) 方向の、ピクセルあたりの twip 数を返します。

構文

object.TwipsPerPixelX

object.TwipsPerPixelY

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Windows API ルーチンは通常、長さをピクセル単位で要求します。これらのプロパティを使うと、オブジェクトの ScaleMode プロパティの設定を変換せずに直ちに長さを変換できます。


関連項目

ScaleHeight、ScaleWidth プロパティ

ScaleLeft、ScaleTop プロパティ

ScaleMode プロパティ


TwipsPerPixelX、TwipsPerPixelY プロパティの対象

Printer オブジェクト

Screen オブジェクト


WindowList プロパティ

関連項目	例	対象

現在、MDIForm オブジェクトにある各 MDI 子ウィンドウを、Menu オブジェクトを使って管理するかどうかを設定します。実行時には値の取得のみ可能です。

構文

object.WindowList

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

WindowList プロパティの設定値は次のとおりです。

設定値	内容

True	Menu オブジェクトには、開いているウィンドウが表示され、現在アクティブなウィンドウの横にはチェック マークが付けられます。ユーザーはウィンドウ名をクリックして、そのウィンドウをアクティブにできます。

False	(既定値) Menu オブジェクトは、開いているウィンドウの一覧を表示しません。

解説

Microsoft Excel や Microsoft Word など、マルチ ドキュメント インターフェイス (MDI) アプリケーションの多くは、[ウィンドウ] メニューを持っており、この中に現在開かれている MDI 子ウィンドウを表示するようになっています。WindowList プロパティは、この機能をアプリケーションに提供します。

1 つのフォーム内では、1 つの Menu オブジェクトだけが WindowList プロパティを真 (True) に設定できます。

作成しているメニューに、開いている MDI 子ウィンドウの一覧を表示するには、メニュー エディタで Menu オブジェクトを作成するときに、[ウィンドウ リスト] チェック ボックスを選択します。


関連項目

Caption プロパティ

MDIForm オブジェクト

メニュー エディタ


WindowList プロパティの対象

メニュー (Menu) コントロール


WindowState プロパティ

関連項目	例	対象

実行時のフォーム ウィンドウの表示状態を示す値を設定します。値の取得も可能です。

構文

object.WindowState [= value]

WindowState プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	オブジェクトの状態を示す整数を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

0	(既定値) ノーマル

1	最小化 (アイコンに縮小表示)

2	最大化 (画面全体に拡大表示)

解説

WindowState プロパティは、フォームが表示される前は、デザイン時の設定値にかかわりなく常にノーマル (0) になりますが、その設定は Height、Left、ScaleHeight、ScaleWidth、Top、Width の各プロパティの設定値に反映されています。また、いったん表示されたフォームが非表示になり、非表示の間に WindowState プロパティが別の値に変更されても、Height、Left、ScaleHeight、ScaleWidth、Top、Width の各プロパティは非表示になる直前の値を再表示されるまで保持します。


関連項目

Load イベント

Paint イベント

Resize イベント


WindowState プロパティの対象

Form オブジェクト

MDIForm オブジェクト


WordWrap プロパティ

関連項目	例	対象

AutoSize プロパティを真 (True) に設定したラベル (Label) コントロールが、Caption プロパティで設定したテキストの長さに応じて、水平方向に広がるかまたは垂直方向に広がるかを設定します。値の取得も可能です。

構文

object.WordWrap [= boolean]

WordWrap プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	ラベル コントロールを、テキストの長さに応じて広げるかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	テキストは適切な位置で折り返されます (ワードラップされます)。テキストの行数やフォントのサイズに合わせてラベル コントロールの高さが調節されます。幅は変更されません。

False	(既定値) テキストは折り返されません。テキストの長さに合わせてラベル コントロールの幅が調節されます。ラベル コントロールの高さもフォントのサイズと行数に合わせて調節されます。

解説

WordWrap プロパティを使用して、ラベル コントロールの内容の表示方式を指定します。たとえば、内容が毎回異なるグラフは、ラベル コントロールを使って表示するテキストもそれに応じて変化する場合があります。テキストの長さにかかわらずラベル コントロールの幅を固定するには、WordWrap プロパティおよび AutoSize プロパティを真 (True) に設定します。

ラベル コントロールの幅だけを広げる場合は、WordWrap プロパティを偽 (False) に設定します。ラベル コントロールのサイズを変化させたくない場合は、AutoSize プロパティを偽 (False) に設定します。

注   AutoSize プロパティを偽 (False) に設定すると、ラベル コントロールの大きさや WordWrap プロパティの設定にかかわらずテキストは常に折り返されます。この場合、ラベル コントロールの大きさは変化しないので、テキストの一部が表示されないことがあります。


関連項目

AutoSize プロパティ

Caption プロパティ


WordWrap プロパティの対象

ラベル (Label) コントロール


X1、Y1、X2、Y2 プロパティ

関連項目	例	対象

ライン (Line) コントロールの開始点 (X1, Y1) と終了点 (X2, Y2) の座標を設定します。値の取得も可能です。横方向の座標が X1、X2 で、縦方向の座標が Y1、Y2 です。

構文

object.X1 [= value]

object.Y1 [= value]

object.X2 [= value]

object.Y2 [= value]

X1、Y1、X2、Y2 プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	座標を示す数式を指定します。

解説

X1、Y1、X2、Y2 プロパティは、実行時にライン コントロールの位置を動的に変更するために使います。たとえば、2 つのリストの項目間の対応を図示したり、地図上の 2 つの点を結ぶ線を描くために使います。


関連項目

Left、Top プロパティ

Line メソッド


X1、Y1、X2、Y2 プロパティの対象

ライン (Line) コントロール


GridLineWidth プロパティの例

次のプログラムは、マウスをクリックするたびに、グリッド (Grid) コントロールのグリッド ラインの幅を 1 ずつ増やします。このプログラムを実行するには、まず、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスの [Microsoft Grid Control] チェック ボックスを選択して、グリッド コントロールを追加します。次に、グリッド コントロールをフォームに配置します。フォーム モジュールのコード ウィンドウに下のコードを貼り付けた後、F5 キーを押して実行します。

Private Sub Grid1_Click ()

If Grid1.GridLineWidth < 10 Then

' 幅を 1 増やします。

Grid1.GridLineWidth = Grid1.GridLineWidth + 1

Else

Grid1.GridLineWidth = 1	' 幅を 1 に戻します。

End If

End Sub


MaxLength プロパティの例

次のプログラムは、あるテキスト ボックス (TextBox) コントロールの数値を使って、別のテキスト ボックス コントロールのテキストの長さを制限します。このプログラムを実行するには、2 つのテキスト ボックス コントロールを含むフォーム モジュールのコード ウィンドウに、下のコードを貼り付けます。Text1 のサイズを十分大きくしてから、F5 キーを押して実行し、数値を Text2 に、テキストを Text1 に入力してください。

Private Sub Text1_Change ()

Text1.MaxLength = Text2.Text

End Sub


MDIChild プロパティの例

次のプログラムは、MDI 子フォームのもう 1 つのインスタンスを MDI フォーム内に作成します。このプログラムを実行するには、Form1 の MDIChild プロパティを真 (True) に設定し、[挿入] - [MDI フォーム モジュール] コマンドで MDI フォームを作成します。次に、MDI フォーム モジュールのコード ウィンドウに下のコードを貼り付け、F5 キーを押して実行します。

Private Sub MDIForm_Load ()

Dim NewForm As New Form1	' 新規フォームを宣言します。

NewForm.Show	' 新規フォームを表示します。

End Sub


MouseIcon プロパティの例

次のプログラムは、MouseIcon プロパティによって、どのようにユーザー定義マウス アイコンが設定されるかを示します。リスト ボックス (ListBox) コントロールをフォーム上に作成して、MultiSelect プロパティを 1 または 2 に設定します。そのフォーム モジュールのコード ウィンドウに下のコードを貼り付けた後、F5 キーを押して実行します。実行時に 1 つ以上の項目を選択すると、項目を 1 つ選択したか、複数選択したかによって、異なるアイコンが表示されます。

Private Sub Form_Load ()

' リスト ボックス (ListBox) コントロールに項目をいくつか追加します。

List1.AddItem "Selection 1"

List1.AddItem "Selection 2"

List1.AddItem "Selection 3"

List1.AddItem "Selection 4"

List1.AddItem "Selection 5"

End Sub

Private Sub List1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)

' 複数項目が選択された場合のアイコンを設定します。

If List1.SelCount > 1 Then

List1.MouseIcon = LoadPicture("ICONS\COMPUTER\MOUSE04.ICO")

List1.MousePointer = 13

Else	' 単一の項目が選択された場合のアイコンを設定します。

List1.MouseIcon = LoadPicture("ICONS\COMPUTER\MOUSE02.ICO")

List1.MousePointer = 13

End If

End Sub


MousePointer プロパティの例

次のプログラムは、円が画面上に描画される間、マウス ポインタの形状を砂時計に変更し、プロシージャが終了すると元のポインタに戻します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押して、フォームをクリックします。

Private Sub Form_Click ()

Dim I	' 変数を宣言します。

Screen.MousePointer = 11	' マウス ポインタを砂時計に変更します。

For I = 0 To ScaleWidth Step 50	' 色をランダムに設定して

' 円を描画します。

ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)

Circle (I, ScaleHeight * Rnd), 400

Next

Screen.MousePointer = 0	' マウス ポインタを元に戻します。

End Sub


MultiSelect プロパティの例

次のプログラムは、リスト ボックス (ListBox) コントロールにスクリーン フォントの名前を表示し、リスト ボックス コントロールの動作が MultiSelect プロパティの設定によってどのように変化するかを示します。2 つのリスト ボックス コントロールと 1 つのコマンド ボタン (CommandButton) コントロールをフォーム上に作成し、1 番めのリスト ボックス コントロールの MultiSelect プロパティを 1 または 2 に設定します。実行時に、1 番めのリスト ボックス コントロールの項目をいくつか選択してから、コマンド ボタン コントロールをクリックすると、選択したすべての項目が、2 番めの リスト ボックス (ListBox) コントロールに表示されます。このプログラムを、MultiSelect プロパティの設定を変更して数回実行します。フォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押して実行します。

Private Sub Form_Load ()

Dim I	' 変数を宣言します。

' リスト ボックス コントロールにスクリーン フォント名を表示します。

For I = 0 To Screen.FontCount - 1

List1.AddItem Screen.Fonts(I)

Next I

End Sub

Private Sub Command1_Click ()

Dim I	' 変数を宣言します。

' リストの全項目をクリアします。

List2.Clear

' 項目が選択されていれば、2 番目のリスト ボックス コントロールに追加します。

For I = 0 To List1.ListCount - 1

If List1.Selected(I) Then

List2.AddItem List1.List(I)

End If

Next I

End Sub


Page プロパティの例

次のプログラムは、現在のページ番号を各ページの最上部に付け、テキストを 3 ページ印刷します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付けてから F5 キーを押して、フォームをクリックします。

Private Sub Form_Click ()

Dim Header, I, Y	' 変数を宣言します。

Print "印刷中"	' フォームにメッセージを表示します。

Header = "Page プロパティの例 - ページ"	' ヘッダーの文字列を設定します。

For I = 1 To 3

Printer.Print Header;	' ヘッダーを印刷します。

Printer.Print Printer.Page	' ページ番号を印刷します。

Y = Printer.CurrentY + 10	' 線を印刷する位置を設定します。

' Draw a line across page.

Printer.Line (0, Y) - (Printer.ScaleWidth, Y)	' 線を印刷します。

For K = 1 To 50

Printer.Print String(K, " ");	' スペースだけの文字列を印刷します。

Printer.Print "Visual Basic ";	' テキストを印刷します。

Printer.Print Printer.Page	' ページ番号を印刷します。

Next

Printer.NewPage

Next I

Printer.EndDoc

End

End Sub


PasswordChar プロパティの例

次のプログラムは、PasswordChar プロパティの設定によってテキスト ボックス (TextBox) コントロールのテキストの表示がどのように変化するかを示します。このプログラムを実行するには、テキスト ボックス コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押して、フォームをクリックします。フォームをクリックするたびに、パスワード用の文字であるアスタリスク (*) と、通常のテキストが交互に切り替わって表示されます。

Private Sub Form_Click ()

If Text1.PasswordChar = "" Then

Text1.PasswordChar = "*"

Else

Text1.PasswordChar = ""

End If

End Sub


Pattern プロパティの例

次のプログラムは、ファイル リスト ボックス (FileListBox) コントロールで新しいパターンが選択されると、テキスト ボックス (TextBox) コントロールを更新します。これらのコントロールは、ユーザーがテキスト ボックス コントロールに *.TXT のようなパターンを入力すると、そのパターンがファイル リスト ボックス コントロールに反映されるように設定されており、Windows 上のアプリケーションの通常の [ファイルを開く] ダイアログ ボックスに見られる対話形式に非常に似ています。C:\BIN\*.EXE のような絶対パスをテキスト ボックス コントロールに入力すると、このテキストは、ファイル リスト ボックス コントロールによって自動的にパスとパターンの構成要素に分解されます。このプログラムを実行するには、ディレクトリ リスト ボックス (DirListBox)、ファイル リスト ボックス 、テキスト ボックス 、およびコマンド ボタン (CommandButton) の各コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して、有効なファイル パターンをテキスト ボックス コントロールに入力します。

Private Sub Form_Load ()

Command1.Default = True	' Default プロパティを設定します。

End Sub

Private Sub Command1_Click ()

' テキストがパスとパターンの構成要素に分解されます。

File1.Filename = Text1.Text

Dir1.Path = File1.Path	' ディレクトリ リスト ボックス のパスを設定します。

End Sub

Private Sub File1_PatternChange ()

Text1.Text = File1.Pattern	' テキストを新しいパターンに設定します。

End Sub

Private Sub Dir1_Change

File1.Path = Dir1.Path	' ファイル リスト ボックス のパスを設定します。

End Sub


Port プロパティの例

この例は、Printers コレクションの各 Printer オブジェクトを調べて、特定のポートに接続されているオブジェクトを探し、それを既定のプリンタにします。

Dim P As Object

For Each P In Printers

If P.Port = "LPT2:" Or P.DeviceName Like "*LaserJet*" Then

Set Printer = P

Exit For

End If

Next P


RowHeight プロパティの例

次のプログラムは、フォームをクリックすると、カレント行の高さを 500 twips に設定します。このプログラムを実行するには、まず、新規にプロジェクトを作成し、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスの [Microsoft Grid Control] チェック ボックスを選択して、グリッド (Grid) コントロールを追加します。次に、グリッド (Grid) コントロールをフォームに配置します。そのフォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押してプログラムを実行し、セルを選択してフォームをクリックします。

Private Sub Form_Load ()

Grid1.Rows = 5	' 列数と行数を設定します。

Grid1.Cols = 7

End Sub

Private Sub Form_Click ()

Grid1.RowHeight(Grid1.Row) = 500

End Sub


ScaleHeight、ScaleWidth プロパティの例

次のプログラムは、ScaleHeight プロパティと ScaleWidth プロパティを使い、フォームの高さと幅の計測単位を変更します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押して実行します。実行結果を確認するには、フォームをクリックして大きさを変更した後、フォームを再びクリックします。

Private Sub Form_Click ()

Dim Radius As Integer	' 変数を宣言します。

ScaleHeight = 100	' 高さの単位を設定します。

ScaleWidth = 100	' 幅の単位を設定します。

For Radius = 5 to 50 Step 5

FillStyle = 1

Circle (50, 50), Radius	' 円を描画します。

Next Radius

End Sub


ScaleLeft、ScaleTop プロパティの例

次のプログラムは、ピクチャ ボックス (PictureBox) コントロール内にグリッドを作成し、左上隅の座標を (0,0) ではなく (-1,-1) に設定します。0.25 秒ごとに、点が左上隅から右下隅へ向かってランダムに描画されます。このプログラムを実行するには、大きなピクチャ ボックス コントロールとタイマー (Timer) コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押して実行します。

Private Sub Form_Load ()

Timer1.Interval = 250	' タイマーの間隔を設定します。

Picture1.ScaleTop = -1	' グリッドの上のスケールを設定します。

Picture1.ScaleLeft = -1	' グリッドの左のスケールを設定します。

Picture1.ScaleWidth = 2	' スケール幅を 2 に設定します。

Picture1.ScaleHeight = 2

Picture1.Line (-1, 0)-(1, 0)	' 横のラインを描画します。

Picture1.Line (0, -1)-(0, 1)	' 縦のラインを描画します。

End Sub

Private Sub Timer1_Timer ()

Dim I	' 変数を宣言します。

' ある範囲内でランダムに点を描画します。

For I = -1 To 1 Step .05

Picture1.PSet (I * Rnd, I * Rnd)	' 点を描画します。

Next I

End Sub


ScaleMode プロパティの例

次のプログラムは、ScaleMode プロパティの設定を変更して、それによって円の大きさがどのように変化するかを示します。このプログラムを実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押して実行します。フォームをクリックするたびに、7 つのScaleMode プロパティの設定が順に変更され、単位が変更された円がフォームに描画されます。

Private Sub Form_Click ()

' 7 つの ScaleMode プロパティの設定を順に切り替えます。

ScaleMode = ((ScaleMode + 1) Mod 7) + 1

' フォームの中心に半径 2 の円を描画します。

Circle (ScaleWidth / 2, ScaleHeight / 2), 2

End Sub


SelLength、SelStart、SelText プロパティの例

次のプログラムは、検索するテキストをユーザーが指定できるようにし、検索の結果、見つかった場合はそのテキストを選択します。このプログラムを実行するには、幅の広いテキスト ボックス (TextBox) コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して、フォームをクリックします。

Private Sub Form_Load ()

Text1.Text = "人生最大の喜び、それはおいしい食事とクラシック音楽だ。"

End Sub

Private Sub Form_Click ()

Dim Search, Where	' 変数を宣言します。

' ユーザーが、検索する文字列を入力します。

Search = InputBox("検索文字列を入力してください:")

Where = InStr(Text1.Text, Search)	' テキスト中の文字を検索します。

If Where Then	' 発見した場合。

Text1.SelStart = Where - 1	' 選択を開始する位置と

Text1.SelLength = Len(Search)	' 選択する文字数を設定します。

Else

MsgBox "検索文字列は見つかりませんでした。"	' ユーザーに通知します。

End If

End Sub

次のプログラムは、切り取り、コピー、貼り付けおよび削除の各操作における、Clipboard オブジェクトの使われ方を示します。このプログラムを実行するには、テキスト ボックス コントロールを含むフォームを作成し、メニュー エディタを使って [編集] メニューを作成します。そのとき、Caption プロパティを、コマンドごとに、それぞれ切り取り、コピー、貼り付けおよび削除に設定し、Name プロパティをそれぞれ EditCut、EditCopy、EditPaste および EditDelete に設定します。このフォーム モジュールのコード ウィンドウに下のコードを貼り付けた後、F5 キーを押して実行します。

Private Sub EditCut_Click ()

' 選択されたテキストをクリップボードにコピーします。

ClipBoard.SetText Screen.ActiveControl.SelText

' 選択されたテキストを削除します。

Screen.ActiveControl.SelText = ""

End Sub

Private Sub EditCopy_Click ()

' 選択されたテキストをクリップボードにコピーします。

ClipBoard.SetText Screen.ActiveControl.SelText

End Sub

Private Sub EditPaste_Click ()

' アクティブなコントロールにクリップボードからテキストを貼り付けます。

Screen.ActiveControl.SelText = ClipBoard.GetText ()

End Sub

Private Sub EditDelete_Click ()

' 選択されたテキストを削除します。

Screen.ActiveControl.SelText = ""

End Sub


Shape プロパティの例

次のプログラムは、シェイプ (Shape) コントロールで実現できる 6 種類の形状を表示します。このプログラムを実行するには、オプション ボタン (OptionButton) コントロールとシェイプ コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、オプション ボタン コントロールの Index プロパティを 0 に設定して、要素が 1 つのコントロール配列を作成し、F5 キーを押して実行します。それぞれの形状を見るには、そのオプション ボタン コントロールをクリックします。

Private Sub Form_Load ()

Dim I	' 変数を宣言します。

Option1(0).Caption = "Shape #0"

For I = 1 To 5 	' Option1 の 5 つのインスタンスを作成します。

Load Option1(I)

' 新規オプション ボタンの位置を設定します。

Option1(I).Top = Option1(I - 1).Top + Option1(0).Height + 40

' オプション ボタンのキャプションを設定します。

Option1(I).Caption = "Shape #" & I

' 作成したオプション ボタンを表示します。

Option1(I).Visible = True

Next I

End Sub

Private Sub Option1_Click (Index As Integer)

Shape1.Shape = Index

End Sub


Stretch プロパティの例

次のプログラムは、/ICONS ディレクトリからイメージ (Image) コントロールに矢印のアイコンをロードします。Stretch プロパティを真 (True) に設定すると、矢印がフォーム上をゆっくり移動し、Stretch プロパティを偽 (False) に設定すると、フォーム上をすばやく移動します。このプログラムを実行するには、イメージ、チェック ボックス (CheckBox)、およびタイマー (Timer) の各コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して、フォームをクリックします。/ICONS ディレクトリのパスを調べ、必要に応じてパスを変更してください。Stretch プロパティがどのように作用するかを見るには、チェック ボックス コントロールをクリックした後で、フォームを再びクリックします。

Dim ImgW	' 変数を宣言します。

Private Sub Form_Load ()

' イメージ コントロールにアイコンをロードします。

Image1.Picture = LoadPicture("ICONS\ARROWS\ARW02RT.ICO")

Image1.Left = 0	' イメージ コントロールを左端に移動します。

ImgW = Image1.Width	' イメージ コントロールの幅を保存します。

Timer1.Interval = 300

Timer1.Enabled = False	' タイマー コントロールをオフにします。

Check1.Caption = "Stretch Property"

End Sub

Private Sub Form_Click ()

Timer1.Enabled = True	' タイマー コントロールをオンにします。

End Sub

Private Sub Timer1_Timer ()

Static MoveIcon As Integer	' アイコンの移動を制御するフラグ。

If Not MoveIcon Then

Image1.Move Image1.Left + ImgW, Image1.Top, ImgW * 2

Else

' イメージ コントロールを移動して幅を元に戻します。

Image1.Move Image1.Left + ImgW, Image1.Top, ImgW

End If

' イメージ コントロールがフォームの端に達したら最初から繰り返します。

If Image1.Left > ScaleWidth Then

Image1.Left = 0

Timer1.Enabled = False

End If

MoveIcon = Not MoveIcon	' フラグをリセットします。

End Sub

Private Sub Check1_Click ()

Image1.Stretch = Check1.Value

End Sub


TopIndex プロパティの例

次のプログラムは、リスト ボックス (ListBox) コントロールにスクリーン フォント名を表示し、その後、フォームをクリックすると、リスト ボックス コントロールをスクロールします。このプログラムを実行するには、リスト ボックス コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押して、フォームをクリックします。

Private Sub Form_Load ()

Dim I	' 変数を宣言します。

For I = 0 To Screen.FontCount -1	' スクリーン フォント名を

List1.AddItem Screen.Fonts(I)	' リスト ボックスに表示します。

Next I

End Sub

Private Sub Form_Click ()

Dim X	' 変数を宣言します。

X = List1.TopIndex	' 現在のインデックスを取得します。

List1.TopIndex = List1.TopIndex + 5	' 一番上になる項目を設定します。

If List1.TopIndex = X Then List1.TopIndex = 0

End Sub


TopRow プロパティの例

次のプログラムは、フォームをクリックするたびに、TopRow プロパティの設定を変更します。このプログラムを実行するには、まず、新規にプロジェクトを作成し、メニューから [ツール] - [カスタム コントロール] コマンドを選択し、[カスタム コントロール] ダイアログ ボックスの [Microsoft Grid Control] チェック ボックスを選択して、グリッド (Grid) コントロールを追加します。次に、フォームにグリッド コントロールを配置します。そのフォーム モジュールのコード ウィンドウに下のコードを貼り付けた後、F5 キーを押して実行します。

Private Sub Form_Load ()

' 列数と行数を設定します。

Grid1.Cols = 6

Grid1.Rows = 12

' 各列の先頭に番号を表示します。

Grid1.Col = 0

For I = 1 To Grid1.Rows - 1

Grid1.Row = I

Grid1.Text = I

Next I

End Sub

Private Sub Form_Click ()

On Error GoTo TopRowError

Grid1.TopRow = Grid1.TopRow + 1

On Error GoTo 0

Exit Sub

TopRowError:

Grid1.TopRow = 1

Resume Next

End Sub


WindowList プロパティの例

次のプログラムは、メニュー コマンドをいくつか作成して [ウィンドウ リスト] チェック ボックスの機能を示し、さらに、ユーザーがマルチ ドキュメント インターフェイス (MDI) アプリケーションに新規フォームを追加できるようにする方法を示します。このプログラムを実行するには、[挿入] - [MDI フォーム モジュール] コマンドを使って MDI フォーム モジュールを 作成します。Form1 の MDIChild プロパティを真 (True) に設定します。このフォームにメニュー エディタを使って“ファイル”というキャプションのメニューを作成します。次に [ファイル] メニューを作成するときにメニュー エディタ上で [ウィンドウ リスト] チェック ボックスを選択します。[ファイル] メニュー上に [新規ウィンドウ] コマンドを作成し、その Name プロパティを FileMenu に、Index プロパティを 0 に設定して、コントロール配列を作成します。フォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押して実行します。[ファイル] － [新規ウィンドウ] コマンドを選択すると、新しい MDI 子フォームが作成され、その名前が [ファイル] メニューの一番下に表示されます。

Private Sub Form_Load ()

FileMenu(0).Caption = "新規ウィンドウ (&N)"	' [新規ウィンドウ] コマンドとアクセス キーを設定。

Load FileMenu(1)	' メニュー項目を作成します。

FileMenu(1).Caption = "-"	' セパレータを設定します。

Load FileMenu(2)	' メニュー項目を作成します。

FileMenu(2).Caption = "終了 (&X)"	' [終了] コマンドとアクセス キーを設定します。

End Sub

Private Sub FileMenu_Click (Index As Integer)

Select Case Index

Case 0	' [新規ウィンドウ] コマンドが選択されたら、

Dim NewForm As New Form1	' Form1 の複製を作成します。

' NewForm をロードして、一意のキャプションを設定します。

NewForm.Caption = " タイトルなし " & Forms.Count

Case 2	' [終了] コマンドが選択されたら、

End	' プログラムを終了します。

End Select

End Sub


WindowState プロパティの例

次のプログラムは、親フォーム (Form1) が最小化されると、ダイアログ ボックス (Form2) を非表示にし、親フォームが元のサイズまたは最大化の状態のいずれかに戻されると、ダイアログ ボックスを再び表示します。このプログラムを実行するには、2 つのフォームを含むアプリケーションの Form1 のコード ウィンドウに、下のコードを貼り付けてから、F5 キーを押して実行します。両方のフォームが見えるように Form1 を移動した後、Form1 を最小化または最大化にして、Form2 の動作を確認します。

Private Sub Form_Load ()

Form2.Show	' Form2 を表示します。

End Sub

Private Sub Form_Resize ()

Const MIN = 1

If Form1.WindowState = MIN Then	' 親フォームが最小化されていたら、

Form2.Visible = False	' Form2 を非表示にします。

Else	' 親フォームが最小化されていなければ、

Form2.Visible = True	' Form2 を表示します。

End If

End Sub


WordWrap プロパティの例

次のプログラムは、テキストを 2 つのラベル (Label) コントロールに表示し、WordWrap プロパティの設定による、それらのコントロールの動作の違いを示します。このプログラムを実行するには、2 つのラベル コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押して実行します。次に、フォームをクリックして WordWrap プロパティの設定を切り替えます。

Private Sub Form_Load ()

Dim Author1, Author2, Quote1, Quote2	' 変数を宣言します。

Label1.AutoSize = True	' AutoSize プロパティを設定します。

Label2.AutoSize = True

Label1.WordWrap = True	' WordWrap プロパティを設定します。

Quote1 = "私は成功を待たずに先に進んだ。"

Author1 = "  - Jonathan Winters"

Quote2 = "論理家の人は自信によって道を誤る。"

Author2 = "  - Charles Kettering"

Label1.Caption = Quote1 & Chr(10) & Author1

Label2.Caption = Quote2 & Chr(10) & Author2

End Sub

Private Sub Form_Click ()

Label1.Width = 1440	' 幅を twip 単位で 1 インチに設定します。

Label2.Width = 1440

Label1.WordWrap = Not Label1.WordWrap ' WordWrap プロパティを切り替えます。

Label2.WordWrap = Not Label2.WordWrap

End Sub


X1、Y1、X2、Y2 プロパティの例

次のプログラムは、フォームをクリックすると、フォーム上を下方向へ移動するアニメーションの線を表示します。このプログラムを実行するには、タイマー (Timer) コントロールとライン (Line) コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して、フォームをクリックします。

Private Sub Form_Load ()

Timer1.Interval = 100	' タイマー コントロールの間隔を設定します。

' ラインの位置を左上隅の近辺に設定します。

Line1.X1 = 100

Line1.Y1 = 100

Line1.X2 = 500

Line1.Y2 = 300

End Sub

Private Sub Form_Click ()

Timer1.Enabled = True	' タイマー (Timer) コントロールをスタートさせます。

End Sub

Private Sub Timer1_Timer ()

Static Odd	' 変数を宣言します。

If Odd Then

Line1.X2 = Line1.X2 + 250

Line1.Y2 = Line1.Y2 + 600

Else

Line1.X1 = Line1.X1 + 250

Line1.Y1 = Line1.Y1 + 600

End If

Odd = Not Odd	' 値を切り替えます。

' 線がフォームからはみ出したら最初に戻ります。

If Line1.Y1 > ScaleHeight Then

Timer1.Enabled = False	' 次のクリックまで待ちます。

Line1.X1 = 100

Line1.Y1 = 100

Line1.X2 = 500

Line1.Y2 = 300

Odd = False

End If

End Sub


ActiveControl プロパティ

関連項目	例	対象

フォーカスを持つコントロールを返します。ChildForm.ActiveControl というコードでフォームを参照すると、そのフォームがアクティブであるときに、フォーカスを持つコントロールを指定します。デザイン時には設定できません。実行時には値の取得のみ可能です。

構文

object.ActiveControl

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

注   Microsoft Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

解説

ActiveControl プロパティを使うと、コントロールのプロパティを操作したり、メソッドを呼び出すことができます。たとえば、Screen.ActiveControl.Tag = "0" と記述して使用します。フォーム上のすべてのコントロールが非表示、または無効になっている場合は、実行時エラーが発生します。

フォームがアクティブかどうかに関わらず、各フォームはアクティブ コントロール (Form.ActiveControl) を持つことができます。この機能によって、アクティブではないフォームのアクティブ コントロールを操作するなどの処理をすることができます。

このプロパティは、MDI アプリケーションで特に役立ちます。MDI アプリケーションでは、ツールバーのボタンがクリックされた場合に、MDI 子フォームの処理を行う必要があります。たとえば、ユーザーがツールバーの <コピー> ボタンをクリックしたときに、MDI 子フォームのアクティブ コントロールのテキストを参照するには、次のようなコードを使います。

ActiveForm.ActiveControl.SelText

注   Screen.ActiveControl をプロシージャに渡す場合は、そのプロシージャの引数は As Control 節で宣言してください。引数のデータ型が一定であることがあらかじめわかっている場合でも、特定のコントロールのデータ型 (As TextBox、As ListBox など) で、宣言しないでください。


関連項目

ActiveForm プロパティ

GotFocus イベント

LostFocus イベント

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)


ActiveControl プロパティの対象

Form オブジェクト

MDIForm オブジェクト

Screen オブジェクト


Appearance プロパティ

関連項目	対象

MDIForm オブジェクトや Form オブジェクトのコントロールの描画スタイルを設定します。値の取得も可能です。実行時には値の取得のみ可能です。

重要   16 ビットの OLE カスタム コントロールでは、Appearance プロパティは使用できません。

構文

object.Appearance

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

Appearance プロパティの設定値は次のとおりです。

設定値	内容

0	フラット。3-D 効果なしでコントロールおよびフォームを描画します。

1	(既定値) 3-D。コントロールを描画するときに、3-D 効果を持たせます。

解説

デザイン時に、Appearance プロパティに 1 を設定すると、3-D 効果を持つコントロールが描画されます。フォームの BorderStyle プロパティを Fixed Dialog (定数 vbFixedDialog または 3) に設定すると、フォームのキャプションと境界線も 3-D で描画されます。また、Appearance プロパティを 1 に設定すると、実行時にフォームとそのコントロールの BackColor プロパティは、Windows のコントロール パネルで選択した、ボタンの色に設定されます。

MDIForm オブジェクトの Appearance プロパティに 1 を設定した場合、その設定は、MDI 親フォームにのみ有効です。MDI 子フォームに 3-D 効果を設定するには、各子フォームの Appearance プロパティに 1 を設定する必要があります。


関連項目

BackColor、ForeColor プロパティ

BorderStyle プロパティ


Appearance プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

データ (Data) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


Bold プロパティ

関連項目	例	対象

Font オブジェクトのフォント スタイルを太字 (ボールド) に設定します。値の取得も可能です。

構文

object.Bold [= boolean]

Bold プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	フォント スタイルを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	太字 (ボールド) の書式設定を有効にします。

False	(既定値) 太字 (ボールド) の書式設定を無効にします。

解説

デザイン時には、Font オブジェクトを直接設定できません。デザイン時に Bold プロパティを設定するには、プロパティ ウィンドウでコントロールの Font プロパティを選択して、プロパティ ボタンをクリックします。次に、[フォントの指定] ダイアログ ボックスの [スタイル] ボックスで、[ボールド] または [ボールド イタリック] を選択します。実行時には、コード内で Font オブジェクトの Bold プロパティの設定値を指定します。


関連項目

FontTransparent プロパティ

Italic プロパティ

Name プロパティ

Size プロパティ (Font オブジェクト)

StrikeThrough プロパティ

Underline プロパティ

Weight プロパティ


Bold プロパティの対象

Font オブジェクト


FontTransparent プロパティ

関連項目	例	対象

Form オブジェクト、Printer オブジェクト、またはピクチャ ボックス (PictureBox) コントロールの文字の周囲に、背景となるグラフィックスやテキストを表示するかどうかを設定します。値の取得も可能です。

構文

object.FontTransparent [= boolean]

FontTransparent プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	背景のグラフィックスやテキストの状態を表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	(既定値) 背景のグラフィックスやテキストが透けて表示されます。

False	背景のグラフィックスやテキストは上書きされます。

解説

FontTransparent プロパティを設定するには、デザイン時 にはプロパティ ウィンドウを、実行時にはコードを使います。実行時に FontTransparent プロパティを変更しても、Form オブジェクト、Printer オブジェクト、またはピクチャ ボックス コントロールに、既に描かれているグラフィックスやテキストには影響ありません。


関連項目

Bold プロパティ

Italic プロパティ

Name プロパティ

Size プロパティ (Font オブジェクト)

StrikeThrough プロパティ

Underline プロパティ

Weight プロパティ


FontTransparent プロパティの対象

Form オブジェクト

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト


Italic プロパティ

関連項目	例	対象

Font オブジェクトのフォント スタイルに斜体 (イタリック) を設定します。値の取得も可能です。

構文

object.Italic [= boolean]

Italic プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	フォント スタイルを表すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	斜体 (イタリック) の書式設定を有効にします。

False	(既定値) 斜体 (イタリック) の書式設定を無効にします。

解説

デザイン時には、Font オブジェクトを直接設定できません。デザイン時にItalic プロパティを設定するには、プロパティ ウィンドウでコントロールの Font プロパティを選択し、プロパティ ボタンをクリックします。次に、[フォントの指定] ダイアログ ボックスの [スタイル] ボックスで、[イタリック] または [ボールド イタリック] を選択します。実行時には、コード内で Font オブジェクトの Italic プロパティに値を設定します。


関連項目

Bold プロパティ

FontTransparent プロパティ

Name プロパティ

Size プロパティ (Font オブジェクト)

StrikeThrough プロパティ

Underline プロパティ

Weight プロパティ


Italic プロパティの対象

Font オブジェクト


LBound プロパティ

関連項目	例	対象

コントロール配列内のコントロールのインデックス番号の最小値を返します。

構文

object.LBound

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

LBound プロパティの設定値は、配列の最初のコントロールの Index プロパティの値に等しくなります。Visual Basic では、コントロール配列の最初のコントロールに、自動的に Index プロパティの値として 0 が割り当てられるので、通常、LBound プロパティの値は 0 になります。配列の最初のコントロールに、別の値 (たとえば 1) を Index プロパティの値として割り当てると、LBound プロパティは Index プロパティに割り当てた値 (この場合は 1) が返されます。


関連項目

コントロール配列

Count プロパティ (VB コレクション)

Index プロパティ (コントロール配列)

UBound プロパティ


LBound プロパティの対象

コントロール配列


Size プロパティ (Font オブジェクト)

関連項目	例	対象

Font オブジェクトに使用するフォント サイズを設定します。値の取得も可能です。

構文

object.Size [= number]

Size プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	フォント サイズをポイントで示す数式を指定します。

解説

Size プロパティは、テキストを任意のフォント サイズに書式設定するときに使われます。既定のフォント サイズは、オペレーティング システムによって決定されます。既定値を変更するには、ポイント単位でフォント サイズを指定します。Size プロパティの最大値は 2048 ポイントです。

デザイン時には、Font オブジェクトを直接設定できません。デザイン時に Size プロパティを設定するには、プロパティ ウィンドウでコントロールの Font プロパティを選択し、プロパティ ボタンをクリックします。次に、[フォントの指定] ダイアログ ボックスの [サイズ] ボックスで、希望するフォント サイズを選択します。実行時には、コード内で Font オブジェクトの Size プロパティに設定値を指定します。


関連項目

Bold プロパティ

FontTransparent プロパティ

Italic プロパティ

Name プロパティ

StrikeThrough プロパティ

Underline プロパティ

Weight プロパティ


Size プロパティの対象

Font オブジェクト


StartMode プロパティ

関連項目	例	対象

アプリケーションを、独立型のプロジェクト、または OLE サーバーとして起動するかどうかを決定する値を設定します。値の取得も可能です。実行時には、値の取得のみ可能です。

構文

object.StartMode

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

StartMode プロパティの設定値は次のとおりです。

定数	値	内容

vbSModeStandalone	0	(既定値) アプリケーションを独立型のプロジェクトとして起動します。

vbSModeAutomation	1	アプリケーションを OLE サーバーとして起動します。

解説

これらの定数は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリ に一覧表示されます。

たとえば、デザイン時に、StartMode プロパティを 1 (定数 vbSModeAutomation) に設定するか、または [オプション] ダイアログ ボックスの [プロジェクト] タブの [OLE サーバー] オプション ボタンを選択すると、アプリケーションを OLE サーバーとして起動し、デバッグすることができます。しかし、プロジェクトの実際の StartMode プロパティの値は、アプリケーションの実行時の起動方法によって決定され、実行可能 (.EXE) ファイルを作成するときの [オプション] ダイアログ ボックスの [プロジェクト] タブの設定だけで決定されるものではありません。

StartMode プロパティに 1 が設定され、プロジェクトにパブリック クラスがない場合に、アプリケーションを終了するには、End ステートメントを使うか、[実行] - [終了] コマンドまたはツールバーの <終了> ボタンを選択する必要があります。コントロール メニューの [閉じる] コマンドを選択すると、フォームは閉じますが、プロジェクトの実行は継続します。


関連項目

EXEName プロパティ

HelpFile プロパティ

Path プロパティ

PrevInstance プロパティ

Title プロパティ


StartMode プロパティの対象

App オブジェクト


StrikeThrough プロパティ

関連項目	例	対象

Font オブジェクトのフォント スタイルに、取り消し線を設定します。値の取得も可能です。

構文

object.StrikeThrough [= boolean]

StrikeThrough プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	フォント スタイルを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	取り消し線の書式を有効にします。

False	(既定値) 取り消し線の書式設定を無効にします。

解説

デザイン時には、Font オブジェクトを直接設定できません。デザイン時にStrikeThrough プロパティを設定するには、プロパティ ウィンドウでコントロールの Font プロパティを選択し、プロパティ ボタンをクリックします。次に、[フォントの指定] ダイアログ ボックスの [取り消し線] チェック ボックスをオンにします。実行時には、コード内で Font オブジェクトの StrikeThrough プロパティに設定値を指定します。


関連項目

Bold プロパティ

FontTransparent プロパティ

Italic プロパティ

Name プロパティ

Size プロパティ (Font オブジェクト)

Underline プロパティ

Weight プロパティ


StrikeThrough プロパティの対象

Font オブジェクト


TrackDefault プロパティ

関連項目	対象

Printer オブジェクトが常に同じプリンタを指すか、Windows のコントロール パネルの [プリンタの設定] ウィンドウで通常使うプリンタの設定を変更したときに、オブジェクトが指すプリンタも変更するかどうかを示す値を設定します。値の取得も可能です。デザイン時には設定できません。

構文

object.TrackDefault [= boolean]

TrackDefault プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	引数 object で指定されているプリンタを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	(既定値) Windows のコントロール パネルの [プリンタの設定] ウィンドウで、通常使うプリンタの設定を変更したときに、Printer オブジェクトが指すプリンタを変更します。

False	Windows のコントロール パネルで通常使うプリンタの設定を変更しても、Printer オブジェクトは引き続き同じプリンタを指します。

解説

印刷ジョブの実行中に TrackDefault プロパティの設定を変更すると、自動的に、Printer オブジェクトに EndPage ステートメントが送られます。


関連項目

ColorMode プロパティ

Copies プロパティ

EndDoc メソッド

PaperBin プロパティ

PrintQuality プロパティ

Height、Width プロパティ


TrackDefault プロパティの対象

Printer オブジェクト


Type プロパティ (Picture オブジェクト)

関連項目	例	対象

Picture オブジェクトのグラフィックス形式を返します。

構文

object.Type

引数 objec には、オブジェクトへの参照を表すオブジェクト式を指定します。

戻り値

Type プロパティの戻り値は次のとおりです。

定数	値	内容

vbPicTypeBitmap	1	ビットマップ (.BMP ファイル)

vbPicTypeMetafile	2	メタファイル (.WMF ファイル)

vbPicTypeIcon	3	アイコン (.ICO ファイル)

解説

これらの定数はオブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリに一覧表示されます。


関連項目

Height、Width プロパティ


Type プロパティの対象

Picture オブジェクト


UBound プロパティ

関連項目	例	対象

コントロール配列内のコントロールの、インデックス番号の最大値を返します。

構文

object.UBound

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

UBound プロパティの値は、配列の最後のコントロールの Index プロパティの値と等しくなります。


関連項目

Index プロパティ (コントロール配列)

LBound プロパティ


UBound プロパティの対象

コントロール配列


Underline プロパティ

関連項目	例	対象

Font オブジェクトのフォント スタイルを下線付きにするかどうかを設定します。値の取得も可能です。

構文

object.Underline [= boolean]

Underline プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	フォント スタイルを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	下線付きの書式設定を有効にします。

False	(既定値) 下線付きの書式設定を無効にします。

解説

デザイン時には、Font オブジェクトを直接設定できません。デザイン時にUnderline プロパティを設定するには、プロパティ ウィンドウでコントロールの Font プロパティを選択し、プロパティ ボタンをクリックします。次に、[フォントの指定] ダイアログ ボックスの [下線] チェック ボックスをオンにします。実行時には、コード内で Font オブジェクトの Underline プロパティに設定値を指定します。


関連項目

Bold プロパティ

FontTransparent プロパティ

Italic プロパティ

Name プロパティ

Size プロパティ (Font オブジェクト)

StrikeThrough プロパティ

Weight プロパティ


Underline プロパティの対象

Font オブジェクト


UseMnemonic プロパティ

関連項目	例	対象

ラベル (Label) コントロールの Caption プロパティの文字列に、アンパサンド (&) を使ってアクセス キーを定義するかどうかを指定する値を設定します。値の取得も可能です。

構文

object.UseMnemonic [= boolean]

UseMnemonic プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	ラベル コントロールでアクセス キーを有効にするかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	(既定値) Caption プロパティの文字列にアンパサンドがあれば、それに続く文字をアクセス キーにします。アンパサンドはラベル コントロールに表示されません。

False	Caption プロパティの文字列にアンパサンドがある場合でも、ラベル コントロールにアンパサンドとして表示されます。

解説

実行時に、Alt キーとラベル コントロールの Caption プロパティで定義されているアクセス キーを同時に押すと、ラベル コントロールの次にタブ オーダーがあるコントロールに、フォーカスが移動します。


関連項目

Caption プロパティ


UseMnemonic プロパティの対象

ラベル (Label) コントロール


Weight プロパティ

関連項目	例	対象

Font オブジェクトを形成する文字のウェイトを設定します。値の取得も可能です。

構文

object.Weight [= number]

Weight プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	フォントのウェイトを表す数式を指定します。

解説

デザイン時には、Font オブジェクトを直接設定できません。デザイン時に Font オブジェクトの Weight プロパティを設定するには、プロパティ ウィンドウでコントロールの Font プロパティを選択し、プロパティ ボタンをクリックします。次に、[フォントの指定] ダイアログ ボックスの [スタイル] ボックスから項目を選択して Weight プロパティを設定します。[標準] または [イタリック] に設定されている場合は、Weight プロパティの値は 400 (既定値) です。[ボールド] または [ボールド イタリック] に設定されている場合は、Weight プロパティの値は 700 です。実行時には、Font オブジェクトの Weight プロパティに、コードを使って値を設定します。

実行時に Font オブジェクトの Weight プロパティに 400 または 700 以外の値を設定すると、指定された値は、400 または 700 の近い方の値に変換されます。Weight プロパティに設定された値が 401 以上 550 以下の場合は、値は 400 に変換され、551 以上の場合は、700 に変換されます。


関連項目

Bold プロパティ

FontTransparent プロパティ

Italic プロパティ

Name プロパティ

Size プロパティ (Font オブジェクト)

StrikeThrough プロパティ

Underline プロパティ


Weight プロパティの対象

Font オブジェクト


ActiveControl プロパティの例

次のプログラムは、アクティブなコントロールのテキストが表示されます。このプログラムを実行するには、テキスト ボックス (TextBox) コントロール、ラベル (Label) コントロール、コマンド ボタン (CommandButton) コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して、フォームをクリックします。

Private Sub Form_Click ()

If TypeOf Screen.ActiveControl Is TextBox Then

Label1.Caption = Screen.ActiveControl.Text

Else

Label1.Caption = "Button: " + Screen.ActiveControl.Text

End If

End Sub

次のプログラムは、ツールバー上のボタンを使って、切り取り、コピー、貼り付け、削除の各操作を行う場合の、Clipboard オブジェクトの使い方を示します。このプログラムを実行するには、テキスト ボックス コントロールとチェック ボックス (CheckBox) コントロールを Form1 上に配置してから、新規に MDI フォームを挿入します。次に、MDI フォームにピクチャ ボックス (PictureBox) コントロールを配置してから、コマンド ボタン コントロールをピクチャ ボックス コントロール上に配置します。さらに、コマンド ボタン コントロールの Index プロパティを 0 に設定して、コントロール配列を作成します。最後に、Form1 上で MDIChild プロパティを真 (True) に設定します。

この例を実行するには、MDI フォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押します。このとき、チェックボックス コントロールにフォーカスがあると、ボタンは機能しません。

Private Sub MDIForm_Load ()

Dim I	' 変数を宣言します。

Command1(0).Move 0, 0, 700, 300	' ツールバー上にボタンを配置します。

For I = 1 To 3	' 他のボタンを作成します。

Load Command1(I)	' ボタンを作成します。

Command1(I).Move I * 700, 0, 700, 300  ' ボタンの場所とサイズを指定します。

Command1(I).Visible = True	' ボタンを表示します。

Next I

Command1(0).Caption = "切り取り"	' ボタンのキャプションを設定します。

Command1(1).Caption = "コピー"

Command1(2).Caption = "貼り付け"

Command1(3).Caption = "削除"

End Sub

Private Sub Command1_Click (Index As Integer)

' ActiveForm は、MDI form 上のアクティブなフォームを参照します。

If TypeOf ActiveForm.ActiveControl Is TextBox Then

Select Case Index

Case 0	' 切り取り。

' 選択されたテキストをクリップボードにコピーします。

Clipboard.SetText ActiveForm.ActiveControl.SelText

' 選択されたテキストを削除します。

ActiveForm.ActiveControl.SelText = ""

Case 1	' コピー。

' 選択されたテキストを、クリップボードにコピーします。

Clipboard.SetText ActiveForm.ActiveControl.SelText

Case 2	' 貼り付け。

' クリップボードのテキストを、テキストボックスにコピーします。

ActiveForm.ActiveControl.SelText = Clipboard.GetText()

Case 3	' 削除。

' 選択されたテキストを、テキストボックスから削除します。

ActiveForm.ActiveControl.SelText = ""

End Select

End If

End Sub


Bold、Italic、Size、StrikeThrough、Underline、Weight プロパティの例

次のプログラムは、マウスをクリックするたびに、テキストがフォーム上に表示されます。この例を実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押し、フォームを 2 回クリックします。

Private Sub Form_Click ()

Font.Bold = Not Font.Bold	' 太字の指定を切り替えます。

Font.StrikeThrough = Not Font.StrikeThrough ' 取り消し線の指定を切り替えます。

Font.Italic = Not Font.Italic	' 斜体の指定を切り替えます。

Font.Underline = Not Font.Underline	' 下線付きの指定を切り替えます。

Font.Size = 16	' Size プロパティを設定します。

If Font.Bold Then

Print "フォントのウェイトは " & Font.Weight & " (太字) です。"

Else

Print "フォントのウェイトは " & Font.Weight & " (太字) ではありません。"

End If

End Sub


FontTransparent プロパティの例

次のプログラムは、ピクチャ ボックス (PictureBox) コントロールのグラフィックス上にテキストが表示されます。このプログラムを実行するには、ピクチャ ボックス コントロールをフォーム上に置いて、AutoSize プロパティを真 (True) に設定します。次に、\WINDOWS ディレクトリにある WINLOGO.BMP というビットマップ (.BMP) ファイルを、Picture プロパティにロードします。フォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押し、フォームを 2 回クリックします。

Private Sub Form_Click ()

' プロパティの指定を反転させます。

Picture1.FontTransparent = Not Picture1.FontTransparent

   Picture1.Print "これは、FontTransparent プロパティのデモです。"

End Sub


LBound、UBound プロパティの例

次のプログラムは、コントロール配列の、LBound プロパティと UBound プロパティの値が表示されます。オプション ボタン (OptionButton) コントロールをフォーム上に配置してから、Index プロパティを 0 に設定して、コントロール配列を作成します。この例を実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付けてから、F5 キーを押し、次に、フォームをクリックします。

Private Sub Form_Paint ()

Static FlagFormPainted As Integer

If FlagFormPainted <> True Then ' フォームが最初の描画を行うときに、

For i = 1 To 3

Load Option1(i)	' 配列に 3 つのオプション ボタンを追加します。

Option1(i).Top = Option1(i - 1).Top + 350

Option1(i).Visible = True

Next I

For I =  0 to 3	' オプション ボタンにキャプションを設定します。

Option1(i).Caption = "Option #" & CStr(i)

Next I

Option1(0).Value = True	' 最初のオプション ボタンを選択します。

FlagFormPainted = True	' フォームの描画を終了します。

End If

End Sub

Private Sub Form_Click ()

Print "コントロール配列の Count プロパティの値は " & Option1().Count & "です。"

Print "コントロール配列の LBound プロパティの値は " & Option1().LBound & "です。"

Print "コントロール配列の UBound プロパティの値は " & Option1().UBound & "です。"

End Sub


StartMode プロパティの例

次のプログラムは、デザイン時に StartMode プロパティを 1 (vbSModeAutomation) に設定して得られる結果の例が示されます。まず、新規にプロジェクトを開き、[ツール] - [オプション] コマンドを選択します。次に、[プロジェクト] タブで [実行開始モード] グループ ボックスの [OLE サーバー] オプション ボタンを選択します。最後に、[OK] ボタンを選択して [オプション] ダイアログ ボックスを閉じます。この例を実行するには、フォーム モジュールのコード ウィンドウに下のコードを貼り付けてから F5 キーを押し、次に、フォームのタイトル バーの左にあるコントロール メニューをダブルクリックします。

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

If UnloadMode = vbFormControlMenu And App.StartMode = vbSModeAutomation Then

Msg = "フォームを閉じても、アプリケーションは実行されています。" & Chr(10)

Msg = Msg + "パブリック クラスを含まないアプリケーションを終了するには、" & Chr(10)

Msg = Msg + "End ステートメントを使わなければなりません。"

MsgBox Msg

End If

End Sub


UseMnemonic プロパティの例

次のプログラムは、ラベル (Label) コントロールの UseMnemonic プロパティの設定を取得します。この例を実行するには、ラベル コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けてから F5 キーを押し、次にフォームをクリックします。

Private Sub Form_Click()

If Label1.UseMnemonic And InStr(Label1, "&") Then

MsgBox "このラベルには、アクセス キー用の文字が割り当てられています。"

ElseIf Label1.UseMnemonic And Not InStr(Label1, "&") Then

MsgBox "このラベルでは、アクセス キー用の文字が使えますが、アンパサンドがありません。"

Else

MsgBox "このラベルでは、アクセス キー用の文字は使えません。"

End If

End Sub


Type、Width プロパティの例

次のプログラムは、ピクチャ ボックス (PictureBox) コントロール内の Picture オブジェクトの Type プロパティと Width プロパティの設定値を取得します。この例を実行するには、Picture プロパティにアイコンが設定されているピクチャ ボックス コントロールを含むフォーム モジュールのコード ウィンドウに下のコードを貼り付けます。次に、F5 キーを押して、フォームをクリックします。

Private Sub Form_Click()

If Picture1.Picture.Type = vbPicTypeIcon Then

Print "ピクチャ ボックス上のグラフィックスはアイコンです。"

Else

Print "Picture プロパティにアイコンは設定されていません。"

End If

Print "HiMetrics で表したグラフィックスの幅は、" & Picture1.Picture.Width & "です。"

Print "twip で表したピクチャ ボックス自身の幅は、" & Picture1.Width & "です。"

End Sub


ActiveForm プロパティ

関連項目	例	対象

アクティブ ウィンドウであるフォームを返します。MDIForm オブジェクトがアクティブである場合、または参照されている場合は、その MDIForm オブジェクトの指定した MDI 子フォームを指します。

注   Microsoft Visual Basic のインプロセス OLE サーバー (DLL) にこのトピックの内容を適用する場合の重要事項および制限事項については、「[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)」を参照してください。

構文

object.ActiveForm

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

フォームの各プロパティを操作したり、メソッドを呼び出す場合は、ActiveForm プロパティを使います。たとえば、Screen.ActiveForm.MousePointer = 4 と記述して使用します。

このプロパティは、マルチ ドキュメント インターフェイス (MDI) アプリケーションで特に役立ちます。MDI アプリケーションでは、ツールバーのボタンが押された場合に、MDI 子フォームの処理を行う必要があります。たとえば、ツールバーの <コピー> ボタンを押したときに、MDI 子フォーム上のアクティブ コントロールのテキストを参照するには、ActiveForm.ActiveControl.SelText というコードを使用します。

フォームのコントロールがフォーカスが持っている場合は、そのフォームが画面のアクティブ フォーム (Screen.ActiveForm) です。また、MDIForm オブジェクトは、親フォームから参照できるアクティブ フォーム (MDIForm.ActiveForm) として、MDI 子フォームを 1 つ含むことができます。画面での ActiveForm プロパティと、MDI フォームの ActiveForm プロパティは、一致しないことがあります。たとえば、ダイアログ ボックスとして作成したフォームがアクティブである場合は、ActiveForm プロパティは一致しません。したがって、ダイアログ ボックスが ActiveForm プロパティに設定される可能性のある場合は、ActiveForm プロパティを使って、MDIForm オブジェクトを指定してください。

注   アクティブな MDI 子フォームが最大化されていないときは、親フォームと子フォームの両方のタイトル バーがアクティブ ウィンドウとして表示されます。

Screen.ActiveForm または MDIForm.ActiveForm をプロシージャに渡す場合は、そのプロシージャの引数として総称 (As Form) を宣言する必要があります。ActiveForm プロパティの型、つまり、アクティブ ウィンドウであるフォームの型が一定であるとあらかじめわかっている場合でも、具体的なフォーム型 (As MyForm など) は宣言しないでください。

ActiveForm プロパティは ProjectTemplate オブジェクトの既定値を決定します。


関連項目

Activate、Deactivate イベント

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

MDIChild プロパティ


ActiveForm プロパティの対象

ProjectTemplate オブジェクト (アドイン)

MDIForm オブジェクト

Screen オブジェクト


Caption プロパティ

関連項目	例	対象

フォームの場合は、Form オブジェクトや MDIForm オブジェクトのタイトル バーに表示されるテキストの設定に使用します。フォームが最小化されているとき、Caption プロパティで設定されているテキストはフォームのアイコンの下に表示されます。

コントロールの場合は、コントロール上またはコントロールの隣に表示されるテキストの設定に使用します。

MenuLine オブジェクトの場合は、メニュー (Menu) コントロール、または MenuItems コレクション内のオブジェクトに表示されるテキストの設定に使用します。

１

メニュー コントロールの Caption プロパティは、実行時に値の取得および設定ともに可能です。しかし、MenuLine オブジェクトなど、Microsoft Visual Basic がアドイン アプリケーションに公開または提供しているメニュー項目の Caption プロパティの値は、取得のみ可能です。

構文

object.Caption [= string]

Caption プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、アクティブ フォーム モジュールと関連付けられているフォームが object として指定されます。

string	キャプションとして表示されるテキストを示す文字列式を指定します。

解説

新しくオブジェクトを作成したときの Caption プロパティの既定値は、Name プロパティの既定値と同じです。つまり、Command1 や Form1 など、オブジェクト名と番号の組み合わせが既定値になります。既定値以外のラベルをつける場合は、Caption プロパティを使って設定します。

コントロールにアクセス キーを割り当てる場合も、Caption プロパティを使います。キャプションを設定するときに、アクセス キーとして設定する文字の直前にアンパサンド (&) を付けます。アクセス キーとして設定された文字は、画面では下線付きで表示されます。Alt キーを押しながら下線の付いた文字を押すと、フォーカスがそのコントロールに移動します。また、アンパサンドをアクセス キーを作成するための記号としてではなく、文字として表示する場合は、アンパサンドを 2 回続けて記述 (&&) します。この場合、画面に表示されるアンパサンドは 1 個だけで、どの文字にも下線は付けられません。

ラベル (Label) コントロールのキャプションは、最大で 2,048 文字までに制限されています。また、フォームとラベル以外のコントロールの Caption プロパティは、最大で 255 文字までです。

フォームのキャプションを表示するには、BorderStyle プロパティを 固定 (実線) (1 または vbFixedSingle)、可変 (2 または vbSizable)、または固定 (二重線) (3 または vbFixedDouble) の値に設定します。Caption プロパティに長いテキストを設定しても、フォームのタイトル バーに表示できる長さを超える部分は表示されません。MDI 子フォームが MDIForm オブジェクト内で最大化されている場合、子フォームのキャプションは親フォームのキャプションの後に表示されます。

ヒント   ラベル コントロールの AutoSize プロパティを真 (True) に設定すると、キャプションに合わせてコントロールの大きさが自動的に変更されます。


関連項目

AutoSize プロパティ

BorderStyle プロパティ

Name プロパティ


Caption プロパティの対象

チェック ボックス (CheckBox) コントロール

コマンド ボタン (CommandButton) コントロール

データ (Data) コントロール

Form オブジェクト

フレーム (Frame) コントロール

ラベル (Label) コントロール

MDIForm オブジェクト

メニュー (Menu) コントロール

MenuLine オブジェクト

オプション ボタン (OptionButton) コントロール


Checked プロパティ

関連項目	例	対象

メニュー項目の横にチェック マークを表示するかどうかを設定します。値の取得も可能です。

構文

object.Checked [= boolean]

Checked プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	メニュー項目の横にチェック マークを表示するかどうかを示すブール式を指定します。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	メニュー項目の横にチェック マークを表示します。

False	(既定値) チェック マークを表示しません。

解説

メニュー エディタを使うと、デザイン時に Checked プロパティを真 (True) に設定できます。実行時には、メニュー (Menu) コントロールの Click イベント プロシージャにコードを記述して、Checked プロパティをオンまたはオフすることができます。また、スタートアップ プロシージャ、フォームの Load イベント プロシージャを使って Checked プロパティの値を設定できます。

通常、メニュー コントロールの Checked プロパティは、実行時に値の取得および設定ともに可能です。ただし、[アドイン] - [アドイン マネージャ] コマンドのように、Microsoft Visual Basic がアドイン アプリケーションに公開または提供しているメニュー項目の Checked プロパティは、値の取得のみ可能です。


関連項目

Enabled プロパティ

Load イベント

MenuLine オブジェクト (アドイン)

Visible プロパティ


Checked プロパティの対象

メニュー (Menu) コントロール

MenuLine オブジェクト


Count プロパティ (VB コレクション)

関連項目	対象

コレクションにあるオブジェクトの数を返します。

構文

object.Count

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Count プロパティを使うと、For...Next ループで Forms コレクションまたは Controls コレクションの各構成要素を処理することができます。たとえば、次のコードはフォームのすべてのコントロールを約 1.3 センチ右に移動します。なお、ScaleMode プロパティには 1 または定数 vbTwips が設定されています。

For I = 0 To Form1.Count - 1

Form1.Controls(I).Left = Form1.Controls(I).Left + 720

Next I

このコードの構造を使って、フォームのすべてのコントロールを有効にしたり、無効にしたりすることもできます。

If Type Of ステートメントと共に使うと、すべてのコントロールに対する繰り返し操作を記述できます。たとえば、テキスト ボックス (TextBox) コントロールだけ Enabled プロパティの値を変更したり、オプション ボタン (OptionButton) コントロールだけ BackColor プロパティの設定を変更したりできます。

注   Microsoft Visual Basic は、SelectedComponents コレクションの Count プロパティをアドイン アプリケーションに公開していますが、このプロパティの値が 1 を超えることはありません。


関連項目

Count 関数 (SQL)

Count プロパティ (データ アクセス)

Count プロパティ (VB コレクション)

MenuLine オブジェクト (アドイン)

RecordCount プロパティ


Count プロパティの対象

Controls コレクション

ControlTemplates コレクション

Form オブジェクト

Forms コレクション

MenuItems コレクション

Properties コレクション

Printers コレクション

SelectedComponents コレクション

SelectedControlTemplates コレクション


Enabled プロパティ

関連項目	例	対象

フォームやコントロールに、ユーザーの操作で発生したイベントを認識させるかどうかを設定します。値の取得も可能です。

構文

object.Enabled [= boolean]

Enabled プロパティの構文の指定項目は次のとおりです。

指定項目	内容

０

object	オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、アクティブ フォーム モジュールと関連付けられたフォームが object として指定されます。

boolean	object がユーザーの操作で発生するイベントを認識するかどうかを示す、ブール式を指定します。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	(既定値) object はイベントを認識します。

False	object はイベントを認識しません。

解説

Enabled プロパティを使うと、フォームやコントロールがイベントを認識するかどうかを実行時に切り換えることができます。たとえば、アプリケーションの状態に左右されないオブジェクトや、メッセージを表示するためだけに使うテキスト ボックスなどは、あらかじめ Enabled プロパティを偽 (False) に設定しておきます。

タイマー (Timer) コントロールの Enabled プロパティを偽 (False) に設定すると、Interval プロパティの値で行われていた秒読みは中断されます。

通常、メニュー (Menu) コントロールの Enabled プロパティは、実行時に値の取得および設定ともに可能です。しかし、[アドイン] - [アドイン マネージャ] コマンドなど、Microsoft Visual Basic がアドイン アプリケーションに公開または提供しているメニュー項目の Enabled プロパティは、値の取得のみ可能です。


関連項目

Interval プロパティ

MenuLine オブジェクト (アドイン)

Visible プロパティ


Enabled プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

データ (Data) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

メニュー (Menu) コントロール

MenuLine オブジェクト

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール

タイマー (Timer) コントロール


HelpContextID プロパティ

関連項目	例	対象

ヘルプに対応するコンテキスト番号をオブジェクトに設定します。値の取得も可能です。状況依存のヘルプを作成するために使用します。

構文

object.HelpContextID [= number]

HelpContextID プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、アクティブ フォーム モジュールに関連付けられたフォームが object として指定されます。

number	object に対応する、ヘルプ トピックのコンテキスト番号を表す数式を指定します。

設定値

引数 number の設定値は次のとおりです。

設定値	内容

0	(既定値) コンテキスト番号は指定されません。

> 0	有効なコンテキスト番号を指定するための整数です。

解説

状況依存のヘルプを作成するには、object と、それに関するヘルプ トピックに、同じコンテキスト番号を割り当てて対応させます。コンテキスト番号の割り当ては、ヘルプ ファイルをコンパイルする前に行っておきます。

作成するアプリケーションのヘルプ ファイルを作成し、アプリケーションの HelpFile プロパティを設定しておくと、ユーザーが F1 キーを押したときに、ヘルプが自動的に呼び出され、現在のコンテキスト番号で指定されているトピックが検索されます。

現在のコンテキスト番号は、フォーカスを持つオブジェクトの HelpContextID プロパティの値で示されます。HelpContextID プロパティの値が 0 の場合、そのオブジェクトのコンテナの HelpContextID プロパティが調べられます。この値が 0 の場合、さらにそのコンテナを含むコンテナが調べられます。このようにさかのぼって調べた結果、0 でないコンテキスト番号が見つかない場合は、F1 キーの入力は無視されます。

通常、メニュー (Menu) コントロールの HelpContextID プロパティは、実行時に値の取得および設定ともに可能です。しかし、[アドイン] - [アドイン マネージャ] コマンドのように、Microsoft Visual Basic がアドイン アプリケーションに公開または提供しているメニュー項目の HelpContextID プロパティの設定値は、取得のみ可能です。

注   ヘルプ ファイルを作成するには、ヘルプ コンパイラが必要です。ヘルプ コンパイラは Microsoft Visual Basic Professional Edition および Enterprise Edition に含まれています。


関連項目

HelpFile プロパティ

MenuLine オブジェクト (アドイン)


HelpContextID プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

メニュー (Menu) コントロール

MenuLine オブジェクト

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール


Index プロパティ (コントロール配列)

関連項目	例	対象

コントロール配列内のコントロールを特定する番号 (インデックス番号) を設定します。値の取得も可能です。このプロパティは、コントロールがコントロール配列の要素である場合のみ利用できます。

構文

object[(number)].Index

Index プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	コントロール配列内の個々のコントロールを特定する整数への参照を表す数式を指定します。

設定値

引数 number の設定値は次のとおりです。

設定値	内容

値なし	(既定値) コントロールはコントロール配列に含まれていません。

0 ～ 32,767	コントロールはコントロール配列に含まれています。コントロールをコントロール配列に割り当てるには、Index プロパティに 0 以上の整数を指定するか、または 2 個以上のコントロールの Name プロパティに、同じ名前を指定します。この場合、Index プロパティには、コントロール配列内で利用可能な最小の整数が自動的に割り当てられます。

解説

同じコントロール配列に属する要素は、同じ名前 (Name プロパティに設定したコントロールの名前) を共有します。そのため、配列内の特定のコントロールを参照するには、コード内で Index プロパティの設定値、つまりインデックス番号を指定する必要があります。たとえば、MyButtons(3) のように、インデックス番号は、コントロール配列名の直後に、かっこで囲んで記述します。また、Tag プロパティの設定値を使って、コントロール配列内のコントロールを区別することもできます。

配列内のいずれかのコントロールでイベントが発生すると、その配列のイベント プロシージャが呼び出され、対応する要素の Index プロパティが、自動的に引数としてそのプロシージャに引き渡されます。Index プロパティは、実行時に Load ステートメントを使ってコントロールを動的に生成するときや、Unload ステートメントを使ってコントロールを削除するときにも使用されます。

Microsoft Visual Basic では、コントロール配列に新しく追加されたコントロールの Index プロパティの値に、次のインデックスを示す利用可能な整数値が自動的に割り当てられますが、この値を別の値で上書きして、インデックス番号をスキップすることもできます。また、コントロール配列の最初のコントロールの Index プロパティには、0 以外の整数を割り当てることもできます。プログラムで参照している Index プロパティの値で、コントロール配列内のコントロールを特定できない場合、Visual Basic の実行時エラー が発生します。

注   コントロールをコントロール配列から取り除くには、コントロールの Name プロパティの設定を変更し、Index プロパティの設定を削除します。


関連項目

Load ステートメント

Name プロパティ

Tag プロパティ

Unload ステートメント


Index プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

コモン ダイアログ (CommonDialog) コントロール

データ (Data) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

ライン (Line) コントロール

リスト ボックス (ListBox) コントロール

メニュー (Menu) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール

タイマー (Timer) コントロール


Name プロパティ

関連項目	対象

プログラムで使用する、フォーム、コントロール、およびデータ アクセス オブジェクトを識別するための名前を取得します。

構文

object.Name

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。引数 object を省略すると、アクティブ フォーム モジュールに関連付けられたフォームが object として指定されます。

解説

新しく作成したオブジェクトには、そのオブジェクトの種類を示す名前に、同じ種類の他のオブジェクトと重複しない数字を付けた値が、初期設定として割り当てられます。たとえば、1 つめの新規の Form オブジェクトには“Form1”、同様に新規の MDIForm オブジェクトには“MDIForm1”、フォーム上で 3 つめに作成したテキスト ボックス (TextBox) コントロールには“Text3”が設定されます。

オブジェクトの Name プロパティは必ず英文字で始まり、最大 40 文字までです。途中に数字およびアンダースコア (_) を入れることはできますが、句読点や空白文字は使用できません。フォームの名前として、他の特殊オブジェクト (Clipboard、Screen、App など) と同じ名前は使用できません。キーワード、プロパティ名、または他のオブジェクト名と同じ名前は使用してもかまいません。ただし、このような名前を設定すると、コードで問題が発生する可能性があります。

実行時に、フォームの Name プロパティを Dim ステートメントと共に使用して、そのフォームの新しいインスタンスを作成することができます。デザイン時に、複数のフォームに対して、同じ名前を設定することはできません。

同じ種類のコントロールの Name プロパティを同じ値 (同じ名前) に設定すると、コントロールを配列として扱うことができます。たとえば、すべてのオプション ボタンの名前を“MyOpt”に設定すると、これらのコントロールは 1 つの配列にまとめられ、各コントロールの Index プロパティにはそれぞれ異なるインデックス番号が割り当てられます。異なる種類のコントロールを同じ名前にすることはできません。

Microsoft Visual Basic がアドイン アプリケーションに公開または提供する Application オブジェクトの Name プロパティの設定は、常に Visual Basic です。また、Visual Basic がアドイン アプリケーションに公開または提供する Property オブジェクトの Name プロパティの設定は、オブジェクト ブラウザの Visual Basic (VB) オブジェクト ライブラリ に一覧表示されている名前と同じです。

注   コントロールを新規に作成したとき、Name、Caption、LinkTopic、Text の各プロパティにはすべて同じ初期設定値が割り当てられます。ただし、これらのプロパティを変更しても、他のプロパティの値は自動的に変更されません。


関連項目

ActiveForm プロパティ

Caption プロパティ

Dim ステートメント

Index プロパティ (コントロール配列)

LinkTopic プロパティ

Me キーワード

Text プロパティ


Name プロパティの対象

Application オブジェクト (アドイン)

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

コモン ダイアログ (CommonDialog) コントロール

Component オブジェクト (アドイン)

データ (Data) コントロール

Database オブジェクト

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Font オブジェクト

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

ライン (Line) コントロール

リスト ボックス (ListBox) コントロール

MDIForm オブジェクト

メニュー (Menu) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

Property オブジェクト

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール

タイマー (Timer) コントロール


Parent プロパティ

関連項目	例	対象

コントロール、他のオブジェクト、またはコレクションを含むフォーム、オブジェクト、またはコレクションを返します。

構文

object.Parent

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Parent プロパティは、親オブジェクトのプロパティ、メソッド、コントロールなどを操作するために使います。たとえば、次のように使います。

MyButton.Parent.MousePointer = 4

Parent プロパティは、オブジェクトを引数として渡すアプリケーションで使用します。たとえば、引数としてコントロールをジェネラル プロシージャに渡す場合、ジェネラル プロシージャ内では、渡されたコントロールの Parent プロパティを使って、その親フォームを操作できます。

Parent プロパティと MDIChild プロパティの間には関係はありませんが、MDIForm オブジェクトと、プロジェクト内で MDIChild プロパティを真 (True) に設定してあるすべての Form オブジェクトの間には、親子関係が成立しています。


関連項目

ActiveControl プロパティ

ActiveForm プロパティ

MDIChild プロパティ

MenuLine オブジェクト (アドイン)


Parent プロパティの対象

Application オブジェクト (アドイン)

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

コモン ダイアログ (CommonDialog) コントロール

Component オブジェクト

ControlTemplate オブジェクト、ControlTemplates コレクション

データ (Data) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

FileControl オブジェクト (アドイン)

FormTemplate オブジェクト (アドイン)

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar)、垂直スクロール バー (VScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

ライン (Line) コントロール

リスト ボックス (ListBox) コントロール

メニュー (Menu) コントロール

MenuItems コレクション

MenuLine オブジェクト

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

ProjectTemplate オブジェクト

Property オブジェクト、Properties コレクション

SelectedComponents コレクション

SelectedControlTemplates コレクション

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール

タイマー (Timer) コントロール


Path プロパティ

関連項目	例	対象

現在展開されているディレクトリのカレント パスを設定します。値の取得も可能です。デザイン時には使えません。App オブジェクトの場合は、実行時に値の取得のみ可能です。

構文

object.Path [= pathname]

Path プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

pathname	パス名を含む文字列式を指定します。

解説

Path プロパティの値は、“C:\OB”、“C:\WINDOWS\SYSTEM”など、パスを示す文字列です。ディレクトリ リスト ボックス (DirListBox) コントロールまたはファイル リスト ボックス (FileListBox) コントロールの場合、実行時にコントロールが作成されたときの、現在のパスが既定値になります。App オブジェクトの場合、アプリケーションを開発環境で実行しているときは、プロジェクトの .VBP ファイルの絶対パスを示します。一方、アプリケーションの実行可能ファイル (.EXE) を実行しているときは、実行ファイルの絶対パスを示します。

Path プロパティを使うと、アプリケーションでファイルを参照したり、操作したりすることができます。Path プロパティの設定方法は、MS-DOS の chdir コマンドと同じです。すなわち、相対パスでも指定可能であり、ドライブ名は省略できます。ドライブ名とコロン (:) だけを指定すると、そのドライブのカレント ディレクトリが選択されます。

次に示すように、Path プロパティでは、ドライブ名を指定せずにネットワークのパスだけを指定することもできます。servername はサーバー名、sharename はシェア名、path はパス名を示します。

\\servername\sharename\path

このとき、Drive プロパティには、長さ0 の文字列 ("") が設定されます。

Path プロパティの値を変更すると、次に示すイベントが発生します。

ディレクトリ リスト ボックス コントロールでは、Change イベントが発生します。

ファイル リスト ボックス コントロールでは、PathChange イベントが発生します。

注   ディレクトリ リスト ボックス コントロールの場合、Path プロパティと List(ListIndex) の戻り値が異なることに注意してください。List(ListIndex) は選択されている項目を返します。一方、Path プロパティは展開されているディレクトリを返します。


関連項目

Archive、Hidden、Normal、System プロパティ

Change イベント

Drive プロパティ

FileName プロパティ

List プロパティ

ListCount プロパティ

ListIndex プロパティ

PathChange イベント

Pattern プロパティ

PatternChange イベント

ReadOnly プロパティ


Path プロパティの対象

App オブジェクト

ディレクトリ リスト ボックス (DirListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール


Zoom プロパティ

関連項目	対象

印刷結果の拡大率または縮小率を百分率で設定します。実行時のみ、値の取得および設定とも可能です。デザイン時には使えません。

構文

object.Zoom [= number]

Zoom プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	印刷結果の拡大率または縮小率を示す数式を指定します。既定値は 0 で、この場合の印刷結果は通常の大きさで印刷されます。

解説

Zoom プロパティの設定によって、Zoom/100 の比率で、物理的なページの大きさが拡大または縮小され、印刷結果の外観の大きさになります。たとえば、Zoom プロパティを 50 に設定して印刷したレター サイズのページは、17 × 22 インチ (約 43cm × 56cm) のサイズのページと同じ量のデータを保持します。これは、印刷されたテキストとグラフィックの元の高さと幅が、それぞれ 1/2 に縮小されているためです。

注   Printer オブジェクトのプロパティを設定する場合、その設定の効果はプリンタ メーカーが提供するドライバに依存します。プロパティの設定による効果がまったくなかったり、プロパティに異なる設定をおこなっても印刷結果が同じになることもあります。また、許容範囲外の設定を行った場合に、エラーが発生したりしなかったりすることもあります。詳細については、プリンタ メーカーのマニュアルを参照してください。


関連項目

Printer オブジェクト、Printers コレクション


Zoom プロパティの対象

Printer オブジェクト


Font プロパティ

関連項目	対象

Font オブジェクトを取得します。

構文

object.Font

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

オブジェクトの Font プロパティは、利用するプロパティを持つ、特定の Font オブジェクトを指定します。たとえば、次のコードは TextBox オブジェクト (txtFirstName) の Font プロパティを使って Font オブジェクトを指定し、その Bold プロパティを変更します。

txtFirstName.Font.Bold = True


関連項目

Font オブジェクト


Font プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

データ (Data) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

Form オブジェクト

フレーム (Frame) コントロール

グリッド (Grid) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

Printer オブジェクト

テキスト ボックス (TextBox) コントロール


Container プロパティ

関連項目	例	対象

Form オブジェクト上のコントロールのコンテナを設定します。値の取得も可能です。デザイン時には使えません。

構文

Set object.Container [= container]

Container プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

container	他のコントロールのコンテナとして使用するオブジェクトへの参照を表すオブジェクト式を指定します。

解説

次のコントロールは、他のコントロールのコンテナとして使用できます。

フレーム (Frame) コントロール

ピクチャ ボックス (PictureBox) コントロール


関連項目

フレーム (Frame) コントロール

Parent プロパティ

ピクチャ ボックス (PictureBox) コントロール


Container プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

DB コンボ (DBCombo) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

ライン (Line) コントロール

リスト ボックス (ListBox) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール

垂直スクロール バー (VScrollBar) コントロール


Object プロパティ

関連項目	対象

Microsoft Visual Basic によって自動的にカスタム コントロールに拡張されるプロパティまたはメソッドと同じ名前のプロパティまたはメソッドが、カスタム コントロールで定義された場合、カスタム コントロール自体のプロパティまたはメソッドへの参照を返します。

構文

object.Object[.property | .method]

Object プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

property	Visual Basic のプロパティと同じ名前のカスタム コントロールのプロパティを指定します。

method	Visual Basic で提供されているメソッドと同じ名前のカスタム コントロールのメソッドを指定します。

解説

Visual Basic の標準のプロパティおよびメソッドの一部、またはすべては、プロジェクト内のカスタム コントロールで使用できます。また、カスタム コントロールでは、これらの標準のプロパティおよびメソッドと同じ名前のプロパティおよびメソッドを定義できます。この場合、Visual Basic では、カスタム コントロールによって定義されたプロパティおよびメソッドではなく、Visual Basic の同じ名前のプロパティおよびメソッドが自動的に使用されます。カスタム コントロールによって定義されたプロパティおよびメソッドを操作するには、Object プロパティを使用します。

たとえば、Tag プロパティは、Visual Basic のプロジェクトのすべてのカスタム コントロールに対して使用できます。プロジェクトに ctlDemo という名前のカスタム コントロールがある場合、次のようにその Tag プロパティを参照します。

ctlDemo.Tag

この場合、Visual Basic に標準の Tag プロパティが自動的に使用されます。カスタム コントロールで定義された Tag プロパティを参照する場合には、次のように Object プロパティを使用します。

ctlDemo.Object.Tag

Visual Basic では、プロジェクト内のカスタム コントロールに対して、次のプロパティおよびメソッドの一部、またはすべてが自動的に拡張されます。

プロパティ
Align	DragIcon	LinkMode	TabIndex
Cancel	DragMode	LinkItem	TabStop
Container	Enabled	LinkTimeout	Tag
DataChanged	Height	LinkTopic	Top
DataField	HelpContextID	Name	Visible
DataSource	Index	Negotiate	WhatsThisHelpID
Default	Left	Parent	Width
メソッド
Drag	LinkRequest	SetFocus
LinkExecute	LinkSend	ShowWhatsThis
LinkPoke	Move	ZOrder
カスタム コントロールのプロパティまたはメソッドが予期しない動作をする場合、同じ名前のプロパティまたはメソッドが、Visual Basic にないかどうか確認してください。同じ名前のプロパティまたはメソッドがある場合は、カスタム コントロールのマニュアルを参照し、プロパティまたはメソッドの動作が、Visual Basic のプロパティまたはメソッドの動作かどうかを確認します。動作が同じではない場合、Object プロパティを使用してカスタム コントロールのプロパティまたはメソッドを参照または操作してください。


関連項目

Object プロパティ (OLE コンテナ)


Object プロパティの対象

コモン ダイアログ (CommonDialog) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

グリッド (Grid) コントロール


ActiveForm プロパティの例

次のプログラムは、MDI フォーム内で現在アクティブである子フォームに時刻を表示します。このプログラムを実行するには、MDI フォームを作成し、MDI フォーム上にピクチャ ボックス (PictureBox) コントロールを配置します。さらに、ピクチャ ボックス コントロール内にコマンド ボタン (CommandButton) コントロールを配置します。次に、フォーム (Form1) の MDIChild プロパティを真 (True) に設定します。フォーム (Form1) の AutoRedraw プロパティを真 (True) に設定すると、フォームが他のフォームの下に隠れてもテキストを保持できます。最後に、各フォーム モジュールのコード ウィンドウに適切なコードを貼り付けてから、F5 キーを押します。

' 次のコードを MDI フォームに貼り付けます。

Private Sub MDIForm_Load ()

Dim NewForm As New Form1	' Form1 の新しいインスタンスを作成します。

NewForm.Show

End Sub

' 次のコードを Form1 に貼り付けます。

Private Sub Command1_Click ()

' アクティブ フォーム上に時刻を表示します。

ActiveForm.Print "現在時刻は" & Format(Now, "Long Time") & "です。"

End Sub

次のプログラムは、ツールバー上のボタンを使って、クリップボード (Clipboard) オブジェクトを使った、切り取り、コピー、貼り付け、削除の各機能の使い方を示します。このプログラムを実行するには、まず、フォーム (Form1) 上にテキスト ボックス (TextBox) コントロールおよびチェック ボックス (CheckBox) コントロールを配置し、次に、新しい MDI フォームを挿入します。MDI フォーム上にピクチャ ボックス コントロールを配置し、その内部にコマンド ボタン コントロールを配置します。このコマンド ボタン コントロールの Index プロパティを 0 に設定して、コントロール配列を作成します。Form1 の MDIChild プロパティを真 (True) に設定します。

このプログラムを実行するには、MDI フォーム モジュールのコード ウィンドウに次のコードを貼り付けてから、F5 キーを押します。チェック ボックス コントロールにフォーカスがある場合、各ボタンは動作しません。

Private Sub MDIForm_Load ()

Dim I	' 変数を宣言します。

Command1(0).Move 0, 0, 700, 300	' ツールバーにボタンを配置します。

For I = 1 To 3	' 他のボタンを作成します。

Load Command1(I)	' ボタンを作成します。

Command1(I).Move I * 700, 0, 700, 300   ' ボタンのサイズと場所を設定します。

Command1(I).Visible = True	' ボタンを表示します。

Next I

Command1(0).Caption = "切り取り"	' ボタンのキャプションを設定します。

Command1(1).Caption = "コピー"

Command1(2).Caption = "貼り付け"

Command1(3).Caption = "削除"

End Sub

Private Sub Command1_Click (Index As Integer)

' ActiveForm プロパティは MDI フォーム内でアクティブなフォームを参照します。

If TypeOf ActiveForm.ActiveControl Is TextBox Then

Select Case Index

Case 0	' 切り取り。

' 選択した文字列をクリップボードへコピーします。

Clipboard.SetText ActiveForm.ActiveControl.SelText

' 選択した文字列を削除します。

ActiveForm.ActiveControl.SelText = ""

Case 1	' コピー。

' 選択した文字列をクリップボードにコピーします。

Clipboard.SetText ActiveForm.ActiveControl.SelText

Case 2	' 貼り付け。

' クリップボード内の文字列をテキスト ボックスに貼り付けます。

ActiveForm.ActiveControl.SelText = Clipboard.GetText()

Case 3	' 削除。

' 選択した文字列を削除します。

ActiveForm.ActiveControl.SelText = ""

End Select

End If

End Sub


Caption プロパティの例

次のプログラムは、ユーザーがコマンド ボタン (CommandButton) コントロールをクリックするたびに、コマンド ボタン コントロールの Caption プロパティが変化します。このプログラムを実行するには、フォームに Command1 というコマンド ボタン コントロールを配置します。次に、このフォーム モジュールのコード ウィンドウに次のコードを貼り付けて、F5 キーを押します。起動後、ボタンをクリックします。

Private Sub Command1_Click ()

' Caption プロパティを調べて、変更します。

If Command1.Caption = "クリックされました" Then

Command1.Caption = "OK"

Else

Command1.Caption = "クリックされました"

End If

End Sub


Checked プロパティの例

次のプログラムは、メニュー項目のチェック マークの表示/非表示を切り替えます。このプログラムを実行するには、まず、メニュー項目が 1 個しかないメニュー (Menu) コントロールを持ったフォームを作成します。このとき、メニュー項目の Caption プロパティおよび Name プロパティはどちらも MyMenuItem と設定しておきます。次に、このフォーム モジュールのコード ウィンドウに次のコードを貼り付け、F5 キーを押します。起動後、メニュー項目を選択します。

Private Sub MyMenuItem_Click ()

'メニュー項目のチェック マークの表示/非表示を切り替えます。

MyMenuItem.Checked = Not MyMenuItem.Checked

End Sub


Enabled プロパティの例

次のプログラムは、テキスト ボックス (TextBox) コントロール内にテキストがある場合だけ、コマンド ボタン (CommandButton) コントロールが有効になります。このプログラムを実行するには、フォームにコマンド ボタン コントロールおよびテキスト ボックス コントロールを配置します。次に、このフォーム モジュールのコード ウィンドウに次のコードを貼り付け、F5 キーを押します。起動後、テキスト ボックスに文字を入力します。

Private Sub Form_Load ()

Text1.Text = ""	' テキスト ボックスを初期化します。

Command1.Caption = "Save"	' ボタンのキャプションを設定します。

End Sub

Private Sub Text1_Change ()

If Text1.Text = "" Then	' テキスト ボックスが空かどうかをチェックします。

Command1.Enabled = False	' ボタンを無効にします。

Else

Command1.Enabled = True	' ボタンを有効にします。

End If

End Sub


HelpContextID プロパティの例

次のプログラムは、Microsoft Visual Basic のヘルプ ファイルのトピックを使って、ヘルプ トピックのコンテキスト番号を指定する方法を説明します。このプログラムを実行するには、フォームにテキスト ボックス (TextBox) コントロールと、オプション ボタン (OptionButton) コントロールを持つフレーム (Frame) コントロールを配置します。フォーム モジュールのコード ウィンドウに次のコードを貼り付け、F5 キーを押します。起動後、いずれかのコントロールにフォーカスを移して、F1 キーを押します。

' 実際の Visual Basic のヘルプ コンテキスト番号を設定します。

Const winColorPalette = 21004	' 定数を定義します。

Const winToolbox = 21001

Const winCodeWindow = 21005

Private Sub Form_Load ()

App.HelpFile = "VB.HLP"

Frame1.HelpContextID = winColorPalette

Text1.HelpContextID = winToolbox

Form1.HelpContextID = winCodeWindow

End Sub


Index プロパティの例

次のプログラムは、フォーム上にオプション ボタン (OptionButton) コントロールを 2 つ表示し、コマンド ボタン (CommandButton) コントロールがクリックされるたびにフォームに新しいオプション ボタン コントロールを追加します。オプション ボタン コントロールをクリックすると、FillStyle プロパティが設定されて新しい円が描画されます。このプログラムを実行するには、まず、オプション ボタン コントロールを 2 つ、コマンド ボタン コントロールを 1 つ、大きなピクチャ ボックス (PictureBox) コントロールを 1 つ持ったフォームを作成します。次に、両方のオプション ボタンの Name プロパティを OptButton に設定し、コントロール配列を作成します。最後に、このフォーム モジュールのコード ウィンドウに次のコードを貼り付けてから、F5 キーを押します。

Private Sub OptButton_Click (Index As Integer)

Dim H, W	' 変数を宣言します。

Picture1.Cls	' ピクチャを初期化します。

Picture1.FillStyle = Index	' FillStyle を設定します。

W = Picture1.ScaleWidth / 2	' 円のサイズを取得します。

H = Picture1.ScaleHeight / 2

Picture1.Circle (W, H), W / 2	' 円を描画します。

End Sub

Private Sub Command1_Click ()

Static MaxIdx	' 配列内の最大インデックス。

If MaxIdx = 0 Then MaxIdx = 1	' MaxIdx を設定します。

MaxIdx = MaxIdx + 1	' インデックス番号を繰り上げます。

If MaxIdx > 7 Then Exit Sub	' フォーム上に 8 このボタンを追加します。

Load OptButton(MaxIdx)	' 配列に新しい項目を作成します。

' 以前作成したオプション ボタンの下に新しいオプション ボタンを配置します。

OptButton(MaxIdx).Top = OptButton(MaxIdx - 1).Top + 360

OptButton(MaxIdx).Visible = True	' 新しいボタンを表示します。

End Sub


Parent プロパティの例

次のプログラムは、フォーカスを持っていないフォームからモジュール内のプロシージャにコントロールを渡した後、そのコントロールの状態を親フォームに表示します。このプログラムを実行するには、まず、コマンド ボタン (CommandButton) コントロールを持つ Form1、およびチェック ボックス (CheckBox) コントロールを持つ Form2 と Form3 の合計 3 つのフォームを作成します。次に、[ファイル] - [新規コード モジュール] コマンドを選択して、新しい標準モジュールを作成します。最後に、対応するフォーム モジュールまたは標準モジュールのコード ウィンドウに次のコードを貼り付けてから、F5 キーを押します。

' Form1 に以下のコードを貼り付けます。

Private Sub Form_Load ()

Form2.Show	' すべてのフォームを表示します。

Form3.Show

Form2.AutoRedraw = True

Form3.AutoRedraw = True

End Sub

Private Sub Command1_Click ()

ReadCheckBox Form2.Check1	' 他のモジュール内のプロシージャを呼び出します。

ReadCheckBox Form3.Check1	' コントロールを引数として渡します。

End Sub

' Module1 に以下のコードを貼り付けます。

Sub ReadCheckBox (Source As Control)

If Source.Value Then

Source.Parent.Cls	' 親フォームをクリアします。

Source.Parent.Print "CheckBox is ON."  ' 親フォーム上に表示します。

Else

Source.Parent.Cls	' 親フォームをクリアします。

Source.Parent.Print "CheckBox is OFF."  ' 親フォーム上に表示します。

End If

End Sub


Path プロパティの例

次のプログラムは、選択したドライブのディレクトリにあるファイルの一覧を表示します。このプログラムを実行するには、フォーム上にドライブ リスト ボックス (DriveListBox) コントロール、ディレクトリ リスト ボックス (DirListBox) コントロール、およびファイル リスト ボックス (FileListBox) コントロールを作成します。フォーム モジュールのコード ウィンドウに次のコードを貼り付け、F5 キーを押します。起動後、マウスを使ってドライブおよびディレクトリを変更します。

Private Sub Drive1_Change ()

Dir1.Path = Drive1.Drive	' ディレクトリパスの設定。

End Sub

Private Sub Dir1_Change ()

File1.Path = Dir1.Path	' ファイルパスの設定。

End Sub


Container プロパティの例

次のプログラムは、同じフォームのコンテナ間でコマンド ボタン (CommandButton) コントロールを移動します。このプログラムを実行するには、フレーム (Frame) コントロール、ピクチャ ボックス (PictureBox) コントロール、およびコマンド ボタン コントロールをフォームにそれぞれ配置します。フォーム モジュールのコード ウィンドウに次のコードを貼り付け、F5 キーを押します。

Private Sub Form_Click()

Static intX As Integer

Select Case intX

Case 0

Set Command1.Container = Picture1

Command1.Top= 0

Command1.Left= 0

Case 1

Set Command1.Container = Frame1

Command1.Top= 0

Command1.Left= 0

Case 2

Set Command1.Container = Form1

Command1.Top= 0

Command1.Left= 0

End Select

intX = intX + 1

End Sub


Visual Basic のメニュー


Visual Basic のメニュー

関連項目

[ファイル] メニュー

[編集] メニュー

[表示] メニュー

[挿入] メニュー

[実行] メニュー

[ツール] メニュー

[アドイン] メニュー

[ヘルプ] メニュー


関連項目

Visual Basic ヘルプ


[ファイル] メニュー

関連項目

[新規プロジェクト] コマンド

[プロジェクトを開く] コマンド

[ファイルの上書き保存] コマンド

[名前を付けてファイルの保存] コマンド

[プロジェクトの上書き保存] コマンド

[名前を付けてプロジェクトの保存] コマンド

[ファイルの追加] コマンド

[ファイルの解放] コマンド

[プリンタの設定] コマンド

[印刷] コマンド

[EXE ファイルの作成] コマンド

[OLE DLL ファイルの作成] コマンド

[Microsoft Visual Basic の終了] コマンド


関連項目

Visual Basic ヘルプ

Visual Basic のメニュー


[編集] メニュー

関連項目

[元に戻す] コマンド

[繰り返し] コマンド

[切り取り] コマンド

[コピー] コマンド

[張り付け] コマンド

[リンク張り付け] コマンド

[削除] コマンド

[検索] コマンド

[置換] コマンド

[インデント] コマンド

[インデントを戻す] コマンド

[上層へ移動] コマンド

[下層へ移動] コマンド

[グリッドに合わせる] コマンド

[コントロールのロック] コマンド


関連項目

Visual Basic ヘルプ

Visual Basic のメニュー


[表示] メニュー

関連項目

[コード] コマンド

[フォーム] コマンド

[プロシージャの定義] コマンド

[元の位置へ移動] コマンド

[オブジェクト ブラウザ] コマンド

[デバッグ ウィンドウ] コマンド

[プロジェクト ウィンドウ] コマンド

[プロパティ ウィンドウ] コマンド

[ツールボックス] コマンド

[ツールバー] コマンド

[カラー パレット] コマンド


関連項目

Visual Basic ヘルプ

Visual Basic のメニュー


[挿入] メニュー

関連項目

[プロシージャ] コマンド

[フォーム モジュール] コマンド

[MDI フォーム モジュール] コマンド

[標準モジュール] コマンド

[クラス モジュール] コマンド

[テキスト ファイルの読み込み] コマンド


関連項目

Visual Basic ヘルプ

Visual Basic のメニュー


[実行] メニュー

関連項目

[開始 (実行時に [中断]、中断モードで [継続])] コマンド

[完全コンパイル後に開始] コマンド)

[中断] コマンド

[終了] コマンド

[再実行] コマンド

[シングル ステップ] コマンド

[プロシージャ ステップ] コマンド

[カーソル行の前まで実行] コマンド

[ブレークポイントの設定/解除] コマンド

[すべてのブレークポイントを解除] コマンド

[次のステートメントの設定] コマンド

[次のステートメントの表示] コマンド


関連項目

Visual Basic ヘルプ

Visual Basic のメニュー


[ツール] メニュー

関連項目

[ウォッチ式の追加] コマンド

[ウォッチ式の編集] コマンド

[インスタント ウォッチ] コマンド

[呼び出し履歴] コマンド

[メニュー エディタ] コマンド

[カスタム コントロール] コマンド

[参照設定] コマンド

[取得] コマンド

[チェックアウト] コマンド

[チェックイン] コマンド

[チェックアウトの取り消し] コマンド

[オプション] コマンド


関連項目

Visual Basic ヘルプ

Visual Basic のメニュー


[アドイン] メニュー

関連項目

[データ マネージャ] コマンド

[レポート デザイナ] コマンド

[アドイン マネージャ] コマンド


関連項目

Visual Basic ヘルプ

Visual Basic のメニュー


[ヘルプ] メニュー

関連項目

[目次] コマンド

[キーワードで検索] コマンド

[Visual Basic の紹介] コマンド

[バージョン情報] コマンド


関連項目

Visual Basic ヘルプ

Visual Basic のメニュー


[カスタム コントロール] ダイアログ ボックス

関連項目

[カスタム コントロール] ダイアログ ボックスは、プロジェクトのツールボックスにカスタム コントロールまたは挿入可能なオブジェクトを追加するときに使います。

[カスタム コントロール] ダイアログ ボックスを開くには、[ツール] - [カスタム コントロール] コマンドを選択します。

[カスタム コントロール] ダイアログ ボックスを閉じるには、コントロール メニュー ボックスをダブルクリックするか、または Esc キーを押します。[カスタム コントロール] ダイアログ ボックスの設定を確定する場合は、[OK] ボタンを選択します。

ダイアログ ボックスのオプション

[利用可能なコントロール] ボックス

選択可能なカスタム コントロールと挿入可能なオブジェクトが表示されます。

ツールボックスにコントロールまたは挿入可能なオブジェクトを追加するには、追加する項目名の横のチェック ボックスをオンにします。

プロジェクトからコントロールまたは挿入可能なオブジェクトを削除するには、追加する項目名の横のチェック ボックスをオフにします。

選択を行ってから、[OK] ボタンを選択すると、ツールボックスが更新されます。

注   プロジェクトで使用しているコントロールや挿入可能なオブジェクトは、削除できません。

[パス] ボックス

[利用可能なオブジェクト] ボックスで選択したオブジェクトのパスを表示します。

[表示] グループ ボックス

[利用可能なオブジェクト] ボックスに表示するオブジェクトを決定します。次のオプションのいずれかを選択できます。

[挿入可能なオブジェクト] チェックボックス

Microsoft Excel グラフなどの挿入可能なオブジェクトを表示します。

[コントロール] チェックボックス

.OCX または .VBX の拡張子が付いたファイル名をコントロールに表示します。

[選択された項目のみ] チェックボックス

プロジェクトに含むよう指定された項目のみを、[利用可能なコントロール]リストに表示します。

[参照] ボタン

[カスタム コントロールの追加] ダイアログ ボックスを表示します。[利用可能なコントロール] ボックスに、VBX カスタム コントロールまたは OLE カスタム コントロールを追加するには、[参照] ボタンを選択し、他のディレクトリから拡張子が .VBX または .OCX のファイルを検索します。


関連項目

[カスタム コントロール] コマンド ([ツール] メニュー)


[参照設定] ダイアログ ボックス

関連項目

[参照設定] ダイアログ ボックスは、他のアプリケーションのオブジェクト ライブラリへの参照を設定して、そのアプリケーションのオブジェクトを使えるようにします。

[参照設定] ダイアログ ボックスを開くには、[ツール] - [参照設定] コマンドを選択します。

[参照設定] ダイアログ ボックスを閉じるには、コントロール メニュー ボックスをダブルクリックするか、または Esc キーを押します。[参照設定] ダイアログ ボックスの設定を確定するには、[OK] ボタンを選択します。

ダイアログ ボックスのオプション

[参照可能なライブラリ ファイル] ボックス

プロジェクトから参照できるオブジェクト ライブラリの一覧を表示します。

プロジェクトからオブジェクト ライブラリへの参照を設定するには、ライブラリ名の横のチェック ボックスを選択します。参照を設定すると、オブジェクト ブラウザを使って、そのライブラリのオブジェクトと、オブジェクトのメソッドとプロパティを表示できます。

プロジェクトからオブジェクト ライブラリへの参照を解除するには、ライブラリ名の横のチェック ボックスをオフにします。プロジェクトで使用しているライブラリへの参照は解除できません。参照を設定しているライブラリのオブジェクトを使っていない場合は、そのライブラリの横のチェック ボックスをオフにしてください。Visual Basic で設定する必要のあるオブジェクト参照数が最小限になるため、プロジェクトのコンパイルにかかる時間が短縮されます。

注   Visual Basic for Applications と Visual Basic のオブジェクトとプロシージャへの参照は、Visual Basic の実行に必要なため、解除できません。

[優先順位] ボタン

一覧の項目を、上または下に移動します。コードを使ってオブジェクトを参照すると、[参照設定] ダイアログ ボックスで選択した各オブジェクト ライブラリが、表示順に検索されます。2 つのライブラリで同じオブジェクト名を使っている場合、[参照可能なライブラリ ファイル] ボックスで上の方に表示されているオブジェクト ライブラリの定義が使われます。

[結果] ボックス

[参照可能なライブラリ ファイル] ボックスで選択したオブジェクト ライブラリのパスと対応している言語を表示します。

[参照] ボタン

[ファイルの参照] ダイアログ ボックスを表示します。[参照可能なライブラリ ファイル] ボックスでオブジェクト ライブラリへの参照を設定するには、[参照] ボタンを選択し、ディレクトリから次のいずれかのファイルを検索します。

タイプ ライブラリ (*.OLB, *.TLB)

実行可能ファイル (*.EXE)

OLE カスタム コントロール (*.OCX)

すべてのファイル (*.*)


関連項目

オブジェクト ブラウザ

[参照設定] コマンド ([ツール] メニュー)


[アドイン マネージャ] ダイアログ ボックス

関連項目

アドインは、Visual Basic の開発環境に機能を追加する OLE サーバーです。プロジェクトにアドインを追加したり削除したりするには、アドイン マネージャを使います。

[アドイン マネージャ] ダイアログ ボックスを開くには、[アドイン] - [アドイン マネージャ] コマンドを選択します。

[アドイン マネージャ] ダイアログ ボックスを閉じるには、コントロール メニュー ボックスをダブルクリックするか、または Esc キーを押します。[利用可能なアドイン] ボックスの変更を確定するには、[OK] ボタンを選択します。

[利用可能なアドイン] ボックスには次のアドインが表示されます。

現在実行中のアドイン。

VB.INI にリストされているアドイン。

現在実行中のアドインはすべて、リスト ボックスにチェックされて表示されます。リストには、他の Visual Basic のインスタンスで実行されているアドインも表示されます。アドインを組み込んだときに、アドインをレジストリに登録するかどうかは、アドインの開発者が決定します。登録しない場合、アドインはこのボックスに表示されません。

アドイン名の左のチェック ボックスは、現在のプロジェクトでそのアドインを使っているかどうかを示します。

Visual Basic 環境にアドインを追加するには、チェック ボックスをオンにします。

アドインを削除するには、チェック ボックスをオフにします。

選択が終わったら、[OK] ボタンを選択します。その結果、Visual Basic は次のような操作を行います。

VB.INI の更新。

選択されていないアドインのアンロード。

選択されているアドインのロード。

一度アドインを追加すると、削除しない限り、Visual Basic を起動するたびに、そのアドインがロードされます。


関連項目

[アドイン マネージャ] コマンド ([アドイン] メニュー)


コード ウィンドウ

関連項目

コード ウィンドウは、Visual Basic のコードを記述、表示、編集するときに使います。コード ウィンドウはモジュールと同じ数だけ開くことができるので、数種類のフォーム モジュール、標準モジュールおよびクラス モジュールのコードを表示したり、それらの間でコピーと貼り付けを行うことができます。

プロジェクト ウィンドウからコード ウィンドウを開くには、フォーム モジュール、クラス モジュールまたは標準モジュールのいずれかを選択し、[コード] ボタンをクリックします。

フォーム ウィンドウからコード ウィンドウを開くには、コントロールまたはフォームをダブルクリックするか、[表示] - [コード] コマンドを選択するか、または F7 キーを押します。

コード ウィンドウには次のオプションがあります。

[オブジェクト] ボックス。選択したオブジェクトの名前が表示されます。リスト ボックスの右の矢印ボタンをクリックすると、そのフォームに関連づけられたオブジェクトの一覧が表示されます。

[プロシージャ] ボックス。[オブジェクト] ボックスに表示されたフォームやコントロールに対して認識されるイベントがすべて表示されます。イベントを選択すると、そのイベント名に関連づけられたイベント プロシージャがコード ウィンドウに表示されます。

[オブジェクト] ボックスに“(General)”と表示されている場合は、[プロシージャ] ボックスには、そのフォームの宣言とジェネラル プロシージャがすべて表示されます。モジュール コードを編集している場合は、[プロシージャ] ボックスには、そのモジュールのジェネラル プロシージャがすべて表示されます。どの場合も、[プロシージャ] ボックスで選択したプロシージャはコード ウィンドウに表示されます。

注   同じモジュールのプロシージャは、すべて同じコード ウィンドウに表示されます。

分割バー。分割バーは、垂直スクロール バーの最上部の、タイトル バーの下にあります。分割バーを下方向へドラッグすると、コード ウィンドウが縦に並ぶ 2 つのペインに分割され、別々にスクロールします。コードの離れた箇所を同時に表示できます。[オブジェクト] ボックスと [プロシージャ] ボックスには、フォーカスを持つペインのコードに関する情報が表示されます。分割バーをウィンドウの最上部までドラッグすると、ペインは閉じます。

プロシージャをコード ウィンドウに表示する場合、次の 2 つの表示のいずれかを選択できます。

モジュール全体を連続表示

単一プロシージャを表示

モジュール全体を連続表示またはプロシージャごとに表示のどちらかを選択するには、[オプション] ダイアログボックスの [書式] タブを使用します。

[モジュール全体を連続表示] チェック ボックスを選択すると、モジュール内すべてのプロシージャが、１つのスクロール可能なリストに表示されます。プロシージャは名前により、文字コード 順に並べられます。モジュール全体を連続表示する場合、モジュール間に区分線を挿入することもできます。コード ウィンドウ上部にあるドロップダウン リスト ボックスでプロシージャを選択すると、カーソルがそのプロシージャの最初の行に移動します。モジュールは必要に応じて、自動的にスクロールされます。

単一プロシージャ表示で表示できるプロシージャは、一度に 1 つだけです。コード ウィンドウ上部にあるドロップダウン リスト ボックスでプロシージャを選択します。

注   コード ウィンドウで作業しているときに、関数、ステートメント、プロパティ、イベントまたはメソッドの構文に関するヘルプを参照するには、キーワード、プロパティ名、イベント名、またはメソッド名を入力し、F1 キーを押します。また、[プロシージャ] ボックスからイベントを選択し、F1 キーを押すと、選択したイベントに関するヘルプを参照できます。


関連項目

[コード] コマンド ([表示] メニュー)

コード ウィンドウのショートカット キー

[ポップアップ] メニュー

コードの入力と編集

コードへの宣言の入力

[書式] タブ ([オプション] ダイアログ ボックス)

オブジェクト ブラウザ

プロジェクト ウィンドウ


カラー パレット

関連項目

カラー パレットを使うと、フォームまたはコントロールの色を変更し、ユーザ定義色を設定することができます。

カラー パレットを開くには、[表示] - [カラー パレット] コマンドを選択します。

カラー パレットを閉じるには、コントロール メニュー ボックスをダブルクリックするか、または Esc キーを押します。

カラー パレットは次の各部によって構成されています。

現在、フォームまたはコントロールに対して選択されている、前景色と背景色を表示するボックスです。

現在、フォームまたはコントロールの文字に対して選択されている、前景色と背景色を表示するボックスです。

注   Microsoft Windows で、選択した文字色や背景色が表示されない場合は、選択した色のいずれかがディザリングされた色 (3 色のピクセルによって構成される色) である可能性があります。Microsoft Windows に文字を表示する場合、文字とその背景の領域には、純色を使う必要があります。

選択可能な色が表示されます。色を選択するには、選択するカラー ボックスをクリックします。

前景色を変更するには、選択色ボックスの内側のボックスをクリックしてから、選択する色をクリックします。

背景色を変更するには、デフォルト カラー ボックスの外側のボックスをクリックしてから、選択する色をクリックします。

コントロール パネルで指定した色を使用するには、このボタンをクリックします。

ユーザー定義色を表示または設定するには、このボタンをクリックします。

ユーザー定義色として定義されている色が表示されます。色を選択するには、選択するカラー ボックスをクリックします。

ユーザー定義色のカラー ボックスを選択してから、このボタンをクリックすると、[色の作成] ダイアログ ボックスが開き、ユーザー定義色を定義できます。

注   BackColor または ForeColor プロパティを使ってフォームやコントロールの色を設定することもできます。


関連項目

BackColor、ForeColor プロパティ

[カラー パレット] コマンド ([表示] メニュー)


デバッグ ウィンドウ

関連項目

デバッグ ウィンドウは、実行時に自動的に開きます。中断モードでは、デバッグ ウィンドウを使ってコードを 1 行ずつ実行したり、変数やプロパティの値の変化を調べたり、ウォッチ式を表示したりできます。実行時には、このウィンドウを使ってプログラムを実行したときの、データやメッセージを表示できます。デザイン時には、デバッグ ウィンドウで以前に出力された内容を参照することができます。ただし、コードを実行することはできません。

デバッグ ウィンドウを開くには、[表示] - [デバッグ ウィンドウ] コマンドを選択します。

デバッグ ウィンドウを閉じるには、コントロール メニュー ボックスをダブルクリックします。

ダイアログ ボックスのオプション

[プロシージャ] ボックス

中断モード中、[プロシージャ] ボックスには、実行が中断したプロジェクト名、モジュール名、およびプロシージャ名が表示されます。[プロシージャ] ボックスの右のボタンを選択すると、[呼び出し履歴] ダイアログ ボックスが表示されます。[呼び出し履歴] ダイアログ ボックスには、実行が開始され、まだ完了していないプロシージャがすべて表示されます。

イミディエイト ペイン

最初にデバッグ ウィンドウを開いたときに表示されます。中断モードでは、このペインに入力したコードを直接実行できます。イミディエイト ペインでは、次の操作を行うことができます。

コード行を入力するか、または貼り付けを行い、Enter キーを押して実行できます。

コードを 1 行ずつ実行できます。

コードは保存できませんが、コピーしてコード ウィンドウに貼り付けることができます。

注   中断モードでは、イミディエイト ペインのステートメントは、[プロシージャ] ボックスに表示されている対象、または適用範囲の中で実行されます。たとえば、「Print variablename」と入力した場合、ローカル変数の値が出力されます。これはプログラムが中断しているときに、実行中のプロシージャで Print メソッドが発生した場合と同じです。

ウォッチ ペイン

現在のウォッチ式を表示します。ウォッチ式がプロジェクトで定められている場合、ウォッチ ペインは自動的に表示されます。

[式]

ウォッチ式。

[値]

中断モードに入った時点の式の値。

[対象]

ウォッチ式の対象。

中断モードに入った場合に、式の対象が適用範囲内にないときは、現在の値は表示されません。

分割バー

デバッグ ウィンドウを 2 つのペインに分割します。上部には、ウォッチ ペインが表示されます。下部には、イミディエイト ペインが表示されます。


関連項目

[ウォッチ式の追加] コマンド ([ツール] メニュー)

[ウォッチ式の追加] ダイアログ ボックス

ウォッチ式の追加

[呼び出し履歴] ダイアログ ボックス

コード ウィンドウ

[ポップアップ] メニュー

Debug オブジェクト

[デバッグ ウィンドウ] コマンド ([表示] メニュー)

デバッグのためのチェック リスト

ウォッチ式の削除

[ウォッチ式の編集] コマンド ([ツール] メニュー)

ウォッチ式の編集

[インスタント ウォッチ] コマンド ([ツール] メニュー)

Print メソッド

ブレークポイントの設定と解除

インスタント ウォッチの使い方

イミディエイト ペインの使い方


[環境] タブ ([オプション] ダイアログ ボックス)

関連項目

[オプション] ダイアログ ボックスの [環境] タブは、Visual Basic 開発環境の属性を指定するときに使います。

[オプション] ダイアログ ボックスの [環境] タブを開くには、[ツール] - [オプション] コマンドを選択し、[環境] タブを選択します。

[オプション] ダイアログ ボックスを閉じるには、コントロール メニュー ボックスをダブルクリックするか、または Esc キーを押します。[オプション] ダイアログ ボックスの設定を確定するには、[OK] ボタンを選択します。

このダイアログ ボックスで行った変更は、VB.INI ファイルに保存され、Visual Basic を起動するたびにロードされます。

タブのオプション

[グリッドの設定] グループ ボックス

デザイン時のフォーム グリッドの表示形式を設定します。

[グリッドの表示] チェック ボックス

デザイン時にグリッドを表示するかどうかを設定します。

[横間隔] ボックス

フォームのグリッド セルの幅を 45 ～ 1,485 twips の範囲で設定します。

[縦間隔] ボックス

フォームのグリッド セルの高さを 45 ～ 1,485 twips の範囲で設定します。

[グリッドに合わせる] チェック ボックス

コントロールの輪郭の位置を、自動的にグリッド線に合わせます。

[常に手前に表示] グループ ボックス

一覧に表示されているウィンドウのいずれかを、常に前面に表示するときに設定します。

[ボタン名の表示] チェック ボックス

ツールバーとツールボックスのボタンに関する説明を表示します。

[変数の宣言を強制する] チェック ボックス

モジュールで明示的に変数宣言を行う必要があるかどうかを設定します。このオプションを選択すると、新規モジュールの宣言セクションに Option Explicit ステートメントが追加されます。

[ファイルの保存] グループ ボックス

実行する前にすべてのファイルを自動的に保存するか、保存せずに実行するかを設定します。

[構文エラーの表示] チェック ボックス

コードを 1 行挿入するごとの自動構文確認を行うか、行わないかを指定します。


関連項目

[カスタム コントロールのアップグレード] ダイアログ ボックス

[オプション] コマンド ([ツール] メニュー)


[書式] タブ ([オプション] ダイアログ ボックス)

関連項目

[オプション] ダイアログ ボックスの [書式] タブは、Visual Basic のコードの表示形式を指定するときに使います。コードに使う文字の種類を指定し、特定の種類の文字に対して属性を指定できるボックスなどがあります。

[オプション] ダイアログ ボックスの [書式] タブを開くには、[ツール] - [オプション] コマンドを選択し、[書式] タブを選択します。

[オプション] ダイアログ ボックスを閉じるには、コントロール メニュー ボックスをダブルクリックするか、または Esc キーを押します。[オプション] ダイアログ ボックスの設定を確定するには、[OK] ボタンを選択します。

タブのオプション

[フォント名] ボックス

コード全体に使うフォントを設定します。

[サイズ] ボックス

コードに使うフォントのサイズを設定します。

[コードの表示色] グループ ボックス

リスト ボックスで選択した種類の文字に使う前景色と背景色を設定します。

[自動インデント] チェック ボックス

コードの最初の行にタブを設定できます。次の行からは、自動的にそのタブ位置から開始します。

[モジュール全体を連続表示] チェック ボックス

コード ウィンドウのプロシージャを 1 つにまとめて、スクロールできるリストで表示するか、またはプロシージャを 1 つずつ表示します。

[プロシージャの区分線] チェック ボックス

コード ウィンドウの各プロシージャの最後に表示される区分線の表示と非表示を切り替えます。

[タブ間隔] ボックス

タブ幅を空白 1 ～ 32 個分の範囲で設定します。既定値は空白 4 個分です。

[サンプル] ボックス

フォント、サイズ、色の設定に関するサンプルを表示します。


関連項目

コード ウィンドウ

[オプション] コマンド ([ツール] メニュー)

[インデント] コマンド ([編集] メニュー)


[プロジェクト] タブ ([オプション] ダイアログ ボックス)

関連項目

[オプション] ダイアログ ボックスの [プロジェクト] タブを使うと、現在のプロジェクトの設定を指定することができます。

[オプション] ダイアログ ボックスの [プロジェクト] タブを開くには、[ツール] - [オプション] コマンドを選択し、[プロジェクト] タブを選択します。

[オプション] ダイアログ ボックスを閉じるには、コントロール メニュー ボックスをダブルクリックするか、または Esc キーを押します。[オプション] ダイアログ ボックスの設定を確定するには、[OK] ボタンを選択します。

タブのオプション

[スタートアップ フォーム] ボックス

実行時に最初に表示されるフォームを設定します。

[プロジェクト名] ボックス

プロジェクト名を設定します。プロジェクト内の項目の修飾名の一部として使われます。また、この名前は、Visual Basic の OLE サーバーを参照している場合にも、オブジェクト ブラウザに表示されます。

[ヘルプ ファイル] ボックス

プロジェクトに関連づけられた、ヘルプ ファイル名を設定します。

[ヘルプ コンテキスト番号] ボックス

オブジェクト ブラウザでアプリケーションのオブジェクト ライブラリを選択している場合、ユーザーが [?] ボタンを選択したときに呼び出されるヘルプ トピックのコンテキスト番号を設定します。

[実行開始モード] グループ ボックス

アプリケーションの起動方法を設定します。OLE サーバーに対して使います (Visual Basic Professional Edition のみ)。

[互換 OLE サーバー] ボックス

現在のプロジェクトの .EXE ファイルが OLE サーバーである場合 ([実行開始モード] グループ ボックスで [ OLE サーバー] を選択した場合)、.EXE ファイル名を設定します。[互換 OLE サーバー] ボックスに実行可能ファイルを入力すると、パブリック クラス モジュールへの変更によって互換性が保持できなくなる可能性や、以前のバージョンの OLE サーバーで使っていた制御側アプリケーションのコードが使えなくならないかどうかが確認されます。 (Visual Basic Professional Edition のみ)。

[アプリケーションの説明] ボックス

[参照設定] ダイアログ ボックスや [オブジェクト ブラウザ] ダイアログ ボックスで、アプリケーションのオブジェクト ライブラリと共に表示される、アプリケーションの簡単な説明を設定します。


関連項目

オブジェクト ブラウザ

[オプション] コマンド ([ツール] メニュー)


[詳細設定] タブ ([オプション] ダイアログ ボックス)

関連項目

[オプション]ダイアログ ボックスの [詳細設定] タブを使用して、現在のプロジェクトの各種機能を詳細に設定します。

[オプション] ダイアログ ボックスの [詳細設定] タブを開くには、[ツール] - [オプション] コマンドを選択し、[詳細設定] タブを選択します。

[オプション] ダイアログ ボックスを閉じるには、コントロール メニュー ボックスをダブルクリックするか、Esc キーを押します。[オプション] ダイアログ ボックスの設定を確定するには、[OK] ボタンを選択します。

タブのオプション

[エラー トラップ]

Visual Basic 開発環境で、どのようにエラーを処理するかを指定します。このオプションを設定すると、Visual Basic のすべてのインスタンスが影響を受けます。

[エラー発生時に中断] オプション ボタン

エラー処理ルーチンがアクティブであるかどうか、またはクラスモジュール内のコードであるかどうかにかかわらず、エラーが発生すると、プロジェクトは中断モードになります。

[クラス モジュールで中断] オプション ボタン

クラスモジュール内で処理できないエラーが発生した場合、プロジェクトはクラスモジュール内のそのコードの位置で中断モードになります。

他のプロジェクトのテスト用プログラムを OLE クライアントとして使用して OLE サーバー プロジェクトをデバッグしている場合、OLE サーバー プロジェクトでこのオプションを選択すると、OLE サーバーはクラス モジュール内のエラーで中断モードなります。クライアントのテスト用プログラムにはエラーは返されません。

[エラー処理対象外のエラーで中断] オプション ボタン

エラー処理ルーチンがアクティブである場合、エラーが発生しても中断モードにはならず、エラーはトラップされます。エラー処理ルーチンが非アクティブである場合、エラーが発生すると、プロジェクトは中断モードになります。ただし、クラス モジュールでエラーが発生した場合は、プロジェクトはクラスモジュール内のそのコードの位置で中断モードになります。

[OLE DLL 制限の使用]

Visual Basic 開発環境内で OLE DLL プロジェクトを実行する場合、他のアプリケーションと共にインプロセス実行して OLE DLL の動作を決定する同じ制限を使用できます。

デバッグ中の OLE DLL プロジェクトは、開発環境でインプロセス実行できません。OLE DLL プロジェクトをデバッグするには、Visual Basic の他のインスタンスでクライアントのテスト プログラムを実行して、プロセスの外側でデバッグします。このオプションを選択すると、OLE DLL は他のアプリケーションとインプロセス実行する時に受ける制限内で実行され、よりインプロセスに近い環境でデバッグされます。

[VBX カスタム コントロールをアップグレード] チェック ボックス

プロジェクトをロードする際に、そのプロジェクトの VBX カスタム コントロールをすべて更新するかどうかを設定します。このオプションは、VBX カスタム コントロールに代わる OLE カスタム コントロールが VB.INI に登録されている場合のみ有効です。

[プロジェクトのバックグラウンド ロード] チェック ボックス

コードをバックグラウンドでロードします。

[コマンド ライン引数] ボックス

Visual Basic からアプリケーションに渡されるコマンド ライン引数を設定します。このコマンド ライン引数は、[実行] - [開始] コマンドを選択した場合だけ渡されます。

[条件付きコンパイル引数] ボックス

条件付きコンパイルに使われる定数宣言の一覧を表示します。

[順次コンパイル] チェック ボックス

実行時に最初にコンパイルを完了させるか、必要に応じてコンパイルを行い、アプリケーションの起動を高速化するかを指定します。

[バックグラウンド コンパイル] チェック ボックス

実行中のアイドル時間を使用してコンパイルを完了させるかどうかを指定します。バックグラウンド コンパイルを使用すると、実行速度を向上させることができます。このオプションは、[順次コンパイル] チェック ボックスが選択されている場合のみ使用できます。


関連項目

[オプション] コマンド ([ツール] メニュー)


フォーム ウィンドウ

関連項目

アプリケーションにウィンドウやダイアログ ボックスを作成するには、フォームを使います。フォーム上にコントロールを配置し、表示します。

フォームを新規作成するには、[挿入] - [フォーム モジュール] コマンドを選択するか、またはツールバーの [image] ボタンをクリックします。

プロジェクト ウィンドウから既存のフォームを開くには、フォーム名を選択し、[フォーム] ボタンをクリックします。そのフォームのコードを表示するには、[コード] ボタンをクリックします。

現在プロジェクトにない既存のフォームを追加するには、[ファイル] - [ファイルの追加] コマンドを選択します。

フォームをデザインするときは、次の点に注意してください。

それぞれのフォームのウィンドウには、コントロール メニュー ボックス、最小化ボタン、最大化ボタン、およびタイトル バーがあります。フォームは移動したり、大きさを変更することができます。デザインしたフォームは、フォームのプロパティで特に指定しない限り、デザイン時でも実行時でも同じ機能を持っています。

フォームにコントロールを配置するには、ツールボックスのボタンを使います。


関連項目

[フォーム] コマンド ([表示] メニュー)

プロジェクト ウィンドウ

ツールボックス


メニュー バー

メニュー バーの詳細については、メニューまたは上の図のボタンをクリックしてください。

Visual Basic のメニュー バーには、タイトル バー、最小化ボタン、最大化ボタン、コントロール メニュー ボックス、およびアクティブ ウィンドウで使用できるメニュー名があります。メニュー バーは最初は画面の上部に表示されていますが、別の位置に移動したり、サイズを変更したりできます。

メニューを開いてコマンドを表示するには、メニュー名をクリックするか、または Alt キーを押しながらアクセス キーを押します。

メニューを開いた後でコマンドを選択するには、コマンド名をクリックするか、またはアクセス キーを押します。コマンドにショートカット キーがある場合は、コマンド名の横に表示されます。

コマンド名の後ろに省略記号 (...) が表示されている場合は、コマンドを選択すると、コマンドが実行される前に、さらに詳しい情報を参照または設定するためのダイアログ ボックスが表示されます。

メニュー バーを閉じると、Visual Basic も終了します。


メニュー エディタ

関連項目

メニュー エディタを使うと、アプリケーションのカスタム メニューを作成し、それらのプロパティを定義することができます。

メニュー エディタを開くには、フォームを選択し、[ツール] - [メニュー エディタ] コマンドを選択するか、またはツールバーの [image] ボタンをクリックします。

メニュー エディタを閉じるには、コントロール メニュー ボックスをダブルクリックします。メニュー エディタの変更を確定するには、[OK] ボタンを選択します。

メニュー エディタは、次の各部によって構成されています。

[キャプション] ボックス。メニュー バーやメニューに表示されるメニュー名やコマンド名を入力するテキスト ボックス。

メニューに区分線を挿入するには、その位置にハイフン (-) を入力します。

メニュー項目にアクセス キーを設定するには、設定する文字の前にアンパサンド (&) を挿入します。実行時に、この文字は下線付きで表示され、Alt キーを押しながらアクセス キーを押すと、メニューまたはコマンドを選択できます。メニュー名にアンパサンドを使う必要がある場合は、キャプションの中でアンパサンドを 2 つ続けて入力します。

[名前] ボックス。メニュー項目のコントロール名を入力するテキスト ボックス。コントロール名は、コードの中でメニュー項目にアクセスするときにのみ使われる識別子で、メニューには表示されません。

[インデックス] ボックス。コントロール配列内でのコントロールの位置を決定する数値を割り当てるテキスト ボックス。この位置は、画面での位置とは関係ありません。

[ショートカット] ボックス。ショートカット キーを選択するドロップダウン リスト ボックス。

[ヘルプ コンテキスト番号] ボックス。コンテキスト番号として固有の数値を割り当てるテキスト ボックス。この値は、HelpFile プロパティで設定したヘルプ ファイルの中から、適切なヘルプ トピックを検索するために使います。

[ネゴシエート位置] ボックス。メニューの NegotiatePosition プロパティを選択するドロップダウン リスト ボックス。このプロパティは、コンテナ フォーム内にメニューを表示するかどうか、また、その表示方法を設定します。

[チェック] チェック ボックス。初期状態でメニュー項目の左にチェック マークを表示する場合は、このチェック ボックスをオンにします。通常は、メニュー コマンドのオン/オフの状態を示すために使います。

[有効] チェック ボックス。メニュー項目をイベントに応答させる場合は、このチェック ボックスをオンにします。メニュー項目を使用できないように淡色表示にする場合は、このチェック ボックスをオフにします。

[表示] チェック ボックス。メニュー項目をメニューに表示する場合は、このチェック ボックスをオンにします。

[ウィンドウ リスト] チェック ボックス。MDI アプリケーションで、現在開いている MDI 子フォームの一覧をメニュー コントロールに表示する場合は、このチェック ボックスをオンにします。

メニュー項目のレベルを変更するためのアウトライン ボタン。

   メニューの階層を高いレベルから低いレベルに変更するには、このボタンを使います。サブメニューは 4 レベルまで作成できます。

   同じメニュー階層内でメニューの位置を変更するには、このボタンを使い、メニュー リストの上方向または下方向に移動します。

メニュー項目の階層を表示するリスト ボックス。サブメニュー項目は、階層での位置やレベルを示すため、インデントされて表示されます。

この他に、メニュー エディタには次のボタンがあります。

ボタン	内容

[次へ]	選択した項目を次の行に移動します。

[挿入]	リスト ボックスの現在の選択行の上に 1 行挿入します。

[削除]	現在の選択行を削除します。

[OK]	メニュー エディタを閉じ、選択していたフォームに対する変更をすべて確定します。メニューはデザイン時にも表示されますが、デザイン時にメニューを選択すると、イベント コードが実行されるのではなく、そのメニューの Click イベントのコード ウィンドウが表示されます。

[キャンセル]	メニュー エディタを閉じ、変更をすべて取り消します。


関連項目

HelpFile プロパティ

[メニュー エディタ] コマンド ([ツール] メニュー)

NegotiatePosition プロパティ


オブジェクト ブラウザ

関連項目

オブジェクト ブラウザを使うと、オブジェクト ライブラリから使用できるクラス、プロパティ、およびメソッドと、プロジェクトのモジュールおよびプロシージャを表示できます。オブジェクト ブラウザを使うと、作成したオブジェクトや他のアプリケーションのオブジェクトを検索したり、使用したりすることができます。

オブジェクト ブラウザを開くには、[表示] - [オブジェクト ブラウザ] コマンドを選択するか、F2 キーを押すか、またはツールバーの [image] ボタンをクリックします。

オブジェクト ブラウザを閉じるには、コントロール メニュー ボックスをダブルクリックするか、または [貼り付け] ボタンを選択し、現在の選択内容をアクティブなコード ウィンドウに貼り付けます。

ダイアログ ボックスのオプション

[ライブラリ / プロジェクト一覧] ボックス

プロジェクトで使用できるライブラリを表示します。オブジェクト ブラウザにライブラリを追加するには、[参照設定] ダイアログ ボックスを使います。作業中の Visual Basic のプロジェクトも含め、使用できるオブジェクト ライブラリの中から、コードで使用するクラス、モジュール、プロシージャ、メソッド、プロパティを選択して表示できます。

[クラス / モジュール一覧] ボックス

[ライブラリ / プロジェクト一覧] ボックスで、作業中の Visual Basic プロジェクトを選択すると、このボックスにプロジェクトのモジュールが表示され、現在のプロジェクトで定義しているクラスが表示されます。[ライブラリ / プロジェクト一覧] ボックスでオブジェクト ライブラリを選択した場合は、そのライブラリで使用できるクラスが表示されます。

[クラス / モジュール一覧] ボックスで Constants を選択すると、Visual Basic (VB) と Visual Basic for applications (VBA) のオブジェクト ライブラリの組み込み定数を表示できます。たとえば、[ライブラリ / プロジェクト一覧] ボックスで Visual Basic (VB) オブジェクト ライブラリを選択し、[クラス / モジュール一覧] ボックスで Constants を選択すると、[メソッド / プロパティ一覧] ボックスの一覧に表示されている定数 (vbAlignLeft など) を選択し、コードに貼り付けることができます。

Microsoft Data Access (DAO) 2.5 のオブジェクト ライブラリ、Microsoft Excel、オブジェクト ライブラリを提供するその他のアプリケーションへの参照を設定すると、それらのアプリケーションの組み込み定数を表示できます。

[メソッド / プロパティ一覧] ボックス

[ライブラリ / プロジェクト一覧] ボックスで作業中のプロジェクトを選択すると、プロジェクトで定義したプロシージャ、プロパティ、モジュール、およびメソッドがこのボックスに表示されます。[ライブラリ / プロジェクト一覧] ボックスでオブジェクト ライブラリを選択すると、[クラス / モジュール一覧] ボックスで選択したクラスのメソッドとプロパティが表示されます。

[?] ボタン

[クラス / モジュール一覧] ボックスまたは [メソッド / プロパティ一覧] ボックスで選択した項目のオンライン ヘルプ トピックを表示します。

このボタンの横に、選択した項目の説明やプロシージャ テンプレートが表示されます。

[表示] ボタン

コード ウィンドウに選択したプロシージャを表示します。

[貼り付け] ボタン

特定のメソッドやプロパティのコードのテンプレートを、プロシージャに貼り付けます。まず、コード ウィンドウでコードを挿入する場所にカーソルを置きます。次に、オブジェクト ブラウザでメソッドかプロパティを選択します。[貼り付け] ボタンを選択すると、選択した項目のプロシージャ テンプレートがコード ウィンドウにコピーされます。

[オプション] ボタン

[メンバ設定] ダイアログ ボックスを表示します。このダイアログ ボックス使うと、プロジェクトで定義したモジュール、プロシージャ、クラス、プロパティ、メソッドにヘルプ情報やコメントを追加することができます。情報やコメントを追加すると、一覧をスクロールしたときに、プロジェクトのフォームやモジュールのプロシージャに関する説明やコメントが表示されます。


関連項目

[メンバ設定] ダイアログ ボックス

[オブジェクト ブラウザ] コマンド ([表示] メニュー)

[参照設定] ダイアログ ボックス


プロジェクト ウィンドウ

関連項目

プロジェクト ウィンドウには、プロジェクトのフォーム モジュール、クラス モジュール、および標準モジュールがすべて表示され、さらにリソース ファイルを使っている場合には、リソース ファイルも表示されます。

新規プロジェクトを開くには、[ファイル] - [新規プロジェクト] コマンドを選択します。

既存のプロジェクトを開くには、[ファイル] - [プロジェクトを開く] コマンドを選択するか、またはツールバーの [image] ボタンをクリックします。

注   プロジェクト ウィンドウのファイル名の左のチェックマークは、そのファイルがバージョン管理されているプロジェクトからチェックアウトされ、現在読み取りおよび書き取り可能な状態であることを示します。チェックマークは、Visual Basic Enterprise Edition に含まれる Microsoft Visual SourceSafe のなどのバージョン管理プログラムに接続している場合のみ表示されます。

プロジェクト ウィンドウでは、次の操作を行うことができます。

既存のフォームのフォーム ウィンドウを開くには、フォーム名を選択し、[フォーム] ボタンをクリックします。

既存のフォーム モジュール、標準モジュール、クラス モジュールのコード ウィンドウを開くには、モジュール名を選択し、[コード] ボタンをクリックします。

プロジェクトでは、任意の数のフォームやモジュールを開くことができますが、プロジェクト ウィンドウは 1 つしか開くことができません。

プロジェクトからファイルを削除するには、プロジェクト ウィンドウでファイルを選択し、[ファイル] - [ファイルの解放] コマンドを選択します。Microsoft Visual SourceSafe のなどのソースコード管理プログラムを使用している場合、この操作によって、ソースコード ファイルも削除することもできます。


関連項目

コード ウィンドウ

Visual SourceSafe アドインの組み込み

フォーム ウィンドウ

[プロジェクト ウィンドウ] コマンド ([表示] メニュー)

[ファイルの解放] コマンド ([ファイル] メニュー)


プロパティ ウィンドウ

関連項目

プロパティ ウィンドウには、選択しているフォーム、コントロール、クラス、またはモジュールのデザイン時のプロパティ一覧が表示されます。これらのプロパティは、デザイン時に変更でき、プロパティ ウィンドウには各プロパティの現在の設定が表示されます。複数のコントロールを選択すると、プロパティ ウィンドウには、選択されているすべてのコントロールに共通のプロパティの一覧が表示されます。

プロパティ ウィンドウを開くには、[表示] - [プロパティ ウィンドウ] コマンドを選択するか、F4 キーを押すか、またはツールバーの [image] ボタンをクリックします。

プロパティ ウィンドウを閉じるには、コントロール メニュー ボックスをダブルクリックします。

前に選択したウィンドウに戻るには、Alt キーを押しながら F6 キーを押します。

現在のフォームに切り替えるには、Shift キーを押しながら F7 キーを押します。

プロパティ ウィンドウは、次の各部によって構成されています。

[オブジェクト] ボックス。タイトル バーの下にあり、現在選択されているフォーム、またはフォーム上で現在選択されているコントロールを表示します。[オブジェクト] ボックスの右の矢印ボタンをクリックすると、現在のフォームと、フォームのすべてのコントロールの一覧が表示されます。フォームやコントロールのプロパティを変更するには、一覧の中から、現在のフォームまたはフォームのコントロールを選択します。

プロパティ リスト。2 列のリストに、デザイン時に変更できるすべてのプロパティと、現在の設定が表示されます。プロパティの設定を変更するには、プロパティ名を選択し、新しい設定を入力または選択します。定義済みの設定があるプロパティを変更する場合は、設定ボックスの右にある下向きの矢印ボタンをクリックすると、設定の一覧が表示されます。または、左の列のプロパティ名をダブルクリックすると、選択可能な設定が順番に表示されます。


関連項目

[プロパティ ウィンドウ] コマンド ([表示] メニュー)


ツールバー

関連項目

詳細については、メニューまたは上の図のボタンをクリックしてください。

ツールバーには、よく使うメニュー項目を簡単に選択できるボタンと、選択しているフォームやコントロールの位置やサイズを示す 2 つのインジケータが右側に表示されます。ステータス バーを表示するには、ツールバーを表示する必要があります。

ツールバー ボタンを 1 回クリックすると、そのボタンの操作内容が表示されます。ツールバー ボタンの説明を表示するには、[オプション] ダイアログ ボックスの [環境] タブで [ボタン名の表示] チェック ボックスをオンにします。ツールバーの表示と非表示を切り替えるには、[表示] - [ツールバー] コマンドを選択します。

ツールバー ボタンには次のものがあります。

フォームを新規作成します。

標準モジュールを新規作成します。

既存のプロジェクトを開きます。

現在のプロジェクトを保存します。

アクティブなフォームのコントロールにロックを設定または解除します。

メニュー エディタを表示します。

プロパティ ウィンドウを表示します。

オブジェクト ブラウザを表示します。

プロジェクト ウィンドウを表示します。

デザイン時にアプリケーションを起動します。

プログラムの実行を中断します。

アプリケーションの実行を中止し、デザイン時に戻ります。

現在の行にブレークポイントを設定または解除します。

コード ウィンドウで現在選択している式の値を表示します。

アクティブなプロシージャ呼び出しの構造を表示します。

コードを 1 行ずつ追跡し、プロシージャを 1 行ずつ実行します。

コード ウィンドウで、コードを一度に 1 プロシージャまたは 1 ステートメントずつ実行します。


関連項目

[環境] タブ ([オプション] ダイアログ ボックス)

[ツールバー] コマンド ([表示] メニュー)


ツールボックス

関連項目

ツールボックスには、フォームにコントロールを配置するためのツールがあります。Visual Basic のすべての標準コントロールの他、[カスタム コントロール] ダイアログ ボックスを使ってプロジェクトに追加した、カスタム コントロールと挿入可能なオブジェクトが表示されます。[オプション] ダイアログ ボックスの[環境] タブで [ボタン名の表示] チェック ボックスをオンにすると、ツールボックス ボタンのボタン名を表示できます。

ツールボックスを開くには、[表示] - [ツールボックス] コマンドを選択します。

ツールボックスを閉じるには、コントロール メニュー ボックスをダブルクリックします。

ツールボックスには、次の 26 種類の基本ツールがあります。

 ポインタ。ツールボックスのツールの中で、コントロールを配置しないのは、このツールだけです。コントロールをフォームに配置した後で、コントロールのサイズ変更や移動を行うときに使います。

ポインタを選択すると、コントロールのサイズ変更や移動を行うことができます。

その他のツールを選択すると、新しいコントロールを配置するために使われます。

コントロールを配置した後は、自動的にポインタが選択されます。

ピクチャ ボックス (PictureBox) コントロール。グラフィックス メソッドの出力を受け取るコンテナ、または他のコントロールのコンテナとして、装飾用またはアクティブなグラフィカル イメージを表示するときに使います。

ラベル (Label) コントロール。グラフィックスの下のキャプションなど、ユーザーが変更できない文字列を表示するときに使います。

テキスト ボックス (TextBox) コントロール。ユーザーが入力または変更できる文字列を格納するために使います。

フレーム (Frame) コントロール。コントロールをグラフィカル イメージや機能によって分類するときに使います。コントロールをグループ分けするには、最初にフレーム コントロールを配置してから、その中にコントロールを配置します。

コマンド ボタン (CommandButton) コントロール。ユーザーがコマンドを実行するために選択するボタンを作成するために使います。

チェック ボックス (CheckBox) コントロール。ユーザーが簡単に設定のオン/オフを選択したり、複数選択の可能な選択肢を表示したりできるボックスを作成するために使います。

オプション ボタン (OptionButton) コントロール。一覧を表示してその中の項目を選択する、オプション ボタンのグループを作成するために使います。

コンボ ボックス (ComboBox) コントロール。リスト ボックスとテキスト ボックスを組み合わせたものを配置するときに使います。ユーザーは、リストから項目を選択するか、またはテキスト ボックスに値を入力することができます。

リスト ボックス (ListBox) コントロール。リストを表示して、ユーザーに 1 つだけ項目を選択させるときに使います。項目を全部表示しきれない場合は、リストをスクロールできます。

水平スクロール バー (HScrollBar) コントロール。多くの項目を持つ一覧、大量の情報などをすばやく操作したり、現在の位置をスケールに示したり、速度や量の設定や表示を行うグラフィカル ツールを作成するために使います。

垂直スクロール バー (VScrollBar) コントロール。多くの項目を含む一覧、大量の情報などをすばやく操作したり、現在の位置をスケールに示したり、速度や量の設定や表示を行うグラフィカル ツールを作成するために使います。

タイマー (Timer) コントロール。設定した間隔でタイマ イベントを発生するために使います。このコントロールは、実行時には表示されません。

ドライブ リスト ボックス (DriveListBox) コントロール。有効なディスク ドライブを表示するために使います。

ディレクトリ リスト ボックス (DirListBox) コントロール。ディレクトリとパスを表示するために使います。

ファイル リスト ボックス (FileListBox) コントロール。ファイルの一覧を表示するために使います。

シェイプ (Shape) コントロール。デザイン時にフォームに各種の図形を配置するために使います。長方形、角の丸い長方形、正方形、角の丸い正方形、だ円、円を選択できます。

ライン (Line) コントロール。デザイン時にフォームにさまざまなスタイルの線を配置するために使います。

イメージ (Image) コントロール。ビットマップ、アイコン、メタファイルのグラフィカル イメージをフォームに表示するときに使います。イメージ コントロールに表示されたイメージは、装飾用以外には使用できません。イメージ コントロールはピクチャ ボックス コントロールに比べてリソースを消費しません。

データ (Data) コントロール。フォーム上の連結可能コントロールを使って、データベースのデータにアクセスするために使います。

OLE コンテナ (OLE) コントロール。Visual Basic アプリケーションに、他のアプリケーションのオブジェクトをリンクしたり埋め込んだりするときに使います。

コモン ダイアログ (CommonDialog) コントロール。ファイルのオープン、保存、印刷、色やフォントの選択などの操作のため、ダイアログ ボックスを作成するときに使います。

グリッド (Grid) コントロール。連続した行と列を表示し、そのセルの中でデータを操作するときに使います。グリッド コントロールはカスタム コントロールです。

DB リスト (DBList) コントロール。ユーザーが 1 つだけ選択できる項目の一覧を表示するときに使います。項目を全部表示しきれない場合は、リストをスクロールできます。DB リスト コントロールはカスタム コントロールで、標準のリスト ボックス コントロールよりデータ アクセス機能が強化されています。

DB コンボ (DBCombo) コントロール。リスト ボックスとテキスト ボックスを組み合わせたものを描くときに使います。ユーザーは、リストから項目を選択するか、またはテキスト ボックスに値を入力することができます。DB コンボ コントロールはカスタム コントロールで、標準のコンボ ボックス コントロールよりデータ アクセス機能が強化されています。

DB グリッド (DBGrid) コントロール。連続した行と列を表示し、そのセルの中でデータを操作するときに使います。DB グリッド コントロールはカスタム コントロールで、標準のグリッド コントロールよりデータ アクセス機能が強化されています。


関連項目

コントロール

[カスタム コントロール] ダイアログ ボックス

[環境] タブ ([オプション] ダイアログ ボックス)

[ツールボックス] コマンド ([表示] メニュー)


[ウォッチ式の追加] ダイアログ ボックス

関連項目

[ウォッチ式の追加] ダイアログ ボックスは、ウォッチ式を入力するときに使います。ウォッチ式には、変数、プロパティ、関数呼び出し、その他の有効な Visual Basic の式が使えます。ウォッチ式は、中断モードに入った時や、イミディエイト ペインの各ステートメントの実行が終わった時に、デバッグ ウィンドウのウォッチ ペインで更新されます。

重要   ウォッチ式の対象を選択するときは、必要最小限の適用範囲を設定します。[(すべてのプロシージャ)] または [(すべてのモジュール)] を選択すると、各ステートメントを実行するたびに式を評価するため、モジュールの実行速度がかなり遅くなることがあります。対象として 1 つのプロシージャを選択すると、そのプロシージャがアクティブなプロシージャ呼び出しに含まれているとき以外は、実行速度に影響はありません。プロシージャがアクティブなプロシージャ呼び出しに含まれているかどうかを確認するには、デバッグ ウィンドウの [プロシージャ] ボックスの右にあるボタンをクリックするか、または [ツール] - [呼び出し履歴] コマンドを選択します。

[ウォッチ式の追加] ダイアログ ボックスを開くには、[ツール] - [ウォッチ式の追加] コマンドを選択します。

[式] ボックスに式を入力します。あらかじめ式を選択しておくと、自動的にその式が [式] ボックスに表示されます。

[式] ボックスに式を追加するには、[OK] ボタンを選択するか、または Enter キーを押します。

式を追加せずに [ウォッチ式の追加] ダイアログ ボックスを閉じるには、[キャンセル] ボタンを選択するか、またはコントロール メニュー ボックスをダブルクリックします。

ダイアログ ボックスのオプション

[式] ボックス

特に指定しない限り、選択した式が表示されます。式には、変数、プロパティ、関数呼び出し、その他の有効な式を設定することができます。別の式を入力して評価することもできます。

[対象] グループ ボックス

式で監視する変数の適用範囲を設定します。

[プロシージャ] ボックス

特に指定しない限り、選択した式のあるプロシージャ名が表示されます。式を評価するプロシージャを定義します。すべてのプロシージャを選択するか、または変数を評価するプロシージャ名だけを選択することができます。

[モジュール] ボックス

特に指定しない限り、選択した式のあるモジュール名が表示されます。すべてのモジュールを選択するか、または変数を評価するモジュール名だけを選択することができます。

[プロジェクト] ボックス

現在のプロジェクト名が表示されます。現在のプロジェクト以外の対象内の式は評価できません。

[ウォッチ式の種類] グループ ボックス

ウォッチ式に対する処理を設定します。

[式のウォッチ] オプション ボタン

デバッグ ウィンドウのウォッチ ペインに、ウォッチ式とその値を表示します。中断モードに入ると、ウォッチ式の値は自動的に更新されます。

[式が True の時に中断] オプション ボタン

式の評価結果が真 (True) になるか、または 0 以外の値になると、実行は自動的に中断モードに入ります。文字列式の場合は無効です。

[式の内容が変化した時に中断] オプション ボタン

指定した適用範囲の中で式の値が変化すると、実行は自動的に中断モードに入ります。


関連項目

[ウォッチ式の追加] コマンド ([ツール] メニュー)

ウォッチ式の追加

[呼び出し履歴] コマンド ([ツール] メニュー)

デバッグ ウィンドウ

[ウォッチ式の編集] ダイアログ ボックス

[インスタント ウォッチ] ダイアログ ボックス

ブレークポイントの設定と解除

イミディエイト ペインの使い方


[呼び出し履歴] ダイアログ ボックス

関連項目

中断モード中は、[呼び出し履歴] ダイアログ ボックスに、現在アクティブなプロシージャ呼び出しの一覧が表示されます。プロシージャのコードを実行しているときは、そのプロシージャは、アクティブなプロシージャ呼び出しの一覧に追加されます。プロシージャから別のプロシージャを呼び出すと、さらにそのプロシージャが一覧に追加されます。呼び出し側のプロシージャに実行が戻ると、呼び出されたプロシージャは一覧から削除されます。イミディエイト ペインから呼び出されたプロシージャも一覧に追加されます。

[呼び出し履歴] ダイアログ ボックスを表示するには、デバッグ ウィンドウの [プロシージャ] ボックスの右にあるボタンをクリックするか、[ツール] - [呼び出し履歴] コマンドを選択するか、またはツールバーの [image] ボタンをクリックします。

プロシージャを表示するには、一覧からプロシージャ名を選択し、[表示] ボタンを選択します。

ダイアログ ボックスを閉じるには、[閉じる] ボタンを選択するか、またはコントロール メニュー ボックスをダブルクリックします。


関連項目

[呼び出し履歴] コマンド ([ツール] メニュー)

デバッグ ウィンドウ


[ウォッチ式の編集] ダイアログ ボックス

関連項目

[ウォッチ式の編集] ダイアログ ボックスは、ウォッチ式の対象や種類を削除または編集するときに使います。

重要   ウォッチ式の対象を選択するときは、必要最小限の適用範囲を設定します。すべてのプロシージャまたはすべてのモジュールを選択すると、各ステートメントを実行するたびに式を評価するため、モジュールの実行速度がかなり遅くなる場合があります。コンテキストとして 1 つのプロシージャを選択すると、そのプロシージャがアクティブなプロシージャ呼び出しに含まれているとき以外は、実行速度に影響はありません。プロシージャがアクティブなプロシージャ呼び出しに含まれているかどうかは、デバッグ ウィンドウの [プロシージャ] ボックスの右にあるボタンをクリックするとわかります。

[ウォッチ式の編集] ダイアログ ボックスを開くには、[ツール] - [ウォッチ式の編集] コマンドを選択するか、またはデバッグ ウィンドウのウォッチ ペインで既存の式をダブルクリックします。特に指定しない限り、選択した式がダイアログ ボックスに表示されます。

式を削除するには、[削除] ボタンを選択します。

式への変更を保存するには、[OK] ボタンを選択します。

式への追加や変更を行わずに [ウォッチ式の追加] ダイアログ ボックスを閉じるには、[キャンセル] ボタンを選択するか、またはコントロール メニュー ボックスをダブルクリックします。

ダイアログ ボックスのオプション

[式] ボックス

特に指定しない限り、選択した式が表示されます。式には、変数、プロパティ、関数呼び出し、その他の有効な式を設定することができます。別の式を入力して評価することもできます。

[対象] グループ ボックス

式で監視する変数の適用範囲を設定します。

[プロシージャ] ボックス

特に指定しない限り、選択した式のあるプロシージャ名が表示されます。式を評価するプロシージャを定義します。すべてのプロシージャを選択するか、または変数を評価するプロシージャ名だけを選択することができます。

[モジュール] ボックス

特に指定しない限り、選択した式のあるモジュール名が表示されます。すべてのモジュールを選択するか、または変数を評価するモジュール名だけを選択することができます。

[プロジェクト] ボックス

現在のプロジェクト名が表示されます。現在のプロジェクト以外の対象内の式は評価できません。

[ウォッチ式の種類] グループ ボックス

ウォッチ式に対する処理を設定します。

[式のウォッチ] オプション ボタン

デバッグ ウィンドウのウォッチ ペインに、ウォッチ式とその値を表示します。中断モードに入ると、ウォッチ式の値は自動的に更新されます。

[式が True の時に中断] オプション ボタン

式の評価結果が真 (True) になるか、または 0 以外の値になると、実行は自動的に中断モードに入ります。文字列式の場合は無効です。

[式の内容が変化した時に中断] オプション ボタン

指定した適用範囲の中で式の値が変化すると、実行は自動的に中断モードに入ります。

[削除] ボタン

ウォッチ式を削除します。


関連項目

[ウォッチ式の追加] ダイアログ ボックス

ウォッチ式の追加

デバッグ ウィンドウ

ウォッチ式の削除

[ウォッチ式の編集] コマンド ([ツール] メニュー)

ウォッチ式の編集

[インスタント ウォッチ] ダイアログ ボックス

ブレークポイントの設定と解除

イミディエイト ペインの使い方


[インスタント ウォッチ] ダイアログ ボックス

関連項目

[インスタント ウォッチ] ダイアログ ボックスは、選択した式の現在の値を表示します。この機能は、コードのデバッグ中に、変数、プロパティ、またはその他の式の現在の値を参照するのに便利です。

[インスタント ウォッチ] ダイアログ ボックスを表示するには、式を選択し、[ツール] - [インスタント ウォッチ] コマンドを選択するか、Shift キーを押しながら F9 キーを押すか、またはツールバーの [image] ボタンをクリックします。

ウォッチ ペインに式を追加するには、[インスタント ウォッチ] ダイアログ ボックスの [追加] ボタンを選択します。

[インスタント ウォッチ] ダイアログ ボックスを閉じるには、[キャンセル] ボタンを選択するか、またはコントロール メニュー ボックスをダブルクリックします。

ダイアログ ボックスのオプション

[現在の対象] ボックス

ウォッチ式のあるプロジェクト、モジュール、およびプロシージャの名前を表示します。

[式] ボックス

選択した式を表示します。

[値] ボックス

選択した式の値を表示します。式の対象が、[呼び出し履歴] ダイアログ ボックスに表示されたプロシージャの一覧にない場合は、現在の値は表示されません。

[追加] ボックス

ウォッチ ペインに式を追加します。


関連項目

[ウォッチ式の追加] ダイアログ ボックス

ウォッチ式の追加

[呼び出し履歴] ダイアログ ボックス

デバッグ ウィンドウ

ウォッチ式の削除

[ウォッチ式の編集] ダイアログ ボックス

ウォッチ式の編集

[インスタント ウォッチ] コマンド ([ツール] メニュー)

ブレークポイントの設定と解除

イミディエイト ペインの使い方


スクロール バー

スクロール バーは、マウスを使って、ウィンドウの一部を垂直または水平方向にスクロールするために使います。スクロール バーは、ウィンドウの右と下にあります。

ウィンドウの中をスクロールするには

次のいずれかの操作を行います。

スクロール内容	操作

1 行上へ	スクロール バーの上向きの矢印ボタンをクリックします。

1 画面上へ	垂直スクロール バーのスクロール ボックスより上の部分をクリックします。

適切な位置へ	スクロール ボックスをドラッグします。

1 行下へ	スクロール バーの下向きの矢印ボタンをクリックします。

1 画面下へ	垂直スクロール バーのスクロール ボックスより下の部分をクリックします。

左へ	スクロール バーの左向きの矢印ボタンをクリックします。

1 画面左へ	水平スクロール バーのスクロール ボックスより左の部分をクリックします。

右へ	スクロール バーの右向きの矢印ボタンをクリックします。

1 画面右へ	水平スクロール バーのスクロール ボックスより右の部分をクリックします。

スクロール バーは、次の要素から構成されます。

スクロール バーの矢印

スクロール バーの両端に表示される矢印ボタンです。矢印の向きは、スクロールしたときにウィンドウの内容が移動する方向を示しています。たとえば、上向きの矢印ボタンをクリックすると上へ、下向きの矢印ボタンをクリックすると下へ移動します。

スクロール ボックス

スクロール バーの中にある四角い箱のことで、現在表示されている部分が全体のどのあたりになるかを表します。

ウィンドウ内をすばやく移動するには、スクロール バーに沿ってスクロール ボックスをドラッグします。


[新規プロシージャ] ダイアログ ボックス

関連項目

新規の Sub プロシージャ、Function プロシージャ、またはProperty プロシージャを挿入するときに使います。[新規プロシージャ] ダイアログ ボックスでは、適用範囲をパブリックまたはプライベートに設定したり、プロシージャのすべてのプライベート変数を静的変数にする場合にも使います。

[新規プロシージャ] ダイアログ ボックスを開くには、[挿入] - [プロシージャ] コマンドを選択します。

[新規プロシージャ] ダイアログ ボックスを閉じるには、コントロール メニュー ボックスをダブルクリックするか、または [キャンセル] ボタンを選択します。

ダイアログ ボックスのオプション

[名前] ボックス

新規プロシージャ名を設定します。

[種類] グループ ボックス

作成するプロシージャの種類を、次の中から選択します。

[Sub プロシージャ] オプション ボタン

Sub プロシージャを新規作成する場合。

[Function プロシージャ] オプション ボタン

Function プロシージャを新規作成する場合。

[Property プロシージャ] オプション ボタン

Property プロシージャを新規作成する場合。

[スコープ] グループ ボックス

プロシージャの適用範囲を、パブリックとプライベートのいずれかに設定します。

[すべてのローカル変数を Static にする] チェック ボックス

プロシージャの定義にキーワード Static を追加します。

[OK] ボタン

コード ウィンドウにプロシージャ テンプレートを追加します。

[キャンセル] ボタン

新規プロシージャを挿入せずに、ダイアログ ボックスを閉じます。


関連項目

コード ウィンドウ

[プロシージャ] コマンド ([挿入] メニュー)


[EXE オプション] ダイアログ ボックス

関連項目

このダイアログ ボックスは、プロジェクトから作成する実行可能ファイルの属性を設定するときに使います。

[EXE オプション] ダイアログ ボックスを開くには、[ファイル] - [EXE ファイルの作成] コマンドを選択し、[EXE ファイルの作成] ダイアログ ボックスで [オプション] ボタンを選択します。

[EXE オプション] ダイアログ ボックスを閉じるには、[OK] ボタンを選択して設定を変更するか、[キャンセル] ボタンを選択して、変更を加えずにダイアログ ボックスを閉じます。

ダイアログ ボックスのオプション

[バージョン番号] グループ ボックス

[メジャー] ボックス

プロジェクトのメジャー リリース番号を 0 ～ 9999 の範囲で設定します。

[マイナ] ボックス

プロジェクトのマイナ リリース番号を 0 ～ 9999 の範囲で設定します。

[リビジョン] ボックス

プロジェクトのリビジョン バージョン番号を 0 ～ 9999 の範囲で設定します。

[自動インクリメント] チェック ボックス

このオプションを選択すると、このプロジェクトに対して [EXE ファイルの作成] コマンドを実行するたびに、リビジョン番号が自動的に 1 つずつ増加します。

[アプリケーション] グループ ボックス

[タイトル] ボックス

アプリケーション名を設定します。

[アイコン] ボックス

アプリケーションのアイコンを設定します。

[バージョン情報] グループ ボックス

[種類] ボックス

値を設定する情報の種類を指定します。会社名、ファイルの説明、法定著作権、法定商標権、および製品名の各情報を入力できます。

[値] ボックス

[種類] ボックスで選択した種類の情報の値を入力します。

[リモート サーバー サポート ファイル] チェック ボックス (Enterprise Edition のみ)

このチェック ボックスをオンにすると、.EXE ファイルと同じファイル名で拡張子 .VBR を持つファイルを作成します。.VBR ファイルには、リモート マシンで OLE サーバーを実行するために、レジストリに必要な情報が含まれています。このオプションは、Visual Basic Enterprise Edition でのみ使用できます。


関連項目

[EXE ファイルの作成] コマンド ([ファイル] メニュー)


[メンバ設定] ダイアログ ボックス

関連項目

[メンバ設定] ダイアログ ボックスは、プロジェクトで定義するモジュール、プロシージャ、クラス、プロパティ、メソッドに関するヘルプ情報やコメントを追加するときに使います。情報やコメントを追加すると、リスト項目をスクロールしたときに、フォームやモジュール内のプロシージャに関する説明やコメントが表示されます。

[メンバ設定] ダイアログ ボックスを開くには、[表示] - [オブジェクト ブラウザ] コマンドを選択し、[クラス / モジュール一覧] ボックスまたは [メソッド / プロパティ一覧] ボックスで有効な項目を選択し、[オプション] ボタンを選択します。

[メンバ設定] ダイアログ ボックスを閉じるには、コントロール メニュー ボックスをダブルクリックするか、または [キャンセル] ボタンを選択します。

ダイアログ ボックスのオプション

[メンバ名] ボックス

[クラス / モジュール一覧] ボックスまたは [メソッド / プロパティ一覧] ボックスで選択した項目名を表示します。

[説明] ボックス

メンバ名の説明を入力します。オブジェクト ブラウザでメンバを選択すると、[?] ボタンの横にこの説明が表示されます。

[ヘルプ ファイル] ボックス

[メンバ名] ボックスに表示された項目に関連づけられたヘルプ ファイルを表示します。[オプション] ダイアログ ボックスの [プロジェクト] タブの [ヘルプ ファイル] ボックスで設定します。

[ヘルプ コンテキスト番号] ボックス

固有の数値をコンテキスト番号として割り当てます。この値は、[ヘルプ ファイル] ボックスに表示されているファイルから、適切なヘルプ トピックを検索するために使います。


関連項目

[オブジェクト ブラウザ] コマンド ([表示] メニュー)

オブジェクト ブラウザ

[プロジェクト] タブ ([オプション] ダイアログ ボックス)


[カスタム コントロールのアップグレード] ダイアログ ボックス

関連項目

[オプション] ダイアログ ボックスの [環境] タブで [VBX カスタム コントロールをアップグレード] チェック ボックスを選択すると、VBX カスタム コントロールを含むプロジェクトをロードしたときに、VBX カスタム コントロールに対応する適切な OLE コントロールがあるかどうかが自動的に判断されます。

[はい] ボタンを選択すると、VBX カスタム コントロールは OLE カスタム コントロールに置き換えられます。

[いいえ] ボタンを選択すると、コントロールは置き換えられず、既存の VBX カスタム コントロールを使ってプロジェクトがロードされます。

注   VBX カスタム コントロールを OLE カスタム コントロールに置き換えられるかどうかは、OLE コントロールのベンダによって決定されます。VBX カスタム コントロールを OLE カスタム コントロールに置き換える前に、OLE コントロールのベンダのマニュアルを参照し、プロジェクトのコントロールを置き換えた場合、イベント プロシージャなどの関連コードを修正する必要があるかどうかを確認してください。


関連項目

[カスタム コントロール] ダイアログ ボックス

[詳細設定] タブ ([オプション] ダイアログ ボックス)


[プロシージャの選択] ダイアログ ボックス

このダイアログ ボックスは、[表示] - [プロシージャの定義] コマンドを選択するか、または Shift キーを押しながら F2 キーを押した場合、プロジェクト内に同じ名前のプロシージャが複数あったときに表示されます。

このダイアログ ボックスで定義を参照するプロシージャを選択し、[OK] ボタンを選択します。


[OLE DLL オプション] ダイアログ ボックス

関連項目

このダイアログ ボックスを使用すると、プロジェクト用に開発したダイナミック リンク ライブラリ (DLL) の属性を設定できます。

[OLE DLL オプション] ダイアログ ボックスを開くには、まず [ファイル] - [OLE DLL ファイルの作成] を選択し、[OLE DLL ファイルの作成] ダイアログ ボックスのオプション ボタンを選択します。

[OLE DLL オプション] ダイアログ ボックスを閉じるには、[OK] ボタンを選択して設定を変更するか、[キャンセル] ボタンを選択して、変更を加えずにダイアログ ボックスを閉じます。

ダイアログ ボックスのオプション

[バージョン番号]

メジャー。プロジェクトのメジャー リリース番号( 0 ～ 9999 の範囲)。

マイナ。プロジェクトのマイナ リリース番号( 0 ～ 9999 の範囲)。

リビジョン。プロジェクトの修正記録番号( 0 ～ 9999 の範囲)。

自動インクリメント。このオプションを選択すると、プロジェクトで [OLE DLL ファイルの作成] コマンドを実行するたびに、リビジョン番号が自動的に 1 つずつ増加します。

[アプリケーション]

タイトル。アプリケーションの名前。

アイコン。アプリケーションのアイコン。

[バージョン情報]

種類。設定可能な情報の種類を指定します。会社名、ファイルの説明、法的著作権、法的登録商標、および製品名を入力できます。

値。[種類] ボックス で指定した情報の種類の内容。

[DLL ベース アドレス]

メモリ内で OLE DLL に優先的に割り当てられるアドレスを指定します。このアドレスに OLE DLL をロードできない場合、他の適切なアドレスを自動的に探します。この場合、OLE DLL がメモリ内にロードされるのに時間がかかることがあります。ベース アドレスを指定すると、他の OLE DLL との競合を予想しそれを避けることができるので、OLE DLL のパフォーマンスを改善できます。

[リモート サーバー サポート ファイル](Enterprise Edition のみ)

このチェック ボックスをオンにすると、.VBR の拡張子を持つファイルと .DLL の拡張子を持つ同じ名前のファイルが作成されます。.VBR ファイルには、リモート コンピュータ上で OLE サーバーを実行する場合に、レジストリに必要な情報が含まれています。このオプションは、Visual Basic Enterprise Edition でのみ使用できます。


関連項目

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)


ﾊﾞﾘｱﾝﾄ型に変換するときに精度が失われました。 (Error 12)

値を保存する内部処理形式が Microsoft Visual Basic によって変更されましたが、その過程で値の精度が失われました。このエラーの原因と、その解決方法を次に示します。

この値はバリアント型 (Variant) の変数に保存されていて小数点以下の部分がありましたが、整数型 (Integer) または長整数型 (Long) に変換する変換関数が使われました。

コードの実行速度を落とさずに数値の精度を保持するには、数値をバリアント型ではなく特定の数値型の変数に保存してください。


有効なﾀｲﾏｰは設定されていません。(Error 260)

1 つのプロジェクトが持つことができるタイマー (Timer) コントロールの数には制限があります。また、各タイマー コントロールが必要とするメモリ量は決まっています。

アクティブなタイマー コントロールの数が多すぎます。最大の数は実行環境により異なります。

プロジェクトからいくつかのタイマー コントロールを削除してください。

メモリ不足でこれ以上タイマー コントロールをロードできません。

他のアプリケーションを閉じるなどして、メモリを解放してください。


DDE ﾁｬﾈﾙを閉じていません。外部ｱﾌﾟﾘｹｰｼｮﾝからの応答待ち状態です。(Error 280)

この Microsoft Visual Basic アプリケーションは、他のアプリケーションが行っている DDE 通信を強制終了させてから新しく別の通信を開始しようとしましたが、他のアプリケーションが行っていた最初の通信の強制終了作業が完了していませんでした。このエラーの原因と、その解決方法を次に示します。

強制終了させる DDE 通信を行っているアプリケーションが、ユーザーからの入力を待っています。

そのアプリケーションに切り替え、表示されているメッセージに応じて適切な操作を行ってください。

記述されているコードでは、他のアプリケーションにイベントを処理させることができません。

DoEvents 関数を呼び出し、もう一度リンクを確立し直してください。


DDE ﾁｬﾈﾙが足りなくなりました。(Error 281)

同時にアクティブになる DDE 通信の数が多すぎます。このエラーの原因と、その解決方法を次に示します。

LinkMode プロパティが 0 (なし) 以外の値に設定されているフォームの数が多すぎます。

LinkMode プロパティを 0 (なし) に設定して既存の DDE 通信のどれかを終了させてから、新しい通信を確立してください。


DDE の開始に対する外部ｱﾌﾟﾘｹｰｼｮﾝからの応答がありません。(Error 282)

LinkTopic プロパティに設定されているアプリケーションとトピックの組み合わせに対応するアプリケーションとトピックが見つかりませんでした。このエラーの原因と、その解決方法を次に示します。

LinkTopic プロパティで指定したアプリケーションは実行されていません。

指定したアプリケーションは、必ず実行させておくようにしてください。

アプリケーションは実行されていますが、そのアプリケーションがリンクするトピックを認識できませんでした。

指定したアプリケーションに、本当に LinkTopic プロパティで指定した名前のトピックがあるか確認してください。


DDE の開始に対して複数のｱﾌﾟﾘｹｰｼｮﾝから応答がありました。(Error 283)

少なくとも 2 つの実行中のアプリケーションが、LinkTopic プロパティで指定したトピックの名前に応答しました。このエラーの原因と、その解決方法を次に示します。

1 つのアプリケーションのインスタンスが 2 つ以上実行されていて、DDE 通信を開始しようとしたトピックが、それらのうちの 2 つ以上で認識されました。

アプリケーションのインスタンスを 1 つだけ残して終了させ、指定したアプリケーションとトピックの組み合わせは 1 つだけになるようにしてください。


DDE ﾁｬﾈﾙがﾛｯｸされています。(Error 284)

新しい DDE 通信を開始しようとしたか、DDE リンクに対して DDE メソッドを実行しようとしましたが、チャネルが開けません。このエラーの原因と、その解決方法を次に示します。

別のアプリケーションが同じ DDE リンクを開いています。

LinkTopic プロパティを自動 (1) か手動 (2) に設定、または LinkExecute メソッド、LinkPoke メソッド、LinkRequest メソッド、LinkSend メソッドのいずれかを実行する場合は、その前に DoEvents 関数を呼び出してください。


DDE をｻﾎﾟｰﾄした外部ｱﾌﾟﾘｹｰｼｮﾝがありません。(Error 285)

実行しようとした DDE のメソッドまたは操作が、アプリケーションに拒否されました。このエラーの原因と、その解決方法を次に示します。

送ったデータまたはコマンドが、受け取り側のアプリケーションでは認識できませんでした。

認識されるデータとコマンドについては、そのアプリケーションのマニュアルで調べてください。

LinkItem プロパティの設定値が、受け取り側のアプリケーションでは対話の有効なトピックとして認識できないアイテムに設定されていました。

認識されるアイテムについては、そのアプリケーションのマニュアルで調べてください。


DDE ﾀｲﾑｱｳﾄ ｴﾗｰです。(Error 286)

DDE 通信の相手側のアプリケーションが、LinkTimeout プロパティに設定された時間内に応答しませんでした。このエラーの原因と、その解決方法を次に示します。

相手側のアプリケーションは、ユーザーの入力を待っているため応答できません。

そのアプリケーションに切り替え、ダイアログ ボックスを閉じるか、または表示されているメッセージに応じた処理を行ってください。

LinkTimeout プロパティの設定値が小さすぎます。

値を大きくしてください。

相手側のアプリケーションは、何か処理を行っていて DDE メッセージに応答できません。

DoEvents 関数を呼び出してから、この DDE の操作を実行してください。


DDE 処理中に Esc ｷｰが押されました。(Error 287)

DDE 操作が完了するのを待っている間に、ユーザーが Esc キーを押しました。このエラーの原因と、その解決方法を次に示します。

DDE 通信の相手側のアプリケーションの応答に、時間がかかりすぎました。

LinkTimeout プロパティの設定値をもっと小さくしてください。


ﾃﾞｽﾃｨﾈｰｼｮﾝが通信中です。(Error 288)

DDE 通信の相手側のアプリケーションが、DDE 操作を実行できません。このエラーの原因と、その解決方法を次に示します。

相手側のアプリケーションは、他の Windows イベントに応答している最中です。

DoEvents 関数を呼び出してから、もう一度この DDE 操作を送ってください。


DDE 処理のﾃﾞｰﾀがありません。(Error 289)

Microsoft Visual Basic が DDE 操作を実行しようとしたときに、予期しないエラーが発生しました。このエラーの原因と、その解決方法を次に示します。

Visual Basic は、相手側のアプリケーションから、DDE 通信に送るデータを要求されたときに送れなかったという情報を受け取りました。

相手側のアプリケーションが DDE を正しく実行しているかどうか、および送るように指定したデータを本当に持っているかどうかを確認してください。


ﾃﾞｰﾀの形式が不正です。(Error 290)

DDE 通信の相手側のアプリケーションが、予期しない形式のデータを送ってきました。このアプリケーションは DDE を正常に実行していない可能性があります。このエラーの原因と、その解決方法を次に示します。

このアプリケーションは、Microsoft Visual Basic では認識できない形式のデータを送っています。

別のトピックを使って通信を開始してください。

このアプリケーションはピクチャ ボックス (PictureBox) コントロールにテキスト データを送っているか、テキスト ボックス (TextBox) コントロールにピクチャ データを送っています。

別のコントロールを使って通信を開始してください。


外部ｱﾌﾟﾘｹｰｼｮﾝが終了しました。(Error 291)

DDE 操作は、相手側のアプリケーションが実行されていなければ行えません。このエラーの原因と、その解決方法を次に示します。

DDE 通信の相手側のアプリケーションが、通知もできないまま終了しました。

アプリケーションが終了した理由を調べてから、そのアプリケーションを再起動してください。


DDE 通信が変更または閉じられました。(Error 292)

Visual Basic が DDE 操作を実行しようとしたときに、予期しないエラーが発生しました。このエラーの原因と、その解決方法を次に示します。

相手側のアプリケーションが、通知を行わないで DDE 通信を閉じたり変更したりしました。

この通信を終了し、もう一度新しくこのアプリケーションとの通信を開始してください。


DDE ﾁｬﾈﾙが開かれていない状態で DDE ﾒｿｯﾄﾞが実行されました。(Error 293)

DDE メソッド (LinkExecute、LinkPoke、LinkRequest、LinkSend など) が、有効な DDE 通信と関係のないコントロールに対して実行されました。このエラーの原因と、その解決方法を次に示します。

LinkTopic プロパティを変更すると既存の DDE 通信は終了されますが、新しい通信は自動的には開始されません。

コントロールの LinkTopic プロパティを変更した後は、そのコントロールに対する DDE メソッドを実行する前に、そのフォームの LinkMode プロパティを 1 (自動) または 2 (手動) に設定してください。

LinkMode プロパティを 0 (なし) に設定したまま、コントロールに対して DDE メソッドを実行しました。

LinkMode プロパティを 1 (自動) または 2 (手動) に設定してから、再実行してください。


DDE ﾘﾝｸ形式が不正です。(Error 294)

DDE 通信の相手側のアプリケーションが、無効な形式のデータを渡しました。このエラーの原因と、その解決方法を次に示します。

このアプリケーションは、Clipboard オブジェクトの vbCFLink 形式のデータを渡しましたが、有効なリンク データではありませんでした。

相手側のアプリケーションでデータを修正し、Clipboard オブジェクトの vbCFLink 形式に従ってください。


ﾒｯｾｰｼﾞ ｷｭｰがいっぱいです。DDE ﾒｯｾｰｼﾞが失われました。(Error 295)

実行しようとした DDE 操作の数が多すぎて、Microsoft Visual Basic はすべてを処理できません。このエラーの原因と、その解決方法を次に示します。

実行されている DDE 通信の数が多すぎます。

DDE 通信をいくつか終了させてください。

DDE データが次々と送信されてくるため、実行中のイベント プロシージャのコードが多くなりすぎました。

DDE の更新の結果、呼び出されるコードの量を減らすか、または DoEvents 関数を呼び出してください。


このｺﾝﾄﾛｰﾙは既にﾘﾝｸ貼り付けされています。(Error 296)

このコントロールに対しては、既にリンク貼り付けを実行しています。このエラーの原因と、その解決方法を次に示します。

以前貼り付けたリンクが有効なままで、新しいリンクを貼り付けようとしています。

新しくリンクを貼り付けるには、まずこのコントロールの LinkMode プロパティを 0 (なし) に設定してから、[形式を選択して貼り付け] コマンドを使ってください。


LinkMode を設定できません。LinkTopic が不正です。(Error 297)

コントロールの LinkMode プロパティを設定しようとして失敗しました。このエラーの原因と、その解決方法を次に示します。

コントロールの LinkTopic プロパティを指定していませんでした。

まず有効な LinkTopic プロパティを指定してください。


ｼｽﾃﾑ DLL 'dll' をﾛｰﾄﾞできません。(Error 298)

DDE 操作は開始されましたが、DDEML.DLL というファイルが見つかりません。たとえば、DDEML.DLL、VERSION.DLL、WINSPOOL.DRV などのオペレーティング システムで提供している DLL ファイルが見つかりません。このエラーの原因と、その解決方法を次に示します。

ファイルの保存されている場所が正しくありません。

DDE 操作を正常に機能させるために、DLL ファイルは必ず \WINDOWS\SYSTEM というディレクトリに保存しておいてください。

DLL ファイルが破損または削除されています。

DLL ファイルを再度ロードしてください。

メモリまたはスワップ領域が不足しています。

他のアプリケーションを閉じるなどして、メモリを解放してください。


ｷｬﾗｸﾀ ﾃﾞﾊﾞｲｽは使えません: 'item' (Error 320)

Microsoft Visual Basic では、ファイルにデバイス ドライバと同じ文字の名前を付けることはできません。このエラーの原因と、その解決方法を次に示します。

ファイル名に AUX、CON、COM1、COM2、LPT1、LPT2、LPT3、LPT4、NUL などの文字を使おうとしました。

違うファイル名を付けてください。


ﾌｧｲﾙ形式が無効です。(Error 321)

Microsoft Visual Basic のフォーム ファイルが壊れています。このエラーの原因と、その解決方法を次に示します。

このフォームのカスタム コントロールは、壊れています。

フォームのカスタム コントロールを壊れていないカスタム コントロールに置き換えてください。

このカスタム コントロールの現バージョンでのプロパティの数は、予想されていた数と一致しません。

カスタム コントロールを別のバージョンのカスタム コントロールに置き換えてください。


'Item' は不正なﾘｿｰｽ ﾌｧｲﾙです。(Error 325)

このプロジェクトのリソース ファイルが Windows のリソース ファイルの標準形式に準じていないか、リソース ファイルと Microsoft Visual Basic のプロジェクトの間に不一致が生じました。このエラーの原因と、その解決方法を次に示します。

無効な形式のリソース ファイルに対して、LoadResString メソッド、LoadResPicture メソッド、LoadResData メソッドのいずれかを使おうとしました。

Windows Software Development Kit のマニュアルに書かれた構文に従ってリソース ファイルのソース コードを記述し直し、リソース ファイルを再度作成してください。

無効な形式のリソース ファイルを持つプロジェクトから .EXE ファイルを生成しようとしました。

無効なリソース ファイルをプロジェクトから削除してください。

[ファイル] - [ファイルの追加] コマンドを使って 16 ビットのリソース ファイルを 32 ビットのプロジェクトに追加しようとしました。または、32 ビットのリソース ファイルを 16 ビットのプロジェクトに追加しようとしました。

リソース ファイルと Visual Basic のプロジェクトは、16 ビットなら 16 ビット、32 ビットなら 32 ビットに必ず揃えるようにしてください。


識別子 'item' のﾘｿｰｽが見つかりません。(Error 326)

指定された ID のリソースは、このリソース ファイル内には存在しません。このエラーの原因と、その解決方法を次に示します。

LoadResString メソッド、LoadResPicture メソッド、LoadResData メソッドのいずれかを使い、プロジェクトまたは .EXE ファイルが使うリソース ファイル内には存在しない ID のリソースをロードしようとしました。

存在するリソースのリソース ID に変更するか、間違ったリソース ファイルを削除して指定されたリソース ID のリソースを含むリソース ファイルを追加してください。


ｼｽﾃﾑ登録ﾃﾞｰﾀﾍﾞｰｽにｱｸｾｽできません。(Error 335)

システム レジストリの読み出しまたは書き込みに失敗しました。このエラーの原因と、その解決方法を次に示します。

レジストリのファイル REG.DAT が削除されていたか、破損していました。

レジストリの復旧は、次のような手順で行います。

1	いったん Windows を終了し、REG.DAT ファイルを削除してから、Windows を再起動します。

2	登録エディタを起動するために、ファイル マネージャまたはプログラム マネージャから [ファイル名を指定して実行] コマンドを選択します。「REGEDIT.EXE」と入力し、[OK] ボタンを選択します。ファイルの種類のリストにはエントリは 1 つも登録されていません。

3	[ファイル] - [登録ファイルの結合] コマンドを選択します。

4	[ファイル名] ボックスで SETUP.REG というファイルを選択し、[OK] ボタンを選択します。

SETUP.REG ファイルは Windows のディレクトリの下の SYSTEM ディレクトリに入っています。情報の登録が完了すると、そのことを知らせる確認メッセージが表示されます。レジストリは更新され、Windows に元からあった登録情報になります。

ほかにも .REG ファイル内に登録情報を設定するアプリケーションがある場合は、[ファイル] - [登録ファイルの結合] コマンドを使ってその情報も追加してください。


ｵﾌﾞｼﾞｪｸﾄ ｻｰﾊﾞｰが正しく登録されていません。(Error 336)

OLE サーバーが、システムのレジストリに正しく登録されていません。このエラーの原因と、その解決方法を次に示します。

REG.DAT ファイルに登録する 4 つのキー エントリ (ROOT、Typelib、CLSID、Interface) のうちのどれかが登録されていないか、または間違っています。あるいは、この OLE サーバーと同じプロジェクト名の OLE サーバーが後から起動されて同時に実行されており、この 2 つめの OLE サーバーによってキー エントリが上書きされました。

OLE サーバーの登録の詳細については、『プロフェッショナル プログラミング ガイド』の「OLE サーバー作成ガイド」の「第 1 章 OLE サーバー作成の基礎」を参照してください。


ｵﾌﾞｼﾞｪｸﾄ ｻｰﾊﾞｰが見つかりません。(Error 337)

要求された実行可能ファイル (.EXE) または DLL ファイルが見つかりません。このエラーの原因と、その解決方法を次に示します。

この OLE サーバーはレジストリ (REG.DAT) への登録は行われていますが、このアプリケーションから参照している実行可能ファイル (.EXE) または DLL ファイルが見つかりません。

OLE サーバーの実行可能ファイル (.EXE) と DLL ファイルが、\SYSTEM ディレクトリにコピーされているかどうかを確認してください。OLE サーバーの詳細については、『プロフェッショナル プログラミング ガイド』の「OLE サーバー作成ガイド」の「第 1 章 OLE サーバー作成の基礎」を参照してください。


ｵﾌﾞｼﾞｪｸﾄ ｻｰﾊﾞｰが正常に実行されませんでした。(Error 338)

OLE サーバーの実行可能ファイル (.EXE) が、正常に実行できませんでした。このエラーの原因と、その解決方法を次に示します。

レジストリ (REG.DAT) に登録された情報に問題があるか、または実行可能ファイル (.EXE) が壊れている可能性があります。

OLE サーバーの実行可能ファイル (.EXE) を新しく作り直し、正常に実行できるか試してください。OLE サーバーの詳細については、『プロフェッショナル プログラミング ガイド』の「OLE サーバー作成ガイド」の「第 1 章 OLE サーバー作成の基礎」を参照してください。


ｺﾝﾄﾛｰﾙ配列の要素 'item' がありません。(Error 340)

コントロール配列の要素の指定に使ったインデックス番号が無効です。このエラーの原因と、その解決方法を次に示します。

指定したインデックス番号を持つコントロールが、既存のコントロール配列の中にありません。

既存のいずれかの要素の Index プロパティの設定値を、指定した番号に変更してください。または、Load ステートメントを使ってコントロール配列にその番号のコントロールを追加してから、そのインデックス番号を使ってください。


ｺﾝﾄﾛｰﾙ配列のｲﾝﾃﾞｯｸｽが不正です。(Error 341)

無効なインデックス番号を使って、コントロール配列の要素を参照しました。このエラーの原因と、その解決方法を次に示します。

コード内で指定したインデックス番号が、負の値になっています。

インデックス番号を、コントロール配列の既存の要素の番号に変更してください。


ｺﾝﾄﾛｰﾙ配列 'item' のためのﾒﾓﾘが足りません。(Error 342)

メモリ不足で、コントロール配列のすべての要素を作成することができません。このエラーの原因と、その解決方法を次に示します。

要素のインデックス番号が連続番号ではない (0、2、4 のような) コントロール配列の要素に対して、デザイン時に設定したインデックス番号が大きすぎます。

Microsoft Visual Basic が大量のメモリを使わないように、Index プロパティの設定値を小さい番号に変更してください。

Load ステートメントを使い、インデックス番号が大きすぎる要素をコントロール配列に追加しました。

コードを編集して、インデックス番号を小さい値に変更してください。


配列ではないｵﾌﾞｼﾞｪｸﾄです。(Error 343)

コントロール配列に含まれていないコントロールが、コントロール配列内のコントロールを指定するような方法で指定されています。このエラーの原因と、その解決方法を次に示します。

配列に含まれていないコントロールのインデックス番号を指定しようとしました。たとえば、Command1.Caption とするところを Command1(3).Caption などと指定しました。

インデックス番号の部分を削除するか、またはそのコントロールをコントロール配列の要素として定義し直してください。


ｵﾌﾞｼﾞｪｸﾄ配列のｲﾝﾃﾞｯｸｽを指定してください。(Error 344)

コントロール配列に含まれていないコントロールが、コントロール配列内のコントロールを指定するような方法で指定されています。このエラーの原因と、その解決方法を次に示します。

配列に含まれていないコントロールのインデックス番号を指定しようとしました。

インデックス番号の部分を削除してください。

実行時に、Load ステートメントを使ってコントロールを追加しようとしましたが、Name プロパティに指定されたコントロール配列はありませんでした。

コントロール配列として参照するコントロールは、デザイン時に作成しておいてください。


このﾌｫｰﾑにこれ以上のｺﾝﾄﾛｰﾙを作成できません。(Error 345)

1 つのフォームに 255 個より多くの独立したコントロールを配置することはできません。このエラーの原因と、その解決方法を次に示します。

デザイン時に、フォームに 256 個めとなるコントロールを追加しようとしました。フォームそのものも 1 つのコントロールとして数に含まれています。

フォームからコントロールをいくつか削除するか、またはいくつかのコントロールをコントロール配列内のコントロールに定義し直してください。


このｵﾌﾞｼﾞｪｸﾄは既にﾛｰﾄﾞされています。(Error 360)

コントロール配列内のこのコントロールは、既にロードされています。このエラーの原因と、その解決方法を次に示します。

実行時に Load ステートメントを使ってコントロール配列にコントロールを追加しようとしましたが、指定したインデックス番号は既に使われていました。

インデックス番号を新しい番号に変更してください。また、コードで実行している Load ステートメントの中に、ステートメントが同じでインデックス番号も同じものが 2 つ以上ないか確認してください。


このｵﾌﾞｼﾞｪｸﾄは、ﾛｰﾄﾞまたはｱﾝﾛｰﾄﾞすることはできません。(Error 361)

Load ステートメントまたは Unload ステートメントで、無効なオブジェクトまたはコントロールを指定しています。このエラーの原因と、その解決方法を次に示します。

Screen オブジェクト、Printer オブジェクト、Clipboard オブジェクトなどのフォームではないオブジェクトおよびコントロールを、ロードまたはアンロードしようとしました。

この不正なステートメントをコードから削除してください。

コントロール配列に含まれていない既存のコントロールを、ロードまたはアンロードしようとしました。たとえば、Name プロパティが Text1 となっているテキスト ボックス (TextBox) コントロールのオブジェクトがあるとします。これに対して Load Text1 と記述するとエラーになります。

エラーを発生させたステートメントをコードから削除するか、指定するコントロールをコントロール配列内のコントロールに変更してください。

親メニューの Click イベントで、メニュー (Menu) コントロールをアンロードしようとしました。

このメニュー コントロールは、他のプロシージャを使ってアンロードしてください。

メニュー コントロールに表示されている最後の 1 つとなったメニュー項目をアンロードしようとしました。

メニュー項目をアンロードする前に、コントロール配列内に他のメニュー項目があるかどうか Visible プロパティの設定を調べてください。または、エラーが発生したステートメントをコードから削除してください。


ﾃﾞｻﾞｲﾝ時に作成されたｺﾝﾄﾛｰﾙはｱﾝﾛｰﾄﾞできません。(Error 362)

コントロール配列の要素のうちアンロードできるのは、実行時にロードされた要素だけです。このエラーの原因と、その解決方法を次に示します。

デザイン時に生成したコントロール配列の要素に対して、Unload ステートメントを使いました。

アンロードするコントロールのインデックス番号を、実行時にロードされたコントロール配列要素を参照するインデックス番号に変更してください。コントロールを非表示にする場合は、Visible プロパティを偽 (False) に設定してください。


ｶｽﾀﾑ ｺﾝﾄﾛｰﾙ 'item' がありません。(Error 363)

ロード中のフォームに、現在のプロジェクトにはないカスタム コントロールが含まれています。このエラーの原因と、その解決方法を次に示します。

プロジェクトのプロジェクト ファイル (.VBP) を編集したときに、プロジェクトに追加されていないカスタム コントロールを含むフォームを追加した可能性があります。

プロジェクトをロードした後に、[ツール] - [カスタム コントロール] コマンドを使ってプロジェクトにそのカスタム コントロールを追加してください。

プロジェクトのプロジェクト ファイル (.VBP) を編集したときに、現在プロジェクトが持っているカスタム コントロールの、以前のバージョンのカスタム コントロールを含むフォームを追加した可能性があります。

プロジェクトをロードした後に、フォームから以前のバージョンのカスタム コントロールを削除し、新しいバージョンのカスタム コントロールをフォームに配置してください。


既にｱﾝﾛｰﾄﾞされています。(Error 364)

フォームがそれ自身の Form_Load プロシージャによってアンロードされました。このエラーの原因と、その解決方法を次に示します。

そのフォーム自身の Form_Load プロシージャ内で Unload ステートメントでアンロードされるフォームが、暗黙のうちにロードされました。たとえば、Form2 がまだロードされていないときに Form2.BackColor = Form1.BackColor といったコードを記述するとフォームが暗黙のうちにロードされます。

Form_Load プロシージャから Unload ステートメントを削除してください。


現在ｱﾝﾛｰﾄﾞできません。(Error 365)

フォームやフォーム上のコントロールをアンロードできない場合もあります。このエラーの原因と、その解決方法を次に示します。

Paint イベントを受け取るフォームまたはフォーム上のコントロールの Paint イベント内に Unload ステートメントがあります。

Paint イベントから Unload ステートメントを削除してください。

コンボ ボックス (ComboBox) コントロールの Change イベント、Click イベント、DropDown イベントのいずれかに Unload ステートメントがあります。

そのイベントから Unload ステートメントを削除してください。

水平スクロール バー (HScrollBar) コントロールまたは垂直スクロール バー (VScrollBar) コントロールの Scroll イベント内に Unload ステートメントがあります。

そのイベントから Unload ステートメントを削除してください。

データ (Data) コントロール、フォーム、MDI フォーム、ピクチャ ボックス (PictureBox) コントロールのいずれかの Resize イベント内に Unload ステートメントがあります。

そのイベントから Unload ステートメントを削除してください。

MDI フォームの Resize イベント内に、MDI 子フォームをアンロードする Unload ステートメントがあります。

そのイベント プロシージャから Unload ステートメントを削除してください。

データ コントロールの RePosition イベントまたは Validate イベントの中に Unload ステートメントがあります。

そのイベントから Unload ステートメントを削除してください。

OLE コンテナ (OLE) コントロールの ObjectMove イベントの中に Unload ステートメントがあります。

そのイベントから Unload ステートメントを削除してください。


ﾛｰﾄﾞ可能な MDI ﾌｫｰﾑはありません。(Error 366)

このプロジェクトには、ロードできる MDI フォームがありません。このエラーの原因と、その解決方法を次に示します。

MDIChild プロパティが真 (True) に設定されているフォームをロードしようとしましたが、実行時にプロジェクトの中にロードできる MDI フォームがありませんでした。

MDI フォームをプロジェクトに追加するか、MDIChild プロパティの設定値を偽 (False) に変更してください。


ﾌｧｲﾙ 'item' は古い形式で作成されています。このﾌﾟﾛｸﾞﾗﾑには新しい形式のﾌｧｲﾙが必要です。(Error 367)

バージョンが古いため、使用できないカスタム コントロールが見つかりました。このエラーの原因と、その解決方法を次に示します。

現在使われているカスタム コントロールが持つプロパティの数は、予期されていた数と一致しません。

新しいバージョンのカスタム コントロールに置き換えてください。


ｶｽﾀﾑ ｺﾝﾄﾛｰﾙ DLL 'item' が読み込めません。(Error 368)

指定されたカスタム コントロールのダイナミック リンク ライブラリ (DLL) は、ロードできません。このエラーの原因と、その解決方法を次に示します。

[ツール] - [カスタム コントロール] コマンドを使って、Microsoft Visual Basic のカスタム コントロールの DLL として無効な DLL ファイル (.DLL) をロードしようとしました。

カスタム コントロールの拡張子である .VBX または .OCX を持つ DLL ファイル以外はロードしないでください。

カスタム コントロールの DLL を参照するプロジェクトを開いたとき、この DLL ファイルは存在しましたが、有効なカスタム コントロールの DLL ではありませんでした。

この DLL ファイルは、壊れている場合があります。壊れていない DLL ファイルに置き換えてください。


ﾌﾟﾛﾊﾟﾃｨの値が不正です。(Error 380)

プロパティに、適切でない値が代入されています。このエラーの原因と、その解決方法を次に示します。

オブジェクトまたはコントロールのプロパティに、設定できる範囲外の値を設定しようとしました。

プロパティの値を有効な設定値に変更してください。たとえば、MousePointer プロパティには 0 ～ 13 の範囲の整数値を設定しなければなりません。


ﾌﾟﾛﾊﾟﾃｨ配列のｲﾝﾃﾞｯｸｽが不正です。(Error 381)

プロパティ配列のインデックス番号に、適切でない番号が使われています。このエラーの原因と、その解決方法を次に示します。

プロパティ配列のインデックス番号に、設定できる範囲外の番号を設定しようとしました。

プロパティ配列のインデックス番号を有効な設定値に変更してください。たとえば、リスト ボックス (ListBox) コントロールの List プロパティのインデックス番号は、0 ～ 32,766 の範囲の番号でなければなりません。


'Item' ﾌﾟﾛﾊﾟﾃｨは、実行時には設定できません。(Error 382)

このプロパティは、実行時には値の取得のみ可能です。このエラーの原因と、その解決方法を次に示します。

デザイン時のみ設定できるプロパティを設定または変更しようとしました。

コードから、このプロパティを操作した部分を削除してください。または、実行時には、このプロパティでは値の取得のみ行うようにコードを変更してください。


'Item' ﾌﾟﾛﾊﾟﾃｨは値の取得のみ可能です。(Error 383)

このプロパティは、値の取得のみ可能です。このエラーの原因と、その解決方法を次に示します。

値の取得しかできないプロパティを設定または変更しようとしました。

コードから、このプロパティを操作した部分を削除してください。または、実行時にはこのプロパティでは値の取得しか行わないようにコードを変更してください。


最大化または最小化されているﾌｫｰﾑは、移動またはｻｲｽﾞ変更することはできません。(Error 384)

最小化されているフォームまたは最大化になっているフォームでは、Left プロパティ、Top プロパティ、Height プロパティ、Width プロパティはどれも変更できません。このエラーの原因と、その解決方法を次に示します。

最大化または最小化されているフォームに対して、Move メソッドを使ったか、あるいは Left、Top、Height、Width のいずれかのプロパティを変更しようとしました。

Move メソッドを使う前にそのフォームの WindowState プロパティを調べるか、またはそのフォームに関してはユーザーが最大化したり最小化したりできないようにしてください。

フォームが最大化または最小化されているときに Resize イベントが発生し、Resize イベントのコードでそのフォームの Left、Top、Height、Width のいずれかのプロパティを変更しようとしました。

Resize イベントのプロシージャのコードを、フォームの WindowState プロパティの値を調べてその値が 1 (最大化) または 2 (最小化) になっている場合はそのままプロシージャから抜けるようなコードに書き直してください。


ﾌﾟﾛﾊﾟﾃｨ配列にはｲﾝﾃﾞｯｸｽが必要です。(Error 385)

プロパティ配列を操作するときは、インデックス番号を指定しなければなりません。このエラーの原因と、その解決方法を次に示します。

プロパティ配列の要素を指定しようとしましたが、その要素のインデックス番号の指定が省略されていました。

コードにインデックス番号を追加してください。たとえば、List1.List という記述は無効で、List1.List(3) といった記述が有効です。


'Item' ﾌﾟﾛﾊﾟﾃｨは実行時には利用できません。(Error 386)

実行時にこのプロパティの値を取得することはできません。このエラーの原因と、その解決方法を次に示します。

実行時にこのプロパティの値を返そうとしました。

コードを編集して、このプロパティを参照している部分を削除してください。


'Item' ﾌﾟﾛﾊﾟﾃｨはこのｺﾝﾄﾛｰﾙでは設定できません。(Error 387)

このプロパティの値は、実行時には設定できないか、またはある一定の条件が満たされる場合しか設定できません。このエラーの原因と、その解決方法を次に示します。

実行時に、フォームの Auto3D、ControlBox、MinButton、MaxButton のいずれかのプロパティの設定値を変更しようとしました。

これらのプロパティは、実行時には値の取得のみ可能です。

親メニューに表示されている最後の 1 つのサブメニューの Visible プロパティを偽 (False) に設定しようとしました。

サブメニューが 1 つも表示されていない親メニューを持つことはできません。


親ﾒﾆｭｰからは Visible ﾌﾟﾛﾊﾟﾃｨを設定できません。 (Error 388)

サブメニュー項目の Visible プロパティを、そのサブメニューの親メニューのコード内で設定することはできません。このエラーの原因と、その解決方法を次に示します。

サブメニュー項目の親メニューであるメニュー (Menu) コントロールに関連したプロシージャ内で、そのサブメニュー項目の Visible プロパティを設定しようとしました。

このサブメニュー項目の Visible プロパティを操作する部分は、他のコントロールまたはオブジェクトのプロシージャに記述してください。


無効なｷｰです。(Error 389)

無効なキー入力がありました。


値が定義されていません。(Error 390)

このプロパティには値が定義されていません。


無効な名前です。(Error 391)

カスタム コントロール ファイル (.VBX) で、実行可能ファイル (.EXE) 形式の Microsoft Visual Basic アプリケーションに対して VBGetControlName API を使おうとしました。このエラーの原因と、その解決方法を次に示します。

Visual Basic では、.EXE ファイルにオブジェクト名を埋め込むことはできません。

このカスタム コントロール ファイル (.VBX) を作成したプログラマに問い合わせてください。


'Item' ﾌﾟﾛﾊﾟﾃｨは実行時に値の取得はできません。 (Error 393)

このプロパティは、実行時には使えません。このエラーの原因と、その解決方法を次に示します。

実行時に、デザイン時のみアクセスできるプロパティの値を取得しようとしました。

コードを編集して、このプロパティを参照している部分を削除してください。


'Item' ﾌﾟﾛﾊﾟﾃｨは設定のみ可能です。(Error 394)

このプロパティの値は取得できません。このエラーの原因と、その解決方法を次に示します。

値を取得できないプロパティでは、たとえば ctl.property = 3 という記述は有効ですが、"Print ctl.property" と記述するとこのエラーが発生します。

コードを編集して、このプロパティを参照している部分を削除してください。


ﾒﾆｭｰ名に区分線は使えません。 (Error 395)

サブメニューを持つメニュー (Menu) コントロールのキャプションを区分線に変更することはできません。このエラーの原因と、その解決方法を次に示します。

デザイン時か実行時に親メニューかトップレベル メニューの Caption プロパティを区分線に変更しようとしました。

[メニュー エディタ] ダイアログ ボックスの [キャプション] ボックスかプロパティ ウィンドウの Caption プロパティからダッシュ文字を削除してください。または、コード内の該当する部分を変更してください。

実行時に、チェック マークが付いているか、無効になっているかまたはショートカット キーが割り当てられているメニュー コントロールの Caption プロパティを区分線に変更しようとしました。

コードの Caption プロパティを操作している部分を変更してください。また、Caption プロパティを変更する場合は、その前に Checked プロパティや Enabled プロパティの値を取得してください。Shortcut プロパティは、実行時には値を取得することはできません。


'Item' ﾌﾟﾛﾊﾟﾃｨは 1 ﾍﾟｰｼﾞ内では設定できません。 (Error 396)

Printer オブジェクトには、1 ページ内では変更できないプロパティがいくつかあります。このエラーの原因と、その解決方法を次に示します。

印刷ジョブを次ページに進めずに Printer オブジェクトの Height、Width、PaperSize のいずれかのプロパティを変更しようとしました。

Height、Width、PaperSize などのプロパティの変更は、NewPage メソッドを実行してから行ってください。


ﾄｯﾌﾟ ﾚﾍﾞﾙ ﾒﾆｭｰの Visible ﾌﾟﾛﾊﾟﾃｨは設定できません。(Error 397)

OLE サーバーのメニューがコンテナのフォームのメニューと結合されているときには、トップレベル メニューの Visible プロパティを設定することはできません。このエラーの原因と、その解決方法を次に示します。

Microsoft Visual Basic のコンテナ フォームのメニューと、リンクまたは埋め込まれた OLE サーバーのメニューとが 1 つのメニュー バーを共有しているときに、トップレベル メニューの Visible プロパティを変更しようとしました。

トップレベル メニューの Visible プロパティを変更する場合は、必ずその前にメニューが共有されていないことを確認してください。


既にﾌｫｰﾑは表示されています。ﾓｰﾀﾞﾙにできません。(Error 400)

既に表示されているフォームを、Show メソッドを実行してモーダルに表示させることはできません。このエラーの原因と、その解決方法を次に示します。

既に表示されているフォームに対して、Show メソッドの引数 style を 1 (vbModal) に設定して実行しようとしました。

フォームをモーダル フォームとして表示させる場合は、その前にそのフォームに対して Unload ステートメントまたは Hide メソッドを使ってください。


ﾓｰﾀﾞﾙ ﾌｫｰﾑが表示されているときはﾓｰﾄﾞﾚｽ ﾌｫｰﾑを表示できません。(Error 401)

モーダル フォームが表示されているときは、他のモーダルでないフォームを表示することはできません。このエラーの原因と、その解決方法を次に示します。

モーダル フォームが表示されているときに、モーダルではないフォームに対して Show メソッドを使おうとしたか、または Visible プロパティを真 (True) に設定しようとしました。

モーダルではないフォームの Show メソッドを実行する場合は、その前にモーダル フォームに対して Unload ステートメントまたは Hide メソッドを使ってください。


一番手前 (前面) のﾓｰﾀﾞﾙ ﾌｫｰﾑを先に閉じてください。 (Error 402)

閉じようとしたかまたは非表示にしようとしたモーダル フォームは、Z オーダーのトップに位置しません。このエラーの原因と、その解決方法を次に示します。

閉じようとした、または非表示にしようとしたモーダル フォームよりも Z オーダーが高いモーダル フォームがあります。

まず一番高い Z オーダーのモーダル フォームに対して、Unload ステートメントや Hide メソッドを使ってください。モーダル フォームとは、引数 style を 1 (vbModal) に設定して Show メソッドを実行して表示させたフォームのことです。


MDI ﾌｫｰﾑはﾓｰﾀﾞﾙにできません。(Error 403)

MDI フォームにモーダルの設定を行うことはできません。このエラーの原因と、その解決方法を次に示します。

MDI の親フォームに対して、Show メソッドの引数 style を 1 (vbModal) に設定しようとしました。

コードから引数 style の記述の部分を削除してください。

MDI フォームを含むプロジェクトを、[ファイル] - [OLE DLL ファイルの作成] コマンドを選択してコンパイルしようとしました。

DLL に MDI フォームを含めることはできません。プロジェクトから MDI フォームを解放してもう一度コンパイルするか、または [ファイル] - [EXE ファイルの作成] コマンドを選択して、プロジェクトを実行可能ファイルにコンパイルしてください。


MDI 子ﾌｫｰﾑはﾓｰﾀﾞﾙにできません。 (Error 404)

MDI の子フォームにモーダルの設定を行うことはできません。このエラーの原因と、その解決方法を次に示します。

MDI の子フォームに対して、Show メソッドの引数 style を 1 (vbModal) に設定しようとしました。

コードから引数 style の記述の部分を削除してください。


ｵﾌﾞｼﾞｪｸﾄを利用できません。 (Error 419)

このオブジェクトへのアクセスに必要な権限は与えられていません。このエラーの原因と、その解決方法を次に示します。

現在、このオブジェクトへのアクセス権は与えられていません。

アクセス権の変更については、システム管理者またはこのオブジェクトの作成者に問い合わせてください。


複数の MDI ﾌｫｰﾑは使用できません。(Error 426)

1 つのプロジェクトが持つことのできる MDI フォームは 1 つだけです。このエラーの原因と、その解決方法を次に示します。

MDI フォームを含むファイルを、既に MDI フォームを持つプロジェクトにロードしようとしました。

MDI フォームを含むファイルをロードする場合は、その前に既にロードされているMDI フォームを含むファイルを削除してください。

Dim ステートメントまたは Set ステートメントを使って、MDI フォームの 2 つめのインスタンスをロードしようとしました。

1 つのプロジェクトで生成できる MDI フォームのインスタンスは 1 つだけです。


ｵﾌﾞｼﾞｪｸﾄの種類が不正です。ﾒﾆｭｰ ｺﾝﾄﾛｰﾙが必要です。(Error 427)

PopupMenu メソッドの第 1 引数には、メニュー (Menu) コントロールを指定しなければなりません。このエラーの原因と、その解決方法を次に示します。

PopupMenu メソッドの引数 menuname にメニュー コントロールではないオブジェクトを指定しました。

引数 menuname には、少なくとも 1 つはサブメニューを持つメニュー コントロールの名前を指定してください。


ﾎﾟｯﾌﾟｱｯﾌﾟ ﾒﾆｭｰには少なくとも 1 つのｻﾌﾞﾒﾆｭｰが必要です。(Error 428)

サブメニューを持たないポップアップ メニューを定義しました。このエラーの原因と、その解決方法を次に示します。

サブメニューを 1 つも持たないメニュー (Menu) コントロールを引数 menuname に指定して PopupMenu メソッドを実行しました。

引数 menuname には、少なくとも 1 つはサブメニューを持つメニュー コントロールの名前を指定してください。


この機能を使うためのﾗｲｾﾝｽがありません。 (Error 429)

このカスタム コントロールを使うためのライセンスがありません。このエラーの原因と、その解決方法を次に示します。

デザイン時に、VBX カスタム コントロールをプロジェクトに追加しようとしましたが、関連するライセンス ファイルが見つかりませんでした。

ライセンス ファイル (.LIC) が、削除されたかまたは破損していることが考えられます。カスタム コントロールを再度インストールするか、またはカスタム コントロールのベンダに問い合わせてください。

デザイン時に、OLE カスタム コントロールをフォームに配置しようとしたか、または OLE カスタム コントロールを含むフォームをプロジェクトに追加しようとしましたが、レジストリ (REG.DAT) 内に関連情報がありませんでした。

レジストリ内の情報が削除されたかまたは破損していることが考えられます。カスタム コントロールを再度インストールするか、カスタム コントロールの発売元に問い合わせてください。


ｸﾘｯﾌﾟﾎﾞｰﾄﾞのﾃﾞｰﾀ形式が不正です。 (Error 460)

指定された Clipboard オブジェクトの形式は、実行されているメソッドと互換性がありません。このエラーの原因と、その解決方法を次に示します。

Clipboard オブジェクトの形式が vbCFText または vbCFLink でないデータに対して、GetText メソッドまたは SetText メソッドを実行しようとしました。

無効な形式は削除し、有効な 2 つの形式のどちらかを指定してください。

Clipboard オブジェクトの形式が vbCFBitmap、vbCFDIB、vbCFMetafile のいずれでもないデータに対して、GetData メソッドまたは SetData メソッドを実行しようとしました。

無効な形式は削除し、有効な 3 つのグラフィック形式のいずれかを指定してください。


ﾃﾞｰﾀの形式が一致しません。 (Error 461)

指定された Clipboard オブジェクトの形式は、実行されているメソッドと互換性がありません。このエラーの原因と、その解決方法を次に示します。

Clipboard オブジェクトの形式が vbCFText または vbCFLink でないデータに対して、GetText メソッドまたは SetText メソッドを実行しようとしました。

これらのメソッドを実行する前に、GetFormat メソッドを使って現在の Clipboard オブジェクトの内容が指定する形式と一致するかどうかを調べてください。

Clipboard オブジェクトの形式が vbCFBitmap、vbCFDIB、vbCFMetafile のいずれでもないデータに対して、GetData メソッドまたは SetData メソッドを使おうとしました。

これらのメソッドを実行する前に、GetFormat メソッドを使って現在の Clipboard オブジェクトの内容が指定するグラフィック形式と一致するかどうかを調べてください。


AutoRedraw ｲﾒｰｼﾞを作成できません。(Error 480)

フォームやピクチャの自動再描画に使うための継続表示属性を持つビットマップを生成することができません。このエラーの原因と、その解決方法を次に示します。

メモリ不足で AutoRedraw プロパティを真 (True) に設定することができません。

AutoRedraw プロパティを偽 (False) に設定し Paint イベントが発生したときには手動で再描画を行うか、あるいはピクチャ ボックス (PictureBox) コントロールまたは Form オブジェクトを小さくしてから AutoRedraw プロパティを真 (True) に設定して操作をやり直してください。


ﾋﾟｸﾁｬが不正です。 (Error 481)

無効なグラフィック形式が Picture プロパティに関連付けられています。このエラーの原因と、その解決方法を次に示します。

フォームまたはコントロールの Picture プロパティに、ビットマップ、アイコン、Windows のメタファイル以外のグラフィック形式を割り当てようとしました。

Picture プロパティにロードしようとしているファイルが、有効なビットマップ形式 (.BMP) のファイル、アイコン形式 (.ICO) のファイル、メタファイル (.WMF) 形式のファイルのいずれかであることを確認してください。


ﾌﾟﾘﾝﾀのｴﾗｰです。 (Error 482)

なんらかの問題が発生したため、印刷ができません。このエラーの原因と、その解決方法を次に示します。

Windows のコントロール パネルで設定したプリンタがありません。

コントロール パネルでプリンタを追加してください。

プリンタがオンラインになっていません。

プリンタの電源を入れ、オンラインにしてください。

プリンタが使用中であるか、プリンタ用紙がありません。

プリンタを調べてください。

テキストしか印刷できないプリンタでフォームを印刷しようとしました。

グラフィックも印刷できるプリンタに切り替えてください。


ﾌﾟﾘﾝﾀ ﾄﾞﾗｲﾊﾞは指定されたﾌﾟﾛﾊﾟﾃｨをｻﾎﾟｰﾄしていません。(Error 483)

使用中のプリンタのプリンタ ドライバでは、Printer オブジェクトのこのプロパティはサポートされていません。このエラーの原因と、その解決方法を次に示します。

Printer オブジェクトの各種プロパティの効果は、プリンタの製造業者が供給するドライバに依存しています。そのため、設定しても効果のないプロパティがあったり、プロパティの複数の設定値がすべて同じ効果しか持たない場合もあります。許容範囲を超えた設定値を指定した場合でも、エラーが発生することも発生しないこともあります。

詳細については、使用しているドライバのマニュアルを参照してください。


ｼｽﾃﾑからﾌﾟﾘﾝﾀ情報を受けるときに問題が発生しました。ﾌﾟﾘﾝﾀが正しく設定されているかを確かめてください。(Error 484)

なんらかの問題が発生したため、システムからプリンタの情報を取得することができません。このエラーの原因と、その解決方法を次に示します。

Windows のコントロール パネルで設定したプリンタがありません。

コントロール パネルでプリンタを追加してください。

プリンタがオンラインになっていません。

プリンタの電源を入れ、オンラインにしてください。

プリンタが使用中であるか、プリンタ用紙がありません。

プリンタを調べてください。


ﾋﾟｸﾁｬの形式が不正です。 (Error 485)

ロードしようとしたリソース ファイルのピクチャ形式が、オブジェクトの指定されたプロパティと一致しません。このエラーの原因と、その解決方法を次に示します。

LoadResPicture メソッドを使って、ビットマップ リソースをフォームの Icon プロパティとしてロードしようとしました。

フォームのプロパティを Picture プロパティに変更するか、LoadResPicture メソッドの引数 format を vbResIcon に変更してください。

LoadResPicture メソッドを使い、カーソル リソースをオブジェクトかコントロールの MousePointer プロパティ以外のプロパティとしてロードしようとしました。

プロパティを MousePointer プロパティに変更してください。


ｸﾘｯﾌﾟﾎﾞｰﾄﾞを空にできません。(Error 520)

Clipboard オブジェクトは開かれていますが、空にすることができませんでした。このエラーの原因と、その解決方法を次に示します。

他のアプリケーションが Clipboard オブジェクトを使っており、このアプリケーションで使えるように解放していません。

コード内でこのエラーに対するエラー トラップを設定し、[再試行] ボタンと [キャンセル] ボタンを含むメッセージ ボックスを表示して、ユーザーがしばらくしてから操作をやり直せるようにしてください。


ｸﾘｯﾌﾟﾎﾞｰﾄﾞを開けません。 (Error 521)

Clipboard オブジェクトは、既に他のアプリケーションで開かれています。このエラーの原因と、その解決方法を次に示します。

他のアプリケーションが Clipboard オブジェクトを使っており、このアプリケーションで使えるように解放していません。

コード内でこのエラーに対するエラー トラップを設定し、[再試行] ボタンと [キャンセル] ボタンを含むメッセージ ボックスを表示して、ユーザーがしばらくしてから操作をやり直せるようにしてください。


ﾃﾞｰﾀ連結 DLL 'item' は、ﾛｰﾄﾞできません。 (Error 523)

このデータは、DLL からロードできません。


'item' (Error 524)

このエラーは、現在実行中の OLE オートメーション オブジェクト内で発生しました。


ﾃﾞｰﾀ ｱｸｾｽ ｴﾗｰです。 (Error 525)

トラップが設定されていないデータ アクセス オブジェクト エラーが発生しました。


与えられたﾌﾞｯｸﾏｰｸは不正です。 (Error 527)

ブックマークに無効な文字列を設定しようとしました。このエラーの原因と、その解決方法を次に示します。

レコードの Bookmark プロパティから取得して保存した文字列ではない文字列を Bookmark プロパティに設定しました。

Bookmark プロパティには、保存しておいた文字列を設定するようにしてください。

レコードの Bookmark プロパティから取得して保存した文字列を Bookmark プロパティに設定しましたが、そのレコードは削除されていました。

Bookmark プロパティを保存しておいたレコードに移動する前に、そのレコードがまだ存在するかどうか調べてください。


ﾃﾞｰﾀﾍﾞｰｽをﾛｯｸできません。(Error 536)

データベース ファイルをロックできませんでした。このエラーの原因と、その解決方法を次に示します。

SHARE.EXE ファイルがロードされていません。

SHARE.EXE をロードしてください。ロードするには、SHARE.EXE /L:500 という行を AUTOEXEC.BAT ファイルに追加してから、システムを再起動します。再起動したら、操作をやり直してください。

開かれているテーブルをロックしようとしましたが、そのテーブルは使用中だったためロックできませんでした。

しばらくしてから、同じ操作をやり直してください。

他のユーザーがロックしているレコードをロックしようとしました。

そのユーザーがレコードの操作を終えるのを待ってから、同じ操作をやり直してください。


要求された列を参照することはできません。(Error 537)

コード内で指定された列番号にアクセスできませんでした。このエラーの原因と、その解決方法を次に示します。

存在しない列にアクセスしようとしました。

まず Cols プロパティを使って列番号の設定や取得を行ってから、その範囲内にある列番号だけを参照するようにしてください。


ﾃﾞｰﾀﾍﾞｰｽをﾛｯｸできません。(Error 541)

データベース ファイルをロックできませんでした。このエラーの原因と、その解決方法を次に示します。

SHARE.EXE ファイルがロードされていません。

SHARE.EXE をロードしてください。ロードするには、SHARE.EXE /L:500 という行を AUTOEXEC.BAT ファイルに追加してから、システムを再起動します。再起動したら、操作をやり直してください。

開かれているテーブルをロックしようとしましたが、そのテーブルは使用中だったためロックできませんでした。

しばらくしてから、同じ操作をやり直してください。

他のユーザーがロックしているレコードをロックしようとしました。

そのユーザーがレコードの操作を終えるのを待ってから、同じ操作をやり直してください。


更新開始後、行が削除されています。(Error 542)

レコードを更新しようとしましたが、そのレコードは既に削除されていて更新できませんでした。このエラーの原因と、その解決方法を次に示します。

レコードの編集中に、Recordset オブジェクトの LockEdits プロパティが偽 (False) (共有的ロック) に設定されていたため、更新処理前に他のユーザーによってそのレコードは削除されました。

LockEdits プロパティを真 (True) (排他的ロック) に設定してください。


'Item' は上書き禁止ﾌｧｲﾙです。

上書き禁止 (読み取り専用) のファイルに対して変更内容を保存しようとすると、このメッセージが表示されます。プロジェクト ウィンドウ内では、上書き禁止のファイルは、左上の隅に赤いロックを付けて表示されます。上書き禁止のファイルの場合、変更内容を [ファイルの上書き保存] コマンドで保存することはできません。[名前を付けてファイルの保存] コマンドを使ってください。


式を選択してください。

[インスタント ウォッチ] コマンドを使う場合、変数、式、またはプロパティの参照を前もって選択しておく必要があります。なお、コード ウィンドウ内で目的の変数にカーソルを置いてから [インスタント ウォッチ] コマンドを実行すれば、その変数が選択されます。


[元に戻す] ｺﾏﾝﾄﾞでｴﾗｰが発生しました。これ以上元に戻せません。

[編集] - [元に戻す] コマンドおよび[編集] - [繰り返し] コマンドが実行できません。[元に戻す] コマンドおよび [繰り返し] コマンド用のバッファが共にフラッシュされてしまっているため、過去の編集操作を元に戻したり、やり直したりすることはできません。このメッセージが表示された後は、編集操作が記録され、元に戻したり、やり直したりすることが可能になります。


複数のｳｨﾝﾄﾞｳ ﾘｽﾄ ﾒﾆｭｰは設定できません。

複数のメニュー項目に対して [ウィンドウ リスト] チェック ボックスをオンにしてから [OK] ボタンを選択してダイアログ ボックスを閉じようとすると、このメッセージが表示されます。[ウィンドウ リスト] チェック ボックスをオンにできるのは、各フォームにつき 1 つのメニュー項目だけです。この設定を行うには、メニュー エディタを使用してください。


Align ﾌﾟﾛﾊﾟﾃｨを持たないｺﾝﾄﾛｰﾙは直接 MDI ﾌｫｰﾑに配置することはできません。

Align プロパティをサポートしていない標準のコントロールをダブルクリックして MDI フォームに配置しようとすると、このメッセージが表示されます。標準のコントロールのうち、MDI フォーム上に配置できるのはピクチャ ボックス (PictureBox) コントロールだけです。ピクチャ ボックスは、MDI 親フォーム内で MDI 子フォームを最大化する場合でも、子フォームに覆われることはありません。

良い使用例: MDI フォームを新規作成し、ピクチャ ボックス コントロールをダブルクリックする。

悪い使用例: MDI フォームを新規作成し、テキスト ボックス (TextBox) コントロールをダブルクリックする。


ﾌﾟﾛｼｰｼﾞｬ名が重複しています。

ある複数のバージョンのプロシージャを同じ名前で定義した場合、または定義しようとした場合にこのメッセージが表示されます。プロシージャのいずれかのバージョンの名前を変更してください。同じプロシージャの各バージョンの Declare ステートメントには、必ず同一の Alias 節を記述してください。


この型には New を使えません。

この種類のオブジェクトでは、自動インスタンス生成はサポートされていません。そのオブジェクトに対してキーワード New を使うことはできません。

良い使用例: Dim x as new form1

悪い使用例: Dim x as new Textbox1

Visual Basic Standard Edition で、キーワード New を使用できるのは、フォーム タイプの特定のインスタンスだけです (Form1 など)。総称クラスである Form オブジェクトおよび MDIForm オブジェクト、またはコントロール型に対してキーワード New を使うことはできません。Visual Basic Professional Edition および Enterprise Edition では、一部のオブジェクトに対してキーワード New が使用できます。


区分線をｳｨﾝﾄﾞｳ ﾘｽﾄに設定できません。

ウィンドウ メニューは、ポップアップ メニューに対応できるメニュー項目 (サブメニューを定義できるメニュー項目) でなければなりません。区分線には、サブメニューを定義することはできません。


有効な範囲: [1..32]

[タブ間隔] ボックスに許容範囲を超える値を設定しようとすると、このメッセージが表示されます。このフィールドに対して有効な値は、1 ～ 32 の範囲の数です。


有効な値の範囲は 30 ～ 1185 です。

[横間隔] ボックスまたは [縦間隔] ボックスに許容範囲を超える値を設定しようとすると、このメッセージが表示されます。これらのフィールドに対して有効な値は、30 ～ 1185 の範囲の数です。


ｳｫｯﾁ式が長すぎるので式を切り捨てます。

ウォッチ式の文字数は、64 文字以内に制限されます。64 文字を超えるウォッチ式を入力した場合でも式の評価は行われますが、式を編集しようとすると式は長さが 64 文字になるように切り捨てられます。


読み込み中のｴﾗｰです。 'item' を参照してください。

ASCII 形式のフォーム ファイルの内容にエラーが検出されました。検出されたエラーを詳しく説明するログ ファイルが Visual Basic によって作成されています。ログ ファイルを調べれば、どの程度重大なエラーが検出されたかを判別することができます。このようなエラーには、無視しても特に問題にならないエラー (“ﾊﾞｰｼﾞｮﾝ番号がないか不正です。”など)、およびフォームを期待どおりに実行できなくなるエラー (“ｸﾗｽ MyClass (ｺﾝﾄﾛｰﾙ MyControl) はﾛｰﾄﾞされていません。”など) があります。


文字列が長すぎるため処理できません。ﾌｫｰﾑの読み込みを中止します。

ロードしようとしたフォームに長すぎて処理できない文字列があるため、フォームのロードが中止されました。


ﾊﾞｰｼﾞｮﾝ番号がないか不正です。ﾊﾞｰｼﾞｮﾝ 4.0 とみなします。

バージョン番号が見つからなかったか、または認識できないバージョンが指定されています。ASCII 形式のフォーム ファイルの先頭行が空白行やコメント行になっておらず、Version 4.00 を示していることを確認してください。


行 'item1': ﾌｧｲﾙ 'item2' が読み込めません。

構文エラーのため、解析およびロードが実行できないか、または、フォーム名が競合しているため ASCII 形式のフォーム ファイルをロードできない場合にこのメッセージが表示されます。この場合、フォームはロードされず、プロジェクト ウィンドウにも表示されません。

エラーが発生したフォームが有効な ASCII 形式のフォーム ファイルであり、記述形式の間違いがないこと、および、プロジェクト内でフォーム名の競合が発生していないことを確認してください。ASCII 形式のフォーム ファイルの正しい記述形式を次に示します。

Version 4.00

Begin VB.Form <formname>

Form Properties

Begin VB.<controltype> <controlname>

prop = value

prop = value

[...]

Control Properties

Begin VB.<control type> <control name>

prop = value

[...]

Begin ...

[...]

End

End

End

End


''Item' を読み込むことはできません。

構文エラーのため、解析およびロードが実行できないか、または、フォーム名が競合しているため、ASCII 形式のフォーム ファイルをロードできない場合にこのメッセージが表示されます。この場合、フォームはロードされず、プロジェクト ウィンドウにも表示されません。

エラーが発生したフォームが有効な ASCII 形式のフォーム ファイルであり、記述形式の間違いがないこと、および、プロジェクト内でフォーム名の競合が発生していないことを確認してください。ASCII 形式のフォーム ファイルの正しい記述形式を次に示します。

Version 4.00

Begin VB.Form <formname>

Form Properties

Begin VB.<controltype> <controlname>

prop = value

prop = value

[...]

Control Properties

Begin VB.<control type> <control name>

prop = value

[...]

Begin ...

[...]

End

End

End

End


置換処理が中止されました。

置換処理を行った結果、ステートメントに構文エラーが発生したため、置換処理が中止されました。


使用中のｺﾝﾄﾛｰﾙまたは参照を削除することはできません。

[参照設定] ダイアログ ボックスには利用可能なカスタム コントロールや参照のリストが表示されますが、このリストから削除しようとしたカスタム コントロールまたは参照がプロジェクト内のフォームのいずれかによって既に使用されている場合、このメッセージが表示されます。コントロールまたは参照をフォームから削除したうえでリストから選択を解除してください。


ｽﾀｰﾄｱｯﾌﾟ ﾌｫｰﾑまたは Sub Main() が必要です。

カレント プロジェクトにスタートアップ フォームが指定されていない、または、カレント プロジェクトのどのモジュールにも Main という名前の Sub プロシージャが含まれていません。Visual Basic アプリケーションを実行するには、スタートアップ フォームまたは Sub Main() プロシージャが必要です。


ﾃﾝﾎﾟﾗﾘ ﾌｧｲﾙに保存できません。

環境変数 TEMP で指定されたディレクトリに書き込むことができません。環境変数 TEMP に有効なディレクトリが設定されていること、および、ディスクに十分な空き容量があることを確認してください。


ﾌｧｲﾙの読み込みができません: 'item'

VBCBT.HLP ファイルが壊れています。VBCBT.HLP を再セットアップするには、Visual Basic のセットアップ ディスクを使用してください。


ﾊﾟｽが見つかりません: 'item'

VBCBT.HLP ディレクトリ (VB.CBT) が見つかりませんでした。VBCBT.HLP をセットアップするには Visual Basic のセットアップ ディスクを使用してください。


行が長いため置き換えることができません。

コードの 1 行の長さは 1,023 文字以内に制限されますが、置換処理の結果、1 行の長さが 1,023 文字を超えてしまう場合には、このメッセージが表示されます。このメッセージが表示された場合でも、1,023 文字以内に収まる行に対しては、置換処理が既に完了しています。置換が行われなかった箇所を [検索] コマンドで検索して、長すぎるステートメントを複数の行に分割してください。


置換中に構文ｴﾗｰが発生しました。

置換処理の結果、コード内に構文エラーが発生したため、置換処理が中断されました。[実行] - [再実行] コマンドを選択すると、どの箇所に構文エラーがあるかを確認できます。


Windows ﾍﾙﾌﾟの EXE ﾌｧｲﾙが見つかりません。

Windows ヘルプ アプリケーションが利用できません。WINHELP.EXE がマシンにセットアップされている場合は、正しいパスにセットアップされているかどうかを確認してください。セットアップされていない場合は、Microsoft Windows セットアップを実行して WINHELP.EXE をセットアップしてください。


ﾌﾟﾛｼｰｼﾞｬ名が無効です。

プロシージャ名に予約キーワードを使うことはできません。また、プロシージャ名の先頭の文字はアルファベット文字でなければなりません。同じ適用範囲内のプロシージャには、それぞれ一意の名前を付ける必要があります。プロシージャ名の長さは 256 文字以内に制限されます。プロシージャ名には英数字およびアンダースコア (_) が使えます。Function プロシージャの名前には型宣言文字を含めることができます。ただし、Sub プロシージャの名前に型宣言文字を含めることはできません。


検索文字列が指定されていません。

検索対象の文字列が指定されていません。[編集] - [検索] コマンドまたは [編集] - [置換] コマンドを選択し、ダイアログ ボックスの [検索する文字列] ボックスに文字列を入力してください。


この行の長さを超える貼り付けはできません。

Visual Basic コードでは、1 行の長さは 1,023 文字以内に制限されます。長すぎる行を個々のステートメントに分割する、または、式を変数に代入するなどの処置を取ってください。


次のｽﾃｰﾄﾒﾝﾄを設定できません。

カレント プロシージャの外にあるステートメントを次のステートメントとして設定しようとすると、このメッセージが表示されます。[実行] - [次のステートメントの設定] コマンドは、カレント プロシージャ内でのみ有効です。


検索文字列が見つかりませんでした。

検索対象の文字列が見つかりませんでした。[検索] ダイアログ ボックスおよび [置換] ダイアログ ボックスの [対象] グループ ボックスには、検索範囲を設定するチェック ボックスがあります。[カレント モジュール] チェック ボックスをオンにするとカレント モジュールが検索対象になり、[カレント プロジェクト] チェック ボックスをオンにするとカレント プロジェクトが検索対象になります。


このｲﾝﾃﾞｯｸｽ 'item' は既に使われています。

次のような原因が考えられます。

インデックスの値を、このコントロール配列の中で既に使われている数値に変更しようとすると、このエラーが発生します。どのインデックスが既に割り当てられているかを確認するには、各コントロール配列要素のプロパティ ウィンドウで Index プロパティを選択してください。

配列に含まれるコントロールの Name プロパティを、このインデックス値が既に使われているコントロール配列の名前に変更しようとすると、このエラーが発生します。


ｵﾌﾞｼﾞｪｸﾄ名が不正です: 'item'

フォーム名およびコントロール名は、先頭にアルファベット文字を使用する必要があり、長さは 40 文字以内に制限されます。英数字およびアンダースコア (_) が使用できます。

フォームやコントロールの Name プロパティを各ラベル プロパティ (Caption、Text、および Value の各プロパティ) と混同しないように注意してください。ラベル プロパティは、実行時にコントロールにラベルを付けたり、コントロールの内容を表示したりするためのもので、予約キーワードと同じ文字列を使うことができ、先頭に数字を使用してもよく、また、英数字以外の文字を含めることもできます。


印刷する対象を指定してください。

印刷対象が指定されていません。[ファイル] - [印刷] ダイアログ ボックスで [フォーム] チェック ボックスおよび [コード] チェック ボックスのいずれか一方または両方を必ずオンにしてください。


'Item' はﾌｫｰﾑ名として使われています。

この名前は既にフォーム名として使われています。プロジェクト ウィンドウには、カレント プロジェクトで使われているフォーム名のリストが表示されます。このリストを調べれば、どのフォームの名前と重複しているかを確認できます。なお、コントロールには、同一プロジェクト内のフォームに使われている名前と同じ名前を付けることはできません。


'Item' はｼｽﾃﾑ ｵﾌﾞｼﾞｪｸﾄの名前です。

Screen、Clipboard、および Printer の各オブジェクトは、システム オブジェクトの名前です。フォーム名やコントロール名として使うことはできません。


ｲﾍﾞﾝﾄ ﾌﾟﾛｼｰｼﾞｬは Sub ﾌﾟﾛｼｰｼﾞｬでなければなりません。

Form_Click などのイベント プロシージャは、Sub プロシージャとして定義する必要があります。Function プロシージャとして定義することはできません。


ｲﾍﾞﾝﾄ ﾌﾟﾛｼｰｼﾞｬの引数の数が違います。

次のような原因が考えられます。

コントロール配列のイベント プロシージャの定義には、Command1_Click (index as Integer) のように引数 index を含める必要があります。ただし、コントロール配列以外のイベント プロシージャの定義には、index を含めることはできません。コントロールの Index プロパティを調べてください。Index プロパティの値が Null 値でなければ、そのコントロールはコントロール配列の一部として扱われます。

コントロールのイベント プロシージャを記述した後で、そのコントロールをコントロール配列の一部として定義した場合、インデックスを追加する必要が生じます。また、コントロールのイベント プロシージャを記述した後で、そのコントロールをコントロール配列から削除した場合は、インデックスを削除する必要が生じます。いずれの場合も、インデックスを修正しないでおくと、引数の数が一致しなくなるため、このエラーが発生します。コード ウィンドウでイベント プロシージャの引数 index を追加するか、または削除してください。

イベント プロシージャ定義の引数を追加または削除した場合にも、このエラーが発生することがあります。イベント プロシージャの正しい構文を確認するには、対象となるイベントのヘルプ トピックを参照してください。


ｲﾍﾞﾝﾄ ﾌﾟﾛｼｰｼﾞｬの引数のﾃﾞｰﾀ型が違います。

イベント プロシージャの引数のデータ型が変更され、新しいデータ型が元のイベント プロシージャ定義で指定されているデータ型に一致しなくなりました。引数のデータ型を元のデータ型に戻してください。なお、引数の正しいデータ型を確認するには、ヘルプの [検索] コマンドを使って、目的のイベント プロシージャの名前を探してください。


ﾒﾆｭｰ名にはｼｮｰﾄｶｯﾄ ｷｰを割り当てられません。

コマンドではない親メニュー項目や最上位のメニュー項目にショートカット キーを割り当てようとすると、このメッセージが表示されます。ショートカット キーを割り当てることができるのは、コマンドだけです。


ﾒﾆｭｰ名に区分線は使えません。

親メニュー項目や最上位のメニュー項目の名前に区分線を使おうとすると、このメッセージが表示されます。親メニュー項目や最上位のメニュー項目の名前は、テキストでなければなりません。


このｼｮｰﾄｶｯﾄ ｷｰは、既に使われています。

設定したショートカット キーが他のメニュー項目に既に割り当てられている場合、このメッセージが表示されます。別のショートカット キーを割り当ててください。


区分線をﾁｪｯｸしたり無効にしたり、ｼｮｰﾄｶｯﾄ ｷｰを設定することはできません。

メニューの区分線を修正しようとすると、このメッセージが表示されます。区分線は、メニュー項目の表示を整えて見やすくするためのもので、有効にも無効にも設定できません。チェック マークやショートカット キーを設定することもできません。ただし、区分線の Visible プロパティを偽 (False) に設定することは可能です。


ｻﾌﾞﾒﾆｭｰは、1 つ以上のｻﾌﾞﾒﾆｭｰ項目を表示する必要があります。

サブメニュー項目が 1 つだけ表示された状態で残っているとき、そのサブメニュー項目の Visible プロパティを偽 (False) に設定することはできません。親メニューに含まれるサブメニューをすべて非表示にすることはできません。


終了できません。

Visual Basic がコードを実行しているときや中断モードのときには、Windows を終了することはできません。また、ダイアログ ボックスやメッセージ ボックスが表示されているときにも、Windows を終了することはできません。


ｺﾏﾝﾄﾞ ﾗｲﾝ引数 'item' が不正です。

Visual Basic を起動するときにコマンド ラインに指定した引数が無効です。コマンド ラインで有効なのは、以下に示す引数です。

/run  ProjectName

FileName

/cmd  command-line argument


ｺｰﾄﾞ ｳｨﾝﾄﾞｳを閉じて、ﾌﾟﾛｸﾞﾗﾑを初期化しますか?

[OK] ボタンを選択すると、コード ウィンドウが閉じ、プログラムが再び初期化されます。[キャンセル] ボタンを選択すると、プログラムが継続して実行されます。


'item' の内容は変更されています。保存しますか?

このファイルは、前回保存を行ったときから変更されています。ファイルを保存してから閉じるには [はい] ボタンを選択し、ファイルを保存せずに閉じるには [いいえ] ボタンを選択してください。ファイルを閉じない場合は、[キャンセル] ボタンを選択してください。


ｽﾀｯｸ領域の不足で中断ﾓｰﾄﾞに入れません。継続しますか?

スタック領域の不足で現在の状態を保存できないため、中断モードに入ることができません。[OK] ボタンを選択すると、プログラムが継続して実行されます。[キャンセル] ボタンを選択すると、プログラムが再び初期化され、デザイン モードに戻ります。


ｽﾀｯｸ領域の不足でｴﾗｰによる中断ﾓｰﾄﾞに入れません。ﾌﾟﾛｸﾞﾗﾑを再起動してください。

スタック領域の不足で現在の状態を保存できないため、中断モードに入ることができません。プログラムを再起動するか、または終了してください。


ｶﾚﾝﾄ行が長いため、制限を越える文字が省略されます。このまま編集しますか?

カレント行の長さは、Visual Basic のコード エディタで処理できる長さを超えています。コード ウィンドウに 1 行のコードを入力した後で、行内のアイテムの間に余分なスペースが挿入され、その結果として、行の長さが 1,023 文字の制限を超えることがあります。Visual Basic では、このような行でも読み取ることは可能ですが、編集操作を行うと、行の末尾から 1,023 文字を超える文字が切り捨てられます。

この行を保存する必要がある場合は、いったん [File] - [Save File] コマンドでファイルに保存してから、別のエディタを使って行を複数行に分割するか、または、いくつかの式を中間的な変数に代入してください。


ﾓｼﾞｭｰﾙが変更されています。ﾌﾟﾛｸﾞﾗﾑを再起動してください。

現在の変更内容をプログラムに反映させるには、プログラムを再起動する必要があります。


検索が終了しました。

検索対象のテキストがすべて検索されました。検索されなかった箇所がある場合は、[検索] ダイアログ ボックスまたは [置換] ダイアログ ボックスで正しいオプションを指定しているかどうかを確認してください。


既に同じ名前のｺﾝﾄﾛｰﾙ 'item' があります。ｺﾝﾄﾛｰﾙ配列にしますか?

コントロールの Name プロパティに設定しようとした名前またはフォームに貼り付けようとしたコントロールの名前が、既存のコントロールの名前と重複しています。

[はい] ボタンを選択すると、コントロール配列が作成されます。新規作成したコントロール配列の要素の Index プロパティには、同じ名前で前回作成したコントロールよりも 1 つ大きい値が設定されます。[いいえ] ボタンを選択すると、コントロール配列は作成されません。コントロールを貼り付ける場合は、そのコントロールの名前が Visual Basic によって自動的に生成されます。


'item' 読み込み中のｴﾗｰです。ﾌﾟﾛﾊﾟﾃｨを読み込めません。続けますか?

追加しようとしたフォームの名前またはコントロールの名前が、既存のフォームまたはコントロールの名前と重複しています。


'item' 読み込み中のｴﾗｰです。ｺﾝﾄﾛｰﾙを読み込めません。続けますか?

このエラー メッセージは、なんらかのエラーが発生し、そのエラーに対して適切な処置を取った後で表示されます。コントロールをロードするには [はい] ボタンを選択し、コントロールのロードを取り消すには [いいえ] ボタンを選択してください。


'item' に置き換えますか?

指定した名前と同じ名前のファイルが存在します。[はい] ボタンを選択すると、そのファイルが現在のファイルに置き換えられます。[キャンセル] ボタンを選択すると保存処理が中止されます。


'Item' がありません。

指定したディレクトリおよびファイル名に一致するファイルが見つかりませんでした。ディレクトリとファイル名を共に正しく指定しているかどうかを確認してください。


ﾌﾟﾛｼﾞｪｸﾄ中に 'Item' が既に存在します。

指定したファイル名は、既にプロジェクトに含まれています。同じプロジェクトに同じ名前のファイルを複数追加することはできません。プロジェクト内で同じ名前のファイルを別のファイルとして保存することもできません。


ﾌｧｲﾙ 'Item' は古いﾌｫｰﾏｯﾄで作成されています。保存する場合は、新しいﾌｫｰﾏｯﾄに変更されます。

このファイルは、古いバージョンの Visual Basic で作成されています。保存時には、Visual Basic Version 4.0 のファイル形式に書き換えられることになります。


'item' 読み込み中のｴﾗｰです。このﾌｫｰﾑ中のｺｰﾄﾞは読み込めません。続けますか?

このフォーム ファイルのコードは、Visual Basic にロードできません。コードをロードしないでフォームをロードするか、または、ロードを中止することができます。


検索文字列が長すぎます。

検索対象の文字列が長すぎます。文字列を短くしてから、検索を実行してください。


ｼｽﾃﾑ固定ﾋﾟｯﾁ ﾌｫﾝﾄがありません。

システム固定ピッチ フォントが要求されたにもかかわらず、固定ピッチでないフォントが返されました。フォント ドライバやディスプレイ ドライバが正しくセットアップされていない可能性があり、場合によっては Microsoft Windows の再インストールが必要になります。


互換性のないﾊﾞｰｼﾞｮﾝが生成されました: 'item'

ロードしようとしたプログラム ファイルは、Visual Basic の現在のバージョンと互換性がありません。このエラーは、壊れたバイナリ ファイルや、現在のバージョンでサポートされていないバージョンで作成されたバイナリ ファイルをロードしようとしたときに発生します。


ﾌﾟﾛｼﾞｪｸﾄ中のﾌｧｲﾙが変更されています。変更を保存しますか?

プロジェクト内のファイルの中に、プロパティの設定またはコードのステートメントの変更後に保存されていないファイルがあります。他のプロジェクトをロードする前に保存しておかなければ、変更は破棄されます。


ﾃｷｽﾄが長いため編集できません。

カレント行は、長すぎて編集できません。行の最大の長さはその時の Visual Basic の状態によって変わりますが、およそ 1023 文字です。

長い文字列を扱うときは通常、文字列変数を使いテキストを連結して順次長くする方法をお勧めします。


ﾌﾟﾛｼｰｼﾞｬ名が重複しています。

この名前のプロシージャは既に存在しています。[編集] - [検索] コマンド (または Shift + F2 キー) を使って同じ名前のプロシージャの場所を検索してください。型宣言文字がある場合は、この操作を行う前にそれを削除してください。そうしなければ、名前が同じで型宣言文字が異なっていた場合に競合が発生してしまいます。


1 つのｺﾝﾄﾛｰﾙ配列の要素は同じ型でなければなりません。

コントロールの Name プロパティの設定を、このコントロールとは違う型の既存のコントロール配列と同じ名前にしようとしました。1 つのコントロール配列内のコントロールはすべて同じ型でなければなりません。


ｺﾝﾄﾛｰﾙ配列の Index ﾌﾟﾛﾊﾟﾃｨは削除できません。削除するには名前を変更してください。

このコントロールはコントロール配列に属しています。このコントロールのインデックス値を削除すると、コントロールがコントロール配列から削除されてしまいます。インデックス値を削除したい場合、まず Name プロパティを設定してコントロール名を固有の名前に変更してください。


Item' はｺﾝﾄﾛｰﾙ名です。

この名前を持つコントロールが既に存在します。フォームの名前を、同じプロジェクト内のコントロール名と同じにすることはできません。


ﾒﾆｭｰ項目の階層が不正です。

メニュー レベルは連続した数値でなければなりません。メニューの階層は最大 5 レベルまでです。レベル 2 の項目から開くことができるのはレベル 3 のポップアップ メニューで、レベル 3 の項目から開くことができるのはレベル 4 のポップアップ メニューです。

[メニュー エディタ] ダイアログ ボックスでは、必ずメニュー項目のレベルは 1 つ前のレベルと 1 つだけ違うものになるようにしてください。


ｺﾝﾄﾛｰﾙ名が必要です。

メニュー項目を名前を付けずに作成しました。Visual Basic のその他のコントロールと違って、メニュー (Menu) コントロールには作成時に必ず名前を付けておかなければなりません。メニュー項目には既定の名前が設定されません。


ﾒﾆｭｰ ｺﾝﾄﾛｰﾙ配列にはｲﾝﾃﾞｯｸｽ番号が必要です。

インデックス値が設定されていない項目が、メニュー (Menu) コントロール配列に追加されました。Visual Basic のその他のコントロール配列と違って、メニュー コントロール配列には生成時にインデックスを設定しておかなければなりません。メニュー コントロール配列の項目には既定の Index プロパティの値が設定されません。


ｺﾝﾄﾛｰﾙ配列のｲﾝﾃﾞｯｸｽ番号は必ず昇順でなければなりません。

メニュー (Menu) コントロール配列の項目に設定されたインデックス値が、他の項目に対して適切に設定されていません。メニュー コントロール配列のインデックスは連続している必要はありません (たとえば、1、3、5 のようになっていてもかまいません) が、メニューの位置に対応して増加していかなければなりません。インデックスに値を設定する前に、設定可能な次のインデックス番号を調べてください。


ﾒﾆｭｰ ｺﾝﾄﾛｰﾙ配列の要素は、同一のｻﾌﾞﾒﾆｭｰ内で連続させてください。

カレント項目の隣に、すでに配列内の他の項目が存在するメニュー (Menu) コントロール配列に、項目を追加しようとしました。メニュー コントロール配列での項目のインデックスは連続している (たとえば、2、3、4 のように) 必要はありませんが、メニューの位置に対応して増加する必要があります。一方、メニュー コントロール配列内の項目は、1 つのメニューあるいはポップアップ メニューの中では互いに隣り合っている必要があります。


EXEName プロパティ

対象

現在実行中の実行可能ファイルの拡張子を除いたファイル名を返します。開発環境で実行している場合は、プロジェクトの名前を返します。

構文

object.EXEName

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。


EXEName プロパティの対象

App オブジェクト


ﾒﾓﾘが足りません。(31001)

指定された操作に対して必要なメモリまたはディスク容量の割り当て、またはアクセスができませんでした。


位置情報

選択されたフォームまたはコントロールの、コンテナに対する相対的な位置を示す単位です。フォームの場合、常に位置は twip 単位で示されます。コントロールの場合、位置はコンテナの ScaleMode プロパティで指定された単位で示されます。


サイズ情報

選択されたフォームまたはコントロールのサイズを示す単位です。フォームの場合、常にサイズは twip 単位で示されます。コントロールの場合、サイズはコンテナの ScaleMode プロパティで指定された単位で示されます。


[ピクチャの読み込み]、[アイコンの読み込み] ダイアログ ボックス

関連項目

既存のピクチャ ファイルまたはアイコン ファイルを読み込みます。

ダイアログ ボックスのオプション

[ファイル名] ボックス

ファイル名を入力するか、またはファイルの一覧から選択します。

[ファイルの場所] ボックス

リストからフォルダ ディレクトリを選択します。現在のパスと異なる場合、ファイルの格納されているドライブまたはディレクトリを選択します。

[ファイルの種類] ボックス

リストからファイルの種類を選択します。

[すべてのピクチャ ファイル] を選択すると、すべてのピクチャ ファイルが表示されます。

[ビットマップ (*.Bmp, *.Dib)] を選択すると、ビットマップ ファイルと DIB ファイルが表示されます。

[メタファイル (*.Wmf, *.Emf)] を選択すると、Microsoft Windows のメタファイルが表示されます。

[すべてのファイル (*.*)] を選択すると、すべての種類のファイルが表示されます。

[開く] ボタン

選択されたファイルを読み込みます。

[キャンセル] ボタン

ピクチャ ファイルまたはアイコン ファイルを読み込まないで、ダイアログ ボックスを閉じます。


関連項目

Icon プロパティ

Picture プロパティ


コントロール

関連項目

コントロールは、Form オブジェクトに描画するオブジェクトです。このコントロールによって、ユーザーとアプリケーションのやり取りを実現したり、拡張することができます。メニュー コントロールをフォームに追加するには、メニュー エディタを使用します。他のコントロールはツールボックスに表示されます。ツール ボックスに表示されているコントロールをダブルクリックするか、またはクリックしてからフォーム上にドラッグすると、コントロールをフォームに配置できます。

解説

コントロールを使用すると、ユーザーの入力の受け取りまたは出力の表示を行うことができます。コントロールの位置、サイズ、色などの外観を定義したり、ユーザーからの入力に対する応答などの動作を定義するには、コントロールのプロパティを使用します。

また、コントロールを使用すると、ユーザーが呼び出したイベントまたはシステムが発生させたイベントに対して応答させることができます。たとえば、コマンド ボタン (CommandButton) コントロールの Click イベント プロシージャに、ファイルを読み込むコード、計算を行って結果を表示するコードなどを記述できます。

プロパティおよびイベントと同じように、メソッドを使用してコードでコントロールを操作することもできます。たとえば、いくつかのコントロールに対して Move メソッドを使用し、コントロールの位置とサイズを変更することができます。

各コントロールには、それぞれ独自のプロパティ、イベント、メソッドがあります。

キーワード Control はオブジェクト型を示します。このキーワードを使用すると Control オブジェクト型の変数を宣言して特定の種類のコントロールに設定できます。プロシージャのパラメータを Control オブジェクト型として宣言することもできます。

グラフィカル コントロールには、イメージ (Image)、ラベル (Label)、ライン (Line)、およびシェイプ (Shape) の各コントロールがあります。グラフィカル コントロールは、ほかのコントロールと比べてシステム リソースの使用が少なく、描画や表示の特性も異なります。

ツールボックスには 26 個の標準コントロールがあります。

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

コモン ダイアログ (CommonDialog) コントロール

データ (Data) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

ライン (Line) コントロール

リスト ボックス (ListBox) コントロール

メニュー (Menu) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

シェイプ (Shape) コントロール

テキスト ボックス (TextBox) コントロール

タイマー (Timer) コントロール

垂直スクロール バー (VScrollBar) コントロール


 関連項目

ActiveControl プロパティ

ActiveForm プロパティ

Controls コレクション

メニュー バーの作成

コントロールの配置

ツールボックス


WhatsThisHelpID プロパティ (Windows 95)

関連項目	対象

ヘルプに対応するコンテキスト番号をオブジェクトに設定します。値の取得も可能です。作成するアプリケーションで、Windows 95 ヘルプのコンテキスト ヘルプを使用してコンテキスト ヘルプを提供する場合に使用します。

重要   このプロパティは、Microsoft Windows 95 および Microsoft Windows NT Version 3.51 以降で動作します。

構文

object.WhatsThisHelpID [= number]

WhatsThisHelpID プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

number	ヘルプのコンテキスト番号を表す数式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 number の設定値は次のとおりです。

設定値	内容

0	(既定値) コンテキスト番号は指定されません。

>0	オブジェクトに対応するヘルプ トピックの有効なコンテキスト番号を指定する整数です。

解説

Microsoft Visual Basic アプリケーションでは、次の 2 種類のコンテキスト ヘルプを使用できます。

Microsoft Windows Version 3.1

Windows 95

Windows Version 3.1 では F1 キーを押すと Windows ヘルプが呼び出され、HelpContextID プロパティで指定したトピックが表示されます。通常、Windows 95 ではウィンドウの右上の [?] ボタンによって Windows ヘルプが呼び出され、WhatsThisHelpID プロパティで指定したトピックが表示されます。WhatsThisHelp プロパティを使用して、2 種類のコンテキスト ヘルプのどちらを使用するかを選択します。


関連項目

HelpContextID プロパティ

ShowWhatsThis メソッド (Windows 95)

WhatsThisButton プロパティ (Windows 95)

WhatsThisMode メソッド (Windows 95)

WhatsThisHelp プロパティ (Windows 95)


WhatsThisHelpID プロパティの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

データ (Data) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール

垂直スクロール バー (VScrollBar) コントロール


WhatsThisButton プロパティ (Windows 95)

関連項目	対象

Form オブジェクトのタイトル バーに [?] ボタンを表示するかどうかを設定します。値の取得も可能です。実行時には値の取得のみ可能です。

重要   このプロパティは、Microsoft Windows 95 および Microsoft Windows NT Version 3.51 以降で動作します。

構文

object.WhatsThisButton

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

WhatsThisButton プロパティの設定値は次のとおりです。

設定値	内容

True	[?] ボタンが表示されます。

False	(既定値) [?] ボタンは表示されません。

解説

WhatsThisButton プロパティを真 (True) に設定する場合は、WhatsThisHelp プロパティも真 (True) に設定する必要があります。さらに、次のように各プロパティの値を設定してください。

ControlBox プロパティを真 (True) に設定。

BorderStyle プロパティを 1 (固定 (実線)) または 2 (可変 (既定値)) に設定。

MinButton プロパティおよび MaxButton プロパティを偽 (False) に設定。

または次のようにプロパティの値を設定します。

BorderStyle プロパティを 3 (固定ダイアログ) に設定。

ControlBox プロパティを真 (True) に設定。


関連項目

BorderStyle プロパティ

ShowWhatsThis メソッド (Windows 95)

WhatsThisMode メソッド (Windows 95)

WhatsThisHelp プロパティ (Windows 95)

WhatsThisHelpID プロパティ (Windows 95)


WhatsThisButton プロパティの対象

Form オブジェクト


WhatsThisHelp プロパティ (Windows 95)

関連項目	対象

コンテキスト ヘルプとして、Windows 95 ヘルプによって提供されるコンテキスト ヘルプとメイン ヘルプ ウィンドウのどちらを使うかを設定します。値の取得も可能です。実行時には値の取得のみ可能です。

重要   このプロパティは、Microsoft Windows 95 および Microsoft Windows NT Version 3.51 以降で動作します。

構文

object.WhatsThisHelp [= boolean]

WhatsThisHelp プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	ヘルプとしてコンテキスト ヘルプを使用するかどうかを値で指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	アプリケーションでいずれか 1 つのコンテキスト ヘルプの参照方法を使用して Windows ヘルプを起動し、WhatsThisHelpID プロパティに指定したトピックが表示されます。

False	(既定値) アプリケーションで F1 キーを使用して Windows ヘルプを起動しHelpContextID プロパティに指定したトピックが表示されます。

解説

アプリケーションでは、3 とおりの方法を使用して、コンテキスト ヘルプを参照できます。これらの方法を使用する場合は、WhatsThisHelp プロパティに真 (True) を設定しておく必要があります。

WhatsThisButton プロパティを設定し、フォームのタイトル バーに [?] ボタンを表示します。マウス ポインタは、コンテキスト ヘルプが表示される状態を表すヘルプ ポインタ (疑問符のついた矢印) に変化します。表示されるトピックは、クリックしたコントロールの WhatsThisHelpID プロパティに指定したトピックです。

フォームの WhatsThisMode メソッドを呼び出します。この方法ではボタンを使用しませんが、[?] ボタンをクリックする場合と同じ動作が発生します。WhatsThisMode メソッドを呼び出す方法として、アプリケーションのメニュー バーのメニュー コマンドから呼び出す方法があります。

特定のコントロールから ShowWhatsThis メソッドを呼び出します。表示されるトピックは、そのコントロールの WhatsThisHelpID プロパティに指定したトピックです。


関連項目

ShowWhatsThis メソッド (Windows 95)

WhatsThisButton プロパティ (Windows 95)

WhatsThisMode メソッド (Windows 95)

WhatsThisHelpID プロパティ (Windows 95)


WhatsThisHelp プロパティの対象

Form オブジェクト

MDIForm オブジェクト


ShowWhatsThis メソッド (Windows 95)

関連項目	例	対象

ヘルプ ファイルから選択されたトピックを、Windows 95 ヘルプのコンテキスト ヘルプを使用して表示します。

重要   このメソッドは、Microsoft Windows 95 および Microsoft Windows NT Version 3.51 以降で動作します。

構文

object.ShowWhatsThis

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

ShowWhatsThis メソッドは、アプリケーションでポップアップ メニューからコンテキスト ヘルプを表示する場合に役立ちます。ShowWhatsThis メソッドを呼び出すと、引数 object に指定したオブジェクトの WhatsThisHelpID プロパティに設定したトピックが表示されます。


関連項目

WhatsThisButton プロパティ (Windows 95)

WhatsThisMode メソッド (Windows 95)

WhatsThisHelp プロパティ (Windows 95)

WhatsThisHelpID プロパティ (Windows 95)


ShowWhatsThis メソッドの対象

チェック ボックス (CheckBox) コントロール

コンボ ボックス (ComboBox) コントロール

コマンド ボタン (CommandButton) コントロール

データ (Data) コントロール

DB コンボ (DBCombo) コントロール

DB グリッド (DBGrid) コントロール

DB リスト (DBList) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ドライブ リスト ボックス (DriveListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

フレーム (Frame) コントロール

グリッド (Grid) コントロール

水平スクロール バー (HScrollBar) コントロール

イメージ (Image) コントロール

ラベル (Label) コントロール

リスト ボックス (ListBox) コントロール

OLE コンテナ (OLE) コントロール

オプション ボタン (OptionButton) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール

垂直スクロール バー (VScrollBar) コントロール


ShowWhatsThis メソッドの例

次のプログラムでは、コマンド ボタン (CommandButton) コントロールに作成したポップアップ メニューからメニュー コマンドを選択し、コマンド ボタン コントロールのコンテキスト ヘルプのトピックを表示します。

Private ThisControl As Control

Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, _

X As Single, Y As Single)

If Button = vbRightButton Then

Set ThisControl = Command1

PopupMenu mnuBtnContextMenu

End If

Set ThisControl = Nothing

End Sub

Private Sub mnuBtnWhatsThis_Click()

ThisControl.ShowWhatsThis

End Sub


WhatsThisMode メソッド (Windows 95)

関連項目	例	対象

マウス ポインタをヘルプ ポインタに変更し、選択されたオブジェクトに関するコンテキスト ヘルプをアプリケーションで表示できる状態にします。

重要   このメソッドは、Microsoft Windows 95 および Microsoft Windows NT Version 3.51 以降で動作します。

構文

object.WhatsThisMode

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

WhatsThisMode メソッドを実行すると、タイトル バーの [?] ボタンをクリックしたときと同じ状態になります。マウス ポインタはヘルプ ポインタに変化します。オブジェクトをクリックすると、そのオブジェクトの WhatsThisHelpID プロパティによってコンテキスト ヘルプが表示されます。WhatsThisMode メソッドは、アプリケーションでメニュー バーのメニューからヘルプを表示する場合に役立ちます。


関連項目

ShowWhatsThis メソッド (Windows 95)

WhatsThisButton プロパティ (Windows 95)

WhatsThisHelp プロパティ (Windows 95)

WhatsThisHelpID プロパティ (Windows 95)


WhatsThisMode メソッドの対象

Form オブジェクト

MDIForm オブジェクト


WhatsThisMode メソッドの例

次のプログラムでは、メニュー コマンドを使用してマウス ポインタをヘルプ ポインタに変更し、コンテキスト ヘルプを使用可能にします。このプログラムを実行するには、まずメニューを作成し、そのうち 1 つのメニュー (Menu) コントロールの Click イベントのコード ウィンドウに次のコードを貼り付けます。F5 キーを押し、起動後にメニュー コマンドを選択すると、コンテキスト ヘルプが表示される状態に切り替えられます。

Private Sub mnuContextHelp_Click ()

Form1.WhatsThisMode

End Sub


ShowInTaskbar プロパティ (Windows 95)

関連項目	対象

Microsoft Windows 95 のタスクバーに Form オブジェクトを表示させるかどうかを設定します。値の取得も可能です。実行時には値の取得のみ可能です。

重要   このプロパティは、Microsoft Windows 95 および Microsoft Windows NT Version 3.51 以降で動作します。

構文

object.ShowInTaskbar

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

設定値

ShowInTaskbar プロパティの設定値は次のとおりです。

設定値	内容

True	(既定値) Form オブジェクトはタスクバーに表示されます。

False	Form オブジェクトはタスクバーに表示されません。

解説

ShowInTaskbar プロパティを使用して、アプリケーションのダイアログ ボックスをタスクバーに表示されないように設定できます。ShowInTaskbar プロパティを真 (True) に設定する場合は、Form オブジェクトの BorderStyle プロパティを 2 (可変 (既定値)) に設定する必要があります。BorderStyle プロパティを変更すると、ShowInTaskbar プロパティの設定が変更される場合があります。


関連項目

BorderStyle プロパティ


ShowInTaskbar プロパティの対象

Form オブジェクト


ヘルプとアプリケーションの接続

関連項目

ほとんどの Windows アプリケーションでは、オンライン ヘルプ機能を使用して、多くの情報をユーザーに提供しています。Visual Basic では、アプリケーションと連結した Windows ヘルプ ファイルを作成することにより、状況に応じたヘルプ (コンテキスト ヘルプ) をアプリケーションに提供できます。状況に応じたヘルプを使用すると、アプリケーションに表示されているコントロールを選択して、そのコントロールに関する情報を表示することができます。

ヘルプの種類の選択

Visual Basic アプリケーションでは、2 つのヘルプ システムに対応したヘルプをサポートします。

Microsoft Windows Version 3.1 ヘルプ

Micorsoft Windows 95 ヘルプ

Windows Version 3.1 ヘルプでは、F1 キーを押すと Windows ヘルプ が呼び出され、状況に応じたトピックが表示されます。Windows 95 ヘルプでは、ウィンドウの右上にある [?] ボタンを使用すると Windows ヘルプ が呼び出され、状況に応じたトピックが表示されます。アプリケーションでは、ヘルプ ファイルの各トピックに固有の番号 (コンテキスト番号) を指定して状況に応じたトピックを指定します。

この 2 つのヘルプ システムのどちらを使用するかは、アプリケーションがサポートするオペレーティング システムによって決まります。

16 ビットおよび 32 ビットの両方に対応したアプリケーションを作成する場合、Windows Version 3.1 ヘルプを使用することをお勧めします。Windows 95 ヘルプは Windows Version 3.1 ヘルプのヘルプ ファイルもサポートします。したがって、1 つのヘルプ ファイルを 16 ビットおよび 32 ビット (Windows 95 および Windows NT Version 3.51 またはそれ以降) の両方のアプリケーションで使用できます。

32 ビット アプリケーションのみを作成する場合は、Windows 95 ヘルプを使用することをお薦めします。Windows NT Version 3.51 以降の 32 ビット システムでは、Windows 95 と同じヘルプ システムが使用されています。したがって、どちらの Windows でも、最新のヘルプ システムが使用できます。また、32 ビット アプリケーションで、どちらのヘルプ システムを使用するかは、WhatsThisHelp プロパティを使用して指定できます。

ヘルプ ファイルの定義

HelpFile プロパティを使用して、アプリケーションで使用するヘルプ ファイルを指定します。HelpFile プロパティは、Visual Basic プロジェクト全体の情報を含む App オブジェクトのプロパティです。

HelpFile プロパティには、ユーザーが状況に応じたヘルプを必要としたときにアプリケーションが呼び出すヘルプ ファイルの名前を文字列で指定します。この文字列は、絶対パスおよびファイル名、またはファイル名のみを指定します。絶対パスおよびファイル名を指定すると、アプリケーションによって特定のディレクトリ内のヘルプ ファイルが検索されます。ファイル名のみを指定すると、カレント ディレクトリ内のヘルプ ファイルが検索されます。

HelpFile プロパティにヘルプ ファイルを指定するには

1.	[ツール]-[オプション] コマンドを選択します。

2.	[プロジェクト] タブを選択します。

3.	[ヘルプ ファイル] ボックスに、アプリケーションのヘルプ ファイルの名前を入力します。絶対パスおよびファイル名、またはファイル名のみを入力します。[ヘルプ ファイル] ボックスの右側の [...] ボタンをクリックして、ダイアログ ボックスを使用してファイルを選択できます。

4.	[OK] ボタンを選択します。

注   ヘルプ ファイルを実行時に指定するには、App.HelpFile プロパティにヘルプ ファイルの名前を設定します。

コンテキスト番号の割り当て

コンテキスト番号は、ヘルプ ファイルの各トピックに割り当てられた番号です。アプリケーションで状況に応じたヘルプを呼び出すには、次の手順で行います。

1.	アプリケーションのどのコントロールでヘルプ トピックを表示するかを決定します。

2.	アプリケーションの各コントロールの使用方法を説明するヘルプ トピックを作成します。

3.	ヘルプ ファイルのヘルプ トピックにコンテキスト番号を割り当ててヘルプ ファイルをコンパイルし、アプリケーションの対応するコントロールに、同じコンテキスト番号を割り当てます。

アプリケーションのコントロールにコンテキスト番号を割り当てるには、そのコントロールのプロパティを設定します。状況に応じた Windows Version 3.1 ヘルプを使用する場合、コンテキスト番号を HelpContextID プロパティに割り当てます。状況に応じた Windows 95 ヘルプを使用する場合、コンテキスト番号を WhatsThisHelpID プロパティに割り当てます。また、WhatsThisHelp プロパティに、アプリケーションで使用するヘルプ システムを指定する必要があります。

Windows 95 ヘルプの機能の使用

Windows 95 ヘルプでは、状況に応じたヘルプを表示するいくつかの方法があります。WhatsThisHelp プロパティを真 (True) に設定して Windows 95 ヘルプをアプリケーションで使用する場合、関連するプロパティを設定する必要があります。次に示すプロパティを設定します。

プロパティ	内容

WhatsThisButton	フォームのタイトル バーの [?] ボタンの表示を制御します。ユーザーは、このボタンをクリックしてアプリケーションのコントロールをクリックし、状況に応じたヘルプを呼び出します。

WhatsThisHelpID	ヘルプ ファイルのトピックのコンテキスト番号を、アプリケーションのコントロールまたは Form オブジェクトに割り当てます。

Windows 95 ヘルプをサポートするメソッドもあります。次に示すメソッドが使用できます。

メソッド	内容

ShowWhatsThis	指定したヘルプ トピックをポップアップ ウィンドウに表示します。

WhatsThisMode	マウス ポインタをヘルプ ポインタにして、アプリケーションをコンテキスト ヘルプ モードにします。オブジェクトがヘルプ ポインタでクリックされると、それに対応するヘルプ トピックが表示されます。


関連項目

HelpContextID プロパティ

HelpFile プロパティ

ShowWhatsThis メソッド (Windows 95)

WhatsThisButton プロパティ (Windows 95)

WhatsThisHelp プロパティ (Windows 95)

WhatsThisMode メソッド (Windows 95)

WhatsThisHelpID プロパティ (Windows 95)


ポップアップ メニューの作成 (Windows 95)

関連項目	例

“ポップアップ メニュー”は、フォーム上のメニュー バー以外の任意の位置に表示されるメニューです。ポップアップ メニューに表示されるメニュー項目は、マウスの右ボタンが押されたときのマウス ポインタの位置によって異なるので、ポップアップ メニューはショートカット メニューやコンテキスト メニューとも呼ばれます。Microsoft Windows 95 では、マウスの右ボタンをクリックしてショートカット メニューを表示することができます。一般に、ポップアップ メニューは、ユーザーがマウスの右ボタンをクリックしたときに表示されるように作成されます。ポップアップ メニューを使うと、共通に使われるメニュー コマンドを状況に応じて簡単に使えるようになります。

ポップアップ メニューを使用すると、アプリケーションに Windows 95 のショートカット メニューを作成することができます。Windows 95 のショートカット メニューは、標準のポップアップ メニューと次の 2 点で異なります。

太字の表示されるコマンドをメニューに含むことができます。

左右のマウス ボタンに応答します。

ポップアップ メニューでの太字の使用

通常、Windows 95 で動作するアプリケーションのショートカット メニューには、対象となるオブジェクトをユーザーがダブル クリックした場合に実行される処理と同一の処理を行うコマンドが含まれています。このメニュー コマンドは、ユーザーがこのオブジェクトをダブル クリックした場合に実行される処理であることを示すために太字で表示されます。

この特別なコマンドを含むポップアップ メニューをアプリケーションで使用するには、ポップアップ メニューの太字のコマンドの Click イベントと、対象となるオブジェクトの DblClick イベントの両方で同じ処理を実行します。対応する処理を実行する別のプロシージャを作成し、Click イベント プロシージャおよび DblClick イベント プロシージャの両方から、そのプロシージャを呼び出すようにします。

ショートカット メニューで、太字で表示されたメニュー コマンドを選択することは、オブジェクトをダブル クリックすることと同じです。したがって、DblClick イベントを持つオブジェクトにだけ、太字のショートカット メニュー コマンドを設定してください。

左右のマウス ボタンに応答

Windows 95 では、ショートカット メニューのコマンドを、マウスの左右どちらのボタンでも選択できます。他の Windows では、ポップアップ メニューは、マウスの左ボタンにのみ反応します。この選択方法を使用するには、PopupMenu メソッドの引数 flags に定数 vbPopupMenuRightButton を指定します。

注   Windows 95 では、テキスト ボックス (TextBox) コントロールおよびコンボ ボックス (ComboBox) コントロールのテキスト ボックスの部分に、自動的にショートカット メニューが設定されます。これらのコントロールに独自のショートカット メニューを作成すると、システムで設定されたショートカット メニューが最初に表示されます。作成したショートカット メニューは、システムで設定されたメニューが消えてから表示されます。


関連項目

PopupMenu メソッド


ポップアップ メニューの例

ショートカット メニューの メニュー (Menu) コントロールの Click イベントとラベル (Label) コントロールの DblClick イベントの両方を使い、ラベルのフォント サイズを切り替えます。

Private Sub lblProgName_MouseUp (Button As Integer, _

Shift As Integer, X As Single, Y As Single)

If Button = vbRightButton Then

' マウスの右ボタンのクリックでショートカット メニューを表示します。

PopupMenu mnuContextExample, vbPopupMenuRightButton, , , mnuToggleFontSize

End If

End Sub

Private Sub lblProgName_DblClick()

' フォントのサイズを切り替えるプロシージャを呼び出します。

ToggleFontSize

End Sub

Private Sub mnuToggleFontSize_Click()

' フォントのサイズを切り替えるプロシージャを呼び出します。

ToggleFontSize

End Sub

Private Sub ToggleFontSize()

Select Case mnuToggleFontSize.Caption

Case "小さいフォント"

' フォント サイズを小さくします。

lblProgName.Font.Size = 10

' ラベルのキャプションを "大きいフォント" に変更します。

mnuToggleFontSize.Caption = "大きいフォント"

Case "大きいフォント"

' フォント サイズを大きくします。

lblProgName.Font.Size = 14

' ラベルのキャプションを "小さいフォント" に変更します。

mnuToggleFontSize.Caption = "小さいフォント"

End Select

End Sub


プロパティ ページ ダイアログ ボックスの使い方

関連項目

カスタム コントロールのプロパティを設定するときは、プロパティ ページ ダイアログ ボックスを使用することをお薦めします。このダイアログ ボックスでは、デザイン時にプロパティの設定を行うプロパティ ウィンドウと同等のプロパティ一覧が表示されます。

プロパティを設定する 2 つの方法

カスタム コントロールを使用する一部のアプリケーションでは、Visual Basic のようなプロパティ ウィンドウが提供されない場合があります。また、プロパティ ページ ダイアログ ボックスでは、カスタム コントロールを使用するアプリケーションのインターフェイスとは関係なく、プロパティの設定を行うインターフェイスを提供できます。

通常、カスタム コントロールでは、次の 2 つの方法でプロパティの設定を行うことができます。

プロパティ ウィンドウ

プロパティ ぺージ ダイアログ ボックス

ただし、プロパティ ウィンドウ内では実現できないインターフェイスが必要な一部のプロパティの場合は、プロパティ ページ ダイアログ ボックスを使う方法だけが提供されます。たとえば、イメージ リスト コントロールでは、イメージのセットを設定する場合、ファイル名を何度も入力するか、一覧から多くのファイルを選択する必要があります。

プロパティ ページ ダイアログ ボックスの確認

一部のカスタム コントロールでは、プロパティ ページ ダイアログ ボックスは提供されません。このダイアログ ボックスが提供されているかどうかを確認するには、プロパティ ウィンドウを上端までスクロールします。プロパティの一覧に“(Custom)”という名前が含まれている場合は、プロパティ ページ ダイアログ ボックスが提供されていることになります。

プロパティ ページ ダイアログ ボックスの使用

プロパティ ウィンドウからカスタム (Custom) の項目を選択し、プロパティ ボタンをクリックしてプロパティ ページ ダイアログ ボックスを表示します。通常、プロパティ ページ ダイアログ ボックスは、タブ ダイアログ ボックスとして表示されます。設定するプロパティを含むタブを選択します。

プロパティを変更し、[更新] ボタンを選択すると変更がすぐに反映されます。必要に応じて他のタブを選択して他のプロパティを設定します。ダイアログ ボックスの変更をすべて反映するには、[OK] ボタンを選択します。プロパティの設定を変更しないでプロパティ ウィンドウに戻るには、[キャンセル] ボタンを選択します。


関連項目

プロパティ ウィンドウ

カスタム コントロールの使い方


OLERequestPendingMsgText プロパティ

関連項目	対象

OLE オートメーションが要求ペンディング状態の場合に、マウスおよびキーボードからの入力が受け取られたときに表示される [サーバーを使用できません] ダイアログ ボックスの代わりのメッセージ ボックスのメッセージ文字列を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.OLERequestPendingMsgText [ = string]

OLERequestPendingMsgText プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	OLE オートメーションが要求ペンディング状態の場合に、[サーバーを使用できません] ダイアログ ボックスの代わりに表示されるメッセージ文字列を文字列式で指定します。

解説

OLE オートメーションが要求ペンディング状態の場合にマウスおよびキーボードからの入力が受け取られると、初期設定の [サーバーを使用できません] ダイアログ ボックスが表示されます。このダイアログ ボックスには、Microsoft Excel などの画面に表示される OLE サーバーに対して使用される文字列および [切り替え] ボタンが表示されます。次に示す場合、[サーバーを使用できません] ダイアログ ボックスでは、対応できないことがあります。

ユーザー インターフェイスを持たない OLE サーバーが提供するオブジェクトのメソッドを呼び出す場合。たとえば、Microsoft Visual Basic Professional Edition を使用して作成された OLE サーバーは、フォームを表示せずにバックグラウンドで処理される場合があります。

呼び出した OLE サーバーが Visual Basic Enterprise Edition のリモート オートメーション機能を使用して作成されていて、ユーザーのコンピュータと離れた場所にある別のコンピュータ上で実行されている場合。

自分のプログラムで GetObject 関数を使用して Excel のワークブックを使用している場合。この場合、ユーザーが Excel に切り替えたときにワークブックが表示されません。実際には Excel 自体が表示されない場合もあり、[切り替え] ボタンを選択しても正常に動作しません。

このような場合には、初期設定の文字列および [切り替え] ボタンは不適切で、プログラムのユーザーを混乱させる可能性があります。

OLERequestPendingMsgText プロパティを使うと、[サーバーを使用できません] ダイアログ ボックスの代わりにメッセージ ボックスを表示できます。OLERequestPendingMsgText プロパティに独自のメッセージ文字列を設定すると、“サーバー ビジー状態”を表すメッセージ文字列および [OK] ボタンを含むメッセージ ボックスが表示されます。

注   1 度 OLE サーバーに受け取られた OLE オートメーションの要求は、取り消すことはできません。

OLERequestPendingMsgText プロパティの値が長さ 0 の文字列 ("") の場合、[サーバーを使用できません] ダイアログ ボックスが表示されます。

重要   OLE オートメーションの要求の処理時間が 2、3 秒以上あり、しかも非表示の OLE サーバーやリモート OLE サーバーを使用している場合は、代わりのメッセージを設定する必要があります。リモート OLE サーバーを使用する場合、すべての要求に対して代わりのメッセージを設定することをお勧めします。ネットワーク トラフィックが原因で、短時間で処理が終了する OLE オートメーションの要求に多くの処理時間が必要となる場合があります。


関連項目

OLERequestPendingMsgTitle プロパティ

OLERequestPendingTimeout プロパティ

OLEServerBusyMsgText プロパティ

OLEServerBusyMsgTitle プロパティ

OLEServerBusyRaiseError プロパティ

OLEServerBusyTimeout プロパティ


OLERequestPendingMsgText プロパティの対象

App オブジェクト


OLERequestPendingMsgTitle プロパティ

関連項目	対象

OLE オートメーションが要求ペンディング状態の場合に、マウスおよびキーボードからの入力が受け取られたときに表示される [サーバーを使用できません] ダイアログ ボックスの代わりのメッセージ ボックスのキャプションを設定します。値の取得も可能です。デザイン時には使えません。

構文

object.OLERequestPendingMsgTitle [= string]

OLERequestPendingMsgTitle プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	OLE オートメーションが要求ペンディング状態の場合に、[サーバーを使用できません] ダイアログ ボックスの代わりのメッセージのキャプションを文字列式で指定します。

解説

OLERequestPendingMsgText プロパティを設定すると、OLERequestPendingMsgTitle プロパティの値が“サーバー ビジー状態”を表すメッセージ ボックスのキャプションに使用されます。OLERequestPendingMsgTitle プロパティの既定値は、App オブジェクトの Title プロパティの現在の値です。この設定値を使用することをお勧めします。

OLERequestPendingMsgText プロパティの値が長さ 0 の文字列 ("") の場合、OLERequestPendingMsgTitle プロパティは無効になります。


関連項目

OLERequestPendingMsgText プロパティ

OLERequestPendingTimeout プロパティ

OLEServerBusyMsgText プロパティ

OLEServerBusyMsgTitle プロパティ

OLEServerBusyRaiseError プロパティ

OLEServerBusyTimeout プロパティ


OLERequestPendingMsgTitle プロパティの対象

App オブジェクト


OLERequestPendingTimeout プロパティ

関連項目	対象

OLE オートメーションが要求ペンディング状態の場合にマウスおよびキーボードからの入力が受け取られたとき、“サーバー ビジー状態”を表すメッセージ ボックスが表示されるまでの経過時間をミリ秒単位で設定します。値の取得も可能です。デザイン時には使えません。

構文

object.OLERequestPendingTimeout [= milliseconds]

OLERequestPendingTimeout プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

milliseconds	“サーバー ビジー状態”を表すメッセージ ボックスが表示されるまでの経過時間をミリ秒単位で示す長整数型 (Long) で指定します。

解説

OLERequestPendingTimeout プロパティの既定値は、5,000 ミリ秒 (5 秒) です。

重要   このタイムアウト間隔の値は、App オブジェクトのプロパティで、OLE コンテナ (OLE) コントロールまたはツールボックスを使用してリンクや埋め込みを行うドキュメントにも影響します。リンクや埋め込みを行ったドキュメントを使用する場合で、OLE オートメーションの要求のためにこのプロパティを変更するときは、要求の後で元の値に再設定します。


関連項目

OLERequestPendingMsgText プロパティ

OLERequestPendingMsgTitle プロパティ

OLEServerBusyMsgText プロパティ

OLEServerBusyMsgTitle プロパティ

OLEServerBusyRaiseError プロパティ

OLEServerBusyTimeout プロパティ


OLERequestPendingTimeout プロパティの対象

App オブジェクト


OLEServerBusyMsgText プロパティ

関連項目	対象

OLE オートメーションの要求が OLE サーバーによって拒否された場合に表示される [サーバーを使用できません] ダイアログ ボックスの代わりのメッセージ ボックスにメッセージ文字列を設定します。値の取得も可能です。デザイン時には使えません。

構文

object.OLEServerBusyMsgText [= string]

OLEServerBusyMsgText プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	OLE サーバーがビジー状態の場合に代わりのメッセージに表示されるメッセージの文字列を文字列式で指定します。

解説

OLEServerBusyTimeout プロパティにミリ秒単位で指定した時間だけ、OLE オートメーションの要求の再試行を繰り返します。その時間内で OLE サーバーからリクエストが受け付けられない場合、[サーバーを使用できません] ダイアログ ボックスが表示されます。このダイアログ ボックスには、Microsoft Excel などの画面に表示される OLE サーバーに対して使用される文字列および [切り替え] ボタンが表示されます。次に示す場合、[サーバーを使用できません] ダイアログ ボックスでは対応できないことがあります。

ユーザー インターフェイスを持たない OLE サーバーが提供するオブジェクトのメソッドを呼び出す場合。たとえば、Microsoft Visual Basic Professional Edition を使用して作成された OLE サーバーは、フォームを表示せずにバックグラウンドで処理される場合があります。

呼び出した OLE サーバーが Visual Basic Enterprise Edition のリモート オートメーション機能を使用して作成されていて、ユーザーのコンピュータと離れた場所にある別のコンピュータ上で実行されている場合。

自分のプログラムで GetObject 関数を使用して Excel のワークブックを使用している場合。この場合、ユーザーが Excel に切り替えたときにワークブックが表示されません。実際には Excel 自体が表示されない場合もあり、この場合には [切り替え] ボタンを選択しても正常に動作しません。

このような場合には、初期設定の文字列および [切り替え] ボタンは不適切で、プログラムのユーザーを混乱させる可能性があります。

OLERequestPendingMsgText プロパティを使うと、[サーバーを使用できません] ダイアログ ボックスの代わりにメッセージ ボックスを表示できます。OLERequestPendingMsgText プロパティに独自のメッセージ文字列を設定すると、“サーバー ビジー状態”を表すメッセージ文字列および [OK] ボタンを含むメッセージ ボックスが表示されます。

OLEServerBusyMsgText が長さ 0 の文字列 ("") の場合、[サーバーを使用できません] ダイアログ ボックスが表示されます。

ユーザーが [サーバーを使用できません] ダイアログ ボックスまたは代わりのメッセージ ボックスで [キャンセル] ボタンを選択すると、OLE オートメーションの要求を実行したプロシージャで OLE オートメーション エラー 2147418111 (&h80010001) が発生します。

重要   OLE オートメーションの要求の処理時間が 2、3 秒以上あり、しかも非表示の OLE サーバーやリモート OLE サーバーを使用している場合は、代わりのメッセージを設定する必要があります。リモート OLE サーバーを使用する場合、すべての要求に対して代わりのメッセージを設定することをお勧めします。ネットワーク トラフィックが原因で、短時間で処理が終了する OLE オートメーションの要求に多くの処理時間が必要となる場合があります。


関連項目

OLERequestPendingMsgText プロパティ

OLERequestPendingMsgTitle プロパティ

OLERequestPendingTimeout プロパティ

OLEServerBusyMsgTitle プロパティ

OLEServerBusyRaiseError プロパティ

OLEServerBusyTimeout プロパティ


OLEServerBusyMsgText プロパティの対象

App オブジェクト


OLEServerBusyMsgTitle プロパティ

関連項目	対象

OLE オートメーションの要求が OLE サーバーによって拒否された場合に表示される [サーバーを使用できません] ダイアログ ボックスの代わりのメッセージ ボックスにキャプションを設定します。値の取得も可能です。デザイン時には使えません。

構文

object.OLEServerBusyMsgTitle [= string]

OLEServerBusyMsgTitle プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

string	OLE サーバーがビジー状態の場合に代わりのメッセージに表示されるメッセージのキャプションを文字列式で指定します。

解説

OLEServerBusyMsgText プロパティを設定すると、OLEServerBusyMsgTitle プロパティの値がサーバー ビジー状態”を表す代わりのメッセージのキャプションに使用されます。OLEServerBusyMsgTitle プロパティの既定値は、App オブジェクトの Title プロパティの現在の値です。この設定値を推奨します。

OLEServerBusyMsgText プロパティの値が長さ 0 の文字列 ("") の場合、OLEServerBusyMsgTitle プロパティは無効になります。


関連項目

OLERequestPendingMsgText プロパティ

OLERequestPendingMsgTitle プロパティ

OLERequestPendingTimeout プロパティ

OLEServerBusyMsgText プロパティ

OLEServerBusyRaiseError プロパティ

OLEServerBusyTimeout プロパティ


OLEServerBusyMsgTitle プロパティの対象

App オブジェクト


OLEServerBusyRaiseError プロパティ

関連項目	対象

OLE オートメーションの要求が拒否された場合、“サーバー ビジー状態”を表すメッセージ ボックスを表示するの代わりにエラーを発生させるかどうかを設定します。デザイン時には使えません。

構文

object.OLEServerBusyRaiseError [ = boolean]

OLEServerBusyRaiseError プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	エラーを発生させるかどうかを示すブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

boolean の設定値は次のとおりです。

設定値	内容

True	OLEServerBusyTimeout プロパティにミリ秒単位で指定した時間が経過するとエラーが発生します。

False	OLEServerBusyMsgText プロパティの設定に応じて、[サーバーを使用できません] ダイアログ ボックスまたは代わりのメッセージ ボックスを表示します。

解説

OLE オートメーションの要求が OLE サーバーによって拒否されてエラーが発生した場合、プログラムの制御はユーザーに戻り、[サーバーを使用できません] ダイアログ ボックスや“サーバー ビジー状態”を表すメッセージ ボックスの代わりに、ユーザー定義のダイアログ ボックスを使用することもできます。

発生する OLE オートメーション エラーは、2147418111 (&h80010001) になります。


関連項目

OLERequestPendingMsgText プロパティ

OLERequestPendingMsgTitle プロパティ

OLERequestPendingTimeout プロパティ

OLEServerBusyMsgTitle プロパティ

OLEServerBusyMsgText プロパティ

OLEServerBusyTimeout プロパティ


OLEServerBusyRaiseError プロパティの対象

App オブジェクト


OLEServerBusyTimeout プロパティ

関連項目	対象

“サーバー ビジー状態”を表すメッセージ ボックスが表示される前に OLE オートメーションの要求の再試行が繰り返される時間をミリ秒単位で設定します。値の取得も可能です。デザイン時には使えません。

構文

object.OLEServerBusyTimeout [= milliseconds]

OLEServerBusyTimeout プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

milliseconds	OLE オートメーションの要求の再試行が繰り返される時間をミリ秒単位で示す長整数型 (Long) で指定します。

解説

このプロパティの既定値は、10,000 ミリ秒 (10 秒) です。

重要   このタイムアウト間隔の値は、App オブジェクトのプロパティで、OLE コンテナ (OLE) コントロールまたはツールボックスを使用してリンクや埋め込みを行うドキュメントにも影響します。リンクや埋め込みを行ったドキュメントを使用する場合で、OLE オートメーションの要求のためにこのプロパティを変更するときは、要求の後で元の値に再設定します。


関連項目

OLERequestPendingMsgText プロパティ

OLERequestPendingMsgTitle プロパティ

OLERequestPendingTimeout プロパティ

OLEServerBusyMsgTitle プロパティ

OLEServerBusyMsgText プロパティ

OLEServerBusyRaiseError プロパティ


OLEServerBusyTimeout プロパティの対象

App オブジェクト


ﾓｼﾞｭｰﾙ名、ﾕｰｻﾞｰ定義型、ﾌﾟﾛｼﾞｪｸﾄ名、ﾌｫｰﾑ名に Main という名前は使えません。

Sub Main プロシージャ にスタートアップ フォームがある状態で、さらに、"Main" という名前のモジュール、フォーム、プロジェクト、またはユーザー定義型があるため、同じ名前の Sub プロシージャ が呼び出されません。

モジュール、フォーム、プロジェクト、またはタイプの名前を変更してください。


ｱｸｼｮﾝは関連ｵﾌﾞｼﾞｪｸﾄによりｷｬﾝｾﾙされました。(Error 3426)

データ (Data) コントロールはアクションを完了しようとしましたが、データ コントロールに連結しているコントロールまたはオブジェクトによって、アクションがキャンセルされました。

ユーザーがアクションをキャンセルすると、このエラーが発生します。たとえば、フォーム上に DB グリッド (DB Grid) コントロールを配置して、これをデータ コントロールに連結します。ユーザーがデータ コントロール内の Validate イベントを Action = 0 に設定すると、操作のキャンセルが発生します。DB グリッド コントロールの BeforeUpdate イベントが Cancel = 1 に設定された場合も、アクションのキャンセルが発生します。

エラー イベントの中にエラー トラップ コードを配置することで、このエラーに対処できます。


ﾁｪｯｸ ﾏｰｸは使えません。

これはメニュー デザイン エラーです。チェック マークをサポートしないメニュー項目上で [チェック] チェック ボックスをオンにしようとしたことを表します。

具体的には次のような場合です。

1.	トップレベル メニュー項目に対して [メニュー エディタ] 内の [チェック] チェック ボックスをオンにしようとしました。

2.	サブメニューを伴うメニュー項目に対して [チェック] チェック ボックスをオンにしました。

3.	チェックできない MDI ウィンドウ リスト メニューなどのメニューを選択しました。


ｸﾗｽ ﾓｼﾞｭｰﾙ 'Class1' は互換 OLE ｻｰﾊﾞｰを見つけましたが、それは現在のﾌﾟﾛｼﾞｪｸﾄにはありません。

現在のプロジェクトおよび互換 OLE サーバーとの間に互換性がありません。このエラーが発生した場合、次に示す理由が考えられます。対処方法と併せて示します。

プロジェクトの名前が変更されています。

現在のプロジェクト 'project1' の Name プロパティが、互換 OLE サーバー 'server1' の名前と異なります。この場合、プロジェクト名を変更するか、または [ツール] - [オプション] コマンドを選択し、[プロジェクト] タブを選択して、互換 OLE サーバーの設定をクリアしてください。

クラス モジュールが削除されたか、クラス モジュールがパブリックとして指定しないで設定されているか、または名前が変更されています。

'Class1' クラスをプロジェクトに追加するか、プロジェクトをパブリックとして設定するか、または元の名前に変更します。[許可] ボタンを選択すると、互換 OLE サーバーに対してコンパイルされた OLE オートメーション コントローラ、および 'Class1' クラスにアクセスしている OLE オートメーション コントローラは、プロジェクトでサポートされなくなります。この場合、'Class1' クラスをプロジェクトに追加するか、または [ツール] - [オプション] コマンドを選択し、[プロジェクト] タブを選択して、互換 OLE サーバーの設定をクリアしてください。

クラス モジュール内のサブルーチンで、引数の種類または戻り値の種類が変更されました。または、引数の個数が変更されました。

'Class1' クラス モジュール内の 'Member1' の引数の種類または戻り値の種類と、互換 OLE サーバー内の引き数および戻り値の宣言との間に互換性がありません。[許可] ボタンを選択すると、互換 OLE サーバーに対してコンパイルされている OLE オートメーション コントローラは、'Class1' クラス モジュールでサポートされなくなります。この場合、宣言の記述を編集して互換性を保持するか、または [ツール] - [オプション] コマンドを選択し、[プロジェクト] タブを選択して、互換 OLE サーバーの設定をクリアしてください。

サブルーチンが削除されたか、またはサブルーチンの名前が変更されています。

'subroutine1' メンバが、互換 OLE サーバーの 'Class1' クラス モジュールの中にはありますが、カレント プロジェクトにはありません。

[許可] ボタンを選択すると、互換 OLE サーバーに対してコンパイルされた OLE オートメーション コントローラは、'Class1' クラス モジュールにサポートされなくなります。この場合、クラス モジュールに宣言を追加し直すか、または [ツール] - [オプション] コマンドを選択し、[プロジェクト] タブを選択して、互換 OLE サーバーの設定をクリアしてください。

これらのアクションを完了するには、次に示すボタンを使用できます。

ボタン名	目的

[許可] 	互換性を保持しないでコンパイルを続けることを、指定します。互換 OLE サーバーに対してコンパイルされた OLE オートメーション コントローラ、および 'Class1' クラスにアクセスしている OLE オートメーション コントローラは、プロジェクトでサポートされなくなります。

互換性は .EXE および .DLL 単位に保持されるため、任意のパブリック クラス内での非互換性は、すべてのパブリック グラスに影響します。

非互換性ごとに、ダイアログ ボックスが依然として表示されます。

[すべて許可]	互換性を保持しないでコンパイルを続けることを、指定します。互換 OLE サーバーに対してコンパイルされた OLE オートメーション コントローラ、および 'Class1' クラスにアクセスしている OLE オートメーション コントローラは、プロジェクトでサポートされなくなります。互換性は .EXE および .DLL 単位に保持されるため、任意のパブリック クラス内で互換性が保持されない場合、すべてのパブリック グラスで互換性は保持されません。

[ファイル] - [EXE ファイルの作成] コマンドまたは [ファイル] - [OLE ファイルの作成] コマンドを次に使用するまで、またはプロジェクトをロードし直すまで、このダイアログ ボックス以降、このエラーが発生してもダイアログ ボックスが表示されることはありません。警告メッセージが表示されることもありません。

[宣言]	プロシージャまたはメンバの宣言の全テキストを含むボックスを表示します。互換性のエラーを引き起こした変更内容を、元に戻すことができます。ただしこれは、クラス モジュール内のサブルーチンで、引数の種類または戻り値の種類が変更された場合、またはサブルーチンが削除されたり、サブルーチンの名前が変更された場合に限り、使用できます。

[編集]	コンパイルを停止し、互換性のエラーを含むコード行に移動します。ただし、該当するコード行がない場合は、動作に変更があります。たとえば、プロジェクト名が変更されていた場合、該当するコード行はありません。


ｵﾍﾟﾚｰﾃｨﾝｸﾞ ｼｽﾃﾑのﾊﾞｰｼﾞｮﾝが違います。Windows NT 3.51 (build xxx 以降) または Windows 95 (build xxx 以降) が必要です。

このバージョンの Visual Basic を実行するには、ビルド 944 以上の Windows NT Version 3.51 を実行する必要があります。


ﾃﾞｰﾀﾍﾞｰｽが排他ﾓｰﾄﾞで開いていることを確認できないため、ﾃﾞｰﾀﾍﾞｰｽをﾚﾌﾟﾘｹｰﾄ可能にすることができません。(Error 3578)

予期しないエラーが発生しました。詳細については、Microsoft 製品サポートまでご連絡ください。


TaskVisible プロパティ

関連項目	対象

アプリケーションが Microsoft Windows のタスク リストに表示されるかどうかを決定する値を設定します。値の取得も可能です。

構文

object.TaskVisible [= boolean]

TaskVisible プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

boolean	アプリケーションがタスク リストに表示されるかどうかを決定するブール式を指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 boolean の設定値は次のとおりです。

設定値	内容

True	(既定値) アプリケーションはタスク リストに表示されます。

False	アプリケーションはタスク リストに表示されません。

解説

インターフェイスを表示しないアプリケーション (たとえば、Form オブジェクトを含まないか、または表示しない OLE サーバー) の場合、TaskVisible プロパティに設定できる値は偽 (False) だけです。アプリケーションによってインターフェイスが表示されている間は、TaskVisible プロパティは自動的に真 (True) に設定されます。


関連項目

ShowInTaskbar プロパティ (Windows 95)


TaskVisible プロパティの対象

App オブジェクト


hInstance プロパティ

関連項目	対象

アプリケーションのインスタンスを参照するハンドルを返します。

構文

object.hInstance

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

hInstance プロパティを使用すると、16 ビット版の Microsoft Visual Basic の で作成したアプリケーションの場合は整数型 (Integer) の値を取得できます。また、32 ビット版で作成したアプリケーションの場合は長整数型 (Long) の値を取得できます。

Visual Basic の開発環境でプロジェクトを作成している場合、hInstance プロパティを使用して Visual Basic のインスタンスを参照するインスタンス ハンドルを取得できます。


関連項目

hWnd プロパティ

hDC プロパティ


hInstance プロパティの対象

App オブジェクト


ColIsVisible プロパティ

関連項目	対象

グリッド (Grid) コントロールで指定された列が現在画面に表示されているかどうかを示す値を返します。

構文

object.ColIsVisible(index)

ColIsVisible プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	グリッド コントロールの列を、整数で指定します。指定できる値の範囲は、0 ～ Cols プロパティの値 - 1 です。

戻り値

ColIsVisible プロパティの戻り値は次のとおりです。

設定値	内容

True	指定された列は、現在画面に表示されています。

False	指定された列は、現在画面に表示されていません。


関連項目

Cols、Rows プロパティ

RowIsVisible プロパティ


ColIsVisible プロパティの対象

グリッド (Grid) コントロール


ColPos プロパティ

関連項目	対象

グリッド (Grid) コントロールの左上隅から、指定された列の左上隅までの距離を示す値を返します。

構文

object.ColPos(index)

ColPos プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	グリッド コントロールの列を、整数で指定します。指定できる値の範囲は 0 ～ Cols プロパティの値 - 1 です。

解説

ColPos プロパティの戻り値では、距離が twip 単位で示されます。


関連項目

Cols、Rows プロパティ

RowPos プロパティ


ColPos プロパティの対象

グリッド (Grid) コントロール


RowIsVisible プロパティ

関連項目	対象

グリッド (Grid) コントロールで指定された行が現在画面に表示されているかどうかを示す値を返します。

構文

object.RowIsVisible(index)

RowIsVisible プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	グリッド コントロールの行を、整数で指定します。指定できる値の範囲は 0 ～ Rowsプロパティの値 - 1 です。

戻り値

RowsVisible プロパティの戻り値は次のとおりです。

設定値	内容

True	指定された行は、現在画面に表示されています。

False	指定された行は、現在画面に表示されていません。


RowIsVisible プロパティの対象

グリッド (Grid) コントロール


関連項目

ColIsVisible プロパティ

Cols、Rows プロパティ


RowPos プロパティ

関連項目	対象

グリッド (Grid) コントロールの左上隅から、指定された行の左上隅までの距離を示す値を返します。

構文

object.RowPos(index)

RowPos プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

index	グリッド コントロールの行を、整数で指定します。指定できる値の範囲は 0 ～ Rows プロパティの値 - 1 です。

解説

RowPos プロパティの戻り値では、距離が twip 単位で示されます。


関連項目

ColPos プロパティ

Cols、Rows プロパティ


RowPos プロパティの対象

グリッド (Grid) コントロール


Comments プロパティ

関連項目	対象

実行可能ファイルについてのコメントを含む文字列を設定します。値の取得も可能です。実行時には値の取得のみ可能です。

構文

object.Comments

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

デザイン時に Comments プロパティを設定するには、[EXE オプション] ダイアログ ボックスを使用します。


関連項目

CompanyName プロパティ

[EXE オプション] ダイアログ ボックス

FileDescription プロパティ

LegalCopyright プロパティ

LegalTrademarks プロパティ

ProductName プロパティ


Comments プロパティの対象

App オブジェクト


CompanyName プロパティ

関連項目	対象

実行可能ファイルを作成した企業または個人の名前を含む文字列を設定します。値の取得も可能です。実行時には値の取得のみ可能です。

構文

object.CompanyName

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

デザイン時に CompanyName プロパティを設定するには、[EXE オプション] ダイアログ ボックスを使用します。


関連項目

Comments プロパティ

[EXE オプション] ダイアログ ボックス

FileDescription プロパティ

LegalCopyright プロパティ

LegalTrademarks プロパティ

ProductName プロパティ


CompanyName プロパティの対象

App オブジェクト


FileDescription プロパティ

関連項目	対象

実行可能ファイルについてのファイルの説明を含む文字列を設定します。値の取得も可能です。実行時には値の取得のみ可能です。

構文

object.FileDescription

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

デザイン時に FileDescription プロパティを設定するには、[EXE オプション] ダイアログ ボックスを使用します。


関連項目

Comments プロパティ

CompanyName プロパティ

[EXE オプション] ダイアログ ボックス

LegalCopyright プロパティ

LegalTrademarks プロパティ

ProductName プロパティ


FileDescription プロパティの対象

App オブジェクト


LegalCopyright プロパティ

関連項目	対象

実行可能ファイルについての著作権情報を含む文字列を設定します。値の取得も可能です。実行時には値の取得のみ可能です。

構文

object.LegalCopyright

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

デザイン時に LegalCopyright プロパティを設定するには、[EXE オプション] ダイアログ ボックスを使用します。


関連項目

Comments プロパティ

CompanyName プロパティ

[EXE オプション] ダイアログ ボックス

FileDescription プロパティ

LegalTrademarks プロパティ

ProductName プロパティ


LegalCopyright プロパティの対象

App オブジェクト


LegalTrademarks プロパティ

関連項目	対象

実行可能ファイルについての商標情報を含む文字列を設定します。値の取得も可能です。実行時には値の取得のみ可能です。

構文

object.LegalTrademarks

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

デザイン時に LegalTrademarks プロパティを設定するには、[EXE オプション] ダイアログ ボックスを使用します。


関連項目

Comments プロパティ

CompanyName プロパティ

[EXE オプション] ダイアログ ボックス

FileDescription プロパティ

LegalCopyright プロパティ

ProductName プロパティ


LegalTrademarks プロパティの対象

App オブジェクト


Major プロパティ

関連項目	対象

プロジェクトのメジャー リリース番号を設定します。値の取得も可能です。実行時には値の取得のみ可能です。

構文

object.Major

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Major プロパティの値には、0 ～ 9999 の範囲の値を設定してください。

このプロパティを使用すると、実行可能ファイルについてのバージョン情報を提供できます。デザイン時に Major プロパティを設定するには、[EXE オプション] ダイアログ ボックスを使用します。


関連項目

[EXE オプション] ダイアログ ボックス

Minor プロパティ

Revision プロパティ


Major プロパティの対象

App オブジェクト


Minor プロパティ

関連項目	対象

プロジェクトのマイナ リリース番号を設定します。値の取得も可能です。実行時には値の取得のみ可能です。

構文

object.Minor

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Minor プロパティの値には、0 ～ 9999 の範囲の値を設定してください。

このプロパティを使用すると、実行可能ファイルについてのバージョン情報を提供できます。デザイン時に Minor プロパティを設定するには、[EXE オプション] ダイアログ ボックスを使用します。


関連項目

[EXE オプション] ダイアログ ボックス

Major プロパティ

Revision プロパティ


Minor プロパティの対象

App オブジェクト


ProductName プロパティ

関連項目	対象

実行可能ファイルの製品名を含む文字列を設定します。値の取得も可能です。実行時には値の取得のみ可能です。

構文

object.ProductName

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

デザイン時に ProductName プロパティを設定するには、[EXE オプション] ダイアログ ボックスを使用します。


関連項目

Comments プロパティ

CompanyName プロパティ

[EXE オプション] ダイアログ ボックス

FileDescription プロパティ

LegalCopyright プロパティ

LegalTrademarks プロパティ


ProductName プロパティの対象

App オブジェクト


Revision プロパティ

関連項目	対象

プロジェクトのリビジョン番号を設定します。値の取得も可能です。実行時には値の取得のみ可能です。

構文

object.Revision

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

Revision プロパティの値には、0 ～ 9999 の範囲の値を設定してください。

このプロパティを使用すると、実行可能ファイルについてのバージョン情報を提供できます。デザイン時に Revision プロパティを設定するには、[EXE オプション] ダイアログ ボックスを使用します。


関連項目

[EXE オプション] ダイアログ ボックス

Major プロパティ

Minor プロパティ


Revision プロパティの対象

App オブジェクト


IconState プロパティ (アドイン)

関連項目	対象

プロジェクト内のファイルの状態を示す値を設定します。値の取得も可能です。

構文

object.IconState [= value ]

IconState プロパティの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	ファイルの状態を示す値または定数を設定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

定数	値	内容

vbextSCCStatusControlled	1	ファイルはソース コード コントロールが管理中です。

vbextSCCStatusCheckedOut	2	カレント ユーザーがファイルを使用中です。

vbextSCCStatusOutOther	4	他のユーザーがファイルを使用中です。

vbextSCCStatusOutOfDate	32	最新のバージョンのファイルではありません。

vbextSCCStatusShared	512	ファイルはプロジェクト間で共有されています。


関連項目

AddFile メソッド (アドイン)

CheckIn イベント (アドイン)

CheckOut イベント (アドイン)

FileCount プロパティ (アドイン)

FileNames プロパティ (アドイン)

Reload メソッド (アドイン)

SaveAs メソッド (アドイン)


IconState プロパティ (アドイン) の対象

Component オブジェクト (アドイン)


Reload メソッド (アドイン)

関連項目	対象

構成要素 (.RES ファイル、フォーム モジュール、標準モジュール、およびクラス モジュール) に行った変更を保存しないで、再度ディスクからその構成要素をロードします。名前付き引数は、指定できません。

構文

object.Reload

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

カーソルの位置、コード ウィンドウ、およびフォームの参照可能範囲は、Reload メソッドに影響を受けません。Reload メソッドは、プロジェクトが最後に保存された後に編集されたかどうかを示す設定を変更しません。


関連項目

InsertFile メソッド (アドイン)

FileCount プロパティ (アドイン)

FileNames プロパティ (アドイン)

IsDirty プロパティ (アドイン)


Reload メソッド (アドイン) の対象

Component オブジェクト


AfterNewProject イベント (アドイン)

関連項目	対象

新しいプロジェクトが作成またはロードされたときに発生します。

構文

Sub AfterNewProject(projectname As String)

引数 projectname には、追加されたプロジェクトの名前を表す文字列式を指定します。


関連項目

Fetch イベント (アドイン)

CheckIn イベント (アドイン)

CheckOut イベント (アドイン)

ConnectEvents メソッド (アドイン)

UnCheckOut イベント (アドイン)

IconState プロパティ (アドイン)


AfterNewProject イベント (アドイン) の対象

FileControl オブジェクト (アドイン)


CheckIn イベント (アドイン)

関連項目	対象

[ツール] - [チェックイン] コマンドを選択すると発生します。

構文

Sub _CheckIn()

解説

ProjectTemplate オブジェクトの ConnectEvents メソッドが使用可能な場合に、[チェックイン] コマンドは使用できます。


関連項目

Fetch イベント (アドイン)

AfterNewProject イベント (アドイン)

CheckOut イベント (アドイン)

ConnectEvents メソッド (アドイン)

UnCheckOut イベント (アドイン)

IconState プロパティ (アドイン)


CheckIn イベント (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


CheckOut イベント (アドイン)

関連項目	対象

[ツール] - [チェックアウト] コマンドを選択すると発生します。

構文

Sub CheckOut()

解説

ProjectTemplate オブジェクトの ConnectEvents メソッドが使用可能な場合に、[チェックアウト] コマンドは使用できます。


関連項目

AfterNewProject イベント (アドイン)

CheckIn イベント (アドイン)

ConnectEvents メソッド (アドイン)

Fetch イベント (アドイン)

IconState プロパティ (アドイン)

UnCheckOut イベント (アドイン)


CheckOut イベント (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


Fetch イベント (アドイン)

関連項目	対象

[ツール] - [取得] コマンドを選択すると発生します。

構文

Sub Fetch()

解説

ProjectTemplate オブジェクトの ConnectEvents メソッドが使用可能なときに、[取得] コマンドは使用できます。


関連項目

AfterNewProject イベント (アドイン)

CheckIn イベント (アドイン)

CheckOut イベント (アドイン)

ConnectEvents メソッド (アドイン)

UnCheckOut イベント (アドイン)

IconState プロパティ (アドイン)


Fetch イベント (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


LoadProject メソッド (アドイン)

関連項目	対象

カレント プロジェクトに行った変更を保存しないで、指定されたプロジェクトをロードします。そのプロジェクトを参照する新しい ProjectTemplate オブジェクトを返します。名前付き引数は、指定できません。

構文

object.LoadProject(filename As String, replacecurrent As Boolean) As ProjectTemplate

LoadProject メソッドの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

filename	必ず指定します。ロードするプロジェクトのファイル名を特定する文字列式を指定します。長さ 0 の文字列 (" ") を指定すると、カレント プロジェクトが再度ロードされます。

replacecurrent	必ず指定します。新しいプロジェクトをカレント プロジェクトに置き換えるか、または追加するのかを決定するブール式を指定します。必ず真 (True) に設定します。


関連項目

AfterNewProject イベント (アドイン)

Reload メソッド (アドイン)


LoadProject メソッド (アドイン) の対象

Application オブジェクト (アドイン)


ReadOnlyMode プロパティ (アドイン)

関連項目	対象

Visual Basic の開発環境と読み取り専用ファイルに対して行える操作の種類を設定します。値の取得も可能です。

構文

object.ReadOnlyMode [= value]

ReadOnlyMode プロパティの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

value	プロジェクトの状態を示す値または定数を設定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 value の設定値は次のとおりです。

設定値	内容

1	Strict

プロジェクト ファイルが読み取り専用の場合、[ファイルの削除] および [ファイルの追加] コマンドは使用できません。ウィンドウおよびフォームの移動はできますが、その変更を保存することはできません。読み取り専用ファイルは、コード ウィンドウも読み取り専用です。コントロールの追加、削除、および位置の変更もできません。プロパティ ページ ダイアログ ボックスも使用できません。

0	Lenient

ファイルが読み取り専用の場合、コード、フォーム、およびプロジェクトへの変更は可能ですが、変更内容をファイルに保存することはできません。


関連項目

IconState プロパティ (アドイン)


ReadOnlyMode プロパティ (アドイン) の対象

Application オブジェクト (アドイン)


UnCheckOut イベント (アドイン)

関連項目	対象

[ツール] - [チェックアウトの取り消し] コマンドを選択すると発生します。

構文

Sub UnCheckOut( )

解説

ProjectTemplate オブジェクトの ConnectEvents メソッドが利用可能なときに、[チェックアウトの取り消し] コマンドは利用可能です。


関連項目

AfterNewProject イベント (アドイン)

CheckIn イベント (アドイン)

CheckOut イベント (アドイン)

ConnectEvents メソッド (アドイン)

Fetch イベント (アドイン)

IconState プロパティ (アドイン)


UnCheckOut イベント (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


ReadProperty 関数 (アドイン)

関連項目	対象

VBP ファイルの特定のユーザー定義型のセクションおよびキーより、文字列を返します。

構文

object.ReadProperty (section As String, key As String) As String

ReadProperty 関数の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

section	キーが見つかったセクションの名前を含む文字列式を指定します。

key	返すキーの名前を含む文字列式を指定します。

解説

引数 section または key が設定されていない場合、またはそれ自体が存在しない場合は、実行時エラー (5)“プロシージャ呼び出しが無効です。”が発生します。


関連項目

WriteProperty メソッド (アドイン)

Properties プロパティ (アドイン)

Property オブジェクト、Properties コレクション (アドイン)


ReadProperty 関数 (アドイン) の対象

ProjectTemplate オブジェクト (アドイン)


アドインの作成

関連項目

Microsoft Visual Basic では、アドインを設計し開発環境で使用する機能が提供されています。アドインを使用して、独自の項目を Visual Basic のメニューに追加したり、アクティブなフォームおよびそのコントロールを操作したり、さまざまなファイル コントロール イベントに反応したりできます。

アドインを使用する 3 つのサンプル アプリケーションは、\ALIGN、\DATAWIZ、および \SPY の各ディレクトリの \SAMPLES ディレクトリにあります。

ActiveProject プロパティ (アドイン)

Add メソッド (アドイン)

AddFile メソッド (アドイン)

AddFormTemplate メソッド (アドイン)

AddInMenu プロパティ (アドイン)

AddMDIFormTemplate メソッド (アドイン)

AddMenu メソッド (アドイン)

AddMenuTemplate メソッド (アドイン)

AddReference メソッド (アドイン)

AddToolboxProgID メソッド (アドイン)

AddToolboxTypelib メソッド (アドイン)

AddToolboxVBX メソッド (アドイン)

AfterAddFile イベント (アドイン)

AfterChangeFileName イベント (アドイン)

AfterClick イベント (アドイン)

AfterCloseFile イベント (アドイン)

AfterNewProject イベント (アドイン)

AfterRemoveFile イベント (アドイン)

AfterWriteFile イベント (アドイン)

Application オブジェクト (アドイン)

Application プロパティ (アドイン)

BeforeLoadFile イベント (アドイン)

CheckIn イベント (アドイン)

CheckOut イベント (アドイン)

ClassName プロパティ (アドイン)

Component オブジェクト、Components コレクション (アドイン)

ConnectEvents メソッド (アドイン)

Container プロパティ (アドイン)

ControlTemplate オブジェクト、ControlTemplates コレクション (アドイン)

ControlTemplates プロパティ (アドイン)

DisconnectAddIn イベント (アドイン)

DisconnectEvents メソッド (アドイン)

DoGetAddFileName イベント (アドイン)

DoGetNewFileName イベント (アドイン)

DoGetOpenProjectName イベント (アドイン)

Fetch イベント (アドイン)

FileControl オブジェクト (アドイン)

FileControl プロパティ (アドイン)

FileCount プロパティ (アドイン)

FileNames プロパティ (アドイン)

FormTemplate オブジェクト (アドイン)

FullName プロパティ (アドイン)

IconState プロパティ (アドイン)

IndexedValue プロパティ (アドイン)

InsertFile メソッド (アドイン)

IsDirty プロパティ (アドイン)

Item メソッド (アドイン)

LastUsedPath プロパティ (アドイン)

LoadProject メソッド (アドイン)

MenuItems コレクション (アドイン)

MenuItems プロパティ (アドイン)

MenuLine オブジェクト (アドイン)

NewEnum プロパティ (アドイン)

NumIndices プロパティ (アドイン)

ProjectTemplate オブジェクト (アドイン)

Properties プロパティ (アドイン)

Property オブジェクト、Properties コレクション (アドイン)

ReadOnlyMode プロパティ (アドイン)

ReadProperty 関数 (アドイン)

Reload メソッド (アドイン)

Remove メソッド (アドイン)

RemoveComponent メソッド (アドイン)

RequestChangeFileName イベント (アドイン)

RequestWriteFile イベント (アドイン)

SaveAs メソッド (アドイン)

SelectedComponents コレクション (アドイン)

SelectedComponents プロパティ (アドイン)

SelectedControlTemplates コレクション (アドイン)

SelectedControlTemplates プロパティ (アドイン)

SubMenu オブジェクト (アドイン)

UnCheckOut イベント (アドイン)

Value プロパティ (アドイン)

Version プロパティ (アドイン)

WriteProperty メソッド (アドイン)


関連項目

Visual Basic にアドインを追加

アドイン オブジェクトの操作


Visual Basic にアドインを追加

関連項目

Visual Basic の開発環境の拡張機能であるアドインを選択し管理することができます。アドインを使用して、独自の項目を Visual Basic のメニューに追加したり、アクティブなフォームおよびそのコントロールを操作したり、さまざまなファイル コントロール イベントに反応したりできます。

1.	新しいプロジェクトを開きます。アドイン オブジェクトをコード内で利用するには、[ツール] - [参照] コマンドを選択し、Microsoft Visual Basic Development Environment (VBIDE) への参照を追加します。

2.	クラス モジュールを挿入します。クラス モジュールの Instancing プロパティを Creatable SingleUse または Creatable MultiUse に設定します。Public プロパティは真 (True) に設定します。Name プロパティはアドインを特定する名前に設定します。

3.	クラス モジュールに ConnectAddIn および DisconnectAddIn イベントの宣言を追加します。Visual Basic の開発環境にメニューを追加するには、ConnectAddIn イベントを使用します。また、開発環境からのメニューの削除など、アドインを追加する前の状態にするには、DisconnectAddIn イベントを使用します。

4.	アドイン マネージャに追加したアドインの名前を変更するには、オブジェクト ブラウザを表示し、ConnectAddIn および DisconnectAddIn イベントを含むクラス モジュールを選択します。次に[オプション] ボタンを選択して、ダイアログ ボックスの [説明] ボックスに名前を入力します。

5.	VB.INI ファイルにリストを追加するコードを記述します。このコードは VB.INI の [Add-Ins16] および [Add-Ins32] の一方あるいは両方にリストを追加します。設定には、構文 projectname.classmodulename = 1 または 0 を使用します。0 を設定すると、アドインはアドイン マネージャに表示されます。1 の場合は、そのアドインは常に開発環境と共にロードされます。

アドインを追加したときに、アドイン自体によって自動的に VB.INI にリストが追加されるようにします。このコードの例は、サンプル アプリケーションの DFD.VBP (\DATAWIZ ディレクトリ)、ALIGN.VBP (\ALIGN ディレクトリ)、および SPY.VBP (\SPY ディレクトリ) にあります。メモ帳またはその他のテキスト エディタを使用して、このテキストを VB.INI に追加することもできます。

6.	アプリケーションを実行し、Visual Basic の 2 つめのインスタンスを開きます。この 2 つめのインスタンスで [ツール] - [参照設定] コマンドを選択し、[参照設定] ダイアログ ボックスで、新しいアドインを選択します。次に、新しいアドインを [アドイン マネージャ] ダイアログ ボックスで選択します。その後、アドインは独自のインターフェイスで新しいフォームを表示するか、または [参照設定] ダイアログ ボックスに項目を追加します。

7.	アドインをデバッグした後に実行可能ファイル (.EXE) またはインプロセス サーバー DLL にコンパイルします。


関連項目

ConnectAddIn イベント (アドイン)

アドインの作成

DisconnectAddIn イベント (アドイン)

アドイン オブジェクトの操作


アドイン オブジェクトの操作

関連項目

Visual Basic では、アドインの開発に使用される 3 種類のオブジェクトが用意されています。1 つめは新しいメニューの追加およびメニュー選択に応答するためのオブジェクト、2 つめはプロジェクト内のファイルを作成したり、開いたり、閉じたりするためのオブジェクト、3 つめはプロジェクト内のフォームおよびコントロールを操作するためのオブジェクトです。

Visual Basic のメニュー項目の挿入

新しいメニュー項目の追加および操作には、SubMenu オブジェクト、MenuItems コレクション、そして MenuLine オブジェクトを使用します。アドイン メニューにメニューおよびコマンドを追加するには、AddInMenu プロパティを使用します。

Visual Basicでのファイルの操作

Visual Basic でのファイルの操作には、FileControl オブジェクトを使用します。プロジェクト ファイルへのどんな変更も、FileControl イベントが報告してくれます。他の Visual Basic のオブジェクトをファイル コントロール イベントに接続するには、FileControl メソッドを使用します。

フォームおよびコントロールの操作

さまざまなオブジェクトを使用して、プロジェクトに含まれるオブジェクトを列挙および操作することができます。

ProjectTemplate オブジェクト

SelectedComponents コレクション

Component オブジェクト

Components コレクション

FormTemplate オブジェクト (アドイン)

ControlTemplates コレクション

SelectedControlTemplates コレクション (アドイン)

ControlTemplate オブジェクト

Properties コレクション

Property オブジェクト


関連項目

アドインの作成

Visual Basic にアドインを追加

アドイン オブジェクトの操作


IndexedValue プロパティ (アドイン)

関連項目	対象

インデックス付きリストあるいは配列の値を設定します。値の取得も可能です。

構文

object.IndexedValue [Index1, [Index2,][ Index3,] [ Index4]][ = value]

IndexedValue プロパティの指定項目は次のとおりです。

指定項目	内容

object	オブジェクトへの参照を表すオブジェクト式を指定します。

Indexn	インデックスの位置を示す数式を指定します。IndexedValue プロパティには最高 4 つまでのインデックスを指定できます。IndexedValue プロパティに指定したインデックスの数は、そのプロパティに対し NumIndices プロパティが返した値です。

value	コントロールに指定できる型への参照を表す式を指定します。

解説

NumIndices プロパティの値が 0 より大きい場合のみ、IndexedValue プロパティは使用されます。リスト ボックス (ListBox) コントロールの List プロパティのように、インデックス付きリストの値は単一のインデックスを使用して設定あるいは取得します。


関連項目

NumIndices プロパティ (アドイン)


IndexedValue プロパティ (アドイン) の対象

Property オブジェクト (アドイン)


NumIndices プロパティ (アドイン)

関連項目	対象

Property オブジェクトにより返されたプロパティのインデックスの数を返します。

構文

object.NumIndices

引数 object には、オブジェクトへの参照を表すオブジェクト式を指定します。

解説

NumIndices プロパティの値は 0 ～ 4 の範囲です。ForeColor プロパティのように、通常のプロパティには NumIndices プロパティは 0 を返します。リスト ボックス (ListBox) コントロールの List プロパティのように、従来の方法で索引が付けられたプロパティは 1 を返します。プロパティ配列は 2 を返す可能性があります。


関連項目

IndexedValue プロパティ (アドイン)


 NumIndices プロパティ (アドイン) の対象

Property オブジェクト (アドイン)


[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

関連項目

32 ビット版のダイナミック リンク ライブラリ ファイル (.DLL) 形式のインプロセス OLE サーバーを作成します。このコマンドは、Visual Basic の Professional Edition および Enterprise Edition でのみ使用できます。

DLL の開発方法は、実行可能ファイル (.EXE) の開発と異なります。DLL は他のアプリケーションから使用されるので、プログラミング上の特定の制約事項に注意する必要があります。インプロセス OLE サーバーを実際に作成したり、アウトプロセス OLE サーバーのプロジェクトをインプロセス OLE サーバーに変更する場合は、次の項目を参照してください。

インプロセス OLE サーバーとは

インプロセス OLE サーバーのプログラミングの制約事項

インプロセス OLE サーバーの開発

また、Professional Edition に付属の「OLE サーバー作成ガイド」も参照してください。

インプロセス OLE サーバーを実行するには、OLE クライアントで OLE サーバーのクラスからオブジェクトを作成します。他の DLL と同じように、インプロセス OLE サーバーは単独では実行できません。

OLE クライアントがオブジェクトを作成すると、OLE サーバーを含む DLL ファイルが OLE クライアントのプロセス内にロードされます。実行時には、ファイル VB40032.DLL が、\WINDOWS\SYSTEM ディレクトリ、またはユーザーが指定したパスのディレクトリに存在する必要があります。インプロセス OLE サーバーの要求によって、他のファイルが必要な場合もあります。

このコマンドは、プロジェクトに含まれるファイルには影響しません。インプロセス OLE サーバーが含まれる DLL ファイル以外のファイルは、そのまま使用したり、変更したりできます。

ダイアログ ボックスのオプション

[ファイル名] ボックス

DLL ファイルの名前を入力します。特に指定しない場合は最初に表示されているファイル名が使用されます。リスト ボックス内のファイル名を選択すると既存のファイルに上書きされます。ファイル名の拡張子を省略すると自動的に拡張子 .DLL がファイル名に付けられます。

[ディレクトリ] ボックス

DLL ファイルを保存するディレクトリを選択します。選択したディレクトリに同じ名前のファイルが存在するときは上書きされます。

[ドライブ] ボックス

DLL ファイルを保存するドライブを指定します。

[OK] ボタン

アプリケーションの実行可能なファイルを作成します。

[キャンセル] ボタン

ダイアログ ボックスを閉じます。DLL は作成されません。

[オプション] ボタン

[OLE DLL オプション] ダイアログ ボックスを表示します。インプロセス OLE サーバーのタイトルおよびアイコン、メジャー バージョンおよびマイナー バージョン情報のほかに、著作権、商標、会社名、製品名、およびベース アドレス情報を設定できます。

[ネットワーク] ボタン

[ネットワーク ドライブの接続] ダイアログ ボックスを表示します。ネットワーク ドライブに接続しリモート ドライブに DLL を保存することができます。


関連項目

OLE サーバーの作成

インプロセス OLE サーバーの開発

[OLE DLL オプション] ダイアログ ボックス

Icon プロパティ

インプロセス OLE サーバーのプログラミングの制約事項

外部から作成可能なオブジェクトの使い方

インプロセス OLE サーバーとは


インプロセス OLE サーバーの開発

関連項目

インプロセス OLE サーバーは DLL 形式です。オブジェクトを使用する OLE クライアント アプリケーションと同じプロセス内で実行されます。ここでは、DLL の開発と実行可能ファイル (.EXE) の開発の違いについて説明します。

初めてインプロセス OLE サーバーを構築する場合は、次の項目を参照してください。

インプロセス OLE サーバーとは

インプロセス OLE サーバーのプログラミングの制約事項

また、Professional Edition および Enterprise Edition に付属の「OLE サーバー作成ガイド」も参照してください。

ベース アドレスの指定

[OLE DLL オプション] ダイアログ ボックスは、[EXE オプション] ダイアログ ボックスと次の点を除いて同じです。[OLE DLL オプション] ダイアログ ボックスには、[DLL ベース アドレス] オプション ボタンがあります。このオプションを使用すると、インプロセス OLE サーバーのベース アドレスを入力できます。“ベース アドレス”によって、DLL が OLE クライアント アプリケーションのアドレス空間のどこにロードされるかが決定されます。

32 ビットのオペレーティング システムでは、DLL を指定したベース アドレスにロードできる場合、DLL のコード ページは、そのコード ページを使用するプロセス間で共有されます。たとえば、3 つの OLE クライアントが同じ DLL を使用できます。この場合、コードはメモリに 1 度だけロードされます。プロセス空間で DLL によって使用されるメモリ位置が、他の DLL または実行可能ファイルで使用されるメモリ位置と競合する場合は、DLL ベース アドレスを別の論理メモリ位置に変更する必要があります。

DLL で使用されるメモリは、指定したベース アドレスから始まり、DLL ファイルのサイズになります。サイズは 64KB の倍数に切り上げられます。2 つの DLL で使用されるメモリ位置が競合する場合には、一方のベース アドレスが変更されます。

ベース アドレスの変更では、コードとデータをロードする論理メモリ位置がオペレーティング システムによって動的に再計算されることになります。再計算が行われると、ロード処理の速度は低下します。また、通常、動的に再配置されるコードは共有できません。

DLL ベース アドレスの既定値は固定です。パフォーマンスを最適化して、必要なメモリ容量をできるだけ少なくするには、インプロセス OLE サーバーのベース アドレスがロード時に変更されることがないように、[DLL ベース アドレス] ボックスを使用して、アプリケーションを調整します。特に Microsoft Visual Basic で作成したインプロセス OLE サーバーが複数ロードされる場合は、このオプションを使用して調整する必要があります。初期設定によって、すべてのベース アドレスが同じアドレスに設定されるため、ベース アドレスは必ず変更されるからです。

注   ベース アドレスの値は 64KB の倍数です。通常、実行可能ファイルは、4 MB の論理アドレスにロードされます。Microsoft Windows 95 では、4 MB 以下の領域は予約されています。また、Windows 95 および Microsoft Windows NT では、2 GB 以上の領域も予約されています。

インプロセス OLE サーバーのデバッグ

開発環境でインプロセス OLE サーバー プロジェクトを実行する場合は、アウトプロセス OLE サーバーとしてだけ機能します。OLE クライアントであるテスト プロジェクトのプロセスで実行することはできません。

したがって、インプロセス OLE サーバーがインプロセスで実行される場合について、デバッグすることはできません。コードをデバッグするには、Visual Basic の 1 つのインスタンスで OLE サーバー プロジェクトを実行し、Visual Basic の 2 番めのインスタンスで OLE クライアント テスト プログラムから OLE サーバーのオブジェクトのプロパティおよびメソッドにアクセスします。これは、アウトプロセス OLE サーバーをデバッグする場合と同じです。

より効果的にデバッグを行うには、コンパイル済みのインプロセス OLE サーバーの場合と同じ制約事項を適用して、インプロセス OLE サーバーのコードを実行します。プロジェクトに対して制約事項を適用するには、[オプション] ダイアログ ボックスの [詳細設定] タブで [OLE DLL 制限の使用] チェック ボックスをオンにします。

[OLE DLL 制限の使用] チェック ボックスをオンにすると、開発環境で、インプロセス OLE サーバーがインプロセスで実行されるときと同じエラーが生成されます。たとえば、コンパイル済みのインプロセス OLE サーバーがモードレス フォームを表示しようとした場合、Visual Basic によって実行時エラーが生成されます。[OLE DLL 制限の使用] チェック ボックスをオンにした状態で、インプロセス OLE サーバーを開発環境で実行した場合は、同じエラーが生成されます。

コンパイル済みの インプロセス OLE サーバーのテスト

インプロセス OLE サーバー プロジェクトを DLL ファイルとして作成した場合、Visual Basic 開発環境で実行される OLE クライアント プログラムを使用して、そのプロジェクトをテストします。この場合、インプロセス OLE サーバーは、テスト プロジェクトを実行する Visual Basic のプロセス空間にロードされます。DLL ファイルで致命的なエラーが発生すると、Visual Basic は不正に終了します。

コンパイル済みの Visual Basic プログラム内のイベント プロシージャで、トラップできないエラーが発生すると致命的なエラーになります。これは、プロシージャの呼び出しリストの中でイベント プロシージャより上のレベルにプロシージャがないため、他のエラー処理ルーチンを呼び出すことができないためです。インプロセス OLE サーバー DLL で発生した致命的なエラーは、OLE クライアントのプロセス (この場合は Visual Basic) にとっても致命的なエラーです。したがって、インプロセス OLE サーバーをテストする場合は、注意が必要です。

重要   Visual Basic 用のインプロセス アドインを設計する場合は、クラス モジュールの Initialize イベントと Terminate イベントも含めて、どのイベント プロシージャ コードでもエラー トラップを記述してください。

インプロセス OLE サーバーの登録

[ファイル] - [OLE DLL ファイルの作成] コマンドを選択して DLL を作成すると、新しく作成されたインプロセス OLE サーバーがシステムのレジストリに登録されます。これは、アウトプロセス OLE サーバーが登録される場合と同じです。

インプロセス OLE サーバーは、\TOOLS\PSS ディレクトリに格納されている REGSVR32.EXE (CD-ROM 版のみ) を使用して登録することもできます。Visual Basic インプロセス OLE サーバーでは、REGSVR32.EXE と Visual Basic セットアップ ツールキットをサポートするのに必要なエントリ ポイントが公開されています。

リモート オートメーションとインプロセス OLE サーバーの併用 (Enterprise Edition)

OLE クライアントは、リモート コンピュータの インプロセス OLE サーバーからオブジェクトを直接作成できませんが、アウトプロセス リモート オートメーション サーバーを介してインプロセス OLE サーバーのオブジェクトを使用できます。

たとえば、OLE クライアントは、リモート コンピュータで実行されているアウトプロセス OLE サーバーによって提供されるオブジェクトへの参照を取得し、そのオブジェクトのメソッドを呼び出すことができます。このメソッドを介して、リモート コンピュータ上のインプロセス OLE サーバーで提供されるオブジェクトを作成して使用することができます。インプロセス OLE サーバー DLL はアウトプロセス OLE サーバーのプロセスにロードできます。これは、アウトプロセス OLE サーバーが、独立したプロセスを持つ実行可能ファイル (.EXE) であるためです。

アウトプロセス OLE サーバーのオブジェクトのメソッドは、インプロセスOLE サーバーの提供するパブリック オブジェクトへの参照を返すことができます。異なるコンピュータの OLE クライアントは、これらのオブジェクトへの参照を使用できます。

注   OLE クライアントは、リモート コンピュータ上のアウトプロセス OLE サーバーからオブジェクトへの参照を取得します。次に、そのオブジェクトのメソッドを呼び出して、リモート コンピュータ上のインプロセス OLE サーバーによって提供されるオブジェクトへの参照を取得できます。OLE クライアントが最初のオブジェクトへの参照を解放したときに、アウトプロセス OLE サーバーのオブジェクトに対する参照が他にない場合には、インプロセス OLE サーバーのオブジェクトに対する参照が残されていても、リモート コンピュータ上のこの 2 つの OLE サーバーの実行は継続されません。アウトプロセス OLE サーバーがアンロードされるときに、インプロセス OLE サーバーも同時にアンロードされます。インプロセス OLE サーバーのオブジェクトに対する参照も無効になります。

インプロセス OLE サーバーおよび実行可能ファイル (EXE) としてコンパイルする。

インプロセス OLE サーバーおよびアウトプロセス OLE サーバーは、プロジェクト ファイルで同じバージョン情報の設定値を使用します。実行可能ファイル (.EXE) とインプロセス OLE サーバー (.DLL) を同じソースから作成する場合、プロジェクト ファイルに保存されるのは、1 組のバージョン情報だけです。プロジェクト ファイル (.VBP) に保存されるのも、1 つの共有の ExeName32 エントリだけです。たとえば、インプロセス OLE サーバーに MYDLL.DLL という名前を付けると、[EXE ファイルの作成] ダイアログ ボックスを表示したときにも、既定のファイル名は、MYDLL.EXE ではなく、MYDLL.DLL になります。[EXE ファイルの作成] ダイアログ ボックスおよび [OLE DLL ファイルの作成] ダイアログ ボックスのそれぞれで、実行可能ファイルとインプロセス OLE サーバーの適切な名前を指定してください。

コマンド ラインからのインプロセス OLE サーバーの作成

コマンド ライン /makedll を使用して、コマンド ラインからインプロセス OLE サーバーのコンパイルおよび構築を行うことができます。

vb32[.exe] [[{/run | /r} projfilename] [[{/d compileconst}][{/make | /m | /makedll |/l} projfilename [outputfilename] ] {/cmd argument | /c argument }]

/makedll スイッチの使用により、Visual Basic はプロジェクト ファイルの Path プロパティ、EXEName プロパティ、および Title プロパティの既存の設定値を使用して、プロジェクトをコンパイルし、インプロセス OLE サーバーを作成することができます。


関連項目

OLE サーバーの作成

[OLE DLL オプション] ダイアログ ボックス

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

インプロセス OLE サーバーのプログラミングの制約事項

外部から作成可能なオブジェクトの使い方

インプロセス OLE サーバーとは


インプロセス OLE サーバーのプログラミングの制約事項

関連項目

インプロセス OLE サーバーは、他のアプリケーションのプロセスで実行される DLL です。ここでは、Microsoft Visual Basic の DLL での動作の違い、DLL 内の Visual Basic のコードに適用される制限、およびインプロセス OLE サーバーを作成する上でのプログラミングの実際について説明します。

初めてインプロセス OLE サーバーを構築する場合は、次の項目を参照してください。

インプロセス OLE サーバーとは

インプロセス OLE サーバーの開発

また、Professional Edition に付属の「OLE サーバー作成ガイド」も参照してください。

32 ビット環境でのみ使用可能

インプロセス OLE サーバーの開発および実行は、32 ビットのオペレーティング システム (Microsoft Windows 95 または Microsoft Windows NT) でのみ可能です。

1 つ以上のパブリック クラス モジュールを作成する

インプロセス OLE サーバーにアクセスするには、パブリック クラスのオブジェクトを外部から作成する必要があります。したがって、Public プロパティが真 (True) であり、Instancing プロパティが 2 (Creatable MultiUse) に設定されているクラス モジュールを、OLE サーバー プロジェクトに 1 つ以上作成する必要があります。

プロジェクトにパブリック クラス モジュールがない場合、[ファイル] - [OLE DLL ファイルの作成] コマンドを選択したときに、“作成可能なパブリック クラス モジュールが見つかりません。”というエラーが発生します。

モードレス フォームを使用しない

インプロセス OLE サーバーでは、モードレス フォームを表示できません。モードレス フォームを表示すると、“DLL 内で不正な操作が行われました。”という実行時エラーが発生します。

この制約事項により、MDI フォームおよび MDI 子フォーム (MDIChild プロパティが真 (True) に設定されているフォーム) も表示できません。これらのフォームはモーダル フォームとして表示できないからです。MDI フォームをロードしようとすると、実行時エラーが発生します。

フォームおよびメッセージ ボックスの表示方法

インプロセス OLE サーバー内のメソッドによって、フォームまたはメッセージ ボックスが表示されているときに、クライアント アプリケーションによって、Click イベントおよび Timer イベントなどのイベント プロシージャ内のコードが実行される可能性があります。OLE クライアント アプリケーションの開発者がこのような状況を想定していない場合は、再入に関する問題が発生する可能性があります。

フォームやメッセージ ボックスを直接表示する代わりに、モーダル フォームを表示するメソッドを提供してください。クライアント アプリケーションの開発者がそのメソッドの目的を認識できるように明確な名前を付けてください。

エラーは、メソッドの戻り値として OLE クライアントに返すか、Err オブジェクトの Raise メソッドで生成します。既にモーダル フォームが表示されているのではない限り、モーダル フォームまたはメッセージ ボックスを使用して、インプロセス OLE サーバーからエラーを表示しないでください。

Sub Main プロシージャを指定する

スタートアップ フォームは、モードレス ウィンドウとして定義されているので、インプロセス OLE サーバーでは、スタートアップ フォームの代わりに標準モジュール内の Sub Main プロシージャを指定します。Sub Main プロシージャを指定しないと、コンパイル エラーが発生します。

Sub Main プロシージャのコードは、最初のオブジェクトを作成するための OLE クライアントからの要求に応答して、インプロセス OLE サーバーがロードされるときに実行されます。すべてのオブジェクト参照が解放され、OLE サーバーが終了した後、OLE クライアントによって、新しいオブジェクトの作成が要求されると、Sub Main プロシージャが再実行されます。Sub Main プロシージャは、パブリック変数を初期化し、その他の初期化操作を実行するために使用します。インプロセス OLE サーバーの Sub Main プロシージャには、必要最低限のコードを指定します。Sub Main プロシージャからフォームおよびメッセージ ボックスは表示しないでください。また、Sub Main プロシージャで DoEvents 関数を呼び出さないでください。

DoEvents 関数および再入

インプロセス OLE サーバーで DoEvents 関数を使用する場合は注意が必要です。DoEvents 関数を使用すると、OLE サーバーのコードの実行中に、OLE クライアント内の Timer イベントなどのコードを実行できるようになります。OLE サーバーへの呼び出しの実行が終了しないうちに、OLE クライアントによって OLE サーバーへの参照がすべて解放される可能性があります。

OLE では、インプロセス OLE サーバーのメソッドに対する呼び出しは順次処理されません。したがって、同じメソッドに対して複数の呼び出しを実行すると、呼び出しリストに、同時にこれらの呼び出しが登録されます。通常のアプリケーションで DoEvents 関数をネストした場合と同様に、各呼び出しは呼び出したときと逆の順序で終了します。メソッドで静的変数またはパブリック関数を使用していた場合、予期しない結果になることがあります。

インプロセス OLE サーバーで、ロードされている非表示フォームで Timer イベントを使用する場合も、同様の結果になる可能性があります。

モーダル フォームによるシャットダウン妨害

インプロセス OLE サーバーによってモーダル フォームが表示されている場合、オブジェクトへの参照がすべて解放されても、OLE サーバーはロードされたままになります。この参照は、画面を見て操作しているユーザーのために保持されます。

たとえば、OLE クライアントによってインプロセス OLE サーバーのメソッドが呼び出され、そのメソッドによってモーダル フォームが表示されているとします。このときに、OLE クライアントの他のコード (Timer イベントなど) が実行されて、メソッドを呼び出すために使用していたオブジェクトへの参照が解放されても、モーダル フォームが表示されていることによって、OLE サーバーは存続します。これは適切な OLE クライアントのプログラミング方法ではありません。この方法でプログラムを作成すると、クライアント アプリケーションを終了する場合に、致命的なエラーが発生する可能性があります。その結果、アプリケーションの終了コードも実行できなくなることもあります。

インプロセス OLE サーバーがシャットダウンするときは、非表示のフォームはアンロードされる

インプロセス OLE サーバーのオブジェクトへの最後の参照が解放されたときに、ロードされている非表示フォームがあっても、OLE サーバーはシャットダウンされます。これは、アウトプロセス OLE サーバーの動作と異なります。

インプロセス OLE サーバーがシャットダウンするときは、ロードされている非表示フォームの QueryUnload イベント プロシージャは呼び出されません。Unload イベントは呼び出されますが、Unload イベントの引数 cancel は無視されます。

すべてのフォームがアンロードされた場合、インプロセス OLE サーバーのシャットダウン コードでは、フォームの Unload イベントおよび Terminate イベントでオブジェクトへの参照が作成されていないかどうか確認されます。シャットダウンの途中で OLE クライアントがオブジェクトを作成することはできません。Unload イベントまたは Terminate イベントで、オブジェクトへの参照が作成される場合、OLE サーバーはその終了処理を完了できません。

End ステートメントを使用しない

インプロセス OLE サーバーでは、End ステートメントを使用できません。End ステートメントを使用すると、コンパイル エラーが発生します。

Createable SingleUse を指定したクラス モジュールはサポートされない

アウトプロセス OLE サーバーの場合、クラス モジュールの Instancing プロパティに 1 (Creatable SingleUse) を設定して、クラスのインスタンスが作成されるたびに OLE サーバーの新しいインスタンスがロードされるようにすることができます。インプロセス OLE サーバーの場合は、DLL を 1 つのプロセスに複数回ロードすることはないため、この設定は使用できません。

Instancing プロパティに 1 (Creatable SingleUse) を設定すると、“クラス <クラス名> の Instancing プロパティには DLL の Creatable SingleUse を設定することはできません。”というコンパイル エラーが発生します。

オブジェクトの循環参照を避ける

インプロセス OLE サーバーでは循環参照は使用できません。たとえば、クラス A のオブジェクトがクラス B のオブジェクトを参照し、さらにクラス B の参照されたオブジェクトがクラス A のオブジェクトを参照することはできません。

Visual Basic では、オブジェクトが循環参照されている場合、OLE クライアントによって、オブジェクトへの参照がすべて解放されても、これらのオブジェクトは破棄されません。また、使用されているメモリも解放されません。そのため、これらのオブジェクトによってその後もメモリが使用されるので、アプリケーションを終了させるときにエラーが発生します。

パブリック オブジェクト変数の設定

インプロセス OLE サーバーの標準モジュールで、パブリック オブジェクト変数を宣言し、その変数に OLE サーバーで提供されているオブジェクトへの参照を設定することは避けてください。このように設定すると、インプロセス OLE サーバーは終了する必要があるときに終了できません。

プライベート オブジェクトの受け渡しをしない

インプロセス OLE サーバーのメソッドとプロパティでは、Public プロパティが偽 (False) に設定されているクラスのオブジェクトへの参照を返すことは避けてください。また、Printer オブジェクト、フォーム、およびコントロールなどのように、Visual Basic オブジェクト ライブラリ内のオブジェクトへの参照も返さないようにしてください。

インプロセス OLE サーバーを使用して別の OLE サーバーのメソッドを呼び出す場合、これらのオブジェクトへの参照をメソッドの引数として、渡さないようにしてください。

プライベート オブジェクトは、インプロセス OLE サーバー プロジェクトの外部では使用するものではありません。これらのオブジェクトをクライアント アプリケーションに渡すと、プログラムの安定性が損なわれる可能性があります。また、Visual Basic の将来のバージョンとの互換性も失われる可能性があります。

プライベート オブジェクトが多く参照されても、インプロセス OLE サーバーの実行を継続させる要因にはなりません。一方、パブリック オブジェクト (Public プロパティが真 (True) に設定されているクラスのオブジェクト) への参照が 1 つでもある場合は、インプロセス OLE サーバーの実行が継続されます。

インプロセス OLE サーバーの Printer オブジェクトなどの、プライベート オブジェクトへの参照が OLE クライアントで保持されているときに、インプロセス OLE サーバーが終了すると、そのオブジェクトを参照する OLE クライアント内のコードで、致命的なプログラム障害が発生する可能性があります。

インプロセス OLE サーバーと他の OLE サーバーの対話

次の操作は、Visual Basic のインプロセス OLE サーバーの代わりに OLE クライアント プログラムで実行します。

インプロセス OLE サーバーが別の OLE サーバーへの呼び出しを実行している途中に、フォームの再描画を可能にする。

一時的に使用中だった他のサーバーへの呼び出しを再実行する。

インプロセス OLE サーバーが使用中であることを、呼び出した側に通知する。たとえば、モーダル フォームを表示している場合で、クライアント アプリケーションがこの状況を処理することができないときは、呼び出しは失敗します。

OLE クライアント アプリケーションが、Visual Basic でコンパイルされた実行可能ファイルである場合は、これらの機能がすべてアプリケーションに含まれます。

Initialize イベントおよび Terminate イベントでエラー トラップを使用する

アウトプロセス OLE サーバーの場合と異なり、インプロセス OLE サーバーはクライアント アプリケーションのプロセス空間にロードされます。このため、インプロセス OLE サーバーの安定性に問題があると、クライアント アプリケーション全体の安定性が損なわれる可能性があります。

たとえば、アウトプロセス OLE サーバーを使用している場合、オブジェクトの Initialize イベントまたは Terminate イベントでトラップされないエラーが発生すると、アウトプロセス OLE サーバーが不正にシャットダウンされます。この結果、OLE クライアントには不正なオブジェクト参照が保持されたままになりますが、そのために直接的に OLE クライアントで障害が発生するわけではありません。

インプロセス OLE サーバーで同じエラーが発生すると、OLE クライアントのイベント プロシージャでトラップされないエラーが発生した場合と同じように、OLE クライアント アプリケーションが不正にシャットダウンされます。通常、コンパイル済みの Visual Basic アプリケーションのイベント プロシージャでトラップされないエラーが発生すると、致命的です。この場合、呼び出しリストの中でイベント プロシージャより上のレベルにプロシージャがないため、他のエラー処理ルーチンを呼び出すことはできません。

重要   インプロセス OLE サーバーのどのイベント プロシージャでトラップされないエラーが発生した場合も、クライアント アプリケーションは不正にシャットダウンされます。イベントでエラーが発生する可能性がある場合には、必ずエラーをトラップしてください。

別のファイル番号を使用する

Visual Basic のインプロセス OLE サーバーは、プロセスが実行されている OLE クライアントと同じファイル番号を使用できません。クライアント アプリケーションでファイルを開き、ファイル番号をインプロセス OLE サーバーに渡すことはできません。インプロセス OLE サーバーでは、1 ～ 255 の範囲のファイル番号を使用できます。

DDE はサポートされない

インプロセス OLE サーバーでは、ダイナミック データ エクスチェンジ (DDE) を使用できません。

Command$ は長さ 0 の文字列を返す

インプロセス OLE サーバーでは、Command$ によって長さ 0 の文字列 ("") が返されます。インプロセス OLE サーバーで OLE クライアントからのコマンド ライン文字列が必要な場合には、クライアントから呼び出すことができるメソッドを作成するか、またはクライアントがこの情報を渡すために設定できるプロパティを作成します。

App オブジェクト

インプロセス OLE サーバーでは、App オブジェクトは、それが実行されている OLE クライアントのプロセスではなく、DLL を示します。たとえば、App.Path では、インプロセス OLE サーバーが組み込まれているディレクトリが返されます。

次のプロパティは、インプロセス OLE サーバーで使用する場合に、通常と異なる動作をするか、または使用に関する制約事項がある App オブジェクトのプロパティです。

プロパティ	インプロセス OLE サーバーでの動作

PrevInstance	常に偽( False )を返します。

StartMode	常に定数 vbSModeAutomation を返します。

Olexxx	OLEServerBusyMsgText プロパティのような OLExxx プロパティの使用はすべて、実行時エラー“DLL 内で不正な操作が行われました。”(Error 369) という実行時エラーが発生します。

Screen オブジェクト

Screen オブジェクトのプロパティをインプロセス OLE サーバーで使用すると、次のように動作します。

プロパティ	インプロセス OLE サーバーでの動作

ActiveControl	現在アクティブのコントロールがインプロセス OLE サーバーでない場合は、Null 値を返します。

ActiveForm	Screen.ActiveControl と同じ動作をします。

MousePointer	このプロパティは、インプロセス OLE サーバーに対してローカルです。このプロパティは、インプロセス OLE サーバーによって表示されるフォームでのみ有効です。OLE クライアントのマウス ポインタの状態を検出するためには使用できません。

Printer オブジェクト

インプロセス OLE サーバーは、独自の Printer オブジェクトを保持します。OLE サーバーがプリンタに対して実行する処理は、クライアントで行われるプリンタの操作とは別に処理されます。コードを記述する場合、Printer オブジェクトをインプロセス OLE サーバーに対してのみ使用するようにします。

Forms コレクション

インプロセス OLE サーバーには、独自の Forms コレクションがあります。Visual Basic を使用して OLE クライアントを作成した場合、インプロセス OLE サーバーの Forms コレクションは、クライアント アプリケーションの Forms コレクションとは別に処理されます。

インプロセス OLE サーバーの終了

インプロセス OLE サーバーがアンロードされるときに、終了イベントは発生しません。


関連項目

OLE サーバーの作成

インプロセス OLE サーバーの開発

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

外部から作成可能なオブジェクトの使い方

インプロセス OLE サーバーとは


インプロセス OLE サーバーとは

関連項目

[OLE DLL ファイルの作成] コマンドを使用して、インプロセス OLE オートメーション サーバーを作成することができます。このファイルは、その機能を使用する OLE クライアントと同じプロセスで動作するダイナミック リンク ライブラリ (DLL) です。

インプロセス OLE サーバー (DLL) によって提供される機能には、OLE オートメーションを使用してアクセスします。Microsoft Visual Basic、Microsoft Access、または他の OLE オートメーション対応のプログラミング ツールで作成されたプログラムでは、インプロセス OLE サーバーのクラスからオブジェクトを作成し、そのオブジェクトのプロパティとメソッドを呼び出すことができます。

たとえば、Math (数値計算) という名前のインプロセス OLE サーバーに、Calculation クラス (演算) があるとします。Visual Basic で作成したアプリケーションからは、標準モジュール内の変数に Calculation オブジェクトへの参照を格納することにより、Calculation クラスのメソッドを使用できます。

' OLE クライアント プロジェクトの標準モジュールのコード。

Public gcalcMain As New Math.Calculation

変数 gcalcMain は、As New を指定して宣言されているので、変数がコード内で最初に使用されるときに、Calculation オブジェクトが作成されます。DLL がまだ実行されていない場合には、DLL は OLE クライアントのプロセスにロードされます。Calculation オブジェクトに Factor メソッドがあるとします。このメソッドは、引数として長整数型 (Long) の値を受け取り、素因数を含むバリアント型 (Variant) の配列を返します。この場合、次のコードを記述して Calculation オブジェクトを作成し、Factor メソッドを呼び出します。

' OLE クライアント プログラム内のコード。

Private Sub Command1_Click()

Dim vntFactors As Variant

Dim vntFactor As Variant

vntFactors = gcalcMain.Factor(4562711)

For Each vntFactor In vntFactors

MsgBox vntFactor

Next

End Sub

一度 Calculation オブジェクトを作成すると、変数 gcalcMain が適用範囲 (スコープ) 外になるまで、または変数 gcalcMain に Nothing が設定されるまで、オブジェクトは存続します。この例では、プログラムが終了するまでです。オブジェクトが作成される場合のオーバーヘッドは、変数を最初に参照するときだけ発生します。また、プログラムを起動するときに、Set ステートメントおよびキーワード New を使用して Calculation オブジェクトを作成することもできます。

注   Declare ステートメントを使用して、Visual Basicのインプロセス OLE サーバーを呼び出すことはできません。

インプロセス OLE サーバーを構築するときは、特に考慮すべき制限および開発上の注意があります。初めてインプロセス OLE サーバーを構築する場合は、次の項目を参照してください。

インプロセス OLE サーバーのプログラミングの制約事項

インプロセス OLE サーバーの開発

また、Professional Edition および Enterprise Edition に付属の「OLE サーバー作成ガイド」も参照してください。

インプロセス OLE サーバーを使用する利点

インプロセス OLE サーバーは、アウトプロセス OLE サーバー (独立したアドレス空間で実行される実行可能ファイル) より、大幅に高速に呼び出すことができます。サーバーとクライアントのプロセス間で引数および戻り値を転送する必要がないからです。

インプロセス OLE サーバーを使用して、次のことができます。

コンパイルしたコードをカプセル化して、開発チームで共有する場合。

Visual Basic で使用するウィザードおよびアドインを作成する場合。

Microsoft Access、Microsoft Excel などの、OLE サーバーを使用できるクライアント アプリケーションから呼び出すことができる、コンパイル済みのコードを作成する場合。

大きなアプリケーションを、ユーザー インターフェイスを含む 1 つの実行可能ファイルと、複数のインプロセス OLE サーバーのコンポーネントに分割する場合。分割した OLE コンポーネントは他の OLE クライアントからもインプロセスで使用できます。


関連項目

OLE サーバーの作成

インプロセス OLE サーバーの開発

[OLE DLL ファイルの作成] コマンド ([ファイル] メニュー)

インプロセス OLE サーバーのプログラミングの制約事項

外部から作成可能なオブジェクトの使い方


[EXE オプション] および [OLE DLL オプション] ダイアログ ボックス

[OLE DLL オプション] ダイアログ ボックス

[EXE オプション] ダイアログ ボックス


IMEMode プロパティ

対象

オブジェクトがフォーカスを持っているときに設定される日本語入力システム (IME) の入力モードや状態を設定します。

構文

object.IMEMode[= style]

IMEMode プロパティの構文の指定項目は次のとおりです。

指定項目	内容

object	オブジェクトを表すオブジェクト式を指定します。

style	IME のモードを指定します。設定する値については、次の「設定値」を参照してください。

設定値

引数 style の有効な設定値は次のとおりです。

設定値	内容

0	なし- IME の状態は Windows の管理に任されます。

1	オン- IME を以前の入力モードでオンにします。

2	オフ- IME をオフにします。

3	オフ固定- このオブジェクトでは、IME を利用禁止にします。

4	全角ひらがな- IME を全角ひらがな入力モードでオンにします。

5	全角カタカナ- IME を全角カタカナ入力モードでオンにします。

6	半角カタカナ- IME を半角カタカナ入力モードでオンにします。

7	全角英数- IME を全角英数入力モードでオンにします。

8	半角英数- IME は半角英数入力モードでオンにします。

解説

このプロパティは、あるオブジェクトがフォーカスを持つときの IME の設定を指定できます。

あるオブジェクトがフォーカスを持っている状態で、そのオブジェクトの IMEMode プロパティの値を変更すると、現在の IME の状態は、値に応じて変化します。IMEMode プロパティの値は、デザイン時にプロパティ ウィンドウで設定するか、コード内で設定します。IMEMode プロパティが 0 に設定されているときには、そのオブジェクトの IME の状態に関係なく、IMEMode プロパティは 0 を返します。0 以外の値が設定されている場合には、現在の IME の状態を返します。なお、ローマ字変換を行うかどうかは、カナキーの状態に依存します。


IMEMode プロパティの対象

コンボ ボックス (ComboBox) コントロール

ディレクトリ リスト ボックス (DirListBox) コントロール

ファイル リスト ボックス (FileListBox) コントロール

リスト ボックス (ListBox) コントロール

ピクチャ ボックス (PictureBox) コントロール

テキスト ボックス (TextBox) コントロール