
VBAマクロ超初心者です。
添付画像のように作成をしたいのです。
やりたいことは
①決まっていない複数行を自分で行選択し、別シート(Sheet2)切り取り貼付けしたい。
(固定の行数ではないという意味です)
②Sheet1の大元ファイルで切り抜かれた空白行は削除して上に詰めたい。
思考錯誤しましたが、まずSheet1の複数行を一度に選択し切り取ることはできないようですので
1行ずつ切り取りSheet2へ貼付けをする。その後、Sheet1の空白行をつめる
考えたマクロ
①
Sub GATTAI ()
Selection.Cut
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
②
Sub kuuhakusakujyo
Range("A1:A100").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
①で1個ずつマクロ作業を行うと、別シートに1個ずつデータが作られてしまう。
添付画像のSheet2のように下にコピーされるようにしたい
可能かどうかわかりませんが、①と②の操作を連続するマクロコードはどうなりますか?
どなたかよろしくお願いします。

No.4ベストアンサー
- 回答日時:
>'rng.Delete '行を削除するは稼働しなかったです。
'rng.Delete と
rng.Delete の違い解りますか? (このようにしないと実行されません)
No.3
- 回答日時:
>同じブック内の、新しいシートのA1に貼り付けるとした場合の
Sub Example_02()
'事前に手作業で行を選択している事
Dim rng As Range, r As Range
For Each r In Selection.Rows
If rng Is Nothing Then
Set rng = r.EntireRow
Else
Set rng = Union(rng, r.EntireRow)
End If
Next
Worksheets.Add after:=Worksheets(Worksheets.Count)
rng.Copy ActiveSheet.Range("A1")
'rng.Delete '行を削除する
End Sub
少し変更
選択しているセルの行全体をコピペ
(切り取る場合(元の行を削除)は 'rng.Deleteを使う)
#2様も書かれていますが(事前の手作業)実行可能な条件がそろっているか等 エラー処理が必要だと思います
事前の手作業は少し面倒では? 選択に何だかの条件があるのであれば
条件に合わせた処理が可能だと思います
書き込みありがとうございます。(*- -)(*_ _)ペコリ
事前作業としては、
① 表の項目A列の番号ををVBAで検索し、対象行に色を付ける。
(※検索ウィンドウで「2,4,7(今回は)」と複数検索できる。)
② ①で色がついた行をCtrlキーで複数選択(ここが手作業)
本当の最終形はは①.②の作業+今回の質問の動作を一連作業にしたいのですが、とりあえず1個ずつわけて考えようとしました。
教えて頂いたコードを実行したところ
'rng.Delete '行を削除するは稼働しなかったです。
もう少し探ってみます。
ありがとうございます。
No.2
- 回答日時:
こんにちは
>添付画像のSheet2のように下にコピーされるようにしたい
まとめて処理することは可能ですが、不明点がいろいろあるので、勝手に以下のような想定をしました。
・対象はA:C列のみで良い(他の列にデータがあっても削除はされません)
・1行目はタイトル行で、選択されていなくても必ずコピーする
・A:C列以外で選択されているセルがあっても、そちらは無視する
・貼り付け先シートはSheet2とする(貼り付け前に一旦クリアします)
対象となるセル(1セルで良い、複数選択可)を選択した状態で以下を実行してください。
Sub Sample()
Dim rng As Range
If TypeName(Selection) <> "Range" Then
MsgBox "セルを選択してください"
Exit Sub
End If
Set rng = Intersect(Union(Range("A1"), Selection), Columns("A:C"))
Set rng = Intersect(rng.EntireRow, Columns("A:C"))
If rng.Cells.Count < 4 Then
MsgBox "タイトル以外も選択してください"
Exit Sub
End If
Worksheets("Sheet2").Cells.ClearContents
rng.Copy Worksheets("Sheet2").Range("A1")
Set rng = Intersect(rng, Rows(2).Resize(Rows.Count - 1))
rng.Delete (xlShiftUp)
End Sub
いつも書き込みありがとうございます。(^^)/
いつも尊敬させて頂いております。
VBAを環境ができれば本格的に学校で勉強したいなという気持ちになっておりその前に少しでも情報をいれたくなっております。
書いて頂いたコードは無事に動いています。さすがです!!
もう少しお勉強したいのでひとまずお礼のメッセージをお送りさせて頂きます。
No.1
- 回答日時:
こんにちは
選択した行を詰めて切り取り 貼り付けるコードの例です
元シートの複数行を選択してSheet2のA1(1行目から)貼り付けます
行を削除する場合は コメントしてあるコードを使用します
Sub Example_01()
'事前に手作業で行を選択している事
Dim rng As Range, r As Range
For Each r In Selection.Rows
If rng Is Nothing Then
Set rng = r
Else
Set rng = Union(rng, r)
End If
Next
rng.Copy Worksheets("Sheet2").Range("A1")
'rng.Delete '行を削除する
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Excel(エクセル) エクセルで保存時に全部のシートの最終行をコピーして数値で貼り付けたい 3 2023/08/14 15:49
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
一つのTeratermのマクロで複数...
-
Excel・Word リサーチ機能を無...
-
Excel_マクロ_現在開いているシ...
-
バッチファイルでEXCELを起動し...
-
ExcelのVBA。public変数の値が...
-
ExcelのVBAを使ってタイトル行...
-
メッセージボックスのOKボタ...
-
マクロ実行時、ユーザーフォー...
-
エクセルに張り付けた写真のフ...
-
アクセス マクロ クリップボ...
-
EXCEL VBAでマクロの最後でFind...
-
TERA TERMを隠す方法
-
WORD テキストボックスを全ペ...
-
EXCELのVBAマクロでパソコンを...
-
TeraTermマクロの文字列結合
-
エクセルで別のセルにあるふり...
-
マクロで待機時間を作りたい
-
accessで未入力の場合にメッセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
Excel_マクロ_現在開いているシ...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
ExcelVBAでPDFを閉じるソース
-
ダブルクリックで貼り付けた画...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
マクロ実行時、ユーザーフォー...
-
Excelのセル値に基づいて図形の...
-
特定文字のある行の前に空白行...
-
エクセルマクロでワードの一ペ...
-
エクセルで縦に並んだデータを...
-
Excel VBAからAccessマクロを実...
おすすめ情報
ご回答ありがとうございます。
rng.Copy Worksheets("Sheet2").Range("A1")の箇所がエラーになります。
同じブック内の、新しいシートのA1に貼り付けるとした場合の
Worksheets.Add(After:=Worksheets でしょうか?教えて頂けると幸いです。初心者ですみません。