[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『全角英数を半角に』(4649)
カナ、ひらがなはそのままで全角英数を半角に変換したい
< 使用 Excel:Microsoft365、使用 OS:Windows10 >
(830) 2024/10/29(火) 12:18:19
(通りすがり) 2024/10/29(火) 12:50:15
こんな回答もらえるんで
Excelのマクロを使って全角英数字を半角に変換することができます。このマクロは、カナやひらがなには影響を与えずに、全角英数字だけを半角に変換します。
Excelを開いて、Alt + F11キーを押してVBAエディタを開く
挿入 > モジュールをクリックして、新しいモジュールを追加する
以下のコードをコピーして、モジュールに貼り付ける
Function ConvertToHalfWidth(str As String) As String Dim i As Integer Dim c As String Dim halfWidthStr As String halfWidthStr = ""
For i = 1 To Len(str) c = Mid(str, i, 1) Select Case AscW(c) Case 65281 To 65374 ' 全角英数字の範囲 halfWidthStr = halfWidthStr & ChrW(AscW(c) - 65248) Case Else halfWidthStr = halfWidthStr & c End Select Next i
ConvertToHalfWidth = halfWidthStr End Function
Sub ConvertRangeToHalfWidth() Dim cell As Range For Each cell In Selection If Not IsEmpty(cell.Value) Then cell.Value = ConvertToHalfWidth(cell.Value) End If Next cell End Sub VBAエディタを閉じて、Excelに戻る
変換したい範囲を選択して、Alt + F8キーを押して「ConvertRangeToHalfWidth」というマクロを実行する
これで、選択した範囲内の全角英数字が半角に変換されます。
(こぱいろっと) 2024/10/29(火) 13:08:36
Functionをもう少し「謎の呪文」っぽくアレンジして遊んでみる ^^;
Function To_HalfWidth(StrUTF As String) As String If Len(StrUTF) = 0 Then Exit Function Dim b() As Byte, i As Long b = StrUTF For i = 0 To UBound(b) Step 2 If b(i + 1) = &HFF& And b(i) >= &H1& And b(i) <= &H5E& Then b(i) = b(i) + &H20& b(i + 1) = 0 End If Next To_HalfWidth = b End Function
ちなみにAscWの戻り値はInteger型なので Function AscW(String As String) As Integer
はたして、ConvertToHalfWidthはホントにちゃんと動くのか疑問な気もする。
(白茶) 2024/10/29(火) 14:02:17
記載してもらったのは動きませんでしたが、aiで処理出来ました。
ありがとうございました。
(4649) 2024/10/29(火) 14:24:59
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.