人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

いま以下のマクロで値のみをセルに入力していますが、
VBAでセルに数式を入力したいのですが、ネットで
検索しても良く判りませんでした。
あまり時間がなく、教えて頂けるとうれしいです。


Sub Sample()
L = 0
For i = 1 To 9
A = "処理" & i
Cells.Find(what:=A).Select
B = Cells.Find(what:=A).Offset(-6).Value - Cells.Find(what:=A).Offset(-7).Value - 1
C = ActiveCell.Column
D = Cells.Find(what:=A).Offset(-7).Value
E = Cells.Find(what:=A).Offset(-6).Value

L = (Cells(E, C).Value - Cells(D, C).Value) / (E - D)
For M = 1 To E - D - 1
Cells(D + M, C).Value = Cells(D, C).Value + (L * M)
Next M: L = 0
End Sub

例) セルA110に "処理1"の値があり
「処理1」より7つ上の数値が "10" (セルA103)
「処理2」より6つ上の数値が "15" (セルA104)の場合
さらにセル A10 の数値が "100"
A15 の数値が "105" の時に
マクロを実行すると
A11=101
A12=102
A13=103
A14=104 の値が入力されますが、
以下の感じで数式を自動入力できないでしょうか?
LとMは直接数値で今回の例題の場合

A11=A100+(L*M) '''L=1:M=1
A12=A100+(L*M) '''L=1:M=2
A13=A100+(L*M) '''L=1:M=3
A14=A100+(L*M) '''L=1:M=4

よろしくお願いします。


●質問者: yasuto_09
●カテゴリ:コンピュータ
✍キーワード:A10 A15 NeXT SELECT sub
○ 状態 :終了
└ 回答数 : 2/3件

▽最新の回答へ

1 ● SALINGER
●35ポイント ベストアンサー

ここのところを

Cells(D + M, C).Value = Cells(D, C).Value + (L * M)

Cells(D + M, C).FormulaR1C1 = "=R" & D & "C" & C & "+" & L * M

のようにFormulaR1C1を使えば、数式が入ります。


求めてる回答ではない場合はご指摘ください。

http://www.moug.net/tech/exvba/0050098.htm


2 ● Mook
●35ポイント

変数が分かりずらかったので、名前を変えました。


ちょっと見た感じが分かりずらくなったかもしれませんが、計算そのものは変えていません。

Sub Sample()
 Dim findWord As String '// A
 Dim baseRange As Range
 
 Dim L As Double
 
 Dim startRow As Long
 Dim endRow As Long
 
 Dim i As Long
 Dim r As Long
 For i = 1 To 9
 findWord = "処理" & i
 Set baseRange = Cells.Find(what:=findWord)
 If Not baseRange Is Nothing Then
 With baseRange
 startRow = .Offset(-7).Value
 endRow = .Offset(-6).Value
 L = CDbl(Cells(endRow, .Column).Value - Cells(startRow, .Column).Value) / (endRow - startRow)
 
 For r = startRow + 1 To endRow - 1
 Cells(r, .Column).FormulaR1C1 = "=R" & startRow & "C+(" & L & "*" & r - startRow & ")"  '// r - startRow = M
 Next
 End With
 End If
 Next
End Sub
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