• ベストアンサー

VBA

エクセルシートに1から5の数値がランダムに打ち込んであって、1から5以外の数値が混ざっていた場合、「再入力してください」と表示させるVBAコードを作りたいのですが、どうしたらよいでしょうか?

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>1から5以外の数値が混ざっていた場合、「再入力してください」と表示させる と言う事は1~5しか入力できないよう入力規則で設定するのはダメなのですか?

kan1kan
質問者

お礼

入力規制で十分対応できました。ご指摘ありがとうございます。

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

その他の回答 (2)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

#1です。 入力済というのなら、範囲がA1:E1だとしたら最小値が1未満か最大値が5を超えるかで判断して Sub try()  With Application     If .Min(Range("A1:E1")) < 1 Or .Max(Range("A1:E1")) > 5 Then       MsgBox "再入力して下さい"     End If  End With End Sub とか?

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

>打ち込んであって と入力は完了しているような書き方でありますが、入力データの増加はないのですか。 今後も入力が有るなら、シートのイベントを考えるとか、入力規則の設定とかのことも考えることになりますのでね、質問が不明瞭なわけです。 ーー データの有る列の構成は1列ですか。 ーー >どうしたらよいでしょうか いろんな意味に取れます。 どこへコードを書くのかとかの質問も無くはないでしょう。 それは判っていて、VBAコードが知りたいということですか。 回答者に全的にコードを書かせるのは、丸投げになるが、まあこの程度ならよいでしょう。 ーーー A列にデータがあり、入力は済んでいるとして(内容チェック作業という事で)、コードの一例ですが VBEで標準モジュールに Sub test01() d = Range("A65536").End(xlUp).Row 'MsgBox d For i = 1 To d If Cells(i, "A") > 5 Or Cells(i, "A") < 0 Or Cells(i, "A") = "" Then p01: x = InputBox(i & "行目のデータが範囲外です") If x > 5 Or x < 0 Or x = "" Then GoTo p01 Else Cells(i, "A") = x GoTo p02 End If End If p02: Next i End Sub

kan1kan
質問者

お礼

細かいところまで書いていなくて失礼しました。回答ありがとうございます。

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

