Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8878 / 13646 ツリー ←次へ | 前へ→

【30567】違うブック同士のセルについて。 Tetsuo 05/10/31(月) 1:18 質問[未読]
【30572】Re:違うブック同士のセルについて。 Statis 05/10/31(月) 9:41 回答[未読]
【30573】Re:違うブック同士のセルについて。 ちくたく 05/10/31(月) 9:46 回答[未読]
【30577】Re:違うブック同士のセルについて。 とまと 05/10/31(月) 10:37 回答[未読]
【30578】Re:違うブック同士のセルについて。 とまと 05/10/31(月) 10:40 発言[未読]

【30567】違うブック同士のセルについて。
質問  Tetsuo  - 05/10/31(月) 1:18 -

引用なし
パスワード
   初めまして。Tetsuoと申します。
現在作っているツールで、二つの違ったファイルのセル同士を比較する
If文を書いているのですが上手くいきません。以下に詳細を書きます。

aaa.xls の中には、果物の名前がカラムAに羅列されています。
bbb.xls の中には、果物の名前がカラムAに、そしてその金額がカラムBに入っています。

if文で、aaa.xlsのCells(1,1)に格納されている果物の名前が、
bbb.xls のCells(1,1)に格納されている果物の名前と同一である場合、
bbb.xls にあるCells(1,2)に格納されている金額を、
aaa.xlsのCells(1,2)へ。

といったようにしたいのです。
同じブック同士なら何も問題は無いのですが、違うブック同士だと
IF文でどのように書けばいいのか、混乱してしまいます。

初歩的な質問で申し訳ありませんが、どなたかアドバイスの方よろしくお願いします。

【30572】Re:違うブック同士のセルについて。
回答  Statis  - 05/10/31(月) 9:41 -

引用なし
パスワード
   こんにちは

こんな感じかな?(シート名が不明ですが)

Dim Wb As Workbook
Set Wb = Workbooks("bbb.xls")
With Workbooks("aaa.xls").Worksheets("Sheet1")
   If .Cells(1, 1).Value = Wb.Worksheets("Sheet1").Cells(1, 1).Value Then
    .Cells(1, 2).Value = Wb.Worksheets("Sheet1").Cells(1, 2).Value
   End If
End With

もし同じフォルダ内ならこれで良いかな?

Sub Test()

With ThisWorkbook.Worksheets("Sheet1")
   With .Range("A1", .Range("A65536").End(xlUp)).Offset(, 1)
     .Formula = "=IF(A1=[bbb.xls]Sheet1!A1,[bbb.xls]Sheet1!B1,"""")"
     .Value = .Value
   End With
End With

End Sub

【30573】Re:違うブック同士のセルについて。
回答  ちくたく  - 05/10/31(月) 9:46 -

引用なし
パスワード
   Tetsuo さん
こんにちは。
普通にこんな感じと思います。

Sub ふたつのシート比較()
  Dim aWb As Workbook, bWb As Workbook
  Dim aData As String, bData As String
  Dim bNum As Integer

  Set aWb = Workbooks("aaa.xls")
  Set bWb = Workbooks("bbb.xls")
  
  aData = aWb.ActiveSheet.Cells(1, 1).Value
  bData = bWb.ActiveSheet.Cells(1, 1).Value
  
  bNum = bWb.ActiveSheet.Cells(1, 2).Value
  
  If aData = bData Then
    aWb.ActiveSheet.Cells(1, 2) = bNum
  End If
End Sub

【30577】Re:違うブック同士のセルについて。
回答  とまと  - 05/10/31(月) 10:37 -

引用なし
パスワード
   みなさんこんにちは

VLOOKUPみたいなことをされようとしてるのかな?
それだとこんなかんじかな。

Sub シート比較()

  Dim sh1 As Worksheet
  Dim sh2 As Worksheet
  Dim i As Long
  Dim c
  
  Set sh1 = Workbooks("aaa.xls").Worksheets("sheet1")
  Set sh2 = Workbooks("bbb.xls").Worksheets("sheet1")
 
  For i = 1 To sh1.Range("A65536").End(xlUp).Row
    c = Application.Match(sh1.Cells(i, 1).Value, sh2.Columns("A"), 0)
    If Not IsError(c) Then
     sh1.Cells(i, "A").Value = sh2.Cells(c, "B").Value
    End If
  Next
  

End Sub

【30578】Re:違うブック同士のセルについて。
発言  とまと  - 05/10/31(月) 10:40 -

引用なし
パスワード
   まちがえました。
下記変更お願いします。

sh1.Cells(i, "A").Value = sh2.Cells(c, "B").Value
   ↓
sh1.Cells(i, "B").Value = sh2.Cells(c, "B").Value

あと両BOOKが立ち上がった状態でためしてください。

8878 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free