Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3632 / 13646 ツリー ←次へ | 前へ→

【61033】タイムスケジュールでセルの色を塗る たかし 09/4/4(土) 23:44 質問[未読]
【61046】Re:タイムスケジュールでセルの色を塗る street 09/4/5(日) 18:38 発言[未読]
【61047】Re:タイムスケジュールでセルの色を塗る たかし 09/4/5(日) 20:16 回答[未読]
【61050】Re:タイムスケジュールでセルの色を塗る street 09/4/6(月) 9:23 回答[未読]
【61059】Re:タイムスケジュールでセルの色を塗る たかし 09/4/6(月) 21:29 お礼[未読]

【61033】タイムスケジュールでセルの色を塗る
質問  たかし  - 09/4/4(土) 23:44 -

引用なし
パスワード
   はじめまして、タイムスケジュールを作成しております。

A    B    C     D    E-
項目NO 開始時刻 終了時刻 作業内容 タイムライン

開始時刻と終了時刻を読み取り、タイムライン枠を自動で作成

コマンドボタンを押すことで入力された開始時刻 終了時刻を読み取り
タイムライン下のセルの色を塗りつぶす。

あるサイトの参考記述を試しましたが、タイムラインが0:00-作成されて、
セルをクリックしアクティブな状態でないと実効できません。
よろしくお願いします。

-------------------------------------------------------------------

Private Sub CommandButton1_Click()

Dim Target As Range

Set Target = Selection

If Target.Row > 5 Then '3行目以降を対象とする

End If

Dim 開始列 As Integer, 終了列 As Integer


'複数セル変更時は終了します
'If Target.Count > 2 Then Exit Sub
'C列以外は終了します
If (Target.Column) <> 3 Or (IsEmpty(Target.Value)) Then Exit Sub

Range(Cells(Target.Row, 5), Cells(Target.Row, 75)).Interior.ColorIndex = xlNone


On Error GoTo ErrorHandler
開始列 = Application.Floor(DateDiff("n", "00:00:00", Cells(Target.Row, 2).Value), 15) / 15
終了列 = Application.Ceiling(DateDiff("n", "00:00:00", Cells(Target.Row, 3).Value), 15) / 15
Range(Cells(Target.Row, 開始列 + 5), Cells(Target.Row, 終了列 + 4)).Interior.ColorIndex = 15
Exit Sub

ErrorHandler:
MsgBox "Error Number = " & Err.Number & Chr(13) & _
"Error Message = " & Err.Description, , "Debug"

End Sub
 

【61046】Re:タイムスケジュールでセルの色を塗る
発言  street  - 09/4/5(日) 18:38 -

引用なし
パスワード
   時間分のセルを塗りつぶすだけなら
条件付き書式で簡単にできますが
マクロのほうが都合いいのでしょうか?

【61047】Re:タイムスケジュールでセルの色を塗る
回答  たかし  - 09/4/5(日) 20:16 -

引用なし
パスワード
   ▼street さん:
>時間分のセルを塗りつぶすだけなら
>条件付き書式で簡単にできますが
>マクロのほうが都合いいのでしょうか?


お世話になります。

拡張させるみたいで、マクロ指定されてしまいました。

その方は出入りの集計表をマクロで作成するようです。

【61050】Re:タイムスケジュールでセルの色を塗る
回答  street  - 09/4/6(月) 9:23 -

引用なし
パスワード
   タイムラインが1時間ごとに1セルとしてセレクトした
セルの開始から終了までの時間をを塗りつぶすマクロです。
Dim dt1 As Long, dt2 As Long, ct As Long
  If Selection.Rows.Count > 1 Then
    MsgBox "複数行は選択不可"
  Else
    ct = Selection.Row()
    dt1 = Cells(ct, 2) * 24
    dt2 = Cells(ct, 3) * 24
    Range(Cells(ct, 5).Offset(, dt1), _
    Cells(ct, 5).Offset(, dt2)).Interior.ColorIndex = 3
  End If

【61059】Re:タイムスケジュールでセルの色を塗る
お礼  たかし  - 09/4/6(月) 21:29 -

引用なし
パスワード
   ありがとうございます。

参考にしてみます。

3632 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free