- ベストアンサー
Wordでカタカナのみを全角にする方法
Word2000です。全角、半角が混在している文で、英数文字だけを半角文字にしたいのですが、文字種の変換で、「半角」にチェックを入れるとカタカナまで半角になってしまいます。カタカナは全角のままで残したいのですが、良い方法はないものでしょうか。 次のどちらかの方法ができれば良いと思うのですが・・・ 1.カタカナのみを全角にする方法 2.英数文字のみを半角にする方法 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
カタカナの場合は、 [。-゜]{1,}を検索にして、そこで、全角に変換 (ただし、Webの都合で、全角に書かれていますが、本来は、中は半角です) 英数の場合は、 [0-z]{1,}を検索にして、そこで、半角にに変換 というようにすればよいです。 一応、マクロにしてみました。マクロが読めれば、その考え方は、お分かりになると思います。 Alt+F11 で、Visual Basic Editor 画面を出して、挿入、「標準モジュール」(ThisDocument でも可)に以下を貼り付けます。もし、片方だけ使いたい場合は、Sub 全角半角変換マクロ()の中の行を削除するか、行頭に「'(アポストロフィ)」をつけてください。後は、[ツール]-[マクロ]-[マクロ](または、Alt+F8)で、「全角半角変換マクロ」をクリックしてください。 '<標準モジュール> Sub 全角半角変換マクロ() Call Hankaku2Zenkaku Call Zenkaku2Hankaku End Sub Private Sub Hankaku2Zenkaku() '全角へ Dim t As Long, myMsg As String Dim ch1 As String, ch2 As String Selection.HomeKey Unit:=wdStory '文書の先頭に ch1 = Chr(161) '半角の「。」 ch2 = Chr(223) '半角の「゜」 On Error GoTo Errmsg: With Selection.Find .ClearFormatting .Text = "" .Replacement.Text = "" .MatchFuzzy = False '設定をクリア While .Execute(FindText:="[" & ch1 & "-" & ch2 & "]{1,}", _ Wrap:=wdFindContinue, MatchWildcards:=True) = True Selection.Range.CharacterWidth = wdWidthFullWidth 'ここで、文字を全角に変換している t = t + 1 If t = 0 Then GoTo Msg Wend Msg: Selection.HomeKey Unit:=wdStory '文書の先頭に If t > 0 Then myMsg = t & "語、変換しました。" Else myMsg = "変換するべき半角はありません" End If MsgBox myMsg, , Title:="半角から全角へ" End With Exit Sub Errmsg: MsgBox "エラー!: " & Err.Description, vbExclamation End Sub Private Sub Zenkaku2Hankaku() '半角へ Dim t As Long, myMsg As String Dim ch1 As String, ch2 As String Selection.HomeKey Unit:=wdStory '文書の先頭に ch1 = "0" ch2 = "z" On Error GoTo Errmsg: With Selection.Find .ClearFormatting .Text = "" .Replacement.Text = "" .MatchFuzzy = False '設定をクリア While .Execute(FindText:="[" & ch1 & "-" & ch2 & "]{1,}", _ Wrap:=wdFindContinue, MatchWildcards:=True) = True Selection.Range.CharacterWidth = wdWidthHalfWidth 'ここで、文字を半角に変換。 t = t + 1 If t = 0 Then GoTo Msg Wend Msg: Selection.HomeKey Unit:=wdStory '文書の先頭に If t > 0 Then myMsg = t & "語、変換しました。" Else myMsg = "変換するべき全角はありません" End If MsgBox myMsg, , Title:="全角から半角へ" End With Exit Sub Errmsg: MsgBox "エラー!: " & Err.Description, vbExclamation End Sub
その他の回答 (4)
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。KenKen_SP です。 #4 の Wendy02 さんとカブるかもしれませんが、VBA コードの書き方にはいろ いろな方法があるということで、、、一案です。 変換部に StrConv 関数を使用し、サブルーチン化してありますので、例えば、 全角カナのみひらがなにする(需要はないでしょうが)なんてカスタマイズが し易いと思います。 【手順】 1. [Alt]+[F11]キー押下で、Visual Basic Editor(以下 VBE)が起動 2. 左側ツリーで Normal.dot を選択 3. [挿入]-[標準モジュール]クリック 4. 開いたスペースに、下記コードをコピー&ペースト 5. VBE を閉じる 以上が完了したら、処理の対象となる文書を開き、[Alt]+[F8]キーを押して、 マクロを実行します。 '-------ここから-------------------------------------------------------- Sub 半角カナのみ全角化() Dim strPattern As String '句読点や括弧も含める場合、&HA6を&HA1に変更 strPattern = "[" & Chr(&HA6) & "-" & Chr(&HDF) & "]{1,}" StrConvertCase strPattern, vbWide End Sub Sub 英数のみ半角化() Dim strPattern As String strPattern = "[" & Chr(&H824F) & "-" & Chr(&H829A) & "]{1,}" StrConvertCase strPattern, vbNarrow End Sub '変換メイン Private Sub StrConvertCase( _ ByVal strPattern As String, ByVal lngCase As Long) Selection.Find.ClearFormatting With Selection.Find .Text = strPattern .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .MatchFuzzy = False .MatchWildcards = True End With Do While Selection.Find.Execute Selection.Text = StrConv(Selection.Text, lngCase) Selection.Collapse wdCollapseEnd Loop End Sub '-------ここまで--------------------------------------------------------
お礼
マクロを使ったプログラムまで組んでいただき、ありがとうございます。マクロの中身は良く分かりませんがご指示通りやってみたら・・・またまた、あら不思議!!! 本当にありがとうございました。
- DoragonFang
- ベストアンサー率41% (91/221)
当方はバージョンが2002なので、違うかも知れませんが、 検索で英数文字を検索してあれば可能かと思います。 具体的には、メニューバーの「編集」→「検索」で検索ダイヤログを出します。 検索文字列に「^#」で数字が、「^$」で英字が検索できます。 例えば「^#」と入力します(「特殊文字」というボタンをクリックして「任意の数字」を選んでもOK) このとき「オプション」を開いて、「あいまい検索」のチェックを外してください。 それと「見つかったすべての項目を強調表示する」にチェックを入れてください。 この状態で、「すべて検索」のボタンをクリックすると、数字が全て洗濯された状態になりますので、そのまま、「文字種の変換」で「半角」としてやれば、全て半角になります。
お礼
アドバイスありがとうございます。Word2000では、全選択でなく、カタカナのみの選択というのはできないようです。2002や2003はできるようですね。
当方2003ですが 参考になれば幸いです。 全選択ではなく、カタカナをすべて選択してから文字種の変換で出来ると思います。 英数文字も同様で大丈夫だと思います。 #1さんの回答は入力時の設定ですので、これから作成される時に便利に使えると思います。
お礼
アドバイスありがとうございます。Word2000では、全選択でなく、カタカナのみの選択というのはできないようです。2002や2003はできるようですね。
- higupapa
- ベストアンサー率39% (48/121)
お使いのIMEの設定で可能だと思います。 IMEの[設定]タブ中の[プロパティ]をクリック [オートコレクト]タブをクリック 全角/半角の設定でカタカナや英数字を「常に全角(半角)に変換」とする こんな感じでいかがでしょう?
お礼
早速のご連絡ありがとうございます。でも、ご指示の通り、IMEのプロパティから「カタカナを常に全角に変換」として、Wordの文の「全てを選択」して、「文字種の変換」で半角にチェックを入れてみると全てが半角に変わってしまいます。逆をやってみたのですが、それでも上手く行きません。設定の手順が違うのでしょうか。
お礼
マクロを使ったプログラムまで組んでいただき、ありがとうございます。マクロの中身は良く分かりませんがご指示通りやってみたら・・・あら不思議!!! 本当にありがとうございました。