|
▼チューリップ さん:
おはようございます。
まず、
>シートを開いたら、写真1と写真3が最前面に来ている状態にしたくて、
を処理するイベントプロシジャーとして、Worksheet_SelectionChangeで良いのですか?
これだと、選択セル範囲に変化がないとコードは、実行されませんよ!!
Worksheet_Activate()に処理コードを記述するのではないですか?
(実際には、Workbook_Open()でも必要になるかもしれませんが、とりあえず
ここでは、Worksheet_Activateだけ記述します)
中のコードですが、
>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>ActiveSheet.Shapes.Range(Array("写真1", "写真3")) _
> .ZOrder msoBringToFront
>End Sub
>
>これを、今後写真がどんどん増えていってもArrey以下の部分を書き変えないですむ方法はないでしょうか?
図の名前が 写真n(nは、数字)という形式で命名されていて、この中でnが奇数の図を
「最前面に来ている状態にしたくて」というなら・・、
Private Sub Worksheet_Activate()
Dim n As Long
On Error Resume Next
n = 1
Do
If n Mod 2 = 1 Then
Shapes("写真" & n).ZOrder msoBringToFront
If Err.Number <> 0 Then Exit Do
End If
n = n + 1
Loop
On Error GoTo 0
End Sub
「最前面に来ている状態にしたい図」と図の名前に規則がないなら、
どこかに(別のシート等)最前面に来ている状態にしたい図の名前を記述しておかなければなりませんね!!
|
|