|
▼akira さん:
こんばんは。
> このコードで試してみたのですが Set shprng=Selection.ShapeRange で
> エラーになります。どなたかご教授ください。APIの宣言はしています。
エラーになるコードとこの時のエラーコードやエラーメッセージ
をキチンと掲載して下さいね!!
(APIだって、記述してください)
例えば
'==============================================================
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'==============================================================
Sub test()
Dim i As Integer
Dim shprng As ShapeRange
Set shprng = Selection.ShapeRange
With shprng
For i = 1 To 100
.IncrementTop -0.75
.IncrementLeft 0.75
DoEvents
Sleep 200
Next
End With
End Sub
上記のコードを作成された図形を選択した状態で作動させます。
これだとエラーになりません。ShapeRangeコレクションの型を持つ変数に
ShapeRangeコレクションを割り当てるのですから、エラーになりませし、
正常に作動しますよね!!
でも、
'==============================================================
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'==============================================================
Sub test()
Dim i As Integer
Dim shprng As Shape
Set shprng = Selection.ShapeRange
With shprng
For i = 1 To 100
.IncrementTop -0.75
.IncrementLeft 0.75
DoEvents
Sleep 200
Next
End With
End Sub
として図形を選択した状態で作動させます。
すると、「型が一致しません」13 というエラーが
Set shprng = Selection.ShapeRange
この行で発生しますね!!
ShapeとShaperangeは違うオブジェクトですから・・・。
この場合、
Set shprng = Selection.ShapeRange(1)
と単独のShapeとして割り当てるとエラーになりません。
それとも・・・、
作成した図形を選択しないで実行したのでしょうか?
そうだとしたら、
Set shprng=Selection.ShapeRange
この行で「オブジェクトはこのプロパティまたはメソッドをサポートしていません」
438 というエラーが発生します。
上記のコードは、図形を選択された状態での実行を前提にしています。
図形は、オブジェクトが色々あるので面倒ですが、Helpを確認しながら
ひとつひとつ調べてみてください。
|
|