三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

Excelのマクロ記録で作った、確認したコードをAccessのVBAで使うそんな処理。

試行錯誤の動画
Excelのマクロ記録で確認したVBAコードをAccessで使う方法
http://www.youtube.com/watch?v=SVeJeWocrzs
www.youtube.com

>アクセスから
>既存エクセルファイルをコピって新規Book1が立ち上がるとこまで出来たのですが、
>(自分では出来ないので、調べてコピペしたらできたという感じなので応用が利か
>ず。。)
>[保存]が出来なくて困っています。
>名前はBook1のままでも、違ってもいいので教えて下さい。

保存は、Excelの世界だと、

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

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

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

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

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

この Set XXXX がExcelとやりとりする変数なので(ここでは、oApp)、
XXXX.Application.DisplayAlerts = False
XXXX.ActiveWorkbook.SaveAs Filename:="ファイル名"
と頭に 使っている変数XXXX.を追加するだけで、Excel側のプロパティやメソッドが使えると思います。

AccessExcelファイルを作り、保存のサンプル。

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

試行錯誤の動画 Excelのマクロ記録で確認したVBAコードをAccessで使う方法
http://www.youtube.com/watch?v=SVeJeWocrzs
↑まぁ、三流プログラマーらしく、手際が悪い、手順ですが、会社からYouTubeがみれるなら、みて笑ってください。

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

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

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)