Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


19810 / 76732 ←次へ | 前へ→

【62348】Re:シートを開いたときに特定の画像を最前面に
発言  ichinose  - 09/7/13(月) 7:38 -

引用なし
パスワード
   ▼チューリップ さん:
おはようございます。

まず、
>シートを開いたら、写真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


「最前面に来ている状態にしたい図」と図の名前に規則がないなら、
どこかに(別のシート等)最前面に来ている状態にしたい図の名前を記述しておかなければなりませんね!!

1 hits

【62344】クリックだけでその画像を最背面に チューリップ 09/7/12(日) 15:56 質問
【62345】Re:クリックだけでその画像を最背面に ichinose 09/7/12(日) 17:24 発言
【62346】Re:クリックだけでその画像を最背面に チューリップ 09/7/12(日) 22:03 お礼
【62347】シートを開いたときに特定の画像を最前面に チューリップ 09/7/12(日) 22:46 質問
【62348】Re:シートを開いたときに特定の画像を最前... ichinose 09/7/13(月) 7:38 発言
【62349】Re:シートを開いたときに特定の画像を最前... チューリップ 09/7/13(月) 11:10 お礼

19810 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free