質問: excel2007 マクロが記録されない excel2007を使用しています。 excelのオプション画面から、[開発]タブをリボンに表示するに チェックを入れています。 そこで質問です。 [開発]タブを選んで[マクロの記録]ボタンを押して 図形を貼り付け、文字色や配置を変更して、 [記録終了]ボタンを押下したのですが、何も記録されません。 offcexpのときには、シェイプを張り付けるマクロや、 文字の色を変更するシェイプが記録されていたのですが。。。 何か設定が必要なのでしょうか? もし何か必要な手順がございましたら、教えて頂けませんか? よろしくお願いいたします。
回答: excel2007では、図形オブジェクトの操作はマクロに記録されなくなりました。 『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 shapes については機能が色々と強化されたようですので、そのせいかもしれませんが、 マクロ記録できないのはちょっと不便ですね。 以前のバージョンを持っている方は、そちらで記録して参考にする事ができますが 2007しか持ってない方は、例えば dim sp as shape sp. ...などとし、表示される[プロパティ/メソッドの一覧]を参考に、 ヘルプやオブジェクトブラウザを駆使してコーディングしていく事になるようです。 他に、テキストボックス程度に限っての話ですが、 ビギナーの方の場合、【代替的に】フォームコントロールの操作を記録して、 それを参考にすると良いかもしれません。 [開発]タブの[コントロール]-[挿入]にある[フォームコントロール]です。 sub macro1() ' ' macro1 macro ' ' activesheet.buttons.add(51.75, 28.5, 93, 25.5).select with selection .horizontalalignment = xlcenter .verticalalignment = xlcenter .readingorder = xlcontext .orientation = xlhorizontal .autosize = true .addindent = false end with selection.shaperange.lockaspectratio = msofalse selection.shaperange.height = 28.5 selection.shaperange.width = 105# with selection .locked = false .lockedtext = false end with with selection .placement = xlfreefloating .printobject = true end with selection.shaperange.textframe.marginleft = 7.09 selection.shaperange.textframe.marginright = 7.09 selection.shaperange.textframe.margintop = 3.69 selection.shaperange.textframe.marginbottom = 3.69 selection.shaperange.alternativetext = "a" selection.characters.text = "ボタン 1" with selection.characters(start:=1, length:=5).font .name = "ms pゴシック" .fontstyle = "標準" .size = 11 .strikethrough = false .superscript = false .subscript = false .outlinefont = false .shadow = false .underline = xlunderlinestylenone .themecolor = 2 '※ .tintandshade = 0 '※ .themefont = xlthemefontnone '※ end with end sub こんな感じで記録されますので、 activesheet.buttons.add(......を activesheet.textboxes.add(......などのように修正したりする事で、雰囲気くらいは掴めるかもしれません。 #記録コードそのものなので、そのままではエラーになるプロパティもあります。(※)