CodeZine(コードジン)

特集ページ一覧

Access 2003 VBAではじめるクラス入門

クエリを実行し結果セットをExcelに転送するマクロの作成

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2006/09/26 00:00

データベースファイルに作成されているクエリを実行して、結果セットのデータをExcelに転送するマクロを作成しながら、Access VBAでクラスを作る方法を解説します。

目次
データベースのクエリを実行する
データベースのクエリを実行する
Excelに転送して表とグラフを作成する
Excelに転送して表とグラフを作成する

はじめに

 Visual Basicが独自のクラスを作成して使えるように、Officeに搭載されているVBAでも独自のクラスをプロジェクトに組み込むことができます。作成したクラスは、各Officeアプリケーションで「インポート」「エクスポート」ができるため、汎用性のあるクラスを1つ作成すれば他のアプリケーションのVBAでも利用できるようになります。

 そこで、Access VBAでクラスを作成し、データベースファイルに作成されているクエリを実行して結果セットのデータをExcelに転送するマクロを作成しながら、VBAでクラスを作る方法を紹介します。

 なお、この記事は『Excel VBAではじめるクラス入門』の続編にあたります。クラスを使うメリット、クラスの作成手順は『Excel VBAではじめるクラス入門』でご確認ください。

対象読者

 Access VBA、Excel VBAを使ってマクロ(プログラム)を作ったことがある人、Visual Basicが使える人が対象です。

必要な環境

 Excel・Access 2000/2002/2003が使用できる環境。

Access VBAでクラスを作る

 では、Access 2003で1つクラスを作成してみましょう。このクラスは、データベースファイルに作成されているクエリを実行し、結果のレコードをExcelに転送します。

 使用するデータベースファイルは、Access 2000のサンプルに付いている「Northwind.mdb」から抜粋したテーブルとクエリを格納している「sample.mdb」です(Access 2000形式で保存してあります)。このファイルにクラスを組み込み、実行プロシージャを作成します。

クラスとプロパティの作成

 作り方はいたって簡単です。Accessを起動し、「sample.mdb」を読み込んでください。

 Accessのメニューで[ツール]-[マクロ]-[Visual Basic Editor]を選び、VBEditorを起動して、プロジェクトにクラスモジュールを1つ追加します。

 
 

 VBEditorの[ツール]-[参照設定]メニューを選び、「Microsoft Excel 11.0 Object Library」にチェックを付け、[OK]ボタンを押します。

 Excel 11.0はExcel 2003のことです。Excel 2002は10.0、Excel 2000は10.0になります。
 

 今回は、AccessからExcelオブジェクトを操作するため、コードの中でExcelのオブジェクトと保有するプロパティ・メソッドを参照します。そのために、あらかじめExcelへの参照設定を行っておきます。

 

 プロパティウィンドウでオブジェクト名を「clsTrans」に変更します。作成するクラスは、2つのプロパティを持ちますので、これをコードウィンドウの宣言セクションで宣言します。

Public QryName As String
Public SaveBookName As String

 プロパティの1つは、データベースに組み込まれているクエリ名を設定するプロパティで、もう1つは、データを転送したExcelのブックを保存する際のブック名を設定するプロパティです。いずれも文字列型の変数で宣言します。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 瀬戸 遥(セト ハルカ)

    8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5