VBAで日報作成

日々作業の中、作業現場は、日報という作業が存在すると思います。

日々行う作業ですので、一回作成すれば、メリットも大きくなります。

現在より、作業が楽になるようVBA、マクロで日報作成をしていきたいと思います。

個人日報と言うよりは、複数で使える日報にしてみます。

目次

マスター作成

2 マスターシートの作成 

3 フォームを作成しましょう

4 入力シートを作成します。

5 フォームに項目のテキストを追加

6 入力ボタンへこのコードを入力する

  マスター作成

まず、マスターを作成しましょう。

このサンプルでは、マスターシートに【コード】【氏名】【就業時間】を入力します。

★マスターから決まったデータを自動で入力できるようにする事により、毎日同じ数値

同じ項目といった面倒な作業から解放れます。

 2 マスターシートの作成 シート名に【マスター】と名前を付けて下さい。

今回例では、コード、氏名、就業時間のみ予め展開出来る様にします。

 3 フォームを作成しましょう

Visual Basic 画面を表示し、ユーザフォームの追加を行って下さい。

ユーザフォームに

ComboBox   1つ

TextBox       2つ

を配置し、それぞれに名前を付けて下さい。(別につけなくても良いです。識別の為にやります。)

ComboBox   kohdo

TextBox       name

TextBox       jikan

ここでコードを入力する

**************************************************************

’ここでは、マスターシートからコードを選択するだけで氏名、就業時間をフォームに展開します。

Private Sub kohdo_Change()

  Dim syoumijikan As String

  Dim strkohdo As String

  strkohdo = kohdo.Value

    If strkohdo = “” Then Exit Sub

    Set setcell = Worksheets(“マスター”).Range(“A2”)

    cntA = 0

    Do Until setcell.Value = strkohdo Or setcell.Value = “”

        Set setcell = setcell.Offset(1, 0)

        cntA = cntA + 1

    Loop

    If setcell.Value = “” Then

        MsgBox “コードが見つかりません。” _

            & “コードは一覧から選択してください!”, vbCritical, “作業手順!”

        Exit Sub

    End If

    namae = setcell.Offset(0, 1).Value

    jikan = setcell.Offset(0, 2).Value

End Sub

**************************************************************

’フォームを開いた時にマスターシートのコードをComboBox  に表示します。

Private Sub UserForm_Initialize()

Me.kohdo.RowSource = Worksheets(“マスター”).Range(“A2:A35”).Address(External:=True)

End Sub

**************************************************************

これで、フォームを立ち上げ後、コードを選択すると、名前、就業時間が選択されます。

 4 入力シートを作成します。

シート名を【日報】とし項目を1列に入力します。(必要な項目を入力して下さい)

ここでは、下記の内容にします。

コード 氏名 就業時間 除外内容 異常内容 除外時間 異常時間 事故時間 残業時間

 5 フォームに項目のテキストを追加

Visual Basic 画面を表示し、項目の追加及びボタンの追加を行って下さい。

☆ TextBox  6つ追加

  jyogainai

  jyogainaiyou

   jyogai

  ijyou

  jiko

  zanngyou

上記の名前にしました。

☆ Button  1つ追加  

入力

にしました。

 6 入力ボタンへこのコードを入力する

*****************************************************************************************

Private Sub 入力_Click()

 Dim stkohdo As Strin

Dim stnamae As String

 Dim stjikan As String

 Dim stjyogainai As String

 Dim stjyogainaiyou As String

 Dim stjyogai As String

 Dim stijyou As String

 Dim stjiko As String

 Dim stzanngyou As String

  stkohdo = kohdo.Value

  stnamae = namae.Value

  stjikan = jikan.Value

  stjyogainai = jyogainai.Value

  stjyogainaiyou = jyogainaiyou.Value

  stjyogai = jyogai.Value

  stijyou = ijyou.Value

  stjiko = jiko.Value

  stzanngyou = zanngyou.Value

  ‘入力位置の検索

   Sheets(“日報”).Select

   Range(“A65500”).Select

    Selection.End(xlUp).Select

    ActiveCell.Offset(1, 0).Select

      ActiveCell.Offset(0, 0).Value = stkohdo

      ActiveCell.Offset(0, 1).Value = stnamae

      ActiveCell.Offset(0, 2).Value = stjikan

      ActiveCell.Offset(0, 3).Value = stjyogainai

      ActiveCell.Offset(0, 4).Value = stjyogainaiyou

      ActiveCell.Offset(0, 5).Value = stjyogai

      ActiveCell.Offset(0, 6).Value = stijyou

      ActiveCell.Offset(0, 7).Value = stjiko

      ActiveCell.Offset(0, 8).Value = stzanngyou

End Sub

*****************************************************************************************

日報シートへ入力されます。後は、シート上にボタンを配置するか、イベント等で、フォームを表示させてやれば、超簡単な日報が、

完成します。

これをもっと使いやすい様カスタマイズして下さい!

以上日報作成でした。

1件のコメント

  1. 良いですね

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です