てぃーだブログ › S・M・C (Simple.Macro.Create) ~エクセルマクロ日記~ › VBA › VBA:いくらでもある事務効率化パート2(4)

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の
処理が必要になってきます。

それでは、テストです。

対象者名簿から「花子さん」をダブルクリックします。
VBA:いくらでもある事務効率化パート2(4)

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

検索されました。

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

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

「実績がありません」のメッセージが表示されたのでOKです。

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

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

ではニコニコ


同じカテゴリー(VBA)の記事

Posted by ミール at 19:26│Comments(0)VBA
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。