出産前後の痔にはご注意!

CreateControl関数のacImageを使ってイメージ(ウィンドウ)を動的に作成し、そこにイメージを張ることはできたのですが、この画像のOLEサイズをVBAで変更することがどうしてもできません。
「Ctrl.Stretch = True」のような書き方をするのではないかと思うのですが・・・

----------------------------------------------------------------
Dim tForm As Form
Dim Ctrl As Control
Set tForm = CreateForm()
Set Ctrl = CreateControl(tForm.Name, acImage, , , "", 100, 100, 1500, 800)
Ctrl.ストレッチする = True  ←この部分がわかりません。
Ctrl.Picture = "C:\image.JPG"
----------------------------------------------------------------

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

コードにstopを入れておいて中断させ、ローカルウィンドウを表示させてメンバーを眺めると、SizeModeがそれらしいと思われます。

「picture sizemode vba」で検索すると、参照URLがヒットしました。ご参考まで。
ただ、当方2000ですが、acOLESizeClip 以外は見るに堪えないんですがいかがでしょうか。
Sub test()
Dim tForm As Form
Dim Ctrl As Control
Set tForm = CreateForm()
Set Ctrl = CreateControl(tForm.Name, acImage, , , "", 100, 100, 1500, 800)
Ctrl.SizeMode = acOLESizeStretch 'or acOLESizeZoom or acOLESizeClip(デフォルト)
Ctrl.Picture = "C:\test.bmp"
'stop
End Sub

参考URL:http://msdn.microsoft.com/en-us/library/aa196588(office.11).aspx
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。解決致しました。

OLEサイズは3択なのでTrue/Falseではあり得ないと投稿直後に気づき、Ctrl.OLEsize=stretchとか当てずっぽうでやってみましたが当然ながらダメでした。

「コードにstopを入れておいて中断させ、ローカルウィンドウを表示させてメンバーを眺める」
恥ずかしながら、こんな便利なテクニックを今まで知りませんでした。

「acOLESizeClip 以外は見るに堪えないんですがいかがでしょうか。」
仰るとおりだと思います。しかし、その画像が入っているフォルダの中身がわかればいいという程度で考えております。
その画像をクリックすると、その画像が入っているフォルダ内のすべての画像がスライドショーのように表示されるというようなイメージです。画像のストレッチができなければ、サムネールを作成してイメージウィンドウに表示しようかと考えておりました。

この問題でまる1日悩んでおりました。感謝、感謝です。

お礼日時:2010/02/04 07:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング