Skip to content

MS Office Excel

엑셀 전문가가 되어보자

[VBA] 비교 연산자

by CroitzK posted Nov 28, 2020 Views 118 Likes 0 Replies 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

비교연산자.png


?

[VBA] 엑셀 내용을 PDF 저장 및 Outlook 메일 발송하는 방법

by CroitzK posted Nov 09, 2020 Views 124 Likes 0 Replies 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

아래는 샘플 코드


[PDF 생성 메소드]

Function RDB_Create_PDF(Myvar As Object, FixedFilePathName As String, _
                 OverwriteIfFileExist As Boolean, OpenPDFAfterPublish As Boolean) As String
    Dim FileFormatstr As String
    Dim Fname As Variant

    'Test to see if the Microsoft Create/Send add-in is installed.
    If Dir(Environ("commonprogramfiles") & "\Microsoft Shared\OFFICE" _
         & Format(Val(Application.Version), "00") & "\EXP_PDF.DLL") <> "" Then

        If FixedFilePathName = "" Then
            'Open the GetSaveAsFilename dialog to enter a file name for the PDF file.
            FileFormatstr = "PDF Files (*.pdf), *.pdf"
            Fname = Application.GetSaveAsFilename("", filefilter:=FileFormatstr, _
                  Title:="Create PDF")

            'If you cancel this dialog, exit the function.
            If Fname = False Then Exit Function
        Else
            Fname = FixedFilePathName
        End If

        'If OverwriteIfFileExist = False then test to see if the PDF
        'already exists in the folder and exit the function if it does.
        If OverwriteIfFileExist = False Then
            If Dir(Fname) <> "" Then Exit Function
        End If

        'Now export the PDF file.
        On Error Resume Next
        Myvar.ExportAsFixedFormat _
                Type:=xlTypePDF, _
                FileName:=Fname, _
                Quality:=xlQualityStandard, _
                IncludeDocProperties:=True, _
                IgnorePrintAreas:=False, _
                OpenAfterPublish:=OpenPDFAfterPublish
        On Error GoTo 0

        'If the export is successful, return the file name.
        If Dir(Fname) <> "" Then RDB_Create_PDF = Fname
    End If
End Function


[Outlook으로 메일 보내는 메소드]

Function RDB_Mail_PDF_Outlook(FileNamePDF As String, StrTo As String, _
                              StrSubject As String, StrBody As String, Send As Boolean)
    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .To = StrTo
        .CC = ""
        .BCC = ""
        .Subject = StrSubject
        .Body = StrBody
        .Attachments.Add FileNamePDF
        If Send = True Then
            .Send
        Else
            .Display
        End If
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
End Function

[유형별로 PDF 만들기]

'For a fixed range use this line.
FileName = RDB_Create_PDF(Range("A10:I15"), "", True, True)

'For the selection use this line.
FileName = RDB_Create_PDF(Selection, "", True, True)

'Selection, 즉 현재 선택한 범위 또는 시트를 PDF로 저장
RDB_Create_PDF(Selection, "C:\Users\Ron\Test\YourPdfFile.pdf", True, True)

'ActiveSheet, 즉 현재 선택된 시트를 PDF로 저장
RDB_Create_PDF(ActiveSheet, "C:\Users\Ron\Test\YourPdfFile.pdf", True, True)

'ActiveWorkbook, 즉 현재 열린 엑셀파일에 모든 시트를 PDF로 저장
RDB_Create_PDF(ActiveWorkbook, "C:\Users\Ron\Test\YourPdfFile.pdf", True, True)

'끗.




출저: https://docs.microsoft.com/en-us/previous-versions/office/developer/officetalk2010/ee834871(v=office.11)

TAG •
?

[VBA] 일정패턴의 특정 시트만 선택하는 방법

by CroitzK posted Nov 09, 2020 Views 118 Likes 0 Replies 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

특정 명단표가 있고 이 명단 중 특정값을 갖는 이름에 해당하는 특정시트들만 선택하고자 할때 아래 코드를 사용함.


아래는 코드 샘플


Option Explicit

Sub SelectSheet()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim maxRange As Range
    Dim MaxCount As Integer, i As Integer, j As Integer
    
    Set wb = ThisWorkbook
    Set ws = wb.Worksheets("명단")
    Set maxRange = ws.Range("sMaxCount")
    
    MaxCount = Application.WorksheetFunction.Max(maxRange)
    
    Dim sh() As String
    Dim chk As String
    Dim str As String
    Dim arrMax As Integer
    arrMax = 0
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    For i = 1 To MaxCount
        chk = ws.Range("$F$" & i + 1).Value
        If chk Then
            arrMax = arrMax + 1
        End If
    Next i
    
    ReDim Preserve sh(1 To arrMax)
    
    j = 1
    For i = 1 To MaxCount
        chk = ws.Range("$F$" & i + 1).Value
        If chk Then
            sh(j) = "용지 (" & i & ")"
            j = j + 1
        End If
    Next i
    
    Worksheets(sh).Select
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    
End Sub


TAG •
?

[VBA] 배열 범위 변수 설정

by CroitzK posted Nov 09, 2020 Views 117 Likes 0 Replies 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Dim MyArray() As String 'MyArray()라는 배열을 선언한다.
Dim MaxValue As Integer

'Dim MyArray(1 to 10) As String #스트링 타입의 MyArray는 1~10까지의 배열을 갖는다
'Dim MyArray(1 to MaxValue) As String #이것은 에러를 출력한다.

MaxValue = 10
ReDim Preserve MyArray(1 to MaxValue)
'이렇게 재설정하면 에러를 띄우지 않고  MyArray() 배열이 1~10개가 된다.

