プロが教えるわが家の防犯対策術!

エクセルの文字列の置換ですが、
ひらがな全角文字からカタカナ半角文字への置換。
また、その逆にカタカナ半角からひらがな全角への置換。
方法があれば教えてください。

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

これはユーザ関数でないとできないと思います。

以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい

シートでこのように式として使用します
=KtoH(A1)  半角カタカナ→(全角)ひらがな
=HtoK(A1)  (全角)ひらがな→半角カタカナ

Function HtoK(ByVal trg As Range) As String
HtoK = StrConv(trg.Value, vbKatakana)
HtoK = StrConv(HtoK, vbNarrow)
End Function

Function KtoH(ByVal trg As Range) As String
KtoH = StrConv(trg.Value, vbWide)
KtoH = StrConv(KtoH, vbHiragana)
End Function
    • good
    • 2
この回答へのお礼

ユーザ関数は存在は知っていたのですが、まったく使ったことは無かったです。

この場合は、ユーザー定義関数がもっとも便利な気がします。

ありがとうございました。

お礼日時:2007/02/28 08:34

前半は前の質問に答えてしまった。

そちらを見てください。
後半は、VBEの標準モジュールに
Function wd(a)
wd = StrConv(StrConv(a, vbKatakana), vbWide)
End Function
で同じ例で
ハンナリハンナリ
ハンナリハンナリ
オカユガクイタイオカユガクイタイ
カンガエルトワカラナイカンガエルトワカラナイ
    • good
    • 0
この回答へのお礼

ご丁寧にすみません。
私が質問した時点では、まだimogasi様の回答を見ていない段階でしたので、二重の質問をしてしまいました。

大変参考になりました。

ありがとうこざいました。

お礼日時:2007/02/28 08:44

こんばんは。



回答ではないのですが、数字やアルファベットと混じったものの中から、それだけを取り出して「ひらがな全角~カナ半角 」相互置換だとしたら、もっと難しいマクロか、ユーザー定義関数になるはずですね。

それは、どうなんでしょうか?
    • good
    • 0
この回答へのお礼

私が知らない方法で、もっと簡単な方法があるのではと思いましたが、マクロか、ユーザー定義関数が必要なのですね。

一般的には使わない機能だからでしょうね。

ご親切にありがとうございました。

お礼日時:2007/02/28 08:37

A1に文字が入っており、B1に変換結果を表示するとすると、


=PHONETIC(A1)
とB1に入力し、A1セルを選択して「書式」>「ふりがな」>「設定」を選択し、「ひらがな」を選択するとB1の文字が全角ひらがなに、「半角カタカナ」を選択すると半角カタカナになります。

ただし、PHONETIC()関数はもともとふりがなを取得する関数なので、文字列に漢字が含まれていると、かなに変換されてしまいます。その場合はこの方法は使えないので、マクロを使います。

マクロで変換する方法ですが、Alt+F11でVBAの画面を開き、「挿入」>「標準モジュール」を選択して、右の画面に以下のマクロをコピーして貼り付けてください。

Sub 全角ひらがなに変換()
 Dim r As Range
 For Each r In Selection
  r.Value = StrConv(r.Value, vbWide + vbHiragana)
 Next
End Sub

Sub 半角カタカナに変換()
 Dim r As Range
 For Each r In Selection
  r.Value = StrConv(r.Value, vbNarrow + vbKatakana)
 Next
End Sub

VBAの画面を閉じ、Alt+F8からマクロを実行すると、選択されたセルの文字列がカタカナ半角/ひらがな全角へそれぞれ変換されます。
    • good
    • 0
この回答へのお礼

すごい。完璧ですね。

私も、昨晩、布団の中で、「=PHONETIC関数を使えばいいかも!」と思いつき、すぐに「漢字 かな交じり だったら漢字もカナになっちゃうからダメだ」とゲンナリしてしまいました。

すばらしいVBAコードを教えていただいてありがとうございました。

お礼日時:2007/02/28 08:31

JIS関数や ASC関数は、カタカナ→カタカナやその逆はできますが、


かたかな→カタカナ は出来ません。

ctrl+Hキーで一文字ずつ「あ」→「ア」とかやっていかないとだめかな???
    • good
    • 0
この回答へのお礼

ctrl+Hキーというのは知りませんでした。

勉強になりました。

ありがとうございました。

お礼日時:2007/02/28 08:27

数件前に同じような質問がありますけど。



http://oshiete1.goo.ne.jp/qa2788626.html
    • good
    • 0
