
どなたかお力をお貸しください。
A8からJ8で適当な長さの行の範囲にデータが入力されています。
F列ならば、確実にデータが入っているため、F列のデータが最後まで入力されている行を調べ、
A8からJのその列までの範囲のデータを消そうとし、下記VBAを記載したのですが、
「400」とだけ書かれたエラーメッセージが表示され、動きませんでした。。。
どのように記載すればいいのか教えて頂けないでしょうか?
Dim ClearRow
ClearRow = ActiveSheet.Range("F8").End(xlDown).Row
ActiveSheet.Range(Cells(1, 8), Cells(ClearRow, 10)).Clear
No.2ベストアンサー
- 回答日時:
こんにちは。
再現性は取れなかったけれども、いくつかの点を示しておきます。
エラーは、たぶん、物理的(実際には存在しないのに、あたかもあるかのように扱った)エラーなのだと思います。
>A8からJのその列までの範囲のデータを消そうとし、下記VBAを記載したのですが、
まず、そういう内容ならコードは少し違います。
このようなスタイルのコードは、主に標準モジュールに置くことになります。
また、オブジェクト(Range, Cells)の前に「.」(ピリオド)があることに注意してください。
'//
Sub Test1Clear()
Dim ClearRow As Long
With ActiveSheet
ClearRow = .Range("F8").End(xlDown).Row '*
If ClearRow = Rows.Count Then Exit Sub 'F列に何もない時中止
.Range("A8", .Cells(ClearRow, "J")).Clear 'A8~Jの末尾
End With
End Sub
*場合によっては、以下が使えます。
ClearRow = .Cells(Rows.Count, "F").End(xlUp).Row
If ClearRow < 8 Then Exit Sub 'F列に何もない時
ご回答ありがとうございます。
そして大変申し訳ございません。
>ActiveSheet.Range(Cells(1, 8), Cells(ClearRow, 10)).Clear
にて、最初のセルの指定が間違っておりました。
上記記載ですと”A8”ではなく”H1”になっていました。。。
”G1”~”O1”まで結合していたため、”H1”が指定できずにエラーになっていたようです。。。
ActiveSheet.Range(Cells(8, 1), Cells(ClearRow, 10)).Clear
と記載しなおしたところ無事実行できました。
お手数をおかけして申し訳ございません。
もっと基本的なところを確認するように致します。
ご回答頂いたお二方、本当にありがとうございました。

No.1
- 回答日時:
>「400」とだけ書かれたエラーメッセージ
たとえば現在の環境ではできないことを命令したときに表示されますが、
シートの保護とかかけてませんか?
ご回答ありがとうございます。
>現在の環境ではできないことを命令したときに表示されます
なるほど。そういうエラーなのですね。
シートの保護はかけていません。念のため、対象のシート全てを選択した後に、「シートの保護」→「シートの保護解除」をやってから試したのですが、結果は変わりませんでした。
また、一応マクロのセキュリティも「全て有効にする」になっていることは確認しました。
もし他に思いつくようでしたら、教えて頂けると幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つ困っています
-
EXCElで特定の文字列の行をコピー
-
【マクロ】並び替えの範囲が、...
-
マクロの修正をお願いします
-
Excelで並び替え後にア行...
-
入力したデータのエラーチェッ...
-
エクセル関数について
-
複数のエクセルファイルのB列か...
-
特定の文字が無い場合、赤文字...
-
excel VBA のコードを編集したい
-
average関数の範囲指定について
-
矩形範囲の複数列を縦1列に並...
-
エクセルのマクロで別のシート...
-
Excel2007 オートフィルター上...
-
【Excel】指定した文字列の行を...
-
エクセルで、ある列の共通する...
-
Excel VBAについて
-
空白セルを非表示に
-
エクセル条件付書式で指定の時...
-
Excel:セルの移動をVBAで行い...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
【マクロ】並び替えの範囲が、...
-
Excelで並び替え後にア行...
-
エクセルで行の高さ及び列幅の...
-
【Excel VBA】指定した行の最大...
-
オートフィルタ後のデータから...
-
エクセルの時刻のカウントが出...
-
基準日以前のデータを範囲を指...
-
エクセル関数について
-
EXCELで日付を比べ3か月以内の...
-
文字列を比較し、相違するフォ...
-
急ぎ!色のついたセルを非表示...
-
プルダウンに【なし、平均、デ...
-
excel / ピポッド 日数を出したい
-
マクロで行の高さを設定したい
-
VBA 複数行の検索及び抽出
-
エクセル VBA 行間隔を飛ばした...
-
【Excel】数式の参照範囲を可変...
-
時間の重複チェック
-
EXCEL 最終行のデータを他のセ...
おすすめ情報