[[20050830124827]] 『検索して当てはまるセルに移動したいのです』(レリオネ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『検索して当てはまるセルに移動したいのです』(レリオネ)

[同じファイルの中で、検索して当てはまるセルに移動したいのですがどうすればよいでしょうか?]


 後は、好きなように調整や変更等をしてください。

 Sub 見本()
 Dim ws As Worksheet, fcel As Range, flg As Boolean
 For Each ws In Worksheets
   Set fcel = ws.Cells.Find(What:="う", After:=ws.range("IV65536"), LookIn:=xlFormulas, LookAt:= _
         xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,  MatchCase:=True)
   If Not fcel Is Nothing Then
      flg = True
      Exit For
   End If
 Next
 If flg Then
    ws.Select
    fcel.Select
 End If
 End sub

 (BJ)

ありがとうございました。(レリオネ)


 こちらに統合しました。(kazu)

『再度質問です。同じファイルの中で検索してセルを抽出する時、下記の式の中の”う”のところがマクロを実行したときに”う”のセルを探して指定されますが、シート上で例えばセルA1に入力した文字を検索してくれる方法はどのようにすればよいのでしょうか?何度もすみません。よろしくお願いします。

Sub 見本()

 Dim ws As Worksheet, fcel As Range, flg As Boolean
 For Each ws In Worksheets
   Set fcel = ws.Cells.Find(What:="う", After:=ws.range("IV65536"), LookIn:=xlFormulas, LookAt:= _
         xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,  MatchCase:=True)
   If Not fcel Is Nothing Then
      flg = True
      Exit For
   End If
 Next
 If flg Then
    ws.Select
    fcel.Select
 End If
 End sub

(レリオネ)


 例えば、こんな感じ。

 What:="う"
  ↓
 What:=Sheets("Sheet1").Range("A1").Vlaue
 BJ

 変数を用意して変数に代入してみてはどうでしょうか?
(SoulMan)

What:=Sheets("Sheet1").Range("A1").Vlaueの構文を貼り付けましたが、構文エラーになります。勉強のため全ての構文を教えてもらえないでしょうか?何度もすみません。

 もしかして〜
 スペルが違うかも。。。
 What:=Sheets("Sheet1").Range("A1").Vlaue
                                    ~~~~~
                                     ↑Value
 BJさん、突っ込みすんませんっっm(_ _)m
 (キリキ)(;⌒o⌒)b ←書き間違いはいつも・・・orz

 わたしゃ嫌われてまでいいたかないけど、、これって
これと↓
Option Explicit
Sub 見本()
Dim ws As Worksheet, fcel As Range, flg As Boolean
For Each ws In Worksheets
    Set fcel = ws.Cells.Find(What:=Sheets("Sheet1").Range("A1").Value, After:=ws.Range("IV65536"), LookIn:=xlFormulas, LookAt:= _
    xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True)
    If Not fcel Is Nothing Then
        flg = True
        Exit For
    End If
Next
If flg Then
    ws.Select
    fcel.Select
End If
End Sub
これと↓
Sub 見本1()
Application.Goto Sheets("Sheet1").Range("A1")
End Sub
どう?違うわけ??
(SoulMan)


 Sheet1が一番左にない場合を考えれば判ります。
 質問者の方は、
 >シート上で例えばセルA1に入力した文字を検索してくれる方法
 Sheet1かどうかは判りませんので、BJさんはSheet1の場合はこんな感じですって
 アドバイスされているだけかもしれません。
 BJさんの最初のコメント
>後は、好きなように調整や変更等をしてください。

 (川野鮎太郎)

 回答ってなんだろう??っと最近、思った。。。。。
 Excelの初心者が質問して達人が回答する。。
 それも一例だろう・・・それもいいだろう・・・・
 >Sheet1が一番左にない場合を考えれば判ります。
 そりゃそうだろう。。。間違ってない。。。。
 でも、本当にそうだろうか?
 >『検索して当てはまるセルに移動したいのです』(レリオネ) 
 >[同じファイルの中で、検索して当てはまるセルに移動したいのですがどうすればよいでしょうか?] 
 >後は、好きなように調整や変更等をしてください。
 重箱の隅を突付いて他人のアラをほじくり出して話をまぜくりまわそうなって気はさらさらない。
 ↑別に格好付けてる訳でもない。
 回答・・・・
 そりゃそうだろう・・・間違ってない。。でも、正解とも私には思えない。
 じゃ、正解を書けばいいじゃん・・と言われれば、、それもまた、、そうだろう・・・
 私は、この学校でExcelを学んだ。
 この学校でExcelを教えてもらった。
 私は、この学校が好きだ!
 私は、この学校で今もExcelを学んでいる。。。
 回答を導く手段はいくつもある。いく通りもある。
 スキル?上には上がいる・・揚げ足を取れば切がない。。。。 
 初心者?上級者?達人?誰が達人で誰が初心者?
 「エクセルの学校」・・・・
 そう、、ここは「エクセルの学校」・・・・
 私が言いたいのは、ただ、それだけだ。ただ、今は、多くを語らずにおこう。。。
 そう思った。。。ただ、、それだけだ。。
(SoulMan)独り言・・・・・]

