![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
VBA初心者です
特定の条件を満たすセルの隣接する指定のセルをコピーして別のシートへ貼付けたいです
【sheet1】
A B C ~ F G
1 2 あ ~ 3 あり
2 1 い ~ 7 なし
3 2 う ~ 4 あり
5 3 え ~ 6 あり
6 2 お ~ 5 なし
7 1 か ~ 3 あり
8 3 き ~ 7 なし
9 2 く ~ 8 なし
といったデータのうち、G列が「あり」の行の
C~Fの値を別のシートへ以下のように貼り付けたいです
【sheet2】
A ~ D E
あ ~ 3 _
う ~ 4 _
え ~ 6 _
か ~ 3 _
全くの初心者です
よろしくお願いします
No.1ベストアンサー
- 回答日時:
Sheet1がアクティブな時しかうまくいきませんが、
こんな感じでどうでしょう。
適当に作ってるので、非常にパフォーマンス悪いですが・・・。
Public Sub cptest()
Dim sht1 As Worksheet
Dim sht2 As Worksheet
Dim rng As Range
Dim cel As Range
Dim stcrng As New Collection
Dim lastRow As Integer
Dim cnt As Integer
Set sht1 = ThisWorkbook.Worksheets("Sheet1")
Set sht2 = ThisWorkbook.Worksheets("Sheet2")
lastRow = Range("G65535").End(xlUp).Row
Set rng = sht1.Range("G1:G" & lastRow)
For Each cel In rng
If cel.Value = "あり" Then
Set cel = sht1.Range(cel.Offset(0, -4), cel.Offset(0, -1))
stcrng.Add cel
End If
Next
sht2.Cells.Clear
cnt = 0
Set rng = sht2.Range("A1")
For Each cel In stcrng
cel.Copy
rng.Offset(cnt, 0).PasteSpecial
rng.Offset(cnt, 4).Value = "_"
cnt = cnt + 1
Next
Application.CutCopyMode = False
End Sub
No.2
- 回答日時:
Sheet2を全てクリアして、1行目からデータが始まります。
Sub Macro1()
Set ws01 = Sheets("Sheet1")
Set ws02 = Sheets("Sheet2")
ws02.Cells.ClearContents
myRow = 0
For i = 1 To ws01.Range("G65535").End(xlUp).Row
If ws01.Range("G" & i) = "あり" Then
myRow = myRow + 1
ws02.Range("A" & myRow & ":D" & myRow).Value = ws01.Range("C" & i & ":F" & i).Value
End If
Next i
End Sub
締め切ってしまった瞬間に投稿いただきました
書式はコピーされないのでこちらはこちらで活用させていただきます
ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ある条件を満たすセルに対応する行のセル内容をコピーして・・
Visual Basic(VBA)
-
VBA 条件が一致した場合のみコピーする
その他(ビジネス・キャリア)
-
VBAで条件が一致する行をコピーしその1つ下へ挿入
Excel(エクセル)
-
-
4
エクセルVBAのIFを使ったコピペ
Excel(エクセル)
-
5
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
6
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
7
VBAを使って検索したセルをコピーして別の場所に貼り付ける。
Visual Basic(VBA)
-
8
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
9
毎回変わる範囲を検索し、コピペするマクロについてご教示ください。
Excel(エクセル)
-
10
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
11
【エクセル】関数で「A1が0でないならB1を表示」の式
その他(コンピューター・テクノロジー)
-
12
エクセル 同じ値を探して隣の数値をコピーする
Excel(エクセル)
-
13
特定のセルが空白だったら、その行を非表示にしたい。。。
Visual Basic(VBA)
-
14
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
17
エクセル2010 マクロで値のみコピー
Excel(エクセル)
-
18
マクロ 新しいシートにデータをコピペしてシートの名前を変更したい
Excel(エクセル)
-
19
【VBA】特定の文字が入っている行の一部を抽出して別シートコピーするには
Visual Basic(VBA)
-
20
エクセル マクロ 貼り付け先が空白でない場合 1行下に貼りつける
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
マクロ実行後に別シートの残像...
-
VBA 空白行に転記する
-
EXCELのSheet番号って変更でき...
-
VBA 実行時エラー1004 rangeメ...
-
Unionでの他のシートの参照につ...
-
VBA 別ブックからの転記の高速...
-
グラフマクロで系列を変数にす...
-
【VBA】特定の条件でセルをコピー
-
複数シートの複数列に入力され...
-
エクセル VBA 時系列に横一列に...
-
ExcelのVBマクロを、バックグラ...
-
VBAで変数の数/変数名を動的に...
-
100万件越えCSVから条件を満た...
-
VBAでEXCELから固定長...
-
Excel VBA オートフィルターで...
-
Consolidateの範囲
-
Count Ifのセルの範囲指定に変...
-
Excel VBA
-
VBAのグラフに違うシートの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
VBA 空白行に転記する
-
EXCELのSheet番号って変更でき...
-
マクロ実行後に別シートの残像...
-
Count Ifのセルの範囲指定に変...
-
VBA 別ブックからの転記の高速...
-
VBA別シートの最終行の次行へ転...
-
Changeイベントで複数セルへの...
-
複数シートの複数列に入力され...
-
ExcelのVBマクロを、バックグラ...
-
VBA 実行時エラー1004 rangeメ...
-
楽天RSSからエクセルVBAを使用...
-
【VBA】特定の条件でセルをコピー
-
100万件越えCSVから条件を満た...
-
Excel2013で切り取り禁止
-
VBAで変数の数/変数名を動的に...
-
アクセスからエクセルへ出力時...
-
Unionでの他のシートの参照につ...
-
グラフマクロで系列を変数にす...
-
Excel VBA オートフィルターで...
おすすめ情報