[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『A列から特定の文字を探し、そのセルを選択したいです。』(なのれい)
いつもお世話になっております。
マクロ勉強中で初歩的な質問かもしれませんが、宜しくお願い致します。
A列から特定の文字を探し、そのセルを選択したいです。
Sub 文字列を検索して行全体を選択する()
Dim rng As Range Set rng = Range("A:A").Find("北海道") rng.EntireRow.Select
End Sub
上記で行全体は選択は出来たのですが、北海道のセルを単体で選択する事が出来ないです。
Sub 文字列を検索して行全体を選択する()
Dim rng As Range Set rng = Range("A:A").Find("北海道") rng.Row.Select
End Sub
上記のように
EntireRow
を
Row
に変更すれば選択出来るのでは?と思いましたが、できませんでした。
アドバイス頂けないでしょうか?
宜しくお願い致します。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
Sub 北海道という文字列を検索してA列のセルを選択する()
Dim rng As Range Set rng = Cells.Find(What:="北海道")
Cells(rng.Row, "A").Select
End Sub
自己解決致しました。
(なのれい) 2019/02/04(月) 12:21
ただ単に rng.select でもいいと思いますが、 見つからなかった時の処理や、複数あった時に1こしか選択されないので そんなときの処理も考えておいた方がいいかと思います。
Sub TEST() Const TargetStr As String = "北海道" Dim Rng As Range Dim fCell As Range Dim tCell As Range Set Rng = Range("A:A").Find(What:=TargetStr, LookAt:=xlWhole, LookIn:=xlValues) If Rng Is Nothing Then MsgBox TargetStr & " はありません。", vbCritical Exit Sub Else Set fCell = Rng Set tCell = fCell End If Do Set Rng = Cells.FindNext(Rng) If Rng.Address = fCell.Address Then Exit Do Else Set tCell = Union(tCell, Rng) Loop tCell.Select End Sub (ろっくん) 2019/02/04(月) 12:25
やっぱり自分のはダメでした。
Sub 北海道という文字列を検索してA列のセルを選択する()
Dim rng As Range Set rng = Cells.Find(What:="北海道") Cells(rng.Row, "A").Select End Sub
これだと、
北海道がある行のA列を選択でした。
そうではなく、A列の北海道を探し選択したかったです。
また、A列に北海道は一つしかありません。
無いこともあるのでエラーが出ない方が助かります。
すみませんが宜しくお願い致します。
(なのれい) 2019/02/04(月) 13:00
これでうまくいきました。
失礼いたしました。
(なのれい) 2019/02/04(月) 13:08
Sub 北海道という文字列を検索してA列のセルを選択する()
Dim rng As Range Range("A:A").Find("北海道").Select ActiveCell.Offset(0, 2).Cut Range("B:B").Find("北海道").Select ActiveCell.Offset(0, 2).Paste
End Sub
上記の図を例として「沖縄」をD1のセルに貼り付けしたいです。
重要なのは、A列の北海道の2つ隣のセルを切り取り、B列の北海道の2つ隣へ貼り付けたいです。
宜しくお願い致します。
(なのれい) 2019/02/04(月) 13:26
Sub 北海道という文字列を検索してA列のセルを選択する()
Dim rng As Range Range("A:A").Find("北海道").Select ActiveCell.Offset(0, 2).Cut Range("B:B").Find("北海道").Select
ここまでは上手く行きます。
貼り付けするコードを入れるとエラーが出てしまいます。
ActiveCell.Offset(0, 2).Paste End Sub
エラー内容
https://gyazo.com/9db4cfc0533ba822732dedd824fc5da6
(なのれい) 2019/02/04(月) 13:32
Sub sumple() Dim rng As Range, rng2 As Range Set rng = Range("A:A").Find("北海道") Set rng2 = Range("B:B").Find("北海道")
rng.Offset(0, 2).Cut rng2.Offset(0, 2) End Sub
(TAKA) 2019/02/04(月) 13:42
エラー対策として【完全一致の指定】と【見つからなかった場合の処理】を入れると
Sub sumple() Dim rng As Range, rng2 As Range Set rng = Range("A:A").Find("北海道", Lookat:=xlWhole) Set rng2 = Range("B:B").Find("北海道", Lookat:=xlWhole)
If rng Is Nothing Then MsgBox "A列に北海道は存在しません" Exit Sub End If
If rng2 Is Nothing Then MsgBox "B列に北海道は存在しません" Exit Sub End If
rng.Offset(0, 2).Cut rng2.Offset(0, 2) End Sub
こうなります
(TAKA) 2019/02/04(月) 13:48
Pasteメソッドの構文は 貼り付けシート.Paste 貼り付けセル (ねむねむ) 2019/02/04(月) 13:55
ついでに、
■Cutメソッド 切り取るセル.Cut 貼り付けるセル ■Copyメソッド コピーするセル.Copy 貼り付けるセル (TAKA) 2019/02/04(月) 14:04
分かりやすく説明頂きありがとうございます。
(なのれい) 2019/02/04(月) 14:11
>ActiveCell.Offset(0, 2).Paste
PasteSpecial にしないと、指定セルに貼り付けできない。 (BJ) 2019/02/04(月) 16:05
PasteSpecialはCopyした場合にしか使えず、Cutした場合には使えない。 (ねむねむ) 2019/02/04(月) 16:26
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.