VBA:いくらでもある事務効率化パート2(4)

ミール

2013年04月16日 19:26

昨日の続きです。

対象者をプログラム側へ受け渡す仕組みはできました。

今日は、対象者を検索する部分のプログラムを考えてみます。

検索の基本パターンがありますので、そのまま載せたいと思います。


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です。

これで、対象者の検索迄うまくできました。

次回は、実績データを報告書に編集する部分を作ってみたいと思います。

では

関連記事