Excel VBA質問箱 IV

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

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


13245 / 13644 ツリー ←次へ | 前へ→

【6319】[型が一致しません]エラーが出てしまいます YO 03/6/24(火) 11:12 質問
【6333】Re:[型が一致しません]エラーが出てしまいま... ichinose 03/6/24(火) 19:27 発言
【6361】Re:[型が一致しません]エラーが出てしまい... YO 03/6/26(木) 9:24 お礼

【6319】[型が一致しません]エラーが出てしまいます
質問  YO  - 03/6/24(火) 11:12 -

引用なし
パスワード
   はじめまして。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は始めたばっかりで、もしかしたら簡単な間違いかもしれません。
 解決方法/エラーの理由をご存知の方がいらっしゃいましたら、ご教授願います。

【6333】Re:[型が一致しません]エラーが出てしまい...
発言  ichinose  - 03/6/24(火) 19:27 -

引用なし
パスワード
   ▼YO さん:
こんばんは。
机上デバッグした限りでは・・・、

>*********************************************************
>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
'   ↑ここでExcel閉じてますね?なのに下でマクロ実行してますが・・・。
  objEXE.Run macro:="作業用ファイル.xls!議事録単票_Copy"
'   間のApplicationは不要だと思いますが

>   → 作業用ファイルのマクロ実行
>  Set rs = Nothing
>    Set db = Nothing
>  Else
>    MsgBox "処理を中止しました", , "管理者"
>    
>  End If
>  
>  Exit Sub
>  
>エラー:
>
>  MsgBox "Error番号:" & Err.Number & vbNewLine & _
>      "Error内容:" & Err.Description, 16, "管理者"
>  End
>  
>End Sub
>*********************************************************
>
>
実行確認していませんが、コードを見せていただいて気がついた点です。

【6361】Re:[型が一致しません]エラーが出てしまい...
お礼  YO  - 03/6/26(木) 9:24 -

引用なし
パスワード
   ichinoseさん:

おはようございます。
目を通して頂きありがとうございます。
今朝、ichinoseからご指摘を受けた部分を修正し実行致しました。
問題無く動作しました。ありがとうございました。

今回、様々な資料を参考に作成しておりました。
内容を把握しながら進めていたつもりなのですが、この一件で自分
自身の知識不足を再認識しました。

今後も、ichinose始め皆様にお聞きする事があると思いますが、
宜しくお願いします。

13245 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free