[[20140521084013]] 『オートシェイプについて』(ハイジ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オートシェイプについて』(ハイジ)

オートシェイプで楕円を9個作りました。
任意の楕円をクリックするとその楕円は残してその他は非表示にしたいと考えています。
やり方を教えていただけないでしょうか、よろしくお願いします。

< 使用 Excel:Excel2003、使用 OS:WindowsXP >


 一回非表示にしてしまうと、二度と他のものは選択できなくなるのは構わないのでしょうか。

 そのあたりはおいておいて、下記のようなマクロを作成し、それを各シェープのマクロの
 登録で指定したらきるかと思います。

 Sub 選択のみ表示()
    Dim sh As Shape
    For Each sh In ActiveSheet.Shapes
        If sh.Name <> Application.Caller Then sh.Visible = False
    Next
 End Sub

(Mook) 2014/05/21(水) 10:13


Mook様、お世話になります。
このコードですと全部消えてしまうのですが・・・
勝手な希望(理想)なのですが楕円1〜楕円9までの範囲でクリックした一カ所だけ残りそれ以外は残したいのです。
理由は他にもオートシェイブがあるからです。
(ハイジ) 2014/05/21(水) 11:08

 他にもオートシェイプがあるとなると区別する必要がありますね。
 面倒ですけれど、名前で範囲を指定するかでしょうか。

 楕円がほかに無ければ「楕円」を含むでも良いでしょうけれど、明示的に指定しておいた
 方が後の影響は無いように思います。

 Sub 選択のみ表示()
    Dim shName
    For Each shName In Array("楕円 1", "楕円 2", "楕円 3", "楕円 4") '// 実際にあわせて修正
        If shName <> Application.Caller Then ActiveSheet.Shapes(shName).Visible = False
    Next
 End Sub
(Mook) 2014/05/21(水) 11:50

Mook様、お世話になります。
ばっちりです。希望通りに動きました。
本当にお世話になりました、ありがとう御座いました。

(ハイジ) 2014/05/21(水) 14:08


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.