|
▼hide さん:
こんばんは。
>オートシェイプにテキスト追加ってできるじゃないですか?
>このテキスト追加がされているかどうかをマクロで判定できませんか?
>ちなみに、LENGTHを判定するのではなく、オートシェイプのステータスを見たいんです。
>1.テキストボックスはオブジェクト作成時に、自動でテキスト入力可能ですよね。
>2.{}のオートシェイプは当然テキスト追加はできません。また、追加可能なオートシェイプならば、追加されているかどうか。
>1.と2.の判定をしたいんです。
>色々と考えたんですが、行き詰まってしまったので、お知恵を貸してください。
>よろしくお願いします。
アクティブシートのShapeに対して、A列に名前、B列に追加可能か否か、C列に追加内容
を入力する例です。
'=========================================================
Sub MAIN()
Dim shp As Shape
Dim txt
For Each shp In ActiveSheet.Shapes
Cells(idx + 1, 1).Value = shp.Name
txt = get_text(shp)
If VarType(txt) <> vbBoolean Then
Cells(idx + 1, 2).Value = "追加可能"
Cells(idx + 1, 3).Value = txt
End If
idx = idx + 1
Next
End Sub
'==========================================
Function get_text(shp As Shape)
On Error Resume Next
Set get_object = shp.OLEFormat.Object
If Err.Number <> 0 Then
get_text = False
Else
get_text = Trim(get_object.Text)
End If
On Error GoTo 0
End Function
こんな意味でしょうか?
|
|