こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

どういった解釈になるのか、お分かりになられる方は、
ご教示を宜しくお願い致します。

投稿日時 - 2012-08-22 19:36:33

QNo.7657747

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.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
または初心者向けの本を読んでみてください。

投稿日時 - 2012-08-23 08:26:42

あなたにオススメの質問