• ベストアンサー

excel:vba

エクセルVBAで、ROWS(“7:7”)からROWS(“93,93”)まで、行の値を+3ずつアップしてあることを繰り返し実行したいのですが、ROWS(“i:i”)とかROWS(i:i)とかは意味をなさないようです。 どのように処理(記述)すればよいのでしょうか。 感覚的には次のような処理したい。 For i = 7 To 93 Step 3 Rows(i:i).Select Selection.Insert Shift:=xlDown Selection.Insert Shift:=xlDown Next i

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

Rows(i & ":" & i).Select

taktta
質問者

お礼

うまくいきました。どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

あまり自信は無いのですが・・・ For i = 7 To 93 Step 3 Rows(i).Select Selection.Insert Shift:=xlDown Selection.Insert Shift:=xlDown Next i ではダメでしょうか

参考URL:
 
taktta
質問者

お礼

回答どうもありがとうございました。機会があれば試してみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBAで行を挿入する

    VBAを始めた初心者です。 Exel2002使用です。 VBAでA列の4行目から10行目に行の挿入をできるようにしようと下記のように書きましたが、Rows("i:i").Selectの部分でデバックがかかってしまいます。間違っている理由がわからないのですがよろしくお願いします。 また、DO While Loopステートメントを使ってA列が空白になるまで(例えばA4セル以下の)行を挿入とする場合の方法も教えていただけましたら幸いです。 Sub 4行目から10行目まで() Dim i As Integer For i = 4 To 10 Cells(i, 1).Value = i Rows("i:i").Select Selection.Insert Shift:=xlDown Next i End Sub Sub 4行目から空白になるまで() Dim i As Integer Range("A4").serect Do While activecell.value = "" Cells(i, 1).Value = i Rows("i:i").Select Selection.Insert Shift:=xlDown activecell.offset(1,0).select Loop End Sub

  • VBAについて

    皆様、こんにちは。 VBAを使って会計シートを作っていますが、初心者なので、色々と悩んでいます。今回、コンボボックスにセールをリンクして、コンボボックスで選ばれた値に合わせてシートの行を増やしたいですが、どうすればいいでしょうか?例えば、linked cellは2の場合は、 Range("D25:G27").Select Selection.Insert Shift:=xlDown 3の場合は Range("D25:G28").Select Selection.Insert Shift:=xlDown などのようにしたいですが、誰か詳しい方が教えてくだされば非常に助かります。どうぞよろしくお願いいたします。

  • <Excel>VBAでのオートフィルタについて

    このような式で必要な行を抽出していたのですが、65536行下から検索をかけるので時間がかかります。 データの入っている一番下の行から上へ検索していくにはどのような方法があるでしょうか? Sub sDelLine() Dim i As Long For i = 65536 To 1 Step -1 If Cells(i, 3) = "男" Then Rows(i).Select Selection.Delete Shift:=xlUp End If Next End Sub

  • Excel VBA 情報がある場合は…繰り返すの方法

    Sub 空白行を入れる() a = 2 b = 3 For i = 1 To 24 Rows(a & ":" & b).Select Selection.Insert Shift:=xlDown a = a + 3 b = b + 3 Next i End Sub 上記の場合はおわかりのように For文で24回繰り返すだけで芸がありません。このFor文を自動化させるマクロ処理を作成したいのですけど、 セルA1,A2,A3,A4…と順番にみていって情報が入っている場合のみ繰り返す…どう処理すればよろしいでしょうか? アドバイスお願い致します。

  • 行を挿入するマクロがうまくいきません。

    Sheets("りんご").Select Rows("1:1").Select Selection.Copy Sheets("みかん").Select Range("人").Select Selection.Insert Shift:=xlDown Application.CutCopyMode = False End Sub というマクロは、りんごのシートにある1行をコピーして、 みかんのシートの人と名前定義してある特定の行にコピーする マクロです。この次に下のマクロを実行すると Sheets("りんご").Select Rows("2:3").Select Selection.Copy Sheets("みかん").Select Range("人").Select Selection.Insert Shift:=xlDown それまでのものが残ってしまい、行がどんどん増えていってしまいます。 いずれかのマクロを実行すればリセットされて行が増えないように コピーするにはどうすればよいでしょうか・・?

  • 'Cells'メソッドは失敗しました '_Global'オブジェクト

    次のマクロですが、順調に動いていたと思うと 急にタイトルのエラーで落ちたりします。 Set mySh = Thisworkbook.Sheets("Sheet1") Debug.Print mySh.Cells(1,1) また、そのときは・・・ mySh.Rows("4:4").Select Selection.Insert Shift:=xlDown や mySh.Select Rows("4:4").Insert Shift:=xlDown や mySh.Rows("4:4").Insert Shift:=xlDown もできなくなります。 オブジェクトへの参照方法が今ひとつわかっていないのですが、 どの場合でもエラーなく実行するにはどうすればいいのでしょうか?

  • 記述

    下記コードでRows("gyou:gyou").Select が正しくありません。Rows("4:4").Select の意味にさせるにはどう記述すればよいか。お教え願います。 Sub Macro1() ' Dim gyou As Integer gyou = 4 ' Rows("4:4").Select Rows("gyou:gyou").Select Selection.Insert Shift:=xlDown End Sub

  • EXCEL VBA で既定のシートを下に追加したい

    EXCEL VBAである既定の(例えば注文書シート)みたいなのがあったとして、これを注文書が増えるごとに下にその範囲のコピーを下に追加 してゆきたい。これは、書式がいろいろと決まっているのと、他の関数でその中に値を色々と埋めています。また、これと紐づくもので、注文書明細や、その他のシートがあるので、それらもそれぞれ下方向にコピーしています。 一つのシートのコピー例が、 Rows(intUpperLine & ":" & intLowerLine).Select Selection.Copy Rows((ir * (i + 1)) + 1).Select Selection.Insert Shift:=xlDown というような感じでループしている。 これらが10件くらいならば、ちょっと待つがなんとか なるのですが、50件とかいくと30分以上かかります。 何か、知恵を賜りたいです。 よろしくお願いします。 尚、シートを横展開することも考えたのですが、これだと 限りなく横へスクロールするので、お客様からNGだされました。 よろしくお願いします。

  • 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

  • sheet1上のマクロでsheet2に画面を切り替えずに行を挿入させたい

    Excel2002ユーザーです。 sheet1上で実行するマクロで、画面を切り替えることなく、 いわば水面下でsheet2の行1に空行を挿入させ、常に最新のデータ(Sheet1上にあるセルの値)を書き込んでいく、 ということをしたいのです。 古いデータは順次、下に送られる形です。 まずデータの書き込み以前に、挿入ができないのです。 sheet1上のマクロで、 Worksheets("sheet2").Rows("1:1").Select Selection.Insert Shift:=xlDown と書き込みましたがダメでした。 (実行時エラー'1004': RangeクラスのSelectメソッドが失敗しました) Sheets("sheet2").Select Rows("1:1").Select Selection.Insert Shift:=xlDown の場合、行挿入はOKですが、sheet2に画面が切り替わってしまいます。 常にsheet1の画面を表示させたままにしてこのようなことを行いたいのですが、 良きアイデア、アドバイスがありましたら御教授ください。 よろしくお願い致します。

専門家に質問してみよう