2009年9月24日木曜日

QA0924 Excelのマクロ記録で確認したVBAコードをAccessで使う方法

保存は、Excelの世界だと、

Excelのマクロ記録で名前を付けて保存を記録します。
すると、
ActiveWorkbook.SaveAs Filename:="D:\ken3.xls"
こんな感じで、記録されます。

これだけだと、保存確認のメッセージが表示されるので、
Excel VBAのヘルプから、[警告]をキーワードにヘルプを探すと、
Application.DisplayAlerts = False
が見つかります。

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="ファイル名"
をセットで使うと、使えそうです。

ここで、世界をAccess側に切り替えて、

これを、AccessのVBAに組み込みます。
Set oApp = CreateObject("Excel.Application")
とかで、Excelを起動していると思います。

この Set XXXX がExcelとやりとりする変数なので(ここでは、oApp)、
XXXX.Application.DisplayAlerts = False
XXXX.ActiveWorkbook.SaveAs Filename:="ファイル名"
と頭に 使っている変数XXXX.を追加するだけで、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

'読み込んだり、新規作成したり
oApp.Workbooks.Add 'テストで新規ブックを追加

'データをセット
oApp.range("B2") = "ken3 test"

'保存します
oApp.Application.DisplayAlerts = False 'Excelの確認をOFF
oApp.ActiveWorkbook.SaveAs Filename:="D:\ken3.xls"

'Excelの終了
oApp.Quit

Exit_コマンド0_Click:
Exit Sub

Err_コマンド0_Click:
MsgBox Err.Description
Resume Exit_コマンド0_Click

End Sub

何かの参考となれば、幸いです。

ついでに手前味噌の宣伝を行うと、
http://www.ken3.org/cgi-bin/group/vba_access_excel.asp
で、AccessからExcelをさわる、そんな処理をまとめているので、こちらもみてください。

0 件のコメント:

コメントを投稿