[[20181010163835]] 『行のコピー貼り付け』(まちろん) ページの最後に飛ぶ

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

 

『行のコピー貼り付け』(まちろん)

 
 コピーボタンを押したら、ボタンのある行のデータ一行をコピーして
 表の最終行に追加貼り付けしたいです。

 ?@コピーボタン  あいうえお   かきくけこ
 ?Aコピーボタン  さしすせそ   たちつてと
 ?Bコピーボタン  なにぬねの   はひふへほ
⇒?Cここに追加

例えば、?@あいうえお かきくけこの行のコピーボタンを押したら
?Cに貼り付けされるようにしたいです。
1つ1つのボタンにコピーする行を指定せずにできる方法はありますでしょうか?

< 使用 Excel:Excel2007、使用 OS:Windows8 >


Sub main()
    Dim p As Object, r1 As Range, r2 As Range
    For Each p In ActiveSheet.Shapes
        If ActiveSheet.Shapes(Application.Caller).Name = p.Name Then
            Set r1 = Range(p.TopLeftCell.Address).EntireRow: Exit For
        End If
    Next p
    Set r2 = r1
    Do
        If WorksheetFunction.CountA(r2) = 0 Then Exit Do
        Set r2 = r2.Offset(1)
    Loop
    r1.Copy r2
End Sub
(mm) 2018/10/10(水) 17:22

シートのレイアウトがよく判りませんが、A列にボタンを置いて、データ自体はB列以降、という感じでしょうか?

まず、フォームコントロールのボタンを1つ貼ります。 ボタンに連携するマクロ名は何でも良いですが、デフォルトの「ボタン1_Click」とし、「新規作成」ボタンを押してください。 すると、マクロの編集画面になるので、以下を貼ります。

 Sub ボタン1_Click()
    With ActiveSheet
        .Buttons(Application.Caller).TopLeftCell.EntireRow.Copy
        .Cells(.Rows.Count, "B").End(xlUp).Offset(1, -1).PasteSpecial
    End With
    Application.CutCopyMode = False
 End Sub

貼ったボタンを押してみて、行が末尾にコピーされるようならば、ボタンを他の行にもコピーしてみてください。
(???) 2018/10/10(水) 17:27


または、コピーするボタン自体もコピー先に貼って良いなら、マクロは以下。
 Sub ボタン1_Click()
    With ActiveSheet
        .Buttons(Application.Caller).TopLeftCell.EntireRow.Copy .Cells(.Rows.Count, "B").End(xlUp).Offset(1, -1)
    End With
    Application.CutCopyMode = False
 End Sub
(???) 2018/10/10(水) 17:31

コメント返信:

[ 一覧(最新更新順) ]


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