Step31 一覧シートを作成し請求書No.を検索する: Excel請求書
請求書データを登録する一覧シートを作成し、一覧シートに請求書No.が登録されているかどうか検索します。見つかれば行番号を返します。
検索はFind関数を使います。
Set trange = Worksheets("一覧").Columns(3).Find(What:=sv, LookIn:=xlValues,
LookAt:=xlWhole)
・What : 検索するデータ
・LookIn : xlValuesで値を指定
・LookAt : xlWholeで全てが一致するセルを検索
trange Is Nothingで判定し見つかれば、trange.Rowで行番号を取得します。
Homeに戻る >
Excelでアプリケーションソフト3 >
請求書アプリ
作成画面
■請求書一覧シート
下が作成した一覧です。 セル位置と列幅は下記の通りです。
- 日付 : B4セル 幅10.63(90ピクセル)
- 請求書No. : C4セル 幅14.38(120ピクセル)
- 品名コード : D4セル 幅8.75(75ピクセル)
- 品番 : E4セル 幅18.13(150ピクセル)
- 品名 : F4セル 幅21.88(180ピクセル)
- 数量 : G4セル 幅6.88(60ピクセル)
- 単位 : H4セル 幅6.88(60ピクセル)
- 単価 : I4セル 幅14.38(120ピクセル)
- 金額 : J4セル 幅14.38(120ピクセル)
■請求書No.の検索
ブックが閉じる前のイベント内に、MyFindNumber(Worksheets("請求書").Range("x6"))を追加します。
請求書No.を引数にしています。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim nRet As Long
If Worksheets("請求書").Range("x6") = "" Then
nRet = MsgBox("請求書No.が入力されていない為、一覧に登録できません。" & vbCrLf & _
"登録しないで終了してもよろしいですか?", vbYesNoCancel)
If nRet <> vbYes Then
Range("x6").Activate
Cancel = True
Exit Sub
End If
Else
If MyFindNumber(Worksheets("請求書").Range("x6")) = 0 Then
End If
End If
End Sub
■Findメソッドで検索
作成した検索プロシージャです。
見つかった場合はその行番号が、見つからなかった場合は0が返ります。
Private Function MyFindNumber(sv As String) As Long
Dim trange As Range
MyFindNumber = 0
Set trange = Worksheets("一覧").Columns(3).Find(What:=sv, _
LookIn:=xlValues, LookAt:=xlWhole)
If Not trange Is Nothing Then
MyFindNumber = trange.Row
End If
End Function
[関連リンク]
Findメソッド
検索
基本的な検索方法
Homeに戻る >
Excelでアプリケーションソフト3 >
請求書アプリ
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します
Copyright (c) Excel-Excel ! All rights reserved