『ダウンリストを追加するとエラーになる』(マクロ初心者)
どなたかご教授ください。
〇cs32,dw32の範囲に斜線を引くよう記述しています。
Sub ボタン52_Click()
'(イ) から(?U)斜線
'
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 723.75, 366.75, 887.25, _
232.75).Select
With Selection.ShapeRange.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
End With
End Sub
〇斜線を削除するよう記述しています。
Sub ボタン54_Click()
'(イ)の原因と期間の解除
Dim shape As shape
Dim area As Range
Set area = Range("cs32,dw32") '削除したいセル範囲を指定する
For Each shape In ActiveSheet.Shapes
If Not Intersect(shape.TopLeftCell, area) Is Nothing Then
shape.Delete
End If
Next shape
End Sub
これだけなら正常に動作するのですが、この範囲内にダウンリストを追加
すると斜線削除する際エラーになります。
If Not Intersect(shape.TopLeftCell, area) Is Nothing Then の部分に 問題があるよう表示されるのですが、何が問題でしょうか
ダウンリストを追加した状態でも正常に動作するようにしたいのですが
解決方法を教えてください。宜しくお願い致します。
< 使用 Excel:unknown、使用 OS:Windows10 >
Set area = Range("cs32,dw32")
(もこな2) 2026/02/10(火) 08:04:36
入力規則のドロップダウンリストもShapeなので、
Sub ボタン54_Click()
Dim shape As shape
Dim area As Range
Set area = Range("cs32,dw32") '削除したいセル範囲を指定する
For Each shape In ActiveSheet.Shapes
If shape.Type <> msoFormControl Then ' フォームコントロール(入力規則も)を除く
If Not Intersect(shape.TopLeftCell, area) Is Nothing Then
Stop
shape.Delete
End If
End If
Next shape
End Sub
もこな2さん
Sub test()
Set area = Range("cs32,dzw32")
Debug.Print area.Address
End Sub
の結果は、
$CS$32,$DZW$32
です
(´・ω・`) 2026/02/10(火) 08:37:59
ありがとうございました。記述頂いたとおりに修正すると、うまく機能しました。
早急な回答ありがとうございました。大変助かりました。
(マクロ初心者) 2026/02/10(火) 08:52:47
修正案を提示されたのは ´・ω・`さんですよ。
ちなみにRange("cs32,dw32")は、CS32:DW32を意図したものではないですかという指摘だったと思います。
いえ、その二つのセルですということならそれで問題ないのですが。
[参考]
?Range("cs32,dw32").Address
$CS$32,$DW$32
?Range("cs32:dw32").Address
$CS$32:$DW$32
?Range("cs32","dw32").Address
$CS$32:$DW$32
(xyz) 2026/02/10(火) 11:58:15
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.