Excel VBA質問箱 IV

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

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


5944 / 13645 ツリー ←次へ | 前へ→

【48059】シェイプの削除で レタス 07/4/2(月) 11:19 質問[未読]
【48060】Re:シェイプの削除で ぱっせんじゃー 07/4/2(月) 11:25 発言[未読]
【48061】Re:シェイプの削除で レタス 07/4/2(月) 12:23 お礼[未読]
【48062】Re:シェイプの削除で ぱっせんじゃー 07/4/2(月) 12:45 発言[未読]
【48064】Re:シェイプの削除で レタス 07/4/2(月) 14:28 お礼[未読]

【48059】シェイプの削除で
質問  レタス  - 07/4/2(月) 11:19 -

引用なし
パスワード
   shape5からshape35という名前のついたシェイプがあります。
5から35番まで連番ですが、抜けている番号もあります。
これら全てを削除するために

Private Sub CommandButton_Click()
Dim I As Integer
  On Error Resume Next
  For I = 5 To 35 Step 1
    ActiveSheet.Shapes("Shp_Circle" & I).Select
    Selection.Cut
  Next I
  On Error GoTo 0
End Sub

としてみました。
一応、うまく消えるのですが、最後(shape35)が存在しない場合、
マクロ実行前に選択されていたセルが切り取り状態になってしまいます。
(別セルを選択してエンターを押したらそのセルの内容が移動してしまいました)

選択されているセルが切り取り状態になる状態を回避する方法はありますか?
もしくは、削除自体でよい方法はありますか?
よろしくお願いいたします。

【48060】Re:シェイプの削除で
発言  ぱっせんじゃー  - 07/4/2(月) 11:25 -

引用なし
パスワード
   Selectしないで処理してみては?

ActiveSheet.Shapes("Shp_Circle" & I).Cut

ほかに貼り付けないのなら、

ActiveSheet.Shapes("Shp_Circle" & I).Delete

でもいいかも。

【48061】Re:シェイプの削除で
お礼  レタス  - 07/4/2(月) 12:23 -

引用なし
パスワード
   ▼ぱっせんじゃー さん:
>Selectしないで処理してみては?
>
>ActiveSheet.Shapes("Shp_Circle" & I).Cut
>
>ほかに貼り付けないのなら、
>
>ActiveSheet.Shapes("Shp_Circle" & I).Delete
>
>でもいいかも。

ありがとうございます。
CutもDeleteも、どちらでもうまくいきました。
ちなみに、CutとDeleteとの違いは何なのでしょうか?

【48062】Re:シェイプの削除で
発言  ぱっせんじゃー  - 07/4/2(月) 12:45 -

引用なし
パスワード
   VBAヘルプで、
Cut メソッド
Delete メソッド
を調べてみてください。

「切取り」を行ったら、クリップボード
に残りますので、「貼付け」が出来ます。

「削除」を行ったら、クリップボードに
残りません。ですので、「貼付け」は
できません。

シェイプにフォーカスがある状態でで「Ctrl + X」
(切取り)を行ってみて
ください。
任意の場所に貼付けが出来ます。
「Delete」キーでシェイプを削除したら、
「貼付け」を行っても何も貼り付けられ
ないはずです。

【48064】Re:シェイプの削除で
お礼  レタス  - 07/4/2(月) 14:28 -

引用なし
パスワード
   ▼ぱっせんじゃー さん:
>「切取り」を行ったら、クリップボード
>に残りますので、「貼付け」が出来ます。
>
>「削除」を行ったら、クリップボードに
>残りません。ですので、「貼付け」は
>できません。

ただ、見た目消えればよかっただけだったので、
違いが理解出来ていませんでした。(違いを調べていませんでした。)
確かに、「貼り付け」が出来るかどうかの違いはありますね。

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

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