• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBAで違うファイルを参照したいです)

Excel VBAで違うファイルを参照する方法

このQ&Aのポイント
  • Excel VBAを使用して、ネットワーク上の別のファイルを参照する方法について教えてください。
  • 具体的には、アクティブなシートの特定のセルに入力された値と、ネットワーク上のExcelファイル内のセルの値を比較し、一致する場合には「○」、一致しない場合には「×」を返したいです。
  • また、セル番地やシート名を指定せずに、ファイル内を指定して比較したいです。具体的なロジックの書き方がわからないので、教えていただきたいです。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#01です。補足拝見しました。#02回答の  For Each sht In Worksheets から  Next sht までを以下に置き換えると、「外部」と「仕様」が異なるシートに存在しても"○"と判定します。今度は部分一致で判定させています。  Set res1 = Nothing  Set res2 = Nothing  For Each sht In Worksheets   If res1 Is Nothing Then    Set res1 = sht.Cells.Find(wkVal1, lookat:=xlPart)   End If   If res2 Is Nothing Then    Set res2 = sht.Cells.Find(wkVal2, lookat:=xlPart)   End If  Next sht

noname#244288
質問者

お礼

ありがとうございました おかげさまで無事にロジックが作成できました 本当に助かりました 感謝いたします

noname#244288
質問者

補足

>zap35さん たびたびありがとうございます 早速試しましたら表示できました ありがとうございます 私の質問に補足をさせて頂きますと "B1"の「外部」には"C1"へ「○か×」を返し、"B2"の「仕様」には"C2"へ「○か×」を 返すような結果にしたいのです そちらも教えて頂けますでしょうか お願い致します

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です。とりあえずReference.xlsのいずれかの同一シートにB1,B2の両方の値が存在する場合に"○"と判定するマクロにしてみました。 Sub Macro9() Dim actSht, sht As Worksheet Dim wkVal1, wkVal2, res1, res2  Set actSht = ActiveSheet  wkVal1 = ActiveSheet.Range("B1").Value  wkVal2 = ActiveSheet.Range("B2").Value  Workbooks.Open "\\EXCEL\VBA\MACRO\Reference.xls"  For Each sht In Worksheets   Set res2 = Nothing   Set res1 = sht.Cells.Find(wkVal1, lookat:=xlWhole)   '  部分検索なら xlWhole → xlPart   If Not res1 Is Nothing Then    Set res2 = sht.Cells.Find(wkVal2, lookat:=xlWhole)    If Not res2 Is Nothing Then      Exit For    End If   End If  Next sht  Workbooks("Reference.xls").Close False  actSht.Activate  If res1 Is Nothing Or res2 Is Nothing Then    MsgBox ("×")    'ActiveSheet.Range("A1") = "×"  Else    MsgBox ("○")    'ActiveSheet.Range("A1") = "○"  End If End Sub

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

補足要求です >セル番地やシート名まで指定せずに比較したいのです これは \\EXCEL\VBA\MACRO\Reference.xls のいずれかのシートにアクティブシートのB1(外部)とB2(仕様)と一致する文字列があったら"○"という判定をすればよいのですか? 実際にはありえないのかもしれませんが「外部」と「仕様」が別々のシートにあっても良いのでしょうか? また「海外部門」のように部分一致でも"○"ですか

noname#244288
質問者

お礼

回答ありがとうございます 補足要求にお答えします \\EXCEL\VBA\MACRO\Reference.xlsのいずれかのシートに「外部」と「仕様」が 別々にあっても構いませんし、一致する文字列があれば"○"という判定で大丈夫です 「海外部門」も"○"です 早速No.2でロジックを作って頂きありがとうございます まずはそのロジックを使って試してみます どうもありがとうございました

関連するQ&A