ハムログ入力は、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 件のコメント:
コメントを投稿