ここから本文です

選択されている結合のセル(複数行)の行を削除したい

このエントリーをはてなブックマークに追加

質問者

tomorrowz_anotherdayさん

2009/10/2617:11:14

選択されている結合のセル(複数行)の行を削除したい

EXCELのVBAについてですが、A列で"SH"という文字列を検索して、見つかったら(セルが縦に結合されている場合あり)、そこのセルの行を削除して上方向にシフトするように
作りたいのですが、どなたか教えて頂けないでしょうか。

Dim strSH As Range

Set strSH = Range("A1").CurrentRegion.Find(What:="SH")
If strSH Is Nothing Then
msgBox "検索に失敗しました"
Else
strSH.Select '検索して見つかったセルを選択(縦列で結合されている場合あり)
'上記で選択されている列を選択
Selection.Delete Shift:=xlUp '選択された箇所を削除し、上方向にシフト
End If

閲覧数:
1,432
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

hotosysさん

2009/10/2620:29:08

結合されている場合は2行とも削除する場合は
>Selection.Delete Shift:=xlUp '選択された箇所を削除し、上方向にシフト

Selection.EntireRow.Delete Shift:=xlUp '選択されたセル(結合されている場合は全て)を含む行を削除して上方向にシフト
に変更。

結合されている場合は結合を解除してSHの行だけを削除する場合は
>Selection.Delete Shift:=xlUp '選択された箇所を削除し、上方向にシフト

If Selection.MergeCells = True Then '選択されたセルが結合セルなら
Selection.MergeCells = False '結合解除
End If
Selection(1).EntireRow.Delete Shift:=xlUp '選択されたセルの左上のセルを含む行を削除して上方向にシフト
End If
に変更。
または、結合されていようといまいと結合を解除して選択セルが1個だろうと複数だろうと左上のセルを含む1行だけを解除するなら
Selection.MergeCells = False '結合解除(結合されているかどうかにかかわらず)
Selection(1).EntireRow.Delete Shift:=xlUp '選択されたセルの左上のセルを含む行を削除して上方向にシフト
に変更。

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル
  • このエントリーをはてなブックマークに追加
簡単にみんなで作るショート動画アプリ Yahoo!Chocotle for Android(無料)

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

ID/ニックネームを選択し、「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する