- 締切済み
エクセルでマクロ
以前、関数で質問したのですが、関数では出来ないがマクロならできるといわれたので こちらで質問させていただきます。 http://jisaku.155cm.com/src/1372009707_a0aef64ecf2c955c737a6a49fb4b2807bd7dc150.jpg のように、1日24時間を40分割した表があります。 この表を基準にして、L列~P列にあるような表示をエクセル上で表したいと考えています。 写真では、実際の時間が0:16分なら後20分後に2班になるのでこのような表示になります。 実際の時間が10:30分なら18分後に1班になるのでこのような表示になります。 実際に変化するのは、分数と班数だけです。 クリックして更新しないと変化しないというのはダメで、自動で刻々と変化していければと思ってます。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- hallo-2007
- ベストアンサー率41% (888/2115)
>あと何分で何班になりますというのが知りたいのですが 空いているセルに =36-MOD(B1*60*24,36) では? あとは。ご希望の表示に合わせて組み合わせます。
- tsubuyuki
- ベストアンサー率45% (699/1545)
Sub sample() Range("A1:A2").Font.Size = 72 Columns("A").ColumnWidth = 226 Do Range("A1") = "現在時刻 " & StrConv(Format(Now(), "h時mm分ss秒"), vbWide) & " です。" Range("A2") = "あと " & StrConv(Format(Application.Ceiling(Now(), 0.025) - Now(), "mm分ss秒"), vbWide) & _ " で " & StrConv(Application.Ceiling(Now(), 0.025) / 0.025 Mod 2 + 1, vbWide) & "班 作業開始です。" Loop End Sub #1さんと違って、かなり意地の悪いコードです。 マクロの使い方や解説を入れるつもりはありません。 試す・使うは自己責任でお願いします。
- hallo-2007
- ベストアンサー率41% (888/2115)
>自動で刻々と変化していければと思ってます。 この部分にVBAに力を必要となりますね。 一例ですが 標準モジュールに Sub Sample() Dim myTime As Date myTime = Now() + TimeValue("00:00:01") Range("B1").Value = Now() Application.OnTime myTime, "Sample" End Sub 上記を張り付けて、一度、実行してみてください。 毎秒単位で、B1セルに時刻が刻々と変わっていくはずです。 せっかくの表がありますが、36分単位で切り替わるのであれば 別セル(C1セルにでも)に =IF(MOD(B1*60*24,36*2)<36,"一班","二班") と入れておけば、36分単位で、」一班と二班が交互に変わるはずです。
補足
こんにちは~。レスありがとうございます。 時計の方は動くのですが、今何時で何班かが知りたい訳ではなく。 あと何分で何班になりますというのが知りたいのですが難しいのでしょうか?