VBA

VBA プログラミング WorksheetFunctionの使い方

目安時間 5分
  • コピーしました

VBA関数以外に、Excelワークシート関数をマクロVBAで使うことが出来ます、
ワークシート関数は、VBA関数よりはるかに多くの関数があるので、ぜひ活用してください。
ワークシート関数を使う事で、VBAコードを非常に簡潔に記述することが出来る場合が多いです。
しかも、劇的な速度向上になりますので、使わない手はない。
【課題】
シート「商品マスタ」より、商品名と単価を取得する。
シート「商品売上」のC列とD列に商品名と単価入れる。
シート「商品マスタ」に存在しない場合は、空欄のままにする。
シート「商品売上」の単価×数量を計算し金額(F列)に入れる。
シート「商品売上」のF12セルに合計金額を計算し入れる。

【VBA】

Sub wsf()
  Dim i As Long
  Dim ix As Long
  Dim lngTotal As Long
  Dim ws1 As Worksheet
  Dim ws2 As Worksheet
  Set ws1 = Worksheets("商品売上")
  Set ws2 = Worksheets("商品マスタ")
  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), 0)
        .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


簡単な説明
「With ws1」については、前回の記事を参照してください。
「WorksheetFunction.CountIf(ws2.Columns(1), .Cells(i, 2))」は、商品番号検索処理。
・シート「商品マスタ」と、シート「商品売上」の同じ商品番号の数を取得する。
「If ix > 0 Then」は、商品番号の数の比較をする。
・同じ商品番号があればIf文内の処理を行う。
「WorksheetFunction.Match(.Cells(i, 2), ws2.Columns(1), 0)」
・シート「商品マスタ」と、シート「商品売上」の完全一致の商品番号を検索を行う。
・最後の「0」が完全一致を表す。
・その他「-1」は、「検査値」以上の最小値。「1」は、「検査値」以下の最大値。
「.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)」は、シート「商品売上」の合計に設定する値を算出。
「.Cells(12, 6) = lngTotal」は、シート「商品売上」の合計に設定する。

あなたのお役に立てるなら、コピーして使用してください。

今後も勉強した内容を記載して行きますので、お役に立てるものがあれば使ってください。

VBA開発もしておりますので開発のご要望があればご連絡をください。

VBA開発依頼受付はこちらから

  • コピーしました

この記事に関連する記事一覧

この記事を書いた人

すーさん

生きるためにはお金が必要

すーさん

50歳を超えてから副業を始めました。 どのような副業をしようか、悩みに悩んだ結果、『どんなものでも売る力』をつける。 これしかないです。 そのために、マーケティングを学ぶことを決めました。 古来より、価値の交換(ものを売る)は行われてきました。 これからも、価値の交換(ものを売る)は無くなるとは思えません。 今だけ稼ぎたいなら他にも選択はあるが、年と共に覚えも悪くなるので、いつまでも使える知識としてマーケティングを選びました。 マーケティングは学べば学ぶほど面白いものです。 人はどうしてそれを選ぶのだろう、人はどうしてそれを買うのだろう、人はどうしてそれを買わないのだろう。 このようなことがわかれば、後はどのようにすれば、人は選び、買ってくれるのかがわかります。 あなたも少しでも興味がありましたら、私と一緒に学びましょう。 「売れなかったものでも」「どんなものでも」『売る力』を身につけましょう。 お問い合わせ

コメントフォーム

名前  (必須)

メールアドレス (公開されません) (必須)

URL (空白でもOKです)

コメント

CAPTCHA


トラックバックURL: 
 プロフィール

すーさん

生きるためにはお金が必要

すーさん

50歳を超えてから副業を始めました。 どのような副業をしようか、悩みに悩んだ結果、『どんなものでも売る力』をつける。 これしかないです。 そのために、マーケティングを学ぶことを決めました。 古来より、価値の交換(ものを売る)は行われてきました。 これからも、価値の交換(ものを売る)は無くなるとは思えません。 今だけ稼ぎたいなら他にも選択はあるが、年と共に覚えも悪くなるので、いつまでも使える知識としてマーケティングを選びました。 マーケティングは学べば学ぶほど面白いものです。 人はどうしてそれを選ぶのだろう、人はどうしてそれを買うのだろう、人はどうしてそれを買わないのだろう。 このようなことがわかれば、後はどのようにすれば、人は選び、買ってくれるのかがわかります。 あなたも少しでも興味がありましたら、私と一緒に学びましょう。 「売れなかったものでも」「どんなものでも」『売る力』を身につけましょう。 お問い合わせ

最近の投稿
アーカイブ