【初月無料キャンペーン中】gooドクター

VBA初心者です。
佐藤陽子さんだったら、SATO YOKOとExcelで表示させたいのですが、こちらに書いてある質問と一緒だったので、標準モジュールでプログラムをコピペしましたが、上手くいきませんでした。
https://oshiete.goo.ne.jp/qa/1450971.html
恐らく、貼り付けの仕方が悪いと思うのですが、今回初めてVBAを使うため、色々調べてみてもどのようにこちらのプログラムを貼り付けしたら良いかさっぱりわかりません…。
昨日仕事で来週金曜日までに1000人ほど変換してほしいと言われ、困っています。
変換できる無料ソフトウェアもあるようですが、会社のPCのため、勝手にインストール出来ません。
知識不足で申し訳ありませんが、分かりやすくご回答いただけますと幸いです。どうぞよろしくお願い致します。

質問者からの補足コメント

  • つらい・・・

    tatsu99様
    お忙しいところ、ご返信ありがとうございます。
    標準モジュールはどのように登録されたのか教えていただけないでしょうか…?標準モジュールにコピペしても上手くいかず、そこからつまづいてしまっております。
    可能であれば、sato^yo^koとならず、SATO YOKOにしたいのですが方法があれば、併せて教えていただけないでしょうか。
    全て大文字にしてほしいと言われているので、せめて大文字になる方法をご存知でしたら教えていただけると助かります。
    本当に知識不足で申し訳ありません。。。

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/11/19 20:08
  • うーん・・・

    ご返信ありがとうございます。標準モジュールを書くところは分かるのですが、マクロを書くところにどう貼り付けしたら良いか分からないのです…。もし可能であれば、画像を見せていただけないでしょうか。図々しいお願いで申し訳ありません。

    「VBAでカタカナ→ローマ字の変換を標準モ」の補足画像2
    No.3の回答に寄せられた補足コメントです。 補足日時:2016/11/19 20:48
  • ご返信ありがとうございます。
    本当にご丁寧に説明いただいてありがとうございます。すぐにPCを開ける環境にないため、月曜日に会社PCで試してみたいと思います。
    本当に感謝の気持ちでいっぱいです。
    また月曜日に結果を報告させてください。よろしくお願い致します。

    No.7の回答に寄せられた補足コメントです。 補足日時:2016/11/19 21:19
gooドクター

A 回答 (9件)

下記URLにソースを置きました。

それを、コピーして貼り付けても構いません。
http://climbi.com/b/8497/0

但し、最初の行の
Option Explicit
が2行になった場合、片方を削除してください。
この回答への補足あり
    • good
    • 0
この回答へのお礼

家のWindow Excels2007で、取り急ぎ試してみました!ようやくできました!本当にご丁寧に説明していただいてありがとうございました。また私の知識が乏しくお忙しいところ、お手数ばかりお掛けしましたこと、お詫び申し上げます。感謝しております。どうもありがとうございました。

お礼日時:2016/11/19 22:11

補足



Private Const Roman As String--
Function HKana2Roman ←変換関数
Sub RomajiHenkan() ←★実行マクロ
Sub SpaceinNames() ←空白区切りを入れるマクロ
Sub FriganaRecover ←ふりがなを復活させるマクロ

切り分けの失敗例
島尚太郎 島尚 太郎 しまなお たろう
マクロでは検出できませんでした。これらを判定するのは、特殊なプログラムが必要になるのだと思います。このように人の判断が必要の場合があります。

マクロを実行させる時は、Alt + F8 で窓を開けて、そこでクリックするとよいでしょう。

それと、VBE画面はあまり人に見せることはありませんが、このようになっています。
「VBAでカタカナ→ローマ字の変換を標準モ」の回答画像9
    • good
    • 0
この回答へのお礼

補足いただきありがとうございます。
補足いただいたことも試してみたいと思います。

お礼日時:2016/11/19 22:28

こんばんは。



