Excel VBA質問箱 IV

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

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


63740 / 76738 ←次へ | 前へ→

【17592】Re:画像表示の件
回答  Kein  - 04/9/3(金) 0:14 -

引用なし
パスワード
   こんな感じでどうかな ?

[シートモジュール]

Private Sub Worksheet_Activate()
  Dim Wp As Single, Hp As Single
  Const FPic As String = _
  "C:\Documents and Settings\UserName\My Documents\My Pictures\001.jpg"
 
  With ActiveWindow.VisibleRange
   Wp = .Width - 10: Hp = .Height - 10
  End With
  Application.ScreenUpdating = False
  With Me.Pictures
   If .Count > 0 Then .Delete
   With .Insert(FPic)
     .Left = 0: .Top = 0
     .Width = Wp: .Height = Hp
     .OnAction = "Pic_Change"
   End With
  End With
  Application.ScreenUpdating = True
End Sub

[標準モジュール]

Sub Pic_Change()
  Dim x As Variant, Ary As Variant
  Dim Wp As Single, Hp As Single
  Static i As Integer
  Const Ph As String = _
  "C:\Documents and Settings\UserName\My Documents\My Pictures\"
 
  x = Application.Caller
  If VarType(x) <> 8 Then Exit Sub
  If InStr(1, x, "図") = 0 Then Exit Sub
  Ary = Array("001", "002", "005")
  If i = UBound(Ary) Then
   i = 0
  Else
   i = i + 1
  End If
  With ActiveWindow.VisibleRange
   Wp = .Width - 10: Hp = .Height - 10
  End With
  Application.ScreenUpdating = False
  With ActiveSheet
   .Pictures(x).Delete
   With .Pictures.Insert(Ph & Ary(i) & ".jpg")
     .Left = 0: .Top = 0
     .Width = Wp: .Height = Hp
     .OnAction = "Pic_Change"
   End With
  End With
  Application.ScreenUpdating = True: Erase Ary
End Sub

*使い方
まずシートモジュールのイベントマクロで、定数 Ph に「シートを開いたときに表示
する画像のフルパス」を指定します。標準モジュールの Pic_Change の定数 Ph は、
画像ファイルをまとめて保存しているフォルダのパスにします。
(末尾に \ をつけること) そして配列 Ary の要素には、ファイル名だけを羅列します。
拡張子が異なるものを混在させるなら、Ary = Array("XX.jpg", "YY.gif") などと
して、With .Pictures.Insert(Ph & Ary(i)) と拡張子なしの指定に変更します。
この配列 Ary の順番で、表示されている画像が切り替えられます。配列の下限は 0
ですから、最初の要素となるファイル名を、シートイベントマクロで指定したファイルに
しておけば、最後の要素の画像をクリックしたとき、元に戻るというわけです。
テストしてみると、概ねうまくいっているようですが、
Application.ScreenUpdating の設定では、切り替わりの瞬間に画面がぶれるのを
抑止することが出来ないみたいでした。問題点はそれぐらいです。お試し下さい。

0 hits

【17528】画像表示の件 しろろ 04/9/1(水) 19:01 質問
【17539】Re:画像表示の件 ichinose 04/9/1(水) 22:38 発言
【17540】Re:画像表示の件 こもれび 04/9/1(水) 22:57 回答
【17587】Re:画像表示の件 しろろ 04/9/2(木) 21:21 発言
【17588】Re:画像表示の件 つん 04/9/2(木) 22:07 回答
【17592】Re:画像表示の件 Kein 04/9/3(金) 0:14 回答
【17593】Re:画像表示の件 Kein 04/9/3(金) 0:25 回答
【18087】Re:画像表示の件 しろろ 04/9/14(火) 17:20 お礼
【18200】Re:画像表示の件 sion 04/9/17(金) 21:40 回答

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