| 
    
     |  | ともちゃん さん、Asakiさん、こんばんは。 
 >さっそくのレス、有難うございます。コードはちょっと長いので、遠慮してたんですが、やっぱり見ていただいたほうが良いようなのでアップします。
 >とてもへたくそなコードだと思いますが、ご意見お願いします。
 >
 >
 >これは、メニューボタンを貼った、フォームの(シートではない)の関数、及びイベントです。
 >
 >' 10.5 + 2.10 = 13.0 で計算で計算結果を返す(→意味:10:50+2:10=13:00)
 >Private Function 時分合計(ctime1, ctime2)
 >Dim 時数1 As Integer
 >Dim 時数2 As Integer
 >Dim 分数1 As Integer
 >Dim 分数2 As Integer
 >Dim 計時数 As Integer
 >Dim 計分数 As Integer
 >
 > 時数1 = Int(ctime1) '切捨て
 > 時数2 = Int(ctime2) '切捨て
 > 分数1 = (ctime1 - 時数1) * 100
 > 分数2 = (ctime2 - 時数2) * 100
 > 計分数 = 分数1 + 分数2
 > 計時数 = 時数1 + 時数2 + ((分数1 + 分数2) \ 60)
 > 計分数 = 計分数 - (60 * ((分数1 + 分数2) \ 60))
 > 時分合計 = 計時数 + (計分数 / 100)
 >
 >End Function
 >
 >
 >'データファイルインポート → 計算
 >Private Sub BtnInport_Click()
 >Dim Ret As Variant
 >Dim sFullname As String
 >Dim iEndRow As Integer
 >Dim iRow As Integer 'ループカウンタ
 >Dim 時間内労働
 >
 > Application.ScreenUpdating = False
 > 'ファイルを指定
 > CurDir (ThisWorkbook.Path)
 > Ret = Application.GetOpenFilename("CSVファイル(*.csv), *.csv")
 > If Ret = False Then
 >  Exit Sub 'キャンセル
 > End If
 >
 > 'パス・ファイル名の取得
 > sFullname = Ret
 > 'メニュー画面を閉じる
 > Unload Me
 '  ↑これが問題なのではありませんか?
 '  ここでフォームをUnloadしてしまったら・・・、
 '  以下のコードが実行されないと思いますが・・・。
 '  ここでは、
 '  me.hide
 
 > 'CSVファイルを開いて、「勤怠シート」にデータを貼り付け
 > Workbooks.Open Filename:=sFullname
 > Cells.Select
 > Selection.Copy
 > Windows(Dir(ThisWorkbook.FullName)).Activate
 > Worksheets("勤怠シート").Activate
 > Cells.Select
 > ActiveSheet.Paste
 >
 >
 > '2行目からループ:フィールドの1と2の時間合計を3にセット
 > iEndRow = ActiveSheet.Range("A65536").End(xlUp).Row
 > For iRow = 2 To iEndRow
 >  時間内労働 = 時分合計(ActiveSheet.Cells(iRow, 1), ActiveSheet.Cells(iRow, 1)) '←ここの「時分合計」が呼び出されない!!
 >  ActiveSheet.Cells(iRow, 3) = 時間内労働
 > Next iRow
 >
 '全て処理が終了したら、
 unload me
 >End Sub
 
 |  |