No.5
- 回答日時:
No.4です!
たびたびごめんなさい。
前回のコードを少し訂正して、一気にD列に表示するようにしてみました。
B2セルの数式は前回同様
=ASC(PHONETIC(A2))
としてフィルハンドルでダブルクリックしておきます。
貼り付けるコードを
Sub test()
Dim i, j As Long
Dim str, buf As String
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To Len(Cells(i, 2))
str = Mid(Cells(i, 2), j, 1)
If str Like "[A-z]" Then
str = WorksheetFunction.VLookup(str, Range("F1:G26"), 2, False)
Else
str = str
End If
buf = buf & str
Next j
Cells(i, 4) = Replace(Replace(buf, "(カブ)", ""), "(ユウ)", "")
buf = ""
Next i
End Sub
尚、この画面からコピー&ペーストすると「カブ」と「ユウ」が全角になると思いますので、
コード内の「カブ」と「ユウ」は半角に訂正してマクロを実行してください。
そうしないと(カブ)と(ユウ)はそのまま表示されてしまうと思います。
これで、たぶん希望に近い形になると思います。
以上、何度も失礼しました。m(__)m
お礼が遅くなって申し訳ありませんでした。
せっかく画像まで付けて、オォーーっと感激したのですが、わたくしマクロを
作成したことがないもので…、お返事いただいた事を実行しようとすると、
それ以前の事からお勉強しなければという具合で、申し訳ないのですが…
あきらめました。ごめんなさい。
何度もありがとうございました。m(__)m
No.4
- 回答日時:
こんにちは!
横からお邪魔します。
No.1さんの補足を読ませていただいての投稿です。
一文字ずつ舐めるように検索していくしかないと思いますので、一例として。
↓の画像で説明します。
アルファベットの読み方は人それぞれだと思います。
たとえば「H」などの場合「エイチ」と読む人もいれば、
「エッチ」(←私かな?・・・なぁ~んちゃって!) と読む人もいると思います。
そこで一つの案ですが、アルファベットの読みを表にしておきます。
画像のF1~G26に対応する読みを入れておきます。
仮に G1セルは「えー」と入力し、F8キーを押します。これで半角カタカナとなりますので
Zまで同様な方法で入力。
そして、B2セルに
=ASC(PHONETIC(A2))
という数式を入れ、オートフィルで下へコピー。
その後、Sheet見出し上で右クリック → コードの表示 を選択し、
↓のコードをコピー&ペーストしてマクロを実行してみてください。
Sub test()
Dim i, j As Long
Dim str, buf As String
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To Len(Cells(i, 2))
str = Mid(Cells(i, 2), j, 1)
If str Like "[A-z]" Then
str = WorksheetFunction.VLookup(str, Range("F1:G26"), 2, False)
Else
str = str
End If
buf = buf & str
Next j
Cells(i, 4) = buf
buf = ""
Next i
End Sub
これでD列のような表示になりますので、
別列に
=SUBSTITUTE(SUBSTITUTE(D2,"(カブ)",""),"(ユウ)","")
としてオートフィルで下へコピーではどうでしょうか?
以上、長々と書いてしまいました。
失礼しました。m(__)m
No.3
- 回答日時:
1.substitute関数のネスト利用(3つぐらいまでが限度かな)
2.a.フリガナが別セルに人間が手入力したものか
b.エクセルのふりがな機能で振ったものか
書式ーふりがな
c.gETPHONETICメソッドなど
Function GP(A)
GP = Application.GetPhonetic(A)
End Function
はっきりしない。bなら半角カナ指定がある
3.これは簡易に振るという振り仮名の性格上そこまでの操作は用意されて無い。
プログラムでAや1を探して変更するほか無い。
いまは深く考えてないが、A1をエイワン、エイイチどちらにするかのような難しさがあるのでは。
114をイチイチヨンでなくヒャクジュウシと振るのもプログラム的に面倒に思う。
人間で振りなおすのが各日で早いはず。
お礼が遅くなって申し訳ありませんでした。
3番が参考になりました。これを読んだ時、人間の頭ってなんて賢くできてるんだろうと思いました。
大変、ありがとうございました。m(__)m
No.2ベストアンサー
- 回答日時:
1.置換の関数
=SUBSTITUTE(SUBSTITUTE(A1,"(株)",""),"(有)","")
2.全角→半角変換の関数
=ASK(A1)
3.置換の関数で出来ますが組み合わせが多いのでそのままの使用は出来ません。
ユーザー定義の関数(VBA)を作るしかないようです。
フリガナから全部やるとしたら
Funktion KANA(MOJI)
K1 = StrConv(Application.GetPhonetic(MOJI), vbKatakana + vbNarrow + vbUpperCase)
For I = 1 To Len(K1)
K2 = Mid(K1, I, 1)
K2 = Replase(K2, "(株)", "")
K2 = Replase(K2, "(有)", "")
K2 = Replase(K2, "A", "エー")
K2 = Replase(K2, "B", "ビー")
K2 = Replase(K2, "C", "シー")
・
(途中略)
・
K2 = Replase(K2, "X", "エックス")
K2 = Replase(K2, "Y", "ワイ")
K2 = Replase(K2, "Z", "ゼット")
KANA = KANA & K2
Next I
End Function
お礼が遅くなって申し訳ありませんでした。
1番と2番を参考にさせていただきました。ですが、
3番を読んだ時、なるほどと思ったと同時に手間がかかると思いましたので、
あきらめました。時間がなかったもので…
大変、ありがとうございました。m(__)m
No.1
- 回答日時:
1. =SUBSTITUTE(SUBSTITUTE(A1,"(株)",""),"(有)","")
2. (XL2002/2003で) 対象のセルを選択して 書式 - ふりがな - 設定 ●半角カタカナ
3. 対象のセルを選択して [Alt]+[Shift]+[↑]
ちなみにふりがなを取り出す関数は =PHONETIC(A1)
この回答への補足
【補足】
質問下手ですみません。
フリガナですが、フリガナの列を作って関数「=PHONETIC(A1)」をつかって取り出しています。
その取り出した内容のことでの質問となります。
(例)企業名の列に「(株)ABC社」と入力したものが、フリガナの列に「(株)ABCシャ」と表示されます。
こうなってほしいのですが…⇒エービーシーシャ(半角で)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) Excelの50音順ソートを全ての行列に適用するには? 4 2022/12/05 11:28
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Excel(エクセル) Excelの複数置換はSUBSTITUTEを重ねるしかない? 9 2022/05/08 11:25
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの2ページ目の作り方
-
エクセル:マクロ「Application...
-
エクセルのアポストロフィを一...
-
エクセルで勝手に「折り返して...
-
Excel 行の連続データを列に参...
-
メールソフト「サンダーバード...
-
EXCELのオートフィルの設定を変...
-
エクセルでの行数・列数を指定...
-
エクセルで隣接していない複数...
-
エクセルオートフィルで書式を...
-
エクセルのコピペでクリップボ...
-
Excelでコピーした行の挿入を繰...
-
エクセルで値だけコピーして背...
-
EXCELシートをPowerPointにきれ...
-
EXELで複数のとびとびのセルを...
-
フォームのテキストボックスの...
-
エクセルで、選択範囲の数値全...
-
Excel)軽いデーターのはずなの...
-
Excelのコピー・切り取り機能が...
-
エクセル 別シートへのコピー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルの2ページ目の作り方
-
エクセルのアポストロフィを一...
-
Excel 行の連続データを列に参...
-
エクセルで勝手に「折り返して...
-
Excelでコピーした行の挿入を繰...
-
EXCELのオートフィルの設定を変...
-
EXCELシートをPowerPointにきれ...
-
エクセルで、選択範囲の数値全...
-
Excel)軽いデーターのはずなの...
-
メールソフト「サンダーバード...
-
エクセルでの行数・列数を指定...
-
「選択範囲を解除してアクティ...
-
Excelに、ダブルクォーテーショ...
-
エクセル 別シートへのコピー...
-
エクセルオートフィルで書式を...
-
エクセルで値だけコピーして背...
-
EXELで複数のとびとびのセルを...
-
Excelで、横並べのデータを縦並...
-
エクセル・数値が変化したらカ...
おすすめ情報