5.AccessのデータをExcelへ転記する
まだまだ、穴があり、改良の余地がある入力画面をほっといて(おいおい)
次は、データをExcelに書き出してみたいと思います。
操作の動画↓
www.youtube.com
http://www.youtube.com/watch?v=TRRc_fDH1Xk
5.1 Excel ひな型(テンプレート)ファイルの用意
まず、罫線付き、フォーマットが整ったExcelファイルを用意します。
(※白紙から作る方法もありますが、今回は事前に準備します。)
↑テンプレート.xls として、作成します。
5.2 AccessからExcelを起動します(ウイザードで楽に作ります)
次にAccessからExcelを起動します。
ここでは、ウィザードを利用して作ってみます。
↑まぁ、普通にボタンを選択するとウィザードが立ち上がるので、
アプリケーション -- 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
5.3 作成済みのひな型(テンプレート)ファイルを開きます
まず、Excel側でマクロを記録します。
ツール -- マクロ -- 新しいマクロの記録 を選択します。
次に、ファイル -- 開く で 先ほど作成した テンプレート.xlsを開きます。
開いたら、マクロの記録を終了させます。
作成されたマクロ(Excel VBA)を確認するには、
ツール -- マクロ -- Visual Basic Editor を選択します。
(alt+F11キーでもOKです。)
標準モジュールにマクロが作成されています。
Option Explicit Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2009/11/24 ユーザー名 : user2000 ' ' ChDir "E:\WORK" Workbooks.Open Filename:="E:\WORK\テンプレート.xls" End Sub
↑作成された.xlsファイルを開くマクロ(VBAの命令)↓をコピーします
Workbooks.Open Filename:="E:\WORK\テンプレート.xls"
Access側に戻り、
記録したマクロ(コピーしたマクロ)をAccess側に貼り付けます。
頭にExcel参照用の変数 ここではoAppを付けます。
Option Compare Database Option Explicit 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:="E:\WORK\テンプレート.xls" '↑頭にoAppとAccessからExcelを参照する変数を付ける Exit_コマンド0_Click: Exit Sub Err_コマンド0_Click: MsgBox Err.Description Resume Exit_コマンド0_Click End Sub