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 전반을 자동 생성하는 매크로를 만들고 싶다.

좋은 웹페이지 즐겨찾기