Excelで指定の列にもしキーワードがあれば、そのキーワードのある行の指定の列に複数範囲のデータを貼り付けたい


4行目のBB列~BE列のデータをコピーします。(①)
そして5行目以下のBF列にもし、空白セルではなく文字列データが入っていた場合。
そのデータが入っている行のBB~BE列に、①をペーストしたいです。

そのような処理をマクロ等で出来たら非常に助かります。
よろしくお願い致します。

※なお、BF列には5行目から55000行ぐらいまでに、空白セルと文字列データが混じって入ってまして、文字列データは「あいうえお」であったり「かきくけこ」であったりと、バラバラです。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2016/03/27 19:18:41
  • 終了:2016/03/30 23:58:23

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4365ベストアンサー獲得回数18012016/03/28 13:57:55

ポイント1500pt

質問の冒頭だと、特定のキーワードを探すような感じですが、

そして5行目以下のBF列にもし、空白セルではなく文字列データが入っていた場合。

というのは、空のセルじゃなければ貼り付け、というふうに読めます。

判定のところ以外は一緒なので、ふたつ用意しました。

こちらは、特定のキーワードを探すイメージ。

Const MAX_ROW = 50000   ' 処理対象の最大行数

Sub copy_bb_be()

    keyword = "あい"        ’BF列で探したいキーワード

    look_col = 58           ' BF列
    copy_col = 54           ' BB列
    copy_row = 4
    paste_col = copy_col    ' BB列

    ' BB4:BE4 をコピー
    Range(Cells(copy_row, copy_col), Cells(copy_row, copy_col + 3)).Copy

    last_row = Cells(Rows.Count, look_col).End(xlUp).Row

    For r = 5 To last_row
        If InStr(Cells(r, look_col).Value, keyword) > 0 Then
            Cells(r, paste_col).Select
            ActiveSheet.Paste
        End If
        DoEvents
        If r > MAX_ROW Then     ' 念のため
            Exit For
        End If
    Next

End Sub


こちらは、特定のキーワードを探すのではなく、BF列が空ではないセルだったら貼り付ける場合です。

Const MAX_ROW = 50000   ' 処理対象の最大行数

Function is_blank_cell(c)
    is_blank_cell = IsEmpty(c) Or c.Value = ""
End Function


Sub copy_bb_be()

    look_col = 58           ' BF列
    copy_col = 54           ' BB列
    copy_row = 4
    paste_col = copy_col    ' BB列

    ' BB4:BE4 をコピー
    Range(Cells(copy_row, copy_col), Cells(copy_row, copy_col + 3)).Copy

    last_row = Cells(Rows.Count, look_col).End(xlUp).Row

    For r = 5 To last_row
        If Not is_blank_cell(Cells(r, look_col)) Then
            Cells(r, paste_col).Select
            ActiveSheet.Paste
        End If
        DoEvents
        If r > MAX_ROW Then     ' 念のため
            Exit For
        End If
    Next

End Sub
id:moon-fondu

うまくできました!ありがとうございました(^^;)

2016/03/30 23:58:05

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません