| 
    
     |  | VBプロジェクトをいじればなんとかできるけど...。 因みにフォームがロードされている状態では書き換えは出来ません。
 A1にフルパスが書いてあるとして。
 尚、97の時は出来たりできなかったり、めちゃくちゃ不安定だった。
 2003でやってみた時、書き換え後にブックを上書き保存して、次に開いて
 フォームを立ち上げた時だったっけ?にマクロが無効やらどんたらこうたらいわれた。
 ブックを手開き直しせばアラートはなくなったけど。
 と、かなり不安定で危険かと。
 
 フォームモジュール
 
 Private Sub CommandButton2_Click()
 Application.OnTime Now(), "書き換え"
 Unload Me
 End Sub
 
 Private Sub CommandButton3_Click()
 Application.OnTime Now(), "消す"
 Unload Me
 End Sub
 
 標準モジュール
 
 Sub 書き換え()
 For Each myCtl In ThisWorkbook.VBProject.VBComponents.Item("UserForm1").Designer.Controls
 If TypeName(myCtl) = "Image" Then
 myCtl.Picture = LoadPicture(Range("A1").Value)
 End If
 Next
 End Sub
 
 Sub 消す()
 For Each myCtl In ThisWorkbook.VBProject.VBComponents.Item("UserForm1").Designer.Controls
 If TypeName(myCtl) = "Image" Then
 myCtl.Picture = Nothing
 End If
 Next
 End Sub
 
 |  |