2013年04月16日
VBA:いくらでもある事務効率化パート2(4)
昨日の続きです。
対象者をプログラム側へ受け渡す仕組みはできました。
今日は、対象者を検索する部分のプログラムを考えてみます。
検索の基本パターンがありますので、そのまま載せたいと思います。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim obj As Object
r = Target.Row
対象者 = Sheets("対象者名簿").Range("d" & r)
Set obj = Workbooks("実績.xlsx").Worksheets("実績データ").Cells.Find(対象者)
If obj Is Nothing Then
MsgBox 対象者 & " 実績がありません"
Sheets("対象者名簿").Select
Else
MsgBox obj & "実績ヒット"
Sheets("対象者名簿").Select
End If
End Sub
検索プログラムは「見つからなかった時」の処理を組み込まなければ
エラーでプログラムの処理自体が止り使いずらくなってしまいます。
なので、 If obj Is Nothing Thenの
処理が必要になってきます。
それでは、テストです。
対象者名簿から「花子さん」をダブルクリックします。


検索されました。
次に実績データがない、「五郎さん」をダブルクリックしてみましょう。

「実績がありません」のメッセージが表示されたのでOKです。
これで、対象者の検索迄うまくできました。
次回は、実績データを報告書に編集する部分を作ってみたいと思います。
では
対象者をプログラム側へ受け渡す仕組みはできました。
今日は、対象者を検索する部分のプログラムを考えてみます。
検索の基本パターンがありますので、そのまま載せたいと思います。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim obj As Object
r = Target.Row
対象者 = Sheets("対象者名簿").Range("d" & r)
Set obj = Workbooks("実績.xlsx").Worksheets("実績データ").Cells.Find(対象者)
If obj Is Nothing Then
MsgBox 対象者 & " 実績がありません"
Sheets("対象者名簿").Select
Else
MsgBox obj & "実績ヒット"
Sheets("対象者名簿").Select
End If
End Sub
検索プログラムは「見つからなかった時」の処理を組み込まなければ
エラーでプログラムの処理自体が止り使いずらくなってしまいます。
なので、 If obj Is Nothing Thenの
処理が必要になってきます。
それでは、テストです。
対象者名簿から「花子さん」をダブルクリックします。


検索されました。
次に実績データがない、「五郎さん」をダブルクリックしてみましょう。

「実績がありません」のメッセージが表示されたのでOKです。
これで、対象者の検索迄うまくできました。
次回は、実績データを報告書に編集する部分を作ってみたいと思います。
では

Posted by ミール at 19:26│Comments(0)
│VBA