[三流君(TOPへ)] / [VBAで楽しく] / [記事一覧] / [作者(三流君)に質問する]




三流君VBAで Access から Excel 連携

AccessからCreateObject("Excel.Application")でExcelのオブジェクトを作り、データをセットする、転記する。そんな感じの処理のサンプルです。
※カッコつけて、連携と書いてますが、どちらかと言えば一方通行のデータの流し込み、差し込み印刷 的なイメージが強かったり。
※※Access → Excelの開発の実例は [Access の 名簿データをExcelへ出力]を見て、三流君の右往左往ぶりを笑って見てください

百聞は一見に

百聞は一見に・・・こんなことができます
Access から Excelファイルを開く マクロを作成

Access 2003 から 事前に作成したExcelファイルのテンプレートを開く そんな マクロ VBAを作成してみます。
静止画と解説、ソースは

  1. AccessからExcelを起動してファイルを開く、そんなマクロ(VBA)
  2. 参照設定しないとxlの定数が使えなくて困ったり
  3. □チェックを付けたデータのみ印刷したり
  4. Range("名前").Offset(0, 1) を使用してデータを指定の場所へ なんて、セコイ技を使ってみたり。
イロイロと失敗しながら遊んでます。↑を見て笑ってください。。。

AccessのクエリーをExcelに書き出し、列幅を自動調整

