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でも同じ。
>#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
をコピーして貼りつけてください。
他のセルを使用しないで、今のデータを直接変換したいということだと解釈します。
それあれば、マクロを使用します。
変換する列全体を選択するか、変換する列の先頭セルを選択し、次のマクロを実行すると、
その列全体、または、指定セルから下のデータが、半角カタカナに変換されます。
但し、英数記号も全て半角に変換されます。
【マクロ設定手順 】
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
お礼
早速ありがとう御座いました。まだVBEは使ったことがなく、書いてある意味が良く分かりません。「B1に=kana(A1)と入れ、B2以下に式を複写する」とはどういう意味でしょうか。初心者で申し訳ないです。