VBA Step2

説明2-4 VBAでの[月]・[週]の集計用キー

操作

[集計用キーの作成]ボタンと[集計用キーのクリア]ボタンを交互にクリックしましょう。上記「説明2-3」でのExcelでの算出結果が表示されたり消えたりします。
集計用キー作成のボタン

 

集計用キークリアのボタン

 

プロシージャ「説明用231_集計用キーの作成」の内容

[集計用キーの作成]ボタンのプロシージャを表示しましょう。

  1. Sub 説明用241_集計用キーの作成()
  2.  Dim i As Long
  3.  For i = 92 To 94
  4.   Cells(i, 3).Value = Year(Cells(i, 2).Value)
  5.   Cells(i, 4).Value = Month(Cells(i, 2).Value)
  6.   Cells(i, 5).Value = Cells(i, 3).Value & Cells(i, 4).Value
  7.   Cells(i, 6).Value = WorksheetFunction.WeekNum(Cells(i, 2).Value)
  8.   Cells(i, 7).Value = Cells(i, 3).Value & Cells(i, 6).Value
  9.  Next i
  10. 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_集計用キーのクリア」の内容

[集計用キーのクリア]ボタンのプロシージャを表示しましょう。

  1. Sub 説明用242_集計用キーのクリア()
  2.  Dim myRange As Range
  3.  Set myRange = ActiveSheet.Range(Cells(92, 3), Cells(94, 7))
  4.  myRange.ClearContents
  5.  Set myRange = Nothing
  6. 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説明用]に戻りましょう。

 

 

 
  このエントリーをはてなブックマークに追加

 

スポンサーリンク