ACCESS(アクセス)からEXCEL(エクセル)ファイル出力するモジュールサンプルです。

AccessからExcelファイルを出力したい事態に遭遇することがあります。

OutputToメソッドを利用すれば、できますね。
マクロでも、出力アクションででき、大変便利です。

しかし、データシートビューのイメージで出力されるので、罫線などの細工はできません。
このような細工は、モジュールを使えば可能です。

やってみると、かなり複雑なコーディングになります。
その都度ロジックを作り直さなくてもよい方法として、汎用モジュールを用意してはどうでしょう?

汎用モジュールのサンプルを作ってみました。
以下のステップでの動作を想定しました。
 @ エクセルに出力するファイル名,シート名,行,列,値等の情報をテーブルに編集する。
 A 汎用モジュールを起動して、エクセルファイルを出力する。

ご希望なら、ダウンロードしてご覧下さい。
ダウンロード(Access2000版,ADO使用)

●操作方法
 ・ ファイルはLZH形式で圧縮されています。
 ・ 解凍後にMDBファイルが1つ作成されます。
 ・ このファイルをダブルクリックして起動して下さい。(単独で動作します)
●MDBファイルの内容
 ・ エクセル編集W(テーブル)……エクセルに出力する情報を保存するテーブルです。



 ※ テーブルには以下のような内容を保存しています。
     ファイル名……出力するエクセルのファイル名
     シート名……出力するエクセルのシート名
     行,列,値……出力する位置(行,列)と値
     フォーマット,文字配置……フォーマットの文字列と文字配置(左,右,中央)
     結合列……指定した場合、列から結合列の間のセルを結合
     上線,下線,左線,右線……罫線の有(-1)無(0)
 ※ エクセル編集W(テーブル)の編集プロセスは、サンプルの中にはありません。
 ・ B_エクセル出力(モジュール)のBエクセル出力(プロシージャ)……エクセルファイルを出力します。
 ※ このモジュールを実行するためには、エクセルの「Object Libraly」を参照する必要があります。



 ※ モジュールのデザインビューで[ツール]-[参照設定]のコマンドメニューを選択すると、
     参照設定のウィンドウが開きます。



 ※ このモジュールを実行するためには、出力先フォルダが必要です。
    B_エクセル出力(モジュール)の中のコーディング
    「Private Const c_WorkDir As String = "c:\workexl"」で
    出力先フォルダを指定しています。
    ダウンロードしたままの設定で操作する場合、
    Cドライブ直下に「workexl」というフォルダを作成して下さい。
    別のフォルダを利用する場合、フォルダの指定を変更して下さい。

Bエクセル出力(プロシージャ)を実行すると、c:\workexlフォルダに
下図のような2つのエクセルファイル(file1.xls,file2.xls)が作成されます。



前述ように、このサンプルでは、エクセルファイルを出力するステップを
@エクセル編集W(テーブル)の編集Aエクセルファイル出力(モジュール)
2つに分割することを想定しています。
実行速度が犠牲になる可能性がありますが、
ロジックがシンプルになるので、バグの可能性が減少することが期待できます。
また、エクセル編集W(テーブル)に中間結果が残るので、デバッグも容易になります。

サンプルでは、背景色や文字色,フォントサイズなどの編集は行っていませんが、必要に応じて改造可能と思われます。

ご意見、お問い合わせは → 

ACCESSの使い方トップページ

続編.....(オマケ

上記のサンプルでは、背景色や文字色,フォントサイズなどの編集は行っていませんでした。
必要に迫られ、文字色や計算式などの編集を追加したことがあります。
そのときのmdbを元に新たなサンプルを作りましたので、オマケで公開します。
エクセル編集W(テーブル)には、下図の黄色部分を追加しました。



このサンプルでは、以下のようなエクセルができます。



補足説明

 エクセル編集Wの赤反転部分『=Sum(RC[-2]:RC[-1])』は、エクセルでは『=SUM(B3:C3)』となります。
 「RC[-2]」は列位置を-2するという意味で、該当セルはD3(行=3,列=4)なので、B3(行=3,列=4-2=2)を指します。
 行位置の場合は、R[-3]Cというように書き、該当セルがB6ならB3(行=6-3=3)を指すことになります。

 文字色ColorIndexというプロパティを使って変えました。
 ColorIndexは、4=,5=というふうに対応表があるそうです。
 詳細は、エクセルのヘルプなどをご覧下さい。

 エクセル編集Wのフォーマット(フィールド)を使って、文字色を変えることもできます。
 指定すると、エクセルでは該当セルのNumberFormatというプロパティが設定されます。
 サンプルでは、「0.000;[Red]-0.000」という指定によって、マイナスなら赤い文字で表示するようにしました。

ご希望なら、ダウンロードしてご覧下さい。
オマケダウンロード(Access2000版,DAO使用)



〒745-0801 山口県周南市大字久米327-145
中川システム開発 ホームページ
Tel(0834)28-0205 Fax(0834)28-1272