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"
----------------------------------------------------------------
よろしくお願いします。
No.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 …
ご回答ありがとうございました。解決致しました。
OLEサイズは3択なのでTrue/Falseではあり得ないと投稿直後に気づき、Ctrl.OLEsize=stretchとか当てずっぽうでやってみましたが当然ながらダメでした。
「コードにstopを入れておいて中断させ、ローカルウィンドウを表示させてメンバーを眺める」
恥ずかしながら、こんな便利なテクニックを今まで知りませんでした。
「acOLESizeClip 以外は見るに堪えないんですがいかがでしょうか。」
仰るとおりだと思います。しかし、その画像が入っているフォルダの中身がわかればいいという程度で考えております。
その画像をクリックすると、その画像が入っているフォルダ内のすべての画像がスライドショーのように表示されるというようなイメージです。画像のストレッチができなければ、サムネールを作成してイメージウィンドウに表示しようかと考えておりました。
この問題でまる1日悩んでおりました。感謝、感謝です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Excel(エクセル) エクセルのショートカットの別のキーへ割当。Ctrl+CをCtrl+1へ変更など 3 2022/11/10 00:03
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- マウス・キーボード キーボード設定で困っています。長文です。 2 2022/12/10 12:44
- Visual Basic(VBA) VBA ダブルクリックしたときにctrlキーが押されているか知りたいのですが。 1 2023/06/30 22:42
- ドライブ・ストレージ windows10。切り取りと貼り付けは書き込み動作になりますか 3 2022/06/08 17:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
検索の画面がでなくなってしま...
-
ゲームでは結局どっちが良いの?
-
名前を付けて保存のウィンドウ...
-
勝手にウィンドウが開いて止ま...
-
Excelの上下を固定したい
-
他のアプリケーションの終了処理
-
UWSCで特定のChromeのタブをア...
-
非アクティブのウィンドウを最...
-
[VBA] UserForm を Excel の W...
-
他アプリの操作(メニューバー)
-
Excel で2つウインドウ枠の...
-
基本的なことで恐縮ですが、現...
-
エクセルで保存したものを開く...
-
子ウィンドウに発生したイベント
-
C言語でWin32APIを使い、子ウィ...
-
EnumChildWindowsの使い方(VBA)
-
親ウインドウにあるOKボタンを...
-
VBで外部プログラムを位置のみ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
検索の画面がでなくなってしま...
-
勝手にウィンドウが開いて止ま...
-
ゲームでは結局どっちが良いの?
-
Excelの上下を固定したい
-
VBA .Value=.Value ?
-
作成したウインドウのサイズを...
-
Vba LongPtrについて教えてくだ...
-
ExcelのBOOKが消えた!
-
ラジオボタンの初期指定
-
他のアプリケーションの終了処理
-
「&HFFFF」「&H1A」とは?
-
親ウインドウにあるOKボタンを...
-
EnumChildWindowsの使い方(VBA)
-
MFC ダイアログ上のID取得につ...
-
[VBA] UserForm を Excel の W...
-
UWSCで特定のChromeのタブをア...
-
ボタンのハンドルウィンド取得...
-
ExcelVBAでAPIを使って外部ウイ...
おすすめ情報