ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:o-shietene エクセル 全角から半角への変換
困り度:
  • 困っています
エクセルで作成した住所録(住所と電話番号)の数字が全角と半角がごちゃまぜになってしまっているので半角に全て変換をしたいので教えてください。お願いいたします。
質問投稿日時:08/07/03 11:58
質問番号:4147928
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答20pt

回答者:mcsp  こんにちは。No.2様の方式をあえて採用してみますとこんな風でしょうか。
Excel2000〜2003でのやり方です。もしExcel2007をお持ちの方ですと以下の操作が
異なってしまいますのでその時はごめんなさい(VBAコード自体は有効だと思います)。
 VBAを記述するには Excel のメニューより
  ツール → マクロ → Visual Basic Editor
と選択します。そして「プロジェクト」ウインドウの Microsoft Excel Objects の所で
  右クリック → 挿入 → 標準モジュール
とします。コードのウインドウが開いたら下記のコードをコピペしてください。

'---------ここから-------------
Function ZenToHan(strStr As String) As String

 ZenToHan = StrConv(strStr, vbNarrow)

End Function

Sub test()

 Dim strWk As String
 Dim rgWk As Range
 Dim rgArea As Range

 Set rgArea = Range("B5:C8") 'セル範囲を指定。左記の例はセルB5からC8の範囲
                     'という意味です。B列に住所、C列に電話番号のイメージ

 For Each rgWk In rgArea
  strWk = rgWk.Value
  rgWk.Value = ZenToHan(strWk)
 Next

 Set rgArea = Nothing

End Sub
'----------ここまで------------

 この後一度ファイルを保存しておいてください。そしてExcelのメニューで
  ツール → マクロ → マクロ
として、マクロ名:test を選んで実行します。
結果がおかしければファイルを保存せずに終了して、先ほど保存したファイルを読み込み
なおしてください。

ちょっと煩雑かもしれませんが、VBAでやるならという参考まで...
種類:回答
どんな人:一般人
自信:参考意見
回答日時:08/07/03 13:21
回答番号:No.8
この回答へのお礼すごいです!
ご親切にありがとうございました。
また、何かありましたらよろしくお願いいたします。

回答

 

回答者:coroleone OpenOfficeのやりかたですが
・Ctrlキーを押しながら半角にしたいセルを選ぶ
・書式→文字種の変換→半角をクリック
これで全て半角になります。
エクセルで試してないのでできなかったらすいません。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/07/03 13:18
回答番号:No.7
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

良回答10pt

回答者:D-JM 数値だけを全角⇒半角ということでしたら、

cntl-A で全体を選択してから、ctrl-H(置換)で、置換元を
「0」、置換後を「0」で置換実行。

それを10回(0〜9)繰り返せば完成です。
(やってみたら、案外てっとりばやいかと)
種類:回答
どんな人:専門家
自信:自信あり
回答日時:08/07/03 13:07
回答番号:No.6
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:imogasi ASC関数ではどうかな。カタカナも半角になるが、住所なら差し支えないだろう。
全角に統一はJIS関数。住所なら、全角に統一がよいのでは。
数字だけとなると関数では細工が要るし、VBAなども使う。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/07/03 12:55
回答番号:No.5
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:toom2005 一番簡単で早い方法をアドバイス
名前の入っている列を選択しCTRL+Hで検索と置換です。

変更前を 全角スペース
変換後を 半角スペース

これですべて半角になります。
逆をすれば全角です。

式なども作るのは大変なので、
ただし、この作業は定期的に行わなくてはいけないので対策は関数をつくるか、姓名を分けて入力し、違うフィールドであわせるというのがいい方法かとおもいます。
合わせるのは=E13& " "&F13
種類:アドバイス
どんな人:専門家
自信:自信あり
回答日時:08/07/03 12:22
回答番号:No.4
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:mu2011 カナ、英文字も変換されますが次の方法で如何でしょうか。
仮に表は見出し行ありでA列の住所を空き列のE列、B列の電話番号をF列に変換します。
(1)E2に=ASC(A2)、F2に=ASC(B2)を入力、E2:F2を選択して下方向にコピー
(2)変換された範囲をコピー→A2を選択→形式を選択して貼り付け→値にチェック→OK
(3)E,F列を削除
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/07/03 12:17
回答番号:No.3
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:noname#67980 VBAを使うのであれば
StrConv("012345", vbWide)
とやると"012345"となり
StrConv("012345", vbNarrow )
とすると"012345"と出来ます。
種類:回答
どんな人:経験者
自信:参考意見
回答日時:08/07/03 12:08
回答番号:No.2
この回答への補足VBAとはどういったことなのでしょうか?
初心者なので詳しく教えて頂ければと思います。よろしくお願い致します。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:Chiquilin カタカナは全角のままでとなると 作業列を使って処理することになり
ます。A1セルにデータがあるとして

■B1セル
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
A1,"1",1),"2",2),"3",3),"4",4),"5",5)

■C1セル
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
B1,"6",6),"7",7),"8",8),"9",9),"0",0)

それかユーザー定義関数を作るかですね。
種類:回答
どんな人:一般人
自信:参考意見
回答日時:08/07/03 12:01
回答番号:No.1
この回答へのお礼この回答にお礼をつける(質問者のみ)
最新から表示回答順に表示良回答のみ表示