Page 590 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼チェック方法 mika 03/1/22(水) 18:30 ┗Re:チェック方法 ポンタ 03/1/22(水) 21:25 ┗Re:チェック方法 mika 03/1/23(木) 10:13 ┣Re:チェック方法 Jカーター 03/1/23(木) 10:28 ┗Re:チェック方法 ポンタ 03/1/23(木) 10:36 ┗Re:チェック方法 mika 03/1/23(木) 11:18 ─────────────────────────────────────── ■題名 : チェック方法 ■名前 : mika ■日付 : 03/1/22(水) 18:30 -------------------------------------------------------------------------
初めて質問します。 ホントに初心者の私ですが、いろいろ教えて下さい。 Excelに入力されたデータの入力チェックをマクロでしようと思っています。 入力された値が日付型かどうかのチェック方法を教えて下さい。 それから、もう一つ。 入力されたデータからCSVファイルを作成しようと思っています。 ですので、,(半角カンマ)が入力された時に,(全角カンマ)に置換をしたい のですが、どのようにしたら一番簡単でしょうか? ちなみに、今は下記のようになっています。 Worksheets("sheet1").Range("C18").Cells.Replace What:=",", Replacement:="," どうぞ、よろしくお願い致します。 |
対象のシートモジュールに貼り付けてください。 ","→","への置換えは全セルを対象に、 日付かどうかの確認は"A1"を対象にしてあります。 お試しください。 Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range Application.EnableEvents = False For Each c In Target c.Value = Replace(c.Value, ",", ",") If c.Address(0, 0) = "A1" Then If IsDate(c.Value) Then MsgBox ("日付です") Else MsgBox ("日付ではありません") End If End If Next Application.EnableEvents = True End Sub |
ポンタさんありがとうございました! 早速、貼付けをさせていただきました。 ですが、Replaceの部分でコンパイルエラー(SubまたはFunctionが定義されていません) が出てしまうのですが、私の設定がどこか間違っているのでしょうか? たびたび申し訳ありませんが、ご指導よろしくお願い致します。 |
置き換えは範囲を一括で出来る気がします。 Sub Macro1() Selection.Replace ",", ",", xlPart End Sub よく読んでないので 的はずれでしたらご容赦ください。 |
お試しください。 Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range Application.EnableEvents = False Call Target.Replace(",", ",") For Each c In Target If c.Address(0, 0) = "A1" Then If IsDate(c.Value) Then MsgBox ("日付です") Else MsgBox ("日付ではありません") End If End If Next Application.EnableEvents = True End Sub |
ポンタさん、Jカーターさん、ありがとうございました! おかげさまで、うまく置換ができるようになりました。 まだまだ未熟者で、わからないことばかりですので、 またお聞きすることもあると思いますが、そのときは よろしくお願い致します。 この度は、本当にありがとうございました!! |