初めて仕事で書いたマクロ(失敗談)
「仕事で初めてマクロを書いたときのことを覚えていますか?」
というご質問をいただいた。そこで、一番古い記憶を辿ってみた。
「初めて」か否かは、定かでない。ただ、一番古い記憶がこちらだと思う。
数値を小数点第三位に四捨五入して、テキストファイルに書き出す。
工作機械で加工プログラムを作成するとき、プログラムをテキストファイルに書きNC(数値制御装置)に取り込む場合がある。
この時(15年以上前)の或る事案では、加工時の刃物の軌跡が何某かの数式で定まっており、Excelで座標を計算していた。そして担当者から、書き出した連続するXY座標を、小数点第四位以下は邪魔なので切って貰えないかと頼まれた。
そこでマクロに挑戦したのが、一番古い記憶だと思う。
このような数値があるとする。
これを、例えばこのように書き出してみる。
Sub Test() Dim TextFile As String TextFile = "C:\Temp\TextFile.txt" Open TextFile For Output As #1 Dim i As Long For i = 1 To 3 Print #1, Cells(i, 1) Next Close #1 End Sub
結果、このようなテキストファイルが作成される。
そこで単純に、書式を下三桁にして書き出してみた。
だが、結果は同じだった。見た目を変えても中身は変わっていないため、当たり前と言えば当たり前のこと。しかし当時は知識も乏しく(無いに等しく)、ここ以上先に進めなかった。
これをもし今やるとしたら、どうだろう。こんな感じかな。
Sub Test() Dim TextFile As String TextFile = "C:\Temp\TextFile.txt" Open TextFile For Output As #1 Dim i As Long For i = 1 To 3 Print #1, WorksheetFunction.Round(Cells(i, 1), 3) Next Close #1 End Sub
書き出すとき、単純に四捨五入しただけ。こんなにも単純なことが、当時の私にはできなかった。15年前に戻って、自分に教えてあげたい(その他、あんなことや、こんなことも教えておきたい)。しかし、今となっては叶わないこと。
という訳で、↓セピア色っぽくしてみました。
参考まで。