• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2つのブックで、1レコードの3列の値が同じ行のセル選択するには?)

2つのブックで、1レコードの3列の値が同じ行のセル選択する方法

このQ&Aのポイント
  • 質問者は、2つのブックで1つのレコードの3つの列の値が同じ行のセルを選択したいと考えています。質問者は、左.xlsのB5(赤色セル)を選択すると、右.xlsのB10(B9ではない)を選択したいと思っています。また、左.xlsのB6(青色セル)を選択した場合は、右.xlsのB12(B11ではない)を選択したいと述べています。質問者は、コードを提供しており、B列のみ参照できることに悩んでいます。最終的には、2つのブックを並べて、同じ行のデータを閲覧したいとのことです。
  • 質問者は、Windows XP Home Edition、Office XP Personal 2002、Excel 2002を使用しています。質問者は、左.xlsのB5(赤色セル)を選択すると、右.xlsのB10(B9ではない)を選択したいと考えています。また、左.xlsのB6(青色セル)を選択した場合は、右.xlsのB12(B11ではない)を選択したいと思っています。
  • 質問者は、1レコードの「B列とC列とD列」の「3列の値が同じ行のセル」を選択したいと考えています。この行は常に1つしかなく、必ずしもB列とC列やB列とD列に対応する「2列の値が同じ行のセル」が複数存在するわけではないと述べています。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

では,あまりひねらずシンプルに。 準備追加: TargetVa = ActiveWindow.ActiveCell.Value TargetC = ActiveWindow.ActiveCell.offset(0, 1).Value TargetD = ActiveWindow.ActiveCell.offset(0, 2).Value 変更前: If Target.Value = TargetVa Then 変更後: If target = targetva and target.offset(0, 1) = targetC and target.offset(0, 2) = targetD then などのように。

oshietecho-dai
質問者

お礼

早速のご回答、誠に有難うございました。 質問コードが使えるんですね。 使えないと思っておりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

#2です .Offset(1, 0).Offset(2, 0)じゃなくて.Offset(0, 1),.Offset(0, 2) でした

全文を見る
すると、全ての回答が全文表示されます。
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

If Target.Value = TargetVa Then のところを If ActiveWindow.ActiveCell.Value & ActiveWindow.ActiveCell.Offset(1, 0).Value & ActiveWindow.ActiveCell.Offset(2, 0).Value _ = Target.Value & Target.Offset(1, 0).Value & Target.Offset(2, 0).Value Then とかどうですか。

oshietecho-dai
質問者

お礼

