• ベストアンサー

エクセル 「AA123」と打ったら「AA-123」

エクセル 「AA123」と打ったら「AA-123」と表示させるには? ユーザー定義で「@@-@@@」にすると、とんでもないことになるのですが、 自動でハイフンを入れて表示させたいのですが、やり方を教えてください。

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

  • ベストアンサー
  • okgoripon
  • ベストアンサー率44% (1141/2548)
回答No.2

@はセルに入力されたデータ全体ですから、@@-@@@と書けば当然aa123が5回表示されます。 ま、書いたとおりに表示されているだけですね。 多分、表示形式の設定では不可能なんじゃないかと思います。 A1セルに値が入っているときに、他のセルに =MID(A1,1,2)&IF(LEN(A1)<3,"","-"&MID(A1,3,3)) と入力してやれば、入力したセルの表示は、多分質問者さんの期待したとおりになると思いますが。

rvnaclnvlhmr
質問者

お礼

ありがとうございました。

その他の回答 (3)

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

文字列な場合にはセルの表示形式でそのようにすることはできないでしょう。 AA123のようにAAの付く文字がたくさんあるのでしたら「ホーム」タブの「検索と置換」で「置換」タブから検索する文字列の窓にAAと入力して。置換後の文字列にAA-と入力して「すべて置換」などをクリックすればよいでしょう。

rvnaclnvlhmr
質問者

お礼

ありがとうございました。

  • HAL007
  • ベストアンサー率29% (1751/5869)
回答No.3

@は&(文字列の結合)の変わりでは無かった。 ユーザー定義の使い方はMSのサポート(Excel)に書かれてます。 どうしても自動で表示させたいなら隣のセルに関数をいれて隣に表示させるしかありません。 例:AA123がA1セルに有る場合   =LEFT(A1,2)&"-"&RIGHT(A1,3)

参考URL:
http://support.microsoft.com/kb/883199/ja
rvnaclnvlhmr
質問者

お礼

ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

ユーザー定義の表示形式では、文字列の表示を細工する事は全くできません。 敢えてできるとすれば文字列を細工するのは諦めて、"AA-"0と設定して、123と記入する事ぐらいです。 #参考 シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range)  dim h as range  on error resume next  for each h in application.intersect(target, range("A:A"))  if h <> "" and instr(h.value, "-") = 0 then   h = left(h, 2) & "-" & mid(h, 3, 99)  end if  next end sub ファイルメニューから終了してエクセルに戻る A列にAA123を記入する。

rvnaclnvlhmr
質問者

お礼

ありがとうございました。