|
補足というか参考情報です。
【日付】が【1〜31の整数】だとして、Findではない方法で場所を取得するサンプルです。
Sample2 は E列が1、F列が2、G列が3・・・となっていることが前提ですが。
Option Explicit
Sub Sample1()
Dim lngYLine As Long
Dim intXLine As Variant '見つからなかったときのエラー値を格納するためVariant
Dim day As Long 'A4に大きな値が入っている場合の障害を想定してLong
Dim okFlag As Boolean
With Worksheets("シフト")
day = Val(.Range("A4").Value)
lngYLine = 3
intXLine = Application.Match(day, .Range("E3:AI3"), 0)
If IsNumeric(intXLine) Then
intXLine = intXLine + .Columns("D:D").Column
If .Cells(lngYLine, intXLine).Value = day Then okFlag = True
End If
If Not okFlag Then
MsgBox "対象の日付が見つかりませんでした。"
Else
'後半のロジック
End If
End With
End Sub
Sub Sample2()
Dim lngYLine As Long
Dim intXLine As Integer
Dim day As Long 'A4に大きな値が入っている場合の障害を想定してLong
With Worksheets("シフト")
day = Val(.Range("A4").Value)
lngYLine = 3
intXLine = day + .Columns("D:D").Column
If .Cells(lngYLine, intXLine).Value <> day Then
MsgBox "対象の日付が見つかりませんでした。"
Else
'後半のロジック
End If
End With
End Sub
|
|