Excel VBA質問箱 IV

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

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


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

【63839】for eachで マクロ人 09/12/18(金) 21:35 質問[未読]
【63840】Re:for eachで kanabun 09/12/18(金) 22:04 発言[未読]
【63841】Re:for eachで マクロ人 09/12/18(金) 22:47 質問[未読]
【63842】Re:for eachで kanabun 09/12/18(金) 23:05 発言[未読]

【63839】for eachで
質問  マクロ人  - 09/12/18(金) 21:35 -

引用なし
パスワード
   For eachを使用して
range("A1:D10")にある語句より対象のセルを見つけて、代入するマクロをつくりたいのですが

sub test()
dim myCell as range
for wach myCell in range("A1:D10")
if myCell.value=1 then
数字(n) =myCell.value
end if
next

という感じにしたいのですが、数字(n)は1から10まで設定したいです。
for n=1 to 10

next

なら、nは1から10へ変更しながら代入していけますが
for eachの場合はどうすればいいんんでしょうか。

【63840】Re:for eachで
発言  kanabun  - 09/12/18(金) 22:04 -

引用なし
パスワード
   ▼マクロ人 さん:

こんにちは。
> range("A1:D10")にある語句より対象のセルを見つけて
の部分が良く分かりませんが、

>という感じにしたいのですが、数字(n)は1から10まで設定したいです。
>for eachの場合はどうすればいいんんでしょうか。

だけ、コードを修正すると、こんな感じでしょうか?

Sub test2()
 Dim myCell As Range
 Dim n As Long
 Dim 数字() As Long
 With Range("A1:D10")
   ReDim 数字(1 To 10)
   For Each myCell In .Cells
     If myCell.Value = 1 Then
       n = n + 1
       数字(n) = myCell.Value
       If n = 10 Then Exit For
     End If
   Next
 End With
End Sub

【63841】Re:for eachで
質問  マクロ人  - 09/12/18(金) 22:47 -

引用なし
パスワード
   ▼kanabun さん:

ご回答ありがとうございます。
やりたいことは、こういうことなのですが、具体的に言うと
if myCell.value=1というのが、製品1の時、数値1に製品1の1つ隣にあり数値を、数字(n)に代入する。という感じにしたいのです。
教えていただいたものを加工したいのですが、うまく動いてくれません。

どう変更すればいいのでしょうか。


>Sub test2()
> Dim myCell As Range
> Dim n As Long
> Dim 数字() As Long
>  With Range("A1:D10")
>   ReDim 数字(1 To 10)
>   For Each myCell In .Cells
     If myCell.Value = 製品(n) Then
>       n = n + 1
       数字(n) = myCell.offset(0,1).Value
>       If n = 10 Then Exit For
>     End If
>   Next
> End With
>End Sub

これだと、うまく動いてくれないのですが、どうすればいいでしょうか

【63842】Re:for eachで
発言  kanabun  - 09/12/18(金) 23:05 -

引用なし
パスワード
   ▼マクロ人 さん:

>やりたいことは、こういうことなのですが、具体的に言うと
>if myCell.value=1というのが、
> 製品1の時、数値1に製品1の1つ隣にあり数値を、数字(n)に代入する。という感じにしたいのです。
>教えていただいたものを加工したいのですが、うまく動いてくれません。

それだと、ある列をMatchで検索して「製品1」のあるセルを見つけ、
そのセルの右隣の数値を拾う(数値(1)に入れる) というような処理に
なるのかな?
もすこし具体的な シートレイアウトを説明してもらったほうが、
方法を考えやすいですね

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