ExcelマクロVBA練習問題解答 | 練習問題16(WorksheetFunctionの練習)回答 | Excelマクロ練習問題集、エクセルVBAの学習教材



最終更新日:2015-10-22

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

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


問題

・シート「練習16_マスタ」より、商品名と単価を取得し、それぞれのセルに入れて下さい。
・シート「練習16_マスタ」に存在しない場合は、空欄のままにして下さい。

・各行の金額と、合計を計算し入れて下さい。

シート「練習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入門

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



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




では、回答です。

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でのエラー処理も使いたいところですが、
あえて、ワークシート関数のSumIfでの存在確認をするように書いてみました。を

ワークシート関数は非常に便利で、しかも、高速に動作します。
他の開発言語にはない、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)回答

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

数値範囲で表検索するVLOOKUP近似一致|エクセル関数超技(10月5日)
エクセルVBAでのシート指定方法|VBA技術解説(9月8日)
VBAのクラスとは(Class,Property,Get,Let,Set)|VBA技術解説(8月28日)
VBAこれだけは覚えておきたい必須基本例文10|VBA技術解説(8月22日)
VBAの省略可能な記述について|ExcelマクロVBA技術解説(8月11日)
複数条件判定を行う時のコツ|ExcelマクロVBA技術解説(7月11日)
For Next の使い方いろいろ|VBA技術解説(6月14日)
VBAを定型文で覚えよう|ExcelマクロVBA技術解説(3月26日)
VBAスタンダード試験対策まとめ|MOS VBAエキスパート対策(3月16日)
ユーザーフォームとメニューの操作|MOS VBAエキスパート対策(3月14日)

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

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数とデータ型(Dim)|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.RangeとCellsの使い方|ExcelマクロVBA入門
6.定数と型宣言文字(Const)|ExcelマクロVBA入門
7.ひらがな⇔カタカナの変換|エクセル基本操作
8.マクロって何?VBAって何?|ExcelマクロVBA入門
9.繰り返し処理(For Next)|ExcelマクロVBA入門
10.とにかく書いて見よう(Sub,End Sub)|VBA入門



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

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


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





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

    本文下部へ

    ↑ PAGE TOP