• ベストアンサー

ふりがなをカタカナに変換出来ませんか?

作成してあったExcelを、あるソフトへエクスポートしたいのですが ソフトでは「フリガナ」を要求しており、作成してあったデータは「ふりがな」でした。 このふりがなをカタカナに変換させたいのですが、超〃簡単に手取り足取り状態でご教授下さいませ。 尚、Excelは1週間程度しか動かしてありません。このサイト中で下記を貼り付ければとか言われても何処に貼り付けたら良いか? Function KtoH(ByVal trg As Range) As String KtoH = StrConv(trg.Value, vbWide) KtoH = StrConv(KtoH, vbHiragana) End Function

質問者が選んだベストアンサー

  • ベストアンサー
  • romiromi
  • ベストアンサー率36% (9/25)
回答No.2

こんにちは。 数式で変換する方法を書きます。 例えば、A1セルに"あいうえお"とフリガナがあるとします。 別のセル(どこでも任意で)に"=PHONETIC(A1)"と入力すると "アイウエオ"となります。 PHONETIC関数でひらがな←→カタカナの文字種を変換しています。 すべて変換が終わったら、最後にコピー_形式を選択して貼り付け(値)で、インポート対象のセルに貼り付けてあげればOKです。 なお、最後のファンクションについては ツールバーのツール_マクロ_Visual Basic Editorで 作業することになりますので、あまりExcelが得意でないなら 少し、ハードルが高いかもしれません (コツがわかればとっても早いし便利ですが)。

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

A1セルに東京と入力。 A1セルで、書式ーフリガナー設定で 半角カタカナ 全角カタカナ ひらがな(全角)を選べるから、どちらかのカタカナを選ぶ。 半角カタカナを選んだとする。 B1セルで=PHONETIC(A1)関数で トウキョウ(OKWAVE画面では全角に変換されるが、結果は半角)と出る。 これをエクスポートに使えばよい。 先般の質問は全角ひらがなを手入力当で振ってしまった後に、半角カタカナに直したいというニーズでVBAのユーザー定義関数を回答した。 >Excelは1週間程度しか動かしてありません 初心者が思いつく、簡単そうに見える、したいことも、操作だけではできないこと、VBAでもできないことも沢山有るので、当然質問すれば(易しく)回答があり、理解できるものと思わないように。 それをしたいなら、VBAを経験し、その上を勉強せざるを得ないのです。 ユーザー定義関数の動かし方など、本屋のエクセルの本やWEB照会で 沢山載ってます。1冊の本も読まないようでは、判らないのは当たり前。習得には、本代や講習の金と時間(努力)が大変かかるものです。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.6

#05です。質問を読み直しましたが、ひらがなを全角カタカナに変換したいのですね。それであればユーザ定義関数は以下になります Function HtoK(ByVal trg As Range) As String HtoK = StrConv(trg.Value, vbKatakana) End Function もしひらがなを半角カタカナに変換するなら以下になります。 Function HtoK(ByVal trg As Range) As String HtoK = StrConv(trg.Value, vbKatakana) HtoK = StrConv(HtoK, vbNarrow) End Function

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.5

その回答を書いたときに一緒に >以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい と説明したつもりでしたが、説明通りにはいきませんでしたか? 具体的にどううまくいかなかったか補足いただければ、もう少し説明できますが…

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

一度その列をコピーしてワードに貼り付けてから 「書式」「文字種の変換」「カタカナ」で変換後にコピーして エクセルに貼り付けなおす方法もあります。 ユーザー定義関数で行う場合は >何処に貼り付けたら良いか? Alt+F11でVisual Basic Editorを起動 左上の一覧に「標準モジュール」がある場合は、その配下のmoduleに 上記のコードを貼り付けてください。 ない場合は「挿入」「標準モジュール」でmoduleを作成になります。 貼り付けたらVisual Basic Editorを閉じて =KtoH(ひらがなのセル) で変換できます。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

Excelの画面でAltキーを押しながらF11を押すと、VBA(マクロ)の入力画面が開きます。 左側のツリーからブック名を選択し、「挿入」>「標準モジュール」を選択すると、左側のツリーに「Module1」というのが新しくできます。 その状態で、右の白い画面にマクロをコピーして貼り付けてください。 貼り付けたあと、その画面は閉じてしまってかまいません。 その状態に、 A1に「フリガナ」が入っているとすると、 B1に =KtoH(A1) とすると「ふりがな」が表示されるので、B1のセルの右下の辺りにマウスを近づけるとマウスポインタが+みたいな形に変わるので、それをクリックして下にドラッグすると、下にコピーされます。 あるいは、いったん別のセルに取り出すのでなく直接「フリガナ」のセルを「ふりがな」に変換したいのであれば、下記URLのNo.3のマクロ(私の回答ですが)を使えば可能です。(質問文のKtoH()もこの質問の回答のようですね) http://okwave.jp/qa2788669.html

noname#176215
noname#176215
回答No.1

マクロを全くご存知ないなら 関数で処理して下さい。 ふりがな列が A列で項目行があるとして A列を列選択して[書式]→[ふりがな]→[設定] →[種類]が[全角カタカナ]になっていることを確認して[OK] ■B2セル =PHONETIC(A2) フィルハンドルをダブルクリック でどうですか?

