以下のマクロをまとめたいです。
行いたいのは以下のやり方です。
AAA
BBB
CCC
↑上のようなデータに対して、下に空白の行を一行挿入する。
AAA
BBB
CCC
↑挿入した空白業にひとつ上のデータをコピーして張りつけ
AAA
AAA
BBB
BBB
CCC
CCC
↑D列の偶数行にD、奇数行にEというデータを入力する
AAAD
AAAE
BBBD
BBBE
CCCD
CCCE
この一連の流れをマクロ化したいです。
今使っているのは以下のマクロですが、バラバラなのと上手くいかないことがあるので一つにまとめてすっきりさせたいです。
行数は場合によって変わるので、最終行を取得する方法にしたいです。
Sub 一行飛ばす()
Dim i As Integer, 最終行 As Integer
最終行 = Range("A1").End(xlDown).Row
For i = 最終行 To 2 Step -1
Cells(i, "A").EntireRow.Insert
Cells(i, "A").EntireRow.ClearFormats
Next
End Sub
Sub 選択範囲()
Range("A1").Select
Range("A1", Range("C" & Rows.Count).End(xlUp).Offset(1, 0)).Select
End Sub
Sub コピー()
Dim blanks As Range
If Selection.Cells.Count > 1 Then
On Error Resume Next
For Each blanks In Selection.SpecialCells(xlCellTypeBlanks).Areas
If blanks.Row > 1 Then
blanks.Rows(1).Offset(-1, 0).Copy blanks
End If
Next
On Error GoTo 0
End If
End Sub
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
何がしたいのか、良く分かんないけど、これで良いかな?
Sub sample()
Dim i As Long
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
Rows(i).Copy
Rows(i).Insert Shift:=xlDown
Cells(i, "D").Value = "D"
Cells(i + 1, "D").Value = "E"
Next i
End Sub
No.3
- 回答日時:
失礼、同じコードを投稿してしまいました。
Sub sample()は下記が無いものを投稿するつもりでしたすみません。
For i = dRow To 2 Step -1
.Cells(i, "A").EntireRow.Insert
.Cells(i, "A").EntireRow.ClearFormats
Next
No.2
- 回答日時:
ご質問の状態から、結果を出力するものです。
結果を見る限り空白行を挿入する必要はないと思いますので、プロセスは違います。
sample1は、当然、実際には挿入した行を他の列で使用するのは、想像できますので
空白行を挿入して、値を出力しています。
コードにあるA列1行目からが対象です。
Sub sample()
Dim i As Long, dRow As Long, j As Long: j = 1
Dim MyArray1 As Variant, MyArray2 As Variant
With ActiveSheet
dRow = .Range("A1").End(xlDown).Row
MyArray1 = .Range("A1:A" & dRow)
ReDim MyArray2(1 To dRow * 2, 1 To 1)
For i = LBound(MyArray1, 1) To UBound(MyArray1, 1)
MyArray2(j, 1) = MyArray1(i, 1) & "D"
j = j + 1
MyArray2(j, 1) = MyArray1(i, 1) & "E"
j = j + 1
Next i
For i = dRow To 2 Step -1
.Cells(i, "A").EntireRow.Insert
.Cells(i, "A").EntireRow.ClearFormats
Next
.Range("A1:A" & dRow * 2) = MyArray2
End With
End Sub
’空白行を挿入後出力
Sub sample1()
Dim i As Long, dRow As Long, j As Long: j = 1
Dim MyArray1 As Variant, MyArray2 As Variant
With ActiveSheet
dRow = .Range("A1").End(xlDown).Row
MyArray1 = .Range("A1:A" & dRow)
ReDim MyArray2(1 To dRow * 2, 1 To 1)
For i = LBound(MyArray1, 1) To UBound(MyArray1, 1)
MyArray2(j, 1) = MyArray1(i, 1) & "D"
j = j + 1
MyArray2(j, 1) = MyArray1(i, 1) & "E"
j = j + 1
Next i
For i = dRow To 2 Step -1
.Cells(i, "A").EntireRow.Insert
.Cells(i, "A").EntireRow.ClearFormats
Next
.Range("A1:A" & dRow * 2) = MyArray2
End With
End Sub
No.1
- 回答日時:
こんばんは!
色々やり方はあると思いますが、一例です。
1行目は項目行でデータはA列2行目以降にあるということですね。
Sub Sample1()
Dim i As Long, lastRow As Long
Dim cnt As Long, myStr As String
Application.ScreenUpdating = False
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
'//▼空白行挿入//
Range("A:A").Insert
With Range(Cells(2, "A"), Cells(lastRow, "A"))
.Formula = "=row()"
.Value = .Value
End With
Range(Cells(2, "A"), Cells(lastRow, "A")).Copy Cells(lastRow + 1, "A")
Range("A1").CurrentRegion.Sort key1:=Range("A1"), order1:=xlAscending, Header:=xlYes
'//▼各セルの操作
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
With Cells(i, "B")
If .Value <> "" Then
myStr = .Value
.Value = myStr & "D"
Else
.Value = myStr & "E"
End If
End With
Next i
Range("A:A").Delete
Application.ScreenUpdating = True
MsgBox "完了"
End Sub
こんな感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Excel(エクセル) マクロで列を加えたら上手くいかなくなりました。 2 2022/05/23 17:59
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
太ってる女とのSEX
-
恋人などと挿入したまま入眠し...
-
挿入中の潮について、ものすご...
-
入れてる最中に、『めっちゃ濡...
-
直ぐに挿入をせまる彼女
-
40代男性が好むSEXはどんなもの...
-
処女卒業して3ヶ月の大学生です...
-
女性の方へ、イクことと女性の...
-
もう少しでイケそうな時、どん...
-
女性の方 イクようになったき...
-
挿入時、キツっって言いながら...
-
あそこが狭い女性とのHについ...
-
入ってるかどうかわからない
-
手コキとマンコに挿入するのと...
-
嫁がバイブでしか逝きません。
-
いきそうでいけない・・・
-
すぐ乾いて挿入できません
-
挿入のときに力を抜く方法はあ...
-
AVって、本当に挿入してるんで...
-
(女性へ質問)ピストン運動の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
太ってる女とのSEX
-
恋人などと挿入したまま入眠し...
-
直ぐに挿入をせまる彼女
-
40代男性が好むSEXはどんなもの...
-
挿入時、キツっって言いながら...
-
処女卒業して3ヶ月の大学生です...
-
入れてる最中に、『めっちゃ濡...
-
もう少しでイケそうな時、どん...
-
女性の方へ、イクことと女性の...
-
あそこが狭い女性とのHについ...
-
入ってるかどうかわからない
-
女性の方 イクようになったき...
-
手コキとマンコに挿入するのと...
-
嫁がバイブでしか逝きません。
-
いきそうでいけない・・・
-
挿入中の潮について、ものすご...
-
すぐ乾いて挿入できません
-
挿入のときに力を抜く方法はあ...
-
挿入しやすい体位
-
女です。高確率で前戯でイッて...
おすすめ情報