[[20160717212223]] 『シートをADIF形式で保存できない』(Kan) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シートをADIF形式で保存できない』(Kan)

以前の ver.では、シートをテキストタブ区切り形式で、ファイル名
を "xxxx.ADI"として、ADIFとして保存できましたが、現 ver.では、
" はファイル名として不可とのエラーメッセージが出て、保存でき
ません。どうすればよいのでしょうか。ご教示よろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows7 >


いったん別の拡張子(例 txt)でテキストタブ形式で保存して、
そのあとで拡張子を変更すればよいのでは?
あくまでテキストタブ形式という前提で回答しています。

(γ) 2016/07/17(日) 21:54


ご回答ありがとうございます。
この方法も試しましたが、ファイル形式は
テキストのままで、ADIF形式にはなりません
でした。
(Kan) 2016/07/17(日) 22:17

>以前の ver.では
何のverですか?
Excelには、標準でADIF形式(よく知らないが)に変換する機能は無いと思う。
特定のソフトを使っていなかったですか?
なにか勘違いされていないだろうか。(逆だったら失礼)
(γ) 2016/07/17(日) 22:24

ありがとうございます。2010だったと思います。
ファイル名を、"xxxx.ADI"として保存することにより、
そのシートを ADIFファイルに変換できていました。

今回、" " マークが使えないことが問題です。
初心者のため、よく分かりませんが、やりたいことは
Excelのシートを ADIFファイルに変換することです。
(Kan) 2016/07/17(日) 22:44


下記の記事をみても、Excelの標準機能で変換可能なんてことは書かれていない。
http://blogs.yahoo.co.jp/jk1oda/5129083.html
http://blogs.yahoo.co.jp/jh1lmd/31189910.html

以下にはマクロがどうこうという記事あり。
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


続報ですが、Excel 2016で一旦、シートを dif 形式で保存後、
拡張子を adi に変えることに成功し、問題無くアップロード
できました。
これで完全解決しました。ご協力ありがとうございました。
(Kan) 2016/07/19(火) 13:50

kazuさん、(他のスレッドとの関係で?絶妙のタイミングで、)
要領良い簡潔なコメントを頂き、恐縮です。(あちらの件、ご心配には及びません)

質問者さんへ。

解決したようで何よりです。

質問は 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


まず、シートはセルの書式を全て文字列にしておいた上で、以下のようにタイトル行を付ける事はOKでしょうか?

	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

<qso_date:8:d> って、打ち間違いだったりしませんかね?(:d は要らないような?)

打ち間違いであれば、"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.