MS office 제품들은 VBA(Visual Basic for Applications) 를 활용하여 다양한 작업들을 할 수 있는데~
오늘은 미완이긴 하지만 Visio 에서 같은 스타일의 shape를 선택하는 방법에 대해 소개하려 합니다.
아래 그림은 7개의 타원과 5개의 직사각형으로 구성된 Visio 그림 입니다.
위 그림에서는 타원 하나가 선택을 한 상태입니다.
다음으로 Visio 에서 ALT + F11을 눌러서 아래 그림과 같은 VBA editor 를 엽니다.
위 그림과 같이 아래 코드를 넣어 줍니다. 그리고 마지막으로 Ctrl + S를 눌러서 저장 합니다.
Public Sub FindShapes() | |
Dim vsoSelection As Visio.Selection | |
Set vsoSelection = ActiveWindow.Selection | |
Dim strPattern As String: strPattern = "\.\d+" | |
Dim strReplace As String: strReplace = "" | |
Dim selectName As String | |
Dim ShapeName As String | |
' Dim regEx As New RegExp | |
Set objRegExp_1 = CreateObject("vbscript.regexp") | |
With objRegExp_1 | |
.Global = True | |
.Multiline = True | |
.IgnoreCase = False | |
.Pattern = strPattern | |
End With | |
' Debug.Print vsoSelection.Item(1).NameU | |
selectName = vsoSelection.Item(1).NameU | |
If objRegExp_1.Test(selectName) Then | |
selectName = objRegExp_1.Replace(selectName, strReplace) | |
Debug.Print selectName | |
End If | |
For Each shp In Visio.ActivePage.Shapes | |
ShapeName = shp.NameU | |
If objRegExp_1.Test(ShapeName) Then | |
ShapeName = objRegExp_1.Replace(ShapeName, strReplace) | |
End If | |
If StrComp(ShapeName, selectName) = 0 Then | |
ActiveWindow.Select shp, visSubSelect | |
End If | |
Next shp | |
End Sub |
이제 Editor 를 닫고 다시 Visio 로 와서~ 매크로 메뉴를 눌러서 매크로 실행 창을 띄우고~ 아래와 같이 위에서 저장한 FindShapes() 함수를 실행 합니다.
그럼 아래 그림과 같이 같은 스타일의 타원들이 다 선택되는 것을 확인 할 수 있습니다.
직사각형 하나를 선택하고 위와 같이 FindShapes() 함수를 실행하면 아래 그림과 같이 직사각형들이 다 선택되는 것을 확인 할 수 있습니다.
위 방법은 VBA 를 사용한 방법인데 워드 등과는 다르게 Normal.dotm 등과 같은 설정파일에 저장은 안되더군요. 한번 저장해 놓고 영구적으로 사용하는 방법은 아직 찾지 못했습니다.
혹시 VISIO 에서 영구적으로 VBA 코드를 저장하고 사용할 수 있는 방법을 알고 계신 분은 좀 알려 주세요~
'컴퓨터일반' 카테고리의 다른 글
Windows 에서 ruby 설치하기 (0) | 2016.02.17 |
---|---|
윈도우 예약 작업 설정하기 schtasks (0) | 2015.10.31 |
윈도우 특수 문자 쉽게 넣기 charmap.exe (0) | 2015.10.19 |
Windows 7 연결 프로그램 등록 안될 때 해결 방법 (8) | 2015.10.17 |
삼성 SSD A/S 방법 (1) | 2015.05.31 |
Windows shutdown 을 사용하여 컴퓨터 예약 종료하기 (2) | 2015.05.26 |
Cygwin 에서 notepad++ 실행 (0) | 2015.05.06 |
Eclipse plugin Bracketeer (0) | 2015.05.02 |
댓글