Excel VBA質問箱 IV

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

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


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

【23599】ループのやり方が良く分かりません 超初心者 05/3/29(火) 20:58 質問[未読]
【23600】Re:ループのやり方が良く分かりません ponpon 05/3/29(火) 21:54 回答[未読]
【23601】Re:ループのやり方が良く分かりません 超初心者 05/3/29(火) 22:17 お礼[未読]

【23599】ループのやり方が良く分かりません
質問  超初心者  - 05/3/29(火) 20:58 -

引用なし
パスワード
   はじめまして、VBAの超初心者です。
本当に始めたばかりなのですが、どなたか教えて下さい。

XXX*(*以降は違う文字が入る)を検索して、数式
"=((rc[-1]*rc[-2])-((rc[-1]*rc[-2])*2))"
で計算させる。
このマクロをデータのまで最後まで(値は変動する)
ループさせるには、どうしたら良いでしょうか?

Sub TEST()
 
 Sheets("TEST").Select
 Cells.Find(What:="XXX*", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False).Activate
  Selection.End(xlToRight).Select
  ActiveCell.FormulaR1C1 = "=((rc[-1]*rc[-2])-((rc[-1]*rc[-2])*2))"
  
  End Sub

【23600】Re:ループのやり方が良く分かりません
回答  ponpon  - 05/3/29(火) 21:54 -

引用なし
パスワード
   ▼超初心者 さん:
ponponです。こんばんは。ヘルプでFindNextをしらべてください。
A列で検索しています。

>このマクロをデータのまで最後まで(値は変動する)
>ループさせるには、どうしたら良いでしょうか?

Sub TEST()
  Dim myRng As Range
  Dim myfirstAdd As String
 
 With Sheets("TEST").Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
  'A列のデータに対して検索
 Set myRng = .Find(What:="XXX*")
  If Not myRng Is Nothing Then
    myfirstAdd = myRng.Address
    Do
     myRng.End(xlToRight).Offset(0, 1).FormulaR1C1 = "=((rc[-1]*rc[-2])-((rc[-1]*rc[-2])*2))"
       'データの入っている一番右のその一つ横の列に
     Set myRng = .FindNext(after:=myRng) '次の検索
    Loop Until myRng.Address = myfirstAdd '一番はじめの検索結果に戻るまで
  Else
   MsgBox "データがありません。"
  End If
 End With

End Sub

【23601】Re:ループのやり方が良く分かりません
お礼  超初心者  - 05/3/29(火) 22:17 -

引用なし
パスワード
   ponponさんへ

 早速のご回答、ありがとうございました。
 うまくでき、また、大変勉強になりました。
 
 

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