>来週金曜日までに1000人ほど変換してほしいと言われ
そんなには時間はかからないです。今日・明日ぐらで解決はできるとは思うのです。

そのマクロの基本的な使い方は、マウスで選択しておいて、
RomajiHenkan
というマクロを選択すれば、ローマ字に変換します。

ところが、私も研究したことがありますが、巷には、マクロを含め、ローマ字変換プログラムはあるものの、このマクロの変換内容は、ヘボン式と混合のようですね。そうでなければ、他でもあるということなのでしょう。この質問者さんの会社の独自のローマ字変換プログラムになっているようです。

なお、
>佐藤陽子さんだったら、SATO YOKOと
とはなりません。佐藤 陽子 と空白値(分かれ目)が必要なのです。
事前に空白値を入れていただかなくてはなりません。
ただ、それについては、少し、アイデアがあります。
とりあえずというか、漢字二つで空白を入れてみたらよいかと思います。

3文字の名前の切り分けが正しいか分かりませんので、*(アスタリスクマーク)が付きます。

これらは、必ず、標準モジュールに入れてください。

Sub SpaceinNames()
'姓名の切り分け '列の先頭で実行
 Dim rng As Range
 Dim c
 Dim buf As Variant
 Dim myFuri As String
 Application.ScreenUpdating = False
 Set rng = Range(ActiveCell, Cells(Rows.Count, ActiveCell.Column).End(xlUp))
 For Each c In rng
  myFuri = Application.GetPhonetic(c.Text)
  buf = c.Value
  
  Select Case Len(c.Value)
   Case 2
    buf = Left(c.Value, 1) & " " & Right(c.Value, 1)
   Case 3: buf = Left(c.Value, 2) & " " & Right(c.Value, 1)
    c.Offset(, 2).Value = "*"
   Case 4: buf = Left(c.Value, 2) & " " & Right(c.Value, 2)
   Case Is > 4: buf = Left(c.Value, 2) & " " & Right(c.Value, Len(c.Value) - 2)
  End Select
  c.Offset(, 1).Value = buf
 Next c
  Application.ScreenUpdating = True
End Sub

次に、ふりがなの内容についてチェックしてください。
いきなりローマ字でも可能ですが、とても目視では耐えられません。

=Phonetic(B1)
としても出てこないですから、以下を使います。
読みは合っていますか?もしかしたら直さなくてはならないかもしれません。
漢字から直接というのは、ミスもあります。幸子は、さちこ?ゆきこ? どちらか分からないのです。漢字変換システムで多い方が、ふりがなに入りますので、間違う時があります。もしも、ふりがなデータがあるのでしたら、それを漢字に組み入れることが可能です。

Sub FriganaRecover()
'ふりがな復活 '列の先頭で実行
 Dim c As Range
 Dim rng As Range
 Application.ScreenUpdating = False
 Set rng = Range(ActiveCell, Cells(Rows.Count, ActiveCell.Column).End(xlUp))
 For Each c In rng
  If VarType(c) = vbString Then
   If c.Characters.PhoneticCharacters = "" Then
    c.SetPhonetic
   End If
  End If
 Next c
 Application.ScreenUpdating = True
End Sub

後は、元のマクロの修正です。
完全なヘボン式ではないので、戻るかと思います。
myPhone Like "[ぁ-ン]+" ←[―]横線が、全角になっていたら、半角になおしてください。

下のほうから修正します。

Sub RomajiHenkan()
'ローマ字変換 列の先頭で実行
Dim rng As Range
Dim c As Object
Dim buf As String
Dim myPhone As String
Set rng = Range(ActiveCell, Cells(Rows.Count, ActiveCell.Column).End(xlUp))
Application.ScreenUpdating = False
For Each c In rng
 myPhone = WorksheetFunction.Phonetic(c)
 If myPhone Like "[ぁ-ン]+" Then
   buf = HKana2Roman(myPhone)
   c.Offset(, 1).Value = StrConv(buf, vbUpperCase)
 Else
   myPhone = Application.GetPhonetic(myPhone)
   buf = HKana2Roman(myPhone)
   c.Offset(, 1).Value = StrConv(buf, vbUpperCase)
 End If
