[[20140810100539]] 『経過時間を記録』(やま) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『経過時間を記録』(やま)

 出席データから、在塾時間を表示したいのです。

 ◎ 現状は A2=生徒番号  B2=氏名  C2=出席した時間 (D2へと右列へ進む)で
 出席タイムの表示だけで、月末に、集計などをするだけです。

 ◎ これを利用して、フリータイム制にした場合には、「出席時間」「帰りの時間」を
 入力して「在塾時間」の表示をさせたいのです。下記計算式では、タイム登録後に列の
 挿入をして計算させればOKですが、当該列を非表示にしても「0」を表示させない式にし
 ても、出席が記録される列が狂ってしまう。

 C2=8月10日10時00分00秒  D2=8月10日10時10分25秒 E2=0時10分25秒

 E2=IF(C2="","",D2-C2) これだけならば、正しく表示されていますが、次回入力時には
 出席のタイムが記録される「列」が狂ってしまいます。この教室で、ご教示いただいて
 完成しています下記コードの記述(未理解の部分が多いです)の、何処を修正すれば
「出席時間」「帰りの時間」「在塾時間」の「列」を指定し直しなどが可能?をご教示く
 ださい。  ユーザーフォーム1の記述です。

 Private Ind As Long

Private Sub CommandButton1_Click()

   If TextBox1.Text <> "" Then
       Sheets("Sheet1").Cells(Ind + 1, 256) _
       .End(xlToLeft).Offset(, 1).Value = Now()
   Else
      MsgBox "生徒氏名が未入力", 48
   End If
   Unload UserForm1
End Sub

Private Sub Label2_Click()

End Sub

Private Sub ListBox1_Change()

   Ind = ListBox1.ListIndex
   If Ind < 1 Then Exit Sub
   TextBox1.Text = Sheets("Sheet1").Cells(Ind + 1, 2).Value
End Sub

Private Sub TextBox1_Change()

End Sub

Private Sub UserForm_Initialize()

    Me.CommandButton1.Caption = "出席日時入力"
    With Sheets("Sheet1")
       If WorksheetFunction.CountA(.Range("A:A")) = 0 Then
           Me.TextBox1.Text = "リストが未入力"
      Else
         Me.ListBox1.RowSource = .Name & "!" & _
         .Range("A1", .Range("A65536").End(xlUp)).Address
      End If
   End With
End Sub

 Module1(コード)には
 Sub U_Form()
 UserForm.Show
 End Sub

< 使用 Excel:Excel2003、使用 OS:WindowsXP >


 回答ではありませんが、最近(だいぶ前から?)は入退室時に保護者にメールを送る
 システムがあるようです
 (「塾用 入退室メール」で検索してみてください)。
 一例:
http://www.jukumail.jp/index.html
http://www.pipi-mail.jp/

 で、ちょっと本題ですが、こういったサービスの「管理機能」で滞塾時間(入退室時間)の
 一覧が見れるようです。これを使用して管理するのもありかな?と思いました。
 でも保護者(ユーザ)にとって嬉しいのは、子供の様子を知ることができることですね。

 これらの業界とはまったく関係ないなので、宣伝のつもりはないのですが、自分の子供の
 塾で実際にこのサービスが使われていて、便利だなぁと感じていたのでコメントのみ。
(Mook) 2014/08/10(日) 12:14

 (Mook)さん: 2014/08/10(日) 12:14

 ◎ コメントありがとうございました。参考にさせていただきます。「連絡網」サービスは実行中です。
 
 ◎ 引き続き、ご教示よろしくお願いします。
(やま) 2014/08/10(日) 14:02

 そうでしたか。
 そしたら、そこで入退室時間の一覧を機能があれば、それを EXCEL に取り込めないでしょうか。

 単純には WEB の履歴リストを EXCEL に貼り付ければ、そのままデータとして利用できると
 思うのですが、ご利用のもの中にはそういった管理データはないでしょうか。
(Mook) 2014/08/10(日) 18:07

 (Mook)さん: 2014/08/10(日) 18:07

 ◎ 日本語表現の難しさとでも申しましょうか。小生の書きました
 >「連絡網」サービスは実行中です。  とは、無料のメール配信サービスの事でして、ご案内頂きました件
 では有りませんので、質問の件引き続きご教示よろしくお願いします。

(やま) 2014/08/10(日) 19:02


 乗り掛かった舟なので、コードを見てみましたが、