関連するQ&A

  • ExcelのVBAについて。

    ExcelのVBAについて。 画像のようなコードを利用してセルに入力時の日付時間を自動的に付加させたいのですが、、 VBA初心者な為に上手くいきません。 コード自体はサイトのを切り貼りして使えるのですが、これ以上の応用例に行き着けません。目的としては、データベース的に、あと入力数値から特定文字を抜き出して変数を当て嵌め文字列の語呂を当てます。様式はまだ作成中ですが、ある種の図表化してプリントアウトまでしたいと思っています。 何が上手くいかないか、まず自動的に付加させる所は何となく出来ているので、これをシート1とした場合に、シート2に図表化した転記内容を構成し、、シート1入力、シート2表示、またシート1A3セルに戻るというコードにしたいです。 この記述は不味いとかこうこうああした方が良いというアドバイスや指摘をお願いします。 よろしくお願いします。

  • Excel VBA 空白セル以外のセルを罫線で囲む

    Excel VBA 空白セル以外のセルを罫線で囲む ここの質問箱をよく利用させて頂いている者ですが、また質問させていただきます。 あるシート(例:”Sheet1”)の全セル内のうち、ランダムな文字が全セル内のどこかに記入されています。 また、記入される位置は常に変化します。 つまり、ある時は「A1」に入力されていても、次ははそうでないということです。 この様な場合、文字が入力されているセルのみに罫線を引く処理を行いたいのですが、実現は可能でしょうか? また、可能であれば、どの様なコードになるのでしょうか。教えてください。

  • 【エクセル・VBAコードの書き方】データの抽出

       1位   2位     3位     4位     5位 A   B        25 C              30            18 D E   11 VBAの初心者であります。 上のエクセルの表において、以下の作業を自動的に行なえるようなVBAのコードを教えて頂けると有り難く思います。 まず表の説明からしますと、 A~Eは人の名前を表しています。 1~5位は彼らの順位(ある競争)です。 数値が四つ(25、30、18、11)ありますが、 この四つの数値のなかで、20以上のものだけが、別のシートに自動的に入力されるようにしたいです。 かつ、その20以上の数値の位置(例えば25であれば、B、2位)もそのシートに入力されるようにしたいのです。 例えば別のシートでは以下のようにデータを表したいです。 名前    順位    数値  B     2位     25  C     3位     30 感覚的にはif 文とLoop文を用いると思うのですが、、うまくコードが組めません。 そもそもこれらの作業をVBA(マクロ)に組むことができますでしょうか。 宜しくお願いいたします。

  • VBAで日付分塗りつぶす

    添付画像のようなシートで 例えばI9セルに4と入力すると J9セルからY9セルまで(つまり4日間)を塗りつぶすような コードがしりたいです。 入力する数値はランダムですのでその数値に合わせて 日にち分塗りつぶしを行いたいです。 宜しくお願いします。

  • 複数のEXCELシートの印刷順の指定

    EXCEL97の一つのブックに200程度のワークシートがあります。ワークシート名はそれぞれ1~200までの数値になっており、ランダムに並んでいます。シート名の降順で印刷をおこなうEXCEL VBAのコードを教えてください。

  • Excel VBA 実行しない

    お世話になります。 ExcelのVBAで列に上書き足し算を入れているシートが、上書きできなくなってしまいました。 コードを表示で確認しましたが、コード自体は入力されています。 元に戻す方法はありますでしょうか。 毎日使ってるのでとても困ってます。 お分かりになる方、至急教えて欲しいです。 よろしくお願いします。

  • エクセルシートの塗りつぶしをVBAでやるには?

    エクセルのセル塗りつぶしについて(VBA) いつもお世話になっています。 エクセルシートで、任意のセルに数値を入力したとき、入力したセルから右側に向けて、その数値分、自動で塗りつぶすようにしたいのですが、どのようにすれば良いのでしょうか? 色は何でも構いません。 画像添付します。

  • Excel 2007 VBAについて質問します。

    Excel VBAの初心者です。 行の非表示と表示についてお聞きしたいのです。 ExcelのSheet1の1行目(1行全体)のみを、シート上のセルをWクリックをして 非表示にしたり表示させたりするのには、どの様なコードを書いたらいいでしょうか? VBA初心者の為、分かりやすい回答をお願いします。

  • VBAを入れる場所

    シートの非表示をVBAで実行したく(Excel2000) VBAのヘルプを見て Worksheets("Sheet1").Visible = False という式を見つけたのですが、どこに入力していいのかがわかりません。 質問内容をみていただいた通り、VBAに関しては全く知識がありません。 標準モジュールに入力してみたのですが、ダメでした。 (できれば、手順を詳しく教えてください) と、多分、上の式は、Sheet1を表示しなくするということだと思うのですが、 例えばSheet1とSheet3とか SHEET1からSheet4まで非表示にするとか というときには、どのように記述 したらよいのか、教えてください。 (Excelの機能でのシート非表示は知っています)

  • VBAについて教えて下さい

    エクセルのファイルを2つ開いている状態で 仮に名前を試験1、試験2とします。 VBAを使用し 試験2の指定した位置にあるセル(数値)を 試験1の任意の位置に挿入する しかし、試験2のシートは複数あります。 僕がやりたいのは 試験1の任意の位置に挿入する数値は 試験2のシートが変わっていようが 今開いているシートから指定した位置にあるセルから数値を挿入してほしいのです いちいち、VBAを使いwooksheetsで指定するのも面倒なので質問しました。 なにか、別の方法あるでしょうか? あれば、コード書いて貰えるととても助かります。

このQ&Aのポイント
  • 筆まめVel32のデザイン画面のファイルが開けないという問題について質問があります。
  • ヴァージョンアップは自動的にしてもらっているが、画面にはCDが入っていないマークが表示されています。
  • ソースネクスト株式会社の製品・サービスに関する質問です。
回答を見る

専門家に質問してみよう