• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セルの値に応じて数式を入力するシートを変えたい)

セルの値に応じて数式を入力するシートを変えたい

SI299792の回答

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (708/1464)
回答No.9

入力したい式は =IF(ISBLANK(G47),"",G47*I47) 最初に書いて下さい。 プログラム内に" を書くときは、""にする必要があります。 今回、""なので、""""にします。 4種類用意しました、 実際の数式の違う数式を書くのが嫌なら、Macro3、Macro4の様にして、直接セル上に数式を書くしかありません。 この2つを使う場合、図の様に入力してください。 ' Option Explicit ' Sub Macro1() '  普通にに数式を入れる   Range([AAA!D4] & "!F7") = "=IF(ISBLANK(G47)),"""",G47*I47)" End Sub ' Sub Macro2() '  エラーになった場合、文字列にして強制的に入れる   Const Formula = "=IF(ISBLANK(G47)),"""",G47*I47)" '   On Error Resume Next   Range([AAA!D4] & "!F7") = "'" & Formula   Range([AAA!D4] & "!F7") = Formula   On Error GoTo 0 End Sub ' Sub Macro3() '  D4にシート、E4にアドレス、F4に数式を入れて実行   Range([AAA!D4] & "!" & [E4]) = [AAA!F4].Formula & "" End Sub ' Sub Macro4() '  D4にシート、E4にアドレス、F4に数式を入れて実行 '  エラーになった場合、文字列にして強制的に入れる   On Error Resume Next   Range([AAA!D4] & "!" & [AAA!E4]).Formula = [AAA!F4].Formula   Range([AAA!D4] & "!" & [AAA!E4]).Formula = [AAA!F4].Formula & ""   On Error GoTo 0 End Sub

rabbit78
質問者

お礼

ご回答ありがとうございます。 「""""」にする事で無事入力できました。 質問の伝え方がわかりづらく申し訳ありませんでした。 ご丁寧な対応に感謝致します。

