ハムログ入力は、ADIFファイルをハムログCSVファイルに変換して、ハムログにインポートしている。
現在、QRZ.com, eQSL, LoTW に送信するADIFファイルは、ハムログの「複合検索と印刷」で、作成して送信し、QSLカードもハムログで印刷している。
CSV変換ソフトは探してみたけどなかったので、GAS script でマクロ自作。
EXCELがなくてもCHROMEブラウザがあれば、QSLデータの変換ができるので超便利。
【お約束】
このマクロを使用して、いかなる損害が出たとしても当局は
一切の責任を負いません。
※交信成立時にJTDXの交信データを転送する機能がハムログに追加されたので、解説したマクロは不要となりました。(21/05/02追加)
一切の責任を負いません。
※交信成立時にJTDXの交信データを転送する機能がハムログに追加されたので、解説したマクロは不要となりました。(21/05/02追加)
元データと変換データが合致してるか、必ず確認してください。
ハムログにデータをインポートするときは、必ずバックアップをとっておき、
失敗しても,リストアできるようにしておきましょう。
当局の使用環境は、PCのOS:Wondows10 Pro
Chrome バージョン: 68.0.3440.106(Official Build) (64 ビット)
ハムログにデータをインポートするときは、必ずバックアップをとっておき、
失敗しても,リストアできるようにしておきましょう。
当局の使用環境は、PCのOS:Wondows10 Pro
Chrome バージョン: 68.0.3440.106(Official Build) (64 ビット)
スプレッドシートを起動して、「ファイル」「インポート」「ファイルをインポート」で「アップロード」クリック。
wsjtx_log.adiから作成したテキストファイルをドラッグ&ドロップ。
(wsjtx_log.adi は C:\Users\ユーザー名\AppData\Local\JTDX にある。)
下の画面で「新しいシート挿入する」をチェック、「区切り文字」で「カスタム」をチェック、半角で ">" 不等号のより大きいを入力、「テキストを数値や日付にに変換」で「いいえ」をチェックして、「データをインポート」をクリック。
「ツール」「スクリプトエディタ」「コード.gs」に以下のスクリプトをコピペして実行。
function WsjtxADItoHamlogCSV(){ /* wsjtx_log.adiをハムログCSVデータに変換すscript。 wsjtx_log.adiの必要部分でtxtファイルを作成し、 このシートにアップロードして、実行。 ダウンロードして、ハムログにインポートする。 */ var sheet=SpreadsheetApp.getActiveSheet(); //変数sheetにアクティブシートを得る。 sheet.deleteColumns(1); sheet.deleteColumns(8,3); sheet.deleteColumns(9,2); //不要列削除 sheet.moveColumns(sheet.getRange('F:G'), 2); sheet.moveColumns(sheet.getRange('F:G'), 4); sheet.moveColumns(sheet.getRange('H:H'), 6); sheet.moveColumns(sheet.getRange('H:H'), 7); sheet.moveColumns(sheet.getRange('H:H'), 10); //ハムログのCSVデータ順に列入れ替え var lastRow=sheet.getLastRow(); //変数lastRowにデータの最終行を得る。 var cd=sheet.getRange(1,1,lastRow,14).getValues(); //配列変数cdに1行目1列から最終行14列までのデータ格納。 var ld=sheet.getRange(lastRow+1,1,lastRow,14).getValues(); //配列変数ldにcdと同数の空データ格納。 sheet.getRange(lastRow+1,3,lastRow,5).setNumberFormat('@'); //レポートdataが -00形式で表示されるように、書式なしテキストに var md; for (var i=0;i<cd.length;i++ ){ for (var j=0;j<14;j++ ){ cd[i][j] = cd[i][j].split('<', 1); // <の左側の文字列のみ得る ld[i][j] = cd[i][j].toString().replace(/(^\s+)|(\s+$)/g, ""); //文字列前後の空白文字削除 if(j==1){ md=cd[i][j].toString(); ld[i][j]=md.substr(2,2)+"/"+md.substr(4,2)+"/"+md.substr(6,2); //日付を yy/mm/dd に }else if(j==2){ md=cd[i][j].toString(); ld[i][j]=md.substr(0,2)+":"+md.substr(2,2)+"U"; //時刻を hh:mmU に }else if(j==9){ ld[i][j]="N"; //QSL欄の初期値 Jなど適当に変更 }else if(j==13){ ld[i][j]="$A=DP$ $P=10$ $R=FT991M$ $H=6$ %TNX QSO CUAGN!%" // Remarks2 に入力する文字列 適当に変更 } //if } //j } //i sheet.getRange(lastRow+1,1,lastRow,14).setValues(ld); //最終行の次の行に変換データ追加 }
初めてマクロを実行する場合、承認を求められる。
「続行」をクリックし、次の画面でアカウントを選択。 さらに次の画面左下の「詳細」をクリック。 |
左下「マクロ名(安全でないページ)に移動」をクリック 次の画面で「許可」をクリックでマクロが実行される。 |
元データが4行の例 |
実行すると、元データ最終行の次に変換データが追加される |
元データ行を行削除して、「ファイル」「形式を指定してダウンロード」「カンマ区切りの値」でダウンロード。
ハムログを起動して、「オプション」「データ保守」「データのインポート」「CSVファイルから」をチェックして、「開く」ボタンクリック。 DLしたCSVファイルを指定して「開く」をクリック。
一旦閉じるので,ハムログを再起動。 データが追加されている。
このあと、日付順にしたい場合は、「オプション」「データ保守」「日付時間順にソート」でソートしておく。
解説動画を作ったのでアップしときます。
0 件のコメント:
コメントを投稿