Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4422 / 13644 ツリー ←次へ | 前へ→

【56764】If〜Thenのマクロで上手く動きません;; まっきー 08/7/3(木) 20:34 質問[未読]
【56765】Re:If〜Thenのマクロで上手く動きません;; kanabun 08/7/3(木) 20:45 発言[未読]
【56766】Re:If〜Thenのマクロで上手く動きません;; まっきー 08/7/3(木) 21:02 お礼[未読]

【56764】If〜Thenのマクロで上手く動きません;;
質問  まっきー  - 08/7/3(木) 20:34 -

引用なし
パスワード
   はじめまして。
マクロは超初心者なのですが、必要にかられて手探りで作成しています。
早速ですが、問題のマクロはこれです。

Sub OKを日付に置き換える()
  Dim 日付 As String
    日付 = Date
  Dim i As Integer

  For i = 10 To 30 Step 2
    If Range("C" & i ).Selection = "OK" Then
    Range("C" & i ) = 日付
    End If
  Next i
End sub

”OK”と入力されたセルに、当日の日付を入力したいのですが、
ステップアップ(?)で確認すると、”OK”と入力されているセルでも
Range("C" & i ) = 日付
に行かず、飛ばしている(つまり、”OK”ではないとみなされている)ようなのです。
”OK”と入力されたセルは、実際はindex関数が入っていて、”OK”でない場合はエラー値か空白が表示されています。
計算結果の”OK”を認識させるにはどうすれば良いのでしょうか?
ご指導の程、お願いします。

【56765】Re:If〜Thenのマクロで上手く動きません...
発言  kanabun  - 08/7/3(木) 20:45 -

引用なし
パスワード
   ▼まっきー さん:

はじめまして。

>ステップアップ(?)で確認すると、”OK”と入力されているセルでも
>Range("C" & i ) = 日付
>に行かず、飛ばしている(つまり、”OK”ではないとみなされている)ようなのです。

>    If Range("C" & i ).Selection = "OK" Then
>    Range("C" & i ) = 日付
>    End If

Range("C" & i ).Selection
という書き方はしません。
Range("C" & i ) はRange オブジェクトですから、<.>のあとには
適切なプロパティを記述してください。

    If Range("C" & i ).VALUE = "OK" Then
      Range("C" & i ).VALUE = 日付
    End If

【56766】Re:If〜Thenのマクロで上手く動きません...
お礼  まっきー  - 08/7/3(木) 21:02 -

引用なし
パスワード
   kanabun さま

早速のご指導ありがとうございます。
今、試しにやってみたら上手くいきました。
R1C1とか、Cellとか、rangeとか、それぞれに見合ったプロパティの記述があるのですね。
それについて、自分なりにもう一度勉強いたします。
今回はとても助かりました、ありがとうございました!!

4422 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free