
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbaでPDFファイルが印刷されない
-
印刷要求順番と印刷出力順番が...
-
VBAで印刷スプール終了の判定を...
-
クリレポのプリンタ設定について
-
2回以上PDFをコピーや印刷がで...
-
VB6上から印刷ダイアログを表示...
-
URLを指定して直接印刷って出来...
-
ACCESSで設定した帳票の用紙サ...
-
VBで帳票するサンプル
-
VB.NETで罫線付きのデータを印...
-
イベントプロシージャ 印刷が...
-
印刷ダイアログを表示させない方法
-
PHPでPDFファイルの直接印刷
-
エクセルのVBAでプリンタを変更...
-
Excel VBA オブジェクトが必要...
-
ファイルのパス指定での印刷方法
-
PDFファイルを印刷し終了するには
-
プログラムからプリンタジョブ...
-
Designer.vbは直接コードをいじ...
-
ManagementClassが見つからない。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷要求順番と印刷出力順番が...
-
印刷ダイアログを表示させない方法
-
PHPでPDFファイルの直接印刷
-
2回以上PDFをコピーや印刷がで...
-
vbaでPDFファイルが印刷されない
-
印刷ダイアログを表示させたくない
-
VBAで印刷の成功判定
-
VB6上から印刷ダイアログを表示...
-
ACCESSで設定した帳票の用紙サ...
-
クリレポのプリンタ設定について
-
オートメーションエラー(214741...
-
プリンターを指定して印刷するには
-
VBでExcel印刷する時のプリンタ...
-
EXCELファイルの複数ダウンロー...
-
VBAで印刷スプール終了の判定を...
-
ActiveReportsを使って[印刷ダ...
-
イベントプロシージャ 印刷が...
-
VB.NET+ActiveReports で印刷...
-
A4の2枚をA3の1枚にする編集方法?
-
VBからプリンタに出力する時に...
おすすめ情報