전체글 1069

자동 빼기

위에는 표가 있고 밑에서 주황색에 반을 입력하고 노란색에 숫자를 입력하면 해당 반을 찾아서 노란색 숫자만큼 값을 빼주는 매크로 매크로 자체는 어렵지는 않지만 에러처리와 내용의 완성도에 중점을 두었다. Option Base 1Option ExplicitSub fnSum() Dim strName As String, intClass As Integer Dim i As Integer Dim strClass As Range, intNum As Range Dim fnClass As Range Dim rngClass As Range '변수 정의 Set strClass = Range("B13") '반명 Set intNum = strClass.Offset(, 1) '뺄 숫자 Set rngClass = Rows(2).Sp..

VB(A) 2015.04.19

달력 생성 및 검색 기능

현재 진행 중인 거대 프로젝트 중의 일부.달력생성 및 검색 매크로 '달력 초기화'를 누르면 공휴일이 반영된 달력이 만들어진다. 그 전에, 달력에는 각 일별로 일정이 적혀있고 노란셀에 일정의 일부를 입력하고 검색버튼을 누르면 해당 일이 검색되면서 링크도 생성된다. 내 혼자 쓰는 거면 change 구문을 썼을텐데, 다 같이 쓰는 거라 에러에 대처가 안 될듯하여 버튼을 삽입하였다. 한 파일에 다른 기능도 있어서 하나씩 올릴 예정 달력만드는 매크로는 예전 식단 만드는 매크로에서 일부만 수정한 거라 검색 매크로만 본문에 올림 검색 매크로는 큰형님의 코드에서 일정 검색 및 링크를 추가하는 코드를 더 넣었다. 큰형님 만세 Sub fdCell() Dim rnG As Range, rngM As Range, rngEnd ..

VB(A) 2015.04.18

소방 21주기 교대근무 근무표

엑셀 대한 문화충격을 안겨줬던 초과근무 서식. 그때 받은 충격을 아직 간직하다가 내 손으로 만들어보았다. 달력을 만드는 것에 중점을 뒀고 역시 어려운 부분은 공휴일 지정 부분이었다. 연도나 월을 수정하면 달력이 바뀌며 그에 맞춰서 근무도 변한다. 음력 공휴일까지 적용하는 것에는 성공했지만 설과 추석의 경우 대체공휴일을 지정하는 것에는 일단 보류. 어린이날의 대체공휴일 적용하는 것에 일단 만족. 내근 끌려가기 전 마지막 프로젝트. 나름 거대한 프로젝트. Option Explicit Sub worK119() Dim wsData As Worksheet Dim InputYear As Integer, InputMonth As Integer, Days As Integer '연,월,일 Dim i As Integer,..

VB(A) 2015.04.04

근무일수 파악

첫 근무일, 마지막 근무일과 연속된 근무일은 ~ 로 묶어주는 매크로 ~ 로 묶어주는 건 짜둔 게 있어 그걸로 썼다. Sub fnWork() Dim rngArea As Range Dim rngC As Range Dim i As Integer, j As Integer, k As Integer Dim arrNum() As Integer, ValArr() As Integer Dim strText() As String Dim cntR As Integer '작업속도 향상 With Application .ScreenUpdating = False .EnableEvents = False .Calculation = xlCalculationManual End With '기존자료 삭제 Range("C4", Cells(Rows..

VB(A) 2015.04.01

감독자 일자 파악

일자별로 감독자 현황이 나와있고 각 일자별로 감독자가 두명이 있는 테이블이다. 1. 테이블을 순환하며 감독자 이름을 비교 2. 감독자별 날짜를 찾아서 배열에 넣음 3. 날짜를 비교하여 빠른 날짜가 앞에 오도록 배열 재지정 Function fnDay(rngArea As Range, rngC As String) As String Dim rngCell As Range Dim arrDay() As Date, arr() As String Dim Temp As Date Dim i As Integer, j As Integer '감독일자 순환하며 작업 For Each rngCell In rngArea If rngCell = rngC Then ReDim Preserve arrDay(i) With rngCell '감독자가..

VB(A) 2015.03.31

폴더 선택 후 셀 크기에 맞게 이미지 불러오기

지식인에 올라온 질문. 폴더를 선택하면 폴더 안에 있는 JPG 파일을 모두 불러오되 셀의 크기에 맞게 불러오는 코드를 질문하였다. 1. 폴더를 선택한다. 2. 폴더 내에 있는 이미지 파일을 불러온다. 3. 셀 크기에 맞게 A,B열에 이미지를 삽입한다. Sub getPicture() Dim imgPos As Range Dim strPath As String, fileName As String Dim cR As Integer, cC As Integer '작업속도 상승 With Application .ScreenUpdating = False .EnableEvents = False .Calculation = xlCalculationManual '엑셀파일의 위치와 동일한 경로설정 및 폴더 선택 ChDir This..

VB(A) 2015.03.28

거래처번호 기준으로 셀병합 후 부분합

지식인에 올라온 질문. 거래처번호를 기준으로 셀병합을 하고 거래처별 부분합을 넣고 싶다는 글. 부분합을 입력하기 위한 셀삽입을 위해 표 밑에서 위로 올라가며 for 구문을 이용한 것 말고는 특별한 것이 없는 매크로 Option Explicit Sub Macro() Dim i As Integer, j As Integer Dim cntR As Integer, cntC As Integer Dim rngData As Range Dim sumGold As Long Dim k As Integer '처리속도 향상 With Application .ScreenUpdating = False .EnableEvents = False .Calculation = xlCalculationManual End With '기존자료 삭제..

VB(A) 2015.03.27