• ベストアンサー

エクセル VBA 別エクセルファイルを参照

A1111 B1111 N1243 F2144 のように一定のデータを連続して入力された エクセルファイルと 別のエクセルファイルで一致するデータを探す マクロを作っています 別のエクセルファイルを参照するよい方法が 分かりません、どなたか教えてください。

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

  • ベストアンサー
  • e10go
  • ベストアンサー率38% (47/122)
回答No.1

こんばんわ。 照合したいデータがセルA2~A5にあり、別ファイル「test.xls」のシート「Sheet1」のセル「A2:A101」に照合されるデータがあるものとして、下にサンプルコードを載せました。 なお、このコードを実行する際、別ファイルのブックを開いておく必要があります。 Sub test()   Dim sf As String, ss As String, sr1 As String, s As String   Dim ra1 As Range, ra2 As Range, i As Integer, l As Long   sf = "test.xls" '別ファイル名   ss = "Sheet1" '別ファイルのシート名   sr1 = "A2:A101" '別ファイルのシートのデータがあるセル範囲   For i = 2 To 5     Set ra1 = Workbooks(sf).Worksheets(ss).Range(sr1)     Set ra2 = Range("A" & i) '照合データがあるセル     If Application.WorksheetFunction.CountIf(ra1, ra2) > 0 Then       l = Application.WorksheetFunction.Match(ra2, ra1, 0) + 1       s = "別ファイルの一致するデータのセル位置は「A" & l & "」です"     Else       s = "別ファイルに一致するデータはありません"     End If     MsgBox s   Next i End Sub

関連するQ&A

  • エクセルVBAで困ってます。

    私は今、エクセルVBAで困ってます。 内容はデータを入力したエクセルのシート上で、別のファイル(CSV形式)を開いてある特定の行に入力したデータを参照し、完全に一致した際には、別のファイルの内容をシートに反映させるといったようなことは可能でしょうか? 襲えて下さい。 回答お待ちしています。

  • Excelのファイルをまたいだシート参照について

    Excelのファイルをまたいだシート参照について AというファイルのシートaがbのA1を参照しているとき、Bというファイル(同じシートbを作成済) に貼り付けると、aの参照はAのファイルの別シートから参照(=[A.xls]b!A1)をするようになって しまうのですが、これをBのシート(同じ名前,b!A1)のなかで参照をするようにコピーする方法を教えてください。

  • Excelセルの参照

    Excelにdataとnという2シートがあります。dataシートのA列3行目~22行目にデータが縦入力されており、以降B列、C列とデータ入力が繰り返されます。 nシートでdataシートの入力値参照のため、あらかじめdataシートの参照リンクを貼っておきたいのですが、nシートのデータは横並びであるせいか、参照リンクをうまくコピーすることができません。 dataセルのA3セルの値をnシートのD1に=data!A3と貼り付けて、W1(=data!A22)まで数式を自動コピーできないでしょうか。また、D2~W2まで=data!B3~=data!B22など参照リンクをコピーで作成できないでしょうか。 よろしくお願いいたします。 横並びに参照する必要があるのですが、

  • Excelのセルデータを別のファイルに転送する方法

    Excelのファイル名(G)のセルA1に入力されたデータが、自動的に別のファイル名(H)のセルB2にマクロを使用しないで転写される方法を教えてください。

  • 別のエクセルファイルのデータを参照して表示する方法

    別のエクセルファイルのデータを参照して表示する方法を教えてください。 A.xlsに B.xlsの中の給与一覧の合計セルの部分のみを表示したいのですが。

  • 別ファイルを参照しながらシート名を動的に

    Excelにて、VLOOKUP関数を使用し別ファイルを参照してます。 (こちらをAファイルとします) 別ファイル(こちらをBファイルとします)にはいくつかシートがあり、Aファイルに入力された値によって、Bファイルを参照するシートを変更したいのですが、うまくいきません。 AファイルはC:\workに BファイルはC:\work\workにそれぞれ配置してあります。 AファイルのセルA1には任意の値を入力可能で、その値によって参照するBファイルのシートを変更できます。 VLOOKUP(B1,INDIRECT("'C:\work\work\[Bファイル.xls]"&A1&"シート'!$A$1:$B$100") Aファイルに上記のような関数を書いても、#REFと表示されてしまいます。 どこがおかしいのでしょうか? #AファイルとBファイルを同時に開いている状態だとうまく表示されました。

  • エクセルの他シートからの参照方法について

    エクセルファイルで他のシートからデータを参照して反映させたい場合について、操作が分からないことがあるのでどなたか教えて下さい。 説明がうまくできていなかったらすみません。 sheet1のA列にsheet2のB列のデータを反映させたい場合、sheet1のA1に「=sheet2!b1」sheet1のA2に「=sheet2!b2」…というように設定し、以下は設定済みのA列を選択して下にドラッグしていけば連続データとして参照式が反映できると思うのですが、参照したいデータが連続したセルでない場合の方法が分かりません。 たとえば、sheet1のA1にはsheet2のb1、sheet1のA2にはsheet2のb11、sheet1のA3にはsheet2のb21…というように、反映させたいシートのセルは連続しているのですが、その参照元となるシートのセルは一定の間隔を空けて飛んでいる場合、上記と同じようにドラッグしても、セルの値におかしな数値が入ってしまいます。 仕方がないのでひとつひとつ参照先となるセルを手入力している状態ですが、効率が悪いので、ドラッグ等で一気に参照元を指定したいのですが、どのようにしたらいいのでしょうか? よろしくお願い致します。

  • EXCELで外部ファイルを参照したい

    EXCELで外部のテキストファイルを相対アドレスで参照したいのですが、マクロでないとできないのでしょうか。 たとえば、 他のファイルを参照するのは、「データ」→「外部データの取り込み」でできるのですが、特定のアドレスかファイル(絶対アドレス)しかできません。 (例えば同じフォルダ内にあるa.txtを参照したいときは、./a.txtみたいに。) どなたかわかる方、教えてください。

  • VLOOKUPとINDIRECTで別のEXCELファイルのシートを参照したい

    EXCEL2007を使用しています。 添付画像のように、例えば、B2のセルには =IFERROR(VLOOKUP(A2,INDIRECT($B$1&"!a:b"),2,FALSE),0) という関数があり、VLOOKUPとINDIRECTを使って同じEXCEL内の 別のシートを参照するようにしてあります。 ※シートをそれぞれ 0910,0911,0912という名前にして各年月毎に 商品コードと数量を入れてあります。 この商品コードと数量が入ったシートを数量.xlsxという別のEXCELファイルにして このMAINのEXCELシートにデータを持ってきたいのです。 何か方法はありますでしょうか?よろしくお願いします。

  • エクセルで任意でファイル参照したい

    エクセルで一月ごとの実績をブックで残しています。(1年で12個) このほかに特別のブックを作って、任意の一週間(連続7日間)の実績を表示したいです。 例えば、5月の実績ブックには、 A   B :   : :   : 29  100 30  200 31  150 6月の実績ブックには、 A   B 1   230 2   120 3   140 4   100 :   : という感じです。 そして、特別なブックに5/29と入力すると A     B 5/29  100 5/30  200 5/31  150 6/1   230 6/2   120 6/3   140 6/4   100 と表示したいです。 参照先のブックが固定なら、わかるのですが・・・。 入力された日付によって、ブックを指定して参照しに行く方法がわかりません。 なにかいい方法があったら、教えてください。

専門家に質問してみよう