質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

552閲覧

ExcelVBAで任意の行を別シートの最下行移動するセルボタン作成

matuemon

総合スコア4

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2022/11/26 19:24

前提

ExcelVBAで指定した一行を別のシートの一番下の行に移動するボタンをエクセルのセルに設定するマクロを作成したいです。

実現したいこと

・任意の表を作った後に該当するセル(Sheet1のH5~最後の行)にマクロボタンの機能を持たせる。
・マクロボタンの機能は、ダブルクリックしたセルの行の指定範囲のセル(C~G)をコピーする。
・コピーしたセルの内容を別シート(Sheet2)の予め作った表の最終行の下に追加でペーストする。

該当のソースコード

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim PushCell As Long

PushCell = sheet(1). Activecell. Column

If Not (Range(H5).End(lastRowNum)) Then Exit Sub

Else
Range((PushCell)Row(“3:7”)).Copy
Destination := CopyOut

End Sub

‘以上セルのマクロボタン化及び機能

Sub SelectUnderUsedRange2()
Dim iRow
Dim iCol
Dim r As Range
Dim CopyOut As Range

Set r = Sheet(2).UsedRange iRow = r.Rows.Count + r.Row iCol = r.Column CopyOut = Cells(iRow, iCol).Select

End Sub

‘以上貼り付け先シート選択

Sub SelectUnderRow()

Dim lastRowNum As Long

lastRowNum = Cells(Rows.Count, 3).End(xlUp).ROW
'以上最終行番号を取得

End Sub
‘以上ボタン化指定最終範囲選択

試したこと

実験シートを作成して実行してみましたが、何も起きませんでした。

補足情報(FW/ツールのバージョンなど)

Excel 2019を使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2022/11/27 03:55

コードの一部のみコードブロックになってます。コード全体がコードブロックに入るように修正してください。 また、コードは実際のものをコピーしてください。現在のコードだとコンパイルエラーで実行すらできません。
guest

回答1

0

ベストアンサー

ご希望の処理のサンプルコードです。

vba

1Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 2 'ダブルクリックしたセルがH列以外または、5行目より上なら処理しない 3 If Target.Column <> 8 Or Target.Row < 5 Then Exit Sub 4 5 'Sheet2の表のC列の最終行を取得 6 Dim lastRow As Range 7 Set lastRow = Worksheets("Sheet2").Cells(Rows.Count, 3).End(xlUp) 8 9 'ダブルクリックした行のC列からG列をSheet2の表の最終行の次行にコピー 10 Range(Cells(Target.Row, "C"), Cells(Target.Row, "G")).Copy Destination:=lastRow.Offset(1) 11 12 'ダブルクリックの既定の処理を停止 13 Cancel = True 14End Sub

Target引数には、ダブルクリックしたセルが格納されています。

コピー先の表の最終行の取得は定番の方法です。

コードの意味をコメントにしていますので、それをもとに研究してください。

投稿2022/11/27 07:48

hatena19

総合スコア33699

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matuemon

2022/11/27 09:41

ありがとうございます。これを元にもっと勉強します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問