• ベストアンサー
  • 困ってます

Wordでカタカナのみを全角にする方法

  • 質問No.1479314
  • 閲覧数4837
  • ありがとう数9
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 61% (131/213)

Word2000です。全角、半角が混在している文で、英数文字だけを半角文字にしたいのですが、文字種の変換で、「半角」にチェックを入れるとカタカナまで半角になってしまいます。カタカナは全角のままで残したいのですが、良い方法はないものでしょうか。
次のどちらかの方法ができれば良いと思うのですが・・・

1.カタカナのみを全角にする方法
2.英数文字のみを半角にする方法

よろしくお願いします。

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

  • 回答No.4
  • ベストアンサー

ベストアンサー率 57% (3570/6233)

カタカナの場合は、
[。-゜]{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
お礼コメント
take103

お礼率 61% (131/213)

マクロを使ったプログラムまで組んでいただき、ありがとうございます。マクロの中身は良く分かりませんがご指示通りやってみたら・・・あら不思議!!!
本当にありがとうございました。
投稿日時:2005/06/29 22:40

その他の回答 (全4件)

  • 回答No.5

ベストアンサー率 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

'-------ここまで--------------------------------------------------------
お礼コメント
take103

お礼率 61% (131/213)

マクロを使ったプログラムまで組んでいただき、ありがとうございます。マクロの中身は良く分かりませんがご指示通りやってみたら・・・またまた、あら不思議!!!
本当にありがとうございました。
投稿日時:2005/06/29 22:41
  • 回答No.3

ベストアンサー率 41% (91/221)

当方はバージョンが2002なので、違うかも知れませんが、
検索で英数文字を検索してあれば可能かと思います。

具体的には、メニューバーの「編集」→「検索」で検索ダイヤログを出します。
検索文字列に「^#」で数字が、「^$」で英字が検索できます。

例えば「^#」と入力します(「特殊文字」というボタンをクリックして「任意の数字」を選んでもOK)
このとき「オプション」を開いて、「あいまい検索」のチェックを外してください。
それと「見つかったすべての項目を強調表示する」にチェックを入れてください。
この状態で、「すべて検索」のボタンをクリックすると、数字が全て洗濯された状態になりますので、そのまま、「文字種の変換」で「半角」としてやれば、全て半角になります。
お礼コメント
take103

お礼率 61% (131/213)

アドバイスありがとうございます。Word2000では、全選択でなく、カタカナのみの選択というのはできないようです。2002や2003はできるようですね。
投稿日時:2005/06/29 22:06
  • 回答No.2

ベストアンサー率 50% (14/28)

当方2003ですが 参考になれば幸いです。

全選択ではなく、カタカナをすべて選択してから文字種の変換で出来ると思います。
英数文字も同様で大丈夫だと思います。

#1さんの回答は入力時の設定ですので、これから作成される時に便利に使えると思います。
お礼コメント
take103

お礼率 61% (131/213)

アドバイスありがとうございます。Word2000では、全選択でなく、カタカナのみの選択というのはできないようです。2002や2003はできるようですね。
投稿日時:2005/06/29 22:06
  • 回答No.1

ベストアンサー率 39% (48/121)

お使いのIMEの設定で可能だと思います。

IMEの[設定]タブ中の[プロパティ]をクリック

[オートコレクト]タブをクリック

全角/半角の設定でカタカナや英数字を「常に全角(半角)に変換」とする

こんな感じでいかがでしょう?
お礼コメント
take103

お礼率 61% (131/213)

早速のご連絡ありがとうございます。でも、ご指示の通り、IMEのプロパティから「カタカナを常に全角に変換」として、Wordの文の「全てを選択」して、「文字種の変換」で半角にチェックを入れてみると全てが半角に変わってしまいます。逆をやってみたのですが、それでも上手く行きません。設定の手順が違うのでしょうか。
投稿日時:2005/06/28 23:29
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