Page 853 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼エラー処理の方法 maeda 03/3/7(金) 22:18 ┗Re:エラー処理の方法 りん 03/3/7(金) 22:55 ┗Re:エラー処理の方法 maeda 03/3/8(土) 9:27 ┗Re:エラー処理の方法 りん 03/3/8(土) 12:06 ┗Re:エラー処理の方法 maeda 03/3/8(土) 13:03 ─────────────────────────────────────── ■題名 : エラー処理の方法 ■名前 : maeda <fwhn0621@mb.infoweb.ne.jp> ■日付 : 03/3/7(金) 22:18 -------------------------------------------------------------------------
次のような方法でユーザフォーム上のテキストに入力した郵便番号で 住所の検索を行いますが、該当する住所がない場合は、エラーで処理がストップします。 エラートラップの方法を教えて下さい。 Private Sub CommandButton4_Click() If Left(郵便番号, 2) = "88" Then '住所1 住所1 = WorksheetFunction.VLookup(郵便番号, Worksheets("miyazaki").Range("B2:D852"), 3, False) ElseIf Left(郵便番号, 2) = "89" Then 住所1 = WorksheetFunction.VLookup(郵便番号, Worksheets("kagosima").Range("B2:D1429"), 3, False) Else 住所1 = WorksheetFunction.VLookup(郵便番号, Worksheets("kumamoto").Range("B2:D1917"), 3, False) End If End Sub |
maeda さん、こんばんわ。 >次のような方法でユーザフォーム上のテキストに入力した郵便番号で >住所の検索を行いますが、該当する住所がない場合は、エラーで処理がストップします。 >エラートラップの方法を教えて下さい。 エラーを出さない一例です。 Private Sub CommandButton4_Click() Dim r1 As Range, r2 As Range ActiveCell.Activate '念のため Select Case Left(郵便番号, 2) Case "88" Set r1 = Worksheets("miyazaki").Range("B2:B852") '88エリアは宮崎 Case "89" Set r1 = Worksheets("kagosima").Range("B2:B1429") '89エリアは鹿児島 Case Else Set r1 = Worksheets("kumamoto").Range("B2:B1917") 'それ以外は熊本 End Select '住所1 'B列が郵便番号 Set r2 = r1.Find(郵便番号) If r2 Is Nothing Then MsgBox "ありません", vbCritical, 郵便番号 Else 住所1 = r2.Offset(0, 2).Value MsgBox 住所1, vbInformation, 郵便番号 End If Set r1 = Nothing: Set r2 = Nothing End Sub VLookUpワークシート関数ではなくてRangeのFindメソッドを使いました。 |
▼りん さん: > Set r2 = r1.Find(郵便番号) > If r2 Is Nothing Then > MsgBox "ありません", vbCritical, 郵便番号 > Else > 住所1 = r2.Offset(0, 2).Value > MsgBox 住所1, vbInformation, 郵便番号 > End If > Set r1 = Nothing: Set r2 = Nothing >End Sub ありがとうございます。 検索する住所がD列に入ってますので 『offset(0,2)』でいいんですよね。 テキストボックスに表示させる場合は MsgBox でなく、テキストボックスの『住所1』でいいでしょうか。 |
maeda さん、こんにちわ。 >検索する住所がD列に入ってますので 『offset(0,2)』でいいんですよね。 そうです。Bから2つ右でDです。 >テキストボックスに表示させる場合は MsgBox でなく、テキストボックスの『住所1』でいいでしょうか。 住所1はテキストボックスだったのですね。 分岐の部分は >> If r2 Is Nothing Then 住所1.Text = "" >> Else 住所1.Text = r2.Offset(0, 2).Value >> End If こんな感じです。 |
▼りん さん: ありがとうございます。 充分に満足できるものが出来ました、またよろしくお願いいたします。 |