オレが仕事で作ったマクロ・VBAをお分かちするシリーズです。
今回は、店舗の売り上げ額を、当日勤務しているスタッフに等分に割り当てて、各スタッフがどれほど売り上げに貢献しているかを判断するためのマクロ・VBAを作りました。
言葉で説明するとややこしくなるので、以下の通り図で説明します。
マクロの全体構成
マクロ・VBAの全体構成を説明します。
入力用フォーム
まずは入力フォームです。

集計用テーブルとグラフ
続いて、集計用テーブルとグラフです。

マクロの使い方
続いて、このマクロ・VBAの使い方を以下に記します。
入力フォームへの登録
入力フォームに、以下の情報を入力し、登録ボタンを押します。
- 日付
- 当日の売上額
- 当日のスタッフの勤務状況

集計用テーブルとグラフ
登録したデータは、該当する日付の欄に自動的に入力されます。
また、グラフに即座に反映されます。

VBAコード
このマクロを作成するために描いたVBAコードは以下の通りです。
適宜編集しながら活用ください。
カスタマイズのご依頼も受けていますので、気軽にお声がけください。
Sub 計上()
Dim Nen As Integer
Dim Gatsu As Integer
Dim Hi As Integer
Dim Uriage As Long
Dim staff As Integer
Dim sho As Double
Dim Namae As String
Dim gyo As Integer
Dim i As Integer
Dim staffNum As Integer
'各種データ取得
Nen = Range("F5").Value
Gatsu = Range("H5").Value
Hi = Range("J5").Value
Uriage = Range("F8").Value
staff = Range("H18").Value
sho = Uriage / staff
staffNum = Range("H19").Value
'H12を選択し、スタッフごとの売り上げを入力
Range("H12").Select
For i = 1 To staffNum
If ActiveCell.Value = "出勤" Then
ActiveCell.Offset(0, -2).Select
Namae = ActiveCell.Value
Worksheets(Nen & "年" & Gatsu & "月").Select
Columns("B:B").Select
Selection.Find(What:=Namae, LookIn:=xlFormulas2, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate
ActiveCell.Offset(0, Hi).Select
ActiveCell.Value = sho
Worksheets("入力フォーム").Select
ActiveCell.Offset(1, 2).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Next i
Worksheets(Nen & "年" & Gatsu & "月").Select
End Sub
まとめ
今回は、
店舗売上額に対する各スタッフの貢献度を比較する方法
を実現するマクロを作成しました。
業務効率化に役立てて頂けたら嬉しいです。
作って欲しいマクロなどありましたら、実力の範囲で作成しますので、お気軽に声をおかけください。
コメント