
関数を使用して、sheet1からsheet2に必要なデータを抜き取りました。
sheet2のセルには関数が入っています。
sheet2の抽出データには1行単位(まれに2~3行続けて)空白が発生します。
この行を削除し、かつ上に詰めて表示をしたいのですが、下記の条件で実行可能でしょうか?
(例)
sheet1 ⇒ sheet2
A B C A B C
1 あ い う 1 あ い か
2 か 2 (空白行)
3 き く け 3 き く し
4 こ さ し 4 (空白行)
●2行目、4行目を削除し、且つ5行目以降に入力されている関数は削除したくない
●空白行削除のマクロは自動?(sheet1のデータを変更したら)で実行できるようにしたい
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Sheet1" Then
Dim 最終行 As Long
Dim 最終列 As Long
Dim 行 As Long
Dim 列 As Long
Dim 行位置 As String
With ThisWorkbook.Worksheets("Sheet2")
最終行 = .Cells.SpecialCells(xlCellTypeLastCell).Row
最終列 = .Cells.SpecialCells(xlCellTypeLastCell).Column
Do
行 = 行 + 1
For 列 = 1 To 最終列
If .Cells(行, 列) <> "" Then Exit For
Next
If 列 > 最終列 Then
行位置 = CStr(行) & ":" & CStr(行)
.Rows(行位置).Delete Shift:=xlUp
最終行 = 最終行 - 1
行 = 行 - 1
End If
Loop While 行 < 最終行
End With
End If
End Sub
ブックのイベントプロシージャとして上記を
コピペすれば動作すると思います。
但し、行が詰まってもセルの数式に指定された
行は変更されないので、注意が必要です。
これを変更するにはもう少し手を入れます。
No.3
- 回答日時:
>2行目、4行目を
Sheet2のことだよね
その行の全列が空白セルの場合に限りだよね。
ーー
質問の1-4行は、場合によっては5,6,7・・と増えたり減ったりするのか?
しっかり書いておくこと。
ーー
>5行目以降に入力されている関数は削除したくない
5行目以降は触らなくて良いのだね。
>自動?(sheet1のデータを変更したら)
1-4行目のデータ入力が完了したと言うキッカケを、プログラム側へ伝えることが必要だと思う。
だからコマンドボタン等シートに設けることが行われる。外にショートカットキーとか、高等なことは沢山あるが。
ボタンを使うにしても、質問の書き方のあいまいさ、からして、VBA、イベントプロシージャ作成の経験ないのでは。
ボタンをクリックしたイベントに
下の行から空白行かどうか判断して、空白行なら、その行を行削除すればよい。
例えば
下記は都度実行する形式。イベントプロシージャではない。
Sub test02()
For i = 4 To 1 Step -1
For j = 1 To 3
If Cells(i, j) = "" Then
Else
'データあり、行削除可能性消えたし
GoTo skp
End If
Next j
MsgBox i & "目行削除"
Rows(i).EntireRow.Delete
skp:
Next i
End Sub
ーーー
5行以下の関数で、1-4行の番地を参照している場合、行削除で5行目以下の関数式は、自動で番地が変わってくれると思うが、正確にはやってみないとわからない。
以上、この質問は不完全な点があり、確信のもてる答えは出来ないタイプ。
No.2
- 回答日時:
元々関数を使用していて、且つ、元の関数を残したいのでしたら、関数を使用して別のシートに結果を表示させても宜しいのではないでしょうか。
例えば、まず、Sheet2のD1セルに次の数式を入力してから、Sheet2のD1セルをコピーして、Sheet2のD2以下に貼り付けておきます。
=IF(COUNTIF(INDIRECT("R"&ROW()&"C1:R"&ROW()&"C"&COLUMN(),FALSE),"><")=0,"",ROW())
次に、例えばSheet3のA1セルに次の数式を入力します。
=IF(ROW()>COUNT(Sheet2!$D:$D),"",IF(INDEX(INDIRECT("Sheet2!A:C"),SMALL(Sheet2!$D:$D,ROW()),COLUMN())="","",INDEX(INDIRECT("Sheet2!A:C"),SMALL(Sheet2!$D:$D,ROW()),COLUMN())))
そして、Sheet3のA1セルをコピーして、Sheet3のA列~C列の各セルに貼り付けておきます。
そうすれば、Sheet2の関数を一切削除する事なく、Sheet2のA列~C列の空白行を詰めた表示を、Sheet3に表示する事が出来ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 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マクロ 決まっていない行を選択して別シートへ貼付け 4 2023/02/16 16:08
- Excel(エクセル) Excelについて質問です(ver2019) 1 2023/06/30 21:20
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Excel(エクセル) 【Excel質問】別シートにある複数の同型の表から、同じ行項目にある数字を集計する 4 2023/02/16 00:14
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- Excel(エクセル) Excelの関数で実現可能か知りたいです 5 2023/08/06 08:58
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
テレビやラジオに出たことがある人、いますか?
テレビやラジオに取材されたり、ゲスト出演したことある方いますか?
-
思い出すきっかけは 音楽?におい?景色?
記憶をふと思い出すきっかけは 音楽、におい、景色 どれですか?
-
VBA 空白セルを削除ではない方法で詰めるやり方
Visual Basic(VBA)
-
ある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?
Excel(エクセル)
-
Excel VBA 空白行をつめる
Excel(エクセル)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
結合されたセルをプルダウンの...
-
特定の文字がある行以外を削除...
-
Excel グラフのプロットからデ...
-
エクセルのセルに指定画像(.jpg...
-
エクセル マクロ オートフィ...
-
エクセル マクロで数値が変っ...
-
エクセルで特定の文字列が入っ...
-
電話番号の入力方式が違うデー...
-
エクセルマクロで偶数行(又は...
-
EXCELマクロを使い、空白行では...
-
excelのデータで色つき行の抽出...
-
連続データが入った行の一番右...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセルVBA 最終行を選んで並...
-
エクセル 時間の表示形式AM/PM...
-
A1に入力された文字列と同じ文...
-
アクティブになっている行をマ...
-
エクセル 上下で列幅を変えるには
-
Excelでカタカナ・ひらがな・英...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで特定の文字列が入っ...
-
特定の文字がある行以外を削除...
-
[EXCEL]ボタン押す→時刻が表に...
-
Excel グラフのプロットからデ...
-
エクセル マクロ オートフィ...
-
エクセル マクロで数値が変っ...
-
結合されたセルをプルダウンの...
-
Excelのフィルター後の一番上の...
-
excel 小さすぎて見えないセル...
-
エクセル 上下で列幅を変えるには
-
エクセルマクロで偶数行(又は...
-
Excel ウインドウ枠の固定をす...
-
EXCELで最後の行を固定
-
VBAで色の付いているセルの行削除
-
連続データが入った行の一番右...
-
エクセル 時間の表示形式AM/PM...
-
エクセルのセルに指定画像(.jpg...
-
エクセルVBA 最終行を選んで並...
-
アクティブになっている行をマ...
おすすめ情報