
No.6ベストアンサー
- 回答日時:
> 1~5行目にカーソルがあった場合は、削除できませんというメッセージボックスをだしたいなと思っています。
No1-5 merlionXXです。
これでどうですか?
Sub test02()
If ActiveCell.Row > 5 Then
Range("A1:M1").Offset(ActiveCell.Row - 1).Delete Shift:=xlUp
Else
MsgBox "1~5行目は削除しちゃだめ!!", , " Σ( ̄ロ ̄lll) "
End If
End Sub
MsgBoxの顔文字に笑ってしまいました^^*
業務用じゃなければ顔文字までいれてそのまま使用したいくらいです(笑)
ありがとうございました!助かりました。
No.7
- 回答日時:
#4の回答者です。
>1~5行目にカーソルがあった場合は、削除できませんというメッセージボックスをだしたいなと思っています。
すでに回答が出ていますが、一行を足せば、可能です。
'-------------------------------------------
Sub Test1b()
If ActiveCell.Row < 6 Then MsgBox "そこは削除できません", 48: Exit Sub
With ActiveCell.EntireRow.Resize(, 13)
If Not Intersect(.Cells, ActiveCell) Is Nothing Then
.Delete
End If
End With
End Sub
'-------------------------------------------
No.4
- 回答日時:
こんにちは。
>.Deleteのところで引っかかっているようです。
どのようにマクロを置こうとも、このぐらいの初歩的な内容で、マクロコード自体にエラーになる原因はないはずです。
削除するマクロの部分の考え方は、#2さんのコードと同じですが、特殊な設定やシートのプロテクトをするなどしなければ、#2さんのコードがエラーになるはずはありませんし、こちらも同様です。
If Application.CountA(.Cells) > 0 Then これは、データがひとつ以上あれば、という条件です。まったく空欄を削除しても、行の繰上になるだけだと思います。不要なら If ~ End If の削除すればよいです。
If Not Intersect(.Cells, ActiveCell) Is Nothing Then というのは、ActiveCell(セルひとつ--二つあっても、白く反転しているセル)が、A~L(M)の範囲の行に、セルがあれば、それを削除するという内容ですから、例えば、セルが、Z列にあっても、マクロで削除しません。
エラーがありましたら、エラーの内容を表示してください。おそらく、以下のように直しても、現状のままではうまく行かないとは思いますが、提示だけしておきます。
フリーの掲示板で利用する場合は、もう少し提供されたマクロを、ご自身で訂正できるぐらいのVBAの知識はあったほうが良いかと思います。L列がM列になっただけなら、列を1増やすだけで良いと思います。
#2様のなら、
Cells(ActiveCell.Row, 1).Resize(1, 13).Delete
'-------------------------------------------
Sub Test1a()
With ActiveCell.EntireRow.Resize(, 13)
If Not Intersect(.Cells, ActiveCell) Is Nothing Then
.Delete
End If
End With
End Sub
----------------------------------------
この回答への補足
Wendy02様
記述いただいた内容でできました!
一つ問題が起きてしまったのですが、1行目~5行目までに説明書きや列のタイトル名などあり、この行に関しては削除実行できないようにしたいのですが可能でしょうか?
6行目以降にも数式があり、削除するために1度シートの保護を解除してしまうため、シート保護の機能を使用することはできず、1~5行目にカーソルがあった場合は、削除できませんというメッセージボックスをだしたいなと思っています。
私自身も調べつつ試してみているのですが、失敗してしまいます。
すみませんが、もしよろしければ教えてください。
ありがとうございます!
目下勉強中です、1列増えたのでどこを修正したらいいのかは調べてみてわかったのですが、ご指摘いただきありがとうございました。
突然このようなVBAを必要とするものを作らなければならず、奮闘中です。Wendy02さんにはとても助けられています。ありがとうございます。
No.3
- 回答日時:
こんばんは。
以下のマクロは、ActiveCell が、A列~L列上にあって、なおかつ、セルにデータがある場合に、A列~L列まで削除を行う、ということです。
それぞれ、試してみるとよいと思います。
'-------------------------------------------
Sub Test1()
With ActiveCell.EntireRow.Resize(, 12)
If Not Intersect(.Cells, ActiveCell) Is Nothing Then
If Application.CountA(.Cells) > 0 Then
.Delete ''データの消去は、.ClearContents
End If
End If
End With
End Sub
'-------------------------------------------
この回答への補足
ありがとうございます、A~M(LではなくMでした、すみません)のデータだけでなく行ごと削除したいと思ってます。
記述いただいた内容を実行してみたところ、できませんでした。
.Deleteのところで引っかかっているようです。
A~M列にはすべてデータが入っているわけではなく、空欄でも削除できるようにしたいのですが、可能でしょうか?
No.2
- 回答日時:
データを消すだけなら
Sub test_Clear()
Cells(ActiveCell.Row, 1).Resize(1, 12).ClearContents
End Sub
セルを削除して上へ詰める
Sub test_Delete()
Cells(ActiveCell.Row, 1).Resize(1, 12).Delete
End Sub
参考まで
この回答への補足
>セルを削除して上へ詰める
やりたいのはこちらでしたので、実行してみたのですがエラーになってしまいました。
私のやり方が間違っているのかもしれないのですが、、
No.1
- 回答日時:
削除とは、セルを削除するのですか?それともセルに入力されたデータを消去するのでしょうか?
データの消去だとして回答します。
Sub test01()
Dim myRng As Range
Set myRng = Range("A1:L1")
myRng.Offset(ActiveCell.Row - 1).ClearContents
End Sub
データのみならず書式まで消去させるなら
ClearContentsをClearに変えてください。
もしほんとにセルを削除して下から上に詰めるなら
ClearContentsをDeleteに変えてください。
この回答への補足
ありがとうございます、セルを削除して上に詰めたいと思っています。
すみません、A列~L列でではなくA列~M列でした。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Vba エクセルマクロで、 A列の、A1セルからA10セルに空白のある行を削除する、のは Range 3 2022/11/05 17:44
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) vba エクセルマクロのことで教えてください。 A1 123 A2 234 A3 345 A4 45 1 2023/01/28 21:21
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Excel(エクセル) VBA 指定した列にある日時データから時間を削除する方法について 4 2022/04/14 11:17
- その他(Microsoft Office) 【VBA】フォルダ内のファイル全てに対して、セルA1の文字列から「;」を削除して上書き保存する方法 4 2022/04/24 10:59
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Excel(エクセル) VBA 文字列変換と指定した列にある日時データから時間を削除する方法について 2 2022/04/14 15:23
このQ&Aを見た人はこんなQ&Aも見ています
-
アクティブになっている行をマクロで削除したい
Excel(エクセル)
-
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
【Excel】色が付いているセルの値をクリアしたい
Excel(エクセル)
-
-
4
マクロ最終行挿入
Excel(エクセル)
-
5
エクセルVBA
Excel(エクセル)
-
6
エクセルで特定の行だけ行削除、行挿入できないようにロックをかけるには
Excel(エクセル)
-
7
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
8
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
Excelのフィルター後の一番上の...
-
エクセル 上下で列幅を変えるには
-
特定の文字がある行以外を削除...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセルで特定の文字列が入っ...
-
エクセル マクロ オートフィ...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
excel 小さすぎて見えないセル...
-
エクセルのセルに指定画像(.jpg...
-
エクセルVBA:データ端に画...
-
EXCELで最後の行を固定
-
エクセル 時間の表示形式AM/PM...
-
excel 同じ番号のデーターを横...
-
VBAで色の付いているセルの行削除
-
結合されたセルをプルダウンの...
-
Excelで非表示のセルをとばして...
-
EXCELのVBAで空白列を削除して...
-
エクセル2016で時間を入力して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
特定の文字がある行以外を削除...
-
エクセルで特定の文字列が入っ...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロで数値が変っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
excel 小さすぎて見えないセル...
-
エクセル マクロ オートフィ...
-
Excel グラフのプロットからデ...
-
Excelのフィルター後の一番上の...
-
結合されたセルをプルダウンの...
-
EXCELで最後の行を固定
-
excelのデータで色つき行の抽出...
-
アクティブになっている行をマ...
-
連続データが入った行の一番右...
-
Excel ウインドウ枠の固定をす...
-
エクセルのセルに指定画像(.jpg...
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
Excelでカタカナ・ひらがな・英...
おすすめ情報