[[20190110175158]] 『あるセルに記入すると1時間増える』(おかし) ページの最後に飛ぶ

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

 

『あるセルに記入すると1時間増える』(おかし)

質問です。

あるセルに文字を打ち込むとその他のセルの時間が1時間プラスされる。という表を作成したいと考えています。

今現在の表です。

日付 名前 開始  終了  備考
1/10 A  11:30 15:00 
1/10 B  11:30 14:00 美術
1/11 A  11:30 15:00

上記の表の場合、1/10のBさんが美術を行うので、開始時間が11:30からではなく、12:30からというように備考欄に記入されたときに自動的に開始時刻を1時間プラスされるように作りたいです。

ご教授お願い致します。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 開始時刻は数式か何かで引っ張ってきてるのでしょうか?
 手入力ですか?
 数式でしたら、条件分岐すればいいですけど、手入力してある場合は
 マクロ等でないと+1時間するのは出来ないと思います。
(カリーニン) 2019/01/10(木) 18:51

お返事ありがとうございます。
開始時刻は手入力です。
マクロであればどのようにすればよろしいか教えて下さい!
(おかし) 2019/01/10(木) 23:46

 ワークシートモジュールの
 Changeイベントを使用します。

 「備考」の列のセル内容が変更された時に
 「開始」の列に時刻が既に入っていたら1時間
 プラスするようにすればいいと思います。

 +1時間はシリアル値で
 +1/24
になります。

(カリーニン) 2019/01/12(土) 18:39


 丸出しだけどコードをアップしておきます。

 シートモジュールに記述します。

 「備考」がE列、「開始」がC列との前提です。

 Private Sub Worksheet_Change(ByVal Target As Range)

  '変更したセルが5列目(E列)だったら
  If Target.Column = 5 Then

     '変更したセルの2列左が数値だったら
     If IsNumeric(Target.Offset(, -2)) Then

        '変更したセルの2列左が日付データだったら(時刻でもOK)
        If IsDate(CDate(Target.Offset(, -2).Value)) Then

          '変更したセルの2列左の数値に1/24(1時間)プラスする
           Target.Offset(, -2).Value = Target.Offset(, -2).Value + 1 / 24

        End If
     End If
  End If
 End Sub
(カリーニン) 2019/01/12(土) 19:38

コメント返信:

[ 一覧(最新更新順) ]


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