![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
エクセルで次のようなマクロを組みたいのですがうまくいきません。
・C5からBB6の範囲において、Aという文字が入っているセルを検索し、その4行下1列右にコピーしておいたものを値だけ貼り付ける。
検索範囲を指定したいのは同じシート内に他にもAという文字が入っているセルがあるからです。このマクロを実行すると何故かC5からBB6の範囲以外のセルを選択し、貼り付けてしまいます。どこがいけないのでしょうか。ぜひ、教えてください。お願いします。
Range("C5:BB6").Select
Cells.Find(What:="A", After:=ActiveCell, LookIn:=xlValues,LookAt:= _ xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _False, MatchByte:=False, SearchFormat:=False).select
Selection.Offset(4, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=False
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは。
どうやら、日本語の解読力を必要とするようです。
マクロのコードには、質問文と整合性はありません。
・C5からBB6の範囲から、Aという文字が入っているセルを検索する。
--Aという文字が含まれているのでしょうか?
もしそうなら、xlWhole をxlPartに換えてください。
・その4行下1列右をコピーして、Aという文字の入ったセルに値を貼り付ける。
ということでしょうか。
○ 一回きり、それとも、他にもAという文字が入っているセルがあるのか、分かりません。複数あるものとしました。
'-------------------------------------------
Sub TestMacro1()
Dim rng As Range
Dim c As Range
Const sF As String = "A" '検索語
Set rng = Range("C5:BB6")
Set c = rng.Find(What:=sF, _
LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, _
MatchCase:=False, _
MatchByte:=False) 'SearchFormat は抜きます。
'Application.ScreenUpdating = False
If Not c Is Nothing Then
FirstAdd = c.Address
Do
c.Value = c.Offset(4, 1).Value
Set c = rng.FindNext(c)
Loop Until c Is Nothing
End If
'Application.ScreenUpdating = True
Set rng = Nothing
End Sub
'-------------------------------------------
複数ある'Application.ScreenUpdating のコメントブロック(')を抜くと、検索・置換が速くなります。
No.3
- 回答日時:
Sub Test1()
Dim RG As Range
For Each RG In Range("C5:BB6")
If RG.Value = "A" Then
RG = RG.Offset(4,1).Value
End If
Next RG
End Sub
No.2
- 回答日時:
次のようなマクロでどうでしょう。
With Range("C5:BB6")
Set x = .Find("A")
If Not x Is Nothing Then
Range("BB6").Offset(4, 1) = x
End If
End With
No.1
- 回答日時:
なず最初がおかしい。
Sub test01()
Range("C5:BB6").Select
MsgBox Cells.Count
End Sub
を実行してご覧。大きな数が出るだろう。全セル選択になってしまっている。
Sub test02()
MsgBox Range("C5:BB6").Cells.Count
End Sub
なら妥当だろう。
ーーー
重要なところなので
Range("C5:BB6").Find(What:="A", After・・
にして実行して、うまく行かないか至急報告のこと。
その後はまた考える。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルマクロで教えてください 2 2022/05/04 09:07
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Visual Basic(VBA) シフト表のコマで「ブロック」されている前の時間の「出」を同一列の「休」と入れ替えたいがふぇきません。 2 2023/08/02 18:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
Excelで、図形内の文字をセルに...
-
マクロを実行すると画像がズレ...
-
エクセルでPDFリンクを大量...
-
VBA 見つからなかった時の処理
-
現在のセルの位置を返す関数は...
-
エクセルでページ数をあるセル...
-
太字に設定されているセルの個...
-
Excelで挿入した図をセルの中央...
-
セルがクリックされた回数をカ...
-
フォントの色を指定して削除出...
-
エクセル 未入力セルがあると...
-
Excel2007 色のカウント (VBA)
-
クリックすると文章が表示され...
-
Excel ハイパーリンクのURLを別...
-
エクセル シート保護された共...
-
エクセルでの検索ボックスの作...
-
シート保護とグループ化機能を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
太字に設定されているセルの個...
-
クリックすると文章が表示され...
-
Excelで挿入した図をセルの中央...
-
【マクロ】ファイル名の変更に...
-
Excelで、図形内の文字をセルに...
-
マクロを実行すると画像がズレ...
-
Excel ハイパーリンクのURLを別...
-
フォントの色を指定して削除出...
-
Excelでセルをクリックす...
-
Excel2007 色のカウント (VBA)
-
エクセルでの検索ボックスの作...
-
現在のセルの位置を返す関数は...
-
エクセル マクロ チェックボックス
-
VBA 見つからなかった時の処理
-
アポストロフィーの一括挿入 ...
-
エクセルでPDFリンクを大量...
-
セルの値が変ると自動でマクロ...
おすすめ情報