Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » ランダムな日付を入力するマクロ

ランダムな日付を入力するマクロ

対象:Excel2003, Excel2007, Excel2010

パソコンインストラクターの方や、プログラマーの方だと、サンプルデータ・テストデータの類が必要になることがあります。

いろいろなタイプのデータが必要になるもので、ランダムな、ある程度の量の、日付データもよく求められるものの一つでしょう。

[スポンサードリンク]

ワークシート関数を組み合わせたりして手作業で作ることも可能ですが、VBA(Visual Basic for Applications)がわかる方なら、マクロを作ってしまえば簡単にサンプルデータ・テストデータを作成できます。

▼選択されているセルにランダムな日付を入力するマクロ
Sub ランダムな日付データを作成する()

 Dim fstDate As Date
 Dim lstDate As Date
 Dim c As Range

 fstDate = #4/1/2011# 'ランダムに作成する最初の日
 lstDate = #9/30/2011# 'ランダムに作成する最後の日

 Randomize

 For Each c In Selection
  c.Value = Int((lstDate - fstDate + 1) * Rnd + fstDate)
  c.NumberFormat = "yyyy""月""mm""日""dd"" (""aaa"")"""
 Next

End Sub

「ランダムな」といっても日付データの場合は、まったくランダムなデータというよりは、指定された範囲内の日付ということが多いのはないでしょうか。

上記のマクロでは、変数「fstDate」にランダムに生成する最初の日付、変数「lstDate」に最後の日付を指定しておいて実行すると、選択されていたセル範囲に、その指定された日付範囲のランダムな日付が入力されます。

上記の例では「2011年4月1日」から「2011年9月30日」までの日付が入力されます。

日付の指定は、InputBoxなどでユーザーが入力できるようにしてもいいかもしれません。

実際に日付データを生成しているのがFor Each ~ Next文の中の
「Int((lstDate - fstDate + 1) * Rnd + fstDate)」
です。

作成するのが日付データですから、ループ処理の中で
「"yyyy""月""mm""日""dd"" (""aaa"")"""」
という書式設定も合わせて行っています。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » ランダムな日付を入力するマクロ

「マクロのサンプル」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.