• ベストアンサー

EXCEL セルの表示形式について

EXCELでセルに3文字のアルファベットと数字を入力した場合、その文字間にハイフン「-」を表示させたいと思います。 入力時に文字列として直接入力すればいいのでしょうが、入力簡略の為ハイフンを自動で表示できないものかと、お伺いいたしました。 数字だけならユーザー定義で、#”-”#”-”#で出来るのですが、文字が入ると入力した通りにしか表示されません。 何かいい方法をご存知ならご教授下さい。 例: 入力 → 49Q   セルの表示 → 4-9-Q 宜しくお願いいたします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! >入力簡略の為ハイフンを自動で表示できないものかと と >表示形式で処理したい! というコトを考慮すると、入力したセルそのものがそのようになって欲しい!というコトですね? VBAになってしまいますが一例です。 セル範囲が限定できませんのでA列すべてを対象としてみました。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻り、A列でデータ入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim k As Long, str As String '▼A列限定 If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count > 1 Then Exit Sub With Target If Len(.Value) = 3 Then If StrConv(.Value, vbNarrow) Like "*" & "[0-9]" & "*" Then If StrConv(.Value, vbNarrow) Like "*" & "[a-z A-Z]" & "*" Then str = Left(.Value, 1) & "-" & Mid(.Value, 2, 1) & "-" & Right(.Value, 1) .Value = str End If End If End If End With End Sub 'この行まで ※ 3文字でアルファベットと数字が存在するデータが入力された場合だけ反応します。 どちらか一方だけ(アルファベットのみや数字のみ)の場合は反応しません。m(_ _)m

その他の回答 (4)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.4です。 投稿後気づきました。 コード2行目 >Dim k As Long, str As String の >k As Long, は不要です。 >Dim str As String だけにしてください。 どうも失礼しました。m(_ _)m

doitbangbang
質問者

お礼

ご回答ありがとうございます。 直接セルで対応するものだと思っていましたが、そういう方法もあるんですね。 勉強不足です。 コードをご丁寧に書いて頂いて大変助かりました。 コピーで貼り付けたコードの入力列とRANGEの範囲を変更して、ようやく表示させる事に成功しました。 ただ、数字だけだと反応しないと書いてあったのでやっぱり両方は無理なのかな思いながら、それ以外にユーザー定義で #"-"#"-"# に変更したところ、数値のみでも表示する事ができました。 おかげでスッキリしました。 まあ、面倒くさがらずに文字列で直接入力していれば苦労はしなかったのですが…。 いい勉強になりました。 ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

>やはりMID関数なんでしょうかね…。 別の関数でもできますよ。 =REPLACE(REPLACE(A1,3,0,"-"),2,0,"-") または =REPLACE(REPLACE(A1,2,0,"-"),4,0,"-") 前のは、3文字目の前に"-"を追加後に、2文字目の前に"-"を追加 後のは、2文字目の前に"-"を追加後に、1文字ずれた4文字目の前に"-"を追加 どちらもREPLACE関数での置換文字数を0にすることで文字の追加をしています。

doitbangbang
質問者

お礼

ご回答ありがとうございます。 同じ作業でも色々な関数があるんですね。 勉強になります。 ありがとうございました。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.2

入力したセルを直接表示変更すると、ややこしいので、 A1セルに49Qを入力した場合、B1セルに以下の式を入れて、 =MID(A1,1,1)&"-"&MID(A1,2,1)&"-"&MID(A1,3,1) でいかがでしょう。

doitbangbang
質問者

お礼

ご回答ありがとうございます。 No.1の方のご回答もそうでしたが、やはりMID関数なんでしょうかね…。 ほかに手立てが無ければ、別セルで式を入れてやってみます。 ありがとうございました。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.1

A1に「49Q」 1.右に一列挿入 2.挿入した列に =MID(A1,1,1) & "-" & MID(A1,2,1) & "-" & MID(A1,3,1) 3.下方にオートフィル 4.挿入した列をコピー 5.その列に形式を選択して貼り付け → 値 6.A列を削除 これじゃダメか

doitbangbang
質問者

お礼

早速のご回答ありがとうございます。 そちらの方法も考えたのですが、もしかしたら書式設定のユーザー定義で表示させられる方法があるかもと思って質問させていただきました。 無ければ最終的にその方法かな…とも思います。 ありがとうございました。

