• ベストアンサー

エクセルマクロでセル入力値の形式を判別する方法

あるセルに入っているデータが数値なのか文字列なのかを自動的に判別する手法はあるのでしょうか。 ご存知の方ご教示頂けますようお願いいたします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 #3 の merlionXXさんには、脱帽! 私は、以下のような方法にします。VBAでは、文字列の判定などは、VarType 関数を用います。 If Vartype(ActiveCell.Value) =vbString Then  '-処理 End If セルの数値は、Double型になりますので、vbDouble となります。 一応、主な種類 Sub TestType()  Select Case VarType(ActiveCell.Value)   Case vbString: MsgBox "文字列"   Case vbDouble: MsgBox "数値"   Case vbDate: MsgBox "日付か時間"   Case vbError: MsgBox "エラー値"   Case Else: MsgBox "その他"  End Select End Sub

tarobei
質問者

お礼

ありがとうございます。 わかりやすい回答に感謝申し上げます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

入力された値を判定します。 シートのモジュールに書いてみてください。 Private Sub Worksheet_Change(ByVal Target As Range) If IsError(Target) Then MsgBox "エラー!" Exit Sub End If Select Case Target.Value Case Is >= Chr(0) x = "文字列" Case Is = "" x = "なし" Case Else x = "数値" End Select MsgBox x End Sub

tarobei
質問者

お礼

う・・・すごい!って感じです。 マクロで連続処理をやりたかったのですが、これを使わせて頂けば できそうだと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

 =CELL("type",A1) これでA1セルに入力されているのが文字列か数値かブランクか分かります。 日付など見た目は文字列でも実はシリアル値をセルの表示形式で日付として表示させていても 数値として判断できます。 詳しくは関数のヘルプを参照してください。

tarobei
質問者

お礼

ありがとうございました。早速試してみます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

ISNUMBER テストの対象が数値を参照するとき TRUE を返します ISTEXT テストの対象が文字列を参照するとき TRUE を返します。 これでいけそうですか? ヘルプにも載っています。

tarobei
質問者

お礼

