アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCEL VBAマクロで質問です。セル中の式で値だけ更新したいのですが、方法がわかりません。

セルA1に={14}+(7.75*4)+(7.75*3)の様に計算式が入っています。()内に記述された数値は週ごとの予想作業時間だとします。{}内に記述された数値は実績時間です。
別のシートで計算した週の実績時間が24だったとして、セルA1の式中の(7.75*4)の予想時間部分を実績時間の{24}に置き換えたいと思っています。セルA1に={14}+{24}+(7.75*3)の様に。。。。
とりあえずRange("A1").Formulaで式の取り出しができるところまではできました。
が置き換えの方法がわかりません。このような事をVBAマクロで行いたいのですが教えてください。

A 回答 (4件)

添付画像のような表を作ってはどうでしょう。


C2~G2セルに週ごとの予想時間を入力し、H2セルに「=SUM(C2:G2)」と入力します。
C3~H3セルには次の数式を入力します。
C3 =C2
D3 =D2
E3 =E2
F3 =F2
G3 =G2
H3 =SUM(C3:G3)
この後、C3~H3セルをC4~H7セルにコピーし、C3、D4、E5、F6、G7を空欄にします。

マクロで2週目の実績時間を入力するには次のようにします。
Range("D4").Value = 24
「EXCEL VBAマクロで質問です。セル」の回答画像4
    • good
    • 0
この回答へのお礼

マクロでは、置換できないようなので質問締め切ります。
ほかのツール(Perl)で行う様にしてみます。
回答ありがとうございました。

お礼日時:2010/10/18 19:01

マクロを使用しなくてもエクセルの置換は数式も置換できるため


メニューの編集→置換で

検索する文字列:(7.75*4)
置換後の文字列:{24}

と設定すれば更新できるのではないでしょうか?

この回答への補足

回答ありがとうございます。説明が足りなかったようです。人間の入力では間違うので、マクロでボタン押したら全て更新できるようなものを考えています。

補足日時:2010/10/15 14:19
    • good
    • 0

追記。


 
「別のシートで計算した週の実績時間」が「Sheet2」シートの「D9」セルに入っているなら
Range("A1").Formula = "=14+Sheet2!D9+(7.75*3)"
でオッケー。

この回答への補足

意図した回答には近いのですが、
これですと他のシートとリンクされています。元ファイルは無くなるという前提とA1セルに数値の合計式で残しておきたいという前提で考えています。少し詳細な仕様は以下の様になっています。

以下(1)~(4)をマクロボタン操作で自動に行いたいと思っています。(3)が不明です。
(1)別のXlsシートを開いて、合計時間算出と取り込み
(2)集計シートのセルA1の式取り込み。14+(7.75*4)+(7.75*3)
(3)集計シート内のセルA1の該当の週(最初の()内)を(1)で取り込んだ時刻に置換する。
 2週目、3週目では以下の様になります。
 2週間目:=14+(7.75*4)+(7.75*3) ⇒ =14+[24]+(7.75*3)
            ^^^^^
 3週間目:=14+[24]+(7.75*3)   ⇒ =14+[24]+[15]
               ^^^^^
 A1の式はそのまま数値の合計として残しておきたいので
 "=14+Sheet2!D9+(7.75*3)"の様な記述ではなく。 "=14+[24]+(7.75*3)"の様に実績と予定の時間で残しておきたい。
 又、次の週の集計時は同じように"=14+[24]+[15]"の様に更新を行いたいです。
(4)集計シートを保存。
以上 よろしくお願い致します。

補足日時:2010/10/15 14:50
    • good
    • 1

Range("A1").Formula = "=14+24+(7.75*3)"


でオッケー。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!