関連するQ&A

  • 別シートの値を検索して一致したものを合計する

    excelvba初心者です。 お手数おかけします。 難問なのかどうかもよく分からず。。困っています。 シート1       シート2   シート3 AAA 100     AAA 50      BBB 20 BBB 200   CCC 150   CCC 30 DDD 300   QQQ 250   DDD 10 EEE 400     WWW 350  RRR 40 上記の値を決められた順番に別シートに集計したい(その時に、値を1/10にしたい) シート4 AAA 150 BBB 220 CCC 180 DDD 310 EEE 400 FFF 0 GGG 0 www 350 findでAAAを検索し見つかった値を ifにて条件分岐させるものをつくったものの プロシャーシーが大きすぎと言われてできません。 どなたか教えていただけないでしょうか。

  • 二つのシートのセルを比較して、あるセルの値が一致した場合に、片方のセル

    二つのシートのセルを比較して、あるセルの値が一致した場合に、片方のセルの値を 別のシートに設定するには、どうしたらいいでしょうか? [シート1] --|A---B---C---D---E --+---+---+---+---+--- 01|A1 ??? 02|A2 yyy 03|B1 ??? 04|C1 sss [シート2] --|A---B---C---D---E --+---+---+---+---+--- 01|A1 aaa 02|A3 bbb 03|B0 xxx 04|B1 ccc 05|C1 sss シート1 [Aのセル]とシート2の[Aのセル] を比較し、同じ値だった場合に、 シート2の [B] の値を シート1の[C]に設定するための関数はどのようにしたら良いでしょうか? 最終的に、シート1が --|A---B---C---D---E --+---+---+---+---+--- 01|A1 ??? aaa 02|A2 yyy 03|B1 ??? ccc 04|C1 sss sss となります。 Excelの関数あマクロは、どうしても分からなく質問させてもらいました。 申し訳ありませんが、ご教授宜しくお願い致します。

  • 参照先をセルに入力して、他のブックのセルを参照する方法

    Excelで、他のブックのセルを参照したいです。 たとえば、あるExcel(test.xls)上から、別のフォルダにある複数のブック C:\AAA.xls D:\BBB.xls の値を参照する場合ですが(AAA.xlsとBBB.xlsは、値の内容は違うが、同じシート名の同じセルに値が入っている)、 test.xlsのSheet1のA1に「C:\」、A2に「AAA.xls」を入力すると、test.xlsのSheet2にはAAA.xlsの値を表示し、 test.xlsのSheet1のA1に「D:\」、A2に「BBB.xls」を入力すると、test.xlsのSheet2にはBBB.xlsの値を表示するような方法です。 参照先が固定であれば、='C:\[AAA.xls]Sheet名'!D5・・・のような指定ができるのですが、参照するファイル名とパス名が都度変わるので、入力したセルの値で参照先を変えたいのです。 ちなみに、INDIRECTを使うやり方も考えましたが、参照先のブックを開いていないと値が表示されないようなので、却下されました。 (参照先のブックは開かなくても値を参照させたいです) どなたかご存知の方がいらっしゃったら、教えてください。 よろしくお願いします。

  • Sheet2にある情報をSheet1のA1に1列で

    マクロを作りたいのですが、以下のようなものをどうすればできるかで詰まっています。 Sheet2にある情報をSheet1のA1に1列(A列B列C列の順)で並ぶようにしたいです。 Sheet2の内容は変わることがあるので、データがどの行まで入っているかはマクロを走らせるときにチェックしないとわからないかと思います。 [Sheet1] 111 222 333 aa bb aaa bbb ccc ddd eee -------------------------- [Sheet2] A B C 1 111 aa aaa 2 222 bb bbb 3 333 ccc 4 ddd 5 eee 素人な質問かもしれないですが、調べてもわからなかったので、教えていただけると幸いです。

  • 数式の入力

    全てのシートのセルの同じ位置に SUMの範囲を指定して (たとえばE5に足し算の数式を入力して値はE6からE10) そんな数式を入力したいのですが、 そんなこと出来ますか? ※もう既に数値は入力されていています。

  • 番号入力するとデーターから自動的に該当に入力できる?

    下記例の入力したいシートに種類番号を入力すると、別シートの内容から検索して最初の入力したいシートの名前・住所欄に自動的に入力出来るようにできたらいいなと考ええています、そんなことが出来るでしょうか? 例■入力したいシート    A    B  C D E F 1種類番号 3 2名前   ううう  3住所   ccc 4 ■データシート    A    B    C  D E F 1種類番号 名前  住所 2 1    あああ aaa 3 2    いいい  bbb 4 3    ううう   ccc 5 4    えええ   ddd

  • 任意のブックのシートをコピー

    任意のブックのシートをコピーしたいのです。 たとえば、いつも使用するブック【AAA】があるとして、そこに後から開いたブック【BBB】のシート「あああ」をコピーしたいのです。 ここでの問題は、そのブックが常に【BBB】ではなということです。 例えはブック【CCC】のシート「あああ」であったり、ブック【DDD】のシート「あああ」であったり。 シート名は常に「あああ」なのですが、ブック名が毎回違うのです。 ブック【AAA】のマクロでなんとかできますでしょうか?

  • 【Excel VBA】データを集計する数式を入力するマクロ

    Excel2003を使用しています。   A列   B列   C列   D列   E列   F列 1      9/1                    20000 2      9/2              1000 3      9/10              5000 : : 10           9月計        ※1    ※2    11 12 13     10/1                   10000 14     10/10             2000 15     10/14                   4000 : : 20           10月計       ※3    ※4 上記のデータでいうと、 ※1(E10セル) =SUM(E1:E9) ※2(F10セル) =SUM(F1:F9) ※3(E20セル) =SUM(E13:E19) ※4(F20セル) =SUM(F13:F19) という内容の数式を入力するマクロを作成したく、数式を入力したいセルをアクティブにして、ボタン等に登録したマクロを実行すると数式が入力されるようにしたいと考えていますが、その際、集計範囲の最下行は、アクティブセルの1行上までになりますが、最上行をどのようにして取得すればよいかがわかりません。 (実際のデータは、もっと行数も入力されているデータ数も多いです) また、他にもこんな方法があるとか、こうしたほうが簡単とかあれば、教えていただけると勉強にもなりますので助かります。 うまく説明できなくて申し訳ありませんが、よろしくお願いします。

  • セルの値に応じてシート間をデータ移動させたい

    シート名が 「1」 「2」 「3」 「4」 「5」 という5つのシートがあります。 A2とA4にデータが入力されていて、 D4とI4に入力した値(シート名)に応じて、 マクロでシート間をデータ移動させたいのですが、 どなたかおわかりの方がいらっしゃいましたら教えて下さい。 (移動先にデータが存在する場合は上書きして問題ありません) 例) D4に「1」 I4に「3」と入力して実行すると、 シート「1」からシート「3」にA2とA4の値が移動するマクロを作成したい。

  • 数式が入った空白のセルを合計するとき

    数式が入った空白のセルを合計するとき WINDOWS XP EXCELL 2003 です。 各セルの数式は C43 =SUM(B36-C36) D36 =SUMPRODUCT((入力!$C$2:$C$50=$A36)*(入力!$A$2:$A$50=D$1),入力!$E$2:$E$50) E36 =SUMPRODUCT((入力!$D$2:$D$50=$A36)*(入力!$A$2:$A$50=D$1),入力!$F$2:$F$50) E43 =SUM(C43+D36-E36) と数式がそれぞれに入っています。 ご教示を仰ぎたいのは D36,E36 に値がない空白のセルですがこの場合、E43 G43 I43 と表示(この場合 50,000)がされますがD36 若しくはE36に値が表示されたときのみにE43 を表示したいのですが可能でしょうか。 目的は見やすくしたいのですが。 ご指導いたたければ幸甚の至りです。