図形オートシェイプ内のテキスト検索マクロ作成についての質問
VBS2年目のプログラマーです。
Excelで図形オートシェイプ内のテキストが検索できないので、
マクロを作成してみようと思いましたが2点問題が発生しましたので
解決方法または実現方法をご教授ねがいます。
(目標マクロ機能概要)
(1)InputBoxで検索文字列を入力
(2)検索文字列と一致するテキストを持つ図形を選択
(3)検索文字列と一致する次の図形を検索するかをMsgboxから選択
(この時、一致する図形は選択されている状態であってほしい)
(4)(3)で次の図形を検索しない、または図形をすべて検索するとマクロ終了
(問題)
1.機能概要(2)の選択される図形が現在のExcel画面外にある場合、画面が移動しないため、どこに検索ヒットした図形があるか使用者がわからない
2.機能概要(3)で、Msgbox実行時に図形選択が表示されず現在どの図形を選択しているのか使用者がわからない
問題1は、autoshapeオブジェクトのtop,left属性などを
使うしかないのかなとぼんやり考えています。
以下、コードです。
お忙しいところ、申し訳ありませんが
以上、よろしくお願いします。
**************************
Sub GetShapesText()
Dim wk_shp As Shape 'オートシェイプ格納変数
Dim wk_search_str As String '検索文字列変数
'*** 検索文字列入力処理 ***
wk_search_str = InputBox("検索する図形オートシェイプのテキストを入力してください。", "オートシェイプ内テキスト検索")
If (Len(wk_search_str) = 0) Then
'検索文字列が未入力の場合は、マクロ終了
Exit Sub
End If
'*** オートシェイプ検索処理 ***
For Each wk_shp In ActiveSheet.Shapes
If InStr(wk_shp.Name, "Line") = 0 Then 'オートシェイプが線(Line)以外の場合のみ以下を処理
If (InStr(wk_shp.TextFrame.Characters.Text, wk_search_str) > 0) Then 'オートシェイプのテキストに検索文字列が含まれる場合のみ以下を処理
wk_shp.Select '検索ヒットしたオートシェイプを選択
wk_next_search_flg = MsgBox("次を検索しますか?", vbYesNo)
If (wk_next_search_flg = 7) Then
'次を検索しない場合は、検索を終了
Exit For
End If
End If
End If
Next
End Sub
**************************