戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
非表示図形の削除

    [189362] 非表示図形の削除-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ ひまわり -(2019/05/18(07:23))
    □U R L/
      お世話になります。
      
      1.複数シートの特定の非表示の図形を削除したのですが、うまく動作しません。
        (Shape_del_errのコード)
        1)シート毎に4個の長方形図形があり、表示および非表示数はシート毎に異なります。
       2)長方形図形名称は各シートで同じにしています。
      
      2.選択シートのみのコードで非表示図形の削除は動作します。
        (Shape_del_ok)
      
      複数シートの特定の非表示図形の削除を行うことはできないでしょうか。
      よろしくお願いします。
      
      【エラーで中断するコード】
      Sub Shape_del_err()
          Dim mySheet As Worksheet
          
          For Each mySheet In Worksheets
              If mySheet.Shapes.Range(Array("正方形/長方形 1")).Visible = msoFalse Then
                  mySheet.Shapes.Range(Array("正方形/長方形 1")).Delete
              End If
              If mySheet.Shapes.Range(Array("正方形/長方形 2")).Visible = msoFalse Then
                  mySheet.Shapes.Range(Array("正方形/長方形 2")).Delete
              End If
              If mySheet.Shapes.Range(Array("正方形/長方形 3")).Visible = msoFalse Then
                  mySheet.Shapes.Range(Array("正方形/長方形 3")).Delete
              End If
              If mySheet.Shapes.Range(Array("正方形/長方形 4")).Visible = msoFalse Then
                  mySheet.Shapes.Range(Array("正方形/長方形 4")).Delete
              End If
          Next
      End Sub
      
      【選択したシート毎だと動作するコード】
      Sub Shape_del_ok()
          If ActiveSheet.Shapes.Range(Array("正方形/長方形 1")).Visible = msoFalse Then
              ActiveSheet.Shapes.Range(Array("正方形/長方形 1")).Delete
          End If
          If ActiveSheet.Shapes.Range(Array("正方形/長方形 2")).Visible = msoFalse Then
              ActiveSheet.Shapes.Range(Array("正方形/長方形 2")).Delete
          End If
          If ActiveSheet.Shapes.Range(Array("正方形/長方形 3")).Visible = msoFalse Then
              ActiveSheet.Shapes.Range(Array("正方形/長方形 3")).Delete
          End If
          If ActiveSheet.Shapes.Range(Array("正方形/長方形 4")).Visible = msoFalse Then
              ActiveSheet.Shapes.Range(Array("正方形/長方形 4")).Delete
          End If
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189363] Re[1]: 非表示図形の削除-

    記事引用/メール受信=OFF■

    □投稿者/ ひまわり -(2019/05/18(08:13))
    □U R L/

      すいません。一つ書き忘れていました。
      図形のあるシートと無いシートが混在しています。
      また、各シートには他の図形もありますが、それは常に表示しています。
      よろしくお願いします。
      exceバージョンはl2016です。




    [189364] Re[1]: 非表示図形の削除-

    記事引用/メール受信=OFF■

    □投稿者/ ぴんく -(2019/05/18(08:13))
    □U R L/
      こちらでは削除できていますよ
      Sub Shape_del_err()
          Dim mySheet As Worksheet
          
          For Each mySheet In Worksheets
              If mySheet.Shapes("正方形/長方形 1").Visible = msoFalse Then
                  mySheet.Shapes("正方形/長方形 1").Delete
              End If
              If mySheet.Shapes("正方形/長方形 2").Visible = msoFalse Then
                  mySheet.Shapes("正方形/長方形 2").Delete
              End If
              If mySheet.Shapes("正方形/長方形 3").Visible = msoFalse Then
                  mySheet.Shapes("正方形/長方形 3").Delete
              End If
              If mySheet.Shapes("正方形/長方形 4").Visible = msoFalse Then
                  mySheet.Shapes("正方形/長方形 4").Delete
              End If
          Next
      End Sub
      エラーが出るのは指定した図形名がないのでは
      Sub Shape_del_ok() を、それぞれのシートで試されては
      
      非表示の図形を削除するのなら
      Sub 非表示削除()
          Dim mySheet As Worksheet
          Dim myShape As Shape
          
          For Each mySheet In Worksheets
              For Each myShape In mySheet.Shapes
                  If myShape.Visible = msoFalse Then myShape.Delete
              Next
          Next
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189365] Re[2]: 非表示図形の削除-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ ひまわり -(2019/05/18(09:21))
    □U R L/

      ぴんくさん

      ありがとうございました。
      動作しました。

      名称で削除しようとして無い場合のエラーだったんですね。
      一つ一つ名前で削除しない方法教えていただいて
      ありがとうございます。






このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G