VBA練習問題解答
練習問題19(総合練習1)解答

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

練習問題19(総合練習1)解答

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


マクロVBA練習問題

・下記表の空欄を全て埋めて下さい。
・客単価は、小数以下1桁で表示。
・1週間の合計の客単価より低い日の客単価は赤字にして下さい。

※客単価 = 売上 ÷ 客数

練習問題用のExcelファイル
  A     B     C    D
   月曜日 火曜日 水曜日 木曜日 金曜日 土曜日 日曜日 合計
第1週    日付 1月30日 1月31日 2月1日 2月2日 2月3日 2月4日 2月5日  
売上 74,233 51,133 55,347 19,689 56,239 49,860 61,796  
客数 81 71 49 90 88 51 14  
客単価                
第2週    日付 2月6日 2月7日 2月8日 2月9日 2月10日 2月11日 2月12日  
売上 75,717 54,261 57,582 20,892 55,137 47,925 59,398  
客数 80 67 51 91 91 49 15  
客単価                
第3週    日付 2月13日 2月14日 2月15日 2月16日 2月17日 2月18日 2月19日  
売上 77,231 52,155 53,199 20,082 51,958 50,857 63,031  
客数 83 66 50 89 90 50 13  
客単価                
第4週    日付 2月20日 2月21日 2月22日 2月23日 2月24日 2月25日 2月26日  
売上 72,778 53,198 56,453 20,483 52,997 48,883 60,585  
客数 79 69 52 92 92 51 14  
客単価                
合計   売上                
客数                
客単価                

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

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

シンキングタイム

シンキングタイム開始


シンキングタイム終了

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

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

マクロVBA練習問題解答

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

Sub 練習問題19()
  Dim i As Long
  Dim j As Long
  Dim ix As Long

  '全体のfont色をリセット
  Range("A1:J20").Font.ColorIndex = xlAutomatic
  '合計欄の消去
  Range("J2:J20").ClearContents
  Range("C18:I20").ClearContents
   '合計単価の小数設定
  Range("C20:I20").NumberFormatLocal = "0.0"

  '4週
  For i = 1 To 4
    ix = (i - 1) * 4 + 2 '日付の行位置
    '単価の消去と小数設定
    With Range(Cells(ix + 3, 3), Cells(ix + 3, 10))
      .NumberFormatLocal = "0.0"
      .ClearContents
    End With
    '7列
    For j = 3 To 9
      '横合計と客単価
      Cells(ix + 1, 10) = Cells(ix + 1, 10) + Cells(ix + 1, j)
      Cells(ix + 2, 10) = Cells(ix + 2, 10) + Cells(ix + 2, j)
      Cells(ix + 3, j) = Cells(ix + 1, j) / Cells(ix + 2, j)
      '縦合計
      Cells(18, j) = Cells(18, j) + Cells(ix + 1, j)
      Cells(19, j) = Cells(19, j) + Cells(ix + 2, j)
      '縦合計の客単価
      If i = 4 Then
        Cells(20, j) = Cells(18, j) / Cells(19, j)
      End If
    Next
    '横合計の客単価
    Cells(ix + 3, 10) = Cells(ix + 1, 10) / Cells(ix + 2, 10)
    For j = 3 To 9
      If Cells(ix + 3, j) < Cells(ix + 3, 10) Then
        Cells(ix + 3, j).Font.Color = vbRed
      End If
    Next
    '縦横合計
    Cells(18, 10) = Cells(18, 10) + Cells(ix + 1, 10)
    Cells(19, 10) = Cells(19, 10) + Cells(ix + 2, 10)
  Next

  '縦横合計の客単価
  Cells(20, 10) = Cells(18, 10) / Cells(19, 10)
End Sub

難しくはないですが、結構面倒な処理になります。
縦横の順番や書き方はいろいろあります。
Worksheetfunction.Sumを使うような方法もあり得ます。
いろいろな書き方に挑戦してみて下さい。



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

練習問題16(WorksheetFunctionの練習)解答

マクロVBA練習問題16の回答ページです。マクロVBA練習問題 ・シート「練習16_マスタ」より、商品名と単価を取得し、それぞれのセル(C列とD列)に入れて下さい。・シート「練習16_マスタ」に存在しない場合は、空欄のままにして下さい。
練習問題17(ブック・シートの操作の練習)解答
マクロVBA練習問題17の解答ページです。マクロVBA練習問題 ※まず最初に A列にパス、B列にブック名(エクセルのファイル名)を、実際のあなたのPC環境に合わせて入力して下さい。・シート「練習17_回答」を新規に追加し、そのA列にブック名 B列にそのブックの全シート名の一覧を入れて下さい。
練習問題18(Dir関数の練習)解答
マクロVBA練習問題18の解答ページです。マクロVBA練習問題 ・A1に指定したフォルダ内にある、全てのエクセルファイル(xls,xlsx,xlsm)のブック名をA2以降に、そのブックの全シート名をB2から右に入れて下さい。(B2,C2,D2,…そのブックの全シート名を横に入れていく) ※サブフォルダ以下のファイル…
練習問題19(総合練習1)解答
練習問題20(総合練習2)解答
マクロVBA練習問題20の解答ページです。マクロVBA練習問題 ・「元表」を下の「出来上がりサンプル」のようにして下さい。・月が変わったら1行挿入して、挿入した行に月の合計売上を入れて下さい。A列に、○月合計 B列に、売上の合計 それぞれ太字にして下さい。
練習問題21(総合練習3)解答
マクロVBA練習問題21の解答ページです。マクロVBA練習問題 ・A列の都道府県から重複を失くし(ユニークにして)、D列に入れて下さい。・都道府県別の合計売上をE列に入れて下さい。練習問題用のExcelファイル こちらからダウンロードできます。
練習問題22(総合練習4)解答
マクロVBA練習問題22の解答ページです。マクロVBA練習問題 ・シート「練習22」では、各伝票の1行から6行が横に並んでいます。これを、シート「練習22_回答」を新規追加し、各伝票の行を縦に並べて下さい。
練習問題23(総合練習5)解答
マクロVBA練習問題23の解答ページです。マクロVBA練習問題 ・A2セルに日付、B2セルに名前を指定します。この条件に合うデータを、シート「練習23_データ」から抜出し、5行目以降に表示して下さい。
練習問題24(再帰呼出し)解答
マクロVBA練習問題24の解答ページです。マクロVBA練習問題 ・以下の表の全組み合わせを作成して下さい。サンプルデータでは、組み合わせの数は、8*3*6*5=720通りです。・各項目はカンマ(,)で区切って下さい。
練習問題25(各種VBA関数)解答
マクロ練習問題25の解答ページです。マクロVBA練習問題 ・以下の表において、課題に従って元データより回答欄に出力して下さい。※1問目なら、回答欄に"Excelマクロ(vba)練習"と出力する。
練習問題26(全シート処理とハイパーリンク)解答
マクロVBA練習問題26の解答ページです。マクロVBA練習問題 全シートのハイパーリンク付き一覧を先頭シートに作成します。現在のブックの先頭に新規シートを追加し、既存シートのシート名一覧をハイパーリンク付きで作成して下さい。


新着記事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」をお願いいたします。
本文下部へ