• ベストアンサー

for next教えて下さい(;_;)

以下のように1行残して9行消してという操作を連続してやりたいのですがfor nextをどう使えばうまくいくのかわかりません。誰か教えて下さいお願いしますm(_ _)m Sub Macro1() ' ' Macro1 Macro ActiveWindow.SmallScroll Down:=5 Rows("10:18").Select Selection.Delete Shift:=xlUp Rows("11:19").Select Selection.Delete Shift:=xlUp End Sub

noname#22885
noname#22885

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 仮に1行残して9行削除という動作を10回連続で行う場合は、 For i = 1 To 10   Rows((9 + i) & ":" & (9 + i + 8)).Select   Selection.Delete Shift:=xlUp Next i この場合は、9、19、29・・・行目が残ります。 Rowsの中の"9"を替えれば、残す行を変更出来ます。

その他の回答 (1)

回答No.2

初めまして。次のように操作します。 Sub Test for i = 1 to 18 rows(i & ":" & i).delete Shift:=xlShiftup next i このコードを実行すると1行目から18行目まで削除されます。 for i = 1 to 18 if i = 残したい行番号 then exit for rows(i & ":" & i).delete Shift:=xlShiftup next i このコードを実行すると、1行目から18行目で残したい行番号以外の行が削除されます。 もし、これで解決できないような時は、 >1行残して9行消してという操作を連続してやりたい この操作の意味をもう少し詳しく具体的に教えて下さい。貴方様のおやりになりたいことがすぐ実行できるサンプルマクロを組んでみたいと思います。

