patagonの日記: [コンピュータ]AWKでExcelのVBAマクロを作る
パターンマッチングの続き
AWKですまそうと思ったが、他人のことを考えると、目に見えるところは一般的な(?)方法にしておこうってことで、AWKでExcelのVBAマクロを作るというなんともアホなことをやる羽目に。出来たVBAマクロで数万行のレコードの文字列を置換。
1 sortR-uniq.batの実行
2 gawk.batの実行(これで数百行のレコードを食わせる)
3 出来たマクロ(test03.txt)をExcelに持っていき実行
sortR-uniq.batの中身
REM type と sort はMicrosoft標準のプログラム。
REM sort の/Rオプションは降順を意味する。
REM uniqは重複行を削除するプログラム。GNUのもので日本語パッチがあたっている。
type test01.txt | sort /R | uniq > test02.txt
gawk.batの中身
gawk -f sample.awk test02.txt > test03.txt
pause
sample.awkの中身
# ExcelのVBAマクロを作る
# 単に特定の文字列の後に「,」を入れるだけ
# Selection.Replace What:="検索する文字列", Replacement:="置換する文字列", LookAt:=xlPart, _
# SearchOrder:=xlByRows, MatchCase:=False
BEGIN {
print "Sub Macro03()"
print ""
print " Columns(\"D:D\").Select"
print ""
}
{
print " Selection.Replace What:=\"" $1 "\", Replacement:=\"" $1 ",\", LookAt:=xlPart, _"
print " SearchOrder:=xlByRows, MatchCase:=False"
}
END {
print ""
print "End Sub"
}
[コンピュータ]AWKでExcelのVBAマクロを作る More ログイン