【Excel】でデータを「ヘボン式」ローマ字変換し「値」を確定するExcelVBA

目次

「 ヘボン式ローマ字変換アドイン 」Excel拡張機能を使った関数

  • 漢字やカナは、ローマ字にするとパッと見わからない。
  • 更にローマ字をExcel機能の置換などを使えば、簡単にわけの分からないデータを大量作成できる

※Excelでルビの振り方を理解していない場合は、この記事を読み進めてもきっと理解出来ないので
先に下記の記事からExcelでのルビの振り方を習得してほしい。

かな表記、カナ表記にするならローマ字までやる方がよい

Excelで文字列をローマ字に変換する方法

目次から「ヘボン式ローマ字変換アドインの環境設定の仕方」をクリック
すれば、ご使用のExcelで[=hebon関数]が使えるようになるので、この機会に設定しておくとタマに役に立つ。

「Excelで文字列をローマ字に変換する方法」とググると「 ヘボン式ローマ字変換アドイン 」というExcel拡張機能を使った関数を使えることが分かる。

要領は 「PHONETIC 関数」 を使うときと同じで、一度ふりがな機能でルビを振っていないと使用できないもの!
と理解した方がよい。

Excelを開き「ホーム」タブから「亜」をクリックする

  • ふりがなの表示(S)
  • ふりがなの編集(E)
  • ふりがなの設定(T)

これである程度の使い方は理解できると思う。

=hebon(A1,2)でローマ字変換できたら次へ進むとよい。

サンプルデータで「 ヘボン式ローマ字変換」を実践

サンプルを[Excel]Sheet1に貼り付ける

ゴールドアリュール
トーセンラー
パイロ
トーセンブライト
キングカメハメハ
アイルハヴアナザー
エイシンフラッシュ
フェノーメノ
クロフネ
シニスターミニスター

A列に上記「父」の名称があるとして話を進めていく。

ここで先ほどの「亜」でうまく「ふりがな設定」ができているとB列に=hebon(a1,2)・・・と10行設定すると、下記の表のように変換されるはず。

CHICHI
ゴールドアリュールGORUDOARYURU
トーセンラーTOSENRA
パイロPAIRO
トーセンブライトTOSEMBURAITO
キングカメハメハKINGUKAMEHAMEHA
アイルハヴアナザーAIRUHABUANAZA
エイシンフラッシュEISHINFURASSHU
フェノーメノFUENOMENO
クロフネKUROFUNE
シニスターミニスターSHINISUTAMINISUTA

ここまでくれば「勘が良い」方なら、マクロ記録機能で処理できるはず!と思うでしょうが!その通りできるので、テストしてみるのがよろしいかと・・・

マクロ記録機能でカナ変換を記録する

「ひらがな設定」で記録

Sub SEThiragana()
'
' ひらがな設定
'
''    Range("A1:A1").Select
''    Range(Selection, Selection.End(xlDown)).Select
    Selection.SetPhonetic
    Selection.Phonetics.CharacterType = xlHiragana
    Selection.Phonetics.Alignment = xlPhoneticAlignLeft
    Selection.Phonetics.Visible = False
End Sub

「半角カナ設定」で記録

Sub SETkanahan()
'
' 半角カナ設定
'

''    Range("A1:A1").Select
''    Range(Selection, Selection.End(xlDown)).Select
    Selection.SetPhonetic
    Selection.Phonetics.CharacterType = xlKatakanaHalf
    Selection.Phonetics.Alignment = xlPhoneticAlignLeft
    Selection.Phonetics.Visible = False
End Sub

重要な文は「Selection.SetPhonetic」ではないか!?と推測できる

上記サンプルを使用して、下記のようなVBAを作成してみる

  • B列:ローマ字
  • C列:ひらがな
  • D列:半角カナ

完成させるサンプル表「 ヘボン式ローマ字変換」

chichiちちチチ
ゴールドアリュールgorudoaryuruごーるどありゅーるゴールドアリュール
トーセンラーtosenraとーせんらートーセンラー
パイロpairoぱいろパイロ
トーセンブライトtosemburaitoとーせんぶらいとトーセンブライト
キングカメハメハkingukamehamehaきんぐかめはめはキングカメハメハ
アイルハヴアナザーairuhabuanazaあいるはヴあなざーアイルハヴアナザー
エイシンフラッシュeishinfurasshuえいしんふらっしゅエイシンフラッシュ
フェノーメノfuenomenoふぇのーめのフェノーメノ
クロフネkurofuneくろふねクロフネ
シニスターミニスターshinisutaminisutaしにすたーみにすたーシニスターミニスター

【Excel】VBAマクロを使って表を一括変換し値を確定させるサンプル

