Excel VBA質問箱 IV

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

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


17797 / 76738 ←次へ | 前へ→

【64389】引数num :該当データのレコード番号、見つからなかった場合は-1
質問  初心者です  - 10/2/1(月) 17:39 -

引用なし
パスワード
   エクセルで納品書を作成する本を見て、納品書を作成している、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
0 hits

【64389】引数num :該当データのレコード番号、見つからなかった場合は-1 初心者です 10/2/1(月) 17:39 質問
【64390】Re:引数num :該当データのレコード番号、... Hirofumi 10/2/1(月) 18:39 発言
【64398】Re:引数num :該当データのレコード番号、... 初心者です 10/2/2(火) 15:56 お礼

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