Excel VBA質問箱 IV

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

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


43307 / 76732 ←次へ | 前へ→

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

引用なし
パスワード
   あー・・それは「7月でテストした後に続けて8月もテストした」場合ですね ?
それは Sheet2 の B列まで含めてクリアしてなかったことが原因です。
で、今度は他シートへの転記を止めて、表のあるシート上にテキストボックスを
配置し、そこへ結果を表示する形にしてみました。

Sub My集計2()
  Dim Mth As Long, LstR As Long, Clc As Long
  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("D1"), _
   Order2:=xlAscending, Header:=xlYes, _
   Orientation:=xlSortColumns
   .Subtotal 4, xlCount, Array(4)
  End With
  With Cells(65536, Clc).End(xlUp)
   If .Value = Mth Then
     Set MyR = Range(Cells(2, Clc), .Cells.Offset(1)) _
     .SpecialCells(4)
   Else
     Set MyR = Range(Cells(2, Clc), .Cells).SpecialCells(4)
   End If
  End With
  With ActiveSheet.TextBoxes
   If .Count = 1 Then
     .Text = ""
   ElseIf .Count = 0 Then
     .Add 0, 0, 200, 100
   End If
  End With
  MyV = "[ " & Mth & "月の集計 ]" & vbLf
  For Each C In MyR
   If C.Offset(-1).Value = Mth Then
     MyV = MyV & Cells(C.Row - 1, 4).Value & " : " & _
     Cells(C.Row, 4).Value & " 件" & vbLf
   ElseIf C.Offset(-1).Value > Mth Then
     Exit For
   End If
  Next
  MyV = Left$(MyV, Len(MyV) - 1)
  With ActiveSheet.TextBoxes(1)
   .Text = MyV
   .AutoSize = True
   .Shadow = True
   .Interior.ColorIndex = 20
  End With
  Set MyR = Nothing: Columns(Clc).ClearContents
  With Range("A1").CurrentRegion
   .RemoveSubtotal
   .Sort Key1:=Range("A1"), Order1:=xlAscending, _
   Header:=xlYes, Orientation:=xlSortColumns
  End With
ELine:
  Application.ScreenUpdating = True
End Sub

↓こちらは表のあるシートのシートモジュールに入れて下さい。

Private Sub Worksheet_Activate()
  ActiveSheet.TextBoxes.Delete
End Sub

3 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 お礼

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