
こんにちは。
エクセル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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【教えて!goo ウォッチ 人気記事】風水師直伝!住まいに幸運を呼び込む三つのポイント
記事を読む>>
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
VBAで行削除のできない場合がある
Excel(エクセル)
-
6
EXCEL あるセルに数字が入力されれば既存マクロ実行させたい
Excel(エクセル)
-
7
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
8
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
9
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
10
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
11
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
12
アクティブになっている行をマクロで削除したい
Excel(エクセル)
-
13
エクセルで、セルに値を入力して確定した時(フォーカスが隣に移動した時)に発生するイベントを教えてください!
Excel(エクセル)
-
14
別のシートから値を取得するとき
Visual Basic(VBA)
-
15
VBA 数式を残して値をクリアについて
Excel(エクセル)
-
16
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
17
エクセルVBAのDeleteキーによるエラー
Excel(エクセル)
-
18
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
19
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
20
VBAで特定のセルに画像があれば削除、なければ貼り付けを行いたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ここの削除基準っておかしくな...
-
ウェブページへのアクセス不可 ...
-
【エクセル】セル内の右側のみ...
-
エクセルで該当する条件のデー...
-
Microsoft Access 2016でエラー...
-
喧嘩をしてLINE削除され、 また...
-
バッチファイルを使用したsql@p...
-
【ExcelVBA】指定のシート以外...
-
インスタグラムのギャラリーの...
-
もう関わりたくない人がいたらL...
-
エクセルVBAで行削除時にエラー...
-
至急LINEアカウント
-
エクセルで住所の混在する「丁...
-
告白してフラれた相手の連絡先...
-
データの削除件数が知りたいです
-
VBA:Openステートメントで開い...
-
フェイスブック 検索履歴削除
-
Windows media playerでcd-rwに...
-
ヤフー知恵袋は違反通報しても...
-
SDカードの音楽の消去
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
質問したら削除されました 一人...
-
教えて!gooで、自分がした回答...
-
自分で回答削除しておいて 「お...
-
ウェブページへのアクセス不可 ...
-
至急LINEアカウント
-
質問とまったく違う回答してく...
-
以前にした質問を削除したいの...
-
回答がついた質問は削除できま...
-
自民党が憲法改正(改悪)して...
-
Web版のみTwitterを削除するに...
-
5ちゃんねる、オープン2ちゃん...
-
VBA:Openステートメントで開い...
-
【エクセル】セル内の右側のみ...
-
もう関わりたくない人がいたらL...
-
指定した文字があった場合、そ...
-
エクセルで住所の混在する「丁...
-
アクセスにおいて間違って削除...
-
質問に対する回答や補足のコメ...
-
ヤフオクのホームに保存した検...
-
喧嘩をしてLINE削除され、 また...
おすすめ情報