-PR-
  • 困ってます
  • 2006-02-13 10:44:52
  • 質問No.1962654
解決
済み

Q エクセルVBAでオートシェイプのType取得でエラー

  • 閲覧数1181
  • ありがとう数1
  • 気になる数1
  • 回答数2
  • コメント数0
ebis

シート上に複数のグループ化したオートシェイプがあり、
それを一括して消すマクロを組みました。
その時、シート上のボタンまで消してしまわないようTypeで判断しています。
Dim Sp As Shape
For Each Sp In Shapes
If Not Sp.Type = 12 Then
Sp.Delete
End If
Next
簡単な図形であれば、数百個でも問題ありません。
また、複雑な図形でも数個であれば正常に動作します。
これが、複雑な図形が数十個になると、
"Tyepメソッドは失敗しました。"とエラーが表示されExcel自体が強制終了します。
1、2回で出ないこともたまにありますが、何度か繰り返しますと確実に出ます。
原因が特定できず困っています。
推測や可能性でもかまいません、どうぞよろしくお願いいたします。

※複雑な図形とはフリーハンドを組み合わせたような絵です。(人物の顔など)
動作はWindows2000のEXCEL2000で2台
WindowsXPのEXCEL2003で1台でテストしました。
  • 回答数2
  • 気になる数1
  • Aみんなの回答(全2件)

    質問者が選んだベストアンサー

    • 2006-02-13 13:38:35
    • 回答No.2
    「Excel自体が強制終了します。」とか、「だいたい3回で落ちてしまいました。」という

    ことから、試しに Sp.Delete の下に DoEvents を入れると、どうなりますか?
    お礼コメント
    すごいです。
    もう、何百個書いても、何度繰り返しても問題ありませんでした。
    ありがとうございました。
    投稿日時 - 2006-02-13 13:50:13
    • ありがとう数0
    -PR-
    -PR-

    その他の回答 (全1件)

    • 2006-02-13 11:40:53
    • 回答No.1
    見た感じですが、Shapes って 何処の? となると思いますが・・・ あと、12 だけでは、分りにくいのでは・・・ まぁ、いいけど・・・  Dim Sp As Shape For Each Sp In ActiveSheet.Shapes   If Not Sp.Type = msoOLEControlObject Then     Sp.Delete   End If Next ...続きを読む
    見た感じですが、Shapes って 何処の? となると思いますが・・・

    あと、12 だけでは、分りにくいのでは・・・ まぁ、いいけど・・・ 

    Dim Sp As Shape
    For Each Sp In ActiveSheet.Shapes
      If Not Sp.Type = msoOLEControlObject Then
        Sp.Delete
      End If
    Next
    補足コメント
    すみません。説明不足でした。
    Sheet1内に記述していた為、省略しておりました。
    修正していただいたマクロに変えてみましたが、
    やはり落ちてしまいました。

    簡単にテストするため以下のようにしました。
    Sheet1にボタンを2つ付けて

    Private Sub CommandButton1_Click()
    Dim i As Long
    For i = 1 To 10
    Worksheets("Sheet2").Shapes("A").Copy
    ActiveSheet.Paste
    Next i
    End Sub

    Private Sub CommandButton2_Click()
    Dim Sp As Shape
    For Each Sp In ActiveSheet.Shapes
    If Not Sp.Type = msoOLEControlObject Then
    Sp.Delete
    End If
    Next
    End Sub

    そしてSheet2には下手なドラえもんの絵をフリーで描いて、グループ化し、"A"と名前を付けました。

    これでボタン1を押して書いて、ボタン2を押して消してを繰り返しますと、だいたい3回で落ちてしまいました。
    投稿日時 - 2006-02-13 12:27:40
    • ありがとう数0
    • 回答数2
    • 気になる数1
    • ありがとう数0
    • ありがとう
    • なるほど、役に立ったなど
      感じた思いを「ありがとう」で
      伝えてください
    • 質問する
    • 知りたいこと、悩んでいることを
      投稿してみましょう
    このやり方知ってる!同じこと困ったことある。経験を教えて!
    このQ&Aにはまだコメントがありません。
    あなたの思ったこと、知っていることをここにコメントしてみましょう。

    関連するQ&A

    -PR-
    -PR-

    その他の関連するQ&Aをキーワードで探す

    別のキーワードで再検索する
    -PR-
    -PR-
    -PR-

    特集


    成功のポイントとは?M&Aで経営の不安を解決!

    -PR-

    ピックアップ

    -PR-
    ページ先頭へ