Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


15616 / 76738 ←次へ | 前へ→

【66597】入力と転記と・・・
質問  ミッチョ  - 10/9/13(月) 15:44 -

引用なし
パスワード
   2 No.                
3 128                
4 入庫日       仕入先            
5 2010/8/1 XXX商事            
6  長さ(m)    本数    重量(kg)    単価(円)    金額(円)
7   123         5     560         160          89,600

上記で128の番地はB3、2010/8/1はB5、XXX商事はC5、123はB7、5はC7、560はD7、160はE7、89600はF7に記述されるようになっています。(sheet入力)、登録マクロを走らせると別のシート(sheet入荷別)に転記されます。
Sheet入荷別
 B    C    D    E  F   G  H   I
 連番  日付   仕入先 長さ 本数 重量 単価 金額
 1   2010/7/1 ???商会 
 2
 3            ・            
              ・
              ・
 123    2010/8/1 XXX商事 123  5  560  160  89600

入力のマクロは
Sub 新規データ()
  Application.EnableEvents = False
  With Sheets("入力")
 
    .[B3] = WorksheetFunction.Max( _
      [Database].Resize(, 1)) + 1
    .[B5:F5].ClearContents
    .[B7:F7].ClearContents
    .[B9:F9].ClearContents
    Range("F7").Formula = "=$D$7*$E$7"
    End With
  Application.EnableEvents = True
End Sub
ここでなぜかB3の連番が123で単価が123と偶然に同じになった時に"該当するNo.はありません"のメッセージが出ます。つたない説明ですが、原因はわかりますか。
次に転記のマクロは
Sub データ登録()
'
' データ登録 Macro
  Dim 行 As Long
  Dim 確認 As Integer
  Dim No As Long
  
  確認 = MsgBox("データを登録します。" _
    & "よろしいですか?", vbYesNo)
  If 確認 <> vbYes Then Exit Sub
  
  With Sheets("入力")
        On Error GoTo 新規行
      行 = WorksheetFunction.Match( _
        .[B3], [Database].Resize(, 1), 0)
    On Error GoTo 0
    
    [Database].Cells(行, 1) = .[B3]
    [Database].Cells(行, 2) = .[B5]
    [Database].Cells(行, 3) = .[C5]
    [Database].Cells(行, 4) = .[B7]
    [Database].Cells(行, 5) = .[C7]
    [Database].Cells(行, 6) = .[D7]
    [Database].Cells(行, 7) = .[E7]
    [Database].Cells(行, 12) = .[F9]
    [Database].Cells(行, 8) = .[F7]
    [Database].Cells(行, 9) = .[B9]
    [Database].Cells(行, 10) = .[C9]
    [Database].Cells(行, 11) = .[E9]
    [Database].Cells(行, 12) = .[F9]
    [Database].Cells(行, 13) = .[F5]
    
    Exit Sub
  
新規行:
    行 = [Database].Rows.Count + 1
    
    [Database].Cells(行 - 1, 1).EntireRow.Insert
    [Database].Offset(行 - 1).Resize(1).Copy _
      [Database].Cells(行 - 1, 1)
    .Shapes("スピン").ControlFormat.Max = .[B3]
    Resume Next
  End With
'
End Sub

で、この時に入力欄で123なのに、122になってしまいます。
どこがわるいのでしょうか。教えてくださればありがたいです。
質問を二つしてしまいましたが、違反ですか。

0 hits

【66597】入力と転記と・・・ ミッチョ 10/9/13(月) 15:44 質問
【66619】Re:入力と転記と・・・ Jaka 10/9/14(火) 15:00 発言

15616 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free