Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 위드리빙 대용량 옷 수납 방수 바구니
- 22FW 로고 패치 포켓 체크 셔츠 2F000 03 M2359 F41
- 남쪽나무 세면대 세면대 세트 (스마트거울) 벽걸이세면대 이케아세면대 세면기
- 잡잡 NBR 요가매트 스탠다드 운동매트 10mm 퍼플
- 오토비 AZ100TR 32G 전후방 FHD 2채널 트럭 화물차 전용 블랙박스 보증기간 2년 20m케이블 포함 후방 적외선 방수 AS 2년보장
- 굿아이템 양면오픈형 투명 접이식 리빙박스 폴딩박스 옷정리함 수납박스 펜트리수납함
- 더블탭스 22SS 정글 01 셔츠 WTAPS JUNGLE 01 GREIGE M
- 22FW 이바나 빈티지 체크 셔츠 더스트핑크 8054631
- 코멧 접이식 투명 리빙박스 56L 대형 2개입
- 미네 리빙다이닝 6인 원목 코너형 식탁세트(소파형)
- 긍정
- 1개
- 반스 올드스쿨 VN000D3HY28
- 삼성 갤럭시워치5
- 23SS 스트라이프 오버핏 셔츠 723033 V2L30 9066
- 러버메이드 벤티드 브루트(75L) 원형 컨테이너 리빙박스
- 8052 블랙라인 정사각 세면기
- ipTIME 유무선공유기
- 봄봄 골드라인 4023G 탑볼세면대 화이트골드 카운타 도기볼 카페세면대
- 리빙앤트리 펠리컨 박스 대
- [제이앤제나] 허리에 무리없는 신생아부터 역류방지쿠션_앨리펀블루 역류방지쿠션
- 내셔널지오그래픽 피너스 빅로고 라운드넥 긴팔 티셔츠 카본 블랙
- list #pop #remove #del #append #insert #list형 #파이썬 파이썬 기본 문법 #파이썬 list
- 두칸 프릴 오버핏 후드티
- 톰브라운 명품톰브라운 23SS 더블페이스 니트 아우터형 포켓 셔츠 MJT291A 07545 415
- 대림디움 대림바스플랜 PL-3070 탑카운터형 세면대/욕실/화장실/세면도기
- ChatGPT
- 올리비아 스텐 세면대 세트
- 샤오미 미밴드 7 스마트밴드
- 네스파 다야몬드은박 후드티
Archives
- Today
- Total
냥집사의 개발일지
VBA - VBA로 표 2개 이상 생성하기 (from Excel to Word) 본문
반응형
2022.08.29 - [VBA] - VBA - VBA로 표 생성하기 (from Excel to Word)
이전 포스팅에 이어 오늘은 VBA로 표 2개 이상 생성을 해보겠습니다.
Word에서는 Range를 특정하기 쉽지 않아 표 2개 생성하는데 의외로 어려움을 겪었는데요.
같이 예제를 보면서 살펴보겠습니다!
Sub add_table()
'Declare part
Dim wd_app As Word.Application
Dim wd_doc As Word.Document
Dim wd_range
Dim wd_table
'Creating a new instance of word only if there no other instances
Set wd_app = New Word.Application
'Make word window visible on monitor
wd_app.Visible = True
'Creating a new document
Set wd_doc = wd_app.Documents.Add()
Set wd_range = wd_doc.Range(0, 0)
wd_doc.Tables.Add Range:=wd_range, NumRows:=3, NumColumns:=4
Set wd_table = wd_doc.Tables(1)
'Enable the borders of table using table object.
wd_table.Borders.Enable = True
'Code for second table
Set wd_range2 = wd_doc.Range(0, 0)
Set wd_table2 = wd_doc.Tables.Add(Range:=wd_range2, NumRows:=2, NumColumns:=2)
wd_table2.Borders.Enable = True
'saving the document
wd_doc.SaveAs2 "add_table"
End Sub
'Code for second table
Set wd_range2 = wd_doc.Range(0, 0)
Set wd_table2 = wd_doc.Tables.Add(Range:=wd_range2, NumRows:=2, NumColumns:=2)
wd_table2.Borders.Enable = True
추가된 코드를 살펴보면 새로운 표를 생성하기위해 Range를 다시 0,0 첫 지점으로 두고
첫 번째 표를 생성할 때와 같은 방식으로 2행2열의 표를 삽입했습니다.
하지만... 아래 그림과 Range(0,0)이 문서의 첫 줄로 가는 것이 아니라 이미 생성된 표의 1행 1열 셀로 선택되는 것을 확인할 수 있었습니다. ㅠ
그렇다면 Range를 어떻게 잡아야 할까요?
'Code for second table
Set wd_range2 = wd_doc.Tables(1).Range
wd_range2.Collapse Direction:=wdCollapseEnd
Set wd_table2 = wd_doc.Tables.Add(Range:=wd_range2, NumRows:=2, NumColumns:=2)
wd_table2.Borders.Enable = True
Range를 Tables 객체로 선택하고 이후
Collapse property(wdCollapseEnd)를 통해 먼저 삽입한 Table(표) 이후로 커서를 옮겼습니다.
다행히 아래 그림과 같이 3행4열 표 이후로 2행 2열의 표가 삽입된 것을 확인할 수 있습니다!!
Set wd_range = wd_doc.Range(0, 0)
wd_doc.Tables.Add Range:=wd_range, NumRows:=3, NumColumns:=4
Set wd_table = wd_doc.Tables(1)
wd_table.Borders.Enable = True
wd_table.Rows.HorizontalPosition = 30
wd_table.Rows.VerticalPosition = -20
'Code for second table
Set wd_range2 = wd_doc.Tables(1).Range
wd_range2.Collapse Direction:=wdCollapseEnd
Set wd_table2 = wd_doc.Tables.Add(Range:=wd_range2, NumRows:=2, NumColumns:=2)
wd_table2.Borders.Enable = True
wd_table2.Rows.HorizontalPosition = 30
wd_table2.Rows.VerticalPosition = 100
2개이상의 표의 위치를 특정위치로 옮기고 싶다면 아래 코드를 참조하세요!!
wd_table.Rows.HorizontalPosition = 30 ' 양수 : 우측 offset 음수 : 좌측 offset
wd_table.Rows.VerticalPosition = -20 ' 양수 : 아래 offset 음수 : 위 offset
HorizontalPosition, VerticalPosition을 통해 표의 위치를 특정할 수 있습니다.
wd_doc.Tables.Add Range:=wd_range, NumRows:=3, NumColumns:=4
Set wd_table = wd_doc.Tables(1)
Set wd_table2 = wd_doc.Tables.Add(Range:=wd_range2, NumRows:=2, NumColumns:=2)
추가 Tips!!
눈썰미 빠른 분들은 눈치채셨겠지만 Table2를 생성할 때는
Table 1과 다르게 선언과 할당을 "동시에" 했습니다.
개인적으로 선언과 할당을 동시에 하는 방법이 더 간단하다고 쉬운 거 같네요~
이제 Word에서도 표2개 이상 삽입하는 건 어렵지 않겠죠?
다음 포스팅에서는 표의 property들을 살펴보려고 합니다!!
그럼 다음 포스팅에 만나요~
좋은 하루 보내세요~
'VBA' 카테고리의 다른 글
VBA - VBA로 셀 테두리 꾸미기 (Word) (2) | 2022.09.01 |
---|---|
VBA - VBA로 셀 테두리 꾸미기 (Excel) (0) | 2022.08.31 |
VBA - VBA로 표 생성하기 (from Excel to Word) (4) | 2022.08.29 |
VBA - VBA를 이용하여 Excel에서 Word로 데이터 복사하기 (0) | 2022.08.28 |
VBA - VBA 코딩 시 소소한 tips (0) | 2022.08.26 |
Comments