|
▼kanabun様
>上の4行は、こういう風にも考えられませんか?
考えられます!!
>[R11]を基点として【A1:H1】,【J1:Q1】,【S1:Z1】
> 【A5:H5】,【J5:Q5】,【S5:Z5】、
>
>[R19]を基点として【A1:H1】,【J1:Q1】,【S1:Z1】
> 【A5:H5】,【J5:Q5】,【S5:Z5】、
>
>Sub Try1()
> Dim r As Range
> Dim c As Range
>
> Set r = Worksheets(1).[R11] '最初のCopyブロック基点セル
> Set c = Worksheets(2).[C5] '最初のPaste先セル
'なぜ[]←を使用するのですか?基点にするセルを指定する時は、[]を使用するの ですか?()ではだめなのですか?
'基点の考えかたはすごく勉強になります。応用がききそうですね。
> Do
> BlockCopy r, c
>
> Set r = r.Offset(8) 'つぎのブロック先頭へ
'ヘルプを見てもいまいちイメージできなかったのですが、
列と行の指定ができるとおもうのですが、省略している場合は、
横方向へ8ってことになるのですか?
> Set c = c.Offset(16)
'れは下方向に16?上と記述がかわらないのに、下へいくのですか?
いません。教えてください。
> Loop Until r.Row > 1207
r行が、1207行になるまで、BlockCopyしなさいってことですか。
>End Sub
>
>Private Sub BlockCopy(ByVal r As Range, ByVal c As Range)
'ByValって、sub Try()のr,cをこっちでも使うってことですか。
> With r
> .Range("A1:H1").Copy
> c.Range("A1").PasteSpecial xlValues, Transpose:=True
'基点にしたセルrから、("A1:H1")分をコピー
'基点にしたセルCから、"A1"分の所に貼付ける
Transposeがtrueなら。Transposeが解りません。ヘルプがでてきませ んでした。ううう。
> .Range("J1:Q1").Copy
> c.Range("C1").PasteSpecial xlValues, Transpose:=True
> .Range("S1:Z1").Copy
> c.Range("F1").PasteSpecial xlValues, Transpose:=True
>
> .Range("A5:H5").Copy
> c.Range("I1").PasteSpecial xlValues, Transpose:=True
> .Range("J5:Q5").Copy
> c.Range("K1").PasteSpecial xlValues, Transpose:=True
> .Range("S5:Z5").Copy
> c.Range("N1").PasteSpecial xlValues, Transpose:=True
> End With
>End Sub
上記に対しご教示の程宜しくお願い致します。
|
|