プロが教える店舗&オフィスのセキュリティ対策術

教えてください。
例えば、
コジマビルA202→コジマビルA202のように
英数字のみを半角にしたいのですがASC関数を使うとカナのコジマビルまで半角になってしまいます。。。どうぞ宜しくお願いします。
ソフトはエクセル2000でOSはXPです。

A 回答 (3件)

文字入力を固定するには、エクセル2000ではなく、FEPの設定で可能です。



例えばATOK14では、プロパティの入力・変換の設定項目の中で半角全角
変換の設定で設定一覧で文字の種類を選択して設定できます。

IME2000では、プロパティの[オートコレクト]で設定できます。
[文字種によって、全角/半角どちらに変換するかを指定します。] の一覧から指定する文字種や記号をクリックします。[常に半角に変換]をクリックします。

その他のFEPでも同じように設定できると思います。
    • good
    • 0
この回答へのお礼

お礼が大変遅くなりました。早速のご回答ありがとう
ございました。

お礼日時:2002/10/01 01:41

関数=LOWER(A1)、=ASC(B1)などもダメでした。

関数では
出来ないでしょう。
VBAで関数を作成してみました。ご参考に。
A3に=henkan(a1),
A4に=henkan(a2)をいれると下記3,4行になります。
(A1)コジマビルA202
(A2)小島アンドビルPASA12202
(A3)コジマビルa202
(A4)小島アンドビルpasa12202
下記をVBEの画面でModuleを挿入し、下記Funktion以下を貼りつけ
れば私製関数=henkan()が使えます。
----
Sub test01()
Dim a As String
a = Worksheets("sheet1").Cells(2, 1)
MsgBox henkan(a)
End Sub
--------
Function henkan(a As String)
s = "0123456789"
ss = "0123456789"
' a = Worksheets("sheet1").Cells(2, 1)
' MsgBox a
b = StrConv(a, vbLowerCase)
For i = 1 To Len(b)
c = Mid(b, i, 1)
For j = 1 To 10
If c = Mid(s, j, 1) Then
d = Mid(ss, j, 1)
x = x & d
GoTo p01
End If
Next j
x = x & c
p01:
Next i
' MsgBox x
henkan = x
End Function
    • good
    • 0
この回答へのお礼

お礼のご返事が大変遅くなり申し訳ありませんでした。。。大変参考になりました。誠にありがとうございました。

お礼日時:2002/10/01 02:05

ワークシート関数では無理でしょう。



で、マクロなんですが、#2の方のマクロですと、アルファベットが小文字に、数字だけが半角になっちゃうのでだめですよね?

ということで作ってみました。

下のマクロをそのまま貼り付けてください。

コジマビルA202
が、A1に入っていたら、変換結果を表示させたいセルに
=NarrowChange(A1)

と入力してください。


'---------ここから----------
Function NarrowChange(ByVal strString As String) As String

Dim intLength As Integer
Dim strCut As String

intLength = Len(strString)

Do While strString <> ""
strCut = Left(strString, 1)
If (strCut >= "0" And strCut <= "9") _
Or (strCut >= "A" And strCut <= "Z") _
Or (strCut >= "a" And strCut <= "z") Then
NarrowChange = NarrowChange & StrConv(strCut, vbNarrow)
Else
NarrowChange = NarrowChange & strCut
End If
strString = Mid(strString, 2)
Loop
End Function
    • good
    • 0
この回答へのお礼

お礼が大変遅くなりました、すみません。。。
taka_tetsuさんのおかげで出来ました。ご親切にありがとうございました。またなにかありましたら宜しくお願いいたします。

お礼日時:2002/10/01 02:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!