
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
エクセルで特定の文字列が入っ...
-
【Excel関数】UNIQUE関数で"0"...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセル 上下で列幅を変えるには
-
エクセルのセルに指定画像(.jpg...
-
エクセルVBA 最終行を選んで並...
-
excel 小さすぎて見えないセル...
-
エクセル マクロで数値が変っ...
-
結合されたセルをプルダウンの...
-
Excel グラフのプロットからデ...
-
Excel:列中に特定の文字列を表...
-
VBAで色の付いているセルの行削除
-
excelのデータで色つき行の抽出...
-
完全一致したら代入するマクロ...
-
excel 同じ番号のデーターを横...
-
A1に入力された文字列と同じ文...
-
エクセル マクロ オートフィ...
-
アクティブになっている行をマ...
-
AのセルとB行を比較して、一致...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで特定の文字列が入っ...
-
Excelのフィルター後の一番上の...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロ オートフィ...
-
エクセル マクロで数値が変っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
結合されたセルをプルダウンの...
-
Excel グラフのプロットからデ...
-
excelのデータで色つき行の抽出...
-
excel 小さすぎて見えないセル...
-
A1に入力された文字列と同じ文...
-
EXCELで最後の行を固定
-
Excel ウインドウ枠の固定をす...
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
連続データが入った行の一番右...
-
エクセル2016で時間を入力して...
-
チェックボックスをクリックし...
おすすめ情報