|
てるてる さん、こんにちわ。
>>Sub test2()
>> Dim sh As Shape, tf As Boolean
tfはブール(Boolean)型の変数です。
(型の詳細はヘルプを見てね)
シート上の図形をチェックする
>> For Each sh In Application.ActiveSheet.Shapes
フォームコントロールかどうかで分岐
>> If sh.Type = msoFormControl Then
フォームコントロールの場合は種類をチェックする
>> tf = (sh.FormControlType = xlSpinner) 'スピンボタンか否か
カッコ内の、 sh.FormControlType = xlSpinner
という等式が成り立つときは、変数tfはTrueになり、
成り立たないとき(スピンボタンじゃないとき)はtfはFalseになります。
それ以外の時はスピンボタンではありえないのでtfは常にFalseであり、分岐の終了後FalseだったShapeを削除しています。
というわけで、
>この行は、tfにスピンボタンを格納?しているのではないかと思うのですが、
>カッコ内で ”=”をするのが何故なのか
tfにスピンボタンを格納しているのではなく、カッコ内の等式が成り立ったかどうかの値を格納しているのです。
変数の内容に関しては、メッセージボックスで中身を見てもらうのが早いかな。
Sub test2()
Dim sh As Shape, tf As Boolean
'
For Each sh In Application.ActiveSheet.Shapes
If sh.Type = msoFormControl Then
tf = (sh.FormControlType = xlSpinner) 'スピンボタンか否か
Else
tf = False '削除
End If
MsgBox tf, vbInformation, sh.Name
If tf = False Then sh.Delete
Next
End Sub
|
|