Excel VBA質問箱 IV

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

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


8762 / 13644 ツリー ←次へ | 前へ→

【31340】マクロを使って別のExcelシートから情報... つよし 05/11/17(木) 23:30 質問[未読]
【31345】Re:マクロを使って別のExcelシートから情報... ちくたく 05/11/18(金) 8:35 回答[未読]

【31340】マクロを使って別のExcelシートから情報...
質問  つよし  - 05/11/17(木) 23:30 -

引用なし
パスワード
   例えば、2つのエクセルファイル(11.xls、22.xls)から別のエクセルファイル(33.xls)にキーワードを指定してその列1行を取り込みたいのですが、知っている方いたら教えて下さい。

<イメージ>
(1)11.xls
  1行目:@@@  12345
  2行目:#### 111
(2)22.xls
  1行目:#### 111
  2行目:@@@  23432
    ↓
    ↓(1)と(2)の@@@(キーワード)行のデータを(3)のエクセルファイル
    ↓(33.xls)に取り込む。
    ↓
(3)33.xls
 1行目:@@@  12345
 2行目:@@@  23432

宜しくお願いします。

【31345】Re:マクロを使って別のExcelシートから情...
回答  ちくたく  - 05/11/18(金) 8:35 -

引用なし
パスワード
   こんにちは。
仕様が不明確でしたので、適当に書きました。
しかも、途中までです。全部書いても冗長かな、と。
変数jを使い方がいまいちな気がしますが、動けばいいかな、と。

Sub test()

  Dim Wb1 As Workbook, Wb2 As Workbook, Wb3 As Workbook
  Dim tmpArr As Variant
  Dim i As Integer
  
  Set Wb1 = Workbooks("11.xls")
  Set Wb2 = Workbooks("22.xls")
  Set Wb3 = Workbooks("33.xls")
  j = 1
  
  tmpArr = Wb1.ActiveSheet.UsedRange     'UsedRangeで配列に格納。
  For i = LBound(tmpArr, 1) To UBound(tmpArr, 1)
    If tmpArr(i, 1) = "@@@" Then
      Wb3.ActiveSheet.Range("A" & j).Value = "@@@"
      Wb3.ActiveSheet.Range("B" & j).Value = tmpArr(i, 2)
      j = j + 1
    End If
  Next i

End Sub

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