1つのシートに別シートから抽出した各誕生月別の表が12個あります(画像の左表)。
(画像では各月3行ずつになっていますが実際にはもっとあります)
E列、J列、O列には氏名が空白なら「blank」と表示していて、
「blank」が表示されている各月のセル(名前、誕生日、年齢)を削除して上方向にシフトしたものを別シートに貼り付けたいです(画像の右表)。
(空白セルを表示させずに1枚の用紙に印刷するためです。)
毎回各月の空白セルのみを選択して削除→上方向にシフトをするのは手間がかかるのでマクロでやりたいです。
以前「blank」と表示されていれば行ごと非表示にするというマクロは修正したことがあるのですが、そのときは1つのシートに1つの表だったため行単位でできましたが、今回は行単位で操作できないため、やり方が分かりません。
「条件を選択してジャンプ」→「空白セル」も試しましたが、別シートから抽出(値で貼り付け)しているためか空白に見えるセルでも空白セルの認識をしてくれませんでした。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
左をSheet1、右をSheet2 とした場合の例。
このサイトは字下げが出来ないので、見ずらいです。
Sub WK()
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Set Sh1 = Worksheets("Sheet1")
Set Sh2 = Worksheets("Sheet2")
Sh2.Cells.Clear 'Sheet2をクリア
For Cnt1 = 1 To 3
列 = (Cnt1 - 1) * 5 + 1
END1 = Sh1.Cells(65536, 列).End(xlUp).Row '最終行取得
行 = 0
For Cnt2 = 1 To END1
’E,J,Oがblankで無ければ、コピー実行
If Sh1.Cells(Cnt2, 列 + 4) <> "blank" Then
行 = 行 + 1
Sh1.Cells(Cnt2, 列).Copy
Sh2.Cells(行, 列).PasteSpecial (xlPasteAll)
Sh1.Cells(Cnt2, 列 + 1).Copy
Sh2.Cells(行, 列 + 1).PasteSpecial (xlPasteAll)
Sh1.Cells(Cnt2, 列 + 2).Copy
Sh2.Cells(行, 列 + 2).PasteSpecial (xlPasteAll)
Sh1.Cells(Cnt2, 列 + 3).Copy
Sh2.Cells(行, 列 + 3).PasteSpecial (xlPasteAll)
Sh1.Cells(Cnt2, 列 + 4).Copy
Sh2.Cells(行, 列 + 4).PasteSpecial (xlPasteAll)
End If
Next Cnt2
Next Cnt1
Application.StatusBar = False
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) エクセルでセルの日付を和暦表示設定にしたらおかしなことに? 3 2022/05/25 11:47
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2022/06/20 10:57
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
エクセル 文字数 多い順 並...
-
「B列が日曜の場合」C列に/...
-
エクセル(勝手に太字になる)
-
2つのエクセルのデータを同じよ...
-
エクセルの表から正の数、負の...
-
エクセルの並び変えで、空白セ...
-
Excelで半角の文字を含むセルを...
-
VBAで文字列を数値に変換したい
-
A列がない・・・A列が非表示に...
-
エクセル 同じ値を探して隣の...
-
Excel 別ファイルに自動的に反...
-
エクセルで一列おきに空白列を...
-
エクセル 時間帯の重複の有無
-
EXCELで 一桁の数値を二桁に
-
Excel、市から登録している住所...
-
Excel関数(通常はA列優先で、...
-
スマートな関数を教えて下さい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル 同じ値を探して隣の...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
Excelで半角の文字を含むセルを...
-
エクセルで文字が混じった数字...
-
エクセルの項目軸を左寄せにしたい
-
Excel、市から登録している住所...
-
エクセルで、列の空欄に隣の列...
-
エクセルの表から正の数、負の...
-
エクセルの並び変えで、空白セ...
-
VBAで文字列を数値に変換したい
-
A列がない・・・A列が非表示に...
-
文字列に数字を含むセルを調べたい
-
50人を数回、グループ分けする...
おすすめ情報