お世話になります。同じような質問をさせていただいて間もないのですが、またしてもわからないことがありますので質問させていただきます。
エクセルにてコマンドボタン(SHEET1上に配置)をクリックすることで下記を実行するにはどうしたら良いですか。
(1);SHEET1のB12:I23に入力した値をSHEET2のB4:I15に貼り付けを行い、その後にSHEET1のB12:I23を空白に戻す。
(2);(1)を実行後、再度SHEET1のB12:I23に値を入力を行い、同じコマンドボタンをクリックすると、今度は(1)で貼り付けたSHEET2のB4:I15の下に改行して貼り付ける。ただし、前回貼り付けられたSHEET2のB列の最終行の下に空白のセルをつくりたくないです。
例えば、(1)を実行したときにSHEET1のB15の行までしか入力が無かった場合は、(2)を実行しSHEET2にコピペするのはB7の行からということです。
あとはこの作業のくりかえし
説明ベタで申し訳ありませんが、SHEET1で入力する際は、全ての行(B12:B23)が埋まるわけではないのです。
SHEET2はSHEET1に入力した値を記録として残しておくために設けるので空白セルを作りたくないのです。どうか宜しくお願いします。
No.1
- 回答日時:
シート1のB23以下にデータがなければ、
Dim r2 As Range
Set r2 = Worksheets("Sheet2").Range("B" & Rows.Count).End(xlUp)
If r2.Row < 4 Then Set r2 = Worksheets("Sheet2").Range("B4")
With Worksheets("Sheet1")
With .Range(.Range("B12"), .Cells(Rows.Count, 2).End(xlUp)).Resize(, 8)
.Copy r2
.ClearContents
End With
End With
Set r2 = Nothing
こんなとか?
No.2ベストアンサー
- 回答日時:
前回回答したmerlionXXです。
これでどうでしょう?
Sub test02()
Dim x As Long, xx As Long
Dim Rng As Range
x = Sheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Row
xx = Application.Max(Sheets("Sheet2").Range("B" & Rows.Count).End(xlUp).Row, 4)
If x < 12 Then
MsgBox "表B列にデータがありません。", vbCritical, "Σ( ̄ロ ̄lll)"
Exit Sub
End If
Set Rng = Sheets("Sheet1").Range("B12:I" & x)
Rng.Copy Sheets("Sheet2").Range("B" & xx + 2)
Rng.ClearContents
Set Rng = Nothing
End Sub
この回答への補足
ご回答いただいたプログラムを実行すると、先に貼り付けられた値と次に貼り付けられる値の間に1行空白の行が出来てしまうんですが、それを無くすにはどこを直せばよろしいですか?
大変申し訳ないですが、ご教授いただければ幸いです。
宜しくお願いします。
前回に引き続きのご回答ありがとうございます。
こちらのお願い以上のプログラムとは恐れ入ります。ただ・・・、仕事での使用を想定してますので、『"Σ( ̄ロ ̄lll)"』だけは・・・使えません↓
その点だけは変更させていただきます!ごめんなさい。
この度は本当にお世話になりました。ありがとうございました。
No.3
- 回答日時:
> 先に貼り付けられた値と次に貼り付けられる値の間に1行空白の行が出来てしまうんですが
入力した値を記録として残しておくためには1行あかないとどこまでが一回分なのかわからなくなりますが、それでもいいのなら
Sub test03()
Dim x As Long, xx As Long '変数宣言
Dim Rng As Range
x = Sheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Row 'Sheet1B列最終行取得しxとする
xx = Application.Max(Sheets("Sheet2").Range("B" & Rows.Count).End(xlUp).Row, 4) 'Sheet2B列最終行取得しxxとする
If x < 12 Then 'xが12未満なら
MsgBox "表B列にデータがありません。", vbCritical
Exit Sub 'マクロ中止
End If
Set Rng = Sheets("Sheet1").Range("B12:I" & x) 'Sheet1のデータ範囲をRngとする
Rng.Copy Sheets("Sheet2").Range("B" & xx + 1) 'コピーペースト(ここを修正しました。)
Rng.ClearContents 'Rngをクリア
Set Rng = Nothing '後処理
End Sub
それぞれのコードが何をしているのかコメントをつけておきました。
コメントブロック( ' )してありますのでこのままコピペしても大丈夫ですよ。
> 仕事での使用を想定してますので、『"Σ( ̄ロ ̄lll)"』だけは・・・使えません
はい、お好きにどうぞ。
ただ、わたしも会社で業務使用するコードをよく書きますが平気で使ってますけど・・・。(「遊び心」があって面白いなどと言われたりしてます。)
コメントまで載せていただき、ありがとうございます!!
感謝、感謝です。
コピペ時に1行空けてたのは、merlionXX様のご配慮からだったのですね。思慮浅く、反省です。
おかげさまで、この質問第2弾を持ちまして、問題解決できそうです。
本当にお世話になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Visual Basic(VBA) VBA 別sheetからの転記なのですが 2 2023/05/22 15:55
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) 別シートに順番で貼り付け 2 2023/04/13 19:53
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) VBA active sheetをPDF化して指定フォルダに保存 1 2022/07/07 11:27
- Visual Basic(VBA) VBAでvlookup関数から、別シート参照するやり方・・・ 2 2022/11/14 18:49
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで空白行を削除する ...
-
Excel VBAでオートフィルタで抽...
-
マクロで最終行を取得してコピ...
-
EXCEL VBAでA列にある空白行よ...
-
Excel97 指定した行だけマク...
-
VBA 複数列コンボボックス 値の...
-
エクセルで階層図を作る方法
-
エクセルのVBAについて
-
エクセルで特定の文字が入って...
-
エクセルで頭が一緒のものは横...
-
VBAで保存しないで閉じると空の...
-
WPSOffice_マクロの有効化について
-
マクロの保存先、開いてるすべ...
-
エクセル連番自動印刷について
-
Excel マクロの編集がグレーに...
-
エクセル マクロ写真帳に一括で...
-
Excelマクロをバックグラウンド...
-
エクセルの表を複数枚印刷した...
-
エクセルの、記録を終了したマ...
-
パソコンの買い替えとデータ移行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで空白行を削除する ...
-
数値に見えるものはすべて数値...
-
エクセルのデータがない行には...
-
マクロで最終行を取得してコピ...
-
【VBA】条件に一致しない行を削...
-
【VBA】条件に一致しない行を削...
-
エクセルのVBAで指定した行数の...
-
VB.net
-
Excel VBAでオートフィルタで抽...
-
マクロにて指定の文字間の文字...
-
Excel97 指定した行だけマク...
-
EXCEL VBAでA列にある空白行よ...
-
excel2021で実行できないマクロ...
-
Excel 別ブックから該当データ...
-
VBAでの重複データに色付け
-
Excel VBA オートフィルタの結...
-
エクセルで階層図を作る方法
-
VBAで特定の行と一つ上の行を削...
-
【至急】Excel 同一人物の情報...
-
Excelで、マウスで範囲を選択し...
おすすめ情報