[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセル・フォームのボタンについて』(Rin)
エクセルのシート(Sheet1)にフォームからボタン、四角のオートシェイプ、 円のオートシェイプを貼り付けています。
シート(Sheet1)をコピーしてシートを新しく追加した時に、 ボタンと四角のオートシェイプのみを削除したいのですが、可能でしょうか? (シートをコピーする時に何故かボタンのみが、ボタン1がボタン2と カウントアップしているらしく名前を指定して消すことができないでいます。)
また、ボタンやオートシェイプに固定の名前をつけたり、 既につけられている 名前を取得して表示することはできますでしょうか? (Excel2003を使用しております)
よろしくお願いいたします。
>シート(Sheet1)をコピーしてシートを新しく追加した時に、 >ボタンと四角のオートシェイプのみを削除したいのですが、可能でしょうか?
そのボタンや四角や円があるシートをアクティブにした状態で以下のコード(標準モジュール)を実行してください。
Sub test() With ActiveSheet .Copy after:=Worksheets(Sheets.Count) End With With ActiveSheet .Buttons.Delete .Rectangles.Delete End With End Sub
アクティブシートを対象ブックの最右端にコピーし、コピーされたシートのボタンと四角を削除します
>また、ボタンやオートシェイプに固定の名前をつけたり、 既につけられている >名前を取得して表示することはできますでしょうか?
Sub test1() Dim shp As Shape With ActiveSheet For Each shp In ActiveSheet.Shapes If shp.Type = msoAutoShape Then If shp.AutoShapeType = msoShapeRectangle Then MsgBox "「 " & shp.Name & " 」は、オートシェイプの四角です" ElseIf shp.AutoShapeType = msoShapeOval Then MsgBox "「 " & shp.Name & " 」は、オートシェイプの円(楕円)です" Else MsgBox "「 " & shp.Name & " 」は、オートシェイプです" End If
ElseIf shp.Type = msoFormControl Then If shp.FormControlType = xlButtonControl Then MsgBox "「 " & shp.Name & " 」は、フォームコントロールのボタンです" Else MsgBox "「 " & shp.Name & " 」は、フォームコントロールです" End If
End If Next End With End Sub
名前の表示は、このように Nameというプロパティを使えば、取得も設定も可能です。
まずは、試してみて、それから研究してください。
ichinose
丁寧なご回答ありがとうございます。
やってみた所、うまくできました。 ここ2、3日ずっと気になって試していたのですが、うまくいかず ほとほと困っていたので、解決してとてもすっきりしました。
ありがとうございました。
(Rin)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.