- 締切済み
VBAでB列に並んでいる値を別シートにある同じ値が
VBAでB列に並んでいる値を別シートにある同じ値がある場合に処理を開始するというマクロを作成したいのです。 VBAは5年前にサンプルを改変して構築していた程度で 久々にVBAを開きました。 コード等載せることが出来れば良いのですが 現場の関係で載せられずすいません。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
Sheet1のA列のセルに値を入れるとする。 Sheet2のA列に 神奈川 静岡 愛知 三重 奈良 と入れておく。 SheetIのシートモジュールのChangeイベントに Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 1 Then Exit Sub Set x = Worksheets("Sheet2").Range("a1:A100").Find(Target) If x Is Nothing Then Exit Sub '--実際は下記行以下に見つかった場合の処理のコードを書く MsgBox "見つかりました" End Sub Sheet1のA列で上記Sheet2の府県名の文字列をSheet1のA列に入力すると 書いたコードの処理が行われる。 ーー しかしVBAをちょっとやった、といっても、イベント関係は、勉強して慣れないと、行き詰まってむつかしいと思う。 イベントは素人が、まず思いつく発想に素直に従う「仕組み」ですが、プログラムの仕組みとしては、Win95以後のOfficeなどになって初めて初心者にも使えるようになったもので仕組みとしてはすごいものだと思うが、それだけに難しい 点もあるように思う。出来ればバッチ処理的な、好きな時に、条件に合うもの(行データ?)に対し、一斉に処理するやり方が安全。
- Nouble
- ベストアンサー率18% (330/1783)
例えば >B列に並んでいる値を が、シート1のB1:B10000に >別シートにある同じ値 が、シート2のB1:B10000に おかれている と、します =IF(SUMPRODUCT((シート1!B1:B10000=TRANSPOSE(シート2!B1:B10000))+0>0,ユーザー関数(),) と、し ユーザー関数を 入り口と、して VBA処理に、移行させては 如何ですか? 尚、凝れば どの値が、合致したか の、一覧形成を してから 其れを ユーザー関数に、引き渡す事も 可能です
- n-jun
- ベストアンサー率33% (959/2873)
とあるシートのB列に値があるとしましょう。 上から順に値を取得し、その値が別シート(どこの列かは知らないですが)に 存在したとします。 それで『何をされたいの?』でしょうか? ただ単に『値の有無の判定』をすれば宜しいのでしょうか? ⇒探す列等はわからないですが。