関連するQ&A

  • Access フリガナ変換について

    お世話になります。 Access2010 以前Access2003で作成したmdbがあります。 そのmdbの情報入力フォームには、いくつかのテキストボックスがあり、 「案件名」テキストボックスに入力すると、その下の「案件名フリガナ」 テキストボックスに自動的にフリガナが入力されるようにしてます。 フリガナの自動入力については、「案件名」テキストボックスの更新後処理の イベントで、 **************************** Private Sub 案件名_AfterUpdate() If IsNull(Forms![情報入力]![案件名]) = False Or Len(Forms![情報入力]![案件名]) > 0 Then Forms![情報入力]![案件名フリガナ] = StrConv((usGetPhonetic(Forms![情報入力]![案件名])), vbNarrow) Else '案件名が入力されてなければ何もしない End If End Sub **************************** Function usGetPhonetic(moji As String) As String Dim ExlObj As Object Set ExlObj = CreateObject("Excel.Application") usGetPhonetic = ExlObj.GetPhonetic(moji) End Function **************************** としております。 Excelを呼び出してPhonetic関数でフリガナに変換し、全角を半角に 変換した上で「案件名フリガナ」に入れてます。 ここで質問ですが、「案件名」にあるキーワードを貼り付けると 「案件名フリガナ」に全然関係のないフリガナが入力される場合が あるようです(←実際に自分で確認した訳ではないですが、たまに 現象が発生するとのこと)。 例えば、 案件名が「あああ向け 2016年度サービス」だった場合、「あああ」 の箇所に「いいい」を貼り付けると、本来であればフリガナには 「イイイムケ 2016ネンドサービス」と表示されますが、「いいい」を貼り付けた にも関わらず「マママムケ 2016ネンドサービス」と表示されるらしく。 ※実際はカタカナは半角になります。 案件名の箇所にはちゃんと「いいい向け」と入力されているので、 間違って「ままま」を貼り付けた訳ではありません。 どういうことが考えられますでしょうか。 例えば以前にExcelのふりがなの編集で「いいい」のふりがなとして 「マママ」としたことがあったとして、その情報が記憶されていて それがAccess上で表示されてしまうとか。。と思って実際に 試してみましたが、そういう訳でもなさそうです。 気になるのが、同じキーワードを貼り付けたとしても必ず発生する訳 ではなく、たまーに発生するということです(年に数回程度)。 あと「全然関係のないフリガナが入力される場合がある」と書きましたが 確かに関係はないのですが、社内にいるユーザー名に変換?されて 貼りつくそうです。 ご教示の程、宜しくお願い致します。

  • vba カタカナのみ全角にするには?

    ひらがな・英字・数字・記号が組み合わさったランダムな文字を カタカナのみ全角にしたいです。 Sub test() Dim moji As String moji = "あああ123AAAアアア<>()" MsgBox StrConv(moji, vbWide) End Sub これだと全て全角になってしまいます。 moji に格納される文字列は規則はなくランダムです。 この状態でカタカナのみ全角にする方法はありますか?

  • excel ひらがな文を半角カタカナに変換したい 2

    以前にOKWaveにて質問した内容です。 http://okwave.jp/qa5273311.html ”excel2000で、ある列にひらがな入力された文があります。 違う列にそのひらがな入力された文を半角カタカナにして表記したいのですが、何か良い方法はありますか?? 関数やVBA、何でも良いので、教えてください!! ※すでに入力されているひらがな文は、CSVファイルから持ってきてます。” 頂いた、お答えで ”ユーザー定義関数を作成し利用するのがいいですね 標準モジュールへ記述してください Option Explicit Function KanConv(strText As String) As String strText = Application.GetPhonetic(strText) KanConv = StrConv(strText, vbNarrow) End Function ” との事でした。 今回の質問させていただくのは、上記で関数を作成したのですが すでに入力された文字が、全角100文字以内でないと変換されないのです。 100文字を超えると空欄になります。 文は、100文字を超えるものが出てきます。 どうか、助けてください。

  • 【VBA】半角カタカナのみを全角にするには?

    http://bekkoame.okwave.jp/qa8979427.html こちらのページを参考にしたのですが カタカナのみ全角にしたいのですが 平仮名がカタカナになってしまいます。 正規表現と言うのがよくわからないので コピペで使ってますが Sub Sample2() Dim myStr As String Dim Match As Object, Matches As Object Dim CW As String With CreateObject("VBScript.RegExp") .Pattern = "[\uFF61-\uFF9F]+" '---(1) .Global = True myStr = "あああイイイ" If Len(myStr) > 0 Then Set Matches = .Execute(myStr) 'マッチしたすべての文字列を置換 For Each Match In Matches myStr = Replace(myStr, Match.Value, _ StrConv(Match.Value, vbWide)) '---(2) Next Match CW = myStr End If End With End Sub だと「あああ」は平仮名のままなのですが myStr = "のののノノノ" にすると、ひらがなの「ののの」が全角カタカナになってしまいます。 Sub test() Call KanaJisF("あああイイイ") End Sub Function KanaJisF(ByVal sSrc As String) As String Dim sTempW As String Dim sTempN As String Dim i As Long ' ' 全角カナに相当する文字コードを総当たりでループ For i = -31852 To -31936 Step -1 sTempW = Chr(i) ' 全角カナ変数に格納 sTempN = StrConv(sTempW, vbNarrow) ' 半角カナに変換して変数に格納 ' ' 半角カナ各文字が、文字列に含まれている場合、全角カナに置換 If InStr(1, sSrc, sTempN) Then sSrc = Replace(sSrc, sTempN, sTempW) Next i ' ' 半角長音、文字列に含まれている場合、全角長音に置換 sTempN = Chr(176) If InStr(sSrc, sTempN) Then sSrc = Replace(sSrc, sTempN, "ー") KanaJisF = sSrc End Function こちらのコードは、「あああ」も全角カタカナになりました。 "のののノノノ"も同様です。 平仮名は平仮名のままにしたいのですが そのような方法はありますか?

  • エクセルで、半角カタカナの住所録を全てローマ字に変換したいと思います。

    エクセルで、半角カタカナの住所録を全てローマ字に変換したいと思います。 かなり大量に量があるので、一度に簡単に便利に出来たらよいと思い、こちらでも 似たケースを検索したところ、下記のユーザー定義登録が出てきました。 Public Const Roma_Boin = "AIUEO" Public Const Kata_S1 = "AアイウエオKカキクケコSサシスセソTタチツテトNナニヌネノ" Public Const Kata_S2 = "HハヒフヘホMマミムメモYヤイユエヨRラリルレロWワイウエヲ" Public Const Kata_S3 = "GガギグゲゴZザジズゼゾDダヂヅデドBバビブベボPパピプペポ" Public Function changeKatakana2Romaji(srcMoji As String)   Dim kataMoji As String 'カタカナ文字   Dim RomaMoji As String 'ローマ字   Dim L As Long '文字カウンタ   Dim elm As String '1文字   Dim Pot As Integer '変換テーブルでの位置   Dim wkBoin, wkSiin As String '母音と子音   Dim chgTBL As String '変換テーブル     chgTBL = Kata_S1 & Kata_S2 & Kata_S3   kataMoji = StrConv(srcMoji, vbKatakana + vbWide) '全角カタカナにして『゛゜』を処理   Application.Volatile   For L = 1 To Len(kataMoji) 'カタカナ全角文字の母音と子音を作る     elm = Mid(kataMoji, L, 1): Pot = InStr(chgTBL, elm)     If 0 < Pot And Pot <= 6 Then       wkBoin = Mid(Roma_Boin, Pot - 1, 1): wkSiin = "": elm = wkBoin & wkSiin     ElseIf Pot > 6 Then       wkBoin = Mid(chgTBL, Int((Pot - 1) / 6) * 6 + 1, 1)       wkSiin = Mid(Roma_Boin, (Pot - 1) Mod 6, 1): elm = wkBoin & wkSiin     Else       If elm = "ン" Then elm = "N" '『ン』は特別処理     End If     RomaMoji = RomaMoji & elm   Next   RomaMoji = KomojiOkikae(RomaMoji, "ャ", "YA") '小文字『ャ』の処理   RomaMoji = KomojiOkikae(RomaMoji, "ュ", "YU") '小文字『ュ』の処理   RomaMoji = KomojiOkikae(RomaMoji, "ョ", "YO") '小文字『ョ』の処理   For L = 2 To Len(RomaMoji) '小文字『ッ』の処理     If Mid(RomaMoji, L - 1, 1) = "ッ" Then       Mid(RomaMoji, L - 1, 1) = Mid(RomaMoji, L, 1)     End If   Next   changeKatakana2Romaji = StrConv(RomaMoji, vbNarrow) End Function 'カタカナ小文字の処理(ャュョ) Public Function KomojiOkikae(Moji As String, komoji As String, Okikae As String)   Dim kPot As Integer   If InStr(Moji, komoji) > 0 Then     Mid(Moji, InStr(Moji, komoji) - 1, 2) = Okikae   End If   KomojiOkikae = Moji End Function ですが、どうしてもうまく実行されません。「プロシージャの外では無効です」という メッセージが出ました。他の方法でも、構いません。 当方、VBA初心者でして、お手数ですが、「ツールバー→マクロ」というレベルから、 教えていただけると助かります。 どうぞ宜しくお願い致します。

  • エクセルvba カタカナは全角、それ以外は半角に

    セルにはカタカナ、数字、漢字、文字がすべて混在しています。 カタカナは全角に、カタカナ以外(数字や記号)は半角に統一しようかと思っています。 一度すべてを半角にし、カタカナだけ全角に戻そうかと考えました。 Sub test() Dim e As Range Dim f As Integer Dim rData As Variant, ansData As Variant Range("A1:A10").Select For Each e In Selection ansData = "" For f = 1 To Len(e.Value) rData = StrConv(e.Value, vbNarrow) If Mid(rData, f, 1) Like "[ア-ン]" Then ansData = ansData & StrConv(Mid(rData, f, 1), vbWide) Else ansData = ansData & Mid(rData, f, 1) End If Next f e.Value = ansData Next e End Sub しかしこれでは、 「ッ」「ァ」など小さい文字や、「ー(長音)」が半角から全角に戻りません。 また、「ズ」など濁音が「ス゛」と2文字になってしまいます。 これらの正しく変換されないものをすべて列挙し、Replaceなどを使って修正するしかないのでしょうか? 実は最初に、すべてを「全角→半角」にするようマクロ作成したのですが、半角にする文字をReplaceですべて列挙しるのは大変だと思い、「半角→全角」にしたらうまくいくかと思ったのですが、それでもうまくいきませんでした・・・ よろしくお願いします。

  • \(円)記号を置換したい

    Windowsのファイル名に使用禁止文字(\:/*?"<>|)を全角に置換しようと思い、下記のコードを書いてみたのですが、「\」だけが全角に置換されません。 どうしたら、「\」も全角に置換できるでしょうか? よろしくお願いいたします。 Private Function ReplaceZenkaku(ByVal fileName As String) As String     Dim ignoreString As Regex = New Regex("[\\:\/\*\?""<>\|]")     Return ignoreString.Replace(fileName, New MatchEvaluator(AddressOf ReplaceKigou)) End Function Private Function ReplaceKigou(ByVal M As Match) As String     Return Strings.StrConv(M.Value, VbStrConv.Wide) End Function

  • VBA(Excel2003)で文字列の切り出し

    下のプロシージャーで全角半角混じりの文字列を切り出し、別の文字列で結合しようと思いますがうまくいく場合といかない場合があります。 イミディエイト・ウィンドウ上とCell上で動作が違います。 Cell上でうまく表示させるにはどうしたらいいでしょうか? Sub Test() Dim myString(2) As String Dim i As Integer myString(0) = "airueo" myString(1) = "かきくけこ" myString(2) = "さシすせそ" For i = 0 To 2 Debug.Print MidMbcs(myString(i), 1, 5) & "...テスト" Cells(i + 1, 1).Value = MidMbcs(myString(i), 1, 5) & "...テスト" Next i End Sub Function LenMbcs(ByVal str As String) LenMbcs = LenB(StrConv(str, vbFromUnicode)) End Function Function MidMbcs(ByVal str As String, start, length) MidMbcs = StrConv(MidB(StrConv(str, vbFromUnicode), start, length), vbUnicode) End Function

  • 住所録のふり仮名について

    エクセルで住所録を作成しています。 B列に氏名、C列に PHONETIC 関数を使用してふり仮名を表示しています。 PHONETIC 関数のふり仮名は大文字のカタカナになりますので、 ASC 関数を使用してD列に小文字のふり仮名を表示し、C列は非表示にしています。 PHONETIC と ASC 関数を組み合わせて1列で小文字のふり仮名をつけることができないでしょうか。 ご指導願います

  • VBAでURLをブラウザで起動させたい

    現在、エクセルのVBAのフォーム上のコマンドボタンから、URLをブラウザで起動させたいと思っているのですが、うまくいきません。 インターネット上で以下のプログラムが紹介されていたので試したのですが hwnd の所でエラーとなってしまいます。 Option Explicit Private Declare Function ShellExecute Lib _ "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Private Sub cmdGO_Click() ShellExecute Me.hwnd, "Open", "http://www.goo.ne.jp/", _ vbNullString, App.Path, 1 End Sub また、エクセルのハイパーリンクを使って、あるセル上に事前に設定しておき、コマンドボタンをクリックした時にそのセルのハイパーリンクを起動させることにしました。しかしブラウザは起動するのですが、ブラウザを閉じるとエクセルの画面が最小化されています。(最大化しようとして右クリックしてもなにも出てきません)同じエクセルファイルをダブルクリックするとやっとエクセルが画面表示されます。 ブラウザを閉じた時に画面上にエクセル画面を表示させたいのですがどのようにすれば良いのでしょう。分かる方が見えましたら宜しくお願いします。 このプログラムは以下のように作成しました Private Sub CommandButton3_Click()   Worksheets("データ").Select Range("J18").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True Application.WindowState = xlNormal End Sub ソフトは EXCEL2000です

専門家に質問してみよう