« 関数で出来ますか~? 第55回 Mode紛い | メイン | 関数で出来ますか~? 第55回 Mode紛い 解答例 »

2019年5 月16日 (木曜日)

コメント

SQS

ぎゃー! 大変だっっ。

「知性よりも根性のマクロ」、始まってしまいました(^_^;)

ちゃこさま、こっちでも、遊び?ましょう(^^)

くまぷー

できましたか?
A2:A4を選択して、置換すれば・・・

ささき
あらき
きむら

・・・が

ささki
あらki
kiむら

・・・になるはずです。

SQS

置換
検索する文字 き
置換後の文字列 ki

置換したら、できました。

y sakuda

なんか、目に入ったので覗いた^^
現実には名簿漢字でしょうから、VBAでやるにしてもフリガナが付いているのが条件
やって見たこと無いけど、VBAでふりがなつけられないことはないけど、自動だと相当怪しげな物しかつかないはず。
フリガナさえついてれば、VBAとしても大したことないはずですけどねーー
変換表作るの面倒だから、わざわざやらないけど。

くまぷー

>なんか、目に入ったので覗いた^^

コメントありがとうございます。m(__)m

小・中・高の各学校には、だいたいALTと呼ばれる外国語指導助手なる者がいて
その人たちのために生徒用名簿を作ってやるわけですが、その作業が一般の英語教員の
負担になります。

・・・で、SQSさんは、何とかラクをすることはできぬものかとやってきたわけです。

>変換表作るの面倒だから、

そうですよね~

ささき
あらき
きむら

上の例くらいならいいけど・・・

新田:「にっ」た
北条:ほう「じょ」う
黄:「ふぁ」ん

・・・なんてのもいましたしね~

何か、あったら、アドバイスをよろしくですm(__)m

くまぷー

>置換したら、できました。

了解。
それでは「課題2」を出します。
やってください。

くまぷー

>現実には名簿漢字でしょうから

もちろん、メインは漢字ですが
読み仮名として、平仮名か片仮名、どちらかのデータはすでに用意されているはずです。

SQS

Sub Macro1()
'
どきどきします。


' Macro1 Macro
'

'
Cells.Replace What:="き", Replacement:="ki", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub

SQS

Sub Macro1()
'
' Macro1 Macro
'

'
Cells.Replace What:="き", Replacement:="ki", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub

くまぷー

SQSさん、B1に「きつつき」と入力してから
Macro1を実行してみてください。

「きつつき」はどうなりますか?

SQS

kiつつki

になりました。

くまぷー

そうですね。A2:A4以外にもマクロが作用してしまいました。名簿の部分だけに作用させたいです。置換する前にA2:A4を選択して、記録マクロ

SQS

kiつつki にはなりませんでした!(^^)!


Sub Macro2()
'
' Macro2 Macro
'

'
Range("A2:A4").Select
Selection.Replace What:="き", Replacement:="ki", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

くまぷー

これですね。

Range("A2:A4").Select

これがマクロの作用範囲を示しています。

それでは最後の課題を出しましょう。

y sakuda

>Range("A2:A4").Select
Select使うのはマクロ記録から入った場合に身に着いちゃう悪癖です。
例えば、

With WorkSheets("Sheet1")
With .range("A2:A4")
.Replace What:="き", Replacement:="ki", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
end With
End With

こういう書き方をした方がメンテナンス等がずっと楽になりますし、プログラムの可読性も格段に上がります。

なお、現在のWorkSheetを対象にするなら
With ActiveSheet

End With
とすれば良く、場合によっては使い勝手がずっと上がります。

くまぷー

あ、sakudaさん、コメントありがとうございます。

>Select使うのはマクロ記録から入った場合に身に着いちゃう悪癖です。

そうですね。おっしゃる通りです。
私もselectは使いません。

上に提示した【課題3】の後に【発展】があります。(^^ゞ

SQS

ぎゃー、「根性で」が赤で書かれています。怖い。

そして課題は本当に根性者だった。。。涙

ちゃこ

うわあ。かなローマ字変換マクロ
すごく骨の折れる課題です。
赤字の範囲を只管コピペしていくなんて。

出来上がったら、
達成感が大きいとは思いますけれど
SQSさま(>_<)
ご無理のない範囲で少しずつ(;´Д`

SQS

はい、根性 その1 (@_@)

Sub かなローマ字変換()
Range("A2:A4").Select

Selection.Replace What:="ふぁ", Replacement:="fa"
Selection.Replace What:="りゃ", Replacement:="rya"
Selection.Replace What:="みゃ", Replacement:="mya"
Selection.Replace What:="ひゃ", Replacement:="hya"
Selection.Replace What:="にゃ", Replacement:="nya"
Selection.Replace What:="ちゃ", Replacement:="cha"
Selection.Replace What:="しゃ", Replacement:="sha"
Selection.Replace What:="きゃ", Replacement:="kya"
Selection.Replace What:="ぴゃ", Replacement:="pya"
Selection.Replace What:="びゃ", Replacement:="bya"
Selection.Replace What:="ぢゃ", Replacement:="dya"
Selection.Replace What:="じゃ", Replacement:="ja"
Selection.Replace What:="ぎゃ", Replacement:="gya"
Selection.Replace What:="ふぃ", Replacement:="fi"
Selection.Replace What:="ぴゅ", Replacement:="pyu"
Selection.Replace What:="びゅ", Replacement:="byu"
Selection.Replace What:="ぢゅ", Replacement:="dyu"
Selection.Replace What:="じゅ", Replacement:="ju"
Selection.Replace What:="ぎゅ", Replacement:="gyu"
Selection.Replace What:="ふぇ", Replacement:="fe"
Selection.Replace What:="りゅ", Replacement:="ryu"
Selection.Replace What:="みゅ", Replacement:="myu"
Selection.Replace What:="ひゅ", Replacement:="hyu"
Selection.Replace What:="にゅ", Replacement:="nyu"
Selection.Replace What:="ちゅ", Replacement:="chu"
Selection.Replace What:="しゅ", Replacement:="shu"
Selection.Replace What:="きゅ", Replacement:="kyu"
Selection.Replace What:="ぴょ", Replacement:="pyo"
Selection.Replace What:="びょ", Replacement:="byo"
Selection.Replace What:="ぢょ", Replacement:="dyo"
Selection.Replace What:="じょ", Replacement:="jo"
Selection.Replace What:="ぎょ", Replacement:="gyo"
Selection.Replace What:="ふぉ", Replacement:="fo"
Selection.Replace What:="りょ", Replacement:="ryo"
Selection.Replace What:="みょ", Replacement:="myo"
Selection.Replace What:="ひょ", Replacement:="hyo"
Selection.Replace What:="にょ", Replacement:="nyo"
Selection.Replace What:="ちょ", Replacement:="cho"
Selection.Replace What:="しょ", Replacement:="sho"
Selection.Replace What:="きょ", Replacement:="kyo"
Selection.Replace What:="ちぇ", Replacement:="che"

Selection.Replace What:="ん", Replacement:="n"
Selection.Replace What:="わ", Replacement:="wa"
Selection.Replace What:="ら", Replacement:="ra"
Selection.Replace What:="や", Replacement:="ya"
Selection.Replace What:="ま", Replacement:="ma"
Selection.Replace What:="は", Replacement:="ha"
Selection.Replace What:="な", Replacement:="na"
Selection.Replace What:="た", Replacement:="ta"
Selection.Replace What:="さ", Replacement:="sa"
Selection.Replace What:="か", Replacement:="ka"
Selection.Replace What:="あ", Replacement:="a"
Selection.Replace What:="ぱ", Replacement:="pa"
Selection.Replace What:="ば", Replacement:="ba"
Selection.Replace What:="だ", Replacement:="da"
Selection.Replace What:="ざ", Replacement:="za"
Selection.Replace What:="が", Replacement:="ga"
Selection.Replace What:="り", Replacement:="ri"
Selection.Replace What:="み", Replacement:="mi"
Selection.Replace What:="ひ", Replacement:="hi"
Selection.Replace What:="に", Replacement:="ni"
Selection.Replace What:="ち", Replacement:="chi"
Selection.Replace What:="し", Replacement:="shi"
Selection.Replace What:="き", Replacement:="ki"
Selection.Replace What:="い", Replacement:="i"
Selection.Replace What:="ぴ", Replacement:="pi"
Selection.Replace What:="び", Replacement:="bi"
Selection.Replace What:="ぢ", Replacement:="di"
Selection.Replace What:="じ", Replacement:="ji"
Selection.Replace What:="ぎ", Replacement:="gi"
Selection.Replace What:="る", Replacement:="ru"
Selection.Replace What:="ゆ", Replacement:="yu"
Selection.Replace What:="む", Replacement:="mu"
Selection.Replace What:="ふ", Replacement:="fu"
Selection.Replace What:="ぬ", Replacement:="nu"
Selection.Replace What:="つ", Replacement:="tsu"
Selection.Replace What:="す", Replacement:="su"
Selection.Replace What:="く", Replacement:="ku"
Selection.Replace What:="う", Replacement:="u"
Selection.Replace What:="ぷ", Replacement:="pu"
Selection.Replace What:="ぶ", Replacement:="bu"
Selection.Replace What:="づ", Replacement:="du"
Selection.Replace What:="ず", Replacement:="zu"
Selection.Replace What:="ぐ", Replacement:="gu"
Selection.Replace What:="ヴ", Replacement:="vu"
Selection.Replace What:="れ", Replacement:="re"
Selection.Replace What:="め", Replacement:="me"
Selection.Replace What:="へ", Replacement:="he"
Selection.Replace What:="ね", Replacement:="ne"
Selection.Replace What:="て", Replacement:="te"
Selection.Replace What:="せ", Replacement:="se"
Selection.Replace What:="け", Replacement:="ke"
Selection.Replace What:="え", Replacement:="e"
Selection.Replace What:="ぺ", Replacement:="pe"
Selection.Replace What:="べ", Replacement:="be"
Selection.Replace What:="で", Replacement:="de"
Selection.Replace What:="ぜ", Replacement:="ze"
Selection.Replace What:="げ", Replacement:="ge"
Selection.Replace What:="を", Replacement:="wo"
Selection.Replace What:="ろ", Replacement:="ro"
Selection.Replace What:="よ", Replacement:="yo"
Selection.Replace What:="も", Replacement:="mo"
Selection.Replace What:="ほ", Replacement:="ho"
Selection.Replace What:="の", Replacement:="no"
Selection.Replace What:="と", Replacement:="to"
Selection.Replace What:="そ", Replacement:="so"
Selection.Replace What:="こ", Replacement:="ko"
Selection.Replace What:="お", Replacement:="o"
Selection.Replace What:="ぽ", Replacement:="po"
Selection.Replace What:="ぼ", Replacement:="bo"
Selection.Replace What:="ど", Replacement:="do"
Selection.Replace What:="ぞ", Replacement:="zo"
Selection.Replace What:="ご", Replacement:="go"
Selection.Replace What:="ょ", Replacement:="lyo"
Selection.Replace What:="ぉ", Replacement:="lo"
Selection.Replace What:="ぃ", Replacement:="xi"
Selection.Replace What:="ゅ", Replacement:="lyu"
Selection.Replace What:="ぅ", Replacement:="lu"
Selection.Replace What:="ぇ", Replacement:="le"
Selection.Replace What:="ゅ", Replacement:="lyu"
Selection.Replace What:="ょ", Replacement:="lto"
Selection.Replace What:="ゑ", Replacement:="we"
Selection.Replace What:="ゃ", Replacement:="xya"
Selection.Replace What:="ゐ", Replacement:="wi"
Selection.Replace What:="ゎ", Replacement:="xwa"
Selection.Replace What:="ゃ", Replacement:="xya"
Selection.Replace What:="っ", Replacement:="t"
Selection.Replace What:="ー", Replacement:="-"
Selection.Replace What:="ぁ", Replacement:="xa"
Selection.Replace What:="ゃ", Replacement:="xya"



End Sub


SQS

ちゃこさま、元気にしていますか。

英語からちょっと道が外れていますが、(笑)
あこがれの「エクセル」、使えるようになりたいとがんばっています(^.^)

くまぷー

お早うございます。

SQSさん、お疲れさまでした。
どうやら、課題3、終わったようですね。

さて・・・
Selection.Replace What:="ょ", Replacement:="lyo"
Selection.Replace What:="ぉ", Replacement:="lo"
Selection.Replace What:="ぃ", Replacement:="xi"
Selection.Replace What:="ゅ", Replacement:="lyu"
Selection.Replace What:="ぅ", Replacement:="lu"
Selection.Replace What:="ぇ", Replacement:="le"
Selection.Replace What:="ゅ", Replacement:="lyu"
Selection.Replace What:="ょ", Replacement:="lto"

Selection.Replace What:="ゃ", Replacement:="xya"

Selection.Replace What:="ゎ", Replacement:="xwa"
Selection.Replace What:="ゃ", Replacement:="xya"

Selection.Replace What:="ー", Replacement:="-"
Selection.Replace What:="ぁ", Replacement:="xa"
Selection.Replace What:="ゃ", Replacement:="xya"

上のものは、キーボードから入力する時のものです。
例えば「ぁ」を入力する時のキーが「xa」なのであって、読みは「xa」にはなりません。
ま、その部分は削除、ということで・・・

どうせ「ぁ」が単独で出てくることは無いので、2文字処理の所で処理されてしまうはずです。

SQS

おはようございます。

上記について、夜、悩みました。

確かに単独ででることはまずないですね(^^;)

ただ「-」は、もしかしたら、別の国の名前をもつ人には使うかな、と思いました。
長音記号は、たぶん、ひらがな名簿でも長音記号だと思います。

>ま、その部分は削除、ということで・・・

削除したものをもう一度、貼ります。

SQS

Sub かなローマ字変換()
Range("A2:A4").Select

Selection.Replace What:="ふぁ", Replacement:="fa"
Selection.Replace What:="りゃ", Replacement:="rya"
Selection.Replace What:="みゃ", Replacement:="mya"
Selection.Replace What:="ひゃ", Replacement:="hya"
Selection.Replace What:="にゃ", Replacement:="nya"
Selection.Replace What:="ちゃ", Replacement:="cha"
Selection.Replace What:="しゃ", Replacement:="sha"
Selection.Replace What:="きゃ", Replacement:="kya"
Selection.Replace What:="ぴゃ", Replacement:="pya"
Selection.Replace What:="びゃ", Replacement:="bya"
Selection.Replace What:="ぢゃ", Replacement:="dya"
Selection.Replace What:="じゃ", Replacement:="ja"
Selection.Replace What:="ぎゃ", Replacement:="gya"
Selection.Replace What:="ふぃ", Replacement:="fi"
Selection.Replace What:="ぴゅ", Replacement:="pyu"
Selection.Replace What:="びゅ", Replacement:="byu"
Selection.Replace What:="ぢゅ", Replacement:="dyu"
Selection.Replace What:="じゅ", Replacement:="ju"
Selection.Replace What:="ぎゅ", Replacement:="gyu"
Selection.Replace What:="ふぇ", Replacement:="fe"
Selection.Replace What:="りゅ", Replacement:="ryu"
Selection.Replace What:="みゅ", Replacement:="myu"
Selection.Replace What:="ひゅ", Replacement:="hyu"
Selection.Replace What:="にゅ", Replacement:="nyu"
Selection.Replace What:="ちゅ", Replacement:="chu"
Selection.Replace What:="しゅ", Replacement:="shu"
Selection.Replace What:="きゅ", Replacement:="kyu"
Selection.Replace What:="ぴょ", Replacement:="pyo"
Selection.Replace What:="びょ", Replacement:="byo"
Selection.Replace What:="ぢょ", Replacement:="dyo"
Selection.Replace What:="じょ", Replacement:="jo"
Selection.Replace What:="ぎょ", Replacement:="gyo"
Selection.Replace What:="ふぉ", Replacement:="fo"
Selection.Replace What:="りょ", Replacement:="ryo"
Selection.Replace What:="みょ", Replacement:="myo"
Selection.Replace What:="ひょ", Replacement:="hyo"
Selection.Replace What:="にょ", Replacement:="nyo"
Selection.Replace What:="ちょ", Replacement:="cho"
Selection.Replace What:="しょ", Replacement:="sho"
Selection.Replace What:="きょ", Replacement:="kyo"
Selection.Replace What:="ちぇ", Replacement:="che"

Selection.Replace What:="ん", Replacement:="n"
Selection.Replace What:="わ", Replacement:="wa"
Selection.Replace What:="ら", Replacement:="ra"
Selection.Replace What:="や", Replacement:="ya"
Selection.Replace What:="ま", Replacement:="ma"
Selection.Replace What:="は", Replacement:="ha"
Selection.Replace What:="な", Replacement:="na"
Selection.Replace What:="た", Replacement:="ta"
Selection.Replace What:="さ", Replacement:="sa"
Selection.Replace What:="か", Replacement:="ka"
Selection.Replace What:="あ", Replacement:="a"
Selection.Replace What:="ぱ", Replacement:="pa"
Selection.Replace What:="ば", Replacement:="ba"
Selection.Replace What:="だ", Replacement:="da"
Selection.Replace What:="ざ", Replacement:="za"
Selection.Replace What:="が", Replacement:="ga"
Selection.Replace What:="り", Replacement:="ri"
Selection.Replace What:="み", Replacement:="mi"
Selection.Replace What:="ひ", Replacement:="hi"
Selection.Replace What:="に", Replacement:="ni"
Selection.Replace What:="ち", Replacement:="chi"
Selection.Replace What:="し", Replacement:="shi"
Selection.Replace What:="き", Replacement:="ki"
Selection.Replace What:="い", Replacement:="i"
Selection.Replace What:="ぴ", Replacement:="pi"
Selection.Replace What:="び", Replacement:="bi"
Selection.Replace What:="ぢ", Replacement:="di"
Selection.Replace What:="じ", Replacement:="ji"
Selection.Replace What:="ぎ", Replacement:="gi"
Selection.Replace What:="る", Replacement:="ru"
Selection.Replace What:="ゆ", Replacement:="yu"
Selection.Replace What:="む", Replacement:="mu"
Selection.Replace What:="ふ", Replacement:="fu"
Selection.Replace What:="ぬ", Replacement:="nu"
Selection.Replace What:="つ", Replacement:="tsu"
Selection.Replace What:="す", Replacement:="su"
Selection.Replace What:="く", Replacement:="ku"
Selection.Replace What:="う", Replacement:="u"
Selection.Replace What:="ぷ", Replacement:="pu"
Selection.Replace What:="ぶ", Replacement:="bu"
Selection.Replace What:="づ", Replacement:="du"
Selection.Replace What:="ず", Replacement:="zu"
Selection.Replace What:="ぐ", Replacement:="gu"
Selection.Replace What:="ヴ", Replacement:="vu"
Selection.Replace What:="れ", Replacement:="re"
Selection.Replace What:="め", Replacement:="me"
Selection.Replace What:="へ", Replacement:="he"
Selection.Replace What:="ね", Replacement:="ne"
Selection.Replace What:="て", Replacement:="te"
Selection.Replace What:="せ", Replacement:="se"
Selection.Replace What:="け", Replacement:="ke"
Selection.Replace What:="え", Replacement:="e"
Selection.Replace What:="ぺ", Replacement:="pe"
Selection.Replace What:="べ", Replacement:="be"
Selection.Replace What:="で", Replacement:="de"
Selection.Replace What:="ぜ", Replacement:="ze"
Selection.Replace What:="げ", Replacement:="ge"
Selection.Replace What:="を", Replacement:="wo"
Selection.Replace What:="ろ", Replacement:="ro"
Selection.Replace What:="よ", Replacement:="yo"
Selection.Replace What:="も", Replacement:="mo"
Selection.Replace What:="ほ", Replacement:="ho"
Selection.Replace What:="の", Replacement:="no"
Selection.Replace What:="と", Replacement:="to"
Selection.Replace What:="そ", Replacement:="so"
Selection.Replace What:="こ", Replacement:="ko"
Selection.Replace What:="お", Replacement:="o"
Selection.Replace What:="ぽ", Replacement:="po"
Selection.Replace What:="ぼ", Replacement:="bo"
Selection.Replace What:="ど", Replacement:="do"
Selection.Replace What:="ぞ", Replacement:="zo"
Selection.Replace What:="ご", Replacement:="go"














End Sub

くまぷー

SQSさんのコードをちょっといじって公開させて頂きました。

全国の英語教員がSQSさんに涙を流して感謝するでしょう (*^-^*)

y sakuda

これ、使うケースってのが、名簿の形なんかに相当左右されますが、一工夫すれば使い勝手がグンと上がると思います。
アイデアとしては
①コンテキストメニュー(右クリックメニュー)に登録してそこからワンタッチで起動できるようにする
②範囲選択して起動すれば、一挙に変換できる
(これをやるにはマクロの格好をちょっといじる必要があるとおもいますが)
Dim wCell As Range
For Each wCell In Selection
With wCell
' セルに対する処理
.Replace What:="ふぁ", Replacement:="fa"
End With
Next

y sakuda

書き忘れたけど、恒常的に使うものなら、アドインにして常時使えるようにするのも良いかと^^

ちゃこ

SQSさま、くまぷーさま

お疲れ様でした!!!
完成おめでとうございます!

さらっと読むのも大変な長さだから、
ひとつひとつ打つのは…絶対すごい大変…
SQSさまの根性、困難にもめげない強さ、
良い刺激をいただきました。


y sakuda さま

客観的かつ専門的な視点から、
コメントしていただきまして
ありがとうございます。
今後ともよろしくお願いします。


追伸
日々浮き沈みはありますけど、
私は元気に頑張っています。
道北はようやく春の季節になりました。
エゾヤマザクラという桜が咲いています。

SQS

くまぷー先生、もう完成ですか!?
ここから、ど根性、本当に血の涙を流す作業が始まるのかと思っていました。

「もう完成!?」と拍子抜けするほど、あっという間にできたのは、
もちろんくまぷー先生のご指導、というか、1つ1つのご指示のとおりやったからです。
「あんよはコチラ」的指導、笑
うれしいです。本当にありがとうございました。

y.sakuda様
初めまして。絵に描いたど素人のSQSです。くまぷー先生に、めんどくさーい(笑)作業を無遠慮に聞きまくり、くまぷー先生の「聴かれたら放っておけない教員のサガ」に甘えて、早3年。もっと早くお話しさせていただきたかったと一生分後悔しています。

もし気が向いたら以下のめんどくさーい質問にご助言いただけるとうれしです。

>①コンテキストメニュー(右クリックメニュー)に登録してそこからワンタッチで起動できるようにする

どうやったら、コンテキストメニューに登録できるのでしょうか。

>恒常的に使うものなら、アドインにして常時使えるようにするのも良いかと^^

おなじく、アドインにするにはどうしたらいいのでしょうか。

エクセルにあこがれて、こういった感じでくまぷー先生に疑問をぶつけていました。
めんどくさーいと思ったら、スルーしてください、笑


ちゃこ様
久しぶりです。書き込み見て、うれしく、ほっとしました。
季節のお便りもいいものです。やっと春ですね。
こちらは今日は蒸し暑いですよ(^_^)

SQS

y.sakuda様

y.sakuda様のマクロ、できました!
選択して「ポン!」でローマ字表記、できました。
ありがとうございます。感動です(涙)


くまぷー先生

きまぐれに「おっとっと」と打ったら
「oっtoっto」になったので、
Selection.Replace What:="っ", Replacement:="t"
を足しました。うまくいきました。


私は名簿のために教えていただきましたが、
もしかしたら、小学校の先生がローマ字を教えるときに
利用できるかも、と思いました。

くまぷー

>恒常的に使うものなら、アドインにして常時使えるようにするのも良いかと^^

sakudaさん、いろいろな御提案有り難うございます。

通常、入学時にフリガナデータを作ります。その時に一括変換してしまえば3年に一度、クラス替えごとに作っても
、せいぜい、年に一度でしょう。

くまぷー

>きまぐれに「おっとっと」と打ったら
「oっtoっto」になったので、

あれ、どのコードを使ったんですか?
公開バージョン(平仮名・片仮名両対応)では問題なくできるはずですよ。

SQS

くまぷー先生

>あれ、どのコードを使ったんですか?

すみません、まず自分のでやってみました。

自分の足りないところを見て、くまぷー先生の模範解答で復習しました。

何をやっても、寸足らず、すみません。

くまぷー

「この歌詞訳せますか~? 第37回 勝手にしやがれ」を公開しました。
よろしくお願いします m(__)m

y sakuda

余計なお世話の続です^^

これ、最初に見た時からちょっとひっかかってたんですが、なんで、漢字しかない時も考えてないんでしょうか?
これ、覗いた時はからくちさんの問題に頭がいってたのと、フリガナなんていじったことないので、確かできたはず程度の印象だったのですが、ちょっと確認して見ました。
漢字名が列に並んでいた場合、その範囲をセレクトして実行してください。
Sub Test()
Dim wCell As Range
For Each wCell In Selection
With wCell
If wCell <> "" Then
.Phonetics.CharacterType = xlHiragana
.Offset(0, 1) = wCell.Phonetic.Text
End If
End With
Next
End Sub
漢字の右にひらがなでふりがなが入ります。
なお、空欄は無視します。
また、関数Phoneticでやる訳ではないので、入ったフリガナが間違っている場合は普通に修正できます。(漢字セルのふりがなが修正されるというわけじゃありません。まあ、そういうのも可能ですがw)

参考まで。

くまぷー

>余計なお世話の続です^^
いろいろコメントありがとうございます。


>なんで、漢字しかない時も考えてないんでしょうか?

入学時に氏名(漢字・フリガナまたはふりがな)、住所、生年月日、性別、出身中学のデータを作ってしまうので、・フリガナまたはふりがなは必ずあるのです。

y sakuda

>住所、生年月日、性別、出身中学のデータを作ってしまうので、・フリガナまたはふりがなは必ずあるのです。
にゃるほど^^

NGUYEN TUNG

Sub RomajiHenkan()

Dim myRange As Range
Dim pos As Single
Dim moji As String
Dim romaji As String
Dim strAll As String
Dim str As String
Dim NmR As Single
Dim i As Single

Set myRange = ActiveCell
NmR = Application.WorksheetFunction.CountA(Selection)

For i = 0 To NmR - 1

str = ""
strAll = myRange.Offset(i, 0).Value

pos = 1

On Error GoTo ErrHandling

Do While pos <= Len(strAll)

If Mid(strAll, pos + 1, 1) Like "[ャ,ゃ,ュ,ゅ,ョ,ょ,ぁ,ぃ,ぅ,ぇ,ぉ,ァ,ィ,ゥ,ェ,ォ]" Then
moji = Mid(strAll, pos, 2)
romaji = Application.WorksheetFunction.VLookup(moji, RomajiList.Range("$A$1:$B$500"), 2, False)
str = str & romaji
pos = pos + 2
Else
If Mid(strAll, pos, 1) Like "[っ,ッ]" Then
If Mid(strAll, pos + 2, 1) Like "[ャ,ゃ,ュ,ゅ,ョ,ょ,ぁ,ぃ,ぅ,ぇ,ぉ,ァ,ィ,ゥ,ェ,ォ]" Then
moji = Mid(strAll, pos, 3)
romaji = Application.WorksheetFunction.VLookup(moji, RomajiList.Range("$A$1:$B$500"), 2, False)
str = str & romaji
pos = pos + 3
Else
moji = Mid(strAll, pos, 2)
romaji = Application.WorksheetFunction.VLookup(moji, RomajiList.Range("$A$1:$B$500"), 2, False)
str = str & romaji
pos = pos + 2
End If
Else
moji = Mid(strAll, pos, 1)
romaji = Application.WorksheetFunction.VLookup(moji, RomajiList.Range("$A$1:$B$500"), 2, False)
str = str & romaji
pos = pos + 1
End If

End If
Loop

myRange.Offset(i, 0).Value = str
Next i
MsgBox "DONE"
Exit Sub


ErrHandling:
MsgBox "There's a problem at " & myRange.Offset(i, 0).Address & ". Note: the " & moji & " sign could not be found."


End Sub


############
RomajiList
ア a
あ a
イ i
い i
ウ u
う u
エ e
え e
オ o
お o
カ ka
か ka
ガ ga
が ga
キ ki
き ki
ギ gi
ぎ gi
キャ kya
きゃ kya
ギャ gya
ぎゃ gya
キュ kyu
きゅ kyu
ギュ gyu
ぎゅ gyu
キョ kyo
きょ kyo
ギョ gyo
ぎょ gyo
ク ku
く ku
グ gu
ぐ gu
ケ ke
け ke
ゲ ge
げ ge
コ ko
こ ko
ゴ go
ご go
サ sa
さ sa
ザ za
ざ za
シ shi
し shi
ジ ji
じ ji
シャ sha
しゃ sha
ジャ ja
じゃ ja
シュ shu
しゅ shu
ジュ ju
じゅ ju
ショ sho
しょ sho
ジョ jo
じょ jo
ス su
す su
ズ zu
ず zu
セ se
せ se
ゼ ze
ぜ ze
ソ so
そ so
ゾ zo
ぞ zo
タ ta
た ta
ダ da
だ da
チ chi
ち chi
ヂ di
ぢ di
チェ che
ちぇ che
チャ cha
ちゃ cha
ヂャ dya
ぢゃ dya
チュ chu
ちゅ chu
ヂュ dyu
ぢゅ dyu
チョ cho
ちょ cho
ヂョ dyo
ぢょ dyo
ツ tsu
つ tsu
ヅ du
づ du
テ te
て te
デ de
で de
ト to
と to
ド do
ど do
ナ na
な na
ニ ni
に ni
ニャ nya
にゃ nya
ニュ nyu
にゅ nyu
ニョ nyo
にょ nyo
ヌ nu
ぬ nu
ネ ne
ね ne
ノ no
の no
ハ ha
は ha
バ ba
ば ba
パ pa
ぱ pa
ヒ hi
ひ hi
ビ bi
び bi
ピ pi
ぴ pi
ヒャ hya
ひゃ hya
ビャ bya
びゃ bya
ピャ pya
ぴゃ pya
ヒュ hyu
ひゅ hyu
ビュ byu
びゅ byu
ピュ pyu
ぴゅ pyu
ヒョ hyo
ひょ hyo
ビョ byo
びょ byo
ピョ pyo
ぴょ pyo
フ fu
ふ fu
ブ bu
ぶ bu
プ pu
ぷ pu
ファ fa
ふぁ fa
フィ fi
ふぃ fi
フェ fe
ふぇ fe
フォ fo
ふぉ fo
ヘ he
へ he
ベ be
べ be
ペ pe
ぺ pe
ホ ho
ほ ho
ボ bo
ぼ bo
ポ po
ぽ po
マ ma
ま ma
ミ mi
み mi
ミャ mya
みゃ mya
ミュ myu
みゅ myu
ミョ myo
みょ myo
ム mu
む mu
メ me
め me
モ mo
も mo
ヤ ya
や ya
ユ yu
ゆ yu
ヨ yo
よ yo
ラ ra
ら ra
リ ri
り ri
リャ rya
りゃ rya
リュ ryu
りゅ ryu
リョ ryo
りょ ryo
ル ru
る ru
レ re
れ re
ロ ro
ろ ro
ワ wa
わ wa
ヰ wi
ゐ wi
ヱ we
ゑ we
ヲ wo
を wo
ン n
ん n
ー -
( (
) )
 
~ ~
~ ~
っか kka
っき kki
っく kku
っけ kke
っこ kko
っぱ ppa
っぴ ppi
っぷ ppu
っぺ ppe
っぽ ppo
ッカ kka
ッキ kki
ック kku
ッケ kke
ッコ kko
ッパ ppa
ッピ ppi
ップ ppu
ッペ ppe
ッポ ppo
うぁ wa
うぃ wi
うぇ wu
うぉ wo
ぐぁ gwa
ぐぃ gwi
ぐぅ gwu
ぐぇ gwe
ぐぉ gwo
きぃ kyi
きぇ kye
ヵ ka
ヶ ke
じぃ zyi
じぇ je
しぃ syi
しぇ she
つぁ tsa
つぃ tsi
つぇ tse
つぉ tso
てゃ tha
てぃ thi
てゅ thu
てぇ the
てょ tho
とぁ twa
とぃ twi
とぅ twu
とぇ twe
とぉ two
ぢぃ dyi
ぢぇ dye
でゃ dha
でぃ dhi
でゅ dhu
でぇ dhe
でょ dho
どぁ dwa
どぃ dwi
どぅ dwu
どぇ dwe
どぉ dwo
にぃ nyi
にぇ nye
ひぃ hyi
ひぇ hye
ふぅ fwu
ふゃ fya
ふゅ fyu
ふょ fyo
びぃ byi
びぇ bye
ヴぁ va
ヴぃ vi
ヴ vu
ヴぇ ve
ヴぉ vo
ヴゃ vya
ヴゅ vyu
ヴょ vyo
ぴぃ pyi
ぴぇ pye
みぃ myi
みぇ mye
りぃ ryi
りぇ rye
った tta
っち tti
っつ ttsu
って tte
っと tto
ッタ tta
ッチ tti
ッツ ttsu
ッテ tte
ット tto
っだ dda
っぢ ddi
っづ ddu
っで dde
っど ddo
ッダ dda
ッヂ ddi
ッヅ ddu
ッデ dde
ッド ddo
っしゃ ssha
っしゅ sshu
っしょ ssho
ッシャ ssha
ッシュ sshu
ッショ ssho
ッジャ jja
ッジュ jju
ッジョ jjo
っじゃ jja
っじゅ jju
っじょ jjo
・ -
っさ ssa
っし ssi
っす ssu
っせ sse
っそ sso
っざ zza
っじ zzi
っず zzu
っぜ zze
っぞ zzo
ッサ ssa
ッシ ssi
ッス ssu
ッセ sse
ッソ sso
ッザ zza
ッジ zzi
ッズ zzu
ッゼ zze
ッゾ zzo
っちゃ ccha
っちゅ cchu
っちょ ccho
っぢゃ ddya
っぢゅ ddyu
っぢょ ddyo
ッチャ ccha
ッチュ cchu
ッチョ ccho
ッヂャ ddya
ッヂュ ddyu
ッヂョ ddyo
"
"
( (
) )
っは hha
っひ hhi
っふ hhu
っへ hhe
っほ hho
ッハ hha
ッヒ hhi
ッフ hhu
ッヘ hhe
ッホ hho

っきゃ kkya
っきゅ kkyu
っきょ kkyo
ッキャ kkya
ッキュ kkyu
ッキョ kkyo
ジェ je
っぴょ ppyo
ッピョ ppyo

コメントの確認

コメントのプレビュー

プレビュー中です。コメントはまだ投稿されていません。

処理中...
コメントを投稿できませんでした。エラー:
コメントを投稿しました。 さらにコメントを投稿する

入力された文字と数字は画像と一致していません。再度入力してください。

最後に、下の画像の中に見える文字と数字を入力してください。これはプログラムを使ってコメントを自動的に投稿するのを防ぐために行われています。

画像を読み取れない場合は 別の画像を表示してください。

処理中...

コメントを投稿

アカウント情報

(名前は必須です。メールアドレスは公開されません。)

2024年8 月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

TOP メニュー