- ベストアンサー
エクセル VBA 入力内容チェック
エクセルVBAの初心者(昨日から勉強)です。 以下のVBAを作りたいです。 C1からH12までの範囲に半角“-”が入力されています。 しかし、入力ミスで全角“-”が入力される場合が多発していますので、 C1からH12までの範囲内で、全角“-”が入力されたら、エラーを出すチェックツールを作りたいです。 何か知恵をお借りいただけますでしょうか? 宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 入力されるエクセルは別のところで作成されるので、変換できないです。 これは、もうすでに入力済みのエクセルをチェックするので入力前のシートに細工はできないという意味ですか? ならば一番簡単なのは Sub test01() Range("C1:H12").Replace What:="-", Replacement:="-", LookAt:=xlPart End Sub という具合に置き換えてしまったらいかがでしょう? 別にマクロを使うまでもないですが。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
方法は (1)指定範囲内の全セルチェック For Each cl In selection clがーがどうかIFステートメントで判別する。 これを範囲内全セル繰返す。 (2)検索プログラム Find,FundNextメソッド これは、編集メニューの検索の操作をして、マクロの記録を採ってコードを見て勉強する。 しかし昨日今日はじめたものには、むつかしい点がある。 ーー 実際に質問者に起こっている諸問題から手をつけたい気持ちはわかる(あるいはそれが勉強の動機かもしれない)が、それらをすぐ手をつけられると思うのは甘い。6ヶ月は基礎的な勉強と、世間一般にVBAで解説されている例題をまねして学びとり、一人立ちはその後。 今など答えてもらっても、それさえ理解できないだろう。ぐっと我慢して、知識を取り入れることに専念しては。 コピへして出来ましたでは、人に頼りすぎ。 ーーー 「For Each Cl」 でGoogle照会 http://questionbox.jp.msn.com/qa3442457.html など ここに質問する前に自分で検索語をひねり出して照会して考えるクセをつけること。
お礼
ご回答ありがとうございます。確かにおっしゃる通りです。 しかし、このチェックツールは今日中で完成しないと、、、、、、 頑張ります。
- mu2011
- ベストアンサー率38% (1910/4994)
通常ならば、エクセルの入力規則を利用するがダメでしょうか。 マクロ記述ならば、セル内容が変更あるとマクロ起動されるイベントプロシージャ(Private Sub Worksheet_Change(ByVal Target As Range))の利用になると思う。 この辺りをweb検索してみてください。
お礼
入力されるエクセルは別のところで作成されるので、変換できないです。
お礼
ありがとうございます。 googleでいろいろ検索して、やっといみがわかりました。 本当にありがとうございます。