前画面へ戻る

Sub Hajime()

'このマクロは、乱数を使って指定フィールド(項目)にランダムレコードを作成します。

'--------変数の宣言----------
Dim i As Integer
Dim t As Integer
Dim Owari As Integer '繰り返し変数
Dim UriHi As Date '売上日変数
Dim Code As Integer '商品コード変数
Dim Bungu As String '商品名変数
Dim Urisuu As Integer '販売数の変数
Dim Tanka As Integer '単価変数
Dim Tanni As String '単位の変数

'---------シートデータ クリア--------
Cells.Select 'シート全体を選択
With Selection
 .ClearContents 'データのクリア
 .ClearFormats '書式のクリア
 .ClearOutline '罫線のクリア
End With

'--------項目名の代入-------------
ActiveSheet.Select
Range("A13") = "売上日"
Range("B13") = "商品コード"
Range("C13") = "商品名"
Range("D13") = "単位"
Range("E13") = "単価"
Range("F13") = "売上数"
Range("G13") = "売上金額"

'----------セルの修飾-------------
'省略・・・

'----------------------------------------------
'Rnd関数を使用した時、常に異なる乱数を発生させるステートメント
Randomize

'Ran関数は0以上1未満の乱数を発生させる関数です。従って(100*Rand)により0〜99の数値が取得できます。そしてInt関数によりその数値を整数にします。ただ、0になる可能性もあるので、10を加算して最低10回繰り返すようにしています。
Owari = Int(100 * Rnd) + 10

  
UriHi = Now '現在日を取得

For i = 1 To Owari
'-----販売日の乱数処理----------
現在日(UriHi)に、0〜1までの乱数をRound関数で四捨五入(0か1)して加算することにより、売上日を決める。
 UriHi = UriHi + Round(Rnd)

'----商品コードの乱数-----------
Int(10*Rnd)は、0〜9までの数値を発生させ、それを整数(Int)にする。
 Code = Int(10 * Rnd)
  
'0の商品コードは存在しないので、0ならやり直し
  Do While Code = 0
   Code = Int(10 * Rnd)
  Loop


'----商品コードから商品名を参照----------
'Code(商品コード)からBungu(商品名)とTanka(単価)、Tanni(単位)を参照
 Select Case Code
  Case 1
   Bungu = "エンピツ"
   Tanka = 50
   Tanni = "本"
  Case 2
   Bungu = "消しゴム"
   Tanka = 100
   Tanni = "個"
  Case 3
   Bungu = "ノートA"
   Tanka = 200
   Tanni = "冊"
  Case 4
   Bungu = "ノートB"
   Tanka = 180
   Tanni = "冊"
  Case 5
   Bungu = "サインペン"
   Tanka = 120
   Tanni = "本"
  Case 6
   Bungu = "手帳"
   Tanka = 500
   Tanni = "冊"
  Case 7
   Bungu = "ボールペン"
   Tanka = 100
   Tanni = "本"
  Case 8
   Bungu = "カッターナイフ"
   Tanka = 250
   Tanni = "個"
  Case 9
   Bungu = "シャープペン"
   Tanka = 350
   Tanni = "本"
 End Select


'----販売数の乱数---------------
'Int(100*Rnd)は、0〜99までの数値を発生させ、それを整数(Int)にする。
 Urisuu = Int(100 * Rnd)

''0の販売数は存在しないので、0ならやり直し
  Do While Urisuu = 0
   Urisuu = Int(100 * Rnd)
  Loop


'セルに値を代入
'"=RC[-1]*RC[-2]"はR1C1形式の相対参照、RC[-1]は指定セル位置から左へ1つ戻ったセル位置。
 With ActiveSheet
  .Cells(i + 13, 1).Value = Year(UriHi) & "年" & Month(UriHi) & "月" & Day(UriHi) & "日"
  .Cells(i + 13, 2).Value = Code
  .Cells(i + 13, 3).Value = Bungu
  .Cells(i + 13, 4).Value = Tanni
  .Cells(i + 13, 5).Value = Tanka
  .Cells(i + 13, 6).Value = Urisuu
  .Cells(i + 13, 7).Value = "=RC[-1]*RC[-2]" '単価×売上数
 End With
Next i


Range("A1").Select

End

End Sub

お土産 Macro1.zip
前画面へ戻る