検索を繰り返す

検索を繰り返す


after = Find(keyword) //検索の返り値
FindNext(after) //次を検索:検索の返り値を引数にする
FindPrevious(after) //前を検索

検索を繰り返す

特定の範囲を検索する」で、検索の方法について説明しました。
この記事では複数検索にヒットする状況の場合の、繰り返し方法を説明します。

複数の検索条件に合致するセルがあった場合に、次のセル、次のセルと移動する処理を実現するためFindNextやFindPreviousを使います。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
FOR i = 0 TO 3
  EXCEL.ActiveCell.value = "a" + i
  EXCEL.ActiveCell.Offset(1,0).Select
NEXT
After = EXCEL.Range("A1:A10").Find("a")
EXCEL.Range("A1:A10").Find("a").Select
EXCEL.Range("A1:A10").FindNext(After).Select
EXCEL.Range("A1:A10").FindPrevious(After).Select

メッセージを出しながら検索を繰り返す

上記のスクリプトでは、一瞬のうちに処理が完了してしまうので、挙動しているのか確認が難しいです。
次のスクリプトで、メッセージによる処理のコメント、背景色の変更が行われるので、検索の繰り返しがわかりやすく確認できます。
スクリプトは下記のようになります。

この投稿の続きを読む »

タグ

2012年11月28日 | コメントは受け付けていません。 |

カテゴリー:UWSCとExcel

特定の範囲を検索する

特定の範囲を検索する


Find(keyword)

文字列を指定し、検索に合致するセルに移動する

範囲を指定(Range(X:X)し、Findを実行することで、該当キーワードに一致するセルの位置情報を取得できます。

以下のサンプルにおいて、「a」と入力してから、セルの移動を行い、その後でFindで見つけた位置を選択しています。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
EXCEL.ActiveCell.value = "a"
EXCEL.ActiveCell.Offset(10,10).Select
A = EXCEL.Range("A1:J10").Find("a").Select

検索にヒットした箇所の背景色を変えてみる

上記のスクリプトでは、一瞬のうちに処理が完了してしまうので、本当に挙動したかわかりにくいです。
次のスクリプトで、メッセージによる処理のコメントや、検索結果セルの背景色の変更を実施してみます。
これで処理の流れがわかりやすくなると思います。
スクリプトは下記のようになります。

この投稿の続きを読む »

タグ

2012年11月24日 | コメントは受け付けていません。 |

カテゴリー:UWSCとExcel

このページの先頭へ