1.PDF出力ツール
どの会社にもあると思うが、弊社では鉄道技術の知識向上のための通信研修が用意されている。
この講座、1回千円の社員負担+受験申込が必要で会社が本気で社員を教育しようという熱意が感じられない。社員教育はコストじゃ無いんだよ!投資なんだよ!
そして、申込みをした志の高い社員にログインIDとパスワード(平文)を配布する業務が存在する
そもそも、webベースの教材を用意しておきながら、教材と月に一度提出する課題を紙で配布するのはなぜなのか。そして、バックオフィス作業を残すのはなぜなのか。もんもん。
それを担当していた後輩に相談されて作った10分ツールです。
困っている事は
「受験者のログインIDとパスワードが一覧で送られてきているので、一行だけ抜き出して当該社員だけに通知したい」
と言うことだった。
解決策の案を1分で提示した。
①一覧表になっている一行を抜き出してpdfに出力する
②メールでそのpdfを個人に送る
そのための
「一覧表から一行だけ抜き出し、PDFに変換するツール」
を作ることにした。
Module1 1
Sub print_pdf()
n Sheets(1).Cells(1, 1).Value2
Worksheets(2).Range("B1:H1").Value - Worksheets(1).Range("B1:H1").Value
For i 1 To n
Worksheets(2).Range("B2:H2").Value
Worksheets(1).Range("B" & i+ 1 &":H" &i
pdfname = Sheets(2) .Cells(2, 6) .Value2 & "-"A Sheets(2),Cells(2, 7).Value2
1).Value
Sheets(2).ExportAsFixedFormat Type:=xITypePDF,_
Filename: pdfname
Next i
End Sub
これで、完成。
所要時間はテストなど含めて10分ぐらいでしょうか。
ちょうどVBAでファイル入出力操作を行う別のツールを、作っていたので割とサクっと作れました。
2.ファイル名の取得
とある先輩からの相談。
「直下にあるファイル名を拾いたいのだけれどめんどい。」
「そういうのはパソコン得意ですから」とマクロを組む。
昔、直下のファイル名を拾ってくるコードを書いたのでそれを流用
Subファイル名習得()
'このエクセルと同じフォルダにある.xlsxで終わるファイルをbufに格納
buf Dir(ThisWorkbook.Path && ".pdf")
'直下のフォルダに収納されているファイル名をシートに書き出す
Do While buf <> ""
cnt = cnt + 1
Sheets(1).Cells(cnt + 6, 2) buf
buf= Dir() '中身が省略されている。
前回呼んだ中身を実行
Loop
End Sub
昔作ったのはエクセルのファイル名を拾っていたが、今回はpdfとのことでそこだけ修正。
コピペして拡張子変更して動作確認して終了(3分)
よくみたら、コメント欄の修正が出来ていない(笑)
こんな感じでコツコツと担当者の困りごとを助ける人になっています。
コメント