方針:InputBox関数を利用.追加課題(12/28)を参考に,商品リストの最終行に移動し,そこから入力を開始.入力したセルの周囲に罫線を引く.
1.商品リストの最終行左端に移動
Sub 商品追加() Range("B5").Select Do While Not (ActiveCell.Value = "") ActiveCell.Offset(1, 0).Select Loop End Sub
2.InputBoxを実行し,ユーザーが入力した商品コードを受け取る
Dim syouhinCode As String syouhinCode = InputBox("商品コードを入力してください", "商品追加", , 100, 100)
3.商品コードをセルに書き込む
ActiveCell.Value = syouhinCode
4.セルの周囲に罫線を引く
ActiveCell.BorderAround ColorIndex:=1
5.一つ右のセルに移動
ActiveCell.Offset(0, 1).Select
(2~5を繰り返す)
6.完成!
6-1.素直に繰り返した場合
Sub 商品追加() '表の最終行に移動 Range("B5").Select Do While Not (ActiveCell.Value = "") ActiveCell.Offset(1, 0).Select Loop '商品コードを入力 Dim syouhinCode As String syouhinCode = InputBox("商品コードを入力してください", "商品追加", , 100, 100) ActiveCell.Value = syouhinCode ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '商品名を入力 syouhinCode = InputBox("商品名を入力してください", "商品追加", , 100, 100) ActiveCell.Value = syouhinCode ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '色を入力 syouhinCode = InputBox("色を入力してください", "商品追加", , 100, 100) ActiveCell.Value = syouhinCode ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '単価を入力 syouhinCode = InputBox("単価を入力してください", "商品追加", , 100, 100) ActiveCell.Value = syouhinCode ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '輸入国を入力 syouhinCode = InputBox("輸入国を入力してください", "商品追加", , 100, 100) ActiveCell.Value = syouhinCode ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '入荷状況を入力 syouhinCode = InputBox("入荷状況を入力してください", "商品追加", , 100, 100) ActiveCell.Value = syouhinCode ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select End Sub
6-2.データの受付を最初に行い,まとめて書き込みを行う場合
Sub 商品追加() '表の最終行に移動 Range("B5").Select Do While Not (ActiveCell.Value = "") ActiveCell.Offset(1, 0).Select Loop '商品コードを受付 Dim syouhinCode As String syouhinCode = InputBox("商品コードを入力してください", "商品追加", , 100, 100) '商品名を受付 Dim syouhinName As String syouhinName = InputBox("商品名を入力してください", "商品追加", , 100, 100) '色を受付 Dim syouhinColor As String syouhinColor = InputBox("色を入力してください", "商品追加", , 100, 100) '単価を受付 Dim syouhinTanka As String syouhinTanka = InputBox("単価を入力してください", "商品追加", , 100, 100) '輸入国を受付 Dim syouhinYunyuu As String syouhinYunyuu = InputBox("輸入国を入力してください", "商品追加", , 100, 100) '入荷状況を受付 Dim syouhinNyuuka As String syouhinNyuuka = InputBox("入荷状況を入力してください", "商品追加", , 100, 100) '商品コードを書込 ActiveCell.Value = syouhinCode ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '商品名を書込 ActiveCell.Value = syouhinName ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '色を書込 ActiveCell.Value = syouhinColor ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '単価を書込 ActiveCell.Value = syouhinTanka ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '輸入国を書込 ActiveCell.Value = syouhinYunyuu ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '入荷状況を書込 ActiveCell.Value = syouhinNyuuka ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select End Sub
6-3.二次元配列を用いてデータを格納した場合
Sub 商品追加() '表の最終行に移動 Range("B5").Select Do While Not (ActiveCell.Value = "") ActiveCell.Offset(1, 0).Select Loop Dim shouhin(5, 1) As String shouhin(0, 0) = "" shouhin(0, 1) = "商品コード" shouhin(1, 0) = "" shouhin(1, 1) = "商品名" shouhin(2, 0) = "" shouhin(2, 1) = "色" shouhin(3, 0) = "" shouhin(3, 1) = "単価" shouhin(4, 0) = "" shouhin(4, 1) = "輸入国" shouhin(5, 0) = "" shouhin(5, 1) = "入荷状況" '商品コードを受付 shouhin(0, 0) = InputBox("商品コードを入力してください", "商品追加", , 100, 100) '商品名を受付 shouhin(1, 0) = InputBox("商品名を入力してください", "商品追加", , 100, 100) '色を受付 shouhin(2, 0) = InputBox("色を入力してください", "商品追加", , 100, 100) '単価を受付 shouhin(3, 0) = InputBox("単価を入力してください", "商品追加", , 100, 100) '輸入国を受付 shouhin(4, 0) = InputBox("輸入国を入力してください", "商品追加", , 100, 100) '入荷状況を受付 shouhin(5, 0) = InputBox("入荷状況を入力してください", "商品追加", , 100, 100) '商品コードを書込 ActiveCell.Value = shouhin(0, 0) ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '商品名を書込 ActiveCell.Value = shouhin(1, 0) ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '色を書込 ActiveCell.Value = shouhin(2, 0) ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '単価を書込 ActiveCell.Value = shouhin(3, 0) ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '輸入国を書込 ActiveCell.Value = shouhin(4, 0) ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select '入荷状況を書込 ActiveCell.Value = shouhin(5, 0) ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select End Sub
6-4.プログラム内の同じ処理を行う部分をまとめた場合
Sub 商品追加() '表の最終行に移動 Range("B5").Select Do While Not (ActiveCell.Value = "") ActiveCell.Offset(1, 0).Select Loop Dim shouhin(5, 1) As String shouhin(0, 0) = "" shouhin(0, 1) = "商品コード" shouhin(1, 0) = "" shouhin(1, 1) = "商品名" shouhin(2, 0) = "" shouhin(2, 1) = "色" shouhin(3, 0) = "" shouhin(3, 1) = "単価" shouhin(4, 0) = "" shouhin(4, 1) = "輸入国" shouhin(5, 0) = "" shouhin(5, 1) = "入荷状況" 'データの受取 Dim i As Integer For i = 0 To 5 shouhin(i, 0) = InputBox(shouhin(i, 1) + "を入力してください", "商品追加", , 100, 100) Next i 'データの書込 Dim j As Integer For j = 0 To 5 ActiveCell.Value = shouhin(j, 0) ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select Next j End Sub
6-5.ループを1つにまとめた場合
Sub 商品追加() '表の最終行に移動 Range("B5").Select Do While Not (ActiveCell.Value = "") ActiveCell.Offset(1, 0).Select Loop Dim shouhin(5, 1) As String shouhin(0, 0) = "" shouhin(0, 1) = "商品コード" shouhin(1, 0) = "" shouhin(1, 1) = "商品名" shouhin(2, 0) = "" shouhin(2, 1) = "色" shouhin(3, 0) = "" shouhin(3, 1) = "単価" shouhin(4, 0) = "" shouhin(4, 1) = "輸入国" shouhin(5, 0) = "" shouhin(5, 1) = "入荷状況" Dim i As Integer For i = 0 To 5 shouhin(i, 0) = InputBox(shouhin(i, 1) + "を入力してください", "商品追加", , 100, 100) ActiveCell.Value = shouhin(i, 0) ActiveCell.BorderAround ColorIndex:=1 ActiveCell.Offset(0, 1).Select Next i End Sub
0 件のコメント:
コメントを投稿