アプリ版:「スタンプのみでお礼する」機能のリリースについて

検索したい文字をinputboxで入力して、A列を検索して、検索文字を含むセルをコピーして、そのコピーしたデータを、別のシートに貼り付ける、次に該当したセルをさっきコピーしたデータの次の行に貼り付けて・・・。とデータが入力してある最終行までの繰り返し、をやりたいのですが、ご指導の程、説明が下手ですが宜しくお願いします!

A 回答 (2件)

> A列を検索して、検索文字を含むセルをコピーして、


> そのコピーしたデータを、別のシートに貼り付ける、
> 次に該当したセルをさっきコピーしたデータの次の行に貼り付けて・・・。

この一連の操作をマクロとして記録して、その上で、
inputobxでの入力や次検索を行うループ処理などの記述を追加していて、マクロを完成させていっては。

あんまり大雑把な質問をしても回答がつきにくいと思われますので、まずはプロトタイプを試作して、その上で具体的な問題点を質問していった方が手っ取り早いかと。
    • good
    • 0
この回答へのお礼

>一連の操作をマクロとして記録
その手がありましたね・・・。
大変参考になりました!
有難うございました!

お礼日時:2005/07/31 00:58

こんばんは。


ご質問のコードは、ヘルプのFind メソッドを調べれば、ほとんどそっくり載っていますので、そちらを見ていただければよいのです。ですから、誰が書いても、同じようなパターンになるかと思います。人によって違うのは、InputBox の使い方ぐらいかと思います。

ただし、Find メソッドの引数は、ひじょうに曲者です。必要に応じて、なるべく省略しないで、入れることがポイントです。MatchCase 大文字・小文字を区別するオプション。MatchByte 2バイト文字と1バイト文字を区別しないオプションなども、時には必要です。

'<なるべく標準モジュールでお使いください>
'--------------------------------------------------
Sub Sample1()
 Dim myFind As Variant
 Dim myfRow As Long, c As Range
 Dim CopySh As Worksheet
 Dim i As Long
 '==========設定====================
 'コピー先シート
 Set CopySh = Worksheets("Sheet2")
 'コピー先のセルの最初の行
 i = 1
 '==================================
 myFind = Application.InputBox("検索文字を入力してください", Type:=2)
 If VarType(myFind) = vbBoolean Or myFind = "" Then Exit Sub
 
 With Worksheets("Sheet1").Columns(1)
  Set c = .Find(myFind, LookIn:=xlValues, LookAt:=xlWhole)
  If Not c Is Nothing Then
   myfRow = c.Row
   Do
    c.Copy CopySh.Cells(i, "A") 'コピー
    Set c = .FindNext(c)
    i = i + 1
   Loop Until c Is Nothing Or myfRow = c.Row
  End If
 End With
 Beep '終了の合図
End Sub
    • good
    • 1
この回答へのお礼

早速のご回答有難うございました!!
なんとか思うように出来そうです♪
有難うございました。

お礼日時:2005/07/31 00:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています