エクセルのマクロについての質問です。例えばA列1行目に”XXX”、11行目に”YYY”、15行目に”ZZZ”が入力されているとします。行間は空白です。

このときマクロでその空白行を1から10行目まで”XXX”、11から14行目まで”YYY”、15から終了記号”例えば@@@”まで”ZZZ”という様なコピーはできないでしょうか?
空白行の間は一つ上の行をコピーし、入力がある場合はその行より下の空行は新たな入力がコピーされる感じです。

回答の条件
  • 1人2回まで
  • 登録:2008/07/30 18:35:20
  • 終了:2008/08/06 18:40:02

回答(2件)

id:kopj No.1

kopj回答回数123ベストアンサー獲得回数62008/07/30 18:54:21

ポイント60pt

ひとつのセルだけなら

Sub test()

変更する文字 = Cells(1, 1)
最後の文字 = "@@@"

For ループカウント = 1 To 65536
    If Cells(ループカウント, 1) = 最後の文字 Then Exit For
    If Cells(ループカウント, 1) = "" Then
         Cells(ループカウント, 1) = 変更する文字
    Else
         変更する文字 = Cells(ループカウント, 1)
    End If
Next ループカウント
End Sub

行全体なら

Sub test()

最後の文字 = "@@@"

For ループカウント = 2 To 65536
    If Cells(ループカウント, 1) = 最後の文字 Then Exit For
    If Cells(ループカウント, 1) = "" Then
        Rows(ループカウント - 1).Copy
        ActiveSheet.Paste Destination:=Rows(ループカウント)
    End If
Next ループカウント
End Sub
id:neuromancer_sho No.2

neuromancer_sho回答回数28ベストアンサー獲得回数32008/08/06 01:34:20

ポイント10pt

範囲を選択してから実行

Sub copysub()
    Dim c As Range
    For Each c In Selection
        If c = "" Then
            c = savevalue
        Else
            savevalue = c
        End If
    Next
End Sub
  • id:neuromancer_sho
    ちなみに縦1列でも使えるし、横1行でも使えます。
    2次元範囲でやるとちょっと予想と違う結果になります。
  • id:WATANABE
    ありがとうございました。
    希望以上の琴が手軽にできて大変助かります

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

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

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

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