IC-R6のCSVをIC-R30フォーマットにコンバートするマクロ。Mac版エクセル対応

エクセル Excel

Mac版エクセルで動作する IC-R6 → IC-R30のコンバートマクロ

Win10では、バッチリ動くんだけど macOSだと…、やっぱ動かねー!

macOS版のエクセル2016だと、Applicationオブジェクトなどの記述が動かなくてWin10でサックサクのマクロもエラーでまくりで役に立たない。

そこで、貼り付けたIC-R6形式のCSVをIC-R30のフォーマットに変換するだけのmacOSエディションをつくったぞ。macOSユーザは試してみて。
保存ができない体験版でもOK。(Mac版エクセル2016 体験版で動作確認)

コンバートマクロの使い方

①新規ブックに下記マクロを追加
②CSVは読み込んでカンマ区切り
③マクロ(R6→R30_macOS用)を実行

追加された*****(IC-R30)シートにIC-R30形式で出力されます。
出力されたテキストを丸っとコピーしてテキストファイルに貼りつけて拡張子をCSVにして保存。
あとは IC-R30 でCSVファイルをインポートする。

②のときにグループ名を日本語にしてもいいかも。エラー処理はいれてないから動かなかったらすまん。

 

コンバート・マクロ(Mac版エクセル動作確認済み)

Sub R6toR30_macOS()

Dim NowSheet As Worksheet
Set NowSheet = ActiveSheet
CSV名 = NowSheet.Name

On Error GoTo あ

If ActiveSheet.Name Like "*(IC-R30)*" Then
MsgBox _
"シート名に IC-R30 が含まれています。" & Chr(13) & _
"IC-R6のCSVか確認してください。" & Chr(13) & _
"" _
, vbExclamation + vbOKOnly, "【CNV-R30】"
End
End If

名確認 = ActiveSheet.Index + 1

If Worksheets(名確認).Name = CSV名 & "(IC-R30)" Then

GO = MsgBox( _
"すでに IC-R30 の変換CSVがあります。" & Chr(13) & _
"上書きしますか? " & Chr(13) & Chr(13) & _
"" _
, vbInformation + vbOKCancel, "【CNV-R30】")

If GO = vbOK Then
Worksheets(CSV名 & "(IC-R30)").Cells.Clear
GoTo い

ElseIf GO = vbCancel Then
End

End If

Else

あ:
Worksheets.Add after:=Worksheets(CSV名)
ActiveSheet.Name = CSV名 & "(IC-R30)"

い:
Worksheets(CSV名 & "(IC-R30)").Cells(1, 1) = "Group No"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 2) = "Group Name"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 3) = "CH No"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 4) = "Name"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 5) = "Frequency"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 6) = "Dup"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 7) = "Offset"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 8) = "TS"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 9) = "Mode"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 10) = "RF Gain"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 11) = "SKIP"

 

Worksheets(CSV名 & "(IC-R30)").Cells(1, 12) = "TONE"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 13) = "TSQL Frequency"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 14) = "DTCS Code"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 15) = "DTCS Polarity"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 16) = "Canceller"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 17) = "Canceller Frequency"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 18) = "VSC"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 19) = "DV SQL"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 20) = "DV CSQL Code"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 21) = "P25 SQL"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 22) = "P25 NAC"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 23) = "dPMR SQL"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 24) = "dPMR Common ID"

 

Worksheets(CSV名 & "(IC-R30)").Cells(1, 25) = "dPMR CC"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 26) = "dPMR Scrambler"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 27) = "dPMR Scrambler Key"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 28) = "NXDN SQL"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 29) = "NXDN RAN"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 30) = "NXDN Encryption"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 31) = "NXDN Encryption Key"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 32) = "DCR SQL"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 33) = "DCR UC"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 34) = "DCR Encryption"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 35) = "DCR Encryption Key"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 36) = "Position"

 

Worksheets(CSV名 & "(IC-R30)").Cells(1, 37) = "Latitude"
Worksheets(CSV名 & "(IC-R30)").Cells(1, 38) = "Longitude"

NowSheet.Activate

End If

Dim 縦, 縦回, ICR30 As Long

ICR6 = ActiveSheet.Name
ICR30 = ActiveSheet.Index + 1

縦回 = 101

For 縦 = 2 To 縦回

