Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

방법 1 – 엑셀 VBA와 TEXT 함수를 활용한 디지털 시계 만들기

진행 단계:

  • 삽입 > 일러스트 > 도형 메뉴로 이동합니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 도형(Shapes) 메뉴 상자가 나타나면 모서리가 둥근 사각형(Rounded Rectangle) 옵션을 선택합니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 워크시트에 둥근 사각형 모양이 삽입됩니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 개발 도구(Developer) 탭으로 이동한 후 Visual Basic을 클릭합니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • Visual Basic 창에서 삽입(Insert) 탭을 클릭하고 모듈(Module) 옵션을 선택하여 새 모듈 창을 만듭니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 모듈 창에 아래의 VBA 코드를 입력합니다.
Sub Digi_Clock()
Range("B5") = Not Range("B5")
Do While Range("B5") = True
DoEvents
Range("B6") = Now()
Loop
End Sub
  • 초록색 실행(Run) 버튼을 눌러 코드를 실행합니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • B4TRUE를 입력한 후 Enter 또는 Tab 키를 누릅니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 둥근 사각형 위에서 마우스 오른쪽 버튼을 클릭합니다.
  • 컨텍스트 메뉴에서 매크로 지정(Assign Macro) 옵션을 선택하여 코드를 사각형에 연결합니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 이제 사각형 도형에 VBA가 지정되었으며, 이후 현재 시간이 이곳에 표시됩니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • C6에 아래의 TEXT 수식을 입력합니다.

=TEXT(B6,"hh:mm:ss AM/PM")

  • 이 수식은 셀 B6의 시간 값을 변환하여 hh:mm:ss 형식의 시간으로 반환합니다.
  • Enter 키를 누른 후 홈(Home) 탭의 글꼴(Font) 그룹으로 이동합니다.
  • 글꼴 색상, 크기, 스타일을 원하는 대로 꾸며줍니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 완성하면 시간이 디지털 형식으로 실시간 표시됩니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

방법 2 – 도형 도구와 엑셀 VBA로 디지털 시계 디자인하기

1단계: 시계 디자인 만들기

  • 삽입 > 일러스트 > 도형 탭으로 이동합니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 도형 옵션 상자에서 블록 화살표(Block Arrows) 그룹을 찾아 오각형 화살표(Pentagon Arrow)를 선택합니다.
  • 그러면 워크시트에 오각형 화살표가 삽입됩니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 복사-붙여넣기 명령으로 화살표 도형을 하나 더 삽입합니다.
  • 새로 삽입된 화살표를 선택한 후 도형 서식(Shape Format) > 회전(Rotate) 탭으로 이동합니다.
  • 수평 뒤집기(Flip Horizontal) 옵션을 선택합니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 각 화살표를 복사하여 하나로 모아 원형 형태를 만듭니다.
  • 필요에 따라 회전(Rotate) 옵션을 활용하면 됩니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 모든 화살표를 재배치하여 숫자 8 모양을 완성합니다.
  • 첫 번째 숫자 자리를 구성한 후, 각 화살표 그룹을 마우스 오른쪽 버튼으로 클릭하여 1번부터 순서대로 이름을 지정합니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 전체 그룹을 복사-붙여넣기하여 아래 그림과 같이 hh:mm:ss 형태로 배치합니다.
  • 도형에는 1부터 42까지 이름을 붙입니다.
  • 타원(Oval) 도형 4개를 추가하고 Point라고 이름을 지정합니다.
  • 시작(Start), 정지(Stop), 재설정(Reset) 명령 버튼 3개를 넣기 위해 둥근 사각형 3개를 추가합니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 이제 시계의 표시 형식이 완성되었습니다. 다음 단계에서는 이 형식에 VBA 코드를 추가하겠습니다.

2단계: 엑셀 VBA 코드 입력하기

  • ALT + F11 키를 눌러 Visual Basic 창을 엽니다.
  • 다음 VBA 코드를 추가합니다.
