« フォーム上のオブジェクトを動かす | メイン | ファイルをzip形式で圧縮する »

外部の画像ファイルを使用する

外部ファイルから画像を取りこむ方法です。
Imageオブジェクトの.Pictureプロパティーに
LoadPicture命令で画像をロードします。
こんな感じです。


UserForm1.Image1.Picture = LoadPicture(FileName)

FileNameには、外部画像へのパスを含めたファイル名を指定します。
表示できる画像は、.jpg、.bmp、.gifのようです。
.pngは駄目でした。


さらにすすめて簡易ビューワーを作成しました。かなりオススメ!
ダウンロードしてお試しください。
このビューワは自分と同じフォルダーにある画像を順に表示します。
クリックで次の表示を行います。

キモとなるプロシージャを2つ紹介します。

はじめは、受け渡された画像を表示するもの。
ポイントは、.AutoSizeを行いフォームの大きさを画像に合わせている点です。
こまかなところでは、
ファイル名をキャプションに保持して、次の画像検索に使用できるようにしています。
また、フォームをUnload-Loadして、画面の中央に配置させています。
そのほかNoChangeは、グローバル定義したboolean変数で、
application.visibleのon/offを行うコントロールに使用しています。
詳細はエクセルVBAで確かめてね。


Sub LoadImage(PathName As String, FileName As String)

NoChange = True
Unload UserForm1
NoChange = False

Load UserForm1

With UserForm1

.Caption = FileName

With .Image1
.Picture = LoadPicture(PathName & "¥" & FileName)
.AutoSize = True

If .Height + 20 > Application.Height Then
.Height = Application.Height - 50
End If

If .Width + 10 > Application.Width Then
.Width = Application.Width - 50
End If

UserForm1.Height = .Height + 20
UserForm1.Width = .Width + 4

End With

Application.Visible = False
UserForm1.Show

End With

End Sub

つぎは、クリックした時の振舞い方。
現在表示されている画像の次の画像を検索します。
Dir関数でファイル名を取得して、該当のファイルまで読み飛ばす方法を取っています。
また、ファイルの拡張子でのスキップを行っています。

Sub Click()
Dim FileName As String

start:
Dir (ThisWorkbook.Path & "¥")

With UserForm1
If .Caption <> ApliName & ApliVersion & ApliCopyright And _
.Caption <> "UserForm1" Then
Do Until FileName = .Caption
FileName = Dir()
Loop
End If
End With

FileName = Dir()
If FileName = "" Then
Dir (ThisWorkbook.Path & "¥")
FileName = Dir()
End If

Dim Extention As String
Extention = StrConv(Right(FileName, 4), vbLowerCase)

If Extention <> ".jpg" And _
Extention <> ".bmp" And _
Extention <> ".gif" Then
UserForm1.Caption = FileName
GoTo start
End If

LoadImage ThisWorkbook.Path, FileName

End Sub

ひとつ前の投稿は「フォーム上のオブジェクトを動かす」です。
次の投稿は「ファイルをzip形式で圧縮する」です。

トラックバック

このエントリーのトラックバックURL:
http://www.xillion.net/mova/mt-tb.cgi/87

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2004年09月18日 00:00に投稿されたエントリーのページです。

メインページアーカイブページも見てください。

Powered by
Movable Type 3.34