'Worksheets(ICR30).Cells(縦, 1) = Worksheets(ICR6).Cells(縦, 1)'■ Group No
'Worksheets(ICR30).Cells(縦, 2) = Worksheets(ICR6).Cells(縦, 1)'■ Group Name

 

Worksheets(ICR30).Cells(縦, 3) = Worksheets(ICR6).Cells(縦, 1) '■ CH No
Worksheets(ICR30).Cells(縦, 4) = Worksheets(ICR6).Cells(縦, 9) '■ Name
Worksheets(ICR30).Cells(縦, 5) = Worksheets(ICR6).Cells(縦, 2) '■ Frequency
Worksheets(ICR30).Cells(縦, 6) = Worksheets(ICR6).Cells(縦, 3) '■ Dup
Worksheets(ICR30).Cells(縦, 7) = Worksheets(ICR6).Cells(縦, 4) '■ Offset
Worksheets(ICR30).Cells(縦, 8) = Worksheets(ICR6).Cells(縦, 5) '■ TS
Worksheets(ICR30).Cells(縦, 9) = Worksheets(ICR6).Cells(縦, 6) '■ Mode
If Worksheets(ICR6).Cells(縦, 9) <> "" Then
Worksheets(ICR30).Cells(縦, 10) = "RFG MAX" '■ RF Gain
End If
Worksheets(ICR30).Cells(縦, 11) = Worksheets(ICR6).Cells(縦, 10) '■ SKIP
Worksheets(ICR30).Cells(縦, 12) = Worksheets(ICR6).Cells(縦, 11) '■ TONE
Worksheets(ICR30).Cells(縦, 13) = Worksheets(ICR6).Cells(縦, 12) '■ TSQL Frequency
Worksheets(ICR30).Cells(縦, 14) = Worksheets(ICR6).Cells(縦, 13) '■ DTCS Code
Worksheets(ICR30).Cells(縦, 15) = Worksheets(ICR6).Cells(縦, 14) '■ DTCS Polarity
Worksheets(ICR30).Cells(縦, 16) = Worksheets(ICR6).Cells(縦, 15) '■ Canceller
Worksheets(ICR30).Cells(縦, 17) = Worksheets(ICR6).Cells(縦, 16) '■ Canceller Frequency
Worksheets(ICR30).Cells(縦, 18) = Worksheets(ICR6).Cells(縦, 17) '■ VSC
'■ DV SQL
'■ DV CSQL Code
'■ P25 SQL
'■ P25 NAC
'■ dPMR SQL
'■ dPMR Common ID
'■ dPMR CC
'■ dPMR Scrambler
'■ dPMR Scrambler Key
'■ NXDN SQL
'■ NXDN RAN
'■ NXDN Encryption
'■ NXDN Encryption Key
'■ DCR SQL
'■ DCR UC
'■ DCR Encryption
'■ DCR Encryption Key
'■ Position
'■ Latitude
'■ Longitude

Next

Worksheets(ICR30).Select
Set ws = Worksheets(ICR30)

縦回 = Cells(Rows.Count, 3).End(xlUp).Row

For 縦 = 1 To 縦回

For 横 = 1 To 38

ws.Cells(縦, 1) = ws.Cells(縦, 1) & "," & ws.Cells(縦, 横 + 1)
ws.Cells(縦, 横 + 1) = ""

Next
Next

End Sub

ご連絡

アマゾンのアフィリエイトリンクでお買い求めになられた方へ
エクセルやIC-R30などをお買い求めていただくとアフェリエイト報酬があります。
お礼としてブログ記事のマクロ(動作環境:Excel2016)をご所望の方にはお送りしますので購入日をでご連絡ください。@eos40is

エクセル 2019(最新 永続版)オンライン版 Win10/Mac対応
マイクロソフト

MacとWinで両方使える2ライセンス。
WinのファイルをMacのエクセルでも使えてとても便利。
マクロも動いてとても快適!

アイコム 広帯域ハンディレシーバー IC-R30
アイコム(ICOM)

待望のデジタル・アナログレシーバー。
爆速スキャンと2波同時受信・同時録音が便利すぎる。エアバンドで大活躍
聞き取れなかった航空無線も聞き直せるのがめっちゃ便利!
航空無線の上達にも👍