関連するQ&A

  • Excelでセルの表示形式について

    セルに数字を入力するとその数字に『( )』(カッコ)が付き、『-』(マイナス)の数字では『( )』内に『▲』が付くように設定したいと思っています。さらにコンマ付きで。 例えば『12345』と入力すると『(12,345)』、『-12345』と入力すると『(▲12,345)』と表示されるようにしたいと思っています。 セルの書式設定のユーザー定義からいろいろ試みたのですがうまくできませんでした。 どのように設定したらよいのでしょうか? お願いします。

  • EXCELで表示形式について。。。

    EXCELで表示形式でユーザー定義を使用した時に、 その値で検索したいのですが、どうしたらよいのでしょうか? Aの列に表示形式をユーザー定義で"A-"##にしました。 セルには数字のみ入力しました。見えているのはA-20とかA-15とかです。 その値でVLOOKUPの関数で検索したいのですが、できますか? ユーザー定義ではA~Zを使用してます。 セルには10~55までの数字を入力して、表になってます。 シートをコピーして形式を選択して貼り付けしてもセルに入力した数字のみで、 ユーザー定義で表示している"A-"の部分はコピーできません。 もう一度、入力しなおしたくはないので、お願いします。

  • Excel 2003 セルの書式設定

    Excel 2003 セルの書式設定 Excel 2003を勉強中です。よろしくお願いします。 郵便番号を、簡略入力で、(1234567と入力し) 入力の後、セルの書式設定、その他から、ハイフンを自動入力してます。 123-4567 そのあと、〒をユーザー定義で設定すると、ハイフン(-)が消えてしまいます。 ハイフンが消えない設定方法がありまか。 WindowsXP HomeEdition 教えてください。よろしくお願いします。

  • 複数の表示形式を設定する方法

    お世話になります。 EXCEL2013で一つのセルに複数の表示形式を書式設定する方法はあるのでしょうか? たとえば数字を入力した場合、先頭の数字がゼロの時、ゼロも表示するには文字列で表示可能ですが、更にその文字間に空白を自動的に入れたいのです。 入力→ 123 → 表示 0123 → 0 1 2 3 文字間に空白を入れるのはユーザー定義でできますが、ユーザー定義を使うと文字列の書式は解除されてしまい、0 の表示が消えてしまいます。 本来、文字列として数字と空白を入力すればいいのですが、ずぼらなもんでなるべく最少入力で済ませたいと思い質問しました。 何か方法があればご教示ください。 宜しくお願いいたします。

  • エクセルのセル書式設定について

    エクセルのセル書式設定について教えてください。 セルA1に 111222333 と数字を入力しました。 ちょっと見にくいので111-222-333とするために書式設定のユーザー定義で ###-###-### としました。うまくいきましたが、  A1122233B だと - がはいりません。 セルA列には英数字が入ります。見やすくするため表示のみ「-」を 表示させたいです。入力はそのまま「-」なしで入力します。 どうかお願いします。

  • EXCELで

    エクセルの「書式設定」の「ユーザー定義」で下記の様に数字入力後表示される設定方法お願いします。 1 携帯電話番号をハイフンなしで入力すると自動的にハイフンが入る。 例: 09012345678 → 090-1234-5678 2 数字と数字の間隔が広くなる。 例:1234567 → 1 2 3 4 5 6 7

  • エクセルで設定したユーザー定義がうまく表示されません

    エクセルで、A列に入力されている9桁の数字の3文字目の後ろにハイフンを入れたくて、A列を選択し、ユーザー定義で 000-000000 と登録しましたが、うまく表示されません・・・ 確かにユーザー定義の「種類」には、登録されています。 しかし、(例えばA1の)セルを選択した後に一度F2キーを押してカーソルを表示させ、その状態でEnterを押すと、ハイフンが表示されます。 一つ一つF2→Enterを繰り返せば出来ないことはないのですが、データの数が多い為、一度に直せればうれしいのですが・・ この現象の原因はなんなのでしょうか? そしてどうすれば直せるのでしょうか? 教えてください。

  • エクセルでの( )の表示

     皆さん、いつもお世話になるばかりで恐縮です。エクセルでの「括弧」の表示方法について教えて下さい。  たとえば、A1セルに「被相続人」と文字列が入力されており、B1セルに「山田一郎」と入力されているときに、D5セルに「被相続人山田一郎」と表示させるには、「=A1&B1」という関数(?)式を入れると、自動的に「被相続人山田一郎」と表示されます。  この「被相続人山田一郎」を「(被相続人山田一郎)」と自動的に括弧でくくるにはどうしたらいいのでしょうか。このD5セルには、必ず、数字以外の文字列が入力され、その文字列の前後に自動的に括弧( )でくくりたいのです。  文字列の長さが決まっていれば、D5セルの前後のセル、D4とD6に「(」と「)」をあらかじめ入れておけばいいのかもしれませんが、括弧でくくる文字の長さが一定ではありませんので、それはできないと思います。  きっと、書式設定のユーザー定義で定義するのでしょうが、ちょっと分かりませんので、アドバイスをお願いいたします。

  • エクセルのセル表示について

    エクセルのセル表示の変更について教えてください。 送られてきたエクセルファイルの中に品番があるのですが、表示したい数字と異なってしまいます。 <例>   入力文字 → 11-11  表示    → 11月11日(2011/11/11)  11月11日と表示されてしまっているセルを、文字列の11-11に戻したい場合はどうしたら良いですか?  いい方法があれば、教えてください。  よろしくお願いします。

  • 「エクセル」で、ハイフンを数字として入力するには?

    「エクセル200」を使っています。 ハイフンを使った数字(例えば「1-3」)を入力すると、 自動的に「1月3日」となってしまい、困っています。 それまでは「セルの書式設定」の「表示形式」は 「標準」になっていたはずなのですが、 これもまた自動的に「日付」になっています。 「表示形式」を「文字列」にすると ハイフンはそのままに、「1-3」と入力出来るのですが、 なんとか「数字」としてハイフンを入力する方法は ないでしょうか? と、いうのも「エクセル」で作製したデータを、 「CSV(カンマ区切り)」形式で保存したいのです。 「エクセル」で文字列としてキチンとハイフンを 入力したつもりでも、 「CSV」にするとまた「日付」表示に 戻ってしまっているのです。 これは「CSV」に「文字列」を認識する機能が ないせいでしょうか? どなたかお教え願います。

専門家に質問してみよう