セルが結合しているかどうかは、
MerageArea で取得できるのは、結合範囲のRangeオブジェクトです。
その中で、
先頭セルは、Cells(i, j).MergeArea.Cells(1)
終端セルは、Cells(i, j).MergeArea.Cells(Cells(i, j).MergeArea.Cells.Count)
で取得できます。
その辺りを使えば 良いでしょう。
If Cells(i, j).MergeCells Then
With Cells(i, j).MergeArea
If .Cells(1).Address = Cells(i, j).Address Then
If Cells(1).Value <> "" Then
wst1.Cells(k, 1) = DateSerial(y, m, Day(Cells(i, 1).Value))
wst1.Cells(k, 2) = Switch( .Cells(1).Column = 3, #8:30:00 AM#, _
.Cells(1).Column = 4, #1:00:00 PM#, _
.Cells(1).Column = 5, #5:30:00 PM#)
wst1.Cells(k, 3) = Switch( .Cells(.Cells.Count).Column = 3, #12:00:00 PM#, _
.Cells(.Cells.Count).Column = 4, #5:00:00 PM#, _
.Cells(.Cells.Count).Column = 5, #9:30:00 PM#)
k=k+1
: