VBA初心者です。
佐藤陽子さんだったら、SATO YOKOとExcelで表示させたいのですが、こちらに書いてある質問と一緒だったので、標準モジュールでプログラムをコピペしましたが、上手くいきませんでした。
https://oshiete.goo.ne.jp/qa/1450971.html
恐らく、貼り付けの仕方が悪いと思うのですが、今回初めてVBAを使うため、色々調べてみてもどのようにこちらのプログラムを貼り付けしたら良いかさっぱりわかりません…。
昨日仕事で来週金曜日までに1000人ほど変換してほしいと言われ、困っています。
変換できる無料ソフトウェアもあるようですが、会社のPCのため、勝手にインストール出来ません。
知識不足で申し訳ありませんが、分かりやすくご回答いただけますと幸いです。どうぞよろしくお願い致します。
No.7ベストアンサー
- 回答日時:
下記URLにソースを置きました。
それを、コピーして貼り付けても構いません。http://climbi.com/b/8497/0
但し、最初の行の
Option Explicit
が2行になった場合、片方を削除してください。
家のWindow Excels2007で、取り急ぎ試してみました!ようやくできました!本当にご丁寧に説明していただいてありがとうございました。また私の知識が乏しくお忙しいところ、お手数ばかりお掛けしましたこと、お詫び申し上げます。感謝しております。どうもありがとうございました。
No.9
- 回答日時:
補足
Private Const Roman As String--
Function HKana2Roman ←変換関数
Sub RomajiHenkan() ←★実行マクロ
Sub SpaceinNames() ←空白区切りを入れるマクロ
Sub FriganaRecover ←ふりがなを復活させるマクロ
切り分けの失敗例
島尚太郎 島尚 太郎 しまなお たろう
マクロでは検出できませんでした。これらを判定するのは、特殊なプログラムが必要になるのだと思います。このように人の判断が必要の場合があります。
マクロを実行させる時は、Alt + F8 で窓を開けて、そこでクリックするとよいでしょう。
それと、VBE画面はあまり人に見せることはありませんが、このようになっています。
No.8
- 回答日時:
こんばんは。
>来週金曜日までに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
これは、特殊なローマ字だと思いますが、人名ではまず出てこないはずです。
一応、そのままにしておきます。
画像をみると、その手順が分かるはずです。いきなローマ字変換はお勧めしません。中身をチェックしてからにしたほうがよいです。
No.4
- 回答日時:
追伸、ローマ字変換と大文字変換を同時に行いたいなら
C2へ
=UPPER(HKana2Roman(B2))
とかいてください。大文字で表示されます。
尚、^をとるために一括置換する場合、関数式を記述したセルは置換できません。
その為、一旦、C列全体のセルをコピーし、D列へ貼りつけます。
張り付けるとき、右クリックして、「形式を選択して貼り付け」を選び、値の欄にチェックして、張り付けます。
そうすると、数式はコピーされず、文字だけがコピーされます。それを一括置換してください。
No.3
- 回答日時:
標準モジュールのところに
Module1があると思いますが、それがないでしょうか。
ない場合は、
Alt+F11キーでマクロの画面が開きます。
そこでメニューから挿入ー>標準モジュールを選択してください。
大文字にする場合は、UPPERを使用します。
C列にローマ字があるとすると、これを大文字にするので
D2へ
=UPPER(C2)と記述し
下へオートフィルでコピーします。
^の文字をとるのは、範囲を指定して通常のexcelの置換で一括置換します。(^を空文字にします)
No.2
- 回答日時:
No1です。
>変換できる無料ソフトウェアもあるようですが、会社のPCのため、勝手にインストール出来ません。
最悪の場合ですが、もし、うまくいかない場合は、あなたのPCでこの無料ソフトウェアを使って、名前を変換し、
その結果をexcelに張り付けてはいかがでしょうか。
No.1
- 回答日時:
標準モジュールへ登録します。
実行してみました。
添付画像の例では、
B2へ
=PHONETIC(A2)
を入力し、下へオートフィルでコピー
C2へ
=HKana2Roman(B2)
と入力し、下へオートフィルでコピー
します。
佐藤 陽子 は sato^ yo^ko になりますが、それで良いですか。
不明点は補足してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
夏が終わったと感じる瞬間って、どんな時?
まだまだ暑い今日この頃。 しかしながら、もう夏は終わっている!……はず。 あなたが思う「夏が終わった!」エピソードを教えてください。
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
【お題】 ・世界最古のコンビニについて知ってる事を教えてください
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
ふりがなをアルファベット化する関数ってありますか?
PowerPoint(パワーポイント)
-
ローマ字→カタカナへ変換(エクセルで)
Excel(エクセル)
-
エクセルシートのローマ字をひらがなにしたい。
Excel(エクセル)
-
-
4
カタカナをローマジに変換する。
Visual Basic(VBA)
-
5
Excelで英数字をカナに変換する方法は?
Excel(エクセル)
-
6
かなで書かれた文字をアルファベットに変換できませんか?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
Excel マクロでShearePoint先の...
-
特定文字のある行の前に空白行...
-
エクセルに張り付けた写真のフ...
-
TERA TERMを隠す方法
-
マクロ実行時、ユーザーフォー...
-
wordを起動した際に特定のペー...
-
VBAにて別ワークブック上の実行...
-
[初心者です]VBAで指定列か...
-
Excel VBAからAccessマクロを実...
-
ExcelVBAでPDFを閉じるソース
-
組んだマクロをメールで送る
-
Excel2013 VBA マクロ実行中に...
-
Excel_マクロ_現在開いているシ...
-
Sub ***( ) と Private Sub ***...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
Excel VBAからAccessマクロを実...
-
Excel マクロでShearePoint先の...
-
特定文字のある行の前に空白行...
-
エクセルで別のセルにあるふり...
-
TERA TERMを隠す方法
-
wordを起動した際に特定のペー...
-
マクロ実行時、ユーザーフォー...
-
ExcelVBAでPDFを閉じるソース
-
【EXCEL VBA】オートシェイプを...
-
Excel_マクロ_現在開いているシ...
-
EXCELマクロでのThisisWor...
-
ソース内の行末に\\
おすすめ情報
tatsu99様
お忙しいところ、ご返信ありがとうございます。
標準モジュールはどのように登録されたのか教えていただけないでしょうか…?標準モジュールにコピペしても上手くいかず、そこからつまづいてしまっております。
可能であれば、sato^yo^koとならず、SATO YOKOにしたいのですが方法があれば、併せて教えていただけないでしょうか。
全て大文字にしてほしいと言われているので、せめて大文字になる方法をご存知でしたら教えていただけると助かります。
本当に知識不足で申し訳ありません。。。
ご返信ありがとうございます。標準モジュールを書くところは分かるのですが、マクロを書くところにどう貼り付けしたら良いか分からないのです…。もし可能であれば、画像を見せていただけないでしょうか。図々しいお願いで申し訳ありません。
ご返信ありがとうございます。
本当にご丁寧に説明いただいてありがとうございます。すぐにPCを開ける環境にないため、月曜日に会社PCで試してみたいと思います。
本当に感謝の気持ちでいっぱいです。
また月曜日に結果を報告させてください。よろしくお願い致します。