Excel VBA質問箱 IV

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

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


63739 / 76738 ←次へ | 前へ→

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

引用なし
パスワード
   ちょっと改良します。Static i As Integer と、プロシージャレベルで変数の値を
保存してしまうと、シートアクティブで戻ったときも値が加算されたままになっいて
順序が狂います。そこで標準モジュールの先頭に移し、グローバル変数にしてみました。
今度は順番どおりに表示されるようです。
なおシートアクティブイベントは、一度他のシートを選択してから戻ったときに
発生します。ご存知かと思いますが、念のため。

[シートモジュール]
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: Cnt = 0
End Sub

[標準モジュール]
Public Cnt As Integer

Sub Pic_Change()
  Dim x As Variant, Ary As Variant
  Dim Wp As Single, Hp As Single
  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", "008")
  If Cnt = UBound(Ary) Then
   Cnt = 0
  Else
   Cnt = Cnt + 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(Cnt) & ".jpg")
     .Left = 0: .Top = 0
     .Width = Wp: .Height = Hp
     .OnAction = "Pic_Change"
   End With
  End With
  Application.ScreenUpdating = True: Erase Ary
End Sub

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 回答

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