Excel VBA質問箱 IV

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

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


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

【30584】同一データを検索して一定のデータを入力する tbtk 05/10/31(月) 14:17 質問[未読]
【30589】Re:同一データを検索して一定のデータを入... 05/10/31(月) 15:14 回答[未読]
【30590】Re:同一データを検索して一定のデータを入... tbtk 05/10/31(月) 15:29 質問[未読]
【30591】Re:同一データを検索して一定のデータを入... 05/10/31(月) 15:38 発言[未読]
【30593】Re:同一データを検索して一定のデータを入... とまと 05/10/31(月) 16:19 発言[未読]
【30594】Re:同一データを検索して一定のデータを入... 05/10/31(月) 16:22 発言[未読]
【30596】Re:同一データを検索して一定のデータを入... tbtk 05/10/31(月) 16:54 質問[未読]
【30598】Re:同一データを検索して一定のデータを入... とまと 05/10/31(月) 17:05 回答[未読]
【30600】Re:同一データを検索して一定のデータを入... tbtk 05/10/31(月) 17:31 お礼[未読]
【30595】Re:同一データを検索して一定のデータを入... ちくたく 05/10/31(月) 16:23 回答[未読]
【30597】Re:同一データを検索して一定のデータを入... tbtk 05/10/31(月) 17:01 発言[未読]
【30602】Re:同一データを検索して一定のデータを入... tbtk 05/10/31(月) 18:06 お礼[未読]

【30584】同一データを検索して一定のデータを入力...
質問  tbtk  - 05/10/31(月) 14:17 -

引用なし
パスワード
   すみません、教えて頂きたいのですが
データ取込と背番号表という二つのブックがあります。
データ取込というブックはほかで作成したデータの統合用のブックになっていて
品番、発注数等が入力されています。
しかし、本来は品番別に背番号という認識記号がついているのですが
データ取込が統合したデータの中には入っていないため
統合した後に背番号表というブックから背番号データを持ってこようと
思っています。
データ取込ブックのフォーマットはこんな感じです。
   A    B   C    D
1 発行日  品番  発注数 背番号

2 10/31  P1   10

3 10/31  P2   10

4 10/31  P3   10
背番号表はこんな感じです。

   A    B    C   
1  品番  背番号

2  P3    N1

3  P2    N2

4  P1    N3

これをマクロを実行すると品番を検索して
一致したら背番号をデータ取込のブックに入力されるようにしたいです。
結果的にはこんな感じです。

   A    B   C    D
1 発行日  品番  発注数 背番号

2 10/31  P1   10    N3

3 10/31  P2   10    N2

4 10/31  P3   10    N1

上記のような形にしたいのですがどうマクロを作成したらいいのか
よく分かりません。
大変、お手数かとは思いますがどなたかご教示お願いします。

【30589】Re:同一データを検索して一定のデータを...
回答    - 05/10/31(月) 15:14 -

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

Sub test()
Dim 背番号 As String
Dim 品番 As String
Dim 最下行 As Integer
Dim i As Integer
Dim 検索セル As Variant

Windows("データ取込").Activate
最下行 = Range("A1").End(xlDown).Row

For i = 2 To 最下行
  品番 = Range("B" & i).Value
  Windows("背番号表").Activate
  検索セル = Cells.Find(what:=品番, after:=Range("A1"))
  If Not 検索セル Is Nothing Then
    背番号 = 検索セル.Value
  End If
  Windows("データ読込").Activate
  Range("D" & i).Value = 背番号
Next

End Sub

外していたらごめんなさい。
ファイル名は書いていたとおりのようにしたので、
本来のファイル名変換してください。

【30590】Re:同一データを検索して一定のデータを...
質問  tbtk  - 05/10/31(月) 15:29 -

引用なし
パスワード
   ▼あ さん:
>こんにちは。
>返信、ありがとうございます。
>Sub test()
>Dim 背番号 As String
>Dim 品番 As String
>Dim 最下行 As Integer
>Dim i As Integer
>Dim 検索セル As Variant
>
>Windows("データ取込").Activate
>最下行 = Range("A1").End(xlDown).Row
>
>For i = 2 To 最下行
>  品番 = Range("B" & i).Value
>  Windows("背番号表").Activate
>  検索セル = Cells.Find(what:=品番, after:=Range("A1"))
>  If Not 検索セル Is Nothing Then
        ↑
ここでオブジェクトが必要ですとエラーが出てしまうのですが
このコードの動作がよく分からないので何のことか分かりません。
もし、よろしければ教えて頂いてもよろしいでしょうか?
>    背番号 = 検索セル.Value
>  End If
>  Windows("データ読込").Activate
>  Range("D" & i).Value = 背番号
>Next
>
>End Sub
>
>外していたらごめんなさい。
>ファイル名は書いていたとおりのようにしたので、
>本来のファイル名変換してください。

【30591】Re:同一データを検索して一定のデータを...
発言    - 05/10/31(月) 15:38 -

引用なし
パスワード
   >>Dim 検索セル As Variant
>>For i = 2 To 最下行
>>  品番 = Range("B" & i).Value
>>  Windows("背番号表").Activate
>>  検索セル = Cells.Find(what:=品番, after:=Range("A1"))
>>  If Not 検索セル Is Nothing Then
>        ↑
>ここでオブジェクトが必要ですとエラーが出てしまうのですが
>このコードの動作がよく分からないので何のことか分かりません。
>もし、よろしければ教えて頂いてもよろしいでしょうか?

