|
▼エラー回避さん さん:
こんにちは。
>>
>>新規ブックの標準モジュールに
>>
>>'=================================================================
>>Sub A行情報変わる位置行挿入2()
>> Dim rng As Range
>> Dim ans As Range
>> Dim idx As Long, jdx As Long
>> On Error Resume Next
' Call サンプルデータ作成
' MsgBox "A列にサンプルデータ作成"
'A列にデータが既にあるならば、上記のサンプルデータ作成している
'プロシジャーを呼び出すことを止めてください('とコメント化すればよいです)
>> Range("B:B").Insert Shift:=xlToRight
>> Set rng = Range("a2", Cells(Rows.Count, "a").End(xlUp))
>> If rng.Row > 1 Then
>> With rng
>> .Offset(0, 1).Formula = "=if(row()=" & rng.Row & ","""",if(EXACT(R[-1]C[-1],RC[-1]),"""",1))"
>> Set ans = .Resize(, 2).SpecialCells(xlCellTypeFormulas, xlNumbers)
>> If Err.Number = 0 Then
>> With ans.Areas
>> For idx = .Count To 1 Step -1
>> For jdx = .Item(idx).Count To 1 Step -1
>> .Item(idx).Cells(jdx).EntireRow.Insert xlDown
>> Next
>> Next
>> End With
>> End If
>> End With
>> Range("B:B").Delete
>> End If
>>End Sub
>>'====================================================================
>>Sub サンプルデータ作成()
>> Dim idx As Long, jdx As Long
>> Dim smpArray As Variant
>> Dim kdx As Long
>> Range("a:a").Value = ""
>> kdx = 2
>> smpArray = Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", _
>> "k", "l", "m", "n", "o", "p", "q", "r", "s", "t")
>> For idx = 1 To 20
>> num = Int(Rnd() * 8) + 1
>> For jdx = kdx To kdx + num - 1
>> Cells(jdx, 1).Value = smpArray(idx - 1)
>> Next jdx
>> kdx = kdx + num
>> Next idx
>>End Sub
>>
>>上記のコードをコピーしてください。
>>
>>何も入力されていないシートをアクティブにして
>>「A行情報変わる位置行挿入2」を実行してみてください。
>>
>>結果としてこのコードが示すような出力がご希望の出力でしょうか?
>>
>>A列の2行目から
>>
>> A
>> 1
>> 2 a
>> 3 a
>> 4 a
>> 5 b
>> 6 b
>> 7 b
>> 8 b
>> 9 c
>>10 c
>>11 c
>>12 c
>>13 c
>>14 c
>>15 d
>>16 d
>>17 d
>>
>>というデータが「サンプルデータ作成」で作成されたとすると、
>>(実際はもっとデータ数が多いです)
>>
>>「A行情報変わる位置行挿入2」を実行後は、
>>
>>
>> A
>> 1
>> 2 a
>> 3 a
>> 4 a
>> 5
>> 6 b
>> 7 b
>> 8 b
>> 9 b
>>10
>>11 c
>>12 c
>>13 c
>>14 c
>>15 c
>>16 c
>>17
>>18 d
>>19 d
>>20 d
>>
>>となります。
>>試してみてください。
>
>上記の通りです!!
>ただ 既にA列に情報があり
>そこから上記の結果を出したいのです
ここもでは、上記に記述したとおりです。
>+もし可能なら作業グループ内同じ作業で
>無理でしたら1Sheetごと
>
>目次項目1行目消し
>AB列で並び替え
>A列内容で上記の様に1行空け
>AB列を消す
>
>様になります。
↑これでは、私には何がなさりたいのか わかりません・・・。
私は、上記にあるようにプログラムの入力データにあたるA列のサンプルと
プログラム実行後、このようになるという結果を記述しましたよね!!
こういう表を作るのは、これだけでも結構面倒ですよね?
でも、この面倒な記述を質問者はしなければなりません。
それをすることがエラー回避さん さんにとって、
決してマイナスにはなりません(断乎として・・・)。
たとえ、回答が得られなかったとしてもです。
ここでは、
例えば、
xxx
xxx
xxx
xxx
のようなデータがxx列のyy行目からあった場合、
処理後は、
zzz
zzz
zzz
zzz
となるようにしたいと
記述してください。
例が一つでは不十分なら、二つでも三つでも記述してください。
|
|