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
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)