2013年04月23日
VBA:いくらでもある事務改善パート2(6)
前回からの続きです。
介護事業所(デイサービス)で作られる、介護予防実績報告書の事務改善について書いています。
3日かかる仕事を10分、いや5分で片づけようというものです。
実績報告書の項目をすべて編集します。
70%完成でしょうか。

プログラムはこんな感じでしょうか。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
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 '実績報告書の利用日を編集
End If
Next cnt
Worksheets("実績報告書").Select
End If
End Sub
'・・・・実績報告書の編集項目をクリアする処理
Sub 項目クリア()
'
With Worksheets("実績報告書")
.Range("e8") = ""
.Range("e6") = ""
.Range("e4") = ""
.Range("r4") = ""
.Range("b12") = ""
.Range("c13") = ""
.Range("r6") = ""
.Range("E12") = ""
.Range("E14") = ""
.Range("E16") = ""
.Range("E18") = ""
.Range("E20") = ""
.Range("B25") = ""
.Range("I25") = ""
.Range("N25") = ""
.Range("B27") = ""
.Range("I27") = ""
.Range("N27") = ""
.Range("B29") = ""
.Range("I29") = ""
.Range("N29") = ""
.Range("B31") = ""
.Range("I31") = ""
.Range("N31") = ""
.Range("B33") = ""
.Range("I33") = ""
.Range("N33") = ""
.Range("n12:ar20") = ""
End With
End Sub
'実績報告書の項目を編集する処理
' 変数 r は 行番号
Sub 編集(r) '
With Worksheets("実績報告書")
.Range("e8") = Sheets("対象者名簿").Range("d" & r)
.Range("e6") = Sheets("対象者名簿").Range("e" & r)
.Range("e4") = Sheets("対象者名簿").Range("f" & r)
.Range("r4") = Sheets("対象者名簿").Range("g" & r)
.Range("b12") = Sheets("対象者名簿").Range("h" & r)
.Range("c13") = Sheets("対象者名簿").Range("i" & r)
介護度 = Sheets("対象者名簿").Range("g" & r)
Select Case 介護度
Case "要支援1"
.Range("r6").Value = "49700"
.Range("E12").Value = "予防通所介護1"
.Range("E14").Value = "運動器機能向上加算"
.Range("E16").Value = "事業所評価加算"
.Range("E18").Value = "サービス提供体制加算Ⅱ1"
.Range("E20").Value = "介護処遇改善加算Ⅰ"
.Range("B25").Value = "予防通所介護1"
.Range("I25").Value = "651111"
.Range("N25").Value = "2099"
.Range("B27").Value = "運動器機能向上加算"
.Range("I27").Value = "655002"
.Range("N27").Value = "225"
.Range("B29").Value = "事業所評価加算"
.Range("I29").Value = "655005"
.Range("N29").Value = "120"
.Range("B31").Value = "サービス提供体制加算Ⅱ1"
.Range("I31").Value = "656103"
.Range("N31").Value = "24"
.Range("B33").Value = "介護処遇改善加算Ⅰ"
.Range("I33").Value = "656111"
.Range("N33").Value = "46.892"
Case "要支援2"
.Range("r6").Value = "104000"
.Range("e12").Value = "予防通所介護2"
.Range("e14").Value = "運動器機能向上加算"
.Range("E16").Value = "事業所評価加算"
.Range("e18").Value = "サービス提供体制加算Ⅱ2"
.Range("E20").Value = "介護処遇改善加算Ⅰ"
.Range("B25").Value = "予防通所介護2"
.Range("i25").Value = "651121"
.Range("n25").Value = "4205"
.Range("B27").Value = "運動器機能向上加算"
.Range("i27").Value = "655002"
.Range("n27").Value = "225"
.Range("B29").Value = "事業所評価加算"
.Range("I29").Value = "655005"
.Range("N29").Value = "120"
.Range("B31").Value = "サービス提供体制加算Ⅱ2"
.Range("i31").Value = "656104"
.Range("n31").Value = "48"
.Range("B33").Value = "介護処遇改善加算Ⅰ"
.Range("I33").Value = "656111"
.Range("N33").Value = "87.362"
End Select
End With
End Sub
ダブルクリックをすると、実績報告書を編集するという処理は完成しました。
次に、印刷処理の機能を作っていきます。
もちろん、一件毎の印刷はできるようにしますが、
一気に50件分を、ボタンひとつで印刷できれば、
時短につながる事間違いなし。
3日の仕事が5分で!・・・夢のような話です。
まだまだ細かい機能を追加していきます。
お楽しみに
介護事業所(デイサービス)で作られる、介護予防実績報告書の事務改善について書いています。
3日かかる仕事を10分、いや5分で片づけようというものです。
実績報告書の項目をすべて編集します。
70%完成でしょうか。

