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

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

A 回答 (5件)

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でも同じ。
    • good
    • 0
この回答へのお礼

早速ありがとう御座いました。まだVBEは使ったことがなく、書いてある意味が良く分かりません。「B1に=kana(A1)と入れ、B2以下に式を複写する」とはどういう意味でしょうか。初心者で申し訳ないです。

お礼日時:2003/10/10 23:58

#4です。


>元のひらがなの列を削除すると今作ったのがみんなエラーになります。これを回避するにはどうすればいいのでしょうか?
関数式=kana(A1)等で、表示された半角カタカナの列(仮にB列とします)をコピーして、自身の列に,編集-形式を選択して貼りつけ-値(v)にチェックを入れ-Okをクリックします。
すると=kana(A1)等の式は消えますが、値(半角カタカナ)はその列に残ります。するとA列(に当たる列)は削除しても、B列(に当たる列)はエラーは出ません。
    • good
    • 0
この回答へのお礼

ありがとうございました。何とかなりそうです。又何か有りましたら宜しくお願いします。

お礼日時:2003/10/11 23:46

>#2です。


B1に=kana(A1)と入れ、B2以下に式を複写する」とはどういう意味でしょうか。
A列にひらがなで入力されているとします。A列のデータをすべて打ち終わった後のことです。
B列に他の項目のデータがあるときは、列挿入をして
空白の列を1列作ります。
そしてA1(第1行目)からひらがなデータがあると仮定していますが、その右のB1に、関数式を入れる要領で、=kana(A1)
と入れます。そしてB1セルの関数式をB2以下最終行まで複写します。(右下に+ハンドルを出して下へ引っ張ると出来ます。)結果が上手く出るには、#2のVBAコードを標準モジュールと言うところに貼りつけてないとエラーになりますから、手順としては、#2のVBAコードを標準モジュールと言うところに貼りつけることを先にやってください。
>VBEは使ったことがなく
ワークシート画面でALTキーを押しながら「F11」キーを押します。VBE画面になります。
そこでALTキーを押しながら「I」(挿入と言う操作なるキー)を押し、更にALTキーを押しながら「M」(標準モジュール)を押すと標準モジュールを記述するウインドウが出ます。そこへ#2のコード
Function kana(a)
kana = StrConv(a, 24)
End Function
をコピーして貼りつけてください。
    • good
    • 0
この回答へのお礼

成功しました!!ありがとうございます。これは住所録なのですが、元のひらがなの列を削除すると今作ったのがみんなエラーになります。これを回避するにはどうすればいいのでしょうか?

お礼日時:2003/10/11 10:51

他のセルを使用しないで、今のデータを直接変換したいということだと解釈します。


それあれば、マクロを使用します。

変換する列全体を選択するか、変換する列の先頭セルを選択し、次のマクロを実行すると、
その列全体、または、指定セルから下のデータが、半角カタカナに変換されます。

但し、英数記号も全て半角に変換されます。

【マクロ設定手順 】
1.Alt + F11 で VBE(Visual Basic Editor)を開きます。
2.VBE のメニューから[挿入] -->[標準モジュール] を指定します。
3.モジュールウィンドウに下記コードをコピーして貼り付けます。
4.Alt + Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。
5.メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を
 「中」にして、[OK]します。
6.実行するときは、変換する列を選択し、Alt + F8 (メニューから[ツール]-->
 [マクロ]-->[マクロ])で「半角カタカナ変換」を指定し、[実行]ボタンを押します。

これで如何でしょうか。

Sub 半角カタカナ変換()
Dim Rng As Range
Dim R As Range
Set Rng = Range(ActiveCell.Address, _
  Cells(65536, ActiveCell.Column).End(xlUp))
For Each R In Rng
  R.Value = StrConv(R.Value, vbNarrow + vbKatakana)
Next R
Set Rng = Nothing
End Sub

この回答への補足

なんだか複雑そうなので今回遠慮しましたが、他のセルを利用しないで一度に変換出きるそうなので今度挑戦してみようと思っております。ありがとうございました。又宜しくお願いします。

補足日時:2003/10/11 23:46
    • good
    • 0
この回答へのお礼

早速ありがとうございました。マクロなど使ったことがなく心配しています。3人さんのどの方法で実行するか迷っています。明日、明後日はいそがしいのですが、時間を見つけいずれかの方法で実行したいと思います。

お礼日時:2003/10/11 00:06

セルの中身がひらがなだけで、それを半角カタカナに変換するのでしたら、「PHONETIC」関数を使います。


参考URLへどうぞ。

参考URL:http://homepage1.nifty.com/kenzo30/ex_kisotyu/ex …
    • good
    • 0
この回答へのお礼

早速回答ありがとう御座います。Hageoyadiさんの方法が私には一番やりやすいかと思います。ただ、まだ私はマクロを使ったことがないので、後のお二人の方法でやって見たい気がしております。3人さんの全て大変勉強になります。ありがとうございました。

お礼日時:2003/10/10 23:52

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