3

ActiveXコントロールボタンなどがたくさん付いたワードドキュメントがあります。ボタンがクリックされるたびに、対応する画像をポップアップボックスに表示する必要があります。

私はImageFormと呼ばれるユーザーフォームを持っています、そしてこれは私が今していることです:

Sub Button_Clicked()
    ImageForm.Picture = LoadPicture("appropriate_image_path")
    ImageForm.Show
End Sub

これらの各画像の幅は8.5インチですが、高さは3〜20インチの範囲で変化します(PDFのスニペットです)。そこで、ユーザーフォームの幅を8.5インチ強に設定しましたが、これで問題ありません。ただし、一部の画像はユーザーのモニターよりも高い可能性があるため、ユーザーフォームの画像を垂直方向にスクロールできる必要があります。

私はこれに完全に固執しています。これまでに試したのは、フォームにフレームを追加してから、フォーム内に画像コントロールを追加し、フレームの「ScrollBars」プロパティを垂直に設定することです。次に、「ImageForm.Picture = ...」を使用する代わりに、「ImageForm.ImageControl.Picture = ...」を使用しますが、機能しません。

ここでの洞察は大歓迎です。この質問が十分に明確であることを願っています。私はVBAを1か月ほど使用しています。(私はJavaがとても恋しいです)

ありがとう!

4

1 に答える 1

5

これが私の投稿の1つに基づいたちょっとしたトリックです

アイデアは、画像コントロールがフレームコントロールにあり、画像コントロールに境界線がないことを確認することです。また、画像をスクロールできるように、画像コントロールPictureSizeModeがに設定されていますfmPictureSizeModeClip

スナップショット(デザインタイム)

ここに画像の説明を入力してください

スナップショット(実行時間)

ここに画像の説明を入力してください

コード

Private Sub UserForm_Initialize()
    With Frame1
        '~~> This will create a vertical scrollbar
        .ScrollBars = fmScrollBarsVertical

        '~~> Change the values of 2 as Per your requirements
        .ScrollHeight = .InsideHeight * 2
        .ScrollWidth = .InsideWidth * 9
    End With

    With Image1
        .Picture = LoadPicture("C:\Users\Public\Pictures\Sample Pictures\Desert.jpg")
        .BorderStyle = fmBorderStyleNone
        .PictureSizeMode = fmPictureSizeModeClip
    End With
End Sub
于 2012-09-03T18:49:26.207 に答える