• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アルファベットじゃないなら)

質問:エクセルでアルファベットじゃない値を条件分岐する方法

このQ&Aのポイント
  • エクセル2010を使用している場合、A列に入力された値の先頭文字がアルファベットでない場合に条件分岐する方法を教えてください。
  • 現在のコードは、26個のIFステートメントを使用して1文字目がアルファベットでない値をチェックしていますが、これを簡潔に書く方法はありませんか?
  • 条件分岐を行う際に、アルファベット以外の文字で始まる値をチェックする方法について教えてください。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

失礼 #2 です。 A-z だと [\^]_ が含まれてしまいますので "[!a-zA-Z]*" に訂正してください。

slgrbekqc3
質問者

お礼

[!a-zA-Z]* にした方がいいのですか。そうします。

その他の回答 (4)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

次のようにしてもよいでしょう。 Sub もし() Dim MyRow As Long For MyRow = 1 To Cells(Rows.Count, "A").End(xlUp).Row If Asc(UCase(Range("A" & MyRow))) < 60 Or Asc(UCase(Range("A" & MyRow))) > 90 Then MsgBox "1文字目がアルファベットで始まっていません!" End If Next MyRow End Sub アルファベットを全角文字にして文字コードを判断しています。

slgrbekqc3
質問者

お礼

皆さんとは違う方法ですね。 いろんな回答ありがとうございます。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

sub macro1()  dim r as long    for r = 1 to range("A65536").end(xlup).row  if not left(cells(r, "A"), 1) like "[a-z,A-Z]" then   msgbox cells(r, "A") & " is not match"  end if  next r end sub みたいな。

slgrbekqc3
質問者

お礼

like "[a-z,A-Z]" でも可能なのですね。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

半角のアルファベットの大文字小文字のチェックなら Sub もしもし() Dim MyRow As Long For MyRow = 1 To Cells(Rows.Count, "A").End(xlUp).Row If Range("a" & MyRow).Value Like "[!A-z]*" Then MsgBox MyRow & " の1文字目が『半角』アルファベットで始まっていません!" End If Next MyRow End Sub とか。 小文字だけで良いなら、"[!A-z]*" → "[!a-z]*"

slgrbekqc3
質問者

お礼

Like "[!A-z]*" これでうまくできました。ありがとうございます。

回答No.1

Asc 関数を使った不等式で If 文を書いてみてください。Asc の意味は、VBE でどこかに asc とタイプし、F1 キーを押してヘルプを見てください。なお「A」と「a」は異なるコードとなります。

slgrbekqc3
質問者

お礼

asc関数を使えばいいのですね。 大文字小文字も考慮して考えてみます。