文書番号: 303814 - 最終更新日: 2003年9月5日 - リビジョン: 2.1 [HOWTO] VB または VBA から ADOX を Excel データで使用する
この記事は、以前は次の ID で公開されていました: JP303814 目次概要この資料は、Excel データを ADOX から使用するための方法を以下の内容に沿って説明しています。 注意 : この資料で紹介するサンプルは、Microsoft Windows 2000 Server Service Pack 2 (SP2) と Microsoft Data Access Components (MDAC) 2.6 SP1、Microsoft Visual Basic 6 SP5、および Microsoft Excel 2002 (XP) を使用して動作を確認しています。別のバージョンの Windows、MDAC、Visual Basic、または Excel を使用した場合、現象が異なる場合があります。 詳細
ADOX (ActiveX Data Objects Extensions for Data Definition Language and Security) は、データベース、テーブル、フィールド、またはほかのデータベース オブジェクトをプログラムで操作できる DAO (データ アクセス オブジェクト) の機能を ADO (ActiveX データ オブジェクト) 開発者に提供します。Microsoft OLE DB Provider for Jet Version 4.0 がリリースされてから、ADO 開発者は Microsoft Excel のブックとワークシートで ADO と ADOX の両方を使用できるようになりました。Microsoft OLE DB Provider for Jet Version 4.0 は、Jet エンジンが Microsoft Access 以外のデスクトップ データベースで使用する ISAM ドライバをサポートします。 ただし、Excel ワークシートは標準的なデータベースではないので、Excel で ADO を使用する場合にはいくつかの制限があります。特に、ADOX メソッドを Excel で使用すると、多くのメソッドは機能しないか、または予期しない結果を返す場合があります。 この資料では、ADOX と Excel の制限の多くについて説明します。Excel で ADO を使用する方法については、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。 257819?
(http://support.microsoft.com/kb/257819/JA/
)
[HOWTO] VB または VBA から ADO を Excel データで使用する ADOX のカタログADOX オブジェクト モデルでは、Catalog オブジェクトはデータベースを表します。Excel の場合はブックを表します。
カタログの作成ADOX Catalog オブジェクトの Create メソッドを使用して、新しい Excel ワークブックを作成することはできません。この操作を行うと、次のエラー メッセージが表示されます。この操作は、このタイプのオブジェクトには実行できません。 ただし、カタログ用に新しいブックのファイル名を指定し、以下で説明する技法を使用して少なくとも 1 つのテーブルを新しいカタログに追加することによって、新しい Excel ワークブックを作成できます。この方法を使用すると、ADOX テーブルとして作成したワークシートのみを持つ新しいブックが作成されます。つまり、Excelの [オプション] ダイアログ ボックスで指定したデフォルトの新しい Excel ブックのシート数と同じ数のワークシートは追加されません。 ADOX のテーブルADOX Table オブジェクトは、データのコンテナとして機能する Excel オブジェクト (ワークシートまたは範囲のいずれか) に対応しています。テーブルの作成ADOX を使用して Excel で新しいテーブルを作成できます。テーブルは列を作成せずに作成できないため、コード サンプルは「ADOX の列」 で示します。
テーブルの削除Excel では、ADOX を使用してテーブル (ワークシート) または名前付き範囲を削除することはできません。この場合、ADOX によってテーブルや名前付き範囲が作成されたかどうかは無関係です。
ADOX の列ADOX の列は、データベースの列またはフィールドと対応しており、Excel ワークシートの列とも正しく対応しています。Excel で使用する ADO データ型列を作成するときに Excel データソースで使用でき、ADO が認識するデータ型は下記の 6 つです。
一般的な列
テーブルの作成時に列を作成するADOX を使用して新しいテーブルが作成されるのと同時に列を作成すると、最も適切な状態で機能します。以下のコードは、2 つの列 (数値型とテキスト型) を持つ新しいテーブル (ワークシート) を作成します。 列の削除Excel では ADOX で作成した Table から列を削除することはできません。
既存のワークシートに列を作成するExcel では ADOX を使用して既存のワークシートに列を追加することができます。ただし、Excel では ADOX で作成した Table から列を削除できないため、既存の空のワークシートに列を追加すると、予期しない結果が生じる場合があることに注意する必要があります。既存の列のデータ型を変更するテーブルに列を追加した後、Type プロパティに別のデータ型を設定しようとすると、次のエラー メッセージが表示されます。このコンテキストで操作は許可されません。 Excel のテーブルと列にデータを追加するVisual Basic のデザイン環境で Excel を使用して ADO コードをテストしている場合、初めてレコードセットの処理を実行すると、次のエラー メッセージが表示されることがあります。選択された CollatingSequence は OS でサポートされていません。 このエラー メッセージは無視できます。アプリケーションをコンパイルした後は、このエラー メッセージは表示されません。 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。 246167?
(http://support.microsoft.com/kb/246167/EN-US/
)
PRB: Collating Sequence Error Opening ADODB Recordset the First Time Against an Excel XLS
ADOX で作成した Excel の列にデータを追加するADOX を使用して Excel で作成したテーブルや列に ADO を使用してデータの挿入または変更を行うとき、列に指定されているデータ型の情報が格納される場所は明らかではありませんが、ADO は列に指定されているデータ型を尊重します。
標準の Excel の列にデータを追加するADOX を使用せずに作成または変更された Excel ワークシートまたは範囲に ADO を使用してデータの挿入または変更を行う場合、挿入するデータの型に制限はありません。
SQL の CREATE、ALTER、および DROP ステートメントを使用するExcel データベース オブジェクトに対して CREATE、ALTER、および DROP などの Microsoft SQL DDL (データ定義言語) ステートメントを実行して、上記で説明した対応する ADOX メソッドと同じ結果を得ることができます。結論
関連情報この資料は以下の製品について記述したものです。
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。" | サポート情報 その他のサポートサイトコミュニティサポート技術情報の翻訳
|





















先頭へ戻る