過去ログ

                                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:=","

どうぞ、よろしくお願い致します。
 ───────────────────────────────────────  ■題名 : Re:チェック方法  ■名前 : ポンタ  ■日付 : 03/1/22(水) 21:25  -------------------------------------------------------------------------
   対象のシートモジュールに貼り付けてください。

","→","への置換えは全セルを対象に、
日付かどうかの確認は"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
 ───────────────────────────────────────  ■題名 : Re:チェック方法  ■名前 : mika  ■日付 : 03/1/23(木) 10:13  -------------------------------------------------------------------------
   ポンタさんありがとうございました!
早速、貼付けをさせていただきました。

ですが、Replaceの部分でコンパイルエラー(SubまたはFunctionが定義されていません)
が出てしまうのですが、私の設定がどこか間違っているのでしょうか?

たびたび申し訳ありませんが、ご指導よろしくお願い致します。
 ───────────────────────────────────────  ■題名 : Re:チェック方法  ■名前 : Jカーター  ■日付 : 03/1/23(木) 10:28  -------------------------------------------------------------------------
   置き換えは範囲を一括で出来る気がします。

Sub Macro1()
  Selection.Replace ",", ",", xlPart
End Sub

よく読んでないので
的はずれでしたらご容赦ください。
 ───────────────────────────────────────  ■題名 : Re:チェック方法  ■名前 : ポンタ  ■日付 : 03/1/23(木) 10:36  -------------------------------------------------------------------------
   お試しください。

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
 ───────────────────────────────────────  ■題名 : Re:チェック方法  ■名前 : mika  ■日付 : 03/1/23(木) 11:18  -------------------------------------------------------------------------
   ポンタさん、Jカーターさん、ありがとうございました!
おかげさまで、うまく置換ができるようになりました。

まだまだ未熟者で、わからないことばかりですので、
またお聞きすることもあると思いますが、そのときは
よろしくお願い致します。

この度は、本当にありがとうございました!!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 590