ExcelマクロVBA練習問題解答 | 練習問題15(Withとオブジェクト変数の練習)回答 | Excelマクロ練習問題集、エクセルVBAの学習教材



最終更新日:2015-10-22

練習問題15(Withとオブジェクト変数の練習)回答

練習問題15の回答ページです、


問題

・シート「練習15」の表データを、
 シート「練習15_回答」に支店別・分類別に集計して下さい。

※シート「練習15_回答」には、すべての支店と分類が必ずあるとします。

シート「練習15」
 A     B              C
支店 分類 売上
支店C 合成清酒 1001006
支店B 清酒 1172205
支店C その他の発泡性酒類 1136914
支店D 果実酒 455111
支店D ビール 1231967
支店C その他の醸造酒 1404305
支店D その他の発泡性酒類 1298529
支店D その他の醸造酒 1448124
支店D 甘味果実酒 1071423
支店A 粉末酒 1249380
支店B 連続式蒸留しようちゆう 536416
支店A ロ みりん 1301359
支店C 果実酒 344570
支店A 原料用アルコール 1044944
支店D 粉末酒 1297892
支店B ビール 669421
支店C ビール 362744
支店D スピリッツ 1025051
支店B スピリッツ 1178844
支店B 甘味果実酒 388836
支店A その他の発泡性酒類 624830
支店A 発泡酒 1325292
支店A ビール 412933
支店C ウイスキー   1027750
支店C ロ みりん 454220
支店D 発泡酒 1291931
支店C 単式蒸留しようちゆう 233416
支店B 粉末酒 1214563
支店B リキュール 979057
支店B 果実酒 1158538
支店A 合成清酒 294283
支店D 雑酒 939082
支店D ウイスキー   571864
支店A 単式蒸留しようちゆう 339300
支店A その他の醸造酒 1102462
支店A 果実酒 966168
支店A ウイスキー   78108
支店D 清酒 650958
支店D 連続式蒸留しようちゆう 395529
支店B 原料用アルコール 439710
支店B ブランデー 533839
支店D 原料用アルコール 495471
支店C 甘味果実酒 69984
支店D リキュール 532207
支店D ロ みりん 1034702
支店C 粉末酒 145124
支店B 合成清酒 1043182
支店B 雑酒 888437
支店A 甘味果実酒 194900
支店C 原料用アルコール 146405
支店D 合成清酒 439935
支店C 清酒 377624
支店C スピリッツ 558986
支店D 単式蒸留しようちゆう 1261683
支店A 連続式蒸留しようちゆう 540594
支店A 清酒 471054
支店B その他の醸造酒 310432
支店C リキュール 1212549
支店B 発泡酒 232262
支店B ウイスキー   663430
支店B ロ みりん 490343
支店B 単式蒸留しようちゆう 1367145
支店C 発泡酒 329948
支店D ブランデー 891014
支店A ブランデー 1043717
支店C 連続式蒸留しようちゆう 673570
支店C ブランデー 779012
支店C 雑酒 93826
支店A スピリッツ 1253814
支店B その他の発泡性酒類 526029
支店A リキュール 1441814
支店A 雑酒 1210891
支店C 合成清酒 56880
支店B 清酒 1157992
支店C その他の発泡性酒類 1141592
支店D 果実酒 1454335
支店D ビール 135035
支店C その他の醸造酒 668001
支店D その他の発泡性酒類 991113
支店D その他の醸造酒 967935
支店D 甘味果実酒 400010
支店A 粉末酒 1162674
支店B 連続式蒸留しようちゆう 1199299
支店A ロ みりん 440938
支店C 果実酒 601575
支店A 原料用アルコール 1109947
支店D 粉末酒 60734
支店B ビール 567092
支店C ビール 488883
支店D スピリッツ 406451
支店B スピリッツ 1074086
支店B 甘味果実酒 608881
支店A その他の発泡性酒類 366384
支店A 発泡酒 80285
支店A ビール 409771
支店C ウイスキー   602353
支店C ロ みりん 523270
支店D 発泡酒 754901
支店C 単式蒸留しようちゆう 157183
支店B 粉末酒 327405
支店B リキュール 478140
支店B 果実酒 1044214
支店A 合成清酒 320601
支店D 雑酒 662632
支店D ウイスキー   504202
支店A 単式蒸留しようちゆう 1103739
支店A その他の醸造酒 1078830
支店A 果実酒 1308749
支店A ウイスキー   907246
支店D 清酒 496522
支店D 連続式蒸留しようちゆう 787874
支店B 原料用アルコール 865983
支店B ブランデー 1446692
支店D 原料用アルコール 111860
支店C 甘味果実酒 1198192
支店D リキュール 770600
支店D ロ みりん 796002
支店C 粉末酒 858488
支店B 合成清酒 1479498
支店B 雑酒 644502
支店A 甘味果実酒 388873
支店C 原料用アルコール 649876
支店D 合成清酒 1351602
支店C 清酒 521042
支店C スピリッツ 408558
支店D 単式蒸留しようちゆう 1268368
支店A 連続式蒸留しようちゆう 208250
支店A 清酒 283322
支店B その他の醸造酒 149931
支店C リキュール 595659
支店B 発泡酒 123437
支店B ウイスキー   533389
支店B ロ みりん 1233804
支店B 単式蒸留しようちゆう 782049
支店C 発泡酒 111567
支店D ブランデー 840835
支店A ブランデー 442345
支店C 連続式蒸留しようちゆう 474321
支店C ブランデー 923999
支店C 雑酒 944450
支店A スピリッツ 1369381
支店B その他の発泡性酒類 55438
支店A リキュール 784134
支店A 雑酒 1125338
支店B 連続式蒸留しようちゆう 240716
支店A ロ みりん 306777
支店C 果実酒 1327018
支店A 原料用アルコール 444335
支店D 粉末酒 365650
支店B ビール 484170
支店C ビール 126944
支店D スピリッツ 1393990
支店B スピリッツ 470088
支店B 甘味果実酒 61850
支店A その他の発泡性酒類 1130446
支店A 発泡酒 630255
支店A ビール 120791
支店C ウイスキー   1435654
支店C ロ みりん 1291615
支店D 発泡酒 952385
支店C 単式蒸留しようちゆう 694294
支店B 粉末酒 56705
支店B リキュール 1167586
支店B 果実酒 494309
支店A 合成清酒 97617
支店D 雑酒 94165
支店D ウイスキー   1199899
支店A 単式蒸留しようちゆう 392822
支店A その他の醸造酒 976822
支店A 果実酒 388638
支店A ウイスキー   1413481
支店D 清酒 736967
支店D 連続式蒸留しようちゆう 103871
支店B 原料用アルコール 651914
支店B ブランデー 620825
支店D 原料用アルコール 1194135
支店C 甘味果実酒 110981
支店D リキュール 354213
支店D ロ みりん 1135044
支店C 粉末酒 411649
支店B 合成清酒 1215873
支店B 雑酒 637486
支店A 甘味果実酒 1090798
支店C 原料用アルコール 187735
支店D 合成清酒 1093935
支店C 清酒 148829
支店C スピリッツ 1150820
支店D 単式蒸留しようちゆう 793480
支店A 連続式蒸留しようちゆう 1249634


