初心者です。
Sub Ksakujyo()
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
End Sub
これでは対象セルが空白だったら該当するセルが見つかりませんと出ます。
それで
If Range Is Nothing Then
"対象がありません"
End If
を間に入れますが多分rangeのところが違うのでしょうね?
それとこれは選択範囲を選択してないと全ての行で削除されるみたいです。
かなり調べましたがお手上げです。
どなたかご教授よろしくお願いします。
No.3ベストアンサー
- 回答日時:
考えてくださいとは言いましたが,追加の質問をしてくださいと言ったつもりはなかったのですけどね。
余計なことを書いてしまったようです。作成例:
sub macro3()
if selection.count = 1 then exit sub
on error resume next
selection.specialcells(xlcelltypeblanks).delete shift:=xlshiftup
exit sub
追加ご質問に書かれた新しいマクロについてのご相談は,ダメな状況についての具体的なご説明をもう一度キチンと添えて,別のご相談として投稿し解決してください。
No.2
- 回答日時:
specialcellsでselectionの範囲に指定の条件のセルが無いと,必ずエラーになります。
回避策1:別の方法で検査する
sub macro1()
if application.counta(selection) = selection.count then
msgbox "全て埋まっています"
exit sub
end if
selection.specialcells(xlcelltypeblanks).delete shift:=xlshiftup
end sub
回避策2:変数を使うことを憶える
sub macro2()
dim h as range
on error resume next
set h = selection.specialcells(xlcelltypeblanks)
if h is nothing then
msgbox "空のセルはありません"
exit sub
end if
h.delete shift:=xlshiftup
end sub
#別の注意
ご質問の本題ではありませんが,specialcellsは「範囲ではなく一個のセルを選んでいる」時に,動作があなたの意図しているのとは違います。
練習用に
sub macro3()
selection.specialcells(xlcelltypeblanks).select
end sub
とだけ書いたマクロを用意してよく実験して動作を確かめ,必要に応じてまた工夫を考えてみてください。
解答ありがとうございます。
specialcellsでselectionの範囲に指定の条件のセルが無いと,必ずエラーになります。
よくわかりました。
それで気が付いたのですが、これでは範囲指定していなくても全ての空白が削除になります。
それで見よう見まねでやってみました
Sub Ksakujyo()
Dim ObjRange As Range
On Error Resume Next
Set ObjRange = Application.InputBox("削除範囲を選択して下さい。", "印刷範囲", Type:=8)
On Error GoTo 0
If ObjRange Is Nothing Then
MsgBox "キャンセルされました。"
Exit Sub
End If
With ActiveSheet
If Application.CountA(Selection) = Selection.Count Then
MsgBox "全て埋まっています"
Exit Sub
End If
Selection.SpecialCells(xlCellTypeBlanks).Delete shift:=xlShiftUp
End With
End Sub
が、駄目です、これでも範囲指定していないところまで削除になります。
ご教授よろしくおねがいします。
No.1
- 回答日時:
どういう状態のワークシートをどのような結果に持っていきたいのか質問内容からうまく読み取れません。
もう少し詳しく説明をしてもらえますか。
また、If Range is Nothing Then~End Ifをどこに挟みこんだのかも明示してください。
出来ればコード実行前とコード実行後のワークシートの状態を手作業で再現してハードコピー取って貼り付けて頂けると分かりやすいです。
解答ありがとうございます。
単純に空白セルを削除したいです。
まずマクロの記録です
Sub Ksakujyo()
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
End Sub
Sub Ksakujyo()
Selection.SpecialCells(xlCellTypeBlanks).Select
If Selection.Areas Is nothig Then
MsgBox "対象が空白です"
End If
Selection.Delete Shift:=xlUp
End Sub
としますがRangeをSelection.Areas とかにしてもだめみたいですが
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) エクセル VBAで複数セル選択時エラーになる問題 3 2022/10/04 02:40
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルマクロでフォント変更
-
VBAで保存しないで閉じると空の...
-
Excel マクロの編集がグレーに...
-
エクセル関数>参照ファイル名...
-
エクセルで、「いいね」のよう...
-
WPSOffice_マクロの有効化について
-
Excelのマクロでボタンを押すと...
-
エクセル ボタンに設定したマク...
-
VBA Shapes コピーと名前
-
エクセルで空白行を削除する ...
-
【Excel VBA】マクロでExcel自...
-
【Excel】マクロの保存先について
-
別シートのマクロボタンをマク...
-
エクセルの、記録を終了したマ...
-
EXcelのマクロで相対パスでファ...
-
【VBA】条件に一致しない行を削...
-
エクセル;相対パスを絶対パスへ...
-
エクセルファイルを値でのみし...
-
エクセル ボタンを押すと色が変...
-
マクロの保存先、開いてるすべ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルマクロでフォント変更
-
Excel2003最終行の下にsum(A2:Ax)
-
EXCEL VBAで
-
VBAで保存しないで閉じると空の...
-
Excel マクロの編集がグレーに...
-
WPSOffice_マクロの有効化について
-
エクセル関数>参照ファイル名...
-
Excelのマクロでボタンを押すと...
-
エクセルで、「いいね」のよう...
-
エクセル マクロ名にブック名...
-
エクセル ボタンに設定したマク...
-
エクセルの、記録を終了したマ...
-
エクセルの表を複数枚印刷した...
-
複数のマクロボタンをまとめて...
-
【Excel VBA】マクロでExcel自...
-
エクセルファイルを値でのみし...
-
エクセル;相対パスを絶対パスへ...
-
マクロの保存先、開いてるすべ...
-
エクセルのマクロについて教え...
-
エクセルで空白行を削除する ...
おすすめ情報