• 締切済み

VBAでB列に並んでいる値を別シートにある同じ値が

VBAでB列に並んでいる値を別シートにある同じ値がある場合に処理を開始するというマクロを作成したいのです。 VBAは5年前にサンプルを改変して構築していた程度で 久々にVBAを開きました。 コード等載せることが出来れば良いのですが 現場の関係で載せられずすいません。 よろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

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)
回答No.2

例えば >B列に並んでいる値を が、シート1のB1:B10000に >別シートにある同じ値 が、シート2のB1:B10000に おかれている と、します =IF(SUMPRODUCT((シート1!B1:B10000=TRANSPOSE(シート2!B1:B10000))+0>0,ユーザー関数(),) と、し ユーザー関数を 入り口と、して VBA処理に、移行させては 如何ですか? 尚、凝れば どの値が、合致したか の、一覧形成を してから 其れを ユーザー関数に、引き渡す事も 可能です

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

とあるシートのB列に値があるとしましょう。 上から順に値を取得し、その値が別シート(どこの列かは知らないですが)に 存在したとします。 それで『何をされたいの?』でしょうか? ただ単に『値の有無の判定』をすれば宜しいのでしょうか? ⇒探す列等はわからないですが。

関連するQ&A

  • VBA2010,B3の値が変わったら、A3に

    VBA2010で,B列の値が変わったら、A列の同じ行に前日の日付を入力するには、マクロコードをどのように書けばよいですか?B列データ入力範囲はB3~B65536 尚、B3~B65536にはVLOOKUPで、他のブックから値を参照しています。 最後にA列の同じ日付セルを結合し、I列、P列、W列の同じ行に結合したセルをペーストたいのです。 宜しくお願い致します。

  • VBAの計算式で値を検出し別シートに貼り付ける

    例でA.xls sheet1に添付のデータがありB.xls sheet1のB列に検索値がありC列に記載のとおりの計算式が入力されています。関数入力はC2セルにの計算式を入力しそれを元にオートフィルでC3以降入力しているが膨大な計算式になりExcelを開いたりするのに処理に時間がかかりすぎる為セルに計算式をいれるのではなくVBAで計算式を入力しオートフィルみたいに連続した計算の値のみを入力したいのですがコードが解る方宜しくお願いします。

  • VBAで同じブック内の別シートの列を結合する方法

    同じブック内のsheet1(列A)とsheet2(列B)を結合して、 新しいsheet3に出力したいと思っています。 VBAで作成する場合どのようにすればよいのでしょうか? 宜しくお願いします。 sheet1 列A sheet2 列B ↓ sheet3 列A 列B こんな感じなのですが。

  • エクセルVBAでsheet1!B2:B10までの値をsheet2!B2

    エクセルVBAでsheet1!B2:B10までの値をsheet2!B2:K2にコピーする方法を教えて下さい。

  • EXCEL VBA シート内の特定のセルに値が入…

    EXCEL VBA シート内の特定のセルに値が入力された際に処理を実行するプログラム EXCELシート内の特定のセルに値が入力された際に処理を実行するプログラムをEXCEL VBAで作成したいと考えています。 EXCELに計測データを取込み、このデータが設定値以外の場合のみ、トリガーを出す様なイメージで使いたいと思います。 どの様に考えれば良いでしょうか?サンプル等ありましたら紹介ください。 上記質問の”トリガー”について補足します。 あるセルに値が入力されたら、マクロを実行するという風にしたいという意味です。 単純にマクロ実行を手動で行うのでは無く、ある値が判定値以外の場合に他アプリケーションを操作したいという意味です。。

  • とあるシートのB列の値かつC列の値と、とあるフォル

    とあるシートのB列の値かつC列の値と、とあるフォルダ内にあるファイルの名称が部分一致したときに、そのファイルを移動先のフォルダへと移動させるVBAを教えていただけないでしょうか? 現在、とあるシートのB列の値と、とあるフォルダ内にあるファイルの名称が部分一致した際に、そのファイルを移動先のフォルダへと移動させるVBAは作成することができました(以下参照) しかし、二つの条件(B列の値かつC列の値(AND?))が部分一致したときのやり方が分からなく困っております、VBA初心者のためどうか教えていただけないでしょうか? Sub 分別() '移動元のフォルダの設定 Const xFrm As String = "C:\before\"'移動先のフォルダの設定 Const xTo As String = "C:\after\"'アクティブになっているシートのB列の値とC:\before内のファイルの名称が部分一致した時、そのファイルをC:\afterへと移動する Dim i As Long, xFile As String With ActiveSheet For i = 3 To .Cells(Rows.Count, 1).End(xlUp).Row With .Cells(i, 2) xFile = Dir(xFrm &"*"&.Value &"*") Do While xFile <>""Name xFrm &xFile As xTo &xFile xFile = Dir() Loop End With Next i End With End Sub

  • VBAと照合について

    VBAと照合について 下記のような3枚のシート(上からシート1,2,3)をエクセル2007で作成しています。 シート1とシート2は全く同じ内容であるべきものです。 しかし、出所が違うため、両者のシートを照合して もし合っていれば、シート1を印刷したいのです。 なお、ここではあえて、1月4日分の売り上げは、わざと違う値を入力しています。 シート3にマクロのボタンを作成し、VBAで二枚のシートを照合し、メッセージボックスで 合っていれば印刷OK,違っていれば印刷中止にしたいのです。 IF関数までは理解でき、シート3のB2からE4までは=IF(sheet1!B2=sheet2!B2,"","×") 等で処理していて、違っているセルに条件付き書式で×を表示するようにしています。 ただ、関数ではなく、照合から印刷までをマクロで自動処理したいので、VBAコードが知りたいです。 よろしくお願いします。

  • VBAで別シートの必要データの値をコピーし貼付け

    sheet2の項目よりsheet1の必要項目の値のみを貼り付けたいのですがsheet1のC列5行文字入力があり次の行以降にsheet2のセルB2以降の範囲のsheet1の2行目必要項目に対しての入力値の値のみを入力したいのですがsheet2入力値は何百項目あります。 どなたかVBAコードが解る方よろしくお願いします。

  • 「=Sheet1!B2」の「2」列目という値を..

    「=Sheet1!B2」の「2」列目という値を、「セルから取得した値」に変更できますか? 具体的な状況としては 列ごとに情報が入ったシートがあり、 必要な列のデータを特定の印刷様式(別シート)に参照表示させて印刷したいため、 印刷したい列番号をどこかのセルに入力して指定したい (とある印刷様式に直接入力して管理していましたが  入力漏れがあったり、シートが膨大な量になったため情報を1シートにまとめ、  印刷時に、必要な列のデータを参照させたいのです) どうか宜しくお願い致します。

  • 別シートから値のある行を検索し、別シートに転記

    シート1とシート2があり、 シート1のA7がシート2のB列にあり、シート1のB20がシート2のその行のD列の値と同じ場合、シート2該当行のF列の値をシート1のL20に書き込むのですが、どのようにマクロを記述すればいいでしょうか 例えば、 シート1のA7に「A社」、B20に「商品A」があり、 シート2のB10に「A社」が、D10に「商品A」がある場合、F10の値をシート1のL20に返す方法です。 シート2のB列には「B社」や「C社」もあるため、B列の中からシート1のA7と合致する行を検索することになります。

専門家に質問してみよう