• ベストアンサー

Excelのセルの書式設定

エクセルに関する質問です。お世話になります。 悩んでいるのが、9桁の数字を入力したとき途中にハイフンを入れたいのですが、これはユーザ定義(000-000000)という形でできました。ただ、9桁の数字以外を入力したときにはハイフンを入れないようにしたいのですが、どうにも解決できず質問させていただきました。ユーザ定義のみで可能なのか、それともマクロ等を使うのかも検討できない未熟者ですが、アドバイスいただけたら幸いです。よろしくお願いいたします。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 セルの表示形式を、ユーザー定義で、 「[>=1000000000]G/標準;[>=100000000]000-000000;G/標準」 とします。 この方法では、100000000以上1000000000未満の場合に、 「000-000000」 としているので、小数点以下があってもこの範囲なら適用されます。 また、負の数は適用されません。 また、上位の桁が「0」の「9桁」には対応出来ません。 例えば、「012345678」は「12345678」という8桁の数値を入力したことになります。 (つまり、ハイフンは付きません。)

3b-takoyaki
質問者

お礼

maruru01様も朝からのご回答ありがとうございます。今さっきまでマクロの操作で苦戦していたところ、こちらを覗いたらユーザ定義でできる方法が!!私も夕べ夜勤中にやっとたどりついたのが・・・[<=999999999]000-000000;[>10000000000]G/標準・・・こんな感じでした。。。これだとダメなんですよね。maruru01様の方法ですべて解決いたしました。どうもありがとうございました。またよろしくお願いします!

その他の回答 (1)

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

もし操作による書式設定で良い回答が出ない場合は 下記VBAを実行して下さい。 (1)ただデータ入力以前に実行しては効果なく、データを入力し終わってから実行してください。データを変えたらもう一度実行すること。 (2)書式を設定したいセル範囲を指定してから実行すること。 (コード) Sub test02() Dim cl As Range For Each cl In Selection If Len(cl) < 9 Then cl.NumberFormat = "00000000" Else cl.NumberFormat = "000-000000" End If Next End Sub 書式を設定したいセル範囲を範囲指定する。 ツール-マクロ-VBEでVBE画面になる。 その画面のメニューの挿入-標準モジュールをクリックし 出てきた画面で一番大きな空白のフレーム内に、上記コードをコピペする。 そしてカーソルをコードのどこでも良いからクリックしてメニューの実行をクリック。

3b-takoyaki
質問者

お礼

早朝よりのご回答ありがとうございます。マクロ操作は初めてですが、さっそく試したいと思います。

関連するQ&A

専門家に質問してみよう