Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8270 / 9994 ←次へ | 前へ→

【4902】Re:既存のExcelファイルにエクスポートす...
回答  小僧  - 05/4/15(金) 14:09 -

引用なし
パスワード
   ▼clike さん:
お待たせ致しました。ご指摘の通り、一行なんか空白がありますね…。

まぁ DoCmd.TransferSpreadsheet を正しく使っていない結果でしょうか。
以下のように修正しました。コードがややこしくなってしまい申し訳ないです。

※要Excel,DAO参照設定

Sub xlsOut()
Dim FSO As Object
Dim RS As DAO.Recordset
Dim xlsApp As New Excel.Application
Dim xlsWkb As New Excel.Workbook
Dim xlsSht As New Excel.Worksheet
Dim MyTBL As String
Dim MyFile As Variant
Dim MyDate As String
Dim MySheet As Variant
Dim Cnt As Long
 
'出力するテーブル、出力先ファイルの指定
  MyDate = Format(Now(), "m月dd日")
  MyTBL = "tempTBL"
  MyFile = "c:\temp.xls"
  
'存在チェック
  Set FSO = CreateObject("Scripting.FileSystemObject")
    If Not (FSO.FileExists(MyFile)) Then
      DoCmd.TransferSpreadsheet acExport, _
      acSpreadsheetTypeExcel9, MyTBL, MyFile, True
   
'エクセルシートの名前を変更
      Set xlsWkb = xlsApp.Workbooks.Open(MyFile)
      xlsWkb.Sheets(MyTBL).Name = MyDate
      xlsWkb.Save
      xlsWkb.Close: Set xlsWkb = Nothing
      xlsApp.Quit: Set xlsApp = Nothing
    Else

'同日のシートが見つかった場合は削除
      Set RS = CurrentDb.OpenRecordset(MyTBL, dbOpenDynaset)    
      Set xlsWkb = xlsApp.Workbooks.Open(MyFile)
      For Each MySheet In xlsWkb.Sheets
        If MySheet.Name = MyDate Then
          xlsApp.DisplayAlerts = False
          xlsWkb.Sheets(MyDate).Delete
          xlsApp.DisplayAlerts = True
          Exit For
        End If
      Next

'出力先ファイルにシートを追加
      Cnt = xlsWkb.Sheets.Count
      xlsWkb.Sheets.Add after:=xlsApp.Worksheets(Cnt)
      Set xlsSht = xlsWkb.ActiveSheet
      xlsSht.Name = MyDate
      For Cnt = 1 To RS.Fields.Count
        xlsSht.Cells(1, Cnt).Value = RS.Fields(Cnt - 1).Name
      Next
      xlsSht.Range("A2").CopyFromRecordset RS
      xlsWkb.Save
      xlsWkb.Close: Set xlsSht = Nothing: Set xlsWkb = Nothing
      xlsApp.Quit: Set xlsApp = Nothing
      RS.Close
      Set RS = Nothing
    End If
End Sub

>またテーブルではなく、クエリの場合は、利用かのでしょうか?

よくこういったご質問をお見かけしますが、
「まずやってみる!」のはいかがでしょうか?
(テストができない環境でしたら申し訳ありません。)

やってみて不具合がでる、うまくいくけど何か不安、etc… でしたら
再度投稿して頂ければ出来る限り(私でなくてもどなたかがきっと)
お答えしますので、提示されたコードをコピーするだけでなく、
がんばってオリジナルにも挑戦して頂きたいなと思います。

ちなみにこのコードですと変数:MyTBL にクエリの名前を入れて頂ければ
Excelに出力可能です。

2,257 hits

【4842】既存のExcelファイルにエクスポートするには にしもり 05/4/7(木) 16:34 質問
【4844】Re:既存のExcelファイルにエクスポートす... 小僧 05/4/8(金) 11:18 回答
【4849】Re:既存のExcelファイルにエクスポートす... にしもり 05/4/8(金) 16:13 お礼
【4867】Re:既存のExcelファイルにエクスポートす... 小僧 05/4/11(月) 10:27 発言
【4899】Re:既存のExcelファイルにエクスポートす... clike 05/4/15(金) 11:26 質問
【4900】Re:既存のExcelファイルにエクスポートす... 小僧 05/4/15(金) 12:44 回答
【4901】Re:既存のExcelファイルにエクスポートす... clike 05/4/15(金) 13:07 質問
【4902】Re:既存のExcelファイルにエクスポートす... 小僧 05/4/15(金) 14:09 回答
【4906】Re:既存のExcelファイルにエクスポートす... clike 05/4/15(金) 17:39 質問
【4919】Re:既存のExcelファイルにエクスポートす... 小僧 05/4/18(月) 9:56 回答
【5018】Re:既存のExcelファイルにエクスポートす... にしもり 05/5/13(金) 12:47 質問
【5019】Re:既存のExcelファイルにエクスポートす... 小僧 05/5/13(金) 13:47 回答
【5020】Re:既存のExcelファイルにエクスポートす... にしもり 05/5/13(金) 14:06 お礼

8270 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free