こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelのセルの書式設定

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

投稿日時 - 2004-06-17 03:34:26

QNo.895067

困ってます

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

こんにちは。maruru01です。

セルの表示形式を、ユーザー定義で、
「[>=1000000000]G/標準;[>=100000000]000-000000;G/標準」
とします。

この方法では、100000000以上1000000000未満の場合に、
「000-000000」
としているので、小数点以下があってもこの範囲なら適用されます。
また、負の数は適用されません。
また、上位の桁が「0」の「9桁」には対応出来ません。
例えば、「012345678」は「12345678」という8桁の数値を入力したことになります。
(つまり、ハイフンは付きません。)

投稿日時 - 2004-06-17 09:22:52

お礼

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

投稿日時 - 2004-06-17 09:43:36

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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画面になる。
その画面のメニューの挿入-標準モジュールをクリックし
出てきた画面で一番大きな空白のフレーム内に、上記コードをコピペする。
そしてカーソルをコードのどこでも良いからクリックしてメニューの実行をクリック。

投稿日時 - 2004-06-17 07:13:19

お礼

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

投稿日時 - 2004-06-17 09:34:23

あなたにオススメの質問