てぃーだブログ › S・M・C (Simple.Macro.Create) ~エクセルマクロ日記~ › VBA › VBA:いくらでもある事務改善パート2(7)

2013年04月24日

VBA:いくらでもある事務改善パート2(7)

前回からの続きです。

介護事業所(デイサービス)で作られる、介護予防実績報告書の事務改善について書いています。

3日の仕事がわずか5分に!夢のような取り組みです。

今日は、印刷処理について考えてみます。
一件の印刷なら、いたって簡単。

印刷プレビューの手順をマクロの記録で作成します。

①実績報告書のシートを選択
②マクロの記録開始
③印刷プレビュー
④印刷ブレビューを閉じる
⑤対象者名簿を選択
⑥マクロの記録終了

の手順で記録してみましょう。


①、② 実績報告書のシートからマクロの記録を開始します。
VBA:いくらでもある事務改善パート2(7)

③ 印刷プレビューを表示させます
VBA:いくらでもある事務改善パート2(7)

④ 印刷プレビューを閉じます。

VBA:いくらでもある事務改善パート2(7)

⑤対象者名簿を選択し、⑥マクロを終了します。

VBA:いくらでもある事務改善パート2(7)


下のようにマクロが記録されたはずです。

Sub Macro1()
'
' Macro1 Macro
'

ActiveWindow.SelectedSheets.PrintPreview
Sheets("対象者名簿").Select

End Sub

赤色の部分を、先日迄作ったプログラムにコピーします。



Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.ScreenUpdating = False
Dim obj As Object

r = Target.Row

対象者 = Sheets("対象者名簿").Range("d" & r)

Set obj = Workbooks("実績.xlsx").Worksheets("実績データ").Cells.Find(対象者)

If obj Is Nothing Then

MsgBox 対象者 & " 実績がありません"
Sheets("対象者名簿").Select

Else

Call 項目クリア

Call 編集(r)

For cnt = 1 To 31

If obj.Offset(0, cnt) = "" Then
Else

Worksheets("実績報告書").Range("l12").Offset(0, cnt) = 1 '実績報告書の利用日を編集
Worksheets("実績報告書").Range("l14").Offset(0, cnt) = 1
Worksheets("実績報告書").Range("l16").Offset(0, cnt) = 1
Worksheets("実績報告書").Range("l18").Offset(0, cnt) = 1
Worksheets("実績報告書").Range("l20").Offset(0, cnt) = 1

End If

Next cnt

Worksheets("実績報告書").Select
ActiveWindow.SelectedSheets.PrintPreview
Sheets("対象者名簿").Select

End If
Application.ScreenUpdating = True
End Sub

それでは、テストをしてみましょう。

花子さんをダブルクリックします。
VBA:いくらでもある事務改善パート2(7)

見事、プレビューで表示されました。
VBA:いくらでもある事務改善パート2(7)

印刷したい時は印刷ボタンを選択し、終了したい時は「プレビュー閉じる」を選択します。
選択した後は自動的に対象者名簿へ戻るはずです。

かなりイメージどおり出来上がってきました。

次回は、一気に印刷する処理を考えてみたいと思います。
これができれば85%完成です。

ではニコニコ



同じカテゴリー(VBA)の記事

Posted by ミール at 08:05│Comments(0)VBA
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。