Excel VBA質問箱 IV

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

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


43269 / 76732 ←次へ | 前へ→

【38513】Re:オートフィルタで絞り込んだデータで...
回答  Kein  - 06/6/5(月) 16:03 -

引用なし
パスワード
   あ、どーも遅くなりました。一行目の項目が増減(入力している列数が増減)しても、
「A1セルから右へ空白なく連続して項目が入っている」という条件さえ
合致していれば、以下のマクロで大丈夫かと思います。

Sub My集計4()
  Dim Mth As Long, LstR As Long
  Dim Clc As Long, y As Long, CR As Long
  Dim x As Variant
  Dim MyR As Range, C As Range
  Dim MyV As String
  Const Pmt As String = _
  "集計する月を1〜12の整数で入力して下さい"

  With Application
   Do
     Mth = .InputBox(Pmt, Type:=1)
     If Mth = False Then Exit Sub
   Loop While Mth < 1 Or Mth > 12
   .ScreenUpdating = False
   .DisplayAlerts = False
  End With
  LstR = Range("A65536").End(xlUp).Row - 1
  With Range("A1").CurrentRegion
   Clc = .Columns.Count + 1
   With Cells(1, Clc)
     .Value = "月"
     With .Offset(1).Resize(LstR)
      .Formula = "=MONTH($A2)"
      .Value = .Value
     End With
   End With
   If IsError(Application.Match(Mth, Columns(Clc), 0)) Then
     MsgBox "指定した月のデータはありません", 48
     Columns(Clc).ClearContents: GoTo ELine
   End If
   With .Resize(, Clc)
     .Sort Key1:=Cells(1, Clc), Order1:=xlAscending, _
     Key2:=Cells(1, 6), Order2:=xlAscending, _
     Header:=xlYes, Orientation:=xlSortColumns
     .Subtotal Clc, xlCount, Array(Clc), False
     .Subtotal 6, xlCount, Array(6)
   End With
  End With
  Range("F2", Range("F65536").End(xlUp)).Offset(, -5) _
  .SpecialCells(4).Offset(, Clc - 1).ClearContents
  x = Application.Match(Mth, Columns(Clc), 0)
  y = Columns(Clc).Find(Mth, , xlValues, xlWhole, , xlPrevious).Row
  Set MyR = Range(Cells(x, Clc), Cells(y, Clc)).SpecialCells(2)
  MyV = "[ " & Mth & "月の集計 ]" & vbLf
  If x = y Then
   MyV = MyV & Cells(x, 6).Value & " : 1 件"
  ElseIf MyR.Areas.Count = 1 Then
   MyV = MyV & Cells(x, 6).Value & _
   " : " & MyR.Cells.Count & " 件"
  Else
   For Each C In MyR.Areas
     CR = C.Row + C.Cells.Count
     MyV = MyV & Cells(CR - 1, 6).Value & " : " & _
     C.Cells.Count & " 件" & vbLf
   Next
   MyV = Left$(MyV, Len(MyV) - 1)
  End If
  With ActiveSheet.TextBoxes
   If .Count = 1 Then
     .Item(1).Text = MyV
   ElseIf .Count = 0 Then
     With .Add(0, 0, 200, 100)
      .Text = MyV
      .AutoSize = True
      .Shadow = True
      .Interior.ColorIndex = 20
     End With
   End If
  End With
  With Range("A1").CurrentRegion
   .RemoveSubtotal
   Range("A2", Range("A65536").End(xlUp).Offset(2)) _
   .SpecialCells(4).EntireRow.Delete xlShiftUp
   .Sort Key1:=Range("A1"), Order1:=xlAscending, _
   Header:=xlYes, Orientation:=xlSortColumns
  End With
  Set MyR = Nothing: Columns(Clc).ClearContents
ELine:
  With Application
   .ScreenUpdating = True
   .DisplayAlerts = True
  End With
End Sub

6 hits

【38421】オートフィルタで絞り込んだデータで、特... EBI 06/6/2(金) 11:25 質問
【38422】Re:オートフィルタで絞り込んだデータで、... Jaka 06/6/2(金) 12:44 発言
【38431】Re:オートフィルタで絞り込んだデータで、... Kein 06/6/2(金) 17:11 回答
【38460】Re:オートフィルタで絞り込んだデータで... kobasan 06/6/3(土) 13:48 発言
【38462】Re:オートフィルタで絞り込んだデータで... EBI 06/6/3(土) 14:38 発言
【38463】Re:オートフィルタで絞り込んだデータで... Kein 06/6/3(土) 14:44 発言
【38465】Re:オートフィルタで絞り込んだデータで... kobasan 06/6/3(土) 15:49 回答
【38468】Re:オートフィルタで絞り込んだデータで... EBI 06/6/3(土) 16:15 発言
【38470】Re:オートフィルタで絞り込んだデータで... kobasan 06/6/3(土) 16:41 回答
【38471】Re:オートフィルタで絞り込んだデータで... Kein 06/6/3(土) 16:54 回答
【38472】Re:オートフィルタで絞り込んだデータで... EBI 06/6/3(土) 17:34 発言
【38475】Re:オートフィルタで絞り込んだデータで... Kein 06/6/3(土) 19:01 回答
【38476】Re:オートフィルタで絞り込んだデータで... EBI 06/6/3(土) 21:06 発言
【38479】Re:オートフィルタで絞り込んだデータで... Kein 06/6/3(土) 22:39 回答
【38480】Re:オートフィルタで絞り込んだデータで... Kein 06/6/3(土) 22:50 発言
【38484】Re:オートフィルタで絞り込んだデータで... EBI 06/6/4(日) 8:58 発言
【38485】Re:オートフィルタで絞り込んだデータで... Kein 06/6/4(日) 13:16 発言
【38486】Re:オートフィルタで絞り込んだデータで... EBI 06/6/4(日) 14:54 発言
【38487】Re:オートフィルタで絞り込んだデータで... Kein 06/6/4(日) 15:34 回答
【38488】Re:オートフィルタで絞り込んだデータで... EBI 06/6/4(日) 16:02 発言
【38490】Re:オートフィルタで絞り込んだデータで... Kein 06/6/4(日) 17:25 回答
【38491】Re:オートフィルタで絞り込んだデータで... EBI 06/6/4(日) 19:36 発言
【38492】Re:オートフィルタで絞り込んだデータで... Kein 06/6/4(日) 21:50 発言
【38496】Re:オートフィルタで絞り込んだデータで... EBI 06/6/5(月) 10:36 発言
【38510】Re:オートフィルタで絞り込んだデータで... EBI 06/6/5(月) 14:56 発言
【38513】Re:オートフィルタで絞り込んだデータで... Kein 06/6/5(月) 16:03 回答
【38517】Re:オートフィルタで絞り込んだデータで... EBI 06/6/5(月) 17:05 お礼

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