ExcelマクロVBA練習問題解答
練習問題16(WorksheetFunctionの練習)解答

Excelマクロ練習問題集、エクセルVBAの学習教材
最終更新日:2019-06-27

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

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

マクロVBA練習問題

・シート「練習16_マスタ」より、商品名と単価を取得し、
 それぞれのセル(C列とD列)に入れて下さい。
・シート「練習16_マスタ」に存在しない場合は、空欄のままにして下さい。
・各行の金額(単価×数量)を計算しF列に入れてください。、
・F12セルに合計金額を計算し入れて下さい。

練習問題用のExcelファイル
シート「練習16」
 A   B    C    D  E  F


商品番号 商品名 単価 数量 金額
1 A06     3  
2 A07     2  
3 A02     4  
4 A08     5  
5 A01     6  
6 A03     1  
7 A04     4  
8 A09     3  
9 A10     7  
10 A05     2  
        合計  

シート「練習16_マスタ」
  A      B    C
商品番号 商品名 単価
A01 商品△1 1100
A02 商品△2 1200
A03 商品△3 1300
A05 商品△5 1500
A06 商品△6 1600
A08 商品△8 1800
A09 商品△9 1900
A10 商品△10 2000

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

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

シンキングタイム

シンキングタイム開始


シンキングタイム終了

当サイトのコンテンツ
ExcelマクロVBA入門
ExcelVBAとはエクセルの操作を自動化するマクロ機能で使われているプログラミング言語です。VBAは「MicrosoftVisualBasicApplications」の略になります。このVBA入門シリーズでは実務で必要とされるVBAの入門として基本から応用までのVBA全般を解説していきます。

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

マクロVBA練習問題解答

では解答のマクロVBAコードです。



Sub 練習問題16()
  Dim i As Long
  Dim ix As Long
  Dim lngTotal As Long
  Dim ws1 As Worksheet
  Dim ws2 As Worksheet
  Set ws1 = Worksheets("練習16")
  Set ws2 = Worksheets("練習16_マスタ")
  lngTotal = 0
  With ws1
    For i = 2 To 11
      ix = WorksheetFunction.CountIf(ws2.Columns(1), .Cells(i, 2))
      If ix > 0 Then
        ix = WorksheetFunction.Match(.Cells(i, 2), ws2.Columns(1), False)
        .Cells(i, 3) = ws2.Cells(ix, 2)
        .Cells(i, 4) = ws2.Cells(ix, 3)
        .Cells(i, 6) = .Cells(i, 4) * .Cells(i, 5)
        lngTotal = lngTotal + .Cells(i, 6)
      End If
    Next
    .Cells(12, 6) = lngTotal
  End With
End Sub

ここでの書き方は色々と考えられます。
On Err Resume Nextでのエラー処理も使いたいところですが、
あえて、ワークシート関数のCountIfでの存在確認をするように書いてみました。

ワークシート関数は非常に便利で、しかも、高速に動作します。
他の開発言語にはない、ExcelマクロVBAならではの機能です。
ぜひ、積極的に活用しましょう。

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

ExcelマクロVBA入門.第87回.WorksheetFunction(ワークシート関数を使う)



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

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


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

VBAクラスのAttributeについて(既定メンバーとFor Each)|VBA技術解説(10月19日)
VBAの用語について:ステートメントとは|VBA技術解説(10月16日)
VBAのマルチステートメント(複数のステートメントを同じ行に)|VBA技術解説(10月14日)
VBAコードの全プロシージャー・プロパィ一覧を取得|VBAサンプル集(10月12日)
VBAでエラー行位置(行番号)を取得できるErl関数|VBA技術解説(10月11日)
手動計算時の注意点と再計算方法|ExcelマクロVBA技術解説(10月9日)
引数の数を可変にできるパラメーター配列(ParamArray)|VBA入門(10月7日)
VBEの使い方:デバッグ|ExcelマクロVBA入門(10月6日)
VBAにおける配列やコレクションの起点について|VBA技術解説(10月5日)
VBEの使い方:オブジェクト ブラウザー|VBA入門(10月5日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.セルに文字を入れるとは(Range,Value)|VBA入門



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

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


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




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