Excelにバーコード入力したくなって、perlでプログラム書いちゃった
Excelにバーコード入力をする場合、1つ読んだら下に移動(Enter入力)か右に移動(Tab入力)しか出来なさそうです。
社員番号と注文番号を交互に読んで、
社員番号 注文番号
1111 1
2222 2
こんな風にしたいのですが。で、考えました。
バーコード 社員番号 注文番号
1111 =A2 =A3
1 =A4 =A5
2222
2
A列に社員番号と注文番号を交互に読んでいき、参照させれば良いのでは。
参照して、下のようになる。
バーコード 社員番号 注文番号
1111 1111 1
1 2222 2
2222
2
予想通りになりました。しかし、規則性があるのでExcelのオートフィル機能でB列はA2、A4、A6・・・とやってくれるかと思ったら、出来ませんでした。
手打ちで書くとなると、果てしなくめんどくさい。社員200人くらいまで大丈夫な物を作るとなると400セルも打つことに。
んー、プログラムでCSVファイル書き出せばいいんじゃない?と思い、perlで書いてみました。
ソース
my $count;
$count = 1;
while ($count < 400){
print ",=\$A\$$count,";
$count ++;
print "=\$A\$$count\n";
$count ++;
}
解説
my $count;
$count = 1;
while ($count < 400){ iが400になるまで繰り返す
print ",=\$A\$$count,"; 初回で,=$A$1を書く。A列を空白にするため、先頭に,がある。
$count ++;
print "=\$A\$$count\n"; 初回で,=$A$2と改行コードを書く。
$count ++;
}
実行してCSVファイルにリダイレクトしてファイル出力する。
出来たCSVファイルの中身。
,=$A$1,=$A$2
,=$A$3,=$A$4
・・・・・
,=$A$399,=$A$400
このCSVを元に、VLOOKUPとCOUNTIFを使って集計し、当日分の注文書を作成、マクロで値貼り付けをして月間注文を集計するシートも作りました。長くなるのでExcelの内容は割愛。気が向いたら後日書きます。