Excel VBA로 네트워크 장비 구성을 간소화합니다.
6578 단어 ExcelVBA
하고 싶은 것
라우터의 서브 인터페이스를 100개 만들고 싶은 등, 네트워크 기기 등의 config 작성에 있어서 반복이 필요한 작업을 자동으로 실시하는 ExcelVBA 매크로를 만들어 보았다.
기능
· 서브 인터페이스 등의 반복 config를 작성 가능.
・서브 인터페이스의 번호나 VLANID는 인터페이스의 숫자를 인크리먼트 가능
・증가하는 값의 초기치는 config행마다 바꾸는 것도 가능(서브 인터페이스가 1~로 VLANID가 1001~등.)
・speed 설정이나 no shutdown등의 공통 config에 대해서는 그대로 카피한다.
시트 구성
시트는 파라미터 등을 넣는 파라미터 시트와 생성되는 config를 토출하는 출력 시트의 2 시트를 작성했다.
B행에 반복하고 싶은 config를 써, 증분하고 싶은 부분을 $로 치환한다. 증분할 값의 초기값을 C행에 기입한다.
E3 셀에 어떤 루프를 할 것인가를 기입한다.
매크로
짧고 심플하게를 모토에 가라고 써 보았다.
좀 더 청소하고 싶다.
Sub configcreate()
Dim LOOPNUM As Integer
Dim CMDLINE As String
Dim INITVALUE As String
Dim NUMLINE As Integer
Dim OUTPUTCELL As Integer
Worksheets("出力シート").Columns("A:A").EntireRow.Clear '出力シートのA行をクリア
LASTROW = Worksheets("パラメータ").Cells(Rows.Count, 2).End(xlUp).Row
NUMLINE = LASTROW - 2
LOOPNUM = Worksheets("パラメータ").Cells(3, 5)
'NUMLINE = Worksheets("パラメータ").Cells(6, 5) '行数を手打ちする場合はここで指定していた。現在は自動取得
OUTPUTCELL = 1 '出力1行目の行番号
For i = 1 To LOOPNUM 'ループ回数のfor
For j = 1 To NUMLINE '行数のfor
CMDLINE = Worksheets("パラメータ").Cells(2 + j, 2).Value
If InStr(CMDLINE, "$") > 0 Then
INITVALUE = Worksheets("パラメータ").Cells(2 + j, 3).Value
If i >= 2 Then
k = i - 1
INITVALUE = INITVALUE + k
Else
End If
CMDLINE = Replace(CMDLINE, "$", INITVALUE)
Else
End If
Worksheets("出力シート").Cells(OUTPUTCELL, 1).Value = CMDLINE
OUTPUTCELL = OUTPUTCELL + 1
Next
Next
End Sub
매크로 실행 결과
상기 시트 구성의 화상의 파라미터로 돌려 보았다.
예상대로 결과가 나오고, 수작업으로 몇 시간이 걸리는 작업이 1초 정도로 되어 버렸다.
미래의 도전
반복뿐만 아니라 config 전반을 자동 생성하는 매크로를 만들고 싶다.
Reference
이 문제에 관하여(Excel VBA로 네트워크 장비 구성을 간소화합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/cardarno/items/4c1e9c2ada85131da71d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Sub configcreate()
Dim LOOPNUM As Integer
Dim CMDLINE As String
Dim INITVALUE As String
Dim NUMLINE As Integer
Dim OUTPUTCELL As Integer
Worksheets("出力シート").Columns("A:A").EntireRow.Clear '出力シートのA行をクリア
LASTROW = Worksheets("パラメータ").Cells(Rows.Count, 2).End(xlUp).Row
NUMLINE = LASTROW - 2
LOOPNUM = Worksheets("パラメータ").Cells(3, 5)
'NUMLINE = Worksheets("パラメータ").Cells(6, 5) '行数を手打ちする場合はここで指定していた。現在は自動取得
OUTPUTCELL = 1 '出力1行目の行番号
For i = 1 To LOOPNUM 'ループ回数のfor
For j = 1 To NUMLINE '行数のfor
CMDLINE = Worksheets("パラメータ").Cells(2 + j, 2).Value
If InStr(CMDLINE, "$") > 0 Then
INITVALUE = Worksheets("パラメータ").Cells(2 + j, 3).Value
If i >= 2 Then
k = i - 1
INITVALUE = INITVALUE + k
Else
End If
CMDLINE = Replace(CMDLINE, "$", INITVALUE)
Else
End If
Worksheets("出力シート").Cells(OUTPUTCELL, 1).Value = CMDLINE
OUTPUTCELL = OUTPUTCELL + 1
Next
Next
End Sub
Reference
이 문제에 관하여(Excel VBA로 네트워크 장비 구성을 간소화합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/cardarno/items/4c1e9c2ada85131da71d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)