Excel VBA質問箱 IV

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

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


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

【43390】まとめかたおしえて! とし 06/10/12(木) 19:57 質問[未読]
【43397】Re:まとめかたおしえて! Mk 06/10/12(木) 21:55 発言[未読]
【43398】Re:まとめかたおしえて! ponpon 06/10/12(木) 22:38 発言[未読]
【43399】Re:まとめかたおしえて! りん 06/10/12(木) 22:45 回答[未読]
【43400】Re:まとめかたおしえて! とし 06/10/13(金) 0:32 発言[未読]
【43401】Re:まとめかたおしえて! とし 06/10/13(金) 1:05 発言[未読]
【43403】Re:まとめかたおしえて! りん 06/10/13(金) 8:35 回答[未読]
【43406】Re:まとめかたおしえて! とし 06/10/13(金) 12:52 お礼[未読]
【43420】Re:まとめかたおしえて! りん 06/10/13(金) 20:12 回答[未読]

【43390】まとめかたおしえて!
質問  とし  - 06/10/12(木) 19:57 -

引用なし
パスワード
   みなさん よろしくお願いします。
まくろの記録を取ったのですがまとめかた
おしえてください。
コードは下記です。
Sub 転記()

  Sheets("sheet1").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-5]C[2]"
  Range("F13:G13").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-7]C[2]"
  Range("F16:G16").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-9]C[2]"
  Range("F19:G19").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-11]C[2]"
  Range("F22:G22").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-13]C[2]"
  Range("F25:G25").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-15]C[2]"
  Range("F28:G28").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-17]C[2]"
  Range("H28").Select
  Range("E32:F32").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
  Range("E33:F33").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
  Range("E34:F34").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
  Range("E35:F35").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
  Range("E36:F36").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
  Range("E37:F37").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
  Range("E38:F38").Select
  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
  Range("G38:I38").Select
End Sub

【43397】Re:まとめかたおしえて!
発言  Mk  - 06/10/12(木) 21:55 -

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

こんばんは。
まとめ方?の意味を想像してですが・・・
間違っていたらごめんなさい。
コードを変数等で制御する意味でしょうか?

それだったら、カウント変数で出来ませんか?
具体的な内容まで見ていませんが・・・
規則性があるようですので、それで出来ると思います。

【43398】Re:まとめかたおしえて!
発言  ponpon  - 06/10/12(木) 22:38 -

引用なし
パスワード
   ▼とし さん:
>Sub 転記()
>
>  Sheets("sheet1").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-5]C[2]"

  ActiveCellが分からないので、相対位置であるR[-5]C[2]がわかりません。 

>  Range("F13:G13").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-7]C[2]"
 
  F13:G13を選んでいるようですが、Selection.FormulaR1C1 ではなく、
  ActiveCell.FormulaR1C1 =となっていますが、
  ActiveCellは、一つしかないので   
  F13だけに"=Calendar!R[-7]C[2]"を入力するのですか?

以下同じ・・・
>  Range("F16:G16").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-9]C[2]"
>  Range("F19:G19").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-11]C[2]"
>  Range("F22:G22").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-13]C[2]"
>  Range("F25:G25").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-15]C[2]"
>  Range("F28:G28").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-17]C[2]"
>  Range("H28").Select
>  Range("E32:F32").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
>  Range("E33:F33").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
>  Range("E34:F34").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
>  Range("E35:F35").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
>  Range("E36:F36").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
>  Range("E37:F37").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
>  Range("E38:F38").Select
>  ActiveCell.FormulaR1C1 = "=Calendar!R[-20]C[3]"
>  Range("G38:I38").Select
>End Sub

【43399】Re:まとめかたおしえて!
回答  りん E-MAIL  - 06/10/12(木) 22:45 -

引用なし
パスワード
   とし さん、こんばんわ。

>まくろの記録を取ったのですがまとめかた
>おしえてください。

同じ内容が転記されるには、例えばこんな感じ。

Sub 転記()
  Dim II As Integer, RR As Long, CC As Long
  For II = 1 To 13
   Select Case II
     Case 1 To 6: RR = 10 + II * 3: CC = 6 '上から6つはF列3つおき
     Case Else:  RR = 25 + II:   CC = 5 '残りはE列
   End Select
   '数式を設定
   Worksheets("sheet1").Cells(RR, CC).Formula = "=Calendar!H" & 5 + II
  Next
End Sub

【43400】Re:まとめかたおしえて!
発言  とし  - 06/10/13(金) 0:32 -

引用なし
パスワード
   ▼りん さん:
みなさんすみませんsheet1で確認したところ
マクロの記録で記入されているのは
下記の通りです
なぜマクロ記録ではみんな
"=Calendar!R[-20]C[3]"不思議です。
sheet1はきちんと下記H5〜H18まで入っていました
お騒がせしましたこのうえでまとめかた
お願いします。