Sub Digital_Clock_Autoshapes(FS As Integer, Digi As Integer)
Dim n As Integer
Dim Spe As Shape
Dim Shw As Worksheet
Set Shw = ActiveSheet
Dim i As Integer
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
Spe.Visible = msoCTrue
Next i
If Digi = 0 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 2 Then
Spe.Visible = msoFalse
End If
Next i
End If
If Digi = 1 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i <> FS + 1 And i <> FS + 5 Then
Spe.Visible = msoFalse
End If
Next i
End If
If Digi = 2 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 3 Or i = FS + 5 Then
Spe.Visible = msoFalse
End If
Next i
End If
If Digi = 3 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 3 Or i = FS + 4 Then
Spe.Visible = msoFalse
End If
Next i
End If
If Digi = 4 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS Or i = FS + 4 Or i = FS + 6 Then
Spe.Visible = msoFalse
End If
Next i
End If
If Digi = 5 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 1 Or i = FS + 4 Then
Spe.Visible = msoFalse
End If
Next i
End If
If Digi = 6 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 1 Then
Spe.Visible = msoFalse
End If
Next i
End If
If Digi = 7 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 3 Or i = FS + 2 Or i = FS + 4 Or i = FS + 6 Then
Spe.Visible = msoFalse
End If
Next i
End If
If Digi = 9 Then
For i = FS To FS + 6
Set Spe = Shw.Shapes(VBA.Format(i, "0"))
If i = FS + 4 Then
Spe.Visible = msoFalse
End If
Next i
End If
End Sub
  • 창을 닫고 활성 워크북으로 돌아갑니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 추가로 아래의 3가지 VBA 코드를 더 작성합니다.
  • 시작(Start) 명령용 코드입니다:
Sub Start_Clock()
Dim Shw As Worksheet
Set Shw = ActiveSheet
Shw.Range("B5").Value = ""
x:
If Shw.Range("B5").Value = "Stop" Then Exit Sub
VBA.DoEvents
Call Digital_Clock_Autoshapes(1, VBA.CInt(VBA.Left(VBA.Format(Time, "HH"), 1)))
Call Digital_Clock_Autoshapes(8, VBA.CInt(VBA.Right(VBA.Format(Time, "HH"), 1)))
Call Digital_Clock_Autoshapes(15, VBA.CInt(VBA.Mid(VBA.Format(Time, "HHMM"), 3, 1)))
Call Digital_Clock_Autoshapes(22, VBA.CInt(VBA.Right(VBA.Format(Time, "HHMM"), 1)))
Call Digital_Clock_Autoshapes(29, VBA.CInt(VBA.Left(VBA.Format(Time, "SS"), 1)))
Call Digital_Clock_Autoshapes(36, VBA.CInt(VBA.Right(VBA.Format(Time, "SS"), 1)))
Dim Spe As Shape
Set Spe = Shw.Shapes("Point")
If Application.WorksheetFunction.IsEven(VBA.Second(VBA.Now)) Then
Spe.Visible = msoCTrue
Else
Spe.Visible = msoFalse
End If
GoTo x
End Sub
  • 정지(Stop) 명령용 코드를 추가합니다.
Sub Stop_Clock()
Dim Shw As Worksheet
Set Shw = ActiveSheet
Shw.Range("B5").Value = "Stop"
End Sub
  • 재설정(Reset) 명령용 VBA 코드를 추가합니다.
Sub Reset_Clock()
Dim n As Integer
Dim Spe As Shape
Dim Shw As Worksheet
Set Shw = ActiveSheet
Dim i As Integer
For i = 1 To 42
 Set Spe = Shw.Shapes(VBA.Format(i, "0"))
 Spe.Visible = msoCTrue
Next i
Set Spe = Shw.Shapes("Point")
Spe.Visible = msoCTrue
End Sub
  • 시작(Start) 버튼에서 마우스 오른쪽 버튼을 클릭한 후 매크로 지정(Assign Macro)을 선택합니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • Start 명령에는 Start_Clock 매크로를 지정합니다.
  • ResetStop 명령 옵션에는 각각 Reset_ClockStop_Clock을 지정합니다.
  • 확인(OK)을 누릅니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

  • 명령 버튼이 포함된 디지털 시계가 완성됩니다.

엑셀에서 디지털 시계 만들기: VBA와 수식을 활용한 2가지 쉬운 방법

함께 보면 좋은 관련 글

  • 엑셀로 시계 차트 만드는 방법
  • 엑셀 VBA 코드로 디지털 시계 만드는 방법