マクロを使用してレポートを生成しています。構造から情報を取得し、数式を使用して、ワークシートのセルに入力するさまざまな数値を計算します。これらのワークシートは、マクロでも作成されます。ユーザーがセルをクリックしたときに、セルに入力した数値を計算するための数式がセルにとどまるようにするにはどうすればよいですか? つまり、ユーザーは、レポートの作成後にセルの式を変更することができます。
関数で新しいセルを作成する方法は次のcreateTS()
とおりです。
Function createTS(ByRef index As Integer, ByRef wBStruct As wBStruct, ByRef gcBStruct As gcBStruct) As Worksheet
'1) set up worksheet
Set createTS = ThisWorkbook.Worksheets.Add(, ActiveSheet, 1, xlWorksheet)
With createTS
ThisWorkbook.VBProject.VBComponents(.CodeName).Name = cnDic(index)
.Name = wBStruct.wTumorCellLine & "_" & wBStruct.wTypeBlock(index).projNum & "(" & gcBStruct.typeName & ")"
End With
'...lots of code...
'this is where I populate the cells in the worksheet'
'...lots of code...
End Function
関数内で、構造から特定のセルに情報をコピーする可能性があります (これらのセルには数式が含まれていませんが、他のセルの値を計算する元の数値です。つまり、他のセルの数式はマクロで作成された構造ではなく、他のセルを参照します)。ポイントは、数式をセルにとどめることができれば、他のセルしか参照できないということですか? (私の最初の信念)
セルの例は次のようになります。
createTS.Cells(10,x).Value = createTS.Cells(1,5).Value*100 ' x would be some integer
cell (10,x)
ユーザーが必要に応じて後で式を変更できるように、^ 式が内部に留まるようにするためのコードをどこに含めればよいでしょうか?
私がやりたいことに基づいて、これを行うためのより良い方法はありますか?
ちなみに、式で他のセルを参照するだけで私の仮定が正しいと仮定すると、式には定数のように非セルを参照する変数を含めることができx = 5.3445435
ます5.3445435
か? 上記の変数は別のセルでしょうか? どのような可能性がありますか?
レポートの生成が完了すると、マクロはシャットダウンすることに注意してください。
ありがとう!