VBA練習問題解答
練習問題20(総合練習2)解答

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

練習問題20(総合練習2)解答

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


マクロVBA練習問題

・「元表」を下の「出来上がりサンプル」のようにして下さい。
・月が変わったら1行挿入して、挿入した行に月の合計売上を入れて下さい。
 A列に、○月合計
 B列に、売上の合計
 それぞれ太字にして下さい。

※下に出来上がりサンプルがあります。

練習問題用のExcelファイル
元表
  A    B
日付 売上
1月1日 72778
1月2日 50131
1月3日 53199
1月4日 19689
1月5日 51958
1月6日 47925
1月7日 59398
1月8日 90072
1月9日 34529
1月10日 31438
1月11日 68503
1月12日 50072
1月13日 79666
1月14日 65678
1月15日 54750
1月16日 10675
1月17日 69021
1月18日 83697
1月19日 85693
1月20日 61482
1月21日 33488
1月22日 30215
1月23日 38957
1月24日 28897
1月25日 84546
1月26日 99548
1月27日 20791
1月28日 41829
1月29日 53036
1月30日 78958
1月31日 61127
2月1日 84110
2月2日 10899
2月3日 75030
2月4日 21923
2月5日 26074
2月6日 82228
2月7日 32832
2月8日 10172
2月9日 34976
2月10日 56789
2月11日 13350
2月12日 32685
2月13日 12884
2月14日 48129
2月15日 21450
2月16日 64164
2月17日 88569
2月18日 98465
2月19日 23664
2月20日 67282
2月21日 34529
2月22日 31438
2月23日 68503
2月24日 50072
2月25日 79666
2月26日 65678
2月27日 54750
2月28日 30215

出来上がりサンプル
1月1日 72778
1月2日 50131
・・・
1月31日 61127
1月合計 1711746
2月1日 84110
・・・
2月28日 30215
2月合計 1320526

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

では、お考えください。
すぐに解答を見ずに、必ず自力で書けるとこまででも良いので書きましょう。

シンキングタイム

シンキングタイム開始


シンキングタイム終了

当サイトのコンテンツ
ExcelマクロVBA入門
この「VBA入門」シリーズは、マクロVBAを習得し、日々のExcel作業を効率化・自動化できるようになることを目指します。VBAが初めての方でも無理なくステップアップできるよう、基礎から丁寧に、そして段階的に解説を進めます。そのため、シリーズ後半では入門レベルに留まらず、実務レベルで通用する高度なテクニックや幅広い知…

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

マクロ練習問題解答

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

Sub 練習問題20()
  Dim i As Long
  Dim mm As Integer
  Dim total As Long
  i = 2
  mm = Month(Cells(i, 1))
  total = 0
  Do Until Cells(i, 1) = ""
    If mm <> Month(Cells(i, 1)) Then
      Rows(i).Insert
      Cells(i, 1) = mm & "月合計"
      Cells(i, 2) = total
      Range(Cells(i, 1), Cells(i, 2)).Font.Bold = True
      total = 0
      i = i + 1
      mm = Month(Cells(i, 1))
    End If
    total = total + Cells(i, 2)
    i = i + 1
  Loop
  Cells(i, 1) = mm & "月合計"
  Cells(i, 2) = total
  Range(Cells(i, 1), Cells(i, 2)).Font.Bold = True
End Sub

表を処理する場合、同一の表内で行挿入等が必要な場合は、ちょっと面倒になります。
本来は、別シートに書き出すようにした方が、良い設計と言えます。
しかし、そのシート内で処理する必要が出る場合もありますので、
表内での行挿入や削除も練習しておきましょう。

注意として、
このように行挿入や削除がある場合は、
For~Nextでカウントアップせずに、
Do~Loopで自分でカウントアップした方が良いと言う事です。



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

練習問題17(ブック・シートの操作の練習)解答
練習問題18(Dir関数の練習)解答
練習問題19(総合練習1)解答
練習問題20(総合練習2)解答
練習問題21(総合練習3)解答
練習問題22(総合練習4)解答
練習問題23(総合練習5)解答
練習問題24(再帰呼出し)解答
練習問題25(各種VBA関数)解答
練習問題26(全シート処理とハイパーリンク)解答
練習問題27(データ分割し別ブック保存)解答


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

エクセル関数辞典 AI版|エクセル入門(6月10日)
生成AIと100本ノック 28本目:シートをブックに分割|生成AI活用研究(6月8日)
生成AIと脱Excelの時代:ブラックボックスと共に進む知的変革|生成AI活用研究(2025-06-08)
生成AIと100本ノック 27本目:ハイパーリンクのURL|生成AI活用研究(6月7日)
生成AIと100本ノック 26本目:ファイル一覧作成|生成AI活用研究(6月6日)
AI時代のプログラミング再考:記述の自由と知の民主化|生成AI活用研究(2025-06-06)
Excel×スプレッドシート連携:HTTP GETで学ぶGAS API設計入門|生成AI活用研究(2025-06-04)
AI×ひらめき ― 「ネタ」が飛躍する創造の増幅プロセス|生成AI活用研究(2025-06-03)
Googleカレンダーの日本の祝日をGASとExcelで取得する ~APIキー不要、XML連携ガイド~|生成AI活用研究(2025-06-02)
究極のVBA転記プロンプト公開!あなたの事務作業を劇的に効率化|生成AI活用研究(2025-06-02)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.変数宣言のDimとデータ型|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.FILTER関数(範囲をフィルター処理)|エクセル入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




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


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



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