早速のご回答、誠に有難うございました。 このような、記述方法もあるのですね、 大変参考になりました。 gooの画面が変わったようで、次点がつけられなくて、申し訳ありません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 2つのブックで、1レコードの2列の値が同じ行のセル選択するには?

    2つのブックで、1レコードの2列の値が同じ行のセル選択するには? Windows XP Home Edition Office XP Personal 2002 Excel 2002 画像のように、左.xls 右.xls 共に、 1レコードの 「 B列 と C列 」 の値が同じ行のセルを選択したいのですが、 うまく行きません。 画像の例では赤色セルの部分です。 左右のブックの赤色セルの各行番号は同じではありません。 B列(日付、実際には西暦です)だけは、全く同じデータとなっております。 ●2つのブックを左右に並べて、  同じ行データを閲覧したいわけでございます。 何卒、ご教示のほどをお願い致します。 Sub TEST() Const wBook = "右.xls" '表示させたいBook名 Const wSht = "Sheet1" '表示させたいSheet名 Dim Target As Range Dim TargetVa As Integer TargetVa = ActiveWindow.ActiveCell.Value With Workbooks(wBook).Sheets(wSht)   For Each Target In .Range("B1", .Range("B65536").End(xlUp))    If Target.Value = TargetVa Then     Workbooks(wBook).Activate     Sheets(wSht).Activate     Target.Cells.Select    End If   Next Target  End With End Sub

  • 他ブックのセルの値をリンクさせたい

    Excel2007でマクロ作成中の初心者です。 常に同一フォルダの中のブックA(マクロ記入用)とブックB(データ計算用)を開いて、作業しています。 ちなみにこのフォルダはデスクトップ上にあります。 まず、ブックAを開き、出てきたフォームの中のコマンドボタンを押して、 ブックBを開き、セル("D2")に、ブックAのセル("A1")の値がリンクされているようにしたいです。 どのようにしたらリンクできるでしょうか。 Private Sub CommandButton89_Click() ブックBを開く Sheets("管理").Select  Range("D2").select End Sub ------------------------------------- Sub ブックBを開く() ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path On Error GoTo err: Workbooks("25年計算.xlsm").Activate Exit Sub err: Workbooks.Open Filename:=ThisWorkbook.Path & "\25年\25年計算.xlsm" End Sub

  • <新規Bookに アクティブセル領域を 値で貼り付けるマクロ>

    <新規Bookに アクティブセル領域を 値で貼り付けるマクロ> 沢山の様々なデータが入力されている、巨大なExcelファイル(仮に「管理表.xls」)があるのですが ボタンを押すと、アクティブなセル領域(ドラッグで選んだセル領域)を 新規Bookに値で貼り付ける マクロを作成したいのにうまく動きません 下記コードだと、新規Book作成までは出来るのですが、 ペーストがされません。クリップボードにはデータが入るのですが 「管理表.xls」を全て選択された情報が入ってしまっています。 (ペーストすると 全データがペーストされる) マクロは始めたばっかりで ものすごく初心者なので恐縮なのですが ご教授ください。よろしくお願いします。 --------------------------------------- Private Sub CommandButton2_Click() Selection.CurrentRegion.Copy 'アクティブセル領域をコピー Workbooks.Add.Activate 'ブックを新規作成してアクティブに Range("A1").PasteSpecial Paste:=xlPasteValues End Sub ---------------------------------------

  • 2つのブックの列と列を比較し、一致すれば、片方のブックのA列にある番号を転記したい

    いつもお世話になっております。 また、Excelで悩んでしまいまして(>_<) 今、『観光地.xls』というブックのA列には、以下のようなデータが記載されています。 夏井川渓谷 オルチャ渓谷 御岳渓谷 ハラワ渓谷 福知渓谷 イアオ渓谷 チャリン渓谷 ワイメア渓谷 羽山渓谷 ヴァッハウ渓谷 そしてもう一つの、『日本の渓谷.xls』というブックのB列には、 夏井川渓谷 ウェルサンピア京都 御岳渓谷 昭和記念公園レインボープール 福知渓谷 大磯ロングビーチ 羽山渓谷 と、日本の渓谷のデータと日本のプールのデータが混ざって並んでおりまして、隣のA列には、渓谷のデータにのみ、k1,k2・・・と、番号を振っております。プールのデータの隣は、空白になっています。 この状態から、『観光地.xls』のA列と、『日本の渓谷.xls』のB列を比較し、データが一致すれば、『日本の渓谷.xls』の渓谷データのすぐ隣、A列に記載してある番号を、『観光地.xls』のL列に、転記したいのです。 『観光地.xls』のB~K列には、他の観光地のデータがずらりと記載されているので、空白のL列に、『観光地.xls』のA列の日本の渓谷データ(=『日本の渓谷.xls』のB列の渓谷データ)に、対応する番号を付したいのです。 データが膨大ですので、マクロを使うのが最も合理的だと思うのですが、以前、似たような質問↓ http://okwave.jp/qa5015030.html を解決してくださいまして、この時の応用で何とかなる、「一致したら斜線を引くのではなく、同シートのL列に、『日本の渓谷.xls』のA列のデータを転記するよう、指示すればいいのかな」と思い、マクロを書いてみました。 Sub keikoku() ◆変数名の入力ミスによる動作の不具合を防ぐために変数名を宣言。 Dim KeikokuSearch1 As Range, KeikokuSearch2 As Range, k As Range, kk As Range ◆Activateメソッドを実行。 With Workbooks("観光地.xls") .Activate .Sheets("Sheet1").Activate End With ◆Rangeオブジェクトで範囲を選択 With Workbooks("観光地.xls").Sheets("Sheet1") Set KeikokuSearch1 = .Range(.Range("A1"), .Range("A1").End(xlDown)) End With With Workbooks("日本の渓谷.xls").Sheets("Sheet1") Set KeikokuSearch2 = .Range(.Range("B1"), .Range("B1").End(xlDown)) End With ◆For Each...In...Nextステートメントで、データの一致を調べる。 For Each k In KeikokuSearch1 For Each kk In KeikokuSearch2 If k.Value = kk.Value Then ・・・ と、この辺りで立ち往生してしまいました(;_;) If Then~Else~End Ifステートメントで、KeikokuSearch1とKeikokuSearch2のデータが一致すれば、条件を満たす場合の処理として、KeikokuSearch2(『日本の渓谷.xls』のB列)の隣にあるA列のデータを、KeikokuSearch1(『観光地.xls』のA列)から11マス隣のL列にコピーする、という風に指示したいのですが・・・ココから先のコードが、おぼつかない状況です(>_<) やはりマクロは難しいです。皆様のお力をお借りいただければ幸いです。 よろしくお願いします<m(__)m>

  • マクロ:別ブックのデータの値を転記

    ExcelでVlook関数を使ってデータを検索していたのですが、マスタの件数(15,000件)と数式が多くなってしまいブックの容量が大きくなってしまって動きづらくなってしまったので、マスタと検索のブックに分け、マクロを使おうと思ってます。 簡単にいうと、 【マスタブック】   A列  B列 1  1   あ 2  2   い 【検索ブック】   A列  B列 1  2   い 2 検索ブックA列1行目に、「2」を入力してマクロを実行すると「い」が表示されるようにしたいのです。   開いておくのは検索ブックはのみです。 Sub 転記() Dim マスタ As Workbook Dim 検索 As Workbook Dim 行, 数字 As Long Dim Bname As String Bname = ActiveWorkbook.Name Workbooks.Open Filename:="C:\Documents and Settings\mi200274\デスクトップ\\マスタ.xls" Workbooks("マスタ.xls").Activate Set マスタ = Workbooks("マスタxls") Set 検索 = ThisWorkbook Set ws1 = マスタ.Worksheets("Sheet1") Set ws2 = 検索.Worksheets("Sheet1") On Error Resume Next 行 = 1 Do Until ws2.Range("A" & 行).Value = "" 数字 = ws2.Range("A" & 行).Value 対象 = ws1.Range("A:A").Find(数字, lookat:=xlWhole).Row ws2.Range("B" & 行).Value = ws1.Range("B" & 対象).Value 行 = 行 + 1 Loop ActiveWorkbook.Close Workbooks(Bname).Activate End Sub 以上のマクロを知人に教わりながら作ってみたのですが、マスタを一度開かないと検索はできないのでしょうか? 重たいデータなのでできれば開かずに検索して値を転記したいので、そのようなコマンド等ご存知の方教えてください。 ちなみにマクロは「新しいマクロの記録」から作る程度の初心者です。よろしくお願いします。

  • 他ブックのセル参照するのに名前をセルで指定して参照させたい。

    他ブックのセル参照するのに名前をセルで指定して参照させたい。 題名が適当でないかもしれませんが、よろしくお願いします。 オフィス2000もしくは2002です。 200604.xls、200605.xlsという日付を基にした名称の規則的なブックがあります。 ファイル自体はネットワークの共通ドライブにあります。 それぞれsheet1に同様の形式で値のデータ(文字)が入っています。 その中のA1、B1、C1~・・・の値を 別ブック(仮にtest.xls)のA1に2006、A2に5と入力させることによって test.xlsの3行目に200605.xlsのA1、B1、C1~・・・の値を表示させたいです。 ブック名 test.xls    A列  B列  C列 ・・・・・・ 1行 2006 2行  5 3行 200605.xlsのA1、B1、C1~の値を表示させたいです。 4行 フォルダー名\[200605.xls]sheet1'!A1、次B1、次C1、と都度埋め込んでいけば値自体は出るのですが、 ブック名が手軽に変えられなくて困っています。 test.xlsのセルに埋め込んだ ='フォルダー名\[200605.xls]sheet1'!A1の [カッコ内]の文字をA1,A2セルに入れた値で参照させたいのですが、、、。 (A2は5ですが、参照したいのは2006の05というのも少々ミソです) 結果が同じなら手段はそんなには問いません。 よろしくお願いします。

  • 2つのブックを左右平行に並べて、同じ行番号の位置を表示させるには?

    Windows XP Home Edition Office XP Personal 2002 Excel 2002 画像のように、左.xls 右.xls 共に、 赤色セル「"A5"」が、画面左上にきっちりなるようにさせる マクロ、機能なんてございましたか? ●2つのブックを左右平行に並べて、  同じ行番号の行データを閲覧したいわけでございます。 赤色セルは「"A15"」「"A1299"」となったり、上下いろいろとスクロールします。 列を非表示にすれば、「"D15"」「"D1299"」と、なったりもします。 画像のように、B列(日付)だけは、全く同じデータとなっております。 何卒、ご教示のほどをお願い致します。

  • 複数選択したセルを含む行をまとめてコピー

    VBA初心者です。EXCEL2003を使用しています。 ◆やりたい事  ユーザーにセルを指定させ、そのセルを含む行をまとめてコピーして新規のブックに貼り付けたい。 ◆条件  ・ユーザーが指定できるセルはB列だけにしたい。   (B列以外を選択したらメッセージを表示して再選択させる)  ・ユーザーが指定できるセルは(連続・不連続問わず)最大8個までにしたい。   (未選択 or 8個以上ならメッセージを表示して再選択させる)   ◆完成イメージ  ・ユーザーがセル(ex.B4,B6:B8,B20(=計5行))を選択  ・マクロ実行(コマンドボタンを押す)  ・新規ブックのsheet1.range("A1")に貼り付け(=A1:A5に 貼り付く) こんな感じなんですが、なにとぞ御教授願います。

  • 選択セルに計算結果を表示

    エクセルVBAで選択セルに計算結果を表示したいのですが、教えてください。 A列には、ID B・C列には値が入力されています。 下記の構文ですと、行のどこをダブルクリックしても、D列に合計が表示されます。 D列以降のどの行をダブルクリックしても、アクティブなセルに合計を表示したいです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cells(Target.Row, 4) = Cells(Target.Row, 2) + Cells(Target.Row, 3) End Sub

  • 選択セルの行全体の色付け

    仕事でエクセルを使う事が多く、特に列、行がたくさんある一覧を表を日常業務で使っています。そこで選択セルの行全体が色付けされるような仕組みを作りたく。(イメージ的には、今触っているセルがどの行なのか目で追い易くする感じです)このようなマクロを作りました。ただ、これでは元々色が付いているセルの色が、色無しに変化してしまう為、使えません。使っている表の元々の色を変化させずに、色で簡単に行全体を目で追えるようにするにはどうしたら良いでしょうか?本当に申し訳ないですが、わかる方いらっしゃいましたら、ご教授お願い致します。 Public m Private Sub Worksheet_SelectionChange(ByVal Target As Range)  If m <> 0 Then   Range(Cells(m, 1), Cells(m, 256)).Interior.ColorIndex = xlNone  End If  Range(Cells(Target.Row, 1), Cells(Target.Row, 256)).Interior.ColorIndex = 6  m = Target.Row End Sub

専門家に質問してみよう