もしかしたら、変数定義がおかしかったのかも。(汗)
検索セルという部分を「kensaku」などに変えたら行くのかな。
私はいつも英文字しか使わないので…。(わかり易さでひらがなにしました)

コードの処理としては、品番で探したセルがあったらIf以下の処理をする
という内容です。
手打ちだったので間違ったかも知れません。
回答者なのに、すみません。

【30593】Re:同一データを検索して一定のデータを...
発言  とまと  - 05/10/31(月) 16:19 -

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

全部みてないのでよくわからないけど。

検索セル = Cells.Find(what:=品番, after:=Range("A1"))

set 検索セル = Cells.Find(what:=品番, after:=Range("A1"))

じゃないかな。

【30594】Re:同一データを検索して一定のデータを...
発言    - 05/10/31(月) 16:22 -

引用なし
パスワード
   >検索セル = Cells.Find(what:=品番, after:=Range("A1"))
>↓
>set 検索セル = Cells.Find(what:=品番, after:=Range("A1"))
>じゃないかな。

とまとさん、こんにちは。
そうですっ。(汗) 忘れてました。
フォローありがとうございます。
この使い方が久々ですっかりわすれてました。

【30595】Re:同一データを検索して一定のデータを...
回答  ちくたく  - 05/10/31(月) 16:23 -

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

テストしてないですけど、
背番号のほうを配列に格納しての、
For~Next二重回しです。

Sub データ一致()
  
  Dim myVal As Variant
  Dim myWb As Workbook, dataWb As Workbook
  Dim i As Integer, j As Integer
  
  Set myWb = Workbooks("データ取り込み.xls")
  Set dataWb = Workbooks("背番号.xls")
  
  myVal = dataWb.ActiveSheet.Columns("A:B")
  
  For i = 1 To CInt(myWb.ActiveSheet.Range("B65536").End(xlUp).Row)
    For j = LBound(myVal) To UBound(myVal)
      If myWb.ActiveSheet.Range("B" & i).Value = myVal(j, 1) Then
        myWb.ActiveSheet.Range("D" & i).Value = myVal(j, 2)
        Exit For
      End If
    Next j
  Next i
  
End Sub

【30596】Re:同一データを検索して一定のデータを...
質問  tbtk  - 05/10/31(月) 16:54 -

引用なし
パスワード
   すみません。動作はしたのですが
背番号を入力する筈だったのですが何故か品番が入力されました
結果としてはデータ取込のシートに品番が二つ入力されている状態になってしまったのですが・・・・。
多少、項目が増えたのでコードのセル位置を変えたためでしょうか?  
  Dim SBAN As String
  Dim HBAN As String
  Dim SAIKA As Integer
  Dim i As Integer
  Dim KENSAKU As Variant

  Windows("発注データ取込フォーマット変換.XLS").Activate
  SAIKA = Range("F1").End(xlDown).Row

  For i = 2 To SAIKA
    HBAN = Range("F" & i).Value
    Windows("背番号表.XLS").Activate
    Set KENSAKU = Cells.Find(what:=HBAN, after:=Range("C1"))
    If Not KENSAKU Is Nothing Then
       SBAN = KENSAKU.Value
    End If
    Windows("発注データ取込フォーマット変換.XLS").Activate
    Range("H" & i).Value = SBAN
  Next
という形にしたのですが、
背番号表のフォーマットはこうなりました。
  A   B   C   D  E
A 連番 背番号 品番 品名

B

C

【30597】Re:同一データを検索して一定のデータを...
発言  tbtk  - 05/10/31(月) 17:01 -

引用なし
パスワード
   ちくたくさん
返信ありがとうございます。
提示していただいたコードも試してみます。
本当にありがとうございます。

【30598】Re:同一データを検索して一定のデータを...
回答  とまと  - 05/10/31(月) 17:05 -

引用なし
パスワード
   ちょっと あさん のをなおしてみました。
だめだったらごめんなさい。

Sub test2()

Dim 品番 As String
Dim 最下行 As Integer
Dim i As Integer
Dim 検索セル As Variant
Dim sh1 As Worksheet
Dim sh2 As Worksheet

Set sh1 = Workbooks("データ取り込み.xls").Worksheets("★★")
Set sh2 = Workbooks("背番号.xls").Worksheets("★★") 'シート名を適宜変更

最下行 = sh1.Range("A1").End(xlDown).Row

For i = 2 To 最下行
  品番 = sh1.Range("B" & i).Value
  Set 検索セル = sh2.Columns("A").Find(what:=品番, lookat:=xlWhole)
  If Not 検索セル Is Nothing Then
    sh1.Range("D" & i).Value = 検索セル.Offset(, 1).Value
  End If
Next

End Sub

【30600】Re:同一データを検索して一定のデータを...
お礼  tbtk  - 05/10/31(月) 17:31 -

引用なし
パスワード
   色々と親切な回答ありがとうございました。
まだ、希望通りの動作は出来ていないのですが、提示していただいたコードを元に
自分でチャレンジしてみます。
少々、この希望通りの動作のものを作るのに日にちが無いのでまたお世話になるかも、しれないですがその時はよろしくお願いします。

【30602】Re:同一データを検索して一定のデータを...
お礼  tbtk  - 05/10/31(月) 18:06 -

引用なし
パスワード
   とまとさん、あさん、ちくたくさん
大変ありがとうございました。
皆様のお陰で希望通りの動きが実現できました。
これからもお世話になるとは思いますのでよろしくお願いします。

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