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

Sub データ検索()
Dim myNo As Variant
Dim mykekka As Range
myNo = InputBox("機番Noを入力してください。", "機番No入力")
Cells.Find(What:=myNo, LookAt:=xlPart).Select
End Sub

上記のような検索のプロシージャを記述しました。
セルB(機番)を検索して該当の単一セルが選択されるまでは、記述出来たのですが、選択された単一セルの行(A~W)を取得して、下の空白の行にコピーしたいのですが、選択された単一セルの行(A~W)の取得の仕方が分かりません。

VBAを始めたばかりなので、質問の内容が分かりにくいかもしれませんがアドバイスよろしくお願いします。

A 回答 (2件)

>下の空白の行にコピーしたいのですが、


これは、検索された機番Noの行の下という意味ですか? それとも検索された機番Noの行から下にある空白の行という意味ですか?

その辺が明確でないので、とりあえず最後の行にコピーするようにしました。また全てのセルを検索範囲にすると無駄ですし誤動作の原因となりますから検索するは列は限定する方がよいと思います。さらに言えば実務で使うつもりならエラー処理は入れた方がよいですよ。質問のマクロだと検索して見つからなかったときエラーになります。
ですからあくまで参考程度にしてください。

Sub データ検索()
Dim myNo As Variant
Dim mykekka As Range
Dim trg As Range
Const KibanCol As Integer = 1 '列番号 1:A列、2:B列
  myNo = Application.InputBox("機番Noを入力してください。", "機番No入力") 'メソッドのInputBoxを使いましょう
  If TypeName(myNo) = "Boolean" Then 'Cancelのとき
    MsgBox "Cancelが選択されました"
  Else
    Set trg = ActiveSheet.Columns(KibanCol).Find(What:=myNo, _
            LookIn:=xlValues, LookAt:=xlPart) '機番Noの列を検索
    If Not trg Is Nothing Then '検索した値が見つかったとき
      ActiveSheet.Range(Cells(trg.Row, "A"), Cells(trg.Row, "W")).Copy _
        Destination:=ActiveSheet.Cells(65536, KibanCol).End(xlUp).Offset(1, 0)
    Else
      Msgbox "機番Noが見つかりませんでした"
    End If
  End If
End Sub

この回答への補足

質問へのアドバイス、有難う御座いました。
年末年始と、アドバイス頂いた内容をマニアル本を見ながら理解しようとしていたので、返事が遅くなり大変申し訳ありませんでした。
追加で質問したいのですが、新たに作成したシート(予定表)に検索した値をコピーしたいのですが、どのように記述すればいいでしょうか。
お礼が遅くなったうえに質問するのは申し訳ないのですが、アドバイスをお願いします。

補足日時:2008/01/13 01:16
    • good
    • 0

ActiveCell.EntireRow.Select

    • good
    • 0
この回答へのお礼

質問への回答有難う御座いました。
お礼が遅くなり申し訳ありませんでした。
今後もよろしくお願いします。

お礼日時:2008/01/13 01:21

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