人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセル(VBAプログラム)について質問です。

エクセルのプログラムで指定した行を残し、その下の2つの行を繰り返し削除する処理をしたいと考えています。

プログラムを書ける方おりましたらよろしくお願いいたします。

例)5行目から上記のプログラムを実行するとする。

プログラムを実行すると何行目から処理を始めますか?とメッセージが出てきて指定する行を書く。

指定行に5を入力。OKを押すと

5行目はそのまま残り次の6行目と7行目を削除、その次に8行目が残り、その下の9行目と10行目が削除される。(6,7行目が削除される前の8,9,10行目になります。)以下11行目から同じ処理がされます。

上記の繰り返し削除をするプログラムは可能でしょうか。(メッセージと書いてしまいましたが行数を指定して次々と削除できるのであれば方法はどのような方法でも構いません。)
時間がある方おりましたらよろしくお願いいたします。

●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:VBA エクセル プログラム メッセージ 入力
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● SALINGER
●100ポイント ベストアンサー

時間がありましたので、回答します。

どこの行まで実行するかは、A列の最終行としました。

Sub test()
 Dim startRow As Long
 Dim lastRow As Long
 Dim i As Long
 
 Application.ScreenUpdating = False
 
 startRow = Application.InputBox(Prompt:="何行目から処理を始めますか?", Type:=1)
 If startRow = False Then Exit Sub
 If startRow > Rows.Count Then Exit Sub
 
 lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
 
 For i = startRow To lastRow
 ActiveSheet.Rows(i + 1).Delete
 ActiveSheet.Rows(i + 1).Delete
 lastRow = lastRow - 2
 Next
 
 Application.ScreenUpdating = True
End Sub

http://q.hatena.ne.jp/

◎質問者からの返答

ご回答ありがとうございます。


2 ● GIJYUTUSYA3
●30ポイント

あまり、詳しくないですが、

http://www.hotdocument.net/

http://www.hotdocument.net/product/excel.html

の製品は使えませんか?

外していたらすいません。

もしくは、http://www.moug.net/を見ると良いですよ。

◎質問者からの返答

ご回答ありがとうございます。


3 ● van-dine
●60ポイント
Dim Cell As Range
Dim Column As String

Column = InputBox("何行目から処理を始めますか?")
'半角整数を入れなかった時の条件処理は略
Set Cell = Range("A" & Column)
Do
 Cell.Range("2:3").Delete '★
 Set Cell = Cell.Range("A2")
Loop While MsgBox("続けますか?", vbYesNo) = vbYes

★の行で、CellにA5セルを指定したRangeオブジェクトが入っている場合、

Cell.Range("2:3")は、A5セルを仮にA1セルと見た時、2行目?3行目の

セル、つまり6行目?7行目を指定したことになります。

なので、6行目?7行目を削除(.Delete)することになります。

★の1つ下の行では、Cellのセル情報をすぐ下のセルに置き換えます。

終了条件が書かれていなかったので、「はい」と「いいえ」のメッセージボックスを

出し、「はい」と答えている間消し続ける事になります。

↓ダミー

http://q.hatena.ne.jp/1226722548

◎質問者からの返答

ご回答ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