この回答へのお礼

はい。実は、その質問を見て、自分なりの疑問を改めて質問させていただきました。

ASC や JIS 関数は知っていたのですが、ひらがな全角文字からカタカナ半角文字への置換を簡単にできる方法は知らないなーと思い、質問しました。

http://oshiete1.goo.ne.jp/qa2788626.html
では、imogasi様がVBAもしくはユーザー関数を作るとお答えになっているので、分かりましたが、私が質問した時点では、その回答は寄せられていない段階でしたので、質問させていただきました。


もし、nobu555様が良い方法をご存知でしたら、ご教示ください。
よろしくお願いします。

お礼日時:2007/02/28 08:27

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「Exel」で、指定した列が常に「半角カタカナ」で入力されるようにしたいのですが

「Exel2000」を使っているのですが、セル(又は列)ごとに
入力設定が常に「半角カタカナ」になるよう、指定することは出来るのでしょうか?

「セルの書式設定」の「表示形式」では、数値や日付などの分類はあっても
文字入力の指定が出来るような項目はありませんよね?
他の列は「全角ひらがな」で入力していても、その列に来ると自動的に
半角カタカナで入力されるようにしたいのですが…。

Aベストアンサー

こんにちは

 以下の手順でいかがでしょうか?

1.セルまたは列を選択
2.メニュー[データ]-[入力規則]
3.[日本語入力]タブで[半角カタカナ]を選択
4.Enter

参考URL:http://www2.odn.ne.jp/excel/

QExcel。英数字カタカナ混ぜこぜのセルで、カタカナのみ全角にする方法は?

とっても基本的なことで困ってます。
Excelの1つのセルの中に、英数字カタカナがごちゃ混ぜのデータが入っています。英数字は全角の場合もあれば半角の場合もありです。片仮名もしかり。
そのデータを、英数字のみ半角にし、カタカナは全角に修正したいんです。
間違ってASC関数を使ったら、カタカナまで半角になっちゃった・・・・。
本日午後一のミーティングにそろえなきゃいけない資料なんです!
誰かーーー!
助けてーーーー!!

Aベストアンサー

あー大変。
それでは。まず、お使いになっているPCにはWordが入っていますか?
Wordが入っていると前提して、ご説明します。
まず、ASC関数を使って、英数字カタカタを半角にしてしまいます。その後
カタカナを全角にしたいセルをすべて範囲指定をします。そして、コピー。そして、
ワードに貼り付けてください。(そのとき1行あけて2行目に貼り付けてください。)
そして、1行目にカーソルを置いて「ツール」→「オプション」→[文章校正]タブ
右下の「詳細設定」ボタンをクリック。その後、「カタカナ設定」を「全角に統一」を選んで、「OK」ボタンをクリック。そうすると、オプション(ダイアログボックス)に戻りますので、「再チェック」または「チェック実行」ボタンを押します。(バージョンによって呼び方が違います。左下のボタンです)
そうすると、半角カタカナの部分に、波線がつきます。そして、1行目にカーソルを置いて
再度「ツール」→「文章校正」をクリックし、「修正」ボタンで直して行きます。そして、修正が終わったら、また、範囲指定をして、コピーをして、Excelに貼り付けてください。
関数だとちょっときびしいかも?この後で考えてみます。とりあえず、試してください。あとは、マクロのわかる方にお任せします。

あー大変。
それでは。まず、お使いになっているPCにはWordが入っていますか?
Wordが入っていると前提して、ご説明します。
まず、ASC関数を使って、英数字カタカタを半角にしてしまいます。その後
カタカナを全角にしたいセルをすべて範囲指定をします。そして、コピー。そして、
ワードに貼り付けてください。(そのとき1行あけて2行目に貼り付けてください。)
そして、1行目にカーソルを置いて「ツール」→「オプション」→[文章校正]タブ
右下の「詳細設定」ボタンをクリック。その後、「カタカナ設定...続きを読む

Q名簿の漢字名を関数で半角カナ文字にすることは可能でしょうか?

質問タイトルとおりですが。。。。

エクセルで名簿の名前に、半角カナ文字をふりたいのですが
データが1万件以上あるので、非常に手間がかかります。

もし、関数で変換できる方法がありましたら、ぜひご教授お願いします。

Aベストアンサー

Excel2002の場合でお答えします。

そのものズバリ、「phonetic」という関数があります。
この関数は全角なら全角でフリガナを表示しますので、
半角のフリガナにするには「ASC」という関数と合体
(入れ子構造)します。
使い方としては、例えばA列に名前が入っていて、
B列にふりがなを表示させたい場合、
B1に「=ASC(PHONETIC(A1))」と入力します。

