Excel VBA質問箱 IV

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

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


13197 / 13644 ツリー ←次へ | 前へ→

【6575】別シートの図のデリートについて うめ 03/7/11(金) 11:42 質問
【6576】Re:別シートの図のデリートについて ひで 03/7/11(金) 13:02 回答
【6578】すみません。 Jaka 03/7/11(金) 13:08 発言
【6579】Re:すみません。 ひで 03/7/11(金) 13:45 発言
【6577】Re:別シートの図のデリートについて Jaka 03/7/11(金) 13:04 回答
【6582】Re:別シートの図のデリートについて うめ 03/7/11(金) 15:08 質問
【6583】Re:別シートの図のデリートについて うめ 03/7/11(金) 15:29 回答
【6585】Re:別シートの図のデリートについて うめ 03/7/11(金) 15:32 お礼

【6575】別シートの図のデリートについて
質問  うめ  - 03/7/11(金) 11:42 -

引用なし
パスワード
   別シートの特定の図をデリートしようとしています。

まず別シート(main)をセレクトして特定の図をデリートして、元のシート(base)に戻る(セレクトしなおし)処理をしているのですが。。。。
別シート(main)が一瞬だけチラっと表示されるのが気になってしまいます。

別シート(main)をセレクトせずに、別シート(main)内の特定の図をデリートする方法ってあるのでしょうか?


'******************************************
'  mainの図をデリート
'******************************************
  Sheets("main").Select
  
  Dim tx As Shape
  
  For Each tx In ActiveSheet.Shapes
   Select Case Left(tx.name, 2)
    Case "b_" '/*名称の先頭が「b_」以外を削除する)
      GoTo step_1
    Case Else
      tx.Delete
   End Select
step_1:
   Next tx
   
'******************************************
'******************************************

  Sheets("base").Select

【6576】Re:別シートの図のデリートについて
回答  ひで  - 03/7/11(金) 13:02 -

引用なし
パスワード
   ▼うめ さん こんんちは

>別シートの特定の図をデリートしようとしています。
>
>まず別シート(main)をセレクトして特定の図をデリートして、元のシート(base)に戻る(セレクトしなおし)処理をしているのですが。。。。
>別シート(main)が一瞬だけチラっと表示されるのが気になってしまいます。
>
>別シート(main)をセレクトせずに、別シート(main)内の特定の図をデリートする方法ってあるのでしょうか?


'******************************************
'  mainの図をデリート
'******************************************
  'Sheets("main").Select ←これなし
 
  Dim tx As Shape
 
  For Each tx In Sheets("main").Shapes ’ここ変更←
   Select Case Left(tx.Name, 2)
    Case "b_" '/*名称の先頭が「b_」以外を削除する)
      GoTo step_1
    Case Else
      tx.Delete
   End Select
step_1:
   Next tx
 
'******************************************
'******************************************

  Sheets("base").Select

これでどうでしょうか?

【6577】Re:別シートの図のデリートについて
回答  Jaka  - 03/7/11(金) 13:04 -

引用なし
パスワード
   こんにちは。
こんな感じで良いんじゃないかと思います。

For Each tx In Sheets("main").Shapes
   Select Case Left(tx.name, 2)
    Case "b_" '/*名称の先頭が「b_」以外を削除する)
         無し 心配だったら a=0 とでも入れておけば。
    Case Else
      tx.Delete
   End Selec
Next tx

または、

if Left(tx.name, 2) <> "b_" then
  tx.Delete
end if

【6578】すみません。
発言  Jaka  - 03/7/11(金) 13:08 -

引用なし
パスワード
   ひで さん こんにちは。

ごめんなさい。
かぶってしまいました。

【6579】Re:すみません。
発言  ひで  - 03/7/11(金) 13:45 -

引用なし
パスワード
   ▼Jaka さん こんにちは。

>ごめんなさい。
>かぶってしまいました。
いえいえ気にしないでくださいね

>    Case "b_" '/*名称の先頭が「b_」以外を削除する)
>         無し 心配だったら a=0 とでも入れておけば。
            ↑
よくみたらそ〜ですよね、Jakaさんの回答みてから
わかりました(^^; (まだまだ未熟>ひで)

今日はさいこーに暑いです、とけそー!

【6582】Re:別シートの図のデリートについて
質問  うめ  - 03/7/11(金) 15:08 -

引用なし
パスワード
   ひでさん、Jakaさん、本当にありがとうございます!

教えてもらったとおりにやったら理想どおりの動きを確認できました(^^)

しかし……なぜか……

同じような記述をしているのに、エラーが出てしまう箇所があるのです(+_+)
実行時エラー:『アプリケーション定義またはオブジェクト定義のエラーです』


'******************************************
'  docの図をデリート
'******************************************
  Dim zu As Shape

  '  /////図面内の図形を消す
  For Each zu In Sheets("doc").Shapes
      zu.Delete  ← デバッグするとココが原因?
  Next zu


何でココだけ?原因が分かりません。。。いまいちどお助けを!

【6583】Re:別シートの図のデリートについて
回答  うめ  - 03/7/11(金) 15:29 -

引用なし
パスワード
   お騒がせしてスミマセン。。。解決いたしました。

現在のシートを直前にセレクトしたらエラーが出なくなりました(^_^;)

【6585】Re:別シートの図のデリートについて
お礼  うめ  - 03/7/11(金) 15:32 -

引用なし
パスワード
   ほんとーに、ほんとーにありがとうございました。

また分からなくなった時があったら質問するかもしれませんので、その時はまたお助けください。。。m(__)m

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