
Accessフォームで入力したレコードを指定のエクセルのセルへ転送し印刷できるようにしました。
「Excelへ出力」ボタンをクリックすると、一件分のレコードのみ転送され印刷できましたが、残りのレコードも印刷できるようにしたいですが直し方がわからないため、コードの修正箇所を教えていただきたいです。分かる方がいましたらご教授ください。コードは以下の通りです。
よろしくお願いします。
Private Sub Excelへ出力_Click()
Dim WB1 As Workbook
Dim WS1 As Worksheet
Dim D8 As String
On Error GoTo ProcessError
MsgBox "本日の体力測定結果を印刷します"
'ファイルopen
Workbooks.Open filename:="C:\体力測定\TEST.xlsx"
Set WB1 = Workbooks("TEST.xlsx")
Set WS1 = WB1.Worksheets(1)
WS1.Cells(3, 1).Value = Me.部課CD.Value
WS1.Cells(3, 2).Value = Me.職場.Value
WS1.Cells(3, 3).Value = Me.氏名コード.Value
WS1.Cells(3, 4).Value = Me.氏名.Value
WS1.Cells(3, 5).Value = Me.身長.Value
'ファイル保存
D8 = "C:\体力測定\" & "_" & Format(CStr(Now), "yyyymmddhhmmss") & ".xlsx"
WS1.Activate
Activesheet.PrintOut
ActiveWorkbook.SaveAs D8
ActiveWorkbook.Close SaveChanges:=False
Exit Sub
ProcessError:
MsgBox "エラー番号:" & Err.Number & vbCrLf & _
"エラーの種類:" & Err.Description, vbExclamation
Exit Sub
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
Excel自身のセットが不明ですが、大体こんな感じではないかと
Private Sub Excelへ出力_Click()
Dim WB1 As Workbook
Dim WS1 As Worksheet
Dim D8 As String
dim RS as dao.recordset '参照設定の変更が必要かもしれません
On Error GoTo ProcessError
MsgBox "本日の体力測定結果を印刷します"
'ファイルopen
Workbooks.Open filename:="C:\体力測定\TEST.xlsx"
set rs=me.recordsetclone 'このフォームのレコードセット
Set WB1 = Workbooks("TEST.xlsx")
Set WS1 = WB1.Worksheets(1)
do until rs.eof
WS1.Cells(3, 1).Value = rs!部課CD
WS1.Cells(3, 2).Value = rs!職場
WS1.Cells(3, 3).Value = rs!氏名コード
WS1.Cells(3, 4).Value = rs!氏名
WS1.Cells(3, 5).Value = rs!身長
'未入力を考慮してnz(rs!部課CD,0) とか nz(rs!部課CD,"") などがベターかも
'ファイル保存
D8 = "C:\体力測定\" & "_" & Format(CStr(Now), "yyyymmddhhmmss") & ".xlsx"
'WS1.Activate
ws1.PrintOut
wb1.SaveAs D8
'ActiveWorkbook.Close SaveChanges:=False
rs.movenext
loop
wb1.Close SaveChanges:=False
rs.close:set rs=nothing
set ws1=nothing:set wb1=nothing
'Excel自身を閉じる処理が必要なのですが
'どうやってセットしたかが不明なので割愛
Exit Sub
ProcessError:
MsgBox "エラー番号:" & Err.Number & vbCrLf & _
"エラーの種類:" & Err.Description & vbCrLf & _
"エラーの発生したレコード" & rs.currentrecord, vbExclamation
rs.close:set rs=nothing
'Exit Sub
End Sub
No.1
- 回答日時:
Me.~.Value ってフォームに配置したコントロール(書き込み最新版?)の値ですよね。
それしか指示してませんのでそれしか実行もされないでしょう。
具体的に(データがダミーでも)どのような仕組みで作られているかが、回答者に不明なので回答も困難なのではと思います。
Excel側に新規で追加したデータのみ書き込むのか、既存のデータを編集したらその内容もExcelにリンクさせるのか等でも変わるのでは?
Excelに出力するよりAccessファイルからデータを引っ張ってきて処理させるように、Excel側にその機能を追加するとかじゃダメなのでしょうか?
ちなみに私はAccessほぼ皆無の初心者レベルなので間違った解釈であればスル~してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) 3個のfileのセルデータを1個のfileのセルに貼り付けるVBAコードですが。 1 2023/02/20 09:21
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
URLを指定して直接印刷って出来...
-
ASCII印刷可能文字は何文字?
-
A4の2枚をA3の1枚にする編集方法?
-
オートメーションエラー(214741...
-
VBでExcel印刷する時のプリンタ...
-
印刷ダイアログを表示させない方法
-
VB2008,DataGridViewの内容を印...
-
印刷について
-
256bitを95種類で表現すると何...
-
プリンタの印刷ジョブを削除し...
-
動的に生成したHTMLを、画面に...
-
vbaでPDFファイルが印刷されない
-
VBからのプリンタ制御について
-
印刷ダイアログを表示させたくない
-
スプレッド(Spread 6) で縮小...
-
VBAで印刷の成功判定
-
HPの背景画像や背景色が印刷時...
-
webページの印刷制限について
-
Eclipseを使ってソースを印刷し...
-
excel vbaから実行するexe実行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷ダイアログを表示させない方法
-
vbaでPDFファイルが印刷されない
-
印刷ダイアログを表示させたくない
-
PHPでPDFファイルの直接印刷
-
2回以上PDFをコピーや印刷がで...
-
オートメーションエラー(214741...
-
印刷要求順番と印刷出力順番が...
-
リンク先のページを印刷したい
-
EXCELファイルの複数ダウンロー...
-
VBAで印刷の成功判定
-
プリンターを指定して印刷するには
-
VBからプリンタに出力する時に...
-
ActiveReportsを使って[印刷ダ...
-
VBAで印刷スプール終了の判定を...
-
ACCESSで設定した帳票の用紙サ...
-
VBscriptでPDFファイルを直接印...
-
VBSでExcelファイル印刷時のプ...
-
VBAで不特定枚数印刷をしたいで...
-
VBAにて指定したセルをプルダウ...
-
A4の2枚をA3の1枚にする編集方法?
おすすめ情報