ただし、この関数は、「入力したときの変換前の読み」
を表示しますので、例えば「六本木」と書いてあっても・・・

「ろっぽんぎ」と入力→変換→「六本木」と確定
した場合は「ロッポンギ」と表示されますが、

「ろく」と入力→変換→「六」で確定
「もと」と入力→変換→「本」で確定
「き」と入力→変換→「木」で確定
した場合には、「ロクモトキ」と表示されます。

また、他のデータ(テキストやCSVなど)からインポート
したものは、ふりがな情報が入っていないことがあります。
その場合は、もとの漢字が表示されてしまいます。

こういった状態のデータが含まれる場合、50音順の並び替えがうまく出来ない、などのトラブルが発生するもとになりますので、ふりがな情報を編集してやる必要があります。

※ご存知かも知れませんが、ふりがな編集の方法↓
編集したいセルを選択した状態で、メニューバーの
「書式」→「ふりがな」→「編集」で編集できます。
ショートカットキーは、Alt+Shift+↑です。

Excel2002の場合でお答えします。

そのものズバリ、「phonetic」という関数があります。
この関数は全角なら全角でフリガナを表示しますので、
半角のフリガナにするには「ASC」という関数と合体
(入れ子構造)します。
使い方としては、例えばA列に名前が入っていて、
B列にふりがなを表示させたい場合、
B1に「=ASC(PHONETIC(A1))」と入力します。

ただし、この関数は、「入力したときの変換前の読み」
を表示しますので、例えば「六本木」と書いてあっても・・・

「ろっぽん...続きを読む

Qエクセルで全角ひらがなを半角カタカナにするには?

エクセルで全角ひらがなの「あいうえお」を半角カタカナの「アイウエオ」に変換するには,数式をどうすればよいですか?

Aベストアンサー

=ASC(PHONETIC(A1))
ではだめでしょうか^^

Qエクセルでひらがな・漢字はそのままでカタカナを全角・英数字を半角にする方法

エクセル2000を使っています。

会社で住所録作成を引き継ぎましたが、
一つのセルにひらがな、漢字、カタカナ、英数字
が半角・全角ごちゃ混ぜで入っているので
管理がしづらくて困っています。
例えば、

あいうアジアNET株式会社
株式会社ABC123

などなど・・・・

ひらがな・漢字はそのままで、
カタカナを全角、英数字を半角にする方法は
ありませんか?
最初にASC関数を使ってみたらカタカナも半角になり、
Phonetic関数を使うと、
カタカナだけ全角になりましたが、
ひらがなまでカタカナになり・・・
JIS関数も試しましたが今度は英数字まで全角になり、
どうしたものかと困っております。

よろしくお願いします。

Aベストアンサー

No.2です。遅くなりました。修正コード、、というより別物ですがアップします。

実は、以前に類似した質問に回答したことがあります。(参考URL)
今回はBLUEPIXYのコードも参考にさせてもらい、その時のコードに手を加えました。
関数myStrFmtはワークシートでも使えますし、他のプロシージャーでも使えます。

どうでしょうか?

========== 次行からコード ==================================

'***************************************************************
' カタカナは全角化、英数字および記号を半角化するユーザー定義関数
' 引数:文字列 変換対象となる文字列を指定します
' 引数:数字  数字半角化オプション(省略可) 規定値:True
' 引数:記号  記号半角化オプション(省略可) 規定値:False
'***************************************************************
Function myStrFmt(文字列 As String, Optional 数字 As Boolean = True, Optional 記号 As Boolean = False)

  Dim ReplaceList As String
  Dim TargetStr As String
  Dim MAK As String, NUM As String, ALB As String
  Dim i As Long

  '半角化の対象とする文字を全角で定義
  MAK = "!#$%&'()*+-./:;<=>?@[¥]^_{|}。、,,"
  NUM = "01234567890"
  ALB = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  '置換リスト作成
  ReplaceList = NUM & ALB & StrConv(ALB, vbLowerCase)
  If 数字 Then ReplaceList = ReplaceList & NUM
  If 記号 Then ReplaceList = ReplaceList & MAK

  '全角化
  文字列 = StrConv(文字列, vbWide)
  '置換
  For i = 1 To Len(ReplaceList)
    TargetStr = Mid(ReplaceList, i, 1)
    文字列 = Replace(文字列, TargetStr, StrConv(TargetStr, vbNarrow))
  Next i
  myStrFmt = 文字列

