選択したセルにあるテキストボックスを削除したい。 | |
---|---|
[195618] 選択したセルにあるテキストボックスを削除したい。- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ ちわわ -(2023/02/08(13:54)) □U R L/ 前回も投稿したのですが、他との絡みでうまくいかず、再投稿です。 選択するセルには入力規則のドロップダウンリストとなっています。 そのセルにテキストボックスを貼り付けてあります。 例えばB6を選択して、マクロを実行すれば、B6セルに貼り付けされているテキストボックス のみが削除できるようなVBAにしたいです。 宜しくお願い致します。 |
[195621] Re[1]: 選択したセルにあるテキストボックスを削除したい。- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2023/02/09(09:19)) □U R L/ ちわわさんへ質問です。 >他との絡みでうまくいかず どんなコードを実行して、どんなふうになりましたか? シートは保護されていませんか?(保護を解除して削除出来ませんか?) >そのセルにテキストボックスを貼り付けてあります。 テキストボックスはどのタイプのテキストボックスですか? ・図形 ・ActiveX コントロール(Application.DisplayAlerts = Falseを追加して削除出来ませんか?) どのようにして貼り付けましたか? ・手動 ・VBA (いずれもセルアドレスを名前に付け足して管理できませんか?) >>MK様 >>現在はTextBoxのみですが、総合的に対応できる感じがよいです。 これは不要になりましたか? |
[195622] Re[2]: 選択したセルにあるテキストボックスを削除したい。- ■記事引用/メール受信=OFF■ □投稿者/ ちわわ -(2023/02/09(13:30)) □U R L/ kazuo様 ありがとうございます。 >どんなコードを実行して、どんなふうになりましたか? Re:下記のコードで、テキストボックスは削除でき、エラー回避はできたと思いますが、 「入力規則のドロップダウンリストまで消えてしまい」、わからないなりに色々と 変更して試しましたが、回避できなかったので、コード全て消してしまいました。 なので、下記と違うかもかもしれません。 Sub DEL() Dim Slc Set Slc = Selection Dim Shp For Each Shp In ActiveSheet.Shapes On Error Resume Next Set a = Range(Shp.TopLeftCell, Shp.BottomRightCell) On Error GoTo If Not Intersect(a, Slc) Is Nothing Then Shp.Delete End If Next End Sub >シートは保護されていませんか?(保護を解除して削除出来ませんか?) RE:保護しておりません。 >テキストボックスはどのタイプのテキストボックスですか? RE:図形で中にコメントいれてあります。 テキストBOXには「あああ」と名前はつけてあります。 ・ActiveX コントロール(Application.DisplayAlerts = Falseは試しておりません。 不特定セルにコピペして不要なところセル張り付けたテキストボックスだけを消せれば いいという結果にしました。 なにか良い方法がありましたら、教えて頂きたいです。 宜しくお願い致します。 ちょっとうまくできなかったので、条件付き書式でなんとかできなかとやってはいますが、 複雑になるので、VBAでボタンおしてテキストボックスが削除できれば嬉しいです。 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[195623] Re[3]: 選択したセルにあるテキストボックスを削除したい。- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2023/02/09(14:16)) □U R L/ aはSet前に一旦Nothingにし、エラークリア後Nothingで無いかを確認する必要があります。 On Error Resume Nextされているとエラーがあったらその変数は変化しないので、 後から判定された入力規則も削除対象になってしまいます。 Sub DEL() Dim Slc, a Dim shp Set Slc = Selection If TypeName(Slc) <> "Range" Then Exit Sub For Each shp In ActiveSheet.Shapes Set a = Nothing On Error Resume Next Set a = Range(shp.TopLeftCell, shp.BottomRightCell) On Error GoTo 0 If Not a Is Nothing Then If Not Intersect(a, Slc) Is Nothing Then If shp.Name = "あああ" Then '★不要ならコメントアウト shp.Delete ' exit for '1ずつ削除なら End If '★不要ならコメントアウト End If End If Next End Sub Sub On_Error_Resume_Next() a = 100 On Error Resume Next a = 1 / 0 On Error GoTo 0 MsgBox "DIV 0エラーでも値は変わらず " & a & " のまま" End Sub この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[195624] Re[4]: 選択したセルにあるテキストボックスを削除したい。- ■ / 記事引用/メール受信=OFF■ □投稿者/ ちわわ -(2023/02/10(08:20)) □U R L/ kazuo様 この度もありがとうございました。 思うような動きになりました。 助かりました。 |
このトピックに書きこむ |
---|