• 締切済み

Excelの書式設定(半角→全角変換)について

Excelの書式設定についての質問があります。 半角で入力された文字を、全角に変換させたいのですが、どうにもうまくいきません。 入力箇所は、電話番号の市外局番で、0で始まる桁数の決まっていない文字列です。 (全角もしくは半角の数字が入るという想定) 郵便番号のように桁数が決まっていれば、 「セルの書式設定」→「表示形式」でユーザー定義を選択し、 [DBNum3]0000 のように設定すれば大丈夫なのですが、いかんせん桁数が決まっていないのが壁になっています。 マクロを使えば楽ですが、お客様からの要望で、現状マクロを使っていないので、 紛れ込ませるのはいろいろ手間がかかります。 皆さまのお力をお借りいたしたく、この投稿となりました。 よろしくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

お客から受注しているぐらいだから、プロで、よくご存知だと思うが、私の経験では >半角で入力された文字を、全角に変換させたいのですが (1)もとのデータは1234という風に数字(セルの値が数値)なら[DBNum3]0  で1234のように全角で表示できます。 しかし (2)数字の真中にハイフンを入れると、セルの値は文字列になって[DBNum3]0の効力は無いはず。 あるいは先頭にハイフンをつけて半角数字と半角ハイフンで入力しても同じ エクセルの書式はVBAではNumberFormatと言うように、セルの値が数値で無いと効力が出ません。 元のセルのデータが文字列に適用できる表示形式はろくなものが無い。 もし半角で入力が1234567のようなら、ハイフンを入れるだけなら、表示形式の「その他」の「郵便番号」を使えば4桁目にハイフンが入る。 ユーザー定義で「###-####」でも同じになるようだ ーーー 2112345 とあった場合ユーザー定義で「[DBNum3]###-####」を設定すると「211-2345」になる。 数字で元データを0123456とは入れられない。しかし [DBNum3]0##-####  にすると、見た目は「012-3456」となった。 ーーー もともと電話番号数字だけから、区切りにーを入れるということはロジック的に可能なのでしょうか。多分修正して正すのは無理ではないのかな。0を補うこともロジック的には難しい。市外局番表でもなければ。 電話番号桁数が全国的にはバラバラであることも難しさを加える。 ーー 質問内容がはっきりしないが (1)全角もしくは半角の数字が入るという想定ーー>全角に統一 (2)-のもれているのはどうする? ソフトを行とするなら、質問に文章で、全角半角の問題意外も整理して書いて質問すべきでは。 関数で出来るか、どうかも定かでない。 VBAを使えないのが痛いが、使っても(参照テーブルなど無しの)ロジックを組めるか出来るかどうか。

  • FEX2053
  • ベストアンサー率37% (7992/21376)
回答No.4

=JIS() 関数を使うと言う手は? =JIS("012-345-6789") は 012-345-6789 になります。ただし、関数を使うので表示は別セルになりますけど。 半角英文字を全角英文字として、セル内で表示方法だけを変える(頭ゼロの数字は文字列扱い)コトは、出来なさそうです。

  • FEX2053
  • ベストアンサー率37% (7992/21376)
回答No.3

単純に [DBNum3]0 でいいんじゃないですか? 0000 とすると「桁数指定」になりますが 0 とすると「桁数関係なしに入力分全て」という意味になるので。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

JIS関数を使ってはどうでしょう。別のセルに表示させることになりますが。それをコピーして形式を選択して貼り付けで「値」にチェックをして貼り付けることで元のデータやJIS関数の入ったセルが消去されても使うことができます。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

よくわかりませんが 常に頭に0がつきたい と言うことでしょうか。 私ならこう書きます [DBNum3]"0"#

関連するQ&A

専門家に質問してみよう