![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になっております。
VBA学習中のものです。
貼付資料のような処理をマクロで行いたいと考えています(学習もかねて)。
既存データ(『H25』シート)発注機関ごとに、(業務名)(入札会社)(金額)(結果)が記載されています。
↓
作成データ(『受注状況』シート) マクロ実行前⇒マクロ実行後 になるようにマクロを組みたいと考えています。
現在の私の知識で考えた処理の手順
(1)重複しないように入札会社名を抽出しB列に列挙
↓
(2)各会社名の下に行を2行挿入し、入札、落札、金額を記入
↓
(3)発注機関と入札会社名から件数及び金額を記入
↓
(4)金額順に並び替え
で行けるかな??と考えています。
(1)(2)(4)に関しては、今の私の知識で行けるのですが、(3)が問題です。。。
IF構文と繰返し構文を使って・・・なんて考えたのですが、イマイチ分かりません。
どなたか、ご教授をお願いいたします。
また、前提条件とした処理の手順にご指摘が有ればよろしくお願いします。
![「エクセルVBA データの集計」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/5/1132226_5497d51c70edf/M.jpg)
No.1ベストアンサー
- 回答日時:
(1)重複しないように入札会社名を抽出しB列に列挙
↓
(2)各会社名の下に行を2行挿入し、入札、落札、金額を記入
↓
(3)発注機関と入札会社名から件数及び金額を記入
↓
(4)金額順に並び替え
上記(3)のみの一例ですが。
「受注状況」の2行目から最終行まで繰り返し処理で
「H25」シートを
(A)オートフィルタで「会社名」「件名」で絞ってから入札件数を取得
(B)追加で空白以外で絞ってから落札件数を取得
(C)金額(D列)のフィルタ後の合計値を取得
取得した値を「受注状況」へ書き出し
最終行はFor i = 2 To Cells(Rows.Count,"A").End(xlUp).Rowとかで回してください。
■(A)オートフィルタで「会社名」「件名」で絞ってから入札件数を取得
Sheets("H25").Columns("A:E").AutoFilter Field:=3, Criteria1:="A社"
Sheets("H25").Columns("A:E").AutoFilter Field:=1, Criteria1:="栃木県"
MsgBox Sheets("H25").AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count - 1
■(B)追加で空白以外で絞ってから落札件数を取得
Sheets("H25").Columns("A:E")..AutoFilter Field:=5, Criteria1:="<>"
MsgBox Sheets("H25").AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count - 1
■金額(D列)のフィルタ後の合計値を取得
MsgBox WorksheetFunction.Sum(Sheets("H25").Columns("D").SpecialCells(xlCellTypeVisible))
※)ループ内の先頭でフィルターを以下の処理で全表示してください
On Error Resume Next
mySt.ShowAllData
On Error GoTo 0
No.2
- 回答日時:
No1の捕捉と訂正です。
■訂正
最後のフィルター全表示は以下のようにしてください。
Sheets("H25").ShowAllData
■補足
No1の(A)~(C)は「H25」シートに対して行う処理になります。
If構文やForループ等はご存じかとおもいますので省きますが、
たとえば以下のように
「受注状況」シートの処理においてはSelect構文で
「入札、落札、金額」を判定されると良いかと思います。
Dim 最終行 As Long
最終行 = Cells(Rows.Count , "A").End(xlUp).Row
For i = 2 To 最終行
For j = 4 To 7
Select Case (i - 2) Mod 3
Case 0
処理(A)
Case 1
処理(B)
Case 2
処理(C)
End Select
'出力処理
Sheets("受注状況").Cells(i , j) = 取得値
Next j
Next i
http://officetanaka.net/Excel/vba/speed/index.htm
まぁ、大量にデータがあるのであれば配列を確保しておいてから、
集計して一気に出力する方が高速ですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Excel(エクセル) Excel使用前提 同じフォルダ内にあるファイルの集約等をマクロでできますか 4 2022/09/06 19:03
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ヤフオクの自動入札って何です...
-
ヤフオクのつりあげ者の見分け...
-
入札3件なのに金額が変わらない...
-
ebay の 予約入札の単位 Gixen
-
ヤフオクの自動入札同士って価...
-
ヤフオクで「最低落札価格」設...
-
ヤフーオークションで数量が複...
-
ヤフオク 最後の1秒
-
ヤフーオークションでIDが利用...
-
モバオクについて
-
入札の競り合い
-
ヤフオク
-
ヤフオク入札単位について
-
ヤフオクの送料詐欺。なぜなく...
-
音楽の鑑賞文
-
ヤフオクで落札者が荷物を受け...
-
ヤフオクで入札取消しを拒否さ...
-
ヤフオクで評価内容(過去の落札...
-
ヤフオク初心者ですが 出品者に...
-
自分の出品を別アカで自己落札...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ヤフオクの自動入札って何です...
-
「入札」の反対語・対照語は?
-
入札3件なのに金額が変わらない...
-
ヤフオクのつりあげ者の見分け...
-
ヤフオクの自動入札同士って価...
-
ヤフオクの入札を複数個に変更...
-
ヤフオク 最後の1秒
-
ヤフーオークションでIDが利用...
-
ヤフオクで「最低落札価格」設...
-
ヤフオクで最高額入札者なのに...
-
ヤフオクについてです。 ヤフオ...
-
ヤフオクの自動入札がよくわり...
-
入札者は一人なのに入札価格が...
-
楽オクで頭にきたできごと…
-
ヤフーオークションで数量が複...
-
Yahoo!オークションの自動入札...
-
ebay の 予約入札の単位 Gixen
-
どうして端数がある変な価格な...
-
最低落札価格より開始価格が低...
-
入札額を下げられません。(ヤ...
おすすめ情報