[三流君] −−>
[VBAで楽しく] −−>
[バックナンバー一覧]
−−> No.064 AccessからExcelファイルを開いて・印刷して・閉じたい
AccessからExcelファイルを開いて・印刷して・閉じたい
メルマガ発行内容
こんにちは、三流プログラマーKen3です。
4月新たな環境になった人達は落ち着きましたか?
*まだ新入社員君達はHPやメルマガみて遊ぶ余裕は無いか(笑)
なんて定型の挨拶はこのくらいにして、
~~~~~~~~~~~~~~~~~~
今回は、
AccessからExcelファイルを開いて・印刷して・閉じたい
です。
/*
* 1.今回のキッカケ
*/
下記の質問を貰いました
>現在、access+excelのアプリを開発していて、行き詰まっていることがあります。
>知恵を貸してくれませんか?
>accessVBAの制御下で、excelファイルを開き、それを印刷して、閉じる処理をした
>いのです。
----
と最近設置したHPからの質問フォームで送ってもらいました。
*メルマガ評価システムと質問送信フォームを最近設置しました。
たまには、 http://www.ken3.org/vba/ に遊びに来てください。
なんて、宣伝は置いといて、そろそろ真面目に解説に入ろうかなぁ。
/*
* 2.AccessからExcelを起動する
*/
あっ、忘れてた過去の事例紹介(オイオイヤメロってしつこいから・・・)
[No.2 AccessからExcel出力]
http://www.ken3.org/backno/backno_vba01.html#2
で、
・ウィザードを使ってたサンプルを作れることを説明
・マクロ記録でExcelの操作をVBAにする
・頭にオブジェクト変数を付けてAccessからExcelを操作
を簡単に説明しました。
繰り返しになってしまうけど、
AccessからExcelを起動するプログラムが知りたかったので、
AccessのフォームでExcelを開くマクロをボタンウィザードで作ります。
Private Sub コマンド0_Click()
On Error GoTo Err_コマンド0_Click
Dim oApp As Object
Set oApp = CreateObject("Excel.Application")
oApp.Visible = True
'Only XL 97 supports UserControl Property
On Error Resume Next
oApp.UserControl = True
Exit_コマンド0_Click:
Exit Sub
Err_コマンド0_Click:
MsgBox Err.Description
Resume Exit_コマンド0_Click
End Sub |
と自動的に作られます。
実行すると、Excelが開きます。
*これは、Excelを起動するだけなので、ひとまず置いといて。
/*
* 3.Excelでやりたい操作を記録する
*/
次にExcelでやりたいことをマクロに記録します
やりたいことは、
・ファイルを開いて
・印刷
・閉じる
なので、マクロ記録を使って記録してみます。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2003/4/11 ユーザー名 : K
'
ChDir "D:\"
Workbooks.Open FileName:="D:\集計表.xls"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveWorkbook.Close
End Sub |
上記のように記録されます(作成されます。)
なんかあっけないなぁ。
/*
* 4.組み合わせてAccessからExcelの操作を行う
*/
あとは、この2つを合わせて基本形を作ります。
Private Sub コマンド0_Click()
On Error GoTo Err_コマンド0_Click
Dim oApp As Object
Set oApp = CreateObject("Excel.Application")
oApp.Visible = True
'Only XL 97 supports UserControl Property
On Error Resume Next
oApp.UserControl = True
'ファイルを開く
oApp.Workbooks.Open FileName:="D:\集計表.xls"
'データの加工処理/セット処理
oApp.cells(1, 1) = Now 'テストです
'・
'・ その他いろいろとセットする
'・
'プリントする
oApp.ActiveWindow.SelectedSheets.PrintOut Copies:=1
'ファイルを閉じる
oApp.ActiveWorkbook.Close SaveChanges:=False
'Excelを閉じる
oApp.Quit
Exit_コマンド0_Click:
Exit Sub
Err_コマンド0_Click:
MsgBox Err.Description
Resume Exit_コマンド0_Click
End Sub |
ポイントは、
~~~~~~~~~~~~
Excelで作った(記録した)マクロに
oAppと参照用の変数を付けます。
なんか、違和感ありますが、
Dim oApp As Object
Set oApp = CreateObject("Excel.Application")
で、Excelアプリケーションを参照するオブジェクトを作成します。
このオブジェクトoAppに対して(Excelが参照されている)
プロパティやメソッドを操作する=Excelを操作するになります。
*なんかストレートじゃないなぁ・・・
マクロ記録で作成した開く処理
Workbooks.Open FileName:="D:\集計表.xls"
をAccessから使いたいので、
oApp.Workbooks.Open FileName:="D:\集計表.xls"
とします。
あとの隠し味は、
oApp.ActiveWorkbook.Close SaveChanges:=False
.CLOSEの時、SaveChanges:=Falseと更新を保存しない
確認のダイアログを出さない
と
oApp.QuitでExcelを終了
ぐらいです。
[No.54 AccessからExcel開いて、処理終了後に閉じたい]
http://www.ken3.org/backno/backno_vba11.html#54
で、
.RunでExcelのVBA関数を呼び出し、処理後、
oApp.ActiveWorkBook.Close SaveChanges:=False
oApp.Quit で終了する処理を解説しました。
※また、過去のメルマガの宣伝か(笑)
/*
* 5.おわりの挨拶
*/
今回は、
AccessからExcelファイルを開いて・印刷して・閉じたい
でした。
拾い読みして、
1つでも何かの参考となれば幸いです。
Excel/Access大好き、三流プログラマーKen3でした。
----------------------------------
関連項目(ただのバックナンバー紹介)
----------------------------------
[No.2 AccessからExcel出力]
http://www.ken3.org/backno/backno_vba01.html#2
で、
・ウィザードを使ってたサンプルを作れることを説明
・マクロ記録でExcelの操作をVBAにする
・頭にオブジェクト変数を付けてAccessからExcelを操作
を簡単に説明しました。
[No.7 MDBと同フォルダのExcelファイルを開く]
http://www.ken3.org/backno/backno_vba02.html#7
では、
CurrentDb.NameからMDBの位置を取りだし、
相対位置(同じパス)のExcelファイルを開きました。
[No.13 Excel セルに名前を付けてみる]
http://www.ken3.org/backno/backno_vba03.html#13
では、
Accessから名前付きのセルにデータをセットして、
変更が少ないシステムについて説明しました。
[No.48 AccessからExcelブックを開き、書式設定を行う]
http://www.ken3.org/backno/backno_vba10.html#48
では、
AccessからExcelブックを開き、
objEXCEL.Selection.Style = "Comma [0]"
objEXCEL.Selection.NumberFormatLocal = "0.00_ "
で書式設定を行うサンプルを解説しました。
[No.54 AccessからExcel開いて、処理終了後に閉じたい]
http://www.ken3.org/backno/backno_vba11.html#54
では、
.RunでExcelのVBA関数を呼び出し、処理後、
oApp.ActiveWorkBook.Close SaveChanges:=False
oApp.Quit で終了する処理を解説しました。
[No.59 Excelのマクロ付きフォーマットを壊されないように]
http://www.ken3.org/backno/backno_vba12.html#59
では、
ActiveWorkbook.SaveAs FileName:="XXXXXX"
と別名に保存して、元ファイルを壊されない小細工を説明しました。
時間がある時、のぞいてください。
*自分のHP宣伝でした。
フィードバック
VBA系の→[掲示板]←を覗く、質問を書き込む
評価・感想
ページフッター(リンクや広告など)
[三流君(TOP ken3.org へ戻る)]
-- [VBA系TOPへ]
---- [VBA系バックナンバー目次へ移動]
------ [VBAでIEを操作 CreateObject("InternetExplorer.application")]・・・実は当店一番人気、VBAでIEを操作するサンプルです
------ [VBAでOutlookの操作 CreateObject("Outlook.Application")]・・・Outlookを使い、メール関係の処理です
------ [Access から Excel 連携 CreateObject("Excel.Application")]・・・人気のAccessからExcelへデータ書き出しなどです
------ [AccessのUserForm/サブフォームを操作]・・・アクセスでフォームを使ったサンプルです
------ [Accessのレポートを操作]・・・レポートを操作してみました
------ [Access クエリー関係やその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です
------ [Excel UserForm(ユーザーフォーム)を操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
------ [ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
------ [Excel関係 関数、その他]・・・その他Excel関係です
------ [VBAでテキストファイル(*.txt,*.html,*.csv)の操作]・・・テキストファイルを使ったサンプルです
------ [VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます
広告
-- [通販系の売れ筋広告へ] ←主に楽天やAmazonのランキングです
blog
-- [三流君の作業日記] ← 日々の作業を少々
-- [通販あしあと] ← 通販ページの足跡を一覧で羅列
情報を探す
情報を探すならGoogleかな?
↓Web全体、サポート情報(support.microsoft.com)や三流君VBA(ken3.org)から検索する
書籍の購入
Webだけじゃさすがに勉強しきれないので、プログラミング関係の書籍も読んでみては??
コンピュータ書籍の発送がハヤイ専門店
コンピュータの本・専門店
|
※種類が豊富で探し易いです。※在庫ありが48時間以内発送が急ぎで資料や書籍がほしい時、とても助かります。
お奨め本の目次を見るだけでも勉強になったり
|
amazon.co.jpでキーワード別チェック
下記、私が設定したキーワードですが、こんな感じで資料や書籍を探ってみては?
[VBA全体を把握する] -- やはり全体をさらっと見たいですよね。
[SQL関連でDB力UP] -- システムはデータベース設計が重要
[ADO接続を探る] -- VBAなのでADO接続を押さえておく
[Windows APIを探る] -- さらにAPIになて知ってれば強力だ!
[.NETを探る] -- と言っても時代は.NETに流れてるし
プログラミング以外でも知りたいことは多くって、
[人間関係] -- で、客先・上司、まわりに気を使い。
[プログラマーの自己啓発] -- プログラムだけじゃなくいろいろと向上したいよ
[コーチング・育成] -- 先輩になったら後輩(部下)の面倒をみてね。
そんなこんなでプログラマーっていろいろと大変なんだってば・・・