投稿時間:2007/06/06(Wed) 13:58 投稿者名:なべ
Eメール:
URL :
タイトル:画像の自動読み込み
タイトルのとおりです 1つのフォルダ内の複数のナンバリングされた画像ファイルを順に自動的に開いてほしいのですが、どうにも行き詰ってしまいました。 VBはまだ初心者で、触り始めてからまだ1ヶ月ほどです。 下に組んだプログラムを載せておくので、指摘のほどお願いします。
Option Explicit
=========================================================== Private Sub Command1_Click()
'ココで画像フォルダを記憶させる
On Error GoTo Err_Command1_Click
Pic1.Cls
CommonDialog1.Filter = "*.bmp|*.bmp" CommonDialog1.ShowOpen
Pic1.Picture = LoadPicture(CommonDialog1.FileName)
Text2.Text = Pic1.Width / Screen.TwipsPerPixelX - 4 Text1.Text = Pic1.Height / Screen.TwipsPerPixelY - 4
Exit_Command1_Click: Exit Sub Err_Command1_Click: MsgBox ("ファイルを開く作業をキャンセルします")
Exit Sub End Sub
========================================================= Private Sub Command2_Click() Unload Me
End Sub =========================================================
Private Sub Command3_Click()
'==========関数の宣言============== Dim i As Integer Dim j As Integer Dim n As Integer Dim k As Integer Dim col1 As Long Dim col2 As Long Dim sum1 As Long Dim l As Integer '==================================
'=================Excel開く宣言================ Dim xlSheet As Excel.Worksheet Dim xlBook As Excel.Workbook Dim xlApp As Excel.Application Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1)
xlApp.Visible = True xlSheet.Activate '==============================================
l = 0 'Excelの列担当繰り返し構文,画像ファイル分繰り返す For l = 1 To Text3.Text
'1行目にナンバリングする xlSheet.Cells(1, l).Value = l i = 0
'↓ココから画像を開くまでを自動化したい '================画像を開く================== Pic1.Cls
CommonDialog1.Filter = "*.bmp|*.bmp" CommonDialog1.ShowOpen
Pic1.Picture = LoadPicture(CommonDialog1.FileName)
Text2.Text = Pic1.Width / Screen.TwipsPerPixelX - 4 Text1.Text = Pic1.Height / Screen.TwipsPerPixelY - 4 '=============================================
'=======以下PopImagingの作業"垂直投影"を再現======= For i = 0 To Text2.Text - 1 sum1 = 0 j = 0 For j = 0 To Text1.Text - 1 col1 = Pic1.Point(i, j) col2 = 0
For k = 0 To 256 If col1 = RGB(k, k, k) Then col2 = k End If Next k sum1 = sum1 + col2 Next j
sum1 = sum1 / Text1.Text '2行目からデータを入力 xlSheet.Cells(i + 2, l).Value = sum1 Next i '=================================================
Dim Lngst As Long Lngst = Timer Do While Timer - Lngst < 1 DoEvents Loop
Next l
'============Excel閉じる================ xlApp.DisplayAlerts = False xlSheet.SaveAs "C:\Documents and Settings\a1417393\デスクトップ\test1.csv", xlCSV xlApp.Quit
Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing '========================================
End Sub
|