|
わたくし、初心者です。お時間あればぜひご教授お願いします。
画像データを取り込めるプログラムをネット上でいただきましたが、、
元ファイルが取り込んだ時のフォルダーに存在しないと表示できません。
写真をリンクせずに取込めるにはどこをどのように換えればよいのでしょうか?
なお、画像は640Mカメラ撮影(だいたい120K)、jpgのみです。
以下プログラム:
'ファイル名取得
Sub Getfn()
Dim dlg As FileDialog
Dim fol_path As String 'フォルダのフルパス
Dim f_name As String 'ファイル名
Dim i As Long 'ファイル名を出力する行番号
'前データクリア
Range("A2", Range("B2").End(xlDown)).ClearContents
fol_path = Range("G1").Value 'パスを変数に格納
f_name = Dir(fol_path & "\*") 'フォルダ内の一つ目のファイル名を取得
If f_name = "" Then
MsgBox fol_path & " にはファイルが存在しません。"
Exit Sub
End If
'A5セルから下にファイル名を書き出し
i = 2
Do Until f_name = ""
Cells(i, 1).Value = i - 1
Cells(i, 2).Value = f_name
i = i + 1
'次のファイル名を取得
f_name = Dir
Loop
MsgBox "ファイル名一覧を作成しました。"
End Sub
Sub Photo()
Dim Path As String '写真データパス
Dim i As Integer, j As Integer, k As Integer '繰り返し変数
Dim ShtNm As String 'シート名
Dim DestinationFile As String '作成ファイル名
Dim xlsApp As Application, xlBook As Workbook, xlSheet As Worksheet '作業用変数
Dim PicPath As String '写真挿入パス
Application.ScreenUpdating = False '画面更新非表示
'初期設定
Path = Cells(1, 7)
k = 1 'ファイルのNo
'保存フォルダの作成
If Dir(Path & "\写真票", vbDirectory) = "" Then
MkDir Path & "\写真票"
End If
DestinationFile = Path & "\写真票" & "\写真票.xlsx" ' 作成ファイル名設定
Sheets("写真票様式").Copy
ActiveWorkbook.SaveAs Filename:=DestinationFile, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 'ファイル作成
ActiveWorkbook.Close
Set xlsApp = CreateObject("Excel.Application")
Set xlBook = xlsApp.Workbooks.Open(DestinationFile)
Do Until Cells(k + 1, 1) = ""
Application.StatusBar = k & "枚目の処理をしています..."
'シートの追加
If k Mod 8 = 1 Then
i = 0
Set xlSheet = xlBook.Worksheets("写真票様式")
xlSheet.Copy Before:=xlSheet
Set xlSheet = xlBook.Worksheets("写真票様式 (2)" & "")
ShtNm = "写真票" & "-" & k \ 8 + 1
xlSheet.Name = ShtNm
Set xlSheet = xlBook.Worksheets(ShtNm)
End If
If k Mod 2 = 1 Then
j = 0
Else
j = 2
End If
'写真挿入
PicPath = Path & "\" & Cells(k + 1, 2)
xlSheet.Cells(6 + 17 * i, 2 + j).Select
xlSheet.Pictures.Insert(PicPath).Name = "Pic" & k
xlSheet.Shapes("Pic" & k).Copy
xlSheet.Shapes("Pic" & k).Delete
xlSheet.Paste
'サイズ変更
xlSheet.Pictures.ShapeRange.LockAspectRatio = msoTrue
xlSheet.Shapes("Pic" & k).Height = 250
'項目入力
xlSheet.Cells(3 + 17 * i, 2 + j) = Cells(k + 1, 3)
xlSheet.Cells(4 + 17 * i, 2 + j) = Cells(k + 1, 4)
xlSheet.Cells(1, 1).Select
k = k + 1
If j = 2 Then i = i + 1
Loop
xlBook.Close (True) 'ブックをクローズ (保存)
xlsApp.Quit 'エクセルを終了
Application.StatusBar = False
ThisWorkbook.Activate
Application.ScreenUpdating = True '画面更新表示
MsgBox "写真票を作成しました。"
End Sub
どうぞご対応のほどよろしくお願いします。
|
|