Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12820 / 13646 ツリー ←次へ | 前へ→

【8485】テキストボックスだけ削除する方法を教えてください。 へむへむ 03/10/19(日) 18:15 質問
【8486】Re:テキストボックスだけ削除する方法を教え... りん 03/10/19(日) 19:55 回答
【8487】Re:テキストボックスだけ削除する方法を教え... かみちゃん 03/10/19(日) 20:03 回答

【8485】テキストボックスだけ削除する方法を教え...
質問  へむへむ  - 03/10/19(日) 18:15 -

引用なし
パスワード
   シートの中のテキストボックスだけ削除する方法を教えてください。
宜しくお願い致します。

【8486】Re:テキストボックスだけ削除する方法を教...
回答  りん E-MAIL  - 03/10/19(日) 19:55 -

引用なし
パスワード
   へむへむ さん、こんばんわ。
> シートの中のテキストボックスだけ削除する方法を教えてください。
>宜しくお願い致します。

シート上のということなので。
現在表示しているシートに配置されているTextBoxをDeleteします。

Sub test()
  Dim obj1 As OLEObject
  For Each obj1 In ActiveSheet.OLEObjects
   If TypeName(obj1.Object) = "TextBox" Then
     obj1.Delete
   End If
  Next
End Sub
こんな感じです。

ActiveSheetの部分をThisWorkbook.Worksheets(2)とかいう風に指定するようにしてやると、アクティブでないシートの上のものでも削除できます。
保護がかかってたらだめですけどね。

ちなみに、シートとフォームでのオブジェクトの違い
http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=8443;id=Excel

【8487】Re:テキストボックスだけ削除する方法を教...
回答  かみちゃん  - 03/10/19(日) 20:03 -

引用なし
パスワード
   こんばんは。

> シートの中のテキストボックスだけ削除する方法を教えてください。
>宜しくお願い致します。

他のサイトからの引用ですが、以下が参考になると思います。
http://www.moug.net/mmaga/299.htm

Sub myShape_Delete()
 Dim Sh As Shape

' 【引用URL】http://www.moug.net/mmaga/299.htm
' より、「図形の種類を調べる」を参照
 For Each Sh In ActiveSheet.Shapes
  '次の内容は、テキストボックス(msoTextBox)であれば、削除します。
  'Typeプロパティの設定は、引用URLを参照してください。
  If Sh.Type = msoTextBox Then
   Sh.Delete
  End If
 Next Sh
End Sub

TextBox以外でも If文を変えることによって、いろいろと応用が効くかと思います。

12820 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free