↓のソースコードや処理の全体/流れは[http://d.hatena.ne.jp/ken3memo/20110209]を見てください。
AccessからExcelを起動して、
新規のブック、シートに データを(クエリーの中身を)書き込みます。

書き込み後、列幅の自動調整の命令 Cells.EntireColumn.AutoFit を使用して、列幅を自動調整してみます。

概要説明とリンク

概要を見て、これは?と思ったら、タイトルをクリックして本文を読んでください

リンク先概要

[No.2 AccessからExcel出力]

で、
・ウィザードを使ってたサンプルを作れることを説明
・マクロ記録でExcelの操作をVBAにする
・頭にオブジェクト変数を付けてAccessからExcelを操作
を簡単に説明しました。

[No.7 MDBと同フォルダのExcelファイルを開く]

では、
CurrentDb.NameからMDBの位置を取りだし、
相対位置(同じパス)のExcelファイルを開きました。

[No.13 Excel セルに名前を付けてみる]

では、
Accessから名前付きのセルにデータをセットして、
変更が少ないシステムについて説明しました。

[No.14 Excel 隣のシートを参照して逃げる]

では、名前付きのセル参照から、一歩後退?一歩進んで、
データシートと表のシートを分け、データはデータシートにセット、
データシートを参照して表を作りました。

[No.48 AccessからExcelブックを開き、書式設定を行う]

では、
AccessからExcelブックを開き、
objEXCEL.Selection.Style = "Comma [0]"
objEXCEL.Selection.NumberFormatLocal = "0.00_ "
で書式設定を行うサンプルを解説しました。

[No.54 AccessからExcel開いて、処理終了後に閉じたい]

では、
.RunでExcelのVBA関数を呼び出し、処理後、
oApp.ActiveWorkBook.Close SaveChanges:=False
oApp.Quit で終了する処理を解説しました。

[No.58 Access クエリーを Excel既存シートへ エクスポート]

DoCmd.TransferSpreadsheet acExportを使用して、Excelへ出力。
いろいろとやってみたがしっくりいかなかった。

[No.59 Excelのマクロ付きフォーマットを壊されないように]

では、
ActiveWorkbook.SaveAs FileName:="XXXXXX"
と別名に保存して、元ファイルを壊されない小細工を説明しました。

[No.64 AccessからExcelファイルを開いて・印刷して・閉じたい]

Excelでやりたい操作をマクロ記録して、
Workbooks.Open ActiveWindow.SelectedSheets.PrintOut ActiveWorkbook.Close
を探り、開いて、印刷して、閉じました(笑)

[No.93 Access2000 ADOでクエリーのレコードを参照 Excelへ出力]

Dim rs As New ADODB.Recordset
rs.Open "Q_顧客情報", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
なんて感じで、ADOでクエリーを開き、Excelへ自分で転記した。

[No.100 AccessからExcel 分類別のシートへデータを転記してみる]

データを分類別にExcelのシートに転記してみました。
(セリーグの打撃成績データをチーム別のシートに転記しました

[No.130 Access クエリーをExcelシートへ10行x3列で出力する]

クエリーで集計した結果をExcelのシートへ出力してみました。
出力時、10行x3列で出力してみました。

↑出力イメージ

[No.131 Access クエリーをExcelシートへ罫線を付けて出力する]

罫線付で、データをExcelへ出力してみました。

[No.138 AccessからExcel出力、色・列幅・行の高さを調整する]

AccessからExcel出力時に
背景色 .Cells(nYLINE, nXLINE).Interior.ColorIndex = 33 'スカイブルー
列幅 .Columns(nXLINE + 1).ColumnWidth = 8.5 など
行の高さ .Rows(nYLINE).RowHeight = 25 など
を調整しました

↑出力イメージ

[No.139 AccessからExcel出力、複数クエリーを1シートへ]

複数のクエリーを色を変えてExcelのシートへ出力してみました

↑出力イメージ

AccessからExcel セルの範囲指定と結合
.MergeCells = Trueでセルを結合させてみました。
i = 10 '10列目の1行目と2行目を連結列にする
oApp.Range(oApp.Cells(1, i), oApp.Cells(2, i)).MergeCells = True
oApp.Cells(1, i) = "連結されたかなぁ?"

過去の記事一覧(バックナンバー)は [ VBA系記事 バックナンバー ] を見てください。



百聞は一見に・・・こんな失敗もあります
参照設定しないと Access から Excel のVBA定数が見つからないよ
Access から Excel を 操作して、データを貼り付けた後、罫線など書式のコピーを行ない形を整えます。 Excel VBAマクロの定数 で ハマった、そんなお話です。 ソースと解説は [AccessからExcelの操作 書式をコピーして罫線・形を整える xl定数の処理ほか] を見てください。

番外編 操作手順 テストデータ作りでExcelのデータをAccessへコピペする方法

私(三流君)がいつも行っている、テストデータ作りの手順を恥ずかしいけど動画にしました。

まぁ、操作しやすいエクセルで編集して、アクセスのDBへコピーしただけですが...何かの参考となれば幸いです。
※tab区切りで文字をコピーしてExcelへ貼りつけると、きれいに貼れたりします。


[ページ内のTOPへ戻る]

ページフッター

Googleで情報を探す

せっかくホームページに来ていただいたのに、検索の紹介 ぉぃぉぃ
サイト指定や期間の指定を組み合わせて実行してみてください。

Google
探す言葉:
ググる。↑VBAなど 気になる単語や,オブジェクト(MailItem),プロパティ(.Body)やメソッド(.Move)などを入れて検索してみてください。

サイト指定:人気QAサイト や 一次情報MS本家を指定する
条件無し WWW 全体から検索も良いけど↓で絞り込むのもおススメです
一次情報・二次情報まとめから探る
一次情報は基本のMSDN含む microsoft.comから
まとめ一次・二次情報 Qiita 知識を記録・共有 qiita.comで個人まとめを参考に
手前味噌の三次情報 三流君メモBlog ken3memo.hatenablogから検索
QAサイトの質問から探る
QAはやっぱり人の多いYahoo知恵袋 chiebukuro.yahoo.co.jpから探る
こちらもどうぞ おしえてgoo! oshiete.goo.ne.jp
15分探して見つからなかったら?回答率90%以上 teratail.com
私も利用中 最近過疎ってる失礼 人力検索 q.hatena.ne.jp
意外と穴場? 2ch 5ch.netから探す
検索実行: ←オプション確認後に検索ボタンを押してください

期間指定:情報の鮮度も大切?
指定なし(全て)※不変の情報を得るには指定無しが一番?
3日以内 最新の更新情報を探す時など。
3ヶ月 これはあまり使わないかも
1年以内の更新なら情報鮮度もOK?バランス型
3年も経てばOfficeもバージョンUP?
検索実行: ←オプション確認後に検索ボタンを押してください

メッセージ送信

ここまで、読んでいただきどうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

感想や質問・要望・苦情など 三流君へメッセージを送る。
下記のフォームからメッセージを送ることができます。


あなたのお名前(ニックネーム):さん
返信は?:


アドレス:に返事をもらいたい
感想や質問↓:


対応速度・緊急度:
(回答・感想は下記のようにしてHPで記事に載せてます) 例:[XXXXさんへ回答例]←みたいに回答していたり...
とても急ぎで連絡がほしい、そんな時は:[twitter三流君DM]に気軽に連絡してください。

[三流君(TOPへ)] / [VBAで楽しく] / [記事一覧]
カスタム検索