次の方法で共有

Excel 2007のマクロで、オートシェイプの直線の位置プロパティが正しく出ません。__

Anonymous
2010-08-07T05:29:10+00:00

Excel 1997 で 、図形の位置あわせやサイズ合わせ、一括グループ化をするためのマクロをつくり、問題なく作動していました。

これをExcel 2007に移行して使用したところ、垂直方向の直線に限って、行き先などの動きがおかしくなりました。

垂直方向の直線について調たところ、まず、ShapeRangeオブジェクトのプロパティ.Heightの返り値 がゼロ.Width の返り値が、ゼロでないという、不思議なことになっていることがわかりました。さらに.Top .Leftの返り値についても、見えている位置とは違うものであることが分かってきました。

いろいろな斜め線を実験してみた結果わかったことは、直線が横軸に対して45度以上135度までの傾きを持つ場合には、上記プロパティは、中心を通る傾き135度の線に対してミラー反転した場合の プロパテイーと同一の値となるらしいのです。

上記の仮定に従って .Type=9 (直線)かつ .Rotate=90 OR 270 の場合には位置変数をミラー変換するよう、プログラムにパッチをあてたところ、正常な動作になりました。

しかし、そんな風に例外処理ルーチンを加えなければならないとしたら、何のためのShapeRangeオブジェクトのプロパティかと思ってしまいます。これは、2007のバグではないでしょうか。

ついでながら、.Rotateの返り値については、線の傾きが90度から135度まで、.Rotate=270、線の傾きが225度から270度まで、.Rotate=90 となるのですが、これも、逆ではないかという感じです。

これらがバグだとすると、アップデートの予定はあるのでしょうか。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2010-08-09T08:50:07+00:00

LongMount_b0ud さん、こんにちは。

Answersをご利用いただきまして、ありがとうございます。

こちらで試してみたところ、Excel 2007 で同じような現象が起きました。

Excel 97 で同様に試してみましたが、こちらでは再現しないようですね。

ちなみに、「Excel 2007に移行して使用したところ」 とありますが、Excel 97 で作成なさったものを Excel 2007 で開いたのでしょうか?

それとも、Excel 2007 で新規に作成なさったのでしょうか?

ただ、バグかどうか仕様についてご確認なさりたい場合は、サポート窓口へ直接お問い合わせいただくのが、早くて確実だと思います。

サポート (カスタマー サービス&サポート)


黒田まい – Microsoft Support

この回答は役に立ちましたか?

0 件のコメント コメントはありません

2 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2010-08-18T09:17:58+00:00

    LongMount_b0udさん、こんにちは。

    同じような現象に遭遇された方にも、こちらを参考にしていただければと思い、今回は私の方で\[回答としてマーク\]をさせていただきました。

    納得いかない場合は、遠慮なくマークを解除してください。

    サポートへ問い合わせた結果などをお知らせいただけると、とてもうれしいかなと思います。

    また、いつでもAnswersをご利用ください。


    石田 優 – Microsoft Support

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2010-08-10T00:23:12+00:00

    追試をしていただきまして、ありがとうございました。

    サポート窓口へも問い合わせしてみます。

    LMB

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません