[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『データの入力規則で電話番号のハイフン(-)を自動入力』(お正月)
ご質問させていただきます。
データの入力規則で電話番号のハイフン(-)が自動で入るように設定したいと思っています。数字のみを入力すると、携帯番号であれば11桁(000-0000-0000)、固定電話であれば10桁(0000-00-0000)にするというものです。固定電話の形は特定の地元地域の番号であるため、これで固定して構いません。
以下のような関数をユーザー設定の数式に設定して実行していますが、入力不可となってしまいます。
どうか、お力添えのほどお願いいたします。
=IF(LEN(G18)=10,TEXT(G18,"0000-00-0000"),IF(LEN(G18)=11,TEXT(G18,"000-0000-0000"),""))
< 使用 Excel:Excel2016、使用 OS:Windows10 >
入力規則は自動入力ではなく、入力を制限するものです 条件付き書式で条件を3種類作って、「見た目だけ」ハイフンが挿入されたようにする方法が簡便かと思います 実際の値もいじるとなると、マクロのchangeイベントがよいかと
どちらが希望ですか? (稲葉) 2021/01/14(木) 07:56
表示形式の[その他]のところの、電話番号(東京)は、 [<=99999999]####-####;(00) ####-#### となってます これを参考にして、 [<=99999999]####-####;[<=999999999]0000-##-####;000-####-#### とかにすればいいのではないでしょうか (´・ω・`) 2021/01/14(木) 09:08
´・ω・`さん、ありがとうございます。
早速、試してみました。
しかし、入力したはずの先頭の0が実際には入力されていません。
これを入力したとおりにしたいのです。
今一度よろしくお願いいたします。
(お正月) 2021/01/14(木) 09:15
[<=99999999]0000-00-0000;000-0000-0000 でどうですか。 (tora) 2021/01/14(木) 09:43
(お正月) 2021/01/14(木) 10:09
>入力したはずの先頭の0が実際には入力されていません
ハイフンを入れないで入力したデータは数値データなので 実データに頭の0を残すことはできません。
数字だけ入力して実際のデータもハイフンや頭の0を入れることはおそらくマクロでしかできません。 一般機能の範囲でやるなら、
・見た目だけ希望通りにする ・別セルに表示する ・文字列でハイフンも含め入力する
などになります。 ただし、入力して後から見た目通りのデータに変換するということはできます。 (コナミ) 2021/01/14(木) 10:12
>私の希望としては、直接そのセルに番号のみを入力したら、ハイフンが自動でつくようにしたいのです。 であればマクロで対応になるかと思います。
シートモジュールにこんな感じ? 初期設定は、A1:A10が対象です。 Private Sub Worksheet_Change(ByVal Target As Range) Dim ans As String Dim rngHyphen As Range Set rngHyphen = Range("A1:A10") 'セルの書式設定を文字列にする
If Target.CountLarge > 1 Then Exit Sub Select Case Len(Target.Value) Case 11: ans = Format$(Target.Value, "000-0000-0000") Case 10: ans = Format$(Target.Value, "0000-00-0000") End Select If ans <> "" Then Application.EnableEvents = False Target.Value = ans Application.EnableEvents = True End If End Sub
(稲葉) 2021/01/14(木) 11:26
Dim rngHyphen As Range Set rngHyphen = Range("A1:A10") 'セルの書式設定を文字列にする 書式設定は変わっているんですかね?
試しにこの次列に以下を入れたらうまく動いたように見えます
rngHyphen.NumberFormatLocal = "@"
見当違いの事を言っていたらすみません・・・
(qwerty) 2021/01/14(木) 11:58
>Range("A1:A10") ここ変えてください (稲葉) 2021/01/14(木) 15:11
>Select Case Len(Target.Value) > Case 11: ans = Format$(Target.Value, "000-0000-0000") > Case 10: ans = Format$(Target.Value, "0000-00-0000") >End Select
↑の前に、↓を追加でどうでしょうか? If Intersect(Target, rngHyphen) Is Nothing Then Exit Sub
(虎) 2021/01/14(木) 15:39
Oh・・・ 抜けてて申し訳ございませんでした。
虎さんありがとうございました。 (稲葉) 2021/01/14(木) 17:51
RangeクラスのNumberFormatLocalプロパティを設定できません。
(お正月) 2021/01/20(水) 22:44
1/14には出来たんでしょ? シートの保護をかけたりしませんでしたか? (とおりすがり) 2021/01/21(木) 07:13
http://officetanaka.net/excel/vba/sheet/sheet07.htm
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_130_04.html
(もこな2) 2021/01/21(木) 07:58
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.