• 쇼핑몰
  • 커뮤니티
  • 북마크

vb6.0/vba




[vb6.0/vba] [vb6.0/vba] Binary(바이너리)를 이용한 텍스트파일 읽기

하나를하더라도최선을
2019.07.08 00:01 784 0

본문



질문내용

[내공100점] 엑셀 지정위치에 사진 넣기... 답변 내용입니다.

L3, M3, N3, O3 셀에 사진명을 넣고

B17:D17, G17:I17, B21:D21, G21:I21 셀에

사진을 알맞게

B17:D17엔 L3에 있는 사진명을 폴더에서 찾아와서 넣고,

G17:I17은 M3에 있는 사진명을 폴더에서 찾아와서 넣고,

B21:D21은 N3에 있는 사진명을 폴더에서 찾아와서 넣고,

G21:I21은 O3에 있는 사진명을 폴더에서 찾아와서 넣고 싶습니다.

페이지는 2장만만들어놨는데

최대 60장이상까지도 만들어도 사용이 가능했으면 좋겟습니다.

474736fc9c3cfdf7ee03e26701d42694_1581335557_3613.png
 

해설

vba 매크로 작업을 하기 위해서 우선 로직을 파악해볼 필요가 있습니다.

#. 순환문을 사용할 수 있는가? 에 대한 질문을 해봅니다.

우선 1페이지에서 2페이지...60페이지 늘어난다고 합니다. 당연 순환문으로 작업을 해야 겠지요

다음으로

#.순환문에 규칙적으로 적용이 되는가? 에 대한 질문을 해봅니다.

L~M 열까지 순차적으로 들어간다는걸 확인 할 수 있습니다.

마지막으로

#.예외처리는 간단히 적용 되는가? 에 대한 질문을 해봅니다.

만일 L3에 값이 있고 M3에 값이 없고 N3에 값이 있을때 이런 경우도 쉽게 예외 처리가 가능하며 원하는 결과를 얻어야 한다.

결론

1. L:O 열의 모든 값이 있는 셀을 순환

2. 해당 값으로 이미지가 있을 경우

3. 값이 있는 셀을 기준으로 이미지가 들어갈 셀을 패턴에 의해 찾음

4. 이미지를 삽입

답변


아래 소스가 잘리네요
첨부한 파일에 소스 있으니 참고하세요
지식인 링크도 같이 올려둡니다.


Sub program1472_com()

Dim C As Range, imgCell As Range

Dim fPath As String, fName As String

fPath = GetFolder

For Each C In Columns("L:O").SpecialCells(2)

Debug.Print C.Address

If Len(C) Then

fName = Dir(fPath & C.Value & ".*")

If Len(fName) Then

Set imgCell = Cells(C.Row + 14 + ((C.Column \ 2) - 6) * 4, 2 + (C.Column Mod 2) * 5)

ActiveSheet.Shapes.AddPicture fPath & fName, msoFalse, msoTrue, _

imgCell.Left + 2, imgCell.Top + 2, imgCell.MergeArea.Width - 4, imgCell.MergeArea.Height - 4

End If

End If

Next

End Sub

Function GetFolder() As String

Dim fldr As FileDialog

Dim sItem As String

Set fldr = Application.FileDialog(msoFileDialogFolderPicker)

With fldr

.Title = "Select a Folder"

.AllowMultiSelect = False

.InitialFileName = Application.DefaultFilePath

If .Show <> -1 Then GoTo NextCode

sItem = .SelectedItems(1) & "\\"

End With

NextCode:

GetFolder = sItem

Set fldr = Nothing

End Function



댓글목록 0

등록된 댓글이 없습니다.