説明2-4 VBAでの[月]・[週]の集計用キー
操作
[集計用キーの作成]ボタンと[集計用キーのクリア]ボタンを交互にクリックしましょう。上記「説明2-3」でのExcelでの算出結果が表示されたり消えたりします。
プロシージャ「説明用231_集計用キーの作成」の内容
[集計用キーの作成]ボタンのプロシージャを表示しましょう。
- Sub 説明用241_集計用キーの作成()
- Dim i As Long
- For i = 92 To 94
- Cells(i, 3).Value = Year(Cells(i, 2).Value)
- Cells(i, 4).Value = Month(Cells(i, 2).Value)
- Cells(i, 5).Value = Cells(i, 3).Value & Cells(i, 4).Value
- Cells(i, 6).Value = WorksheetFunction.WeekNum(Cells(i, 2).Value)
- Cells(i, 7).Value = Cells(i, 3).Value & Cells(i, 6).Value
- Next i
- End Sub
- 1行目:「Subプロシージャ」の開始
- 2行目:出力する行を格納する変数[i]を宣言
- 3~9行目:「For」~「Next」、カウンタ変数[i]を92(行目)から94(行目)までの値とし4~8行目の処理の繰り返し
- 4行目:セル[Bn]の日付をYear関数で「年」に変換し、セル[Cn]に格納
- 5行目:セル[Bn]の日付をMonth関数で「月」に変換し、セル[Dn]に格納
- 6行目:セル[Cn]とセル[Dn]を結合し、セル[En]に格納
- 6行目:セル[Bn]の日付をWeekNum関数で「週目」に変換し、セル[Fn]に格納
- 8行目:セル[Cn]とセル[Fn]を結合し、セル[Gn]に格納
- 10行目:「Subプロシージャ」の終了
【WeekNum関数】
上記Year・MonthはVBAの関数ですが、[WeekNum]関数はVBAにはありませんので、[WorksheetFunction.WeekNum]としてExcelの関数を使用しています。
このように、VBAは「WorksheetFunction」を付ければ、Excelの関数も利用できますので大変便利です。
プロシージャ「説明用232_集計用キーのクリア」の内容
[集計用キーのクリア]ボタンのプロシージャを表示しましょう。
- Sub 説明用242_集計用キーのクリア()
- Dim myRange As Range
- Set myRange = ActiveSheet.Range(Cells(92, 3), Cells(94, 7))
- myRange.ClearContents
- Set myRange = Nothing
- End Sub
1行目:「Subプロシージャ」の開始
2行目:Rangeを格納するオブジェクト型変数[myRange]を宣言
3行目:セル[C92]から[G94]の範囲を変数[myRange]に格納
4行目:変数[myRange]の範囲をクリア
5行目:変数[myRange]を初期化
6行目:「Subプロシージャ」の終了
以上でステップ2に関係するVBAについて説明してきましたが、いかがでしたか?これらを組み合わせてスッテプ1のプログラムを作成します。
次にシート[実習用VBA]で実習を行いましょう。
確認が終わりましたら、ステップ2プロシージャの説明に進みますので、VBE画面の左上[Excel]アイコンをクリックしてシート[VBA説明用]に戻りましょう。