Access VBA質問箱 IV

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

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


4200 / 9994 ←次へ | 前へ→

【9041】Re:AccessからExcelを操作するのですが、Excelが終了しない。
回答  小僧  - 07/1/25(木) 12:12 -

引用なし
パスワード
   ▼K.S さん、かみちゃん さん
こんにちは。

既に解決されていて、ご覧になる機会があるかは解りませんが…。

> appExcel.Worksheets(varsheet).Select
>ActiveSheet.Range(Cells(1, 1), Cells(最下行番号, 右端列番号)).Copy

Activate や Select は潜在的なバグの元となるので
極力使用を避けたほうが安定したコードになるかと思われます。

また xlup の様な定数が使われているので
Excelが参照設定されていると思われます。
変数宣言もobject型でなく、Excelのオブジェクトを指定できそうですね。

また二つのBookを直接開くので、クリップボードにコピーしなくてもできそうです。

Private Sub コマンド0_Click()
On Error GoTo エラー

  Const varinput1 = "C:\サンプルbook.xls"
  Const varinput2 = "D:\tempサンプルbook.xls"
  Const varsheet = "サンプル"
  
  Dim xlsApp As Excel.Application
  Dim xlsWkb(1 To 2) As Excel.Workbook
  Dim xlsSht(1 To 2) As Excel.Worksheet
  Dim 最下行番号 As Long
  Dim 右端列番号 As Integer
  
  Call file_check(varinput2)
 
  Set xlsApp = CreateObject("Excel.Application")
    'xlsApp.Visible = True
  Set xlsWkb(1) = xlsApp.Workbooks.Open(varinput1)
  Set xlsWkb(2) = xlsApp.Workbooks.Add
  
  Set xlsSht(1) = xlsWkb(1).Sheets(varsheet)
  Set xlsSht(2) = xlsWkb(2).Sheets(1)
 
  最下行番号 = xlsSht(1).Cells(xlsSht(1).Rows.Count, 1).End(xlUp).Row
  右端列番号 = xlsSht(1).Cells(1, xlsSht(1).Columns.Count).End(xlToLeft).Column

  
  xlsSht(2).Range(xlsSht(2).Cells(1, 1), xlsSht(2).Cells(最下行番号, 右端列番号)).Value = _
  xlsSht(1).Range(xlsSht(1).Cells(1, 1), xlsSht(1).Cells(最下行番号, 右端列番号)).Value

  xlsWkb(2).SaveAs varinput2
  xlsWkb(2).Close
  
  xlsWkb(1).Close False
   
  xlsApp.Quit
  
  Set xlsSht(2) = Nothing
  Set xlsSht(1) = Nothing
  Set xlsWkb(2) = Nothing
  Set xlsWkb(1) = Nothing
  Set xlsApp = Nothing

  Exit Sub
 
エラー:

  If Err.Number = 1004 Then
   Resume Next
  Else
   MsgBox Err.Number & " : " & Err.Description
  End If

End Sub

Private Sub file_check(inFile As String)

  On Error Resume Next
    Kill inFile
  On Error GoTo 0

End Sub


ファイルのチェックの所は K.S さん の方が丁寧で良いと思われるのですが
一応こんなやり方もあるという事で紹介させて頂きます。

1,307 hits

【9032】AccessからExcelを操作するのですが、Excelが終了しない。 K.S 07/1/22(月) 18:15 質問
【9034】Re:AccessからExcelを操作するのですが... かみちゃん 07/1/22(月) 22:32 発言
【9035】Re:AccessからExcelを操作するのですが... K.S 07/1/23(火) 9:48 お礼
【9037】Re:AccessからExcelを操作するのですが... K.S 07/1/23(火) 13:41 お礼
【9041】Re:AccessからExcelを操作するのですが... 小僧 07/1/25(木) 12:12 回答

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