[[20170107142311]] 『セルにマクロで数式を書き込み50行程度数式をオー』(ニンジン74) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルにマクロで数式を書き込み50行程度数式をオートフィルしたい』(ニンジン74)
入金・残金:1,000 出金500でF8にマクロで式を張り付けたい
OS:Win10,Excel2016
A6行に項目欄(日付、会社名、入金、出金、残金等)
 行  A   B    C    D    E    F
 6  番号 日付   会社名 入金  出金  残金 
 7    1  1/5    あさひ 1,000        1,000
 8    2    1/6    かない       500  数式張付け  
 9    3                        以下オートフィル 
                  (50行程度)
質問:いろいろ参照しましたが不明です。よろしくお願いします
F8には張付けたいマクロを作りましたがデバッグになります
直接書き込むときは、正しく動作しています
マクロで張付けたいのは、複数の人間で使用するため
行の追加や削除をすると数式が削除されたりして動作しなく
なるため、数式を再度張付けるようマクロを作りたいのです

作成したマクロ(FormulaをValueにもしてみた)
Sub 再張付け()

  Range("F8"),formula = "=IF(AND(D8=",E8="),",(F7+D8-E8))"
  Range("F8").select
Selection.AutoFill Destination:=Range("F8:F58"), Type:=xlFillDefault 
 Range("B4").select
End Sub
入力のない場合は、F列は0でなく空白にしています
また "IF(AND(D8=",E8="),",(F7+D8-E8))"にすると、当然文字として
張付けされます(文字を数式に変換しなければいけませんか)
直接表に書き込みで動作OK =IF(AND(D7=",E7="),"",(F6+D7-E7))
A列の番号付けは以下のマクロで動作しています(これを参考にしました)
Sub Macro1()
  Range("A7").Value = "=Row()-6"
    Range("A7").Select
    Selection.AutoFill Destination:=Range("A7:A50"), Type:=xlFillDefault
    Range("A4").Select
End Sub
追加
数式セルをロックしシートの保護をしてしまうと、行の追加、削除
が出来なくなりオートフィル等のマクロが停止してしまう(使えない)
追加削除をさせなければいいのですが

< 使用 Excel:Excel2016、使用 OS:Windows10 >


その式であっているのかわかりませんが。

1)"は、2個重ねて使用します。
http://officetanaka.net/excel/vba/tips/tips90.htm

2)式は、オートフィルしなくても、こんな感じで一度に入力できます。
Range("F8:F58").formula = "=IF(AND(D8="""",E8=""""),"""",(F7+D8-E8))"

3)マクロ開始時に、シート保護を解除し、最後にまた保護ではだめなのでしょうか。

(マナ) 2017/01/07(土) 15:43


ニンジン74です
早々の連絡ありがとうございます。成功しました
オートフィルも含め「式が一行で済み」驚きました。
素人ながらに、ネットで3日間調べましたがどうにもならず
質問させていただきました。
"は、ご指摘どおり2個重ねて""書きましたが、確定を押すと
"1つになぜかなってしまいます。何回も試しましたが同じなのでexcel通り記入しました。表に直接書き込んだものは、"一個で問題なく動いており2016で変わったのかなと勘違いしていました。
3個までは試しましたがだめでしたのであきらめていました。
4個使うことも見ましたが目的が違うかなと思いました
本当にありがとうございました。
ただ、なぜ動かなかったのか反省してみます

(ニンジン74) 2017/01/07(土) 16:33


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.