プログラムはこんな感じでしょうか。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
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 '実績報告書の利用日を編集
End If
Next cnt
Worksheets("実績報告書").Select
End If
End Sub
'・・・・実績報告書の編集項目をクリアする処理
Sub 項目クリア()
'
With Worksheets("実績報告書")
.Range("e8") = ""
.Range("e6") = ""
.Range("e4") = ""
.Range("r4") = ""
.Range("b12") = ""
.Range("c13") = ""
.Range("r6") = ""
.Range("E12") = ""
.Range("E14") = ""
.Range("E16") = ""
.Range("E18") = ""
.Range("E20") = ""
.Range("B25") = ""
.Range("I25") = ""
.Range("N25") = ""
.Range("B27") = ""
.Range("I27") = ""
.Range("N27") = ""
.Range("B29") = ""
.Range("I29") = ""
.Range("N29") = ""
.Range("B31") = ""
.Range("I31") = ""
.Range("N31") = ""
.Range("B33") = ""
.Range("I33") = ""
.Range("N33") = ""
.Range("n12:ar20") = ""
End With
End Sub
'実績報告書の項目を編集する処理
' 変数 r は 行番号
Sub 編集(r) '
With Worksheets("実績報告書")
.Range("e8") = Sheets("対象者名簿").Range("d" & r)
.Range("e6") = Sheets("対象者名簿").Range("e" & r)
.Range("e4") = Sheets("対象者名簿").Range("f" & r)
.Range("r4") = Sheets("対象者名簿").Range("g" & r)
.Range("b12") = Sheets("対象者名簿").Range("h" & r)
.Range("c13") = Sheets("対象者名簿").Range("i" & r)
介護度 = Sheets("対象者名簿").Range("g" & r)
Select Case 介護度
Case "要支援1"
.Range("r6").Value = "49700"
.Range("E12").Value = "予防通所介護1"
.Range("E14").Value = "運動器機能向上加算"
.Range("E16").Value = "事業所評価加算"
.Range("E18").Value = "サービス提供体制加算Ⅱ1"
.Range("E20").Value = "介護処遇改善加算Ⅰ"
.Range("B25").Value = "予防通所介護1"
.Range("I25").Value = "651111"
.Range("N25").Value = "2099"
.Range("B27").Value = "運動器機能向上加算"
.Range("I27").Value = "655002"
.Range("N27").Value = "225"
.Range("B29").Value = "事業所評価加算"
.Range("I29").Value = "655005"
.Range("N29").Value = "120"
.Range("B31").Value = "サービス提供体制加算Ⅱ1"
.Range("I31").Value = "656103"
.Range("N31").Value = "24"
.Range("B33").Value = "介護処遇改善加算Ⅰ"
.Range("I33").Value = "656111"
.Range("N33").Value = "46.892"
Case "要支援2"
.Range("r6").Value = "104000"
.Range("e12").Value = "予防通所介護2"
.Range("e14").Value = "運動器機能向上加算"
.Range("E16").Value = "事業所評価加算"
.Range("e18").Value = "サービス提供体制加算Ⅱ2"
.Range("E20").Value = "介護処遇改善加算Ⅰ"
.Range("B25").Value = "予防通所介護2"
.Range("i25").Value = "651121"
.Range("n25").Value = "4205"
.Range("B27").Value = "運動器機能向上加算"
.Range("i27").Value = "655002"
.Range("n27").Value = "225"
.Range("B29").Value = "事業所評価加算"
.Range("I29").Value = "655005"
.Range("N29").Value = "120"
.Range("B31").Value = "サービス提供体制加算Ⅱ2"
.Range("i31").Value = "656104"
.Range("n31").Value = "48"
.Range("B33").Value = "介護処遇改善加算Ⅰ"
.Range("I33").Value = "656111"
.Range("N33").Value = "87.362"
End Select
End With
End Sub
ダブルクリックをすると、実績報告書を編集するという処理は完成しました。
次に、印刷処理の機能を作っていきます。
もちろん、一件毎の印刷はできるようにしますが、
一気に50件分を、ボタンひとつで印刷できれば、
時短につながる事間違いなし。
3日の仕事が5分で!・・・夢のような話です。
まだまだ細かい機能を追加していきます。
お楽しみに

Posted by ミール at 08:11│Comments(0)
│VBA