質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

1017閲覧

4桁の数字がすべて同じかどうか調べる方法

poporon7

総合スコア22

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/10/29 05:32

お世話になっております。

VBAでデータチェックをしているのですが、10桁数字のうち、先頭4文字が同じ数字の場合はエラーとする方法を考えています。(例:1111,2222,3333等)もちろん4数字を1文字ずつ比較して同じであればという考え方はありますが、それだとデータ数が多いため時間がかかると思い、何か一気にできる方法はないかとご相談させていただきました。
正規表現での方法などでもしよい方法がありましたらご教示いただけると幸いです。
どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

先頭4文字だけ切り出して数値変換して、1111で割ってあまりが0かをチェックする、というのはどうでしょうか?

投稿2021/10/29 05:34

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

poporon7

2021/10/29 05:39

回答ありがとうございます! なるほど素晴らしいです!確かにそれだと一瞬で判定できますね。 まったく思いつきませんでした。 大変助かりました。もうこの方法にします。ありがとうございました!
guest

0

もう解決されてしまいましたが下記の関数validationは先頭4文字が同じ数字のときFalseを返します。

VBA

1Function validation(ByVal s As String) 2 Dim re As Object 3 Set re = CreateObject("VBScript.RegExp") 4 re.Pattern = "^(\d)\1{3}" 5 validation = Not re.test(s) 6End Function 7 8Sub test() 9 MsgBox (validation("1234567890")) 10 MsgBox (validation("5555987654")) 11End Sub

投稿2021/10/29 05:53

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

poporon7

2021/10/29 06:55

これは便利ですね! 正規表現ではこのように表記するのですね! 調べてもわからなかったのでとても勉強になりました。 ご回答感謝いたします。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問