関連するQ&A

  • エクセルマクロで行を変えて100回デリート

    すみません。繰り返し165行下がってデリートしたいのですが・・・ どなたか詳しい方ご教授下さいませ。 ActiveWindow.SmallScroll Down:=174 Rows("183:198").Select Selection.Delete Shift:=xlUp ActiveWindow.SmallScroll Down:=171 Rows("348:363").Select ←165行下がりデリートを繰り返しデリートしたいです。 Selection.Delete Shift:=xlUp

  • Excelのマクロで現在行を指定する方法を

    Excelのマクロで現在行を変えて、現在見ている行にする方法を教えてください。 下記は操作を記録させて作成したものですが、これを例えば、Excelの213行で実行させると 205行に196~203行が再度追加されてしまいます。 これを変えて、現在見ている例えば213行の前に196~203行を入れたいという場合はどうすればいいのでしょうか? つまり、Rows("205:205").Selectの205というのを、現在見ている行に変更できれば良いように思うのですが。よろしくお願いします。 Sub Macro3() ' Keyboard Shortcut: Ctrl+Shift+A   Rows("196:203").Select   Selection.Copy   Rows("205:205").Select   Selection.Insert Shift:=xlDown   ActiveWindow.SmallScroll Down:=9 End Sub

  • オートフィルタを使わずに行削除

    こんにちは。 簡易記録のマクロで実行したものが、以下となります。 オートフィルタで選択した0以下の行を削除するために選択した物になります。 Sub 0以下を削除() ' Macro test ' ActiveSheet.Range("$A$1:$G$165").AutoFilter Field:=7, Criteria1:="<=0", _ Operator:=xlAnd Rows("3:56").Select ActiveWindow.SmallScroll Down:=66 Rows("3:165").Select Selection.Delete Shift:=xlUp ActiveSheet.Range("$A$1:$G$123").AutoFilter Field:=7 End Sub 行数は、日によって、様々で何千行となる場合もあります。 そこで、オートフィルタを使用せず、G列目の0以下の数値を行削除を行いたいです。 どのように設定したらいいか教えて頂けると幸いです。 不備がありましたら、補足を入れますので、 お手数ではございますが、宜しくお願い致します。

  • マクロの実行について 質問です。

    マクロ勉強中です! 何時間も調べておりますが、 どうしても分からないので お教え下さい(;_;) 別シートの都道府県が混在するデータの中から、 3列の付属語が『下関』のものだけをコピーして、シート1に貼り付けるマクロを マクロの記録で 『下関』 というタイトル?にして作りました。(下記) これを実行するときに、マクロ名からではなく、 下の表の R3C8セルの、『下関』 というハイパーリンクをクリックで 実行される・・・・ そんなふうにするには、どうしたらいいのでしょうか? ご回答を おまちしております。よろしくお願いします! Sub 下関() ' ' 下関 Macro ' ' Keyboard Shortcut: Ctrl+a ' ActiveWindow.SmallScroll Down:=-9 Range("B3").Select ActiveWindow.SmallScroll Down:=117 Range("B3:F137").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp ActiveWindow.SmallScroll Down:=-9 Range("H3").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True Selection.Copy Sheets("Sheet1").Select Range("B3").Select ActiveSheet.Paste Range("C3").Select End Sub

  • excel マクロ

    EXCELでデータが100行の表があるとする。 データのない行を削除し行を詰めるマクロは? イメージはこんな感じとおもうのでうが Sub Macro1() 'if文であるn行がデータがないかどうか判定YESなら Rows("n:n").Select Selection.Delete Shift:=xlUp End Sub

  • エクセルVBA 表を小さく縦スクロールを小さく

    VBAのLOOPを バグって 表が 大きくなりました。 余分のデータは小さくしたのですが、縦スクロールが 小さく成りません。 マクロ記録で 下記をやってみたのですが、効果ありません。 どこで、間違ったのでしょうか? Selection.SpecialCells(xlCellTypeLastCell).Select Rows("291964:291964").Select Selection.Delete Shift:=xlUp Columns("BH:BH").Select Selection.Delete Shift:=xlToLeft ActiveWindow.LargeScroll ToRight:=-3 ActiveWindow.LargeScroll Down:=-1 Range("A1").Select ActiveWorkbook.Save それとも、縦スクロールを現実データに反映させる方法は別にあるのでしょうか? よろしくどうぞ

  • 記録したマクロを他のシートにも同時に実行する方法

    いつもお世話になります。 下記のように選んだセルのデータを削除するマクロを「マクロの記録」で作成しました。 Sub Macro2() ' ' Macro2 Macro ' ' Range("E5:R12").Select ActiveWindow.SmallScroll Down:=6 Range("E5:R12,E14:R22").Select Range("E14").Activate ActiveWindow.SmallScroll Down:=12 Range("E5:R12,E14:R22,E24:R28").Select Range("E24").Activate ActiveWindow.SmallScroll Down:=6 Range("E5:R12,E14:R22,E24:R28,E30:R34").Select Range("E30").Activate Selection.ClearContents End Sub 「Macro2」の実行ボタンを作り、シート名「1」~「31」の同じセルのデータをボタンをクリックして、一括で削除したいのですが、この記述をどのように変更したらよいのか、マクロを始めたばかりの初心者の私にご教授して頂けませんでしょうか? 「マクロの記録」で各シートを選び、セルを選んでdeleteして行く方法はありますが、今後のためにも記述の編集で出来る方法をお教え下さい。 よろしくお願いいたします。 当方、エクセル2010で作成していますが、エクセル2002の環境で使います。

  • 同じ作業を複数のシートに実行させるにはどうしたらいいのでしょうか

    EXCELVBAであるシートに作業をさせるVBAを作成しました。 同じ作業を複数のシートに 実行させるにはどうしたらいいのでしょうか。 宜しくお願い致します。 **************作成したVBA********** Sheets("sheet1").Select ActiveWindow.SmallScroll Down:=66 Range("D2:D101").Select Selection.Cut   …50行ほどあります… *********************************** ↓ sheet1とsheet2に同じ作業をさせたい 以下のやりかただと長くなるためまとめたい    **************作成したVBA********** Sheets("sheet1").Select ActiveWindow.SmallScroll Down:=66 Range("D2:D101").Select Selection.Cut   …50行ほどあります… Sheets("sheet2").Select ActiveWindow.SmallScroll Down:=66 Range("D2:D101").Select Selection.Cut   …50行ほどあります… Sheets("sheet3").Select ActiveWindow.SmallScroll Down:=66 Range("D2:D101").Select Selection.Cut   …50行ほどあります… ***********************************

  • 同じ場所にあるファイル全てに対してマクロをかけたい

    <やりたいこと> マクロと同じフォルダに入っている全ファイル(そのときによりファイル数が変わる)に対し、 1、2行を削除し、オートフィルタを消し、A2にある「No.1」を「No1」(ドットを消す)にし、 ファイルを上書き保存するようにしたいです。 <今の状態と質問> 全ファイル(例は4つ)を開いた状態で下記のマクロをかければ、 希望の処理ができます。 が、複数ファイルが有る場合、ファイル全てを開いて実行するのは難ありです。 事前にファイルを開く手間をかけずに、マクロで全て処理する方法は どうしたらいいのでしょうか。 過去検索で、Workbooks.Open Filename:= (ThisWorkbook.Path & "\*.xls")などを 見よう見真似で追加したりしてみたものの動きませんでした。 今の段階(4ファイル開いておけば実行可能)のマクロは下記の通りです。 Sub test() ' ' Keyboard Shortcut: Ctrl+q ' Rows("1:2").Select Selection.Delete Shift:=xlUp Selection.AutoFilter Range("A1").Select ActiveCell.FormulaR1C1 = "No1" Range("A2").Select ActiveWorkbook.Save ActiveWindow.Close Rows("1:2").Select Selection.Delete Shift:=xlUp Selection.AutoFilter Range("A1").Select ActiveCell.FormulaR1C1 = "No1" Range("A2").Select ActiveWorkbook.Save ActiveWindow.Close Rows("1:2").Select Selection.Delete Shift:=xlUp Selection.AutoFilter Range("A1").Select ActiveCell.FormulaR1C1 = "No1" Range("A2").Select ActiveWorkbook.Save ActiveWindow.Close Rows("1:2").Select Selection.Delete Shift:=xlUp Selection.AutoFilter Range("A1").Select ActiveCell.FormulaR1C1 = "No1" Range("A2").Select ActiveWorkbook.Save ActiveWindow.Close End Sub

  • 行を削除するマクロ

    以下のような、行を削除するマクロがあります。 Workbooks("123.csv").Activate Rows("5:10").Select Selection.Delete Shift:=xlUp しかし、123.csvを開いていない場合にはエラーが出てしまいます。 そこで、このようにしました。 On Error Resume Next Workbooks("123.csv").Activate Rows("5:10").Select Selection.Delete Shift:=xlUp しかし、エラーが出ない代わりに、アクティブなブックの行が削除されてしまいます。 123.csvが開かれている場合には、行を削除し、 開かれていない場合には、何もせずエラーも出さないようにするにはど のようにすればいいでしょうか。 よろしくお願いします。

専門家に質問してみよう