[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オブジェクトの削除について』(あねご)
データの中に、図形描画のテキストボックス(文字が入っているもの)とオブジェクト(文字が何もはいっていないもの)があります。
オブジェクトのみ削除したいのですが、何かいい方法はございますか?
いい方法があれば教えていただけますでしょうか?
よろしくお願いいたします。
前回の質問のキリキさんのを参考につくってみました(リンカ勉強中) ↓ [[20060802182703]] 『図形描画のテキストボックスのレ点をセルに反映させられますでしょうか?』(あねご)
Sub deleteBlankobj() Dim sp As Object Dim x As Long For Each sp In ActiveSheet.Shapes If Mid(sp.Name, 1, 8) = "Text Box" Then If Len(ActiveSheet.Shapes(sp.Name).TextFrame.Characters.Text) = 0 Then sp.Delete End If Else sp.Delete End If Next sp End Sub
上記のマクロでオブジェクトは削除されました。で、文字が入っていないのに削除されてないものがあったので確認したら、テキストボックスなのに文字が何も入っていないものもありました。
テキストボックスに文字が入っている場合のみ残し、それ以外は削除したい場合はどうすればよいでしょうか??
再度教えていただけますでしょうか??
あれ? If Len(ActiveSheet.Shapes(sp.Name).TextFrame.Characters.Text) = 0 Then sp.Delete End If
これで、一応何も入ってないものはテキストボックスでも削除すると したのですが、消えないですか? 私の所では何も入ってないテキストボックスは 消されたのですが。。 実はスペースが入ってたりとかしますか?(リンカ勉強中)
もしスペースが入っているようでしたら 以下ので試してください。(リンカ勉強中)
Sub deleteBlankobj() Dim sp As Object Dim x As Long For Each sp In ActiveSheet.Shapes If Mid(sp.Name, 1, 8) = "Text Box" Then If Len(Trim(ActiveSheet.Shapes(sp.Name).TextFrame.Characters.Text)) = 0 Then sp.Delete End If Else sp.Delete End If Next sp End Sub
以下でどうですか (リンカ) Sub deleteBlankobj() Dim sp As Object Dim x As Long For Each sp In ActiveSheet.Shapes
If ActiveSheet.Shapes(sp.Name).TopLeftCell.Column = 26 Then If Mid(sp.Name, 1, 8) = "Text Box" Then If Len(Trim(ActiveSheet.Shapes(sp.Name).TextFrame.Characters.Text)) = 0 Then sp.Delete End If Else sp.Delete End If End If Next sp End Sub
上記のマクロを実行したところ、Z列のテキストボックスは削除できませんでした・・・
よろしくお願いします。
上記の流れとは別に 単に Z列にある テキストボックスを消したいのであれば 以下を動かしてみてください (リンカ)
Sub deleteZobj() Dim sp As Object Dim x As Long For Each sp In ActiveSheet.Shapes
If ActiveSheet.Shapes(sp.Name).TopLeftCell.Column = 26 And Mid(sp.Name, 1, 8) = "Text Box" Then sp.Delete End If Next sp End Sub
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.