ここから本文です

解決済みのQ&A

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

tomorrowz_anotherdayさん

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

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

  • 質問日時:
    2009/10/26 17:11:14
  • 解決日時:
    2009/10/28 16:57:46
  • 閲覧数:
    1,335
    回答数:
    1
  • お礼:
    知恵コイン
    100枚

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

hotosysさん

結合されている場合は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 '選択されたセルの左上のセルを含む行を削除して上方向にシフト
に変更。

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

総合Q&Aランキング

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

知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

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