|
はじめまして。YOです。今回、初めて質問します。宜しくお願いします。
Access(2000)のある1レコードをExcelで作成した単票のフォーマットに出力したいと
思っています。自分なりに調べてコーディングしてみたのですが、「型が一致しません」とエラーが出てしまいます。処理の流れとして、以下のように考えています。
1.Accessの1レコードを、作業用ブック(Excel)に出力
→ Access側で行う
2.出力したレコードの値を単票の指定したセルに代入。代入後、名前をつけて保存
→ 作業用ブック(Excel)に作成したマクロで行う
1.のコードを下記に記述します。
*********************************************************
Private Sub bot3_Click() '議事録単票
On Error GoTo エラー
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim objEXE As Object
Dim strmsg As String
Dim intmsg As Integer
strmsg = "Ms Excelへデータを出力しますか ?"
intmsg = MsgBox(strmsg, 17, "管理者")
If intmsg = 1 Then
Set db = CurrentDb
Set rs = db.OpenRecordset("Q_議事録単票")
Set objEXE = Excel.Application
objEXE.Workbooks.Open Filename:="C:\share\Project\作業用ファイル.xls"
objEXE.Worksheets("議事単票シート").Select
objEXE.Cells(3, 2).CopyFromRecordset rs
objEXE.Quit
objEXE.Application.Run macro:="作業用ファイル.xls!議事録単票_Copy"
→ 作業用ファイルのマクロ実行
Set rs = Nothing
Set db = Nothing
Else
MsgBox "処理を中止しました", , "管理者"
End If
Exit Sub
エラー:
MsgBox "Error番号:" & Err.Number & vbNewLine & _
"Error内容:" & Err.Description, 16, "管理者"
End
End Sub
*********************************************************
2.のコードを下記に記述します。
*********************************************************
Sub 議事録単票_Copy()
Dim 年_temp As Integer
Dim 月_temp As Integer
Dim 日_temp As Integer
Dim 時_temp As Integer
Dim 分_temp As Integer
Dim 出力先ファイル As String
年_temp = YEAR(Now())
月_temp = MONTH(Now())
日_temp = DAY(Now())
時_temp = HOUR(Now())
分_temp = MINUTE(Now())
出力先ファイル = "議事録単票_" & 年_temp & 月_temp & 日_temp & "_" & 時_temp & 分_temp & ".xls"
ChDir "C:\share\Project"
Workbooks.Open Filename:="C:\share\Project\議事録単票.xls" → ★問題点
Workbooks("議事録単票.xls").Worksheets("議事録単票").Range("I3").Value = Workbooks("作業用ファイル.xls").Worksheets("議事単票シート").Range("B3")
Workbooks("議事録単票.xls").Worksheets("議事録単票").Range("I4").Value = Workbooks("作業用ファイル.xls").Worksheets("議事単票シート").Range("C3")
Workbooks("議事録単票.xls").Worksheets("議事録単票").Range("C5").Value = Workbooks("作業用ファイル.xls").Worksheets("議事単票シート").Range("D3")
Workbooks("議事録単票.xls").Worksheets("議事録単票").Range("C6").Value = Workbooks("作業用ファイル.xls").Worksheets("議事単票シート").Range("E3")
Workbooks("議事録単票.xls").Worksheets("議事録単票").Range("H6").Value = Workbooks("作業用ファイル.xls").Worksheets("議事単票シート").Range("F3")
Workbooks("議事録単票.xls").Worksheets("議事録単票").Range("C7").Value = Workbooks("作業用ファイル.xls").Worksheets("議事単票シート").Range("G3")
Workbooks("議事録単票.xls").Worksheets("議事録単票").Range("I8").Value = Workbooks("作業用ファイル.xls").Worksheets("議事単票シート").Range("H3")
Workbooks("議事録単票.xls").Worksheets("議事録単票").Range("C9").Value = Workbooks("作業用ファイル.xls").Worksheets("議事単票シート").Range("I3")
Workbooks("議事録単票.xls").Worksheets("議事録単票").Range("I10").Value = Workbooks("作業用ファイル.xls").Worksheets("議事単票シート").Range("J3")
Workbooks("議事録単票.xls").Worksheets("議事録単票").Range("C11").Value = Workbooks("作業用ファイル.xls").Worksheets("議事単票シート").Range("K3")
Workbooks("議事録単票.xls").Worksheets("議事録単票").Range("B16").Value = Workbooks("作業用ファイル.xls").Worksheets("議事単票シート").Range("L3")
Workbooks("議事録単票.xls").Worksheets("議事録単票").Range("B42").Value = Workbooks("作業用ファイル.xls").Worksheets("議事単票シート").Range("M3")
ChDir "C:\share\Project\出力帳票\議事録単票"
Workbooks("議事録単票.xls").SaveAs Filename:=("C:\share\Project\出力帳票\議事録単票\" & 出力先ファイル)
Workbooks(出力先ファイル).Close
End Sub
*********************************************************
Accessからマクロを呼び出し実行した時に、Excelマクロの「★問題点」の部分で
「型が一致しません」というエラーが出てしまいます。2.のマクロを単独で実行さ
せた場合は正常(エラーにならず)に終了します。
インターネット・本・ヘルプ等で調べてみたのですが、解決方法が分かりません。
Excel/Accessは始めたばっかりで、もしかしたら簡単な間違いかもしれません。
解決方法/エラーの理由をご存知の方がいらっしゃいましたら、ご教授願います。
|
|