Page 823 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼オートシェイプの削除 小藤 03/2/16(日) 18:24 ┗Re:オートシェイプの削除(一部応援) りん 03/2/16(日) 20:35 ┗ありがとうございます。お礼が遅れて申し訳ございませんでした。 小藤 03/3/4(火) 15:38 ─────────────────────────────────────── ■題名 : オートシェイプの削除 ■名前 : 小藤 ■日付 : 03/2/16(日) 18:24 ■Web : http://www10.ocn.ne.jp/~asahi-h/ -------------------------------------------------------------------------
チェックボックスにチェックを入れない場合は("A1:E5")にあるオートシェイプを全て削除というふうにしたいのですが、力を貸していただければ嬉しく思います。 よろしくお願いします。 ------------------------------------------------------------------- Private Sub CommandButton1_Click() If CheckBox1.Value = True Then Dim sRange As Range Set sRange = Range("A1:E5") ActiveSheet.Shapes.AddShape(msoShapeOval, _ sRange.Left, sRange.Top, sRange.Width, sRange.Height).Select Selection.ShapeRange.Fill.Visible = msoFalse Else End If End Sub |
小藤 さん、こんばんわ。 > チェックボックスにチェックを入れない場合は("A1:E5")にあるオートシェイプを全て削除というふうにしたいのですが、力を貸していただければ嬉しく思います。 >よろしくお願いします。 範囲内に図形を含むかどうかチェックする方法(V3の消えたログより) 完全に含むわけでなくて、かかっているだけでもヒットします。 Sub test() Dim sh As Shape, r1 As Range, r2 As Range With ActiveSheet If .Shapes.Count > 0 Then Set r1 = .Range("A1:E5") II% = 0 For Each sh In .Shapes II% = II% + 1 Set r2 = .Range(sh.TopLeftCell, sh.BottomRightCell) If Not Application.Intersect(r1, r2) Is Nothing Then 'ドラッグ範囲内に図形発見 MsgBox "発見!" + vbCrLf + sh.Name, vbOKOnly, II% End If Next End If End With Set r1 = Nothing: Set r2 = Nothing End Sub こんな感じです。 If UserForm1.CheckBox1.Value = True Then ここでオートシェイプのチェック→削除 End If というふうにすればチェックボックスのオン・オフで分岐できます。 |
即答でお返事を頂きながら、インフルエンザ、出張などありまして、お礼が遅れまして誠に申し訳ございませんでした。 ありがとうございます、早速試してみます。 |