- 締切済み
エクセル2000と2007でボタン(フォーム)の認識が違って困っていま
エクセル2000と2007でボタン(フォーム)の認識が違って困っています。 エクセル2007でシート内に設置したボタン(押したらマクロが実行されるように)をマクロで消したいと思い、「マクロの記録」にて以下のような記述で消すことができたのですが、これをエクセル2000(互換性にて)同じ事を行うとるすと、消そうするボタンが特定できず、、"Button 1"→"Button 10"と 変更すると消す事ができました。 ActiveSheet.Shapes("Button 1").Select Application.CutCopyMode = False Selection.Delete マクロでボタンやフォームを消す場合、はやり2000と2007とでは記述の仕方に違いがあるのでしょうか?できれば、どちらでも消せるようにしたいと思っております。 現状は2007用と2000用を別々にファイル作成しています。よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- sawya
- ベストアンサー率50% (1/2)
"Button 1"と"Button 10"との違いなら、2000と2007との違いではなくすでにButton 9まで作っているために番号が10になっただけではないでしょうか。 つくったボタンを削除しても、ボタン名の番号につかう数値は増えていきます。 なので、.Shapes("Button 1") のように名前で指定せずにインデックスの番号で指定してはいかがでしょう。 そのシートにシェープが1しかないのなら ActiveSheet.Shapes(1) 1つだけでも複数あっても、必ず最後に追加操作をしたものなら ActiveSheet.Shapes(ActiveSheet.Shapes.Count) のように指定すれば取得できると思います。
- merlionXX
- ベストアンサー率48% (1930/4007)
質問を誤解しているかもしれませんが、マクロボタンを押したらあるマクロを実行し、そのボタン自体を削除するのでしょうか? ならば、そのフォームのボタンにSub TEST01()をセットしてみてください。 Sub TEST02()を実行した後、自分自身を削除します。 Application.Callerを使いますので、ボタン自体の名前に影響を受けません。 Sub TEST01() Call TEST02 ActiveSheet.Shapes(Application.Caller).Delete End Sub Sub TEST02() MsgBox "ボタンを削除します。" End Sub
- aokii
- ベストアンサー率23% (5210/22062)
2000と2007とでは記述の仕方に違いがあります。