Excel VBA質問箱 IV

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

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


7423 / 13644 ツリー ←次へ | 前へ→

【39272】該当する数字以外は対象外の表示 Hiroko 06/6/20(火) 21:27 質問[未読]
【39273】Re:該当する数字以外は対象外の表示 ichinose 06/6/20(火) 22:22 発言[未読]
【39274】Re:該当する数字以外は対象外の表示 Hiroko 06/6/20(火) 22:58 お礼[未読]

【39272】該当する数字以外は対象外の表示
質問  Hiroko  - 06/6/20(火) 21:27 -

引用なし
パスワード
   該当するNo以外は
MsgBoxにて「そのNoの対象先はない」を表示させたいんですが・・・

現在はC5にNoをいれて
if Range("C5")<=110 Or _
  Range("C5")>=545 Then
MsgBox"『そのNoの対象先はありません』"
  Exit Sub
End if 
として、一番小さい数字と一番大きな数字で処理しているのですが・・・
実際のNoは111,130,134,138,511,534・・・544・・・352等全部で70ほどの
Noが入ります。
Arrayで出来ないか考えたのですが、上手く行きません。
どのような方法で対処すると良いのでしょうか。アドバイスお願い
します。
該当するNoがあれば、次にそのNoのアドレス(A列、X行)を選択するように
させたいのです。

【39273】Re:該当する数字以外は対象外の表示
発言  ichinose  - 06/6/20(火) 22:22 -

引用なし
パスワード
   ▼Hiroko さん:
こんばんは。


>>として、一番小さい数字と一番大きな数字で処理しているのですが・・・
>実際のNoは111,130,134,138,511,534・・・544・・・352等全部で70ほどの
>Noが入ります。
>Arrayで出来ないか考えたのですが、上手く行きません。

Match関数を使用してみて下さい。

適当なセル範囲にこの111、130、・・・というリストを作成しましょう。

仮に「Sheet1」と言うシート名のシートのセルA1から

    A
 1  111
 2  130
 3  134
 4  138
 5  511
 6  534
 7  544
 8  352

というように例では、上記8データがセルA1からA8に入力されているとします。

チェック対象セル「Sheet2」というシート名のシートのセルC5だとすると、

標準モジュールに

Sub test()
  Dim ans As Variant
  Dim rng As Range
  Set rng = Worksheets("sheet2").Range("c5")
  With Worksheets("sheet1")
    ans = Application.Match(rng, _
          .Range("a1", .Cells(.Rows.Count, "a").End(xlUp)), 0)
    If IsError(ans) Then
     MsgBox "No−Good"
    Else
     .Select
     .Range("a1", .Cells(.Rows.Count, "a").End(xlUp)).Cells(ans).Select
     End If
    End With
End Sub


Sheet2のセルC5に適当にデータを入力後に実行してみて下さい。

Sheet1のA列にないデータであればエラーメッセージが
表示されます。

該当するデータであれば、Sheet1のA列の該当セルを選択します。


よく使われる検索手法ですよ!!

試してみて下さい

【39274】Re:該当する数字以外は対象外の表示
お礼  Hiroko  - 06/6/20(火) 22:58 -

引用なし
パスワード
   ▼ichinose さん:

今晩は。
丁寧なご解答ありがとう御座いました。
理解できました。Match関数を使うのですね。
気持ちよく対処できました。
今までとは異なり、完全な動作をしてくれます。

本当にありがたく感謝しています。
これからもよろしくご指導ください。

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