エクセルで、半角カタカナの住所録を全てローマ字に変換したいと思います。
かなり大量に量があるので、一度に簡単に便利に出来たらよいと思い、こちらでも
似たケースを検索したところ、下記のユーザー定義登録が出てきました。
Public Const Roma_Boin = "AIUEO"
Public Const Kata_S1 = "AアイウエオKカキクケコSサシスセソTタチツテトNナニヌネノ"
Public Const Kata_S2 = "HハヒフヘホMマミムメモYヤイユエヨRラリルレロWワイウエヲ"
Public Const Kata_S3 = "GガギグゲゴZザジズゼゾDダヂヅデドBバビブベボPパピプペポ"
Public Function changeKatakana2Romaji(srcMoji As String)
Dim kataMoji As String 'カタカナ文字
Dim RomaMoji As String 'ローマ字
Dim L As Long '文字カウンタ
Dim elm As String '1文字
Dim Pot As Integer '変換テーブルでの位置
Dim wkBoin, wkSiin As String '母音と子音
Dim chgTBL As String '変換テーブル
chgTBL = Kata_S1 & Kata_S2 & Kata_S3
kataMoji = StrConv(srcMoji, vbKatakana + vbWide) '全角カタカナにして『゛゜』を処理
Application.Volatile
For L = 1 To Len(kataMoji) 'カタカナ全角文字の母音と子音を作る
elm = Mid(kataMoji, L, 1): Pot = InStr(chgTBL, elm)
If 0 < Pot And Pot <= 6 Then
wkBoin = Mid(Roma_Boin, Pot - 1, 1): wkSiin = "": elm = wkBoin & wkSiin
ElseIf Pot > 6 Then
wkBoin = Mid(chgTBL, Int((Pot - 1) / 6) * 6 + 1, 1)
wkSiin = Mid(Roma_Boin, (Pot - 1) Mod 6, 1): elm = wkBoin & wkSiin
Else
If elm = "ン" Then elm = "N" '『ン』は特別処理
End If
RomaMoji = RomaMoji & elm
Next
RomaMoji = KomojiOkikae(RomaMoji, "ャ", "YA") '小文字『ャ』の処理
RomaMoji = KomojiOkikae(RomaMoji, "ュ", "YU") '小文字『ュ』の処理
RomaMoji = KomojiOkikae(RomaMoji, "ョ", "YO") '小文字『ョ』の処理
For L = 2 To Len(RomaMoji) '小文字『ッ』の処理
If Mid(RomaMoji, L - 1, 1) = "ッ" Then
Mid(RomaMoji, L - 1, 1) = Mid(RomaMoji, L, 1)
End If
Next
changeKatakana2Romaji = StrConv(RomaMoji, vbNarrow)
End Function
'カタカナ小文字の処理(ャュョ)
Public Function KomojiOkikae(Moji As String, komoji As String, Okikae As String)
Dim kPot As Integer
If InStr(Moji, komoji) > 0 Then
Mid(Moji, InStr(Moji, komoji) - 1, 2) = Okikae
End If
KomojiOkikae = Moji
End Function
ですが、どうしてもうまく実行されません。「プロシージャの外では無効です」という
メッセージが出ました。他の方法でも、構いません。
当方、VBA初心者でして、お手数ですが、「ツールバー→マクロ」というレベルから、
教えていただけると助かります。
どうぞ宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カタカナを小文字から大文字に...
-
エクセルで、半角カタカナの住...
-
ピボットテーブルでワイルドカード
-
【ATOK15】F8キーで半角カタカ...
-
ハイパーリンクの中の半角カタ...
-
半角英数字を大文字に変換する...
-
ローマ字打ちからひらがな打ち...
-
select case 大文字小文字を...
-
日本語入力On/Offを音などで知...
-
タイピング。「!」はどの指で...
-
「トゥ」をローマ字で打ちたい...
-
ブルースクリーンが出てくる原...
-
小さい「ウ」ってキーボードで...
-
「”」と対になる「チョンチョン...
-
ローマ字入力のキーボードで最...
-
どうでもいいような質問ですい...
-
キーボードがCtrlキーが押され...
-
=を縦にした キーボードの入力...
-
プラス(足す)キーはどうやっ...
-
X₁=3、X₂=4 の 小さい数字の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カタカナを小文字から大文字に...
-
ハイパーリンクの中の半角カタ...
-
半角カタカナがVBAだと全角...
-
ァ→ア (アクセス)
-
文字を打つときに文字に下線が...
-
日本語入力On/Offを音などで知...
-
select case 大文字小文字を...
-
半角英数字を大文字に変換する...
-
[半角/全角 漢字]キーを押さず...
-
エクセルでひらがな全角~カナ...
-
ローマ字打ちからひらがな打ち...
-
パソコン入力時に、ローマ字固...
-
EXCEL 「ASC」関数 ...
-
ピボットテーブルでワイルドカード
-
ATOKの入力がおかしくなること...
-
\(^o^)/ パソコンのプロが使...
-
PCオフィス2010の漢字変換について
-
ATOKの変換がおかしくなった時...
-
全角ローマ字打ちでのタイピン...
-
hp windows 10 英語から日本語...
おすすめ情報