Next
Application.ScreenUpdating = True
End Sub

更に上

ここの間、コメントブロックをしてしまってください。
 '母音の例外長音
'  For Each c In Array("a", "i", "u", "e", "o")
'  If buf Like "*" & c & c & "?*" Then
'  buf = Replace(buf, c & c, c & "^", 1)
'  End If
' Next c

また上。

>"o^,ko^,go^,so^,zo^,to^,do^,no^,ho^,po^,bo^,mo^,yo^,ro^,"

"o,ko,go,so,zo,to,do,no,ho,po,bo,mo,yo,ro,"   (修正後)

>pye,bye,mye,rye,dhi

これは、特殊なローマ字だと思いますが、人名ではまず出てこないはずです。
一応、そのままにしておきます。
画像をみると、その手順が分かるはずです。いきなローマ字変換はお勧めしません。中身をチェックしてからにしたほうがよいです。
「VBAでカタカナ→ローマ字の変換を標準モ」の回答画像8
    • good
    • 0
この回答へのお礼

ご返信ありがとうございます。
^を外して修正してみますね。
ご丁寧に画像もアップしていただき、ありがとうございました。

お礼日時:2016/11/19 22:15

最後の部分です。

「VBAでカタカナ→ローマ字の変換を標準モ」の回答画像6
    • good
    • 0

マクロを書くところに、コピーしてきたものを、そのまま貼り付けます。


全体は、画像に収まらないので、最初の部分の画像です。次の投稿で、最後の部分の画像です。
「VBAでカタカナ→ローマ字の変換を標準モ」の回答画像5
    • good
    • 0

追伸、ローマ字変換と大文字変換を同時に行いたいなら


C2へ
=UPPER(HKana2Roman(B2))
とかいてください。大文字で表示されます。

尚、^をとるために一括置換する場合、関数式を記述したセルは置換できません。
その為、一旦、C列全体のセルをコピーし、D列へ貼りつけます。
張り付けるとき、右クリックして、「形式を選択して貼り付け」を選び、値の欄にチェックして、張り付けます。
そうすると、数式はコピーされず、文字だけがコピーされます。それを一括置換してください。
    • good
    • 0
この回答へのお礼

tatsu99様 Excel関数の勉強にもなりました。ありがとうございます。

お礼日時:2016/11/19 22:22

標準モジュールのところに


Module1があると思いますが、それがないでしょうか。
ない場合は、
Alt+F11キーでマクロの画面が開きます。
そこでメニューから挿入ー>標準モジュールを選択してください。

大文字にする場合は、UPPERを使用します。
C列にローマ字があるとすると、これを大文字にするので
D2へ
=UPPER(C2)と記述し
下へオートフィルでコピーします。

^の文字をとるのは、範囲を指定して通常のexcelの置換で一括置換します。(^を空文字にします)
この回答への補足あり
    • good
    • 0

No1です。


>変換できる無料ソフトウェアもあるようですが、会社のPCのため、勝手にインストール出来ません。
最悪の場合ですが、もし、うまくいかない場合は、あなたのPCでこの無料ソフトウェアを使って、名前を変換し、
その結果をexcelに張り付けてはいかがでしょうか。
    • good
    • 0

https://oshiete.goo.ne.jp/qa/1450971.htmlのマクロを
標準モジュールへ登録します。
実行してみました。
添付画像の例では、
B2へ
=PHONETIC(A2)
を入力し、下へオートフィルでコピー
C2へ
=HKana2Roman(B2)
と入力し、下へオートフィルでコピー
します。
佐藤 陽子 は sato^ yo^ko になりますが、それで良いですか。
不明点は補足してください。
「VBAでカタカナ→ローマ字の変換を標準モ」の回答画像1
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング