Excel VBA質問箱 IV

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

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


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

【20073】検索結果を別シートに貼り付けたい2 初心者まなみ 04/11/27(土) 12:18 質問[未読]
【20074】Re:検索結果を別シートに貼り付けたい2 かみちゃん 04/11/27(土) 12:57 発言[未読]
【20075】Re:検索結果を別シートに貼り付けたい2 初心者まなみ 04/11/27(土) 13:31 お礼[未読]
【20078】Re:検索結果を別シートに貼り付けたい2 かみちゃん 04/11/27(土) 14:08 回答[未読]

【20073】検索結果を別シートに貼り付けたい2
質問  初心者まなみ  - 04/11/27(土) 12:18 -

引用なし
パスワード
   Sheet1のC4列に商品名のバナナがあります。これをSheet2のB2列以降に結果を貼り付けたいのですがどのようにしたろ良いでしょうか。。
また、商品名のバナナは数十箇所あります以下のコードですと一箇所検索しただけで検索を終了してしまいます。。。教えてください。
コードは参考書を参考にして作りました。
Sub 検索()

Range("C4").Activate

Do While Left(ActiveCell.Value, 3) <> "バナナ"
 ActiveCell.Offset(1, 0).Activate
  

End Sub

【20074】Re:検索結果を別シートに貼り付けたい2
発言  かみちゃん  - 04/11/27(土) 12:57 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> Sheet1のC4列に商品名のバナナがあります。これをSheet2のB2列以降に結果を貼
> り付けたいのですがどのようにしたろ良いでしょうか。。

Sheet1のC4列ではなく、C列に商品名が入力されていて、その中から「バナナ」で始まる文字を検索するのでしょうか?
途中が「バナナ」となっている文字は検索対象にしないのでしょうか?

Sheet2のB2列以降に結果を貼り付けるとは、何を貼り付けるのでしょうか?
検索して一致した「商品名」ですか?それとも、商品名の隣の列などに記入されて
いる値ですか?
また、B2列以降とは、列方向(C2、D2、E2・・・)ですか?行方向(B3、B4、B5・・・)ですか?

いずれにしても、Findメソッドをヘルプで調べてみるといいかもしれません。
コードの使用例とともに載っています。

【20075】Re:検索結果を別シートに貼り付けたい2
お礼  初心者まなみ  - 04/11/27(土) 13:31 -

引用なし
パスワード
   こんにちわ かみちゃん さん
まなみです。


>Sheet1のC4列ではなく、C列に商品名が入力されていて、その中から「バナナ」で始まる文字を検索するのでしょうか?
そうです。
>途中が「バナナ」となっている文字は検索対象にしないのでしょうか?

検索対象になります。
>
>Sheet2のB2列以降に結果を貼り付けるとは、何を貼り付けるのでしょうか?
>検索して一致した「商品名」ですか?それとも、商品名の隣の列などに記入されて
>いる値ですか?
>また、B2列以降とは、列方向(C2、D2、E2・・・)ですか?行方向(B3、B4、B5・・・)ですか?
商品名のバナナを列方向にです。。説明不足でした。。m(__)m
>いずれにしても、Findメソッドをヘルプで調べてみるといいかもしれません。
>コードの使用例とともに載っています。
参考に見てみます。また何かありましたらお願いします。。。

【20078】Re:検索結果を別シートに貼り付けたい2
回答  かみちゃん  - 04/11/27(土) 14:08 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>>いずれにしても、Findメソッドをヘルプで調べてみるといいかもしれません。
>>コードの使用例とともに載っています。
>参考に見てみます。また何かありましたらお願いします。。。

とりあえず、こんな感じになるかと思います。

Option Explicit

Sub Macro1128()
 Dim c As Range
 Dim FirstAddress As String
 Dim RowNo As Integer
 
 RowNo = 2
 'Sheet1のC4からC100に商品名が記述されている場合
 With Worksheets("Sheet1128_1").Range("C3:C100")
  '「バナナ」という値を部分一致で検索する。
  Set c = .Find("バナナ", LookIn:=xlValues, LookAt:=xlPart)
  If Not c Is Nothing Then
   FirstAddress = c.Address
   Do
    '検索値が見つかったらSheet2の2(B)列目に順番にコピーする
    c.Copy Destination:=Sheets("Sheet1128_2").Cells(RowNo, 2)
    RowNo = RowNo + 1
    '次を検索する。
    Set c = .FindNext(c)
   Loop While Not c Is Nothing And c.Address <> FirstAddress
  End If
 End With
End Sub

でも、よく考えたら、オートフィルタやフィルタオプションでもできそうですね。
これは、マクロの記録をするだけでできると思います。

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