End Function

'マクロで関数を使用するサンプル(セルを選択した状態で実行)
Sub サンプル()

  On Error Resume Next
  Dim rngCell As Range
  Application.ScreenUpdating = False
  For Each rngCell In Selection
    If rngCell.Value <> "" Then
      rngCell.Value = myStrFmt(rngCell.Value, True, False)
    End If
  Next rngCell
  Application.ScreenUpdating = True

End Sub

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=1100627

No.2です。遅くなりました。修正コード、、というより別物ですがアップします。

実は、以前に類似した質問に回答したことがあります。(参考URL)
今回はBLUEPIXYのコードも参考にさせてもらい、その時のコードに手を加えました。
関数myStrFmtはワークシートでも使えますし、他のプロシージャーでも使えます。

どうでしょうか?

========== 次行からコード ==================================

'***************************************************************
' カタカナは全角化、英数字お...続きを読む

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Qエクセルでひらがな入力した列を半角カタカナに一括変換するには?

エクセルに約500件もひらがな入力した列を、半角カタカナに一括変換するにはどうすればいいのでしょう?全角英数字を半角英数字に変換は出きるようですが、こんなこと出きるのでしょうか?

Aベストアンサー

VBE画面の標準モジュールに下記を貼りつける。
Function kana(a)
kana = StrConv(a, 24)
End Function
そしてワークシートにおいて、A列に全角ひらがな(だけでなくて良い)の語句があるとして、
B1に=kana(A1)と入れ、B2以下に式を複写する。
あいう
えをか
こんにちは
朝日が昇る

アイウ
エヲカ
コンニチハ
朝日ガ昇ル
になりました。(OKWEBで強制変換されて全角カナになりますが本当は半角カナになります。)
StrConv(a, 24)の24は、実は8+16なんですが、他にもいろいろ変換の型が使えます。
Function kana(a)
kana = StrConv(a, vbNarrow + vbKatakana)
End Functionでも同じ。

Q半角カナを全角カナに変換したい

表題の通りです。
先輩から引き継いだエクセルのデータが、全角カナと半角カナとの両方を、使い分けなどではなく使用しているものだったので、半角カナを全部、全角カナに変換したいと考えています。
置換機能で50音全部を置換するのは大変ですので、一度に変換する良い方法があれば教えてください。
また、全角アルファベットを、普通の英字(半角アルファベット?)にも変換したいと思っています。

Aベストアンサー

=JIS(セル番地)
で全角に
=ASC(セル番地)
で半角になります。

Q入力情報の無いふりがなの自動取得

エクセル2000ですが、コピー&ペースト等で入力情報のない漢字かな交じりのセルにふりがなを付けたいのですが良い方法はないでしょうか。

過去の質問で下記のサイトもありましたが、VBA等はわかないので、アドインツールなどがあれば助かります。
ご存知のかた教えて頂ければ幸いです。

http://www.bcap.co.jp/hanafusa/VBHLP/excel08.htm

Aベストアンサー

VBAは難しいと思っておられるようですが、言及されているサイトが
難しいようにみえるが、簡単にも説明できます。
Sub test01()
For i = 1 To 100 '百行目までの場合
'---A列の漢字のフリ仮名をB列に出す場合
Cells(i, "B") = Application.GetPhonetic(Cells(i, "A"))
Next
End Sub
をツール-マクロ-VBEー挿入-標準モジュールの画面に貼り付け、F5キーを押してください。
A列  B列
情報ジョウホウ
時間ジカン
使用シヨウ
設定セッテイ
質問シツモン
A列はOKWEBの画面の単語をエクセルのセルに貼り付けました。
そして上記を実行した結果がB列です。
これで、質問者の例も、うまくいくと思いますがやってみてください。
これ以外では、B列に=PHONETIC(A1)と入れておいて、1行ずつ書式-ふりがな-編集ーENTER-ENTERでフリ仮名がセットされましたが。

Q【Excel】特定の文字を含むセルをカウントしない方法

エクセルで特定の文字列(仮に「key」とします)を"含む"場合の関数は、

=COUNTIF(A1..A20,"*key)

で処理できるのは分かっているのですが、

特定文字列(key)を"含まない"場合の処理方法が分かりません。
VBAなどを介さずに関数だけで処理する方法がありましたら、ご教示願います。

Aベストアンサー

=COUNTIF(A1:A20,"<>*key*")
でできませんか?


人気Q&Aランキング