Sub 転記()

  Sheets("sheet1").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H5"
  Range("F13:G13").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H6"
  Range("F16:G16").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H7"
  Range("F19:G19").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H8"
  Range("F22:G22").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H9"
  Range("F25:G25").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H10"
  Range("F28:G28").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H11"
  Range("H28").Select
  Range("E32:F32").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H12"
  Range("E33:F33").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H13"
  Range("E34:F34").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H14"
  Range("E35:F35").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H15"
  Range("E36:F36").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H16"
  Range("E37:F37").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H17"
  Range("E38:F38").Select
  ActiveCell.FormulaR1C1 = "=Calendar!H18"
  Range("G38:I38").Select
End Sub

【43401】Re:まとめかたおしえて!
発言  とし  - 06/10/13(金) 1:05 -

引用なし
パスワード
   みなさんたびたびすみません
こんな感じでした。まくろの記録が変でした。

Sub 転記()

  Range("F10:G10").Value = "=Calendar!H5"
  Range("F13:G13").Value = "=Calendar!H6"
  Range("F16:G16").Value = "=Calendar!H7"
  Range("F19:G19").Value = "=Calendar!H8"
  Range("F22:G22").Value = "=Calendar!H9"
  Range("F25:G25").Value = "=Calendar!H10"
  Range("F28:G28").Value = "=Calendar!H11"
  Range("E32:F32").Value = "=Calendar!H12"
  Range("E33:F33").Value = "=Calendar!H13"
  Range("E34:F34").Value = "=Calendar!H14"
  Range("E35:F35").Value = "=Calendar!H15"
  Range("E36:F36").Value = "=Calendar!H16"
  Range("E37:F37").Value = "=Calendar!H17"
  Range("E38:F38").Value = "=Calendar!H18"
End Sub

【43403】Re:まとめかたおしえて!
回答  りん E-MAIL  - 06/10/13(金) 8:35 -

引用なし
パスワード
   とし さん、おはようございます。

>Sub 転記()
>
>  Range("F10:G10").Value = "=Calendar!H5"
   略
>  Range("F28:G28").Value = "=Calendar!H11"
↑ここはF列で10行目から3行ごと
>  Range("E32:F32").Value = "=Calendar!H12"
   略
>  Range("E38:F38").Value = "=Calendar!H18"
↑ここはE列で32行目から毎行
>End Sub

以上の条件を踏まえて分岐。

Sub 転記()
  Dim II As Integer, RR As Long, CC As Long
  For II = 1 To 14
   Select Case II
     Case 1 To 7: RR = 7 + II * 3: CC = 6 '上から7つはF列3つおき
     Case Else:  RR = 24 + II:   CC = 5 '残りはE列
   End Select
   '
   Worksheets("sheet1").Cells(RR, CC).Resize(1, 2) _
        .Value = "=Calendar!H" & (4 + II)
  Next
End Sub

ただしF10:G10が結合セルを意味するなら、.Resize(1, 2)の部分は不要です。

【43406】Re:まとめかたおしえて!
お礼  とし  - 06/10/13(金) 12:52 -

引用なし
パスワード
   ▼りん さん:
ありがとうございました。
コードの意味はよく解りませんがバッチリです。
お時間ありましたらII RR CC 意味おしえてくだせい。
>>Sub 転記()
>>
>>  Range("F10:G10").Value = "=Calendar!H5"
>   略
>>  Range("F28:G28").Value = "=Calendar!H11"
>↑ここはF列で10行目から3行ごと
>>  Range("E32:F32").Value = "=Calendar!H12"
>   略
>>  Range("E38:F38").Value = "=Calendar!H18"
>↑ここはE列で32行目から毎行
>>End Sub
>
>以上の条件を踏まえて分岐。
>
>Sub 転記()
>  Dim II As Integer, RR As Long, CC As Long
>  For II = 1 To 14
>   Select Case II
>     Case 1 To 7: RR = 7 + II * 3: CC = 6 '上から7つはF列3つおき
>     Case Else:  RR = 24 + II:   CC = 5 '残りはE列
>   End Select
>   '
>   Worksheets("sheet1").Cells(RR, CC).Resize(1, 2) _
>        .Value = "=Calendar!H" & (4 + II)
>  Next
>End Sub
>
>ただしF10:G10が結合セルを意味するなら、.Resize(1, 2)の部分は不要です。

【43420】Re:まとめかたおしえて!
回答  りん E-MAIL  - 06/10/13(金) 20:12 -

引用なし
パスワード
   とし さん、こんばんわ。
>コードの意味はよく解りませんがバッチリです。
ヘルプを見てね。

>お時間ありましたらII RR CC 意味おしえてくだせい。
変数です。
>>  Dim II As Integer, RR As Long, CC As Long
IIはFor・・・Nextループのカウンタ用でInteger型変数です。
RRは行番号の計算用でLong型変数です。
CCは列番号の分岐用でLong型変数です。
Integer型、Long型もヘルプを見てね。

ヘルプをみて意味がわからなかったらまた訊いてね。

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