Excel VBA質問箱 IV

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

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


42532 / 76732 ←次へ | 前へ→

【39265】Re:Selection.Insert Shift:=xlDownのエ...
発言  ichinose  - 06/6/20(火) 18:29 -

引用なし
パスワード
   ▼エラー回避さん さん:
こんにちは。
>>
>>新規ブックの標準モジュールに
>>
>>'=================================================================
>>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

となるようにしたいと
記述してください。
例が一つでは不十分なら、二つでも三つでも記述してください。
5 hits

【39047】Selection.Insert Shift:=xlDownのエラー エラー回避 06/6/16(金) 13:23 質問
【39057】Re:Selection.Insert Shift:=xlDownのエラー Jaka 06/6/16(金) 17:10 発言
【39063】Re:Selection.Insert Shift:=xlDownのエ... ichinose 06/6/16(金) 20:21 発言
【39242】Re:Selection.Insert Shift:=xlDownのエ... エラー回避さん 06/6/20(火) 13:19 発言
【39265】Re:Selection.Insert Shift:=xlDownのエ... ichinose 06/6/20(火) 18:29 発言

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