'끗.



TAG •
?

[함수 응용] 이미지를 VLOOKUP 하기

by CroitzK posted Oct 29, 2020 Views 127 Likes 0 Replies 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

1. 참조표를 만들고 참조값에 해당하는 사진리스트를 삽입한다.

01.PNG



2. 이름관리자에 다음과 같이 수식을 입력한다.

  =INDEX([참조사진의 범위],MATCH([참조 값],[불러올 사진이 있는 참조값 리스트],0))

  예시) =INDEX($B$1:$B$5,MATCH($G$2,$A$1:$A$5,0))

02.PNG



3. 그림이 있는 셀을 복사한 다음 표시할 위치에 연결된 그림으로 붙여넣는다.

03.PNG


04.PNG



4. 해당 그림의 연결참조값을 생성한 이름으로 지정한다.

05.PNG


끝.



첨부: 이미지 LOOKUP 예제.xlsx


?

[함수 응용] 표에서 원하는 항목만 필터링 하여 다른 시트 및 표에 나열하기

by CroitzK posted Mar 11, 2020 Views 239 Likes 0 Replies 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

  • 수식 예제

=IFERROR(INDEX(DB,LARGE(IF(DB[[#모두],[장비명칭]]="재고품",ROW(DB[[#모두],[일자]])),ROW(1:1))-ROW(DB[[#모두],[일자]]),1),"")



  • 해석

1) DB - 표이름 (원본영역)

2) DB[[#모두],[장비명칭]] - DB표의 필터링 대상 열

3) "재고품" - 필터링 할 명칭

4) DB[[#모두],[일자]] - 목록을 정렬할 기준값을 가진 표의 열

5) 1:1 - 표시하고자 하는 행의 순서 (1:1, 2:2, 3:3, 4:4 --- 순서로 나열된다)

6) 1 - 표시하고자 하는 열 (A:1, B:2, C:3 으로 볼 수 있다 - 단, 지정범위 내에서)


  • 설명

20200311_154918.png

[그림1 - DB 표 예시]


A라는 표가 있다. 그런데 B라는 표에 원하는 값을 가진 ROW 데이터만 표기하여 나열하고 싶을때 가장 쉬운 방법은 '필터' 라는 기능을 이용해 복사한 다음 붙여넣는 방법이 있다.

그런데, 이런 부분을 보다 보기좋게 꾸미고자 할 때 사용하면 유용한 방법으로 이 수식을 이용하면 된다.


20200311_155130.png

[그림2 - 수식을 적용한 사례]


DB라는 이름의 표가 있다고 가정을 하고, REPORT라는 표에 특정 조건의 DB데이터를 나열하고자 할때 REPORT표 각 열에 위 수식을 입력한다음 위 설명에서 가리키는 각 항목을 원하는 값으로 수정한 다음 1번째 열부터 마지막 열까지 각각의 숫자를 1~10 등으로 변경한 다음 Crtl+Shift+Enter를 타이핑하면 해당 수식은 { } 괄호안에 묶여 입력된다.


20200311_155623.png

[그림3 - 적용 예시]


TAG •
?

[함수 응용] TRUNC, FIXED 를 이용한 정수 및 소수점 조건 표기

by CroitzK posted Aug 05, 2018 Views 564 Likes 0 Replies 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

● 함수 예제:

=TRUNC(SUMIFS(DB!$H:$H,DB!$C:$C,$D$2,DB!$D:$D,D$5,DB!$J:$J,$C6,DB!$I:$I,$A$6),3)

=FIXED(TRUNC(SUM(D6:AH6),3),IF(SUM(D6:AH6)-INT(SUM(D6:AH6))>0,3,0),0)

 

● 설명:

FIXED 수식은 TRUNC 수식으로 지정된 텍스트 값을 수치로 읽어들여 계산하고

소수점 단위가 발생한 수치를 소수점 이하 3자리수까지 표기하며

정수일 경우에는 소수점 단위를 무시하여 정수로 표기함.

TAG •
?

[함수 응용] CELL - 저장한 현재 파일 이름 불러오기

by CroitzK posted Jul 30, 2018 Views 692 Likes 0 Replies 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

● 함수 예제 (주의! FIND(), MID() 함수 혼합)

=MID(CELL("filename",A1),FIND("[",CELL("filename",A1),1)+1,FIND("]",MID(CELL("filename",A1),FIND("[",CELL("filename",A1),1)+1,100),1)-1)


● 설명

위 예제는 CELL() 함수의 "filename" TEXT 정보를 읽어 MID()함수를 사용해 필요한 TEXT 부분만 잘라내는 수식 구성임.

TAG •
?

[함수 응용] HYPERLINK() - 하이퍼링크

by CroitzK posted Jul 20, 2018 Views 825 Likes 0 Replies 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

● 함수의 구성

=HYPERLINK([link_location],[friendly_name])


● 상세 설명

[link_location]

연결 대상의 경로

[friendly_name]

HYPERLINK() 함수가 입력된 셀에서 보여질 TEXT


● 함수 예제

=HYPERLINK("http://www.agmserver.com","인터넷 연결 하이퍼링크")


■ 통합문서 내에서 특정 시트로 하이퍼링크 걸기

=HYPERLINK("[파일이름.xlsx]sheet1! A1","[HYPERLINK BUTTON]")

TAG •
?

목록
Board Pagination Prev 1 Next
/ 1

Calender

2021.08
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Time Info

Counter Info

방문자수

전체 : 59,316
오늘 : 8
어제 : 24

페이지뷰

전체 : 2,440,392
오늘 : 2,493
어제 : 14,037

COPYRIGHT 2009 by AGMServer.com

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소