Microsoft Access 掲示板

レポート作成とEXCEL出力

7 コメント
views
4 フォロー

お世話になります。
現在作成中の見積フォームが整ってきたので、レポートとEXCEL出力を検討しています。
アクセス自体初心者ですが、レポートは特にまだ経験がほとんどありません。

手動で修正したいところも出てきそうなので、レポートと共にEXCELでもレポートライクなものを作りたいと思っているのですが、EXCELはレポートから出力できないと知りました…

①VBAでEXCEL出力する際、レポートのようなものは作れますでしょうか。
具体的にはメインフォームとサブフォームの両方を、上下に並べて配置。(メイン部分は宛名などの情報。サブはヘッダー、詳細、フッターで見積もり内容。)
グループ名も挿入。

②レポートについてはレイアウトの問題ですが、列(フィールド)の増減に対応できますか?見積によって、特定のフィールドに何もデータがない場合があります。

大きな質問をざっくりお尋ねして申し訳ありません。
検索していても、これというサイトに行き当たることができず、現在レポートの本を読んでいるところです。

ポンタ
作成: 2020/11/01 (日) 11:37:01
最終更新: 2020/11/01 (日) 12:25:26
通報 ...
1

手動で修正したいところも出てきそうなので、レポートと共にEXCELでもレポートライクなものを作りたいと思っているのですが、EXCELはレポートから出力できないと知りました…

xls形式なら、レポートのプレビューからExcelに出力できますよ。

レポートは(*.xlsx)ファイル形式に出力できない | Access 2013 | 初心者のためのOffice講座

ただし、レポートの体裁がそのまま正確に再現できるかどうかは分かりません。

①VBAでEXCEL出力する際、レポートのようなものは作れますでしょうか。

VBAを使えば簡単ではないですが、何でもできます。
それなりのスキルは必要です。

②レポートについてはレイアウトの問題ですが、列(フィールド)の増減に対応できますか?見積によって、特定のフィールドに何もデータがない場合があります。

可能です。
いろいろ方法はあります。

2
ポンタ 2020/11/01 (日) 19:52:17 f1ed8@2b9f5

いずれもできるとのことで、嬉しくなりました!
①VBAでチャレンジしてみたいと思います。
参考サイトを探し、不明な場合はまた質問させていただきます。
②行を詰めるのと同じでプロパティでも可能でしょうか。今から作成に取りかかっていきたいと思います。

3

②行を詰めるのと同じでプロパティでも可能でしょうか。今から作成に取りかかっていきたいと思います。

列詰めはコントロールの移動が必要なので、VBAでやるのがシンプルだと思います。
クエリでやろうと思えばできないことはないですが。

下記はレコードソースがクロス集計クエリで列数が変化する場合のサンプルです。

列数が変化するクロス集計クエリと連結するフォーム - hatena chips

フォームですが、レポートでも同じ方法で可能です。

4
ポンタ 2020/11/05 (木) 21:57:12 0029a@1c915 >> 3

レポートの作成が落ち着いてきたため、Excelへの出力を考えています。
かなり難しそうですね…
無理かもしれませんが・・・イメージを教えてください。

①アクセスから該当のデータをクエリからエクセルにエクスポート(サブとメインあわせて2つ)
②エクセルから2つのデータを取り込み、任意の配置を行う。
④配置されたデータから判断して罫線を引く。色を塗る。

このようなVBAの流れになりますでしょうか。
アクセスでエクスポートして、続きはエクセルのVBAでしょうか。

以上よろしくお願いいたします。

5
hiroton 2020/11/06 (金) 09:01:13 f9f49@f966d

ACCESS VBAでそのままEXCELを操作する感じでしょう
AccessからExcelへ出力させるVBAの書き方(note - DeepBlue Writingさん)
Excelセルへ個別出力する基本パターン(T'sWareさん)
事前バインディングと遅延バインディング(実行時バインディング)(鵜原パソコンソフト研究所さん)
VBプログラムで開発環境と実行環境のExcelのバージョンが異なるとき(Qiita -@carbonated3030さん)
AccessのVBAでExcelを参照設定なしで使う方法(てつみのブログさん)

6
ポンタ 2020/11/06 (金) 09:19:29 0029a@1c915 >> 5

色々と参照ページを教えていただき、ありがとうございます。1つずつ紐解いていけば必ず作成できるんですよね…
聞きなれないワード(バインディング)にビビっていますが、なんとか地道に作成していきたいと思います。ありがとうございました!

7
hiroton 2020/11/06 (金) 10:35:54 f9f49@f966d

参考に挙げたものは基本的なところなのであとはExcel VBAの知識が必要になります

大まかな書式(罫線や塗りも含め)はテンプレートとしてExcelファイルを作っておき、VBAでシートのコピーや行、セルのコピーで書式を整形して、そうしたらデータを流し込む
こんな流れになると思います。書式の設定からVBAでやってもいいんですが、いずれにせよその部分はEXCEL VBAの知識で組み立てることになります。記述自体はACCESS VBAの上でもできますよ(諸注意あり)という具合ですね

というわけで、「書式の整形がうまくいきません」ならExcel(Excel VBA)の問題になるので情報の調べ方に気を使ってみてください