ハムログ用 エクセルでコール.txtを一括作成する

アマチュア無線

お世話になっている「Turbo HAMLOG」にはいろんな機能がありますが、私が大変助かっているのは、「コール・テキスト」です。これは、コールサイン.txt (例えば JG6DMH.txt)というファイル名のテキストファイルがあれば、そのコールサインの局を入力した段階で即座にそのテキストファイルの中身が表示されるというものです。

例えば、29MHzFMハンドブックを執筆した方々のコールサイン名でファイルを作って、中に「29MHzFMハンドブック執筆者」おけば、その方のコールサインを入れた段階で、「あ!ハンドブックに書かれていましたね!」何ていうことができるわけです。これは物覚えの悪い私には大変便利なんです。

ところが、このファイルをひとつひとつ作るのが、とんでもなくめんどうです。何か良い方法は無いか・・・ ネット上にエクセルのマクロにいいのがありましたので、少し改良してみました。

A列にコールサイン、B列にテキストファイルの内容を入れる。コールサインは小文字でも大文字に変換してくれる。

このような表を作成し、下記のマクロを実行します。

Sub 行ごとにTXTファイル生成()

Dim LastRow As Long
Dim i As Long
Dim j As Long
Dim TargetName As String
Dim MyList() As Variant

    '最終行
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row

    'データを配列格納
    MyList = Range(Cells(1, 1), Cells(LastRow, 4))

    Application.ScreenUpdating = False

        '1行目から最終行までループ
        For i = 1 To LastRow

            '新規作成
            Workbooks.Add

            'ファイル名は複数セルを結合「コールサイン」
            TargetName = MyList(i, 1)

            '値書き込み
            For j = 2 To 2
                Cells(2, j) = MyList(i, j)
            Next j

             '名前をつけてTEXT保存
            Application.DisplayAlerts = False
                ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & UCase(TargetName), _
                 FileFormat:=xlCurrentPlatformText, Local:=True
                 ActiveWorkbook.Close True
            Application.DisplayAlerts = True

        Next i

    Application.ScreenUpdating = True

End Sub

そうすると下記のようにファイルが作成されます。

見本では4行でしたので、4つのファイルが作成されました。
テキストファイルの中身。B列で指定した文字が書かれています。

これをターボハムログで指定したフォルダーに置いておけばOKです。
私の場合、データはクラウドに置いていますので、これらもクラウドに置いています。自宅でも外出先でも同じデータでFBです。

DX1SAのメンバーリストを入れれば、これも面白いかな? なんて思っています。

コメント

タイトルとURLをコピーしました