- 日時: 2013/05/23 09:41
- 名前: VBレスキュー(花ちゃん)
- ***********************************************************************************
* カテゴリー:[エクセル][][] * * キーワード:Excel VBA,出現回数,検索,書き換え,Find メソッド,入力済みセル範囲 * *********************************************************************************** サポート技術情報に掲載されていたサンプルを紹介していたのですが、テストしてみると うまく動作しないし、Cell や Selection を使っているので、VB から使用するには間違った 使用をされかねないので、Excel の機能の Find メソッドを使って作ってみました。 ついでに書き換えもできるようにしております。
http://www.hanatyan.sakura.ne.jp/vb6/excel02.htm VBからExcelを起動・終了する(基本操作部分) のコードを使ってExcelを起動・終了して下さい。
上記のコードに下記コードを追加してして試して見て下さい。
Private Sub Command3_Click() Dim c As Excel.Range Dim firstAddress As String Dim nextAddress As String Dim n As Long '検索範囲をxlSheet の入力済みセル範囲とする With xlSheet.Range(xlSheet.UsedRange.Address) 'lookin:=xlValues 検索対象を[値]に設定 Set c = .Find(Text1.Text, lookin:=xlValues) If Not c Is Nothing Then '見つかった場合、セルのアドレスを取得 firstAddress = c.Address Do '見つかった件数をカウントする n = n + 1: c.Value = "見っけ " & c.Address '見つかったセルの値を書き換える場合 '見つかったセルの次のセルから再検索 Set c = .FindNext(c) If Not c Is Nothing Then nextAddress = c.Address Else nextAddress = "" End If Loop While Not c Is Nothing And nextAddress <> firstAddress End If End With Label1.Caption = n & " 個見つかりました。" End Sub
コードを変更された場合は、タスクマネージャにExcelのプロセスが残っていない事を確認して下さい。
※ 今後のサンプルは、上記同様にして試して下さい。
上記実行結果の図 http://www.hanatyan.sakura.ne.jp/bbs_gif/excelfind.gif
|