
こんにちは。
エクセル2002を使用しています。
VBAで、開始行を入力させ開始行+38行を削除するような
マクロを作りました。
Sub 削除()
Dim Sline As Integer, Eline As Integer
Dim S As String
'開始行の入力
Sline = Application.InputBox(prompt:="削除開始 行を入力して下さい。",Type:=1)
'開始行が入力された場合
If Sline <> False Then
'開始行のチェック
'終了削除行のセット
Eline = Sline + 37
'削除確認メッセージ
S = MsgBox(Sline & "~" & Eline & _
"行を削除します。", _
vbOKCancel + vbExclamation, _
"行削除確認")
If S = vbOK Then
Rows(Sline & ":" & Eline).Select
Selection.Delete Shift:=xlUp
End If
End If
End Sub
これを実行すると
Selection.Delete Shift:=xlUp のところで、
実行時エラー 1004
RangeクラスのDeleteメソッドが失敗しました。
でとまってしまいます。
どなたか対応策を教えてください。
よろしくおねがいいたします。
No.4
- 回答日時:
なんか、他の方に使ってもらうことを考慮したか、複雑にしてありますが、骨子の
(1)
Sub test02()
s = InputBox("削除開始行=")
Rows(s & ":" & s + 3).Delete
End Sub
は私もテストしたが、動きました。
(2)
Sub test02()
s = Application.InputBox(prompt:="削除開始行を入力して下さい。", Type:=1)
Rows(s & ":" & s + 3).Delete
End Sub
も動きました。
(3)
Sub test02()
s = Application.InputBox(prompt:="削除開始行を入力して下さい。", Type:=1)
Rows(s & ":" & s + 3).Select
Selection.Delete Shift:=xlUp
End Sub
も動きました。
ロジックの問題ではないですね。
imogasiさん、こんにちは。
そうなんです、他の人間に頼まれてこのようなこと
をしております。(初心者の私に頼むほど超初心者からの
依頼です)
いろいろ試していただいてありがとうございました。
No.3
- 回答日時:
こんにちは。
Excel97で試しましたが、少なくともExcel97ではシート保護の場合に出るメッセージとは異なるようです。
expression を省略した場合に、起こる事が多い現象だと思っています。
おまじないで削除処理の前に ActiveCell.Activate を入れてみてはどうでしょうか?
例は下記の点も手を加えてます。
1.Integerの範囲を超えるケースを想定し、変数 Sline と Eline を Long に。
2.MsgBoxの戻り値はInteger型なので、変数 S を Integer に。
3.65536行を超えないように処理を追加。
Sub 削除()
Dim Sline As Long, Eline As Long, S As Integer
Sline = Application.InputBox("削除開始行を入力して下さい。", Type:=1)
'Falseなら抜ける
If Sline = False Then Exit Sub
'最大行を超えたら最大行まで
if Sline > 65536 Then
MsgBox "最大行を超えています",vbOKOnly,"終了" : Exit Sub
End If
Eline = Sline + 37
If Eline > 65536 Then Eline = 65536
S = MsgBox(Sline & "~" & Eline & "行を削除します。", _
vbOKCancel + vbExclamation, "行削除確認")
'OK以外なら抜ける
If S <> vbOK Then Exit Sub
'おまじない
ActiveCell.Activate
Rows(Sline & ":" & Eline).Delete Shift:=xlUp
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) VBA 行削除した連番 4 2023/06/27 16:00
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
このQ&Aを見た人はこんなQ&Aも見ています
-
シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要
Visual Basic(VBA)
-
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
-
4
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
5
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
8
非表示の列をすべて削除するマクロ
Excel(エクセル)
-
9
初歩的な事だと思います。 Sub または Function が定義されていません。
Visual Basic(VBA)
-
10
Excel VBAでブックを閉じる時、複数のブックが開いていると・・・。
Excel(エクセル)
-
11
ExcelでVBAを使用した際に、『パス名が無効です』とエラーになります。
Excel(エクセル)
-
12
Application.Runエラー(1004)
Excel(エクセル)
-
13
Refreshで落ちる
Visual Basic(VBA)
-
14
特定の名前のオートシェイプの有無を知りたい(エクセルVBA)
Excel(エクセル)
-
15
特定のセルが空白だったら、その行を非表示にしたい。。。
Visual Basic(VBA)
-
16
cellsで特定の離れた範囲を選択する方法は?
Visual Basic(VBA)
-
17
IIF関数の使い方
Visual Basic(VBA)
-
18
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
19
VBAで先月、先々月を求める方法
Visual Basic(VBA)
-
20
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Youtubeの書き起こしの機能につ...
-
Babylonの削除について
-
2度と連絡とらないとお互い納得...
-
Yahooフリマってどれくらい時間...
-
バニーガールの質問が削除され...
-
告白してフラれた相手の連絡先...
-
指定した文字があった場合、そ...
-
Cookieを削除 他サイトでの自動...
-
VBA:Openステートメントで開い...
-
エクセル ユーザー設定リスト...
-
お気に入りの削除の方法について
-
マイクロソフトのOffice2019年...
-
Googleの自動翻訳の削除の仕方...
-
Windows11に残されたWindows10...
-
Adobe AcrobatのPDFのページ削除
-
mp3の埋め込み画像の削除ができ...
-
教えて!gooで回答を間違えたと...
-
BA狙いで
-
MS Natural Input 2002を削除、...
-
アメーバ ピグ ピグともが勝...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Yahooフリマってどれくらい時間...
-
指定した文字があった場合、そ...
-
告白してフラれた相手の連絡先...
-
VBA:Openステートメントで開い...
-
mp3の埋め込み画像の削除ができ...
-
バッチファイルを使用したsql@p...
-
喧嘩をしてLINE削除され、 また...
-
今日の日付が過ぎたらその行を...
-
エクセルで住所の混在する「丁...
-
Windows11に残されたWindows10...
-
もう関わりたくない人がいたらL...
-
【エクセル】セル内の右側のみ...
-
アクセスにおいて間違って削除...
-
VBA IF文でORを使ったとき後ろ...
-
エクセルVBAで行削除時にエラー...
-
ポケモンGOについて質問したい...
-
エクセルで下の空白行を削除したい
-
(Access)複数条件の重複デー...
-
投稿した書き込みの削除の方法...
-
メーリングリストから特定の人...
おすすめ情報