1

ユーザー アカウントの作成を支援するために、VBA を使用して Excel ワークブックを作成しました。8 文字のパスワードを生成し、パスワードを音声で表示します。

すべてが正常に機能しています。コードを改善したいだけです。

コードのこの部分は、パスワードの英字を取り出し、NATO の音声に相当するものを吐き出します。半分のコード量で大文字と小文字に対応できるはずですが、方法がわかりません。

Public Function Wordify(char As String)
 Wordify = Switch(char = "A", "ALFA", char = "B", "BRAVO", char = "C", "CHARLIE", char = "D", "DELTA", char = "E", "ECHO", char = "F", "FOXTROT", _
  char = "G", "GOLF", char = "H", "HOTEL", char = "I", "INDIA", char = "J", "JULIETT", char = "K", "KILO", char = "L", "LIMA", char = "M", "MIKE", _
  char = "N", "NOVEMBER", char = "O", "OSCAR", char = "P", "PAPA", char = "Q", "QUEBEC", char = "R", "ROMEO", char = "S", "SIERRA", char = "T", "TANGO", _
  char = "U", "UNIFORM", char = "V", "VICTOR", char = "W", "WHISKEY", char = "X", "XRAY", char = "Y", "YANKEE", char = "Z", "ZULU", _
  char = "a", "alfa", char = "b", "bravo", char = "c", "charlie", char = "d", "delta", char = "e", "echo", char = "f", "foxtrot", _
  char = "g", "golf", char = "h", "hotel", char = "i", "india", char = "j", "juliett", char = "k", "kilo", char = "l", "lima", char = "m", "mike", _
  char = "n", "november", char = "o", "oscar", char = "p", "papa", char = "q", "quebec", char = "r", "romeo", char = "s", "sierra", char = "t", "tango", _
  char = "u", "uniform", char = "v", "victor", char = "w", "whiskey", char = "x", "xray", char = "y", "yankee", char = "z", "zulu")
End Function
4

2 に答える 2

4

Ian のコードをさらに単純化します。


Public Function Wordify(char As String) As String
  On Error Resume Next  
  Wordify = Split("alpha,bravo,charlie,delta,echo,foxtrot,golf,hotel,india,juliett,kilo,lima,mike,november,oscar,papa,quebec,romeo,sierra,tango,uniform,victor,whiskey,xray,yankee,zulu", ",")(Asc(LCase(char)) - 97)
End Function

PS。また、「アルファ」を NATO の音声アルファベットで使用されるスペルに置き換えました。"アルファ"。

于 2013-07-28T07:39:03.817 に答える