• ベストアンサー

エクセル VBA 入力内容チェック

エクセルVBAの初心者(昨日から勉強)です。 以下のVBAを作りたいです。 C1からH12までの範囲に半角“-”が入力されています。 しかし、入力ミスで全角“-”が入力される場合が多発していますので、 C1からH12までの範囲内で、全角“-”が入力されたら、エラーを出すチェックツールを作りたいです。 何か知恵をお借りいただけますでしょうか? 宜しくお願いいたします。

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

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

> 入力されるエクセルは別のところで作成されるので、変換できないです。 これは、もうすでに入力済みのエクセルをチェックするので入力前のシートに細工はできないという意味ですか? ならば一番簡単なのは Sub test01() Range("C1:H12").Replace What:="-", Replacement:="-", LookAt:=xlPart End Sub という具合に置き換えてしまったらいかがでしょう? 別にマクロを使うまでもないですが。

shenyanhe
質問者

お礼

ありがとうございます。 googleでいろいろ検索して、やっといみがわかりました。 本当にありがとうございます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

方法は (1)指定範囲内の全セルチェック   For Each cl In selection clがーがどうかIFステートメントで判別する。 これを範囲内全セル繰返す。 (2)検索プログラム   Find,FundNextメソッド  これは、編集メニューの検索の操作をして、マクロの記録を採ってコードを見て勉強する。  しかし昨日今日はじめたものには、むつかしい点がある。 ーー 実際に質問者に起こっている諸問題から手をつけたい気持ちはわかる(あるいはそれが勉強の動機かもしれない)が、それらをすぐ手をつけられると思うのは甘い。6ヶ月は基礎的な勉強と、世間一般にVBAで解説されている例題をまねして学びとり、一人立ちはその後。 今など答えてもらっても、それさえ理解できないだろう。ぐっと我慢して、知識を取り入れることに専念しては。 コピへして出来ましたでは、人に頼りすぎ。 ーーー 「For Each Cl」 でGoogle照会 http://questionbox.jp.msn.com/qa3442457.html など ここに質問する前に自分で検索語をひねり出して照会して考えるクセをつけること。

shenyanhe
質問者

お礼

ご回答ありがとうございます。確かにおっしゃる通りです。 しかし、このチェックツールは今日中で完成しないと、、、、、、 頑張ります。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

通常ならば、エクセルの入力規則を利用するがダメでしょうか。 マクロ記述ならば、セル内容が変更あるとマクロ起動されるイベントプロシージャ(Private Sub Worksheet_Change(ByVal Target As Range))の利用になると思う。 この辺りをweb検索してみてください。

shenyanhe
質問者

お礼

入力されるエクセルは別のところで作成されるので、変換できないです。

