「これはヤバかったな」という遅刻エピソード

EXCEL VBAのshapeの下記のコードで複数の線分を描いていますが、ブレークポイントを設定してステップ送りすると最初の1本目の線分に指定した色が付かず黒の線分になります。ブレークポイントを設定しないで連続動作させると全て黒の線分になってしまいます。
shapeを使用している部分は、この他にワードアートの部分だけです。
ワードアート部分を全てコメントに変更しても動作は変わりません。

shape部分のコードは以下の通りです。
Worksheets("sheet1").Shapes.AddLine(beginx:=xA, beginy:=yA, endx:=xB, endy:=yB).Select
With Selection
.ShapeRange.Line.ForeColor.SchemeColor = 2
End With

ワードアートのコードは以下の通りです。
MyShape = Worksheets("深度図").Shapes.AddTextEffect(msoTextEffect1, str_C & str_D, "MS ゴシック", 9, msoTrue, msoFalse, x_pos, y_pos)

どなたかこのような経験をされた方がいらっしゃったら、回答をお願いします。

A 回答 (1件)

マクロを記録すると Select~ とか、Active~ が良く出てくるけど、


これって選択状態にならなきゃいけない、つまりフォーカスを受け取れる
状態で無いと失敗するはずです。

ブレークポイントを指定すると、Active な Window はコードの画面では?
Active な Window しかフォーカスは受け取れませんから、Selection とか
全部使えないと思います。
(だから職業プログラマレベルの人は、Select~ とか、Active~ という
キーワードの無いプログラムを書きます)

 Dim MyShape As Excel.Shape
 Set MyShape = Worksheets("sheet1").Shapes("ShapeTest")
 MyShape.Fill.ForeColor.RGB = RGB(255, 0, 0)
    • good
    • 2
この回答へのお礼

MARU4812さん、早速の回答有難うございます。
つまりは、線を引くシートをアクティブにしておいて、そのコマンドを実行しろということと理解できました。実際にやってみてうまくいきました。有難うございます。助かりました。

まだまだ素人ですので、また何か質問させていただくかもしれませんが、宜しくお願いします。

お礼日時:2011/01/19 14:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報