- ベストアンサー
Excel2007マクロで図形操作ができなくなった理由と代替方法について
- Excel2007ではマクロの記録で図形操作が無視されます。以前のバージョンのエクセルVBAで得たコードを移植すれば図形描画をマクロで行うことが可能なのですが、わずらわしいです。
- なぜ図形操作をマクロ記録できなくなったのかその経緯をご存知の方教えてください。セキュリティ上の対策なのか、ニーズがないと判断されてしまったのか、XMLとしての保存形式上の問題なのか、なぜなのでしょう?
- また、手軽に図形をプログラムで描画するのに便利な方法はないでしょうか。20年前のBASICの機能で十分なのですが、Excelシートにマクロで簡単に図形が描けなくなって困っています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
2010からは復活してますので >セキュリティ上の対策なのか、ニーズがないと判断されてしまったのか... という事はないと思われます。 単に開発が間に合わなかったんじゃないかと思いますけど、とか書いちゃったら怒られそうなんでツッこみたくないですけど:P いくつかのExcel系Q&A板でユーザーからの不満が噴出してたのは事実です。 公式な文書らしきものとしては 「Excel 2007 新しい図形と図形書式と図形の効果を記録することができません。」 http://support.microsoft.com/kb/937620/ja 「the 2007 Microsoft Office system ― マクロの互換性について」 http://72.14.235.104/search?q=cache:Hn3ICeCoolsJ:download.microsoft.com/download/e/f/9/ef977b5f-3f45-47b7-beb4-475f5d49ed93/2007OfficCompatibility_20070730.doc 上記辺りのページになるのでしょうか。 他のバージョンを持っている方は、そちらで記録して応用する事ができるからいいでしょうけど、 2007しか持ってない方は、ちょっと不便ですね。 他のレスでアドバイスした事があるのは、 Dim sp As Shape sp. ...などとし、表示される[プロパティ/メソッドの一覧]を参考に、ヘルプやオブジェクトブラウザを駆使してコーディングしていく...的な事を書いた事はあります。 >また、手軽に図形をプログラムで描画するのに 'Left,Top,Width,Height ActiveSheet.Lines.Add 0, 0, 100, 100 こんな感じの事でしょうか。
お礼
2010から復活していると知り、うれしく思います。 てっきり図形描画をofficeVBAから排除していく方向性の一端だと 思っていました。 プロパティ/メソッド での図形指定になってから 覚えることを完全に拒絶して、マクロ記録に頼り切っていましたが、 ご指摘の通り ActiveSheet.Lines.Add 0, 0, 100, 100 だけでも記憶しておけば 自由に描けそうです 的確なご回答に感謝いたします。m(_ _)m