EXCELのVBAで質問です。
abc123-4567(def)
のように、電話番号の前後に文字が含まれているものから、
電話番号を検出し、
abc【固定電話】123-4567(def)
のように。文字列を追加したいです。
また、携帯電話の場合はの除外とします。
abc123-4567(def) → abc【固定電話】123-4567(def)
ちなみに固定電話の番号は「xxx-yyyy」と桁数は固定です。
このような処理をするにあたって、どのような方法を取ればよいでしょうか。
具体例挙げていただけると幸いです。
No.1ベストアンサー
- 回答日時:
こんばんは!
元データはA列の2行目以降にあり、B列に表示するとします。
尚、電話番号が「○○○-××××」以外の場合はA列データをそのままB列に表示するようにしてみました。
Sub Sample1()
Dim i As Long, k As Long, str As String, buf As String
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
For k = 1 To Len(Cells(i, "A"))
str = Mid(Cells(i, "A"), k, 1)
If str Like "[0-9,-]" Then
buf = buf & str
If Not str Like "[0-9,-]" Then Exit For
End If
Next k
If Len(buf) = 8 Then
If IsNumeric(Left(buf, 3)) And IsNumeric(Right(buf, 4)) Then
Cells(i, "B") = Replace(Cells(i, "A"), buf, "【固定電話】" & buf)
End If
Else
Cells(i, "B") = Cells(i, "A")
End If
buf = ""
Next i
End Sub
こんな感じではどうでしょうか?m(_ _)m
ありがとうございます。
bufから電話番号の判定条件とB列への表示の部分で不完全なところがありました
(「-」の位置違いでも固定電話と判断したり、B列が空欄だったり)
が、そこだけなら自分でいじれそうです。
処理の流れ、とても参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/03/09 14:24
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/08 09:05
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 10:07
- 楽天市場 楽天市場の注文に使う電話番号は、、、 1 2022/06/28 22:29
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- UNIX・Linux bashでシングルクォート内の変数の組み込み方教えてください。 2 2023/02/14 19:30
- 固定電話・IP電話・FAX 最近、世論調査(?)と思えるような電話が頻繁に掛かって来ます。 5 2023/03/04 17:07
- その他(コンピューター・テクノロジー) 下に書いたの条件でgoogleアカウントの復旧方法等を教えてください。 1 2023/02/06 23:32
- その他(スマートフォン・携帯電話・VR) ショートメッセージで送付する相手の電話番号の変更について 1 2023/05/18 13:46
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBAを使って選択した範囲の数字(電話番号)の先頭に0を付ける方法が知りたいです。
Visual Basic(VBA)
-
EXCEL 電話番号の抽出について教えてください。
Excel(エクセル)
-
文章情報の中から電話番号とFAX番号を抜き出す関数を教えて下さい
Excel(エクセル)
-
-
4
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
5
文字列の結合を空白行まで実行
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LEFT関数とIF関数の組み合わせ...
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
VBA 指定した列にある日時デー...
-
エクセルマクロPrivate Subを複...
-
CSVファイルの「0落ち」にVBA
-
Accessのレポートで繰り返し表...
-
【Excel VBA】セルで列番号を指...
-
エクセルで最初の行や列を開け...
-
エクセル 重複したデータを別...
-
<急募>エクセルデータの関数を...
-
アクセス 取り込み時に、桁数(...
-
Excelの降順の仕方
-
csvデータをエクセルで加工して...
-
VLOOKUPの列番号の最大は?
-
エクセル 1つのシートを日付で...
-
エクセルで以下の条件付きの乱...
-
シェイプの個数を調べるには・・・
-
VBA Splitで「引数の数が一致...
-
例えば、AさんからGさんまでがA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
「段」と「行」の違いがよくわ...
-
LEFT関数とIF関数の組み合わせ...
-
VBA 指定した列にある日時デー...
-
CSVファイルの「0落ち」にVBA
-
エクセルで住所を県と市・郡と...
-
Excelの行数、列数を増やしたい...
-
エクセルで複数列の検索をマク...
-
エクセルマクロの組み方
-
Alt+Shift+↑を一括で行うには、...
-
えABのある列って
-
エクセルのソートで、数字より...
-
エクセル マクロ 範囲指定で...
-
VBAで結合セルを転記する法を教...
-
VBAで別ブックの列を検索し、該...
-
エクセルマクロPrivate Subを複...
-
列方向、行方向の定義
-
リストからデータを紐付けしたい
-
Accessのレポートで繰り返し表...
おすすめ情報