VBA

VBAで「日付と曜日」使って集計表示する

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

今回は、日付から曜日を求めて「売上合計」「日数」「平均売上」を集計する
【課題】
売上合計が多い順に背景色を設定
売上合計1位背景色 → 赤
売上合計2位背景色 → 緑
売上合計3位背景色 → 水色
G2〜I8に「売上合計」「日数」「平均売上」を設定する

【VBA】

Sub weekdate()
    Dim i As Long
    Dim lp As Long
    Dim intW As Integer
    Range("G2:I8").ClearContents
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        intW = Weekday(DateSerial(Cells(i, 1), Cells(i, 2), Cells(i, 3)), vbMonday)
        Cells(intW + 1, 7) = Cells(intW + 1, 7) + Cells(i, 4)
        Cells(intW + 1, 8) = Cells(intW + 1, 8) + 1
    Next
    For i = 1 To 7
        Cells(i + 1, 9) = Cells(i + 1, 7) / Cells(i + 1, 8)
    Next
    Set rng_jp = Range("G2:G8")
    lp = 2
    For Each Rng In rng_jp
        rk = WorksheetFunction.Rank(Rng.Value, rng_jp)
        Select Case rk
            Case 1
                Cells(lp, 7).Interior.Color = vbRed
            Case 2
                Cells(lp, 7).Interior.Color = vbGreen
            Case 3
                Cells(lp, 7).Interior.Color = vbCyan
        End Select
        lp = lp + 1
    Next
End Sub


簡単な説明
・「Range("G2:I8").ClearContents」では、セル範囲の値をクリアをする
・「Cells(Rows.Count, 1).End(xlUp).Row」は以前説明をしたのでこちらを御覧ください
・「DateSerial(year,month,day)」は、3つの引数で指定された日付を意味するシリアル値を返す
ー 引数yearは、年を表す0〜9999の範囲の数値または数式を指定します。
ー 引数monthは、月を表す1〜12の範囲の数値または数式を指定します。
ー 引数dayは、日を表す1〜31の範囲の数値または数式を指定します。
ー ※ 引数yearに0〜29を指定すると、2000年〜2029年と読み替えられます。
ー また、30〜99を指定すると、1939年〜1999年と読み替えられます。
・「Weekday(シリアル値,種類)」は、シリアル値から曜日に対応する数値を求める。
・「vbMonday」は、「DateSerial(Cells(i, 1), Cells(i, 2), Cells(i, 3))」で指定した日付が何曜日かを返す。
・「Cells(i + 1, 9) = Cells(i + 1, 7) / Cells(i + 1, 8)」は平均売上を算出する。
・「Set rng_jp = Range("G2:G8")」は、Setを使ってRange型変数に代入する。
・「WorksheetFunction.Rank(Rng.Value, rng_jp)」は、指定された範囲の中で数値の高い順位を返します。
・「Select Case rk」は、1〜3位の背景色を設定する。

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

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

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

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

  • コピーしました

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

この記事を書いた人

すーさん

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

すーさん

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

コメントフォーム

名前  (必須)

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

URL (空白でもOKです)

コメント

CAPTCHA


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

すーさん

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

すーさん

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

最近の投稿
アーカイブ