Excel VBA質問箱 IV

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

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


17796 / 76738 ←次へ | 前へ→

【64390】Re:引数num :該当データのレコード番号、見つからなかった場合は-1
発言  Hirofumi  - 10/2/1(月) 18:39 -

引用なし
パスワード
   この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

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 お礼

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