Excel VBA質問箱 IV

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

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


43303 / 76732 ←次へ | 前へ→

【38479】Re:オートフィルタで絞り込んだデータで...
回答  Kein  - 06/6/3(土) 22:39 -

引用なし
パスワード
   列の変更も含めて、大幅にロジックを変更してみました。

Sub My集計2()
  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
  End With
  LstR = Range("A65536").End(xlUp).Row - 1
  With Range("IV1").End(xlToLeft).Offset(, 1)
   .Value = "月"
   With .Offset(1).Resize(LstR)
     .Formula = "=MONTH($A2)"
     .Value = .Value
   End With
   If IsError(Application.Match(Mth, .EntireColumn, 0)) Then
     MsgBox "指定した月のデータはありません", 48
     .EntireColumn.ClearContents: GoTo ELine
   End If
  End With
  With Range("A1").CurrentRegion
   Clc = .Columns.Count
   .Sort Key1:=Range("IV1").End(xlToLeft), _
   Order1:=xlAscending, Key2:=Range("F1"), _
   Order2:=xlAscending, Header:=xlYes, _
   Orientation:=xlSortColumns
   .Subtotal 6, xlCount, Array(6), False
   .Subtotal 4, xlCount, Array(4)
  End With
  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 & " : " & _
     Cells(CR, 6).Value & " 件" & vbLf
   Next
   MyV = Left$(MyV, Len(MyV) - 1)
  End If
  With ActiveSheet.TextBoxes
   If .Count = 1 Then
     .Item(1).Text = ""
   ElseIf .Count = 0 Then
     .Add 0, 0, 200, 100
   End If
   With .Item(1)
     .Text = MyV
     .AutoSize = True
     .Shadow = True
     .Interior.ColorIndex = 20
   End With
  End With
  With Range("A1").CurrentRegion
   .RemoveSubtotal
   .Sort Key1:=Range("A1"), Order1:=xlAscending, _
   Header:=xlYes, Orientation:=xlSortColumns
  End With
  Set MyR = Nothing: Columns(Clc).ClearContents
ELine:
  Application.ScreenUpdating = True
End Sub
4 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 お礼

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