- ベストアンサー
ACCESSからEXCELにエクスポートする方法と注意点
- ACCESSからEXCELにデータをエクスポートする方法とは?部門コードを昇順に並べてエクスポートする手順や注意点を解説します。
- ACCESSのテーブルから1レコードずつデータをEXCELにエクスポートする方法について紹介します。部門コードごとに金額の合計を出力する方法も解説します。
- VBAを使ってACCESSからEXCELにデータをエクスポートする方法を紹介します。部門コードを昇順に並べてエクスポートする手順や合計金額の出力方法も解説します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
これはOLEの機能を使う必要があります。下記のサンプルは97用のものですが、恐らく2000でも大丈夫だと思います。また全部載せようとするとかなり長文になるのである程度省略しますね。 Dim XL As Object 'OLE時のExcelアプリ自体 Dim WB As Object 'OLE時のExcelのワークブック Dim WS As Object 'OLE時のExcelのワークシート Dim WC As Object 'OLE時のExcelのセル Dim WR As Object 'OLE時のExcelのセル範囲 Dim lngCol As Long '列 Dim lngRow As Long '行 Dim rsBumon As Recordset Dim BCD As Long '部門コード比較用 Set XL = CreateObject("Excel.Application") XL.Application.Visible = True XL.Application.SheetsInNewWorkbook = 1 XL.Workbooks.Add XL.ActiveWorkbook.SaveAs FileName:="c:\○○.XLS" XL.Application.ReferenceStyle = -4150 Set WB = XL.ActiveWorkbook Set WS = WB.ActiveSheet Set rsBumon=CurrentDB.OpenRecordset("SQL文又はクエリー名",dbOpenSnapShot) Do Until rsBumon.EOF If BCD<>rsBumon("部門") Then If BCD<>0 Then '合計の式 #Sum関数内の範囲はどこかでスタート・エンドを覚えておいて、式の文字列を作成して下さい。*行は1行書き込む毎にカウントアップして下さい。# WS.Cells(*行,*カラム)="Sum(R1C:R3C)" End If BCD=rsBumon("部門") WS.Celss(*行,1)=rsBumon("部門") End If WS.Cells(*行,1)=rsBumon("名称") WS.Cells(*行,2)rsBumon("金額") rsBumon.MoveNext Loop rsBumon.Close '総合計の書き込み #自分の場合、総合計用の式は、部門毎の小計を出力した行を配列などで保存しておいて、その配列から下記の式を生成しています。# WS.Cells(*行,*カラム)="=R5C+R8C+R15C" '保存して終了 XL.Application.ActiveWorkbook.Save XL.Application.Quit Set WS = Nothing Set WB = Nothing Set XL = Nothing もっと単純にするのでしたら、同じようなイメージのレポートを作成して(部門でグループ化して)そのレポートを「Excel形式で出力」すれば、同じようなイメージになると思うのですが。
その他の回答 (1)
- stork
- ベストアンサー率34% (97/285)
VBAで出来ると思いますが、全部クエリで処理を行ってデータのエクスポート機能で書き出したほうが楽じゃないですか。 もしくは、ピボットテーブル使うのが一番簡単ですね。