シート「練習15_回答」
  A              B   C   D   E
  支店A 支店B 支店C 支店D
ビール        
発泡酒        
その他の発泡性酒類        
清酒        
果実酒        
その他の醸造酒        
連続式蒸留しようちゆう        
単式蒸留しようちゆう        
ウイスキー          
ブランデー        
原料用アルコール        
スピリッツ        
合成清酒        
ロ みりん        
甘味果実酒        
リキュール        
粉末酒        
雑酒        

※上記表の全体選択し、コピー(Ctrl+C)の後、エクセルのシートのA1セルに貼り付け(Ctrl+V)してください。


では、お考えください。

すぐに回答を見ずに、必ず自力で書けるとこまででも良いので書きましょう。


・・
・・・
・・・・
・・・・・

当サイトのコンテンツ

ExcelマクロVBA入門

ここで、じっくり勉強して下さい。



・・
・・・
・・・・
・・・・・




では、回答です。

Sub 練習問題15()
  Dim i As Long
  Dim ixR As Long
  Dim ixC As Long
  Dim ws1 As Worksheet
  Dim ws2 As Worksheet
  Set ws1 = Worksheets("練習15")
  Set ws2 = Worksheets("練習15_回答")
  ws2.Range("A1").CurrentRegion.Offset(1, 1).ClearContents
  With ws1
    For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
      ixC = 2
      Do Until ws2.Cells(1, ixC) = .Cells(i, 1)
        ixC = ixC + 1
      Loop
      ixR = 2
      Do Until ws2.Cells(ixR, 1) = .Cells(i, 2)
        ixR = ixR + 1
      Loop
      ws2.Cells(ixR, ixC) = ws2.Cells(ixR, ixC) + .Cells(i, 3)
    Next
  End With
End Sub


クロス集計といわれるものです。
本来はWorksheetFunction.Matchを使ったり、配列を使ったりと、
もっと速度対策を施したコードにするべきところですが、
これらは、この後の練習問題でやりますので、
ここでは、基本的なクロス集計のロジックの組み立ての学習をして下さい。

ws2.Range("A1").Offset(1, 1).ClearContents
この部分は、初期クリアーになります。
クリアの範囲していには色々ありますが、これが基本の定型文として覚えて下さい。

以下も参考にして下さい。

ExcelマクロVBA入門.第51回.Withステートメント

ExcelマクロVBA入門.第52回.オブジェクト変数




同じテーマ「ExcelマクロVBA練習問題解答」の記事

練習問題16(WorksheetFunctionの練習)回答
練習問題17(ブック・シートの操作の練習)回答
練習問題18(Dir関数の練習)回答
練習問題19(総合練習1)回答
練習問題20(総合練習2)回答
練習問題21(総合練習3)回答
練習問題22(総合練習4)回答

新着記事 ・・・新着記事一覧を見る

空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)
CSVの読み込み方法(改の改)|ExcelマクロVBAサンプル集(3月17日)
変数とプロシージャーの命名について|ExcelマクロVBA技術解説(2月12日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.ひらがな⇔カタカナの変換|エクセル基本操作
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
6.変数とデータ型(Dim)|ExcelマクロVBA入門
7.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
8.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.定数と型宣言文字(Const)|ExcelマクロVBA入門



  • >
  • >
  • >
  • 練習問題15(Withとオブジェクト変数の練習)回答

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    ↑ PAGE TOP