![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Excel2000で住所録を作成(打ち込み)します。「A1」に漢字名前をローマ字入力で作成し「B1」にアルファベット(ローマ字打ちそのまま)のよみがなを出したいのです。
カタカナまではPHONETIC関数で出来たのですがローマ字が出来ません。過去ログでは nishi6さんが http://www.okweb.ne.jp/kotaeru.php3?q=118541で回答されていたのですが、「標準モジュールに貼り付ける」の意味がわかりません。セルに貼り付ける?マクロを使う?どなたか補足または新たに教えていただけませんか?
No.2ベストアンサー
- 回答日時:
『コンパイルエラー:SubまたはFanctionが定義されていません。
』のエラーが出るのは、コードが正確に貼り付けられていないからだと思われます。すべて消去し、下記をもう一度貼り付けてみてください。特に、2つ目の『Public Function KomojiOkikae』をよく確認してください。
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
No.1
- 回答日時:
懐かしいコードを見ました。
標準モジュールへの貼り付け方は、ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入します。出てきたコードウインドウに下記マクロをコピーして貼り付けます。
No.118541の
ここから
↓
Public Const Roma_Boin = "AIUEO"
Public Const Kata_S1 = "AアイウエオKカキクケコSサシスセソTタチツテトNナニヌネノ"
:
:
:
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
↑
ここまで
この回答への補足
ありがとうございます。ご本人なんですね!
早速貼り付けました。そして=changeKatakana2Romaji(A1)を「B1」セルにいれたら「コンパイルエラー:SubまたはFanctionが定義されていません。のダイヤログボックスが出ました。もう少し教えていただけませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) Excelであいうえおがおえういあになる 5 2022/07/19 03:33
- Visual Basic(VBA) VBAでPowerPointからExcelにレイアウト通りに出力する 4 2023/07/05 12:22
- Excel(エクセル) Excel関数について質問です。 シート1に入力シートがあります。 =A1 =B1などで離れた数字な 5 2022/12/18 13:42
- マウス・キーボード パソコンでのミスタイプ~こうなってしまうとイラっとしませんか?→pasokonndenomisuta 2 2023/08/03 08:41
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Chrome(クローム) googleアカウントのアイコンをローマ字または漢字で表示させたい 2 2023/05/06 22:25
- その他(Microsoft Office) 英数字のみ全角から半角に変換 4 2023/07/28 14:48
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
ふりがなをアルファベット化する関数ってありますか?
PowerPoint(パワーポイント)
-
かなで書かれた文字をアルファベットに変換できませんか?
Excel(エクセル)
-
カタカナをローマジに変換する。
Visual Basic(VBA)
-
-
4
Excelで五十音順に並べ替えたい
Excel(エクセル)
-
5
VBAでカタカナ→ローマ字の変換を標準モジュールでどのように貼り付けしたらいいか教えてください
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA セルの名前があるか...
-
ドリブン??
-
IF文に時間(何時から何時ま...
-
【C#/Java?】try-catchでcatch...
-
Word VBA。各マクロの間に待ち...
-
private subモジュールを他のモ...
-
どう増強すべきか
-
vbaのエラー対応(実行時エラー...
-
RaiseEventのメリット
-
VBAで組み合わせソフトを作ろう...
-
¥マークを含むパスの処理につ...
-
マクロで、次のコードへ行く前...
-
VBA フォルダ内の全てブックの...
-
ドイツ語和訳(工業用)について
-
エクセル画面のちらつきなくす...
-
Excelプロセスが消えない
-
シグナル 6(SIGABRT)とは?
-
VB6にてネットワーク上にある共...
-
VB6のロストフォーカス時の処理...
-
特定のファイルを他のプロセス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
特定の名前のオートシェイプの...
-
vbaのエラー対応(実行時エラー...
-
iPhoneのニューラルエンジンっ...
-
マクロで、次のコードへ行く前...
-
ExcelのVBAで、選択したファイ...
-
どうやってもFor文を抜けてしま...
-
Excel VBA セルの名前があるか...
-
Functionで戻り値を複数返す方法
-
特定のファイルを他のプロセス...
-
シグナル 6(SIGABRT)とは?
-
【VBA】エラー処理で別プロシー...
-
エクセル VBAで複数セル選択時...
-
どう増強すべきか
-
Word VBA。各マクロの間に待ち...
-
シェルスクリプトでファイル内...
-
VBA 複数の行を高速で削除する...
-
【Vb.net】プリンタジョブの取得
おすすめ情報