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