샷온 이야기
다양한 이야기를 자유롭게 나누어 보세요!
게시판 뷰
- 제목
-
[재미]
해피코스 매크로 답변입니다.
- 작성자
-
쉬어가는페이지 - 등록일
- 2026-08-14 17:28:10
- IP
- 58.237.**.110
- 조회수
- 100
매크로 기능을 간략히 소개하자면 파일을 열면 자동으로 오늘의 해피코스를 빨간 바탕색으로 표시하고, 마지막 코스인 두번째 세인트코스가 끝나면 자동으로 날짜전체를 바꾸고 첫번째 소소리부터 시작하도록 만든 겁니다.
날짜나 요일등 평소에 알림을 받거나 다른 용도로 사용하는데도 참고 될만한 내용입니다.
그럼 매크로를 만들어서 파일생성까지 순서대로 알려드립니다.
엑셀을 어느정도 쓰신다는 조건으로 글을 올리니 전혀 모르겠으면 한번 더 댓글 부탁드립니다. 처음부터 하나하나 사용할 수 있도록 글 올리겠습니다.
먼저 엑셀을 열면 새통합문서라고 나옵니다.
좌측 상단을 누르면 화면 하단에 엑셀옵션이 있는데 여길누르고 보안센터로
갑니다. 보안센터 설정을 누르고 매크로설정, 모든 매크로 포함을 선택해주세요..
확인을 누르고 새통합문서 화면이 나타나게되는데 이걸로 매크로실행준비가 된겁니다.
alt+f11를 누르면 매크로 편집창(visual basic editor)이 나타납니다.
화면 좌측에 모듈을 우클릭 , 삽입 , 모듈을 선택하면 편집화면이 뜹니다.
여기서 제가 아래에 올려놓은 Sub Auto_Open() 부터 화면 끝까지 복사해서 붙여 넣으면 됩니다.
첫번째: 매크로에서 Sub 시트생성() 을 찾아 커서를 갖다놓은 후 단축키 f5(매크로실행)을 누릅니다. 맨처음 한번만 하면 됩니다. 시트를 생성해서 입력하는것을 매크로기록한겁니다.
두번째: Sub Auto_Open() 에 커서를 놓고 단축기 f5(매크로실행)을 누릅니다.
그러면 오늘의 해피코스로 바뀌게 될겁니다.
파일은 hpcs.xlsm 이며 엑셀 기본 경로로 저장됩니다.
혹시 다른이름으로 저장하실때는 파일형식을 매크로사용통합문서로 하시면 됩니다.
시트에서 c열(날짜있는셀)은 수식과 서식으로 되어있으니 내용변경을 하지마세요.
매크로와 시트를 복사해서 자주쓰는 엑셀파일에 넣고 사용하시면 좋으실겁니다.
매크로 내용을 아래에 넣으니 그대로 복사해서 붙여넣으시면 되고 궁금한점은
댓글로 올려주세요. 등록하는데 오류가 계속 나서 일부 수정 후 등록했으니, 참고하시고
확실히 이해하시면 응용해서 사용하세요. 수정으로 인해 매크로 실행 중간에 일부 오류 구간이 있을 수 있습니다.
'맨끝까지 복사해서 매크로 편집창에 그대로 붙여넣으세요.
Sub Auto_Open()
On Error GoTo e
Sheets("hp").Activate
Sheets("hp").Cells(24, 7) = Date
If Sheets("hp").Cells(24, 7) = Sheets("hp").Cells(24, 8) Then
Else
tst
End If
ActiveWorkbook.Save
Exit Sub
e:
MsgBox "hp시트가 없습니다. 시트 생성 후 다시 실행해주세요."
End Sub
Sub tst()
Sheets("hp").Activate
y = 5
' 이부분은 오늘날짜와 이전에 파일을 열었을때 날짜를 비교해서 며칠동안 인지 알아내는 부분입니다.
' 만약 6일동안 파일을 열지 않았다면 6이 vu로 입력되겠지요.
vu = Cells(24, 7) - Cells(24, 8)
For vu1 = 1 To vu
Cells(24, 8) = Cells(24, 8) + 1
' 이부분은 빨간바탕색을 찾아서 그날부터 계산하는 부분입니다.
wk = Weekday(Cells(24, 8))
If wk = 2 Or wk = 5 Then
For h = 2 To 45
If Cells(h, y).Interior.ColorIndex = 3 Then
Cells(h, y).Interior.ColorIndex = xlNone
If h = 41 Then
h = 1
'여기가 핵심으로 해피코스 마지막부분, 42행에있는 소소리코스의 날짜를 c1셀에 넣는 '부분입니다.
'여기서는 c1셀을 10월19일로 바꾸고 그아래 날짜도 같이 바뀌겠네요.
Cells(1, 3) = Cells(42, 3)
Else
End If
Cells(h + 1, y).Interior.ColorIndex = 3
Cells(h + 1, y).Activate
GoTo d
Else
End If
Next
d:
Else
End If
Next
End Sub
'시트생성은 한번만 실행하면됩니다,.
'커서를 시트생성에 놓고 매크로 실행키인 f5또는 상단 삼각형(play)모양 아이콘을 누르면 됩니다.
Sub 시트생성()
On Error GoTo mk
Sheets.Add
cn:
ActiveSheet.Name = "hp"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=R[-1]C"
Range("C3").Select
ActiveCell.FormulaR1C1 = "=R[-1]C+3"
Range("C4").Select
ActiveCell.FormulaR1C1 = "=R[-1]C+4"
Range("C3:C4").Select
Selection.AutoFill Destination:=Range("C3:C45"), Type:=xlFillDefault
Range("C3:C45").Select
ActiveWindow.LargeScroll Down:=-1
Range("B2").Select
ActiveCell.FormulaR1C1 = "월"
Range("B3").Select
ActiveCell.FormulaR1C1 = "목"
Range("B4").Select
ActiveCell.FormulaR1C1 = "월"
Range("B5").Select
ActiveCell.FormulaR1C1 = "목"
Range("B2:B5").Select
Selection.AutoFill Destination:=Range("B2:B45"), Type:=xlFillDefault
Range("B2:B45").Select
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 1
Range("D2").Select
ActiveCell.FormulaR1C1 = "소소리"
Range("D3").Select
ActiveCell.FormulaR1C1 = "로얄"
Range("D4").Select
ActiveCell.FormulaR1C1 = "포르"
Range("D5").Select
ActiveCell.FormulaR1C1 = "와츠"
Range("D6").Select
ActiveCell.FormulaR1C1 = "아벨"
Range("D7").Select
ActiveCell.FormulaR1C1 = "알프"
Range("D8").Select
ActiveCell.FormulaR1C1 = "볼케"
Range("D9").Select
ActiveCell.FormulaR1C1 = "사막"
Range("D10").Select
ActiveCell.FormulaR1C1 = "펜살"
Range("D11").Select
ActiveCell.FormulaR1C1 = "카데"
Range("D12").Select
ActiveCell.FormulaR1C1 = "글라"
Range("D13").Select
ActiveCell.FormulaR1C1 = "펄그린"
Range("D14").Select
ActiveCell.FormulaR1C1 = "헬라"
Range("D15").Select
ActiveCell.FormulaR1C1 = "장승"
Range("D16").Select
ActiveCell.FormulaR1C1 = "송지아"
Range("D17").Select
ActiveCell.FormulaR1C1 = "히든"
Range("D18").Select
ActiveCell.FormulaR1C1 = "글레"
Range("D19").Select
ActiveCell.FormulaR1C1 = "비앙"
Range("D20").Select
ActiveCell.FormulaR1C1 = "세인"
Range("D21").Select
ActiveCell.FormulaR1C1 = "아델"
Range("D22").Select
ActiveCell.FormulaR1C1 = "로얄"
Range("D23").Select
ActiveCell.FormulaR1C1 = "소소리"
Range("D24").Select
ActiveCell.FormulaR1C1 = "와츠"
Range("D25").Select
ActiveCell.FormulaR1C1 = "포르"
Range("D26").Select
ActiveCell.FormulaR1C1 = "알프"
Range("D27").Select
ActiveCell.FormulaR1C1 = "아벨"
Range("D28").Select
ActiveCell.FormulaR1C1 = "사막"
Range("D29").Select
ActiveCell.FormulaR1C1 = "볼케"
Range("D30").Select
ActiveCell.FormulaR1C1 = "카데"
Range("D31").Select
ActiveCell.FormulaR1C1 = "펜살"
Range("D32").Select
ActiveCell.FormulaR1C1 = "펄그린"
Range("D33").Select
ActiveCell.FormulaR1C1 = "글라"
Range("D34").Select
ActiveCell.FormulaR1C1 = "장승"
Range("D35").Select
ActiveCell.FormulaR1C1 = "헬라"
Range("D36").Select
ActiveCell.FormulaR1C1 = "히든"
Range("D37").Select
ActiveCell.FormulaR1C1 = "송지아"
Range("D38").Select
ActiveCell.FormulaR1C1 = "비앙"
Range("D39").Select
ActiveCell.FormulaR1C1 = "글레"
Range("D40").Select
ActiveCell.FormulaR1C1 = "아델"
Range("D41").Select
ActiveCell.FormulaR1C1 = "세인"
Range("D42").Select
ActiveCell.FormulaR1C1 = "소소리"
Range("D43").Select
ActiveCell.FormulaR1C1 = "로얄"
Range("D44").Select
ActiveCell.FormulaR1C1 = "포르"
Range("D45").Select
ActiveCell.FormulaR1C1 = "와츠"
Range("D46").Select
ActiveWindow.LargeScroll Down:=-1
Range("D2").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 16777062
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("D23").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 16777062
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 8
Range("D42").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 16777062
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 1
Range("F24").Select
ActiveCell.FormulaR1C1 = "오늘"
Range("G24").Select
Sheets("hp").Select
Sheets("hp").Name = "hp"
Range("A2").Select
ActiveCell.FormulaR1C1 = "1"
Range("A3").Select
ActiveCell.FormulaR1C1 = "2"
Range("A2:A3").Select
Selection.AutoFill Destination:=Range("A2:A45"), Type:=xlFillDefault
Range("A2:A45").Select
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 1
Range("E2").Select
Range("G24").Select
ActiveCell.FormulaR1C1 = "8/5/2026"
Range("G24").Select
Selection.Copy
Range("H24").Select
ActiveSheet.Paste
ActiveSheet.Paste
Application.CutCopyMode = False
Range("H24").Select
Columns("g:g").EntireColumn.AutoFit
Columns("h:h").EntireColumn.AutoFit
Columns("F:F").EntireColumn.AutoFit
Range("F24:G24").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 16777062
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("E20").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Columns("E:E").ColumnWidth = 6.63
Columns("A:D").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("C1").Select
ActiveCell.FormulaR1C1 = "6/1/2026"
Range("C2").Select
Selection.NumberFormatLocal = "m""월"" d""일"";@"
Selection.Copy
Range("C1:C45").Select
ActiveWindow.LargeScroll Down:=-1
Range("C3:C45").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Columns("C:C").Select
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("D15").Select
Columns("C:C").EntireColumn.AutoFit
Columns("B:B").ColumnWidth = 7
Columns("B:B").ColumnWidth = 6.88
Cells(20, 5).Select
ActiveWorkbook.SaveAs "hpcs.xlsm"
Exit Sub
mk:
Sheets("hp").Activate
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
GoTo cn
End Sub






웹젠 PC방의 특별한 혜택!
댓글 [0]
댓글 리스트