[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定の単語のセルを隣にコピー』(ブルー☆)
はじめまして
例えば リンク先という単語が入ったセルを右隣にコピーするにはどうすればよろしいでしょうか
Like文を使うのはわかりますが
< 使用 Excel:Excel2010、使用 OS:Windows7 >
VBAでいいんですよね? こんな感じです。
Sub test() Dim Rng As Range Set Rng = Range("A1") If InStr(Rng.Value, "リンク先") Then Rng.Copy Rng.Offset(, 1) End Sub (ろっくん) 2019/02/22(金) 08:43
検索ってどこにも書かれてなかったので、検索するコードは書いていません。 A1セルに対してだけの例示です。
検索する必要があるのであれば、対象となる範囲(ブックやシート、セル範囲など) 教えていただけますか? (ろっくん) 2019/02/22(金) 15:51
とりあえず、該当セルが複数でも良いようにした例なぞ。
Sub test() Dim R As Range
For Each R In Cells.SpecialCells(xlCellTypeConstants) If R.Value Like "*リンク先*" Then R.Offset(0, 1).Value = Replace(R.Value, "リンク先", "リンク|") End If Next R Cells.Replace What:="リンク|", Replacement:="リンク先" End Sub (???) 2019/02/22(金) 15:58
Sub さんぷる1() Dim MyRNG As Range Dim 該当セル As Range
Stop '←ブレークポイントの代わり
For Each MyRNG In ActiveSheet.Range("A1:Z100")
'▼リンク先が含まれるセルを覚えておく If MyRNG.Value Like "*リンク先*" Then If 該当セル Is Nothing Then Set 該当セル = MyRNG Else Set 該当セル = Union(該当セル, MyRNG) End If End If Next MyRNG
'▼もし、リンク先が含まれているとして覚えたセルがあれば、1つ右へコピペする If Not 該当セル Is Nothing Then For Each MyRNG In 該当セル MyRNG.Copy MyRNG.Offset(, 1) Next MyRNG End If
End Sub
※ただ、コピー先にすでになにかあっても上書きするのはもちろんのこと、「リンク先」 という単語が含まれていた場合でもお構いなしなので A2に「あああリンク先ですよ」 B2に「リンク先かも」 と入っていた場合、B2からC2セルへのコピペはA2セルの内容で上書きされたあとの 処理になりますから、それではまずいということであれば、別の手を考えないとダメですね。 そもそも複数列を処理する話なのか質問からは判断できなかったので、対象列は1列しかない とかであれば心配無用でしょうが・・・
(もこな2) 2019/02/22(金) 16:04
Sub test() Dim R As Range
For Each R In Cells.SpecialCells(xlCellTypeConstants) If R.Value Like "*リンク先*" Then R.Offset(0, 1).Value = R.Value End If DoEvents Next R End Sub (???) 2019/02/22(金) 16:06
アクティブブックの全シートを対象とした場合で・・ Sub test2() Dim Sh As Worksheet Dim Rng As Range For Each Sh In Worksheets For Each Rng In Union(Sh.Cells.SpecialCells(xlCellTypeConstants), Sh.Cells.SpecialCells(xlCellTypeFormulas)) If InStr(Rng.Value, "リンク先") > 0 Then Rng.Copy Rng.Offset(, 1) Next Rng Next Sh End Sub (ろっくん) 2019/02/22(金) 16:35
Sub さんぷる2() Dim MyRNG As Range
With ActiveSheet For Each MyRNG In .Range("A1", .Cells(.Rows.Count, "A").End(xlUp)) If MyRNG.Value Like "*リンク先*" Then MyRNG.Copy MyRNG.Offset(, 1) End If Next MyRNG End With
End Sub
(もこな2) 2019/02/23(土) 11:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.