|
VBA初心者です。
■下ような英文と!の羅列したテキストのデータがあります。
interface FastEthernet0/1
shutdown
!
hostname ABC
!
vlan internal allocation policy ascending
vlan access-log ratelimit 2000
!
vlan 220-221,306
vlan 2105-2107,3100-3103
!
snmp-server
!
▼したいこと
(1)フォルダ内のファイル(拡張子は.log)を開く
※エクセルで開くか、そのまま.logファイルとして開く
※ファイルは数百個あります。
(2)一行目から順に読んで行き、「vlan 数字」という行をみつけたら数字だけを取り出して新しいブックに記入。
ただし、「-」は数字の連番を表しており、間に入る数の分だけ空白セルを入れたい
例:220-221なら220,221(空白セル無し)
3100-3103なら3100, , ,3103(空白セル2つ)
※できれば3101,3102など間の数字を自動入力したい(出来なければ後から手入力します)連番数はファイルによって異なります。
※区切り文字でセルを分ける、横一列を縦一列に入れ替える作業はマクロの記録で出来ました。
※!や他の英文は読み飛ばします
(3)「hostname ABC」の"ABC"部分だけ取得し、C列を参照して、C列の行数分B列に入力
(4)現在のINPUTファイルを閉じて、次のファイルを開く。以下(1)〜(4)の作業を繰り返し、フォルダ内全てのファイルを処理します。
※すべてのファイルで異なるのは「hostname 」後のABC部分(本来は10文字前後)と、「vlan 」あとの始まる数字(1〜9のどれか)、数字の数です。
OUTPUTブックは同じブックで、最終的に下記のような形で表を作りたいのですが、コードを教えていただけないでしょうか。
A B C D
1 ホスト名 vlan ID
2 ABC 220
3 ABC 221
4 ABC 306
5 ABC 2105
6 ABC 2106
7 ABC 2107
8 ABC 3100
9 ABC 3101
10 ABC 3102
11 ABC 3103
12 DEF 101
13 DEF 206
14 GHI 1100
15 GHI 1101
16 GHI 1102
お分かりになる方がいらっしゃいましたら、お願いいたします。
|
|