Excel VBA質問箱 IV

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

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


19650 / 76732 ←次へ | 前へ→

【62511】Re:アウトライン化
発言  SS  - 09/7/27(月) 18:44 -

引用なし
パスワード
   ▼初心者です。 さん:

正確なフォーマットが分からないので条件設定に不備があると思いますが
私ならこのような形で作成すると思います。
※同伝票番号内訳とその計は連続とすることが条件です。

    A    B
1        
2    伝票No    
3    AAA    
4    AAA    
5    AAA    
6    EEE計    
7    AAA    
8    AAA    
9    AAA計    
10    BBB    
11    BBB    
12    BBB    
13    BBB計    
14    DDD計    
15    CCC    
16    CCC
17    CCC
18    
19    CCC
20    CCC
21    CCC
22    CCC
23    CCC計
24    総合計

Sub Macro2()
  Dim RowStart As Long, RowStop As Long, Row1 As Long
  Dim txtNo As String
  Dim i As Long, j As Long
  
  Range("A1").ClearOutline
 
  RowStop = Range("A65536").End(xlUp).Row
  If RowStop = 1 Then Exit Sub
  
  'RowStart = Range("A1").End(xlDown).Row
  'If RowStart = RowStop Then RowStart = 1
  '空白とか項目表示があると面倒なのでStartは数値入力としました
  RowStart = 3
  
  'このグルーピングは必要かわかりません。
  Range(3 & ":" & RowStop - 1).Rows.Group
  
  txtNo = ""
  j = 0
  For i = RowStart To RowStop
    If Cells(i, 1).Value <> txtNo And _
            Cells(i, 1).Value <> "" Then
      If j = 0 And Right(Cells(i, 1).Value, 1) <> "計" Then
        txtNo = Cells(i, 1).Value
        Row1 = i
        j = 1
      ElseIf j = 1 And Cells(i, 1).Value = txtNo & "計" Then
        Range(Row1 & ":" & i - 1).Rows.Group
        j = 0
      Else
        '単独計は無視します
        '伝票番号が上と違う計は無視します
      End If
    End If
  Next i
End Sub

>回答ありがとうございます。
>まさにやりたいことは、回答もらった内容で
>OKなのですが、伝票NOが複数あるので個
>別に定義することは困難です。
>この処理をうまくやる方法教えて下さい。
>御願いします。
114 hits

【62424】アウトライン化 初心者です。 09/7/21(火) 17:44 質問
【62430】Re:アウトライン化 りん 09/7/21(火) 23:13 発言
【62431】Re:アウトライン化 初心者です。 09/7/22(水) 10:03 質問
【62434】Re:アウトライン化 つるりん 09/7/22(水) 12:19 発言
【62438】Re:アウトライン化 SS 09/7/22(水) 15:32 発言
【62505】Re:アウトライン化 初心者です。 09/7/27(月) 11:13 質問
【62511】Re:アウトライン化 SS 09/7/27(月) 18:44 発言

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