あなたの正確な問題を理解しているかどうかはわかりませんが、これは列 A のすべての値を取得し、列 B の通貨の値に基づいて列 C の通貨としてフォーマットします。
Sub Macro1()
Dim cl As Range
For Each cl In Intersect(ActiveSheet.Range("A:A"), ActiveSheet.UsedRange)
cl.Offset(0, 2).Value = cl.Value
Select Case cl.Offset(0, 1).Value
Case "USD"
cl.Offset(0, 2).NumberFormat = "$#,##0.00"
Case "EUR"
cl.Offset(0, 2).NumberFormat = "[$€-2] #,##0.00"
Case "GBP"
cl.Offset(0, 2).NumberFormat = "[$£-809]#,##0.00"
Case "CHF"
cl.Offset(0, 2).NumberFormat = "[$CHF] #,##0.00"
End Select
Next cl
End Sub
通貨の種類を変更する場合は、セルを正しい通貨に設定するマクロを記録し、必要に応じてその数値形式をコピーして貼り付けます。