Excel VBA質問箱 IV

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

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


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

【58843】For〜Next わかば 08/11/13(木) 15:12 質問[未読]
【58847】Re:For〜Next りった 08/11/13(木) 16:10 回答[未読]
【58848】Re:For〜Next Jaka 08/11/13(木) 16:29 発言[未読]
【58850】Re:For〜Next わかば 08/11/13(木) 20:23 お礼[未読]
【58851】Re:For〜Next わかば 08/11/13(木) 20:28 お礼[未読]

【58843】For〜Next
質問  わかば  - 08/11/13(木) 15:12 -

引用なし
パスワード
   お世話になります。

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim a As Range, b As Range, c As Range, d As Range        
     Set a = Intersect(Target, Range("A1:H50"))
     Set b = Intersect(Target, Range("A51:H100"))
     Set c = Intersect(Target, Range("A101:H150"))
     Set d = Intersect(Target, Range("A151:H200"))
       If Not a Is Nothing Then
           Userform1.Label.Caption = "P1"
     ElseIf Not b Is Nothing Then
           Userform1.Label.Caption = "P2"
     ElseIf Not c Is Nothing Then
           Userform1.Label.Caption = "P3"
     ElseIf Not d Is Nothing Then
           Userform1.Label.Caption = "P4"
  End If
     Set a = Nothing: Set b = Nothing: Set c = Nothing: Set d = Nothing

For〜Nextで、やってみたいのですが、出来ませんでした。
宜しく、お願いします。

【58847】Re:For〜Next
回答  りった  - 08/11/13(木) 16:10 -

引用なし
パスワード
   こんなのどうでしょう。

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
 Dim sAdd As New Collection
 Dim sVal As New Collection
 Dim i As Integer
 
 sAdd.Add Item:="A1:H50"
 sAdd.Add "A51:H100"
 sAdd.Add "A101:H150"
 sAdd.Add "A151:H200"
 sVal.Add "P1"
 sVal.Add "P2"
 sVal.Add "P3"
 sVal.Add "P4"

 For i = 1 To sAdd.Count
  If Not Intersect(Target, Range(sAdd.Item(i))) Is Nothing Then
   UserForm1.Label.Caption = sVal.Item(i)
   Exit For
  End If
 Next

 Set sAdd = Nothing: Set sVal = Nothing

End Sub

【58848】Re:For〜Next
発言  Jaka  - 08/11/13(木) 16:29 -

引用なし
パスワード
   そのままで別にいいと思いますけどね。
無理にやるとこんなかなぁ?

Dim a As Range
ct = 0
For i = 1 To 200 Step 50
  Set a = Intersect(Target, Range("A1:H50").Offset(i - 1))
  ct = ct + 1
  If Not a Is Nothing Then
   Userform1.Label.Caption = "P" & ct
   Exit For '???
  End If
Next

【58850】Re:For〜Next
お礼  わかば  - 08/11/13(木) 20:23 -

引用なし
パスワード
   りったさん Jakaさん
有り難うございました。

For〜Nextの使い方がわからず

【58851】Re:For〜Next
お礼  わかば  - 08/11/13(木) 20:28 -

引用なし
パスワード
   りったさん Jakaさん
こんばんは

For〜Nextの使い方が、わからず
勉強のため お聞きしました。
とても参考になりました。

本当に有り難うございました。

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