初めて仕事で書いたマクロ(失敗談)

「仕事で初めてマクロを書いたときのことを覚えていますか?」
というご質問をいただいた。そこで、一番古い記憶を辿ってみた。
f:id:Infoment:20200115214542p:plain
「初めて」か否かは、定かでない。ただ、一番古い記憶がこちらだと思う。

数値を小数点第三位に四捨五入して、テキストファイルに書き出す。

工作機械で加工プログラムを作成するとき、プログラムをテキストファイルに書きNC(数値制御装置)に取り込む場合がある。

この時(15年以上前)の或る事案では、加工時の刃物の軌跡が何某かの数式で定まっており、Excelで座標を計算していた。そして担当者から、書き出した連続するXY座標を、小数点第四位以下は邪魔なので切って貰えないかと頼まれた。

そこでマクロに挑戦したのが、一番古い記憶だと思う。

このような数値があるとする。
f:id:Infoment:20200115215442p:plain

これを、例えばこのように書き出してみる。

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

結果、このようなテキストファイルが作成される。
f:id:Infoment:20200115215630p:plain

そこで単純に、書式を下三桁にして書き出してみた。
f:id:Infoment:20200115215733p:plain

だが、結果は同じだった。見た目を変えても中身は変わっていないため、当たり前と言えば当たり前のこと。しかし当時は知識も乏しく(無いに等しく)、ここ以上先に進めなかった。

これをもし今やるとしたら、どうだろう。こんな感じかな。

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年前に戻って、自分に教えてあげたい(その他、あんなことや、こんなことも教えておきたい)。しかし、今となっては叶わないこと。

という訳で、↓セピア色っぽくしてみました。
f:id:Infoment:20200115220522p:plain

参考まで。