|
このSubプロシージャは、伝票番号をKeyとして呼び出すと
引数numに該当データのレコード番号
引数frに該当データの先頭の行番号
引数mcに該当データの明細件数
が帰ってきます、この時numが-1なら探索失敗でKeyがみつからなかたという事に成ります
通常レコード番号は0以上の整数なので、-1が帰ってくれば異常と解る様にして有ると思います
このSubプロシージャは親のコードから呼び出しますので、予備だした後
先ず先に、numをチェックして値が-1なら、レコード番号が無い時の処理をし
そうで無い場合、レコード番号が在る処理を行います
>'「TB_受注」シートから「伝票番号」を検索
>' 引数key :伝票番号
>' 引数num :該当データのレコード番号、見つからなかった場合は-1
>' 引数fr :該当データの先頭の行番号
>' 引数mc :該当データの明細件数
>'
>Sub FindJchNum(key As String, num As Long, fr As Long, mc As Long)
>
> Dim tbSRange As Range '検索範囲のセル
> Dim tbFRange As Range '見つかったセル
>
> '検索範囲のセル(表の1列目)を変数に代入する
> Set tbSRange = Worksheets("TB_受注").Range>("A4").CurrentRegion.Columns(1)
>
> '伝票番号を先頭から検索する
> Set tbFRange = tbSRange.Find(What:=key, _
> LookIn:=xlFormulas, Lookat:=xlWhole, SearchDirection:=xlNext)
>
> '戻り値を代入する
> If tbFRange Is Nothing Then
> '見つからなかった場合、引数numは-1
> num = -1
> Else
> '見つかった場合、引数numはレコード番号
> num = tbFRange.Offset(0, 6).Value
>
> '引数frに戻り値となる該当セルの先頭の行番号を代入する
> fr = tbFRange.Row
>
> '引数mcに戻り値となる該当セルの明細件数を代入する
> mc = tbFRange.Offset(0, 7).Value
> End If
>
> 'オブジェクト変数を解放する
> Set tbSRange = Nothing
> Set tbFRange = Nothing
>
>End Sub
|
|