関連するQ&A

  • エクセルで入力文字のチェック

    エクセルのセルに入力された値がUnicodeで****から****までの範囲内のみの文字で記述されているかのチェックをしたいのですが、 例:B3には電話番号を入力したいので半角数字と()のみで構成されているかをチェックする。 VBAでどのように記述すればよいのでしょうか? もう一つ、 セルB3に文字を入力し終えた時または、B3にあるカーソルを他のセルに動かした時に VBAが走る…と言う記述方法はあるのでしょうか? ボタンを用意し、入力後[CHECK]を押すとVBAが動くと言うのは出来るのですが… 以上よろしくお願いいたします。

  • VBAの入力時に

    お世話になります。 エクセルでVBAのモジュールでセル名やシート名を入力しようと全角ひらがなにしようと思うのですが、半角英数しか表示してくれません。 VBAをとじて、一般のエクセルのモードに戻ると難なく入力できます。 以前はこんなことはなかったと思うのですが、何かの設定を触ってしまったのかもしれません。 VBA入力時に全角かなを入力するにはどうしたらいいのでしょうか?

  • ExcelのVBAでカタカナをチェックしたい

    ExcelのVBAで、あるセルの値が半角カタカナであった場合エラーとしたいのですが、 セルの値が半角カタカナという条件式の構文がわかりません。 困っています。どなたかお助けくださいませ! また、できることならば、半角カタカナ→全角カタカナに自動修正させたいのですが、 無理ならば上記のエラーチェックだけでもよいです。 もし、こちらもおわかりになる方いらっしゃいましたら教えてください。よろしくお願いいたします。

  • EXCEL VBA で指定した範囲に入力があるかどうか?

    こんばんは!! EXCEL VBAを使い出して、初日からつまずいてます・・・。 みなさん、アドバイスよろしくお願いします!! で、早速、質問なんですけど、 指定したセル範囲のいずれかに入力があるか調べたいんですけど、それができるプロパティとかってあるんでしょうか? 地道にセル毎にチェックするしかないいんでしょうか?? たとえば、範囲をA1:H1として、その範囲内のセルに何か入力があったらTrueが返ってくるとか・・・。 もし、知ってる方がいらっしゃたら教えてください!! よろしくお願いします!!!!!

  • perlで入力チェック

    昨日ここでお世話になって無事プログラムが完成しました。でももう1個だけどうしても分からない事があるので 教えてください。 フォームで半角、全角数字の入力チェックを行おうとして正規表現を使おうと思ったのですが、perlのコードが分かりません。いろんなサイトを見てこれかな?ってのは探したのですが駄目でした。知恵をお貸しくださいませ。 if ($FORM{'kingaku'} ne *ここに入れるのがわかりませんT0T*) { &error("金額を数字で入力してください。"); } たぶん、これで入力チェックのはずですが・・違ったら指摘おねがいします。

    • ベストアンサー
    • CGI
  • フォーム入力のチェック

    フォームの入力をCGI(Perl)でチェックするとき、 全角の漢字、カタカナ、ひらがなでの入力以外は禁止にしたいです。 どなたかいい方法をご存知でしょうか? とりあえず、現在は、 jcode.plで全角英数字⇒半角英数字に変換 フォームに入力された文字列を一文字(半角2文字)ずつ抽出して、 $a=~ s/([^\w ])/'%' . unpack("H2", $1)/eg; でエンコードしたものが%を含んでいるかどうかで判別してます。 でもこれだと全角英数字と半角英数字しかシャットアウトできません。 記号文字なども入力出来ないようにしたいです。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • 【Excel VBA】A列の全角・半角文字をチェック

    【Excel VBA】A列の全角・半角文字をチェック Excel VBAの初心者です。 仕事で必要なため、教えていただけると助かります。 【やりたいこと】 Excel VBAで、入力が完了したExcelシートのA列(A1からA10)が、 半角のみであること、または全角が入力されていないこと、を チェックしたいです。 半角以外の文字があった場合は、メッセージを表示します。 また、半角以外のセルがあった場合は、そのセルの色を水色にします。 入力チェックの方法は、ボタンにマクロを登録して、 そのボタンを押下することで行います。 以下に、僕が試したプログラムを記します。 アドバイスをいただけると幸いです。よろしくお願いします。 Sub 入力チェック() Dim cellValue As String Dim strANSI As String Dim i As Integer For i = 0 To 10 cellValue = Cells(1, i + 1) strANSI = StrConv(cellValue, vbFromUnicode) If Len(cellValue) = LenB(strANSI) Then MsgBox "セルは半角のみ" myColor = 8 Else MsgBox "セルの内容は全角のみ" End If MsgBox "セルの内容は全角と半角があり" Next i End Sub

  • 全角漢字の入力チェック

    Javascriptにて、Formのテキストフィールドの内容を入力チェックしているのですが、「全角漢字」「全角かな」「全角カナ」「半角英数字」 のみを許可して、それ以外の入力文字をいれるとエラーになるような 関数を作りたいのですが、全角記号や半角記号をチェックするには どうしたらよいのでしょうか。

  • エクセルVBAでIME入力モードの制御

    エクセルVBAでIME入力モードの制御について教えてください。 Sub IMEの現在の状態() 状態 = IMEStatus() MsgBox 状態 & "です", vbInformation, "IMEの現在の状態" End Sub これでIMEStatus関数の戻り値が 1 オンの状態 2 オフの状態 4 全角ひらがな入力モード 5 全角カタカナ入力モード 6 半角カタカナ入力モード 7 全角英数入力モード 8 半角英数入力モード であることがわかりましたが、逆にIMEの状態を設定するにはどのように記述すればいいのでしょうか? たとえば、Sheets("AAA").Range("B1:B20")は「半角英数入力モード」にする場合。 DialogSheets("GGG")のダイアローグを呼び出したとき、その中のEditboxes("HHH")には「全角ひらがな入力モード」。 などです。 よろしくお願いします。

  • VBAのLEN関数

    VBAのLEN関数で1つのセルではなく横一列の範囲を指定して、それらのセルに入っている文字数の合計を取得する方法はありますか? また文字数を取得する際、全角と半角が混じっている可能性があるのですが、 半角で文字数を取得することはできるでしょうか? 何がしたいかといいますと、横一列に並んでいる複数セルの値を 別のセルに入力規則として入力させます。 その際、エクセルの仕様的に合計の文字数が半角255文字を超えないかチェックしたいのです。

専門家に質問してみよう