워드에서 폴더 단위로 파일을 열어서 특정 단어 검색하기
문서를 실행하시면 컨텐츠 사용여부를 묻는 메세지가 나옵니다.
반드시 허용하셔야 합니다.
1. 폴더 가져오기로 해당 폴더의
워드파일들을 가져옵니다.
너무 많으면 오류가 발생할 수 있으므로 적당한 수로 나누어서 하시기 바랍니다.
한 50개 정도는 문제가
없었던거 같습니다.
2. 문서 중에 검색 대상이 아닌 문서는 목록에서 선택하신 후 리스트 1건 삭제 버튼을 클릭하시면 됩니다.
3. 검색단어 에 검색할 단어를 입력하시고 하단의 자료추출 버튼을 클릭하시면됩니다.
4. 검색조건은 몇개의 파일을
하나의 결과문서에 나타낼지를 정하는 것입니다.
예를 들어 50개 문서에 검색조건 10을 선택하면 결과문서는 5개가 나옵니다.
오류가 발생하는 경우가 있습니다. 이 때는 매크로 창에서 도구->참조 창을 엽니다.
사용가능한 참조 들 중에 앞에
'누락-'으로 시작하는 항목들이 있는데 이 것들의 체크박스를 풀어주시면 정상적으로 수행될 것입니다.
한번 써보시면 쉽게 될
겁니다.
--------------------------------------------
Private Sub CommandButton1_Click()
getFolder
End Sub
Private Sub CommandButton2_Click()
getSentense
End Sub
Sub goCopy()
varCnt = ListBox1.ListCount
fileCnt = TextBox2.Value
i = 0
Do While i < varCnt
fileNum = i Mod fileCnt
If fileNum = 0 Then
If i = 0 Then
Else
ActiveDocument.Close SaveChanges:=wdSaveChanges
End If
ChangeFileOpenDirectory TextBox1.Text
Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0
newFileName = "복사대상" & i + 1 & "-" & i + fileCnt & Date & Hour(Time) & Minute(Time) & Second(Time) & ".docx"
ActiveDocument.SaveAs FileName:=newFileName
End If
fileVal = ListBox1.List(i)
chkLen = InStr(fileVal, "-")
fileVal = Left(fileVal, chkLen - 1)
'복사할 대상을 열어 복사함
Documents.Open FileName:=fileVal, ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
Selection.WholeStory
Selection.Copy
Documents(fileVal).Close
'새 파일을 저장한 위치로 옮김.
ChangeFileOpenDirectory TextBox1.Text
Documents(newFileName).Activate
Documents(newFileName).Select
'새파일의 맨 뒤로 이동함.
Selection.EndKey Unit:=wdStory
'붙혀넣기 전에 링크를 추가함
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
fileVal, SubAddress:="", ScreenTip:="", TextToDisplay:=fileVal
'붙여 넣기함.
Selection.PasteAndFormat (wdPasteDefault)
' 맨 뒤로 이동하여 다음 파일 붙여넣기 준비함
Selection.EndKey Unit:=wdStory
'다음 페이지로 넘어가기 ctr+enter
Selection.InsertBreak Type:=wdPageBreak
i = i + 1
Loop
ActiveDocument.Save
End Sub
Sub getFolder()
'각종 변수 선언
Dim strPath As String
Dim strNm As String
Dim i As Integer
Dim fdFolder As FileDialog
Dim lngCount As Long
' 현재 있는 데이터를 모두 삭제해야 함.
ListBox1.Clear
'서브폴더의 내용을 가져옴
Set fdFolder = Application.FileDialog(msoFileDialogFolderPicker)
With fdFolder
.Title = "검색할 폴더를 선택 하세요"
If .Show = -1 Then
folderspec = .SelectedItems(1) '선택한 폴더명을 A3 셀에 저장
getSubFolder (folderspec)
End If
End With
TextBox1.Text = folderspec
TextBox11.Text = ListBox1.ListCount
TextBox2.Text = ListBox1.ListCount
End Sub
Sub getSubFolder(folderspec)
Dim result As String
Dim strFilter As String
Dim Msg As String
Dim strDir As String
Dim r As Long
strDir = folderspec
If strDir = "" Then
MsgBox (" 선택된 폴더가 없습니다. 폴더를 선택하세요.")
Exit Sub
End If
r = 1
r = r + 1
If Trim(Right(strDir, 1)) <> "\" Then strDir = strDir & "\"
strFilter = "*.doc*"
result = sRetrieve(strDir, strFilter, r)
End Sub
Private Function sRetrieve(sPath As String, strFilter As String, r As Long) As String
Set fs = CreateObject("Scripting.FileSystemObject")
Set dDirs = fs.getFolder(sPath)
For Each dDir In dDirs.SubFolders
sRetrieve = sRetrieve(dDir.Path, strFilter, r)
Next
For Each fFile In dDirs.Files
If fFile.Name Like strFilter Then
If Left(fFile.Name, 1) = "~" Then
Else
ListBox1.AddItem fFile.Path & "-" & fFile.Size
End If
r = r + 1
End If
Next
Set fs = Nothing
End Function
Private Sub CommandButton3_Click()
'Ensure ListBox contains list items
If ListBox1.ListCount >= 1 Then
'If no selection, choose last list item.
If ListBox1.ListIndex = -1 Then
ListBox1.ListIndex = ListBox1.ListCount - 1
End If
ListBox1.RemoveItem (ListBox1.ListIndex)
End If
TextBox11 = ListBox1.ListCount
End Sub
Private Sub ListBox1_Click()
TextBox3.Text = ListBox1
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
selName = ListBox1
docNameLen = Len(selName)
chkLen = InStr(selName, "-")
selName = Left(selName, chkLen - 1)
Documents.Open (selName)
End Sub
Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
copyName = ListBox2
Documents.Open (copyName)
End Sub
Sub getSentense()
varCnt = ListBox1.ListCount
fileCnt = TextBox2.Value
targetText = TextBox4.Value
i = 0
Do While i < varCnt
fileNum = i Mod fileCnt
If fileNum = 0 Then
If i = 0 Then
Else
ActiveDocument.Close SaveChanges:=wdSaveChanges
End If
ChangeFileOpenDirectory TextBox1.Text
Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0
newFileName = "복사대상" & TextBox2.Text & i + 1 & "-" & i + fileCnt & Date & Hour(Time) & Minute(Time) & Second(Time) & ".docx"
ActiveDocument.SaveAs FileName:=newFileName
End If
fileVal = ListBox1.List(i)
chkLen = InStr(fileVal, "-")
fileVal = Left(fileVal, chkLen - 1)
sendVal = newFileName & "*" & fileVal
'복사할 대상을 열어 복사함
Documents.Open FileName:=fileVal, ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
'자료찾아복사하는 함수 호출함.
chkexeval = True
Do While chkexeval = True
Selection.Find.ClearFormatting
With Selection.Find
.Text = targetText
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.CorrectHangulEndings = True
.HanjaPhoneticHangul = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
chkexeval = Selection.Find.Execute
If chkexeval = True Then
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
' Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend
Selection.MoveRight Unit:=wdWord, Count:=7, Extend:=wdExtend
Selection.Copy
Selection.MoveRight Unit:=wdCharacter, Count:=1
End If
'새 파일을 저장한 위치로 옮김.
ChangeFileOpenDirectory TextBox1.Text
Documents(newFileName).Activate
Documents(newFileName).Select
'새파일의 맨 뒤로 이동함.
Selection.EndKey Unit:=wdStory
Selection.TypeParagraph
'붙혀넣기 전에 링크를 추가함
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
fileVal, SubAddress:="", ScreenTip:="", TextToDisplay:=fileVal
'붙여 넣기함.
Selection.PasteAndFormat (wdFormatPlainText)
Selection.TypeText (vbTab)
Selection.TypeText (chkexeval)
Selection.TypeText (vbTab)
Selection.EndKey Unit:=wdStory
Selection.TypeParagraph
Documents(fileVal).Activate
Loop
Documents(fileVal).Close
i = i + 1
Loop
ActiveDocument.Save
End Sub
Sub goCopyTitle(sendVal)
txtLen = Len(sendVal)
End Sub
TABLE A | |||
사번 | 부서 | 이름 | 직급 |
A100 | 인사부 | 김유신 | 대리 |
A101 | 총무부 | 홍길동 | 주임 |
A102 | 총무부 | 전우치 | 과장 |
A103 | 영업부 | 이순신 | 대리 |
A104 | 회계부 | 강감찬 | 대리 |
A105 | 생산부 | 을지문덕 | 부장 |
TABLE B | ||
부서 | 부서상세 | 부서장 |
인사부 | 1부 | 강호동 |
영업부 | 1부 | 이승엽 |
영업부 | 2부 | 이상민 |
회계부 | 1부 | 서장훈 |
outer join 시
SELECT * FROM a LEFT OUTER JOIN b ON a.부서= b.부서
a를 기준으로 b를 조회한다 즉 아래와 같이 조회된다.
사번 | 부서 | 이름 | 직급 | 부서 | 부서상세 | 부서장 |
A100 | 인사부 | 김유신 | 대리 | 인사부 | 1부 | 강호동 |
A103 | 영업부 | 이순신 | 대리 | 영업부 | 1부 | 이승엽 |
A103 | 영업부 | 이순신 | 대리 | 영업부 | 2부 | 이상민 |
A104 | 회계부 | 강감찬 | 대리 | 회계부 | 1부 | 서장훈 |
A105 | 생산부 | 을지문덕 | 부장 | |||
A101 | 총무부 | 홍길동 | 주임 | |||
A102 | 총무부 | 전우치 | 과장 |
'DAP' 카테고리의 다른 글
실행계획 보기 (0) | 2013.12.05 |
---|---|
dap 관련 인터넷 참고 자료2 (0) | 2013.02.08 |
SELECT /*+gather_plan_statistics*/col_name1, col_name2, ....
FROM table_name_1
where key_Type = '500'
/*/통계 보기 /*/
select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST'));
'DAP' 카테고리의 다른 글
조인에 대하여 (0) | 2013.12.11 |
---|---|
dap 관련 인터넷 참고 자료2 (0) | 2013.02.08 |
재미있는 덧신-USB실내화 발열실내화
아내가 늘 발이 시리다고 해서 발열 덧신을 샀는데 생각보다 괜찮네요.
usb를 통해 가열하는 제품인데 usb는 6v 정도이니 다칠 염려도 적고
전기 꽂고 1분이내에 따뜻해집니다. 좀 지나면 뜨겁다는 느낌이 듭니다.
아내는 자기가 원하던 제품이라며 좋아하네요.
가격도 저렴한데 사용하기 쉽고 좋습니다.
발가락이 시려서 고생하시는 분들에게 좋은 제품입니다.
덧신은 빨간색. 분홍색 두가지인데 빨간색으로 샀습니다.
USB 선은 대략 1m정도 됩니다.
선을 뺄 수도 있습니다.
덧신 안에 열선이 든 패드가 있습니다.
패드 가운데에 10cm 정도 되는 열선이 한가닥 들어 있습니다.
그래서 usb 연결 후 10분 정도 지나면 발 앞부분 중앙이 뜨겁기 시작합니다
그래도 아주 뜨겁지는 않습니다. usb 로 뜨거워 봤자 얼마나 뜨겁겠습니까?
발열패드를 신발에서 꺼낸 사진입니다.
가운데 있는 자는 큰애가 사용하는 18cm 초등학생용 플라스틱자.
260 남자 발에 꽉 끼네요.
'기타 여행' 카테고리의 다른 글
보라카이 여행 전체 정리 (0) | 2015.03.30 |
---|---|
꽃이 지기로소니 바람을 탓하랴 (0) | 2014.04.13 |
싱가포르 여행을 갑니다. 2일차. 첫날부터 힘들고 피곤. (0) | 2013.08.20 |
싱가포르 여행을 갑니다. - 출발 (0) | 2013.08.20 |
싱가포르 여행을 갑니다. 준비편 (0) | 2013.08.06 |
데이터아키텍처 전문가 실기문제 출제방향 및 고려사항
데이터아키텍처 전문가 실기문제 출제방향 및 고려사항 입니다.
데이터베이스 진흥원에 있는 글인데 간단하게 요약하면
1. 주관식 문제의 출제 방향
'기술적문제' 카테고리의 다른 글
프로젝트 진척 관리 팁 (0) | 2016.10.17 |
---|---|
Fedex 사칭 바이러스 조심 (0) | 2014.12.24 |
Big Data] 정보화 진흥원 - 빅데이터_분석활용_가이드v1.0.pdf (0) | 2013.11.15 |
Big Data] 정보화 진흥원 자료-새로운_미래를_여는_빅데이터_시대.pdf (0) | 2013.11.15 |
DAP 합격했습니다 (0) | 2013.06.25 |