投稿日 | : 2003/02/16(Sun) 14:05 |
投稿者 | : 花ちゃん |
Eメール | : |
URL | : |
タイトル | : Re^2: 画像を読み込みピクチャーボックスに表示 |
> 1.画像は、作成時間の新しい順に20枚のみ表示させる。
ListBox のSorted プロパティを利用した方法をこちらが理解できたら
並べ替えはここのソートプログラムを利用して作成して見て下さい。
Private Sub Command1_Click()
Dim strFilDay As String
Dim strFileTime As String
Dim strFolderName As String
Dim TempFile As String
Dim Kakutyousi As String
Dim Target As String
Dim KPos As Integer
'取得したいファイルの拡張子を指定
Target = ".BMP.JPG.JPEG.WMF.EMF.ICO.GIF.PNG"
strFolderName = "c:\windows\"
'ディレクトリー内の全ファイル・フォルダを読み込む
'TempFile = Dir$(strFolderName, vbDirectory Or vbHidden Or vbSystem)
TempFile = Dir$(strFolderName & "*.*") 'ファイルだけならこちらでも
'TempFile が空になるまで繰り返し
Do While TempFile <> ""
KPos = InStr(TempFile, ".")
If KPos > 1 Then
'拡張子を取得
Kakutyousi = Mid$(TempFile, KPos, Len(TempFile) - KPos + 1)
'指定の拡張子照合(大文字小文字を区別しないで)
If InStr(1, Target, Kakutyousi, vbTextCompare) > 0 Then
'ファイルをファイルリストボックスから読込んでもOKです。
strFileTime = FileDateTime(strFolderName & TempFile)
If Len(strFileTime) <= 11 Then
strFileTime = strFileTime & " 00:00:00"
End If
strFilDay = Left$(strFileTime, 11)
strFileTime = Mid$(strFileTime, 12, Len(strFileTime) - 11)
'9時までの場合0を付加(Sortの時の桁揃え用)
If Len(Trim$(strFileTime)) <= 7 Then
strFileTime = "0" & strFileTime
End If
List1.AddItem strFilDay & strFileTime & " " & _
strFolderName & TempFile
End If
End If
TempFile = Dir$ '次のファイル名を読込
Loop
'リストボックスからファイルを取り出し
Dim myFileName(19) As String
Dim FileCount As Long
Dim N As Integer
'日付の新しい方から20個を取り出し
If List1.ListCount > 0 Then
For FileCount = List1.ListCount - 1 To 0 Step -1
myFileName(N) = Trim$(Mid$(List1.List(FileCount), 20, _
Len(List1.List(FileCount)) - 19))
N = N + 1
If N = 20 Then Exit For
Next FileCount
End If
'取り出したファイルを表示
Dim i As Long
For i = 0 To 19
Debug.Print myFileName(i)
Next i
End Sub
Private Sub Form_Load()
'List1.Sorted = True 別途プロパティで設定して下さい
List1.Visible = False
End Sub