[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートをADIF形式で保存できない』(Kan)
以前の ver.では、シートをテキストタブ区切り形式で、ファイル名
を "xxxx.ADI"として、ADIFとして保存できましたが、現 ver.では、
" はファイル名として不可とのエラーメッセージが出て、保存でき
ません。どうすればよいのでしょうか。ご教示よろしくお願いします。
< 使用 Excel:Excel2016、使用 OS:Windows7 >
(γ) 2016/07/17(日) 21:54
今回、" " マークが使えないことが問題です。
初心者のため、よく分かりませんが、やりたいことは
Excelのシートを ADIFファイルに変換することです。
(Kan) 2016/07/17(日) 22:44
以下にはマクロがどうこうという記事あり。
http://www5a.biglobe.ne.jp/~tyutoro/dxcc-b.html
ともかく、少しご自分で調べてみてはいかがか?
[Excel でサポートしているファイル形式]
https://support.office.com/ja-jp/article/Excel-%E3%81%A7%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%BD%A2%E5%BC%8F-a28ae1d3-6d19-4180-9209-5a950d51b719
のなかにあります?
(γ) 2016/07/17(日) 23:06
◯ ADIF形式というはアマチュア無線で使う更新記録のデータ交換用のファイル形式です。
◯ [Kan]さんが、ADIF形式と呼んでいるのに、保存ファイル名が .ADI なのは少し気になります。
◯ ADIファイルというのは、システムのイメージ・バックアップに使う形式です。
◯ 最も近いと思われるのは DIF形式です、これはエクセルで標準サポートしています。
どこかに、何か、思い違いがあるのではないかと思います。
(kazu) 2016/07/18(月) 18:32
.ADI or .ADIF ファイルでアップロードするソフトウェアを使います。
どうやら解決したようで、Excelで、DIF形式で保存し、all filesを指定して
アップロードできたようです。
PCを更新したため、前の Excel ver.が不明ですが、確かに "xxxx.adi" で保存できて
いましたので、新しい ver.で " "をファイル名にできなくなった所で止まっていました。
お騒がせしました。上記のアップロードソフトウェアを提供している米国アマチュア
無線連盟 ARRLにも本件につき、確認してみます。
(Kan) 2016/07/19(火) 00:34
質問者さんへ。
解決したようで何よりです。
質問は ADIFファイルに変換するというものだったのですが、
なぜいつのまに「DIFファイルで保存する」という話になっているのですか?
何の挨拶もなしに、まるで最初からそういう質問だったような話になるのは変じゃないの?
説明がまったくなかったアップロードソフトのなかで、
ADIFへの変換がなされているということですか?
それともADIFに殆ど近いかたちのデータがExcelにあったということ?
きちんと説明してくれないとねえ。
(γ) 2016/07/19(火) 21:35
最初に説明すべきでしたが、アマチュア無線の交信記録(通称ログ)を
作成するロギングソフトウェアは存在し、保存したデータを
ADIF(Amateur Data Interchange Format) に変換する事は可能です。
それならば、そのようなロギングソフトを使えとなりますが、データ
の編集など制約が有るため、当方では Excelを使っています。
従来(ver不明)のExcelでは、データの1行ずつを下記の形式に変換した
シートを作成し、そのシートを「テキストタブ区切り形式」で、ファイル名
"ZZZZ.ADI"として保存することにより、ADIファイルを作成していました。
<call:4>XXXX<qso_date:8:d>20000205<time_on:4>0606<band:3>15M<mode:2>CW<rst_rcvd:3>599<rst_sent:3>599<operator:6>YYYYYY<eor>
従い、Excel以外のソフトウェアは使用していません。
今回、.dif で保存したファイルの拡張子を .adi 変える事はできましたが、
従来は上記のデータのみが変換されたのに対し、データ1行ずつの上に何かコメントが
ついており、うまくデータをアップロードできないアプリケーションが有り、
課題が残っています。
ADIFという特殊なファイル形式のため、素人でもあり苦労しています。
参考になる情報が有りましたら、何でも結構ですので、よろしくお願いします。
(Kan) 2016/07/20(水) 14:58
A B C D E F G H 1 call qso_date time_on band mode rst_recvd rst_sent operator 2 XXXX 20000205 0606 15M CW 599 599 YYYYYY
これならば、例えば以下のようにマクロで直接ファイル出力してしまえば良いかと思います。
Sub test() Dim F1 As Integer Dim i As Long Dim j As Long Dim jMax As Long Dim cw As String Dim cFile As String Dim cDim() As String
cFile = ActiveWorkbook.Path & "\xxxx_" & Format(Now, "YYYYMMDD") & ".ADI"
jMax = Cells(1, Columns.Count).End(xlToLeft).Column ReDim cDim(jMax - 1) For i = 1 To jMax cDim(i - 1) = Cells(1, i).Text Next i
F1 = FreeFile Open cFile For Output As #F1 For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row For j = 1 To jMax cw = Cells(i, j).Text If 0 < InStr(Cells(1, j).Text, "date") Then Print #F1, "<" & cDim(j - 1) & ":" & Len(cw) & ":d>" & cw; Else Print #F1, "<" & cDim(j - 1) & ":" & Len(cw) & ">" & cw; End If Next j Print #F1, "<eor>" Next i Close #F1 End Sub (???) 2016/07/20(水) 15:59
打ち間違いであれば、"date" の有無でIf文を使っている箇所が、1行になります。
(???) 2016/07/20(水) 16:19
マクロは使ったことないですが、VBA/VBEの使い方を調べて
試してみます。
:d は確かに打ち間違いで不要と見られ、これのせいで問題
有った可能性も有ります。ご指摘ありがとうございました。
(Kan) 2016/07/20(水) 16:39
ところで、
>シートを dif 形式で保存後
と言う表現の意味は、
「ファイルの種類」で DIF(.dif) を選択したのではなく、
「ファイルの種類」はあくまで、テキスト(タブ区切り)
を選択しているんでしょう?
もし、DIF(.dif) を選択したのであれば、
コントロールのための文字列が追加されるので、
求めるADIFにはなりえません。
「ファイルの種類」はあくまで、テキスト(タブ区切り)
としているのであれば、作成されるファイルは通常のテキストファイルですから、
どんなファイル名、拡張子にも変更可能なはずです。
つまり、xxx.adiなどに変更できるはずです。
ですから、
(γ) 2016/07/17(日) 21:54 の
>いったん別の拡張子(例 txt)でテキストタブ形式で保存して、
>そのあとで拡張子を変更すればよいのでは?
は問題がないはずで、
>この方法も試しましたが、ファイル形式は
>テキストのままで、ADIF形式にはなりません
という発言が理解できません。
ADIF形式だって所詮はテキストのはずですし、
シート上にあるADIFフォーマットの文字列を書き出しているなら、
「それがADIF形式になりません」とは、
何に基づいた判断だったのでしょうか?
更に言えば、
もともと、ファイル名にダブルクオーテーションを入れるという意図がわかりません。
そういうことが求められているのですか?
ひょっとして、フォルダオプションで、
「登録されている拡張子は表示しない」にチェックが入っている関係でしょうか?
ダブルクオーテーションつきのファイル名にした理由もコメント頂くと、
すっきりしますね。
なお、
><qso_date:8:d> って、打ち間違いだったりしませんかね?(:d は要らないような?)
というご指摘がありましたが、
ADIF Specification によると、
dは Dateを示す Data Type Indicatorというものらしく、
あっても問題はないようですね。
なお、シート上で
<call:4>XXXX<qso_date:8:d>20000205<time_on:4>0606<band:3>15M<mode:2>CW<rst_rcvd:3>599<rst_sent:3>599<operator:6>YYYYYY<eor>
というデータを&を使った式で作成しているとしたら、
(???)さんのマクロはその部分の省力化になりますから、福音となるはずですね。
長文失礼。
(γ) 2016/07/21(木) 06:08
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.