トップ > 逆引きで学ぶ ユーザーフォーム&コントロール > 追加章 遊ぶ!楽しむ!ユーザーフォーム > T-03 クリックでイメージ入れ替える

T-03 クリックでイメージ入れ替える2022.05.03

次の書籍の第1章~5章を公開しています。
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」

目次  前頁   次頁  索引


フォーム上に配置されたイメージコントロールの画像を、クリックで入れ替えます。また右クリックで画像を削除します。



サンプルファイル ダウンロード


準備

ユーザーフォームを挿入し、次のコントロールを追加します。

■Imageコントロール
 役割:画像を表示
 オブジェクト名:Set_Image
 個数:1
 幅:72(ポイント)
 高さ:72(ポイント)
 BackStyle:0 - fmBackStyleTransparent
 BorderStyle:1 - fmBorderStyleSingle
 PictureAlignment:2 - fmPictureAlignmentCenter
 PictureSizeMode:1 - fmPictureSizeModeStretch


■Imageコントロール
 役割:画像の格納
 オブジェクト名:Image1~4
 個数:4
 幅:48.75 または 72
 高さ:72 または 48.75
 BackStyle:0 - fmBackStyleTransparent
 BorderStyle:1 - fmBorderStyleSingle


サンプルコード

フォームモジュールに記述します。

'フォーム上のイメージをクリックで入れ替える
Option Explicit

Private lngCount As Long

'■イメージイベント(Set_Image) '+++ MouseDownイベント +++ Private Sub Set_Image_MouseDown(ByVal Button As Integer, _ ByVal Shift As Integer, _ ByVal X As Single, _ ByVal Y As Single) If Button = 1 Then 'マウス左ボタン lngCount = lngCount + 1 If lngCount = 5 Then lngCount = 1 With Controls("Image" & lngCount) Set_Image.Height = .Height '高さ Set_Image.Width = .Width '幅 Set_Image.Picture = .Picture '画像設定 End With ElseIf Button = 2 Then 'マウス右ボタン Set_Image.Picture = Nothing Me.Repaint 'フォーム再描画 End If End Sub

簡単な解説

画像表示用のImageコントロール(Set_Image)でマウスの左ボタンを押すと、lngCount変数が更新され、その値に対応するImageコントロールのプロパティが、Set_Imageに代入されます。
代入されるプロパティは、Height(高さ)、Width(幅)、Picture(画像)です。

画像表示用のImageコントロールでマウスの右ボタンを押すと画像は削除されます。場合によっては画像削除が表示に反映されないケースもあるため、フォームを強制的に再描画しています。


書籍紹介140以上のサンプルファイル付き!

知りたいがすぐわかる! やりたいがすぐできる!
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」(Kindle版)
ユーザーフォームを扱えると、VBAでできることが大きく広がります!
本書では、知りたいこと、やりたいことから、逆引きで学びを深められます。

■ 購入:amazon

ページトップへ戻る
Copyright(C) 2009- 坂江 保 All Rights Reserved.