Excel VBA質問箱 IV

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

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


9322 / 13646 ツリー ←次へ | 前へ→

【28054】セル参照でその下のセルに値を入れたい りょうた 05/8/27(土) 16:58 質問[未読]
【28056】Re:セル参照でその下のセルに値を入れたい かみちゃん 05/8/27(土) 17:19 回答[未読]
【28060】Re:セル参照でその下のセルに値を入れたい りょうた 05/8/27(土) 18:12 お礼[未読]
【28062】Re:セル参照でその下のセルに値を入れたい りょうた 05/8/27(土) 18:56 質問[未読]
【28063】Re:セル参照でその下のセルに値を入れたい かみちゃん 05/8/27(土) 19:10 回答[未読]
【28064】Re:セル参照でその下のセルに値を入れたい りょうた 05/8/27(土) 19:34 お礼[未読]

【28054】セル参照でその下のセルに値を入れたい
質問  りょうた  - 05/8/27(土) 16:58 -

引用なし
パスワード
   また、行き詰ってしまい、お力を貸していただければ、と思い質問させていただきます。どなたか、ご指南お願いいたします。

※セルを参照して、値があれば、そのセルの一つ下のセルに0を代入する方法。


1参照するセル範囲("A1","A11","A21","A31",・・・"A291")
  (のように、10行間隔で値があるかどうかを調べる。)
2各セルに値があれば、そのセルの一つ下のセルに"0"を代入する。

 例・・・"A1" <> "" ならば "A2"に"0"を代入
     "A11" = "" ならば "A12"には""を返す。(もしくは何もしない)
     以下、"A291"まで処理をする。


ということです。

非常に分かりづらいかもしれませんが、
どうかよろしくお願いいたします。

【28056】Re:セル参照でその下のセルに値を入れたい
回答  かみちゃん  - 05/8/27(土) 17:19 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>※セルを参照して、値があれば、そのセルの一つ下のセルに0を代入する方法。

Offsetプロパティをヘルプで調べてみてください。
こんな感じでできます。

Sub Macro1()
 With Range("A1")
  If .Value <> "" Then
   .Offset(1) = "0"
  End If
 End With
End Sub

【28060】Re:セル参照でその下のセルに値を入れたい
お礼  りょうた  - 05/8/27(土) 18:12 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。


ご回答ありがとうございます。

>>※セルを参照して、値があれば、そのセルの一つ下のセルに0を代入する方法。
>
>Offsetプロパティをヘルプで調べてみてください。
>こんな感じでできます。
>
>Sub Macro1()
> With Range("A1")
>  If .Value <> "" Then
>   .Offset(1) = "0"
>  End If
> End With
>End Sub

おかげで、なんとかできました。
ありがとうございます。
また、壁にぶつかったら、ご質問させていただくかもしれませんが
その際は、よろしくお願いいたします。

【28062】Re:セル参照でその下のセルに値を入れたい
質問  りょうた  - 05/8/27(土) 18:56 -

引用なし
パスワード
   >>>※セルを参照して、値があれば、そのセルの一つ下のセルに0を代入する方法。
>>
>>Offsetプロパティをヘルプで調べてみてください。
>>こんな感じでできます。
>>
>>Sub Macro1()
>> With Range("A1")
>>  If .Value <> "" Then
>>   .Offset(1) = "0"
>>  End If
>> End With
>>End Sub

参考にして

Sub Macro1()
 With Range("A1,A11,A21,・・・・,A291")
  If .Value <> "" Then
   .Offset(1) = "0"
  End If
 End With
End Sub

の様に作成したら、出来た!・・・と、思ったのですが
よく試すと、"A1"セルに対しては、""の時は、"A2"セルに""のままで
"文字"の時は、"A2"セルに"0"を代入するのですが、
それ以降のセル("A11","A21"・・・・,"A291")に対しては、
""であっても"文字"であっても、("A12","A22"・・・・"A292")に
"0"を代入してしまいます。

何故なのか、わかりません・・・。

どうしてでしょうか?

かみちゃんさん
わからないでしょうか?

初歩的なことなのかもしれませんが、初心者なもので
どうか、よろしくお願いいたします

【28063】Re:セル参照でその下のセルに値を入れたい
回答  かみちゃん  - 05/8/27(土) 19:10 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>よく試すと、"A1"セルに対しては、""の時は、"A2"セルに""のままで
>"文字"の時は、"A2"セルに"0"を代入するのですが、
>それ以降のセル("A11","A21"・・・・,"A291")に対しては、
>""であっても"文字"であっても、("A12","A22"・・・・"A292")に
>"0"を代入してしまいます。

このような感じで、いかがでしょうか?
Sub Macro2()
 For Each c In Range("A1,A11,A21")
  With c
   If .Value <> "" Then
    .Offset(1) = "0"
   End If
  End With
 Next
End Sub

【28064】Re:セル参照でその下のセルに値を入れたい
お礼  りょうた  - 05/8/27(土) 19:34 -

引用なし
パスワード
   ▼かみちゃん さん:

>このような感じで、いかがでしょうか?
>Sub Macro2()
> For Each c In Range("A1,A11,A21")
>  With c
>   If .Value <> "" Then
>    .Offset(1) = "0"
>   End If
>  End With
> Next
>End Sub

ありがとうございます。

>Sub Macro2()
> For Each c In Range("A1,A11,A21")
>  With c
>   If .Value <> "" Then
>    .Offset(1) = "0"
    Else
     .Offset(1) = ""
>   End If
>  End With
> Next
>End Sub

の様に、Elseを使って、常に空白も代入するようにしました。

本当に助かりました。

ありがとうございました。

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