• 締切済み

ExcelVBA 全角と半角文字

恐れ入ります。 ExcelVBAの質問ですが、 ********************************************************** Function AscEx2(strOrg As String) As String Dim strRet As String Dim intLoop As Integer Dim strChar As String strRet = "" For intLoop = 1 To Len(strOrg) strChar = Mid(strOrg, intLoop, 1) If (strChar >= "A" And strChar <= "Z") _ Or (strChar >= "a" And strChar <= "z") Then strRet = strRet & StrConv(strChar, vbNarrow) Else strRet = strRet & strChar End If Next intLoop AscEx2 = strRet End Function ********************************************************** 上記のコードで、カタカナを全角、アルファベットを半角にできたのですが、 下記のこの部分の意味がいまひとつ理解できません。 「strRet = "" strRet = strRet & StrConv(strChar, vbNarrow)」 どういった解釈になるのか、お分かりになられる方は、 ご教示を宜しくお願い致します。

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

提示されたコードではアルファベットを半角に変更するだけですね。 strRet = "" では、strRet に "" (空白)を代入して初期化しています。 ただ、直ぐ上の Dim strRet As String で変数を宣言した後なので なくても構いません。 strRet = strRet & StrConv(strChar, vbNarrow) では strRet に既存のstrRetの値とStrConv(strChar, vbNarrow)の値を代入しています。 算数の=(イコール)は左辺と右辺で等しいという意味ですが、 VBAでは値の代入でもあります。 こちらを読んでもらえれば理解が深まるかと思います。 http://pc.nikkeibp.co.jp/pc21/special/2007_gosa/eg2.shtml または初心者向けの本を読んでみてください。

関連するQ&A