[[20221205160133]] 『最終行の下へ複数行追加』(師走) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『最終行の下へ複数行追加』(師走)

B列最終行の下のセルへ3行分 "追加行1" "追加行2" "追加行3" と入力したいのですが下記マクロでは、"追加行1" しかできません。"追加行1" の下へ
"追加行2"その下へ"追加行3"まで入れる方法を教えてください。

Sub test1()

    n = Cells(Rows.Count, "B").End(xlUp).Row + 1
    Range("B" & n).Select
    ActiveCell.FormulaR1C1 = "追加行1"       
End Sub

B列
_____
りんご
みかん
ばなな
追加行1
追加行2
追加行3

< 使用 Excel:Office365、使用 OS:Windows10 >


下記追加でできました。
Range("B" & n).AutoFill Range("B" & n).Resize(3)
(師走) 2022/12/05(月) 16:24:03

自己解決したようですが、何点か。

■1
VBAの世界では基本的にシートやセルなど(オブジェクトといいます)をきちんと明示すれば、いちいちアクティブにしたり選択したりする必要はありません。
よって「下記追加でできました。」とのことならば、↓のように記述してもokです。

    Sub 研究用1()
        Stop 'ブレークポイントの代わり
        With Cells(Rows.Count, "B").End(xlUp).Offset(1)
            .Value = "追加行1"
            .AutoFill .Resize(3)
        End With
    End Sub

■2
今回は、フィルコピーで対処できたようですが、たとえば「きゅうり、すいか、なす、メロン」を追加したいといった場合は同じ方法は使えません。
そのような場合でも、たとえば↓のようにすれば対処できます。

    Sub 研究用2()
        Dim 配列 As Variant
        配列 = Split("きゅうり、すいか、なす、メロン", "、")

        Stop 'ブレークポイントの代わり
        Cells(Rows.Count, "B").End(xlUp).Offset(1).Resize(UBound(配列) + 1).Value = _
        WorksheetFunction.Transpose(配列)
    End Sub

(もこな2) 2022/12/05(月) 21:20:17


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.