[[20040906083330]] 『マクロで変化した値で表示メッセージを変える』(すがやっち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロで変化した値で表示メッセージを変える』(すがやっち)

[マクロで変化したセルの値によって、表示するメッセージを変える方法]

毎度お世話になります。早速質問させていただきます。

少し前に質問させていただいた事と関連しますが、まず以下のマクロ記述をご覧ください。

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$C$3" Then Exit Sub

   Application.EnableEvents = False
   Target.Value = "*" & Target.Value & "*"
   Application.EnableEvents = True
   Application.Run "'予算センタ検索システム(9.1現在).xls'!検索"
   Dim メッセージ As String
   メッセージ = Range("D7")
   MsgBox メッセージ & "件のデータがヒットしました!", vbInformation, "検索結果"

End Sub

以上のマクロで、まずC3に検索文字列を入力し、Enterで確定、再度Enterを押す(セルの内容が変わる)とその文字列を含むデータを検索(自動的に、文字列の前後にアスタリスクが付く)します。

※"'予算センタ検索システム(9.1現在).xls'!検索"は、フィルタオプションを使っています。

Range("B9:G4000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _

        Range("B2:G3"), Unique:=False

D7には、=SUBTOTAL(3,C10:C3871)の数式が設定されており、データの件数を表示します。上のデータの検索に引き続き、マクロによってその結果をウィンドウで表示します(例えば該当するデータが7件だったら、「7件のデータがヒットしました!」と表示される)。

そこで、例えばD7の値が0だった場合、「0件のデータがヒットしました!」と表示されるわけですが、そこを、「該当するデータはありませんでした。」というように、0(ゼロ)の場合だけ表示される内容を変えるようなマクロ記述はどのようにしたらよいか教えていただきたいのです。

他に必要な情報があれば、何でも提供します。よろしくお願いします。


 変数「メッセージ」がゼロかどうかを基準にIf構文で処理を分岐させます。
 If Val(メッセージ)=0 Then
 '0件のときのメッセージ
 Else
 '0件以外のときのメッセージ
 End If
(KAMIYA)


ありがとうございました。何とか無事に表示が出来ました。
続けて教えてください。質問タイトルとは異なってしまいますが…。

上記のマクロ操作で検索結果を表示させた後、条件をオールクリアしてデータを全て表示するのに、以下のマクロを使っています。

ActiveSheet.ShowAllData

    Range("C3").Select

このマクロは、ボタンに登録してありますが、一度クリックした後、続けて再度クリックすると以下の

 実行時エラー '1004':
 WorksheetクラスのShowAllDataメソッドが失敗しました。

という、VisualVasicのエラーが表示されてしまいます。

これを表示させないようにする方法はありますでしょうか?これは、一度クリックしたら既に行いたい操作が実現されているために起こるエラーなのでしょうか?

私としては、何度クリックしても「全て表示」されるように(実際は一度のクリックで実現されますが・・・)したいと考えています。すいません、宜しくお願いします。


 on error resume next 
 を記述しておくのが、簡単でよいかと思います。

  (INA)


申し訳ありません。現象再現しました。上記の記述はどの箇所にしておけばよろしいのでしょうか?どうかご教授願います。


 on error resume next について、ヘルプをお読み下さい。
 意味を調べずにマクロを利用することはお勧めできません。

 この記述以降の行は、エラーが発生すると実行されずに無視されます。

  (INA)


ありがとうございました。うまい具合にエラーは表示されなくなりました。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.