変換後はセル値を一度変数に取り込んで値として確定させる

今回のようにExcel拡張機能のようなものを入れると、自分のメインパソコンでは表示するが違うパソコンだと表示しなくなるというのを回避するためにExcel関数の値を確定するやり方で、実務でのExcelコピペでも使用しているはずだ。(ctrl+cからのctrl+v)

Sub TEST_KANA()
''  A列のデータをB列:ローマ字 C列:ひらがな D列:半角カナ
''  テストモジュール

Dim i As Integer
Dim wk_nm1 As String
    Sheets("Sheet1").Select
    Columns("B:D").Select               'B,C,D列を削除
    Selection.Delete Shift:=xlToLeft
    
    Range("A1:A11").Select
    Call SETkanahan
    
    i = 0
    Do Until CHRCVT(Cells(i + 1, 1)) = ""
        i = i + 1
        'ローマ字変換
        Cells(i, 2) = "=Hebon(A" & i & ",2)"
        If Not IsError(Cells(i, 2)) Then
            wk_nm1 = Cells(i, 2)
            Cells(i, 2) = wk_nm1
        End If
        'カナ半角変換
        Cells(i, 4) = "=asc(phonetic(A" & i & "))"
        If Not IsError(Cells(i, 4)) Then
            wk_nm1 = Cells(i, 4)
            Cells(i, 4) = wk_nm1
        End If
    Loop
    
    Range("A1:A11").Select
    Call SEThiragana
    
    i = 0
    Do Until CHRCVT(Cells(i + 1, 1)) = ""
        i = i + 1
        'ひらがな変換
        Cells(i, 3) = "=phonetic(A" & i & ")"
        If Not IsError(Cells(i, 3)) Then
            wk_nm1 = Cells(i, 3)
            Cells(i, 3) = wk_nm1
        End If
    Loop

    Range("A1").Select
End Sub

Call SETkanahan,( SEThiragana)を使っている場所をよく見ておくこと。これをループ内に入れると恐ろしく時間がかかるモジュールになり実用的ではなくなる変換文字が少なかったら良いが100以上あると”お前はすでに死んでいる”状態になる!

【Excel】でサンプルデータをローマ字変換する方法

は以上。

ヘボン式ローマ字変換アドインの環境設定の仕方

STEP
ヘボン式ローマ字変換アドインのダウンロード
STEP
Hebon.zipを解凍する

以降は、展開したファイルのReadme.txtを引用すると下記の説明が見れるようになる。

■インストール・アンインストール方法(Windows版)

下記の要領でアドインを組み込む事により利用できます。

1.圧縮ファイル「Hebon.zip」の解凍後に作成された「Hebon.xla」を下記を参考に任意のフォルダ内へ配置して下さい。

・Windows7の場合 ➡ Win10,Win11でも同じ

「C:\Users(ユーザー)\ユーザー名\AppData\Roaming\Microsoft\AddIns」

※AppDataは隠しファイルなので、「表示」→「隠しファイル」と進めば表示される

アンインストールは上記1.で配置した「Hebon.xla」を削除すれば完了です。

2.次にExcelを起動後、下記を参考にアドインを組み込んで下さい。

・Excel2007/2010の場合 ➡ Win10,Win11では「開発」タブを表示させる

メニューの「ファイル」タブ~「オプション」を開く。

「Excelのオプション」ウィンドウ内の「アドイン」を選択。

下部に有る「管理(A):」で「Excelアドイン」を選択して「設定(G)」ボタンを押す。

表示された有効なアドインから「Hebon」にチェックを入れる。

3.開いているアドイン選択画面のOKボタンを押して閉じる。

ヘボン式ローマ字変換アドイン Ver1.03解凍後Readmeから抜粋
STEP
Excel起動後、アドイン組み込み

①Excelを起動後
②ウィンドウ上部の「クイックアクセスツールバー」の一番右の▼を押す
③その他コマンドを選択
④「Excelのオプション」ウィンドウが開く
⑤ウィンドウ左欄から「リボンのユーザ設定」を選択
⑥ウィンドウ右側から「メインタブ」を選択
⑦「開発」にチェック
⑧OKボタンを押す

STEP
アドインを有効にする

①「開発」タブを開き「Excelアドイン」アイコンをクリック
②「Hebon」にチェックをいれ、OKボタンを押す

STEP
これでExcelシートで「ヘボン式ローマ字変換アドイン」が使用できる

=hebon関数の指定方法もReadmeに記載されているので参考にすると良い!

=hebon関数の利用方法(Readmeより抜粋)

■利用方法

任意のセルで、「=Hebon(参照セル名)」という数式入力で利用します。

