SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

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

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


  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

データベースのクエリを実行する
データベースのクエリを実行する
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のブックを保存する際のブック名を設定するプロパティです。いずれも文字列型の変数で宣言します。

次のページ
Excelへのデータ転送メソッドの作成

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/504 2008/08/19 20:33

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング