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

VBA : 特定の条件を抜いて、同じセルに値の貼付けをしたいです。
Excelのマクロについて質問です。

①1つのブックの中で、「入力用シート」が1つ、後は各月シートで12ヶ月分、1年で1ブックです。
②「入力用シート」に入力したデータが各月シートの該当セル(列)に飛ぶように、各月シートにVLOOKUPの数式を入れてます。※複数列あります
(次月分は、当月入力完了後シートコピーして末尾に貼付けています)
③各月シートの「入力用シート」から飛ぶデータが入る列は、最終行にSUM関数が入っており、入力した数(入力用シートに入れた数)と各月シートに入った数が間違っていないかチェックしています。
※各月シートも入力用シートも月により項目の変動があり、行が増減します。最終行番号も変わります。
※一度入力したあと、変更があることもあり、再計算が必要な月があります。
④各月シートは、計算用の列、提出用の列があり、毎月提出時には不要な列は非表示にし、可視セルのみでコピー、新規ブック作成、貼付けをしています。(めんどくさいです)

・・・手間を省くために、色々組んでみたのですが、③がうまくいきません。

希望は、「入力用シート」から関数で飛ばした数値を同じセルに値の貼付けし、
ひとシートで完結するようにしたい、ただし最終行のSUM関数は残したい  です。


Dim 列 As Integer
  For 列 = 1 To 20
   
   If Cells(2, 列) = "各月シートへ" _
Or Cells(2, 列) = "各月シートへ2" _
Or Cells(2, 列) = "各月シートへ3" _
Then
Columns(列).Value = Columns(列).Value
 End If
Next 列

上記で該当の列全てを値の貼付け、はできたのですが、肝心の数式を消したくない行も
消えてしまいますので、どういう条件を入れたらいいか、お教えいただきたいです。
Do loopとかも入れてみましたが、上記条件+最終行だけ抜く、という条件の指定の仕方が
わかりませんでした。

独学で学んでいっているため、遠回りしていることもあるかもしれません。
いつもネットで似たようなお悩みの方の記事を参考にさせてもらっています^^;

VBAマスターの皆様、お力をお貸し下さい!

A 回答 (1件)

不思議に思うところですが


各月シートって、集計結果と云うか報告書みたいな感じですよね。
合計や年、月などを上部分に表示して
数行下から明細として各データを表示するフォーマットでは??
最終行を検索する必要もありませんし、元々ある関数を変える事もないと思います。

ついでに
>各月シートで12ヶ月分
も一枚のシートで、セルに年と月を入力することで
希望の書式になる様にします。
つまりシートは2枚ですみます。
    • good
    • 1
この回答へのお礼

元々あるフォーマットをあまり変えずに、楽できそうなところを関数を入れたり、マクロ組んだりできないかな、と考えていたので、各月でシートは1枚ずつ、各月シートの合計行は最終行というしばりでした。
でも、シートは2枚で済むなら(年・入力用で1シート、そこから月で呼び出す報告用のシート1枚、ということですよね?)、それに越したことはありませんね!
根本から変えてみます。なんだかハッとさせられました。
ありがとうございます!

お礼日時:2016/08/28 10:49

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