|    | 
     Access VBAで教えて下さい。AccessのクエリのデータをExcelシートに貼り付けるコードを書きましたが、「RangeクラスのPasteSpecialメソッドが失敗しました。」のエラーが出ます。 
Excelからのデータは一旦Temp.xlsに吐き出し、2行目のデータをコピーし、別のワークブックのシートに「値貼り付け」をしたいのです。 
コピーするタイミングなどいろいろとコードを書き換えて試してみましたがうまくいきません。 
ご教授宜しくお願いします。 
(Windows XP/Access 2003/Excel 2003) 
 
以下コードです。 
============================================================================= 
 
Private Sub コマンド91_Click() 
 
On Error GoTo Err_コマンド91_Click 
 
Dim xlApp As Object 
Dim Fn As String 
Dim xlFn As String 
Fn = "c:\Temp\temp.xls" 'テンポラリブック 
xlFn = "C:Sales.xls" 
 
 DoCmd.OutputTo acOutputQuery,"Q_Sales_Vol",acFormatXLS,Fn,True, "" 
 Set xlApp = GetObject(, "Excel.Application") 
xlApp.Visible = True 
 
With xlApp 
  .ScreenUpdating = False 
  .workbooks("temp.xls").Activate 
  .Worksheets(1).Activate 
  .Range("A2").Select 
  .Range("A2:AL2").Select 
  .selection.copy 
  .workbooks.Open xlFn 
  .Worksheets("Data").Activate 
  .Range("A2").Select 
  .selection.PasteSpecial Paste:=xlPasteValues '←ここでエラーが発生 
  .activeworkbook.Worksheets("Sales_GR").Activate 
  .range("A1").select 
  .ScreenUpdating = True 
  .activeworkbook.Close True 
  .UserControl = True 
Exit_コマンド91_Click: 
On Error Resume Next 
.DisplayAlerts = False 
.Quit 
.DisplayAlerts = True 
Kill Fn 
End With 
Set xlApp = Nothing 
Exit Sub 
Err_コマンド91_Click: 
MsgBox Err.Description 
Resume Exit_コマンド91_Click 
 
End Sub 
=============================================================================  
 | 
     
    
   |