![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
エクセル2000を使っています。
会社で住所録作成を引き継ぎましたが、
一つのセルにひらがな、漢字、カタカナ、英数字
が半角・全角ごちゃ混ぜで入っているので
管理がしづらくて困っています。
例えば、
あいうアジアNET株式会社
株式会社ABC123
などなど・・・・
ひらがな・漢字はそのままで、
カタカナを全角、英数字を半角にする方法は
ありませんか?
最初にASC関数を使ってみたらカタカナも半角になり、
Phonetic関数を使うと、
カタカナだけ全角になりましたが、
ひらがなまでカタカナになり・・・
JIS関数も試しましたが今度は英数字まで全角になり、
どうしたものかと困っております。
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
No.2です。
遅くなりました。修正コード、、というより別物ですがアップします。実は、以前に類似した質問に回答したことがあります。(参考URL)
今回はBLUEPIXYのコードも参考にさせてもらい、その時のコードに手を加えました。
関数myStrFmtはワークシートでも使えますし、他のプロシージャーでも使えます。
どうでしょうか?
========== 次行からコード ==================================
'***************************************************************
' カタカナは全角化、英数字および記号を半角化するユーザー定義関数
' 引数:文字列 変換対象となる文字列を指定します
' 引数:数字 数字半角化オプション(省略可) 規定値:True
' 引数:記号 記号半角化オプション(省略可) 規定値:False
'***************************************************************
Function myStrFmt(文字列 As String, Optional 数字 As Boolean = True, Optional 記号 As Boolean = False)
Dim ReplaceList As String
Dim TargetStr As String
Dim MAK As String, NUM As String, ALB As String
Dim i As Long
'半角化の対象とする文字を全角で定義
MAK = "!#$%&'()*+-./:;<=>?@[¥]^_{|}。、,,"
NUM = "01234567890"
ALB = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
'置換リスト作成
ReplaceList = NUM & ALB & StrConv(ALB, vbLowerCase)
If 数字 Then ReplaceList = ReplaceList & NUM
If 記号 Then ReplaceList = ReplaceList & MAK
'全角化
文字列 = StrConv(文字列, vbWide)
'置換
For i = 1 To Len(ReplaceList)
TargetStr = Mid(ReplaceList, i, 1)
文字列 = Replace(文字列, TargetStr, StrConv(TargetStr, vbNarrow))
Next i
myStrFmt = 文字列
End Function
'マクロで関数を使用するサンプル(セルを選択した状態で実行)
Sub サンプル()
On Error Resume Next
Dim rngCell As Range
Application.ScreenUpdating = False
For Each rngCell In Selection
If rngCell.Value <> "" Then
rngCell.Value = myStrFmt(rngCell.Value, True, False)
End If
Next rngCell
Application.ScreenUpdating = True
End Sub
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=1100627
ありがとうございました!
今度は問題なく全て変換されました。
過去にお答えになったという質問も
読ませていただきました。
過去の質問も一応は
チェックしましたが、完全に見落としておりまして、
恥ずかしい限りです。
問題もおかげで解決し、
本当にありがとうございました。
No.3
- 回答日時:
No.2です。
>なぜかportという単語が ppsu になったり、
申し訳ないです。関数で変換部分がマズかったです。私が関数のコードを作成したPCではOKだったのですが、ほかのPCでは、誤置換されてしまいました。
修正コードをアップしますので、少々お待ちいただけたら幸いです。
No.2
- 回答日時:
こんにちは。
一般操作による方法が思い付きません。ユーザー定義関数にしてみました。したがって、ワークシートで使用することも、マクロで使用することも可能です。
1. ワークシートで使用する場合
A1セル:変換対象となるデータ B1セル:=myStrFmt(A1)
ASC関数などと同じように使用します。
2. マクロで使用する場合
サンプルマクロを示します。セルを範囲選択し、実行すると漢字・ひらがな・カタカナは全角、英数字は半角に統一します。
ただし、あまり効率的なやり方では無いような気がしてます。置換をゴリゴリやっているだけですから。でも、以下の環境で10,000件のテストデータ変換に1分程度ですから、実用には耐えるのではないでしょうか?
CPU:C400 Memory:256M Win98SE Excel2000
========== 次行からコード ==================================
'ユーザー定義関数(ワークシートで使えます)
'文字列中のひらがな・カタカナを全角、英数字を半角にします。
Function myStrFmt(Target As String) As String
Target = StrConv(Target, vbWide)
'全角アルファベット置換
For i = -32160 To -32135
Target = Replace(Target, Chr(i), Chr(i + 32225))
Target = Replace(Target, Chr(i + 32), Chr(i + 32 + 32225))
Next i
'全角数字置換
For i = -32177 To -32168
Target = Replace(Target, Chr(i), Chr(i + 32225))
Next i
myStrFmt = Target
End Function
'マクロで関数を使用するサンプル(セルを選択した状態で実行)
Sub サンプル()
On Error Resume Next
Dim rngCell As Range
Application.ScreenUpdating = False
For Each rngCell In Selection
If rngCell.Value <> "" Then
rngCell.Value = myStrFmt(rngCell.Value)
End If
Next rngCell
Application.ScreenUpdating = True
End Sub
この回答への補足
丁寧に教えていただき、ありがとうございました。
教えていただいたとおりにやったつもりなのですが、
なぜかportという単語が ppsu になったり、
e が f になってしまいました。
全てのportが ppsuに、eがfになるわけではないので、
もともとのデータの入力時になにか問題があったのかしら? と思います。
また、最初に触れませんでしたが、「・」も
リスト中にあり、それは全て「a」に変換されました。
頂いた関数を見ればなにかわかるかな・・・
と思いましたが、なにぶん、マクロ・関数は(も)
初心者でよくわかりませんでした・・・。
何か思いつくことがございましたら、
今一度ご教授いただけますでしょうか。
よろしくお願いいたします。
No.1
- 回答日時:
拙作のユーザー定義関数で指定した文字を置き換えることができます。
変換が必要なセルをA1だとして
いったん全角に変換してから英数字を半角に置き換えるという方針で
=tr(JIS(A1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ@+-.0123456789","ABCDEFGHIJKLMNOPQRSTUVWXYZ@+-.0123456789")
みたいな、感じで置き換えたい文字の種類を書きます。お好みで英記号を追加して下さい。
ALT+F11でVBEにて標準モジュールで以下を貼り付けて使用して下さい。
Public Function tr(str As String, replaceList As String, convertList) As String
Dim i, c
For i = 1 To Len(replaceList)
str = Replace(str, Mid(replaceList, i, 1), Mid(convertList, i, 1))
Next
tr = str
End Function
ご教授ありがとうございました。
コピペでやってみたら解決しました!
ユーザー定義関数などは
利用したことがなかったので、
これから教えていただいた関数の中身を
理解したいと思います!
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Excel(エクセル) EXCELでの文字・数字入力の基本について教えてください。 2 2023/05/29 23:17
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- その他(Microsoft Office) 英数字のみ全角から半角に変換 4 2023/07/28 14:48
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Excel(エクセル) exel 漢字・英数字混在セルの入力規則 5 2022/04/03 11:08
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- マウス・キーボード macからリモートデスクトップでwindowsに接続した際のキーボード配列 3 2023/07/10 08:40
- デスクトップパソコン 40年間の悩み キーボードにおいて初期値として漢字ローマ字変換に設定する方法 8 2023/05/08 14:50
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
いちばん失敗した人決定戦
あなたの「告白」での大失敗を教えてください。
-
あなたの「プチ贅沢」はなんですか?
お仕事や勉強などを頑張った自分へのご褒美としてやっている「プチ贅沢」があったら教えてください。
-
人生でいちばんスベッた瞬間
誰しも、笑いをとろうとして失敗した経験があると思います。
-
【お題】斜め上を行くスキー場にありがちなこと
運営も客も一流を通り越して斜め上を行くスキー場にありがちなことを教えて下さい。
-
「Ms-Excel」の関数「UボードのUのみを半角にしたい」についての質問
Excel(エクセル)
-
英数字のみ全角から半角に変換
その他(Microsoft Office)
-
特定の列の値を、ひらがな・漢字はそのままで、 カタカナを全角、英数字を半角に変換する
Excel(エクセル)
-
-
4
Excelの中に全角ひらがな、漢字、半角英数が混在しいる場合一括で変換するのではなく、半角英数字が混
Excel(エクセル)
-
5
エクセル ひらがなの文字を抽出
Excel(エクセル)
-
6
WordやExcelで英数字のみ半角または全角にしたい
その他(Microsoft Office)
-
7
Excel。英数字カタカナ混ぜこぜのセルで、カタカナのみ全角にする方法は?
Windows 95・98
-
8
カタカナのみを半角から全角に変換したいのですが
Excel(エクセル)
-
9
ExcelでASCを使って全角を半角にするとカタカナも半角になってしまいます。
Excel(エクセル)
-
10
エクセル2016でfilter関数がないので、、抜き出す関数をおしえてください。
Excel(エクセル)
-
11
エクセルデーターから必要な項目を抜き出す方法を教えてください
Excel(エクセル)
-
12
Excelで重複データの件数ではなく、何番目かを求める方法
Excel(エクセル)
-
13
Excel PHONETIC関数で振り仮名でなく、漢字がそのままでてくる
Excel(エクセル)
-
14
複数の文字列のいずれかが含まれていたらTRUEを返す関数について
Excel(エクセル)
-
15
Excelでカタカナ・ひらがな・英数字の抽出
その他(Microsoft Office)
-
16
文字列から英数字のみを抽出する関数
Excel(エクセル)
-
17
エクセルを使用して、円周率を表示させる方法
Excel(エクセル)
-
18
エクセルで入力すると隣のセルに別のセルの文字が反映されるようにしたい
Excel(エクセル)
-
19
【Excel】 1つのセルの日にちを4分割にしたい
Excel(エクセル)
-
20
Excelについて教えてください 横向きの表を並び替えたいのですが上手く行きません。 例えば 1 5
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
契約書や 公文書・私文書などに...
-
半角の×(かける)は?
-
お名前(姓)」には「カタカナ(...
-
半角の『°(単位の度)』
-
℃の半角表示
-
半角スペース
-
半角英数で♭の入力
-
ビジネスの文書における、数字...
-
2ちゃんねるでアンカーのつけ方
-
エクセルで、JIS関数、ASC関数...
-
エクセルVBAでMsgboxの表示をそ...
-
問2 次の文中の空欄にあてはま...
-
隅付き括弧に半角はありますか...
-
EXCELで、セル内の半角カ...
-
テプラは半角数字が使えますか?
-
wordで小数をきちんと入力する。
-
amazonでのクレジットカード入...
-
【VBA】ファイルパスに半角スペ...
-
EXCELの文字列操作で文字数不足...
-
文章を縦書きにしたとき、数字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
℃の半角表示
-
契約書や 公文書・私文書などに...
-
半角の『°(単位の度)』
-
半角の×(かける)は?
-
EXCELの文字列操作で文字数不足...
-
Excel 文字列の中から数字だけ...
-
EXCELで、セル内の半角カ...
-
半角スペース
-
エクセル関数で文字列の中のス...
-
EXCEL95 VLOOKUP関数で半角と全角
-
テプラは半角数字が使えますか?
-
お名前(姓)」には「カタカナ(...
-
メールアドレスの上ハイフン入...
-
【VBA】ファイルパスに半角スペ...
-
Excel2016 検索の窓を常時表示...
-
エクセルでひらがな・漢字はそ...
-
ヘッダー(フッター)の全角・...
-
エクセルで、JIS関数、ASC関数...
-
隅付き括弧に半角はありますか...
-
エクセルで 全角の空白を含む...
おすすめ情報