Excel VBA 質問スレッド №1777 (未解決)

隣の列のデータの切れ目までオートフィル

投稿者 : もり     投稿日時 : 2024/02/14(Wed) 21:46:27     OS : 未指定     EXCEL : 未指定
データの塊が一つの時は、隣の列の最下行まで指定してオートフィルする方法は分かるのですが、
例のように塊が2つ以上ある状態で、B1からB4まで冬を、B7〜B9まで春を、オートフィルする方法が知りたいです。
出すデータによってこの塊の長さは異なるので、セル番地での指定ができません。
いいアイデアがありましたらご教示くださいませ。


A B
1 1/1 冬
2 1/2
3 1/3
4 1/4
5
6
7 4/1 春
8 4/2
9 4/3
10

スポンサーリンク
[返信 1] Re : 隣の列のデータの切れ目までオートフィル
投稿者 : 気分     投稿日時 : 2024/02/14(Wed) 22:44:06
>塊が2つ以上ある状態

塊分(例ではB1)セルの右下角をWクリックするしかないと思います

[返信 2] Re : 隣の列のデータの切れ目までオートフィル
投稿者 : 気分     投稿日時 : 2024/02/14(Wed) 22:46:38
例ではB1とB7

[返信 3] Re : 隣の列のデータの切れ目までオートフィル
投稿者 : さんこう     投稿日時 : 2024/02/15(Thu) 09:27:30
>出すデータによってこの塊の長さは異なるので、セル番地での指定ができません。

参考になれば。

Sub Test()
    r = Cells(Rows.Count, "A").End(xlUp).Row
    Do While r > 1
        r0 = Cells(r, "A").End(xlUp).Row
        MsgBox "A" & r0 & ":A" & r
        r = Cells(r0, "A").End(xlUp).Row
    Loop
End Sub

[返信 4] Re : 隣の列のデータの切れ目までオートフィル
投稿者 : ピロリ     投稿日時 : 2024/02/15(Thu) 21:08:17
こういうことですか?

Sub Sample()
    Dim LastRow As Long, R1 As Long, R2 As Long
    
    R1 = 1: LastRow = Cells(Rows.Count, "A").End(xlUp).Row
    Do While R1 <= LastRow
        If Cells(R1, "A") = "" Then R1 = Cells(R1, "A").End(xlDown).Row
        If Cells(R1 + 1, "A") <> "" Then
            R2 = Cells(R1, "A").End(xlDown).Row
            If LastRow < R2 Then Exit Do
            Cells(R1, "B").AutoFill Range(Cells(R1, "B"), Cells(R2, "B"))
            R1 = R2 + 1
        Else
            R1 = R1 + 1
        End If
    Loop
End Sub

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2026-04-05 13:41:40 )
タイトルとURLをコピーしました