Excel (VBA)

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

 
(Windows 10 Home : Excel 2016)
マクロの自動記録を、For To Next ステートメントで回したい
投稿日時: 17/10/03 14:39:00
投稿者: Dellcasio

いつもお世話になっております。
 
Excel 関数 できる大辞典の
512ページの所の、TREND 関数を参考にして
マクロの記録でTREND関数の売上の予想をしたのですが、
自動記録のマクロのコードは以下のようになりました。
 
 
 
Sub Macro1()
 
' Macro1 Macro
 
    Range("K11:K13").Select
    Selection.FormulaArray = _
    "=TREND(R[-9]C:R[-1]C,R[-9]C[-1]:R[-1]C[-1],RC[-1]:R[2]C[-1])"
                 
End Sub
 
 
このコードを、For i = To Next ステートメントで回したいのですが、
Range("K11:K13").Select の行の所をどの様に
コードを書き換えたら良いのかわかりません。
どの様に書き換えたら良いのか教えて頂けないでしょうか
 
 
 

回答
投稿日時: 17/10/03 14:53:07
投稿者: WinArrow
投稿者のウェブサイトに移動

数式の内容は、理解できませんが、
単純に、K11〜K13をループすればよいのでしたら
 
Dim tCELL As Range
    For Each tCELL In Range("K11:K13")
        tCELL.FormulaArray = "=TREND(R[-9]C:R[-1]C,R[-9]C[-1]:R[-1]C[-1],RC[-1]:R[2]C[-1])"
    Next
 
こんな感じかな?

投稿日時: 17/10/03 15:15:19
投稿者: Dellcasio

WinArrow さんの引用:
数式の内容は、理解できませんが、
単純に、K11〜K13をループすればよいのでしたら
 
Dim tCELL As Range
    For Each tCELL In Range("K11:K13")
        tCELL.FormulaArray = "=TREND(R[-9]C:R[-1]C,R[-9]C[-1]:R[-1]C[-1],RC[-1]:R[2]C[-1])"
    Next
 
こんな感じかな?

 
 
 
WinArrowさん
ご回答ありがとうございました。
 
やりたいことはループではなく、
3行づつの間隔を保ちながら
1行づつ行を下げて計算する通常のコードを書きたいのです。
 
for i = 1 to 10
next 
 
のコードが使える様にしたいのです。
ご指導宜しくお願い致します。
 
 
 
(コード説明)
 
K11〜K13の部分は、
K11の部分が1ヶ月先の売上予想
K12の部分が2ヶ月先の売上予想
K13の部分が3ヶ月先の売上予想
になります。

回答
投稿日時: 17/10/03 15:47:26
投稿者: WinArrow
投稿者のウェブサイトに移動

>for i = 1 to 10
 
のうしろに Step 3
 
を追加してみて

投稿日時: 17/10/03 16:31:38
投稿者: Dellcasio

WinArrow さんの引用:
>for i = 1 to 10
 
のうしろに Step 3
 
を追加してみて

 
 
  
WinArrowさん
ご回答ありがとうございます。
  
  
  
希望は、この様な感じの
  
@
  
   For i = 1 To 10
   Range("E" & i:"E" & i + 3 ).Value
     Next
  
または、
  
A
  
  S = "=Range(E#:E$).Value"
  
    For i = 1 To 10
      
    S2 = Replace(S, "#", i)
    S3 = Replace(S2, "$", i + 3)
  
  
この様な置換を使った方法を使いたいのですが、
いずれもコンパイルエラーになってしまいます。
  
ご指導宜しくお願い致します。
  

回答
投稿日時: 17/10/03 17:06:16
投稿者: WinArrow
投稿者のウェブサイトに移動

> Range("E" & i:"E" & i + 3 ).Value

 Range("E" & i & ":E" & i + 3 ).Value
 
のように考えます。

投稿日時: 17/10/03 17:27:19
投稿者: Dellcasio

WinArrow さんの引用:
> Range("E" & i:"E" & i + 3 ).Value

 Range("E" & i & ":E" & i + 3 ).Value
 
のように考えます。

 
 
WinArrowさん
ご回答ありがとうございました。
助かりました。
いつもありがとうございます。