• 締切済み

Excelのセルに式を設定

いつもお世話になってます win2000、Excel2000 以下のことは可能でしょうか? もしご存知の方がいらっしゃればご教授お願いします 例えば、セルA1、A2、A3に100、200、300と値が設定されていたとし セルのB1に「=ROUNDUP(100* 1.5, 1)」とあったとします ここでなのですが、B1内にある式をA1、A2、A3に反映させることは可能でしょうか? 結果として、     ↓ここはA列の値 A1は「=ROUNDUP(100* 1.5, 1)」 B1は「=ROUNDUP(200* 1.5, 1)」 C1は「=ROUNDUP(300* 1.5, 1)」 にしたいです。 宜しくお願いします

みんなの回答

回答No.3

まだよくわからん。 B1 にもともと入ってる式を元にする必要があるってことは、質問文に提示した "「=ROUNDUP(100* 1.5, 1" ってのも変更される可能性があるのかなぁ。 変更されるとすれば 100 のところだけでいいのかなぁ。。。 変更される可能性がないんだったらマクロの中で式をハード コーディングしちゃってもいいと思うんだけど。 Cells(1, 1).Formula = "=ROUNDUP(" & Cells(1, 1).Value & " * 1.5, 1)" Cells(2, 1).Formula = "=ROUNDUP(" & Cells(2, 1).Value & " * 1.5, 1)" Cells(3, 1).Formula = "=ROUNDUP(" & Cells(3, 1).Value & " * 1.5, 1)" もし B1 の式を利用しつつ、B1 の式の 100 の所だけを A1, A2, A3 の値に置き換えるだけってんなら、 Sub test() Dim anteriorHalf As String Dim lastHalf As String anteriorHalf = Left(Cells(1, 2).Formula, InStr(Cells(1, 2).Formula, "(")) lastHalf = Mid(Cells(1, 2).Formula, InStr(Cells(1, 2).Formula, "*")) Cells(1, 1).Formula = anteriorHalf & Cells(1, 1).Value & lastHalf Cells(2, 1).Formula = anteriorHalf & Cells(2, 1).Value & lastHalf Cells(3, 1).Formula = anteriorHalf & Cells(3, 1).Value & lastHalf End Sub とかみたいに面倒くさいしパッと見、意味不明なコードだし。

Tori_Mayo
質問者

お礼

お世話になります 返信遅れましてすみません やはり、マクロを組まないとダメですね 上記の内容を参考にさせて頂きます ありがとうございました

回答No.2

> B1内にある式をA1、A2、A3に反映 > A1は「=ROUNDUP(100* 1.5, 1)」 > B1は「=ROUNDUP(200* 1.5, 1)」 > C1は「=ROUNDUP(300* 1.5, 1)」 A1、A2、A3? A1、B1、C1 どちらが正しいのでしょう? セルA1、A2、A3に100、200、300 セルB1、B2、B3に =ROUNDUP(A1* 1.5, 1) =ROUNDUP(A2* 1.5, 1) =ROUNDUP(A3* 1.5, 1) と書くだけではだめなのでしょうか? あくまでA1,A21,A3に書き移すのでしょうか? それなら何かアクションが必要です。 アクションでVBA マクロを実行したらできます。 アクション ・ファイルを開くとマクロ実行 ・ショートカットキーを押すとマクロ実行 など マクロは例えば次の様に登録します。 セルA1、A2、A3に100、200、300が書かれた状態で 1.[ツール]→[マクロ]→[新しいマクロの記録] 2.ショートカットキーを適当に設定してOK 3.セルB1にROUNDUP(A1* 1.5, 1)と書く。 4. セルB1をコピーしセルB2,B3に貼り付け。 5.セルB1,B2,B3を同時に選択しカット。セルA1を選択。 6.[編集]→[形式を選択して貼り付け]で値にチェックをいれOK 7.[ツール]→[マクロ]→[記録終了] セルA1、A2、A3に100、200、300が書いた状態で ショートカットキーを実行すると A1、A2、A3に結果が写ります。

Tori_Mayo
質問者

お礼

返信ありがとうございます 記述ミスでした >「A1, B1, C1 に式を仕込みたい」 はA1,A2,A3です。失礼しました >=ROUNDUP(A1* 1.5, 1) >と書くだけではだめなのでしょうか? もともとA1に、B1の式だけを有効にしたいと思ってます >A1は「=ROUNDUP(100* 1.5, 1)」 結果がこのようになればと思ってます >それなら何かアクションが必要です。 そうですか。 マクロでの対応を行ってみようと思います 細かくご指導していただきましてありがとうございました

回答No.1

もともと B1 にある式と、A1, A2, A3 の関係がわかりません。 というか後半では 「A1, B1, C1 に式を仕込みたい」 と読み取れますが、これも関係が分かりません。 もし質問文が正しいのであれば、A1 と B1 は完全に式で上書きされちゃいますが。 補足して正確に教えてください。 一応、私なりの脳内解釈 1. A1, A2, A3 に入っている値を式に埋め込んでしまうパターン Cells(1, 2).Formula = "=ROUNDUP(" & Cells(1, 1).Value & " * 1.5, 1)" Cells(2, 2).Formula = "=ROUNDUP(" & Cells(2, 1).Value & " * 1.5, 1)" Cells(3, 2).Formula = "=ROUNDUP(" & Cells(3, 1).Value & " * 1.5, 1)" この場合、式を仕込んだ後に A1 の値を変更しても式の結果に変化はありません。 2. A列の値を式で参照するパターン Cells(1, 2).Formula = "=ROUNDUP(A1 * 1.5, 1)" Cells(2, 2).Formula = "=ROUNDUP(A2 * 1.5, 1)" Cells(3, 2).Formula = "=ROUNDUP(A3 * 1.5, 1)" この場合、埋め込んだ式は A1 ~ A3 を参照する式になっているので、後から A1 の値を変更すると式の計算結果も動的に変化します。

Tori_Mayo
質問者

補足

返信ありがとうございます 記述ミスでした >「A1, B1, C1 に式を仕込みたい」 はA1,A2,A3です。失礼しました >もともと B1 にある式と、A1, A2, A3 の関係 例題としてこのようにあげたので、B1のセル内の式が質問の様に設定できるのかという意味で書きました 脳内解釈なのですが、この式をマクロで組んでしまうと言うことでしょか? 宜しくお願い致します

関連するQ&A