例)A1のセル値を変換したい場合、 =Hebon(A1) と入力します。

・オプションパラメータを付加することにより、キャピタライズや例外表記を出力できます

 パラメータは参照セル名の直後にカンマで区切った数値を引数として指定します。

【パラメータ値と機能】

指定方法: =Hebon(参照セル名, 第1パラメータ, 第2パラメータ)

第1パラメータ: 小文字変換、キャピタライズの指定(省略可)

 0=全て大文字(初期値)

 1=単語の先頭文字のみ大文字

 2=全て小文字

例)=Hebon(A1,1) -> Yamada Taro

  =Hebon(A1,2) -> yamada taro

第2パラメータ: 例外表記の指定(省略可)

 0=例外表記無し(初期値)

 1=OO、OU、UUを無変換  (おおの -> OONO、こうの -> KOUNO)

 2=OO、OUをOHへ変換   (おおの -> OHNO、えんどう -> ENDOH)

 4=UUを無変換      (まつうら -> MATSUURA)

※パラメータ値を加算することで例外表記を複合させる事ができます。

例)=Hebon(A1,,4) / まつうら とおる -> MATSUURA TORU

  =Hebon(A1,1,3) / まつうら とおる -> Matsuura Tohru

ヘボン式ローマ字変換アドイン Ver1.03解凍後Readmeから抜粋

Excelの「構成タブ」から翻訳ツールを起動し変換(翻訳)する方法

画像だけで特に説明はいらないと思うが、Excelの「構成」タブを押し翻訳ツールを使うと
「指定したセル範囲」を「指定した言語」で翻訳してくれる機能。

翻訳機能を使用すると、翻訳できないものはローマ字変換してくれるのでテストデータ作成には役に立つが
全てローマ字変換という機能はない

下記のGoogleスプレッドシートを使って翻訳する方法と合わせて利用する価値はありそうだ。

Excel校正タブから翻訳機能を使う

Googleスプレッドシートを使って日本語➡英語翻訳[=GoogleTranslate関数]

2022.5.12追記、Googleスプレッドシートを使うやり方

Googleアカウントを登録していれば、Googleスプレッドシートを使えるので[=GoogleTranslate関数]を使用して日本語を英語に翻訳する。翻訳出来ないモノはローマ字変換されるので、テストデータ作成には、むしろこちらの方が簡単に作成できるといったメリットはある。

が、完全に全てローマ字にしたい場合は、やはりヘボン式を使うしか方法はない。

「Googleスプレッドシート」を立ち上げて対象データをコピペする。

種牡馬 Stallion
ゴールドアリュール
トーセンラー
パイロ
トーセンブライト
キングカメハメハ
アイルハヴアナザー
エイシンフラッシュ
フェノーメノ
クロフネ
シニスターミニスター

=GoogleTranslate関数を使う

Googleスプレッドシート:GoogleTranslate関数のサンプル

はっきり言って、こっちの方が楽チンだよね~🤭

=Arrayformula関数は、GoogleTranslate関数には使えないようだ。

英語変換だけでなく多言語に対応してるから、素晴らしい!

これだけでも業務で使う用途にはなる。

言語 言語コード
アラビア語 ar
英語 en
韓国語 ko
スペイン語 es
中国語 zh
ドイツ語 de
日本語 ja
ヒンドゥー語 hi
フランス語 fr
ロシア語 ru

GoogleスプレッドシートからExcelに貼付ける場合は、必ずテキスト指定をする!

※但し、英字に限る。

GoogleスレッドシートからExcelに貼り付ける場合はテキスト指定すると「値」だけ貼り付く

そのまま貼り付けると、Googleスプレッドシートの情報がそのまま残ることになる!

見た目は普通なんだけどねぇ~

adono

破損しても問題なし!という運用なら、コピペ問題なしだが…
複数人での使用なら正規の方法を使おう。

編集後記

システムのテスト環境を作るのに、実際のデータを使用するのが一番確実にテストできるが、毎度それが可能になるとは限らない!実データ使用の許可が下りたとしても、自分のミス以外でデータが流出したとしたら目も当てられない。日本語の場合、母音となる[aiueo]をローマ字変換後、更に違う文字に置換してしまえば、もう原型の判別は簡単にはできなくなっているはずだ。

そんなテストデータを作成するには、Excel関数やVBAを使用し母音を文字列変換してしまえば、原型の文字は何だか分からなくなるので、大量テストデータが欲しい場合には使える手法ということになる。

それでは、またね~😎

この記事を書いた人

マクロで半自動化!GO!GO!!PROGRAMMING
管理人:あどのまつり
馬齢:牡50代(後)✖1

2023年はコロナ明けでタイ旅行にいきThai!!

目次