Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2013)
Array関数、Rangeの利用方法で…
投稿日時: 20/03/21 19:30:59
投稿者: takaisasking

3ヶ所の範囲に @セル色付け A罫線を引く Bフォントサイズ指定 などをする場合、
以下のようなVBAコードを書いてみましたが、うまく行きません。
指定した範囲がArray関数で扱えないようです。
どこが間違っているか、あるいは別の方法があれば教えてください。
以上、よろしくお願いします。
 
Dim myR1 As Range, myR2 As Range, myR3 As Range
    Set myR1 = Range("I1:J14")
    Set myR2 = Range("L1:M14")
    Set myR3 = Range("O1:P14")
  
Dim i As Long
Dim myArray As Variant
    myArray = Array(myR1, myR2, myR3)

For i = LBound(myArray) To UBound(myArray)
         
    With myArray.Interior   ’@の作業  例として
        .Pattern = xlSolid
        .Color = 65535
    End With
 
Next i

回答
投稿日時: 20/03/21 20:40:14
投稿者: MMYS

配列には添字が必要です。
 
Sub SAMPLE1()
  Dim myR1 As Range, myR2 As Range, myR3 As Range
  Set myR1 = Range("I1:J14")
  Set myR2 = Range("L1:M14")
  Set myR3 = Range("O1:P14")
   
  Dim i As Long
  Dim myArray As Variant
  myArray = Array(myR1, myR2, myR3)
 
  For i = LBound(myArray) To UBound(myArray)
          
    With myArray(i).Interior '@の作業  例として
        .Pattern = xlSolid
        .Color = 65535
    End With
  
  Next
End Sub
 
−−−−−−−−−−−−−−−−−−−−−−−−−
配列を使わないやり方はコチラ
 
Sub SAMPLE2()
  Dim myR As Range
  Set myR = Range("I1:J14,L1:M14,O1:P14")
          
  With myR.Interior '@の作業  例として
    .Pattern = xlSolid
    .Color = 65535
  End With
End Sub

回答
投稿日時: 20/03/21 20:42:30
投稿者: simple

With myArray(i).Interior
とするんじゃないですか?

投稿日時: 20/03/21 21:58:49
投稿者: takaisasking

MMYSさん、simpleさん、どうもありがとうございました。
 
myArray(i). ←「添字」が必要でした。
うっかりしてました。
 
また、下記の方法も参考にさせていただきます。記述の方法が勉強になりました。
 
Set myR = Range("I1:J14,L1:M14,O1:P14")