(できればデータのレイアウトは提示いただきたいですが)、
 列を追記追記ではうまくないでしょう。

 現在のデータ形式のままで、コードの拡張は無理があるのではないでしょうか。
 基本的には通常の勤怠のタイムカードみたいに、

    A         B      C     D
  (名前)    日付  入室   退室

 のようにしてシートを生徒単位にするか(あるいは名前列を追加して全生徒同一シートでも可。その場合は後で集計)、

 現在の形を崩したくないのであれば、1生徒に3行使用し
                 8/1  8/2  8/3
 生徒A  入室
        退室
    滞在時間
 生徒B  入室
        退室
    滞在時間

 のようにするのが素直な構えな気がします。

 いずれにせよ、入力が入室なのか退室なのかをどう区別するかは決める必要があるのでは。
 (同一日の入力回数で自動判定するのも可能とは思いますが。)

 気になったのは
   Ind = ListBox1.ListIndex
 とリストとシートの位置を並び順が狂わないこと前提で組んでいますが、
 名前なり番号で検索して入力位置を特定する方が、あとあと楽だと思います。

 検索にしていれば、後者のような複数行の運用への変更も手間が少なくて済みますので。

(Mook) 2014/08/10(日) 20:21


 (Mook)さん: 2014/08/10(日) 20:21

 ◎ 泥船に乗っていただき恐縮です。(笑い) よろしくお願いします。

 ◎ ツールバーに出現している「にこちゃんマーク」をクリックで、ウィンドーが開いて、生徒番号が列挙さ
 れている。自分の番号を選択クリックで「生徒氏名」が、窓に表示。「確認(登録)ボタン」をクリック。
 こんな流れです。

 ◎ 授業後の作業で、「欠席」の確認作業はするわけですから、その際に「当日の授業時間」の「列」を挿 
 入すれば、済む事のように思いますが、これを、少し横着な考えで、簡単に解決できないか?と質問をいれ
 ました。

 >現在のデータ形式のままで、コードの拡張は無理があるのではないでしょうか

 ◎ 操作が複雑になってくると、当方の頭が着いていけなくなってしまいそうです。今後「列挿入」の方法
 で作業をしてみます。その結果を報告なり再質問を と思いますので、よろしくお願いします。

(やま) 2014/08/11(月) 08:35


 操作は複雑にする必要はありません。

 勘違いされているかもしれませんが、データの書式を変えることは処理の変更は
 必要になりますが、操作の変更は必ずしも必要ありません。

 現在のデータの格納先を変更するという話なので、

   If TextBox1.Text <> "" Then
       Sheets("Sheet1").Cells(Ind + 1, 256) _
       .End(xlToLeft).Offset(, 1).Value = Now()
   Else

 の中身を変えるというお話です。
 ユーザフォームや表の説明が無いので、再質問の際はそれらをご提示ください。
(Mook) 2014/08/11(月) 09:18

 (Mook)さん: 2014/08/11(月) 09:18

 ◎ ご親切な、アドバイスをありがとうございました。
(やま) 2014/08/11(月) 14:46

 (Mook)さん:

 ?@ 現状のファイルで、操作をしてみました。(一応、成功です。)

 毎回終了後に「欠席」の確認作業をしますので、そこでもう1作業。「授業時間」の列を挿入します。ここで
 の注意点は、翌日のセルに「式」を設定しておかないことでした。そうすれば、次回の入力列に支障が出な
 い。セルの書式設定ーユーザー定義で「0」=「欠席」としているので、「授業時間」の列でも、「欠席」の
 表示がされる。出席時間・帰りの時間・授業時間・この列順序の繰り返しをする方法です。

 ?A >ユーザフォームや表の説明が無いので、再質問の際はそれらをご提示ください。

 ◎ 「エクセルの学校」のデータ管理には、驚きまた敬服しました。このアドバイスを「表示」する方法が
 分かりません。そこで、昔ご教示いただいたのをと「検索」を試みました。何と2005年の頃(Excelファイル
 の 記録から)質問データも有りましたが、残念ながら見つかりませんでしたので、お尋ねをします。
 UserForm1の「表示」からプロパ ティウィンドウで、出てきた「全体」「項目別」タブが有りますが、これ
 らをここへ「提示」する為にはどのような 操作が必要なのですか?(コピーがきかないようですので)

(やま) 2014/08/13(水) 10:14


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.