Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10835 / 13644 ツリー ←次へ | 前へ→

【19632】【初心者】行の挿入方法を教えてください(>_<) カトリーヌ 04/11/11(木) 17:35 質問[未読]
【19633】Re:【初心者】行の挿入方法を教えてくださ... IROC 04/11/11(木) 17:40 回答[未読]
【19636】Re:【初心者】行の挿入方法を教えてくださ... Kein 04/11/11(木) 21:40 回答[未読]
【19641】Re:【初心者】行の挿入方法を教えてくださ... カトリーヌ 04/11/12(金) 10:00 お礼[未読]

【19632】【初心者】行の挿入方法を教えてください...
質問  カトリーヌ  - 04/11/11(木) 17:35 -

引用なし
パスワード
   VBAを最近勉強し始めた初心者です。
過去のログを見させて頂いたのですが、探し当てられず質問させていただきました(>_<)ダブった質問をしていたら申し訳ありません・・m(__)m

早速質問ですが、
「A列にデータがある間、12行の空白行を挿入したい」
のです。

A列   B列  C列
りんご  50   50
みかん  30   30
バナナ  80   80
 ・
 ・
 ・
上記のようなデータですが、「りんご」と「みかん」の間に空白の12行を入れ
また「みかん」と「バナナ」の間にも空白の12行を入れ・・
A列のデータがなくなるまで、同じ作業をさせたいのです。

本当にレベルの低い質問で申し訳ありませんが
お返事いただきたく、宜しくお願い致します。m(__)m

Do Until・・・Loopの形で教えていただけると嬉しいです。

【19633】Re:【初心者】行の挿入方法を教えてくだ...
回答  IROC  - 04/11/11(木) 17:40 -

引用なし
パスワード
   行の挿入や削除をループ内で処理すると、行番号がずれるので
-1 ステップで逆ループすると出来ます。


Dim i As Long

For i = Range("a65536").End(xlUp).Row To 2 Step -1
 If Cells(i, 1).Value <> "" Then
   Rows(i & ":" & i + 11).Insert Shift:=xlDown
 End If
Next i

【19636】Re:【初心者】行の挿入方法を教えてくだ...
回答  Kein  - 04/11/11(木) 21:40 -

引用なし
パスワード
   行挿入するより、こっちの方が速いと思いますが。

Sub Data_Split()
  Dim Nm As String
  Dim MyR As Range, C As Range
  Dim MyV As Variant
  Dim i As Long
 
  Set MyR = Range("A1", Range("A65536").End(xlUp))
  i = 14: Nm = ActiveSheet.Name
  With Application
   .ScreenUpdating = False
   .DisplayAlerts = False
  End With
  Worksheets.Add
  For Each C In MyR
   MyV = C.Resize(, 3).Value
   If C.Row = 1 Then
     Range("A1:C1").Value = MyV
   Else
     Cells(i, 1).Resize(, 3).Value = MyV
     i = i + 13
   End If
  Next
  With ActiveSheet
   .Next.Delete
   .Name = Nm
  End With
  With Application
   .ScreenUpdating = True
   .DisplayAlerts = True
  End With
End Sub

【19641】Re:【初心者】行の挿入方法を教えてくだ...
お礼  カトリーヌ  - 04/11/12(金) 10:00 -

引用なし
パスワード
   IROCさま、keinさま
お返事頂き、本当にありがとうございます(#^_^#)
早速、使用させていただきました。
IROCさまの簡潔なプログラム、
keinさまの速度の速いプログラムを目の当たりにして
VBAをもっともっと勉強したいと強く思いました!

お恥ずかしい話、IROCさまからの引用ですが
「Rows(i & ":" & i + 15)」こちらの「:」をダブルコーテーションで
囲むことすら知らなく、自己流のプログラムはいつもエラーを出していました(^^;

長くなってしまってすみませんm(__)m
どうもありがとうございました!

10835 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free