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

Excelマクロ練習問題集、エクセルVBAの学習教材
公開日:2013年5月以前 最終更新日:2019-11-03

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

マクロVBA練習問題15の解答ページです。


マクロVBA練習問題

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

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

練習問題用のExcelファイル
シート「練習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入門
VBA入門シリーズは、マクロVBAを実務で自在に使いこなし業務を効率化・自動化できるようになることを目的としています。始めはより詳しく丁寧に解説しつつ少しずつ難易度を上げることで無理なく学習を進められるようにしています。「マクロ」と「VBA」の違い マクロはエクセルの操作を自動化する機能であり、

書くべきマクロVBAが分からない時は、
ここでじっくり勉強してから再チャレンジしてください。

マクロVBA練習問題解答

では解答のマクロVBAコードです。
※.Valueは適宜省略しています。

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ステートメント
Withステートメントを使う事で、Withに指定したオブジェクトに対してオブジェクト名を繰り返し記述することなく、オブジェクトのプロパティやメソッドを記述することができます。同じオブジェクトに対して様々な処理を行う時に、Withで1度だけ書いて、その後はオブジェクトを省略して書くことができます。
ExcelマクロVBA入門.第52回.オブジェクト変数
変数のデータ型の説明において、Object…オブジェクト型 というのがあった事を覚えているでしょうか。数値や文字ではなく、オブジェクトを入れる変数がオブジェクト変数です。オブジェクトと言っても、いろいろなものがあります。



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

練習問題12(日付関数の練習)解答
練習問題13(文字列関数の練習)解答
練習問題14(行の挿入・削除の練習)解答
練習問題15(Withとオブジェクト変数の練習)解答
練習問題16(WorksheetFunctionの練習)解答
練習問題17(ブック・シートの操作の練習)解答
練習問題18(Dir関数の練習)解答
練習問題19(総合練習1)解答
練習問題20(総合練習2)解答
練習問題21(総合練習3)解答
練習問題22(総合練習4)解答


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

ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.ひらがな⇔カタカナの変換|エクセル基本操作
5.繰り返し処理(For Next)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.Findメソッド(Find,FindNext,FindPrevious)|VBA入門




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


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


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