回答ありがとうございました。 これはエクセルの中で使用する関数なのですね。 早速やってみます。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルでの判別・入力

    エクセルで隣の列に含まれている文字列をみて他の列にある文字列を並べていくことはできますか? たとえば・・・ A B 犬 ワン 猫 ニャー 猫 ニャー 犬 ワン このようにA列の文字列を判別してB列にその文字列に対応した文字列 を自動的に挿入していく方法を教えてください。 よろしくおねがいします。

  • 【エクセル】セル内の文字列から数値のみを抽出する方法

    A1●●●●1111 A2××××××222222 A3■■■■■■■■■■■1234567890 上記のように文字列と数値が一続きになっているデータが各セルに入っています。 文字列+数値の順番は決まっていますが、それぞれの文字数は決まっていません。数値はマイナスの場合もあります。 また、境にカンマやスペースなどもないため、テキストファイルウィザードも使えません。 このデータから、数値のみを抽出する方法がありましたらご教示下さい。 よろしくお願いします。

  • 入力したデータの頭文字によってセルを変えるマクロ

    エクセルに QRコードで入力されたデータを 入力されたデータの規則性によって、入力セルを指定する方法はありますか? 具体的には A1セルと B2セル 両方にスキャンした文字列を入れる必要があり、 2つのQRコードがあります。 QRコードのデータには規則性があって、 片方は AAA00001 もう片方は BAA00002 というように最初の3文字でA列に入力するかB列に入力するか判別して、 どちらのQRコードを先に読んでも適切な列に入るようにしたいと思っています。 こういうことは可能でしょうか? よろしくお願いします。

  • Excelのマクロで作りたい

    こんにちは。 あるデータベースを使うシステムでエクセルにデータをエクスポートしたら数値を入れている列が文字列として認識してしまいます。 本来文字列が入るところに数値を入れているだけなのですが、エクスポートした時も数値しか入っていないのですが文字列として入っています。 エクセル上では数値しか見えませんノートパッドにペーストすると数値の後ろに「”」があります。しかも改行されていて2行ある状態になっています。 なのでセルの内容を編集(F2)で開いてバックスペース2回押し、Enterで初めて数値として認識されます。 この行為をマクロ化するにはどうすればいいのでしょうか? マイクの記憶で同じ動作をしてもそのセルの場所と中にある数値も一緒に記憶されるのでどこでやっても記憶した数値を貼り付けする事になってしまいます。 これをどの箇所でもマクロを押せばそのセルをF2してバックスペースを2回する様に設定することは可能でしょうか? 判りずらい説明ですがもし判る方が居たらご教授下さい。 宜しくお願いします。

  • マクロを使って文字が入力されたセル数を数える

    マクロを用いて、文字が入力されたセル数をカウントしたいと考えていますがうまくいかず悩んでおります... 具体的には、セルB1からB1000にデータが入力された場合、左隣のA列に1から番号を付したいと考えています. B列が空白のままの行は、A列も空白にしておきたいです. (セルB1からB1000まで全てにデータが入力された場合、A1からA1000には1から1000までの番号が入る) また、A列に付された番号を判断し、100番毎にA列からE列までセル背景を色分けしていきたいと考えています. (B列が空白ならxlNoneでその行は無色のままにしたい) セル背景の色分けだけであればうまくいったのですが、B列の入力状況により自動でA列に番号(数字)を変化させたら思い通りに動かず困っています. ご教示、宜しくお願いします.

  • EXCELのマクロで・・・

    数値や文字列などが入力されてるセルを自動で範囲指定し、計算式が入っていないところだけを、クリアするにはどのようなVBAを書けばいいんですか? あれば、すごく便利なんですが。 どなたか、教えて下さい。

  • Excelにて、あるセルに特定の値がある事を判別したい

    お世話になっております。 Excelにて、あるセルに特定の値があることを判別する方法を教えていただきたいと思います。 具体的には セルAの文字列に、「テスト」が入っていたら、セルBに「○」を表示。せるAに「ほげ」が入っていたら、セルBに「×」を表示したいといった事です。 検索値は、任意の文字列でもよいですが、例えば、C列にある値が入っている場合はといった表示が出来ればと考えています。 よろしくお願いいたします。

  • エクセルへの入力方法

    エクセルのセルには文字列や数値を入れることができると理解しています。 で、製品比較表などつくる場面で「写真」「製品名」「売上」などのデータを揃えて整理すると、「製品名」は文字列、「売上」は数値で各々セルに入力できるんですが、「写真」は画像で、これがセルに入りません。 とりあえずそれらしい場所に画像を置いといて表の体裁をつくるんですが、列を挿入したりすると場所がずれます。 こういう場合、どうしたらいいんでしょうか。画像をセルに入れる方法があるんでしょうか。それともエクセルでそうしたい欲望が的外れなんでしょうか。。。 解説と対策を願います。質問者はコンピュータに疎いので、猿に教えるくらいやさしくお願いします。。

  • エクセル2007のセルの書式設定について

    エクセル2007のセルの書式設定について 標準で、2015/11/12と表示、数値でも、日付でも、文字列でも同じように2015/11/12と表示されるセルがあります。 これをきちんと日付として2015/11/12と表示させ、数値としても本来の42320と表示させたいです。 ご存知のかた教えてください。 標準で、2015/11/12と表示 数値でも、日付でも、文字列でも同じように2015/11/12と表示されるセルがあります。 これをきちんと日付として2015/11/12と表示させ、数値としても本来の42320と表示させたいです。 ご存知のかた教えてください。

  • エクセルで空白のセルを判別し、参照データを入力

    エクセル2002を使っています。 画像のようにE4、E5 I4 I5 の様に空白部分があります(赤く塗りつぶしたセル部分) この様にC4~Q8までの中に空白があれば、その列の29セルの数値を入れるにはどの様な関数でしょうか? E列であれば、E4とE5に 3.250を入れたいと思います。 ご存知の方教えていただけませんか? よろしくお願いいたします。

インクの残量があるのに未検出
このQ&Aのポイント
  • 購入後今日初めて起動したがインクの残量があるのに検出されない
  • お使いの環境や接続方法によって、インクの残量が正しく検出されない場合があります。
  • ブラザー製品の中には、インクの残量を正確に検出するために特定の設定が必要な場合があります。
回答を見る

専門家に質問してみよう