シートの上すべてですか。
ひらがな、漢字には半角がありません。フリガナを使いました。
値が入っているセルが対象です。関数等が入っているセルは対象外です。
フリガナの入っていない漢字(他からコピペした等)は漢字のままです。
Option Explicit
'
Sub Macro1()
Dim Cell As Range
Dim OutData As String
Dim Start As Integer
Dim Char As String
'
For Each Cell In Cells.SpecialCells(xlCellTypeConstants)
OutData = ""
'
For Start = 1 To Len(Cell.Phonetic.Text)
Char = Mid(Cell.Phonetic.Text, Start, 1)
'
If Char < "A" Then
Char = StrConv(Char, vbNarrow)
End If
OutData = OutData & Char
Next Start
Cell = OutData
Next Cell
End Sub
#2です。
私がやってみたのは
A1:A7セルに
東京都
アオキ
’123
くろだ
123
ABC
ああ
を手入力し、
Sub test01()
For i = 1 To 7
'x = StrConv(Range("A1"), 8)
'x = StrConv(Range("A4"), 8)
x = StrConv(Cells(i, "A"), 8)
MsgBox x
Next i
End Sub
を実行すると、
全角カタカナ、全角数字、全角英字の例では半角の文字になる(で表示される)が、漢字などは、元のままで、半角化しない。もともと存在しないのだから。それを言いたかっただけです。
質問の通りは、出来ないことの関連を述べただけで、「やれる」ーー>そして、その答えでは
全くない.もう、こんな話は打ち切りにしたい。
>ひらがな、漢字
には、半角文字(突き詰めて言えば、文字コード)は、(現在、存在するどんな文字コード体系でも)作られてないはず。
そんなレベルで、マクロを言うのは、早すぎると思う。
ーー
見た目は何も不便はないのだろうが、その先に何かしたいことがあるのでは?
それを直截的に表現して質問したら、なーんだ、それか、となりそうな気もする。
ーー
http://officetanaka.net/excel/vba/function/strconv.htm
などを見れば、VBAで使う文字種の変換の、関数があるが、こんな知識で役立つかな?
「vbNarrow 8」でやってみたら 。
Sub test01()
x = StrConv(Range("A1"), 8)
MsgBox x
End Sub
A1セルに全角漢字入れて、実行すると、そのまま、が返ってきた。
質問者
補足
Run-time error 5:
Invalid procedure call or argument
とエラーになります
デバックを押すと
x = StrConv(Range("A1"), 8)の部分にカラーが付いています
補足
Run-time error 5: Invalid procedure call or argument とエラーになります デバックを押すと x = StrConv(Range("A1"), 8)の部分にカラーが付いています