|
エクセルで納品書を作成する本を見て、納品書を作成している、VBA初心者です。
いつもお世話になっております。
こちらのサイトのおかげで、分からないながらも着々と、納品書が出来上がりつつあります。
ありがとうございます。
今回、Howto本を読んでも理解できない箇所がありまして、質問させて頂きます。
既存の入力済み伝票の中から、希望の伝票番号を探し出し、その伝票番号のレコード番号(その伝票が全体で何件目か)、行番号、明細件数などを代入するコードだと思いますが、途中に、
' 引数num :該当データのレコード番号、見つからなかった場合は-1
If tbFRange Is Nothing Then
'見つからなかった場合、引数numは-1
num = -1
とあります。
探したい伝票番号が無かった場合に、-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
|
|