VBA를 이용해서 워크시트를 삽입하는 프로그램을 작성해 보도록 하겠습니다.
Worksheet를 삽입하기 위해서는 아래의 코드를 이용하면 됩니다.
Worksheets.Add After:=Worksheets(Worksheets.Count)
예제를 한번 다뤄보도록 하겠습니다.
개발도구 메뉴에서 Visual Basic 메뉴로 들어갑니다.
VBA 창에서 '삽입' 메뉴에서 '모듈(M)'을 눌러서 모듈을 추가합니다.
우선 'Sub'를 생성한 다음에 변수명을 정의해 줍니다.
Inputbox를 만들어서 'NewSheetName'이라는 변수에 입력값을 저장 받도록 합니다.
InputBox에 아무것도 적지 않으면, 실행이 되지 않도록 합니다.
sheetnum를 '-1'로 지정하면, 뒤에 If 문에서는 실행이 되지 않도록 설정한 것입니다.
(if문은 SheetNum 이 '0'이상일 때만 실행이 됩니다.)
sheetNum 를 '0'으로 초기화 시킨 후 기존 워크시트와 추가할 시트가 이름이 동일한지 확인합니다.
SheetNum 이 '0'이면(중복되는 시트의 이름이 없으면), 기존의 시트의 맨 마지막에 시트를 추가합니다.
중복되는 시트이름이 있으면, MsgBox가 표시됩니다.
'F5'를 눌러서 실행해 봅니다.
'시트추가'라고 입력한 다음에 확인버튼을 눌러 줍니다.
시트가 추가가 되면서 메세지박스가 열리는 것을 확인할 수 있습니다.
시트명을 입력하지 않으면 아무런 작업도 이루어지지 않습니다.
전체 코드는 아래와 같습니다.
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
32
|
Sub sbTest()
Dim i As Integer, SheetNum As Integer
Dim NewSheetName As String
NewSheetName = InputBox("삽입할 시트명을 입력해 주세요.", "입력")
If NewSheetName = "" Then
SheetNum = -1
Else
SheetNum = 0
For i = 1 To Worksheets.Count
If Worksheets(i).Name = NewSheetName Then
SheetNum = i
Exit For
End If
Next
End If
If SheetNum = 0 Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = NewSheetName
MsgBox Worksheets.Count & "번째 시트로 " & _
NewSheetName & "를(을) 추가했습니다."
ElseIf SheetNum > 0 Then
MsgBox NewSheetName & "는" & SheetNum & "번째 시트에 존재합니다.", "추가완료"
End If
End Sub
|
cs |
728x90
댓글