皆さん本当にありがとうございます。しかし、未だに出来ないのです。
上記のように実行しますとセルが何処にあってもA1にセルが移動するだけになってしまうのです。
具体的に言いますと、例えばB列にB1に00001〜B10に00010と順番に入力してあるとします。
A1は検索セルとして例えば00002と入力して、マクロを実行したら、検索してセルがB2に移動するようにしたいのです。本当に申し訳ありませんが、再度よろしくお願いいたします。(レリオネ)


 そういう条件であれば、以下でいけますでしょうか。
 BJさんのコードをお借りしました。
Option Explicit
Sub Test()
Dim fcel As Range
With ActiveSheet
    Set fcel = .Cells.Find(What:=.Range("A1").Value, _
    After:=.Range("A1"), _
    LookIn:=xlFormulas, LookAt:= _
    xlWhole, SearchOrder:=xlByRows, _
    SearchDirection:=xlNext, MatchCase:=True)
    fcel.Select
End With
End Sub

 (川野鮎太郎)

本当にありがとうございました。完璧です!うれしいです。エクセル独学で関数までは少しばかり使えるようになったのですが、VBAまでの内容は全くの初心者です。4冊も講座教本を買って勉強中(はじめたばかりです)です。
しかし、基礎がないとかなり困難な世界だと分かりました。
また、これからもよろしくお願いします。
教えたいただいた事を理解できるようにがんばっていきます。
他の皆様も本当にありがとうございます。


 > もしかして〜
 > スペルが違うかも。。。
 > What:=Sheets("Sheet1").Range("A1").Vlaue
 >                                    ~~~~~
 >                                     ↑Value
 すみません。
 また、A1に記入して・・・。は見落として、After・・・は、修正できませんでした。

 >これと↓
 >Sub 見本1()
 >Application.Goto Sheets("Sheet1").Range("A1")
 >End Sub
 >どう?違うわけ??
 >(SoulMan)
 しつこく絡んでくるみたいですが、ほんとにしつこいやつ!
 下の.Count > 2は、なんの為に有るんですか?

        If .Count > 2 Then
            Set r = .Find("*", , xlValues, xlWhole, xlByRows, xlNext, True)
            If Not r Is Nothing Then
                Set r = .FindNext(r)
                MsgBox r.Value
            End If
        End If

 Find使ったら、フィルタ使う必要も無いようにも思える。
 BJ

 >下の.Count > 2は、なんの為に有るんですか?
 見出しも含めて「抽出されたら」という意味で使ったと思うのですが、
 それでも、
 If .Count > 1 Then
 でもいいような気もしますし、あまり意味がないですね。失礼しました。
 >Find使ったら、フィルタ使う必要も無いようにも思える。
 なので、コピーされてはどうですか?
 とご提案したと思うのですが、、、 
 どうでしょうか?
(SoulMan)


 違うスレでの問題を他の方へのスレに持ち込むのはやめましょう。
 こちらでのことでしょう。
[[20050901122048]]『ラベルへの印刷』(banzai)

 (川野鮎太郎)

 >しつこく絡んでくるみたいですが、ほんとにしつこいやつ!
 多分、私に対しての発言かと思いますが、あなたにこの様な呼ばれ方を
 される覚えはありませんし、こういった掲示板を今後利用されるのであれば、
 最低でもネチケだけは守って暴言は慎まれた方がいいですよ。
 >違うスレでの問題を他の方へのスレに持ち込むのはやめましょう。
 失礼しました。これはごもっともです。とっさのことで思わず書き込みをしてしまいました。
 以後注意したいと思います。
 ということで、、私はレンタルではありますが、個人的に掲示板も持っていますので、
 私に対してのご意見がございましたら、誹謗、中傷や他の人が見て気分を悪くする
 内容は削除する場合もあるかもしれませんが、可能な限りお答えしますよ。
 最後になりましたが、レリオネさんレスをお借りして大変失礼しました。
 何卒お許しくださいませ。m(__)m
 では、失礼致します。
(SoulMan)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.