• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:book1からbook2にそのまま値を入れるマクロ)

マクロを使用してbook1からbook2に値を入れる方法について

このQ&Aのポイント
  • 情報保護のため、隠さなければいけないところが多々あり、とても分かりづらいと思います。
  • book1のAシートに入力した複数の業者の数値を、Bシートの並びに合わせて抽出し、並び替えて保存したい場合、Sumif関数を使用します。
  • その並びのまま、book2のAシートに値を入れるマクロを作成する方法について、マクロを勉強中のため教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2015
  • ベストアンサー率49% (258/524)
回答No.6

ANo.5です。 > 空白は必要なのですが、元のコピーするところに式が入っているので、Valueになるようなのです。 あぁ、もしかするとコピー元シートでは#Valueになった時に文字色を白にして見えないようにする条件付き書式が設定されているのかな。 で、あれば同じように条件付き書式を設定しておくか、張り付けた後に#Valueを空白に置換すればいいと思います。

ATAMAbakanako
質問者

お礼

申し訳ありません。 自分の質問がわかりにくすぎるのでもう一度質問をちゃんと考えて出直してきます。 せっかくいろいろと教えていただいたのに申し訳ありません。

ATAMAbakanako
質問者

補足

回答ありがとうございます。 勘違いさせてしまい、申し訳ありません。 コピー元シートにはすべてのセルがこの式ではありませんが、似たような式が入っており、引用先に名前がなければ空白という設定になっているのです。下記参照 【=IF(COUNTIF(金!$C$2:$N$108,$B5)=0,"",IF(SUMIF(金!$C$2:$N$108,B5,金!$E$2:$E$108)>0,SUMIF(金!$C$2:$N$108,B5,金!$E$2:$E$108),""))】 なので、その列をコピーして、別のブックのシートに移した場合、空白が入る?みたいな感じになってValueが出てしまうようなのです。

その他の回答 (5)

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.5

ANo.2です。 > 現在それで対応しているのですが、空白の欄もあり、それを値のみ貼り付けするとValueになってしまうので、それをデリートで消すのがめんどくさくて、マクロにて入力出来たらデリートの手間を省けるなぁ。と思いまして(汗) 値のみ貼り付けで#Valueになるとは考えにくいので、「空白欄が出来る事で、そのセルを参照して計算している式が#Valueになる」と、言う意味でしょうか? だとしたら空白をどうしたいのでしょう?上方向へシフト?

ATAMAbakanako
質問者

お礼

ご回答ありがとうございます。 空白は必要なのですが、元のコピーするところに式が入っているので、Valueになるようなのです。 なので、元のシートに空白となっているのであれば、その行は飛ばして次に進んでいく。という形が理想という感じです。

  • SI299792
  • ベストアンサー率47% (774/1619)
回答No.4

>空白の欄もあり、それを値のみ貼り付けするとValue になってしまう 見落としていました。 状況か判りません。普通空白があってもValue にならないと思います。コピー元にValue があれば、ペースト先にもValue は出ますが。 数式を入れてない限り、Value にならないと思います。どのような数式で、どこを空白にすればValue が出るのか書いていただけますか。 コピー後にValue 消すマクロを載せます。 ' Sub Macro1() '   Dim Cell As Range '   Workbooks("Book1").Sheets("Aシート").Cells.Copy   Windows("Book2").Activate   [A1].PasteSpecial xlPasteValues '   For Each Cell In ActiveSheet.UsedRange '     If Cell.Text = "#VALUE!" Then       Cell.ClearContents     End If   Next Cell End Sub

ATAMAbakanako
質問者

お礼

ご回答ありがとうございます。 vlookupでA列のすべての商品のところに抽出していて、入力がなければ””という方法をとっています。 その状態で空白も含めてコピーして貼り付けるとValueがでるので、SI299792さんが危惧していただいた通りの状態になっていると思います。 現在のシートの形としては、1行目に日付が横並びに入っており、A列に商品名が並んでいる状態なのですが、これじゃわからないですよね(汗) せつめいがへたくそですいません。

ATAMAbakanako
質問者

補足

イメージ図  (へたくそですいません) 引用シート          貼り付けシート A    B  [C D] E F            A    B 1商品名    5             1商品名 ここに列で貼付たい 2商品名    5 2商品名 3商品名    3商品名 4商品名    7 4商品名

  • SI299792
  • ベストアンサー率47% (774/1619)
回答No.3

値のコピーと書いてありますが、 マクロの記録をして、Aシートを選択→全てのセルを選択→Bシートを選択→形式を選択して貼り付け→値→記録終了 の操作をすれば、マクロが出来上がると思います。 又は、   Workbooks("Book1").Sheets("Aシート").Cells.Copy   Windows("Book2").Activate   [A1].PasteSpecial xlPasteValues (マクロの記録でマクロを作ると長くくなるので、私は必ず後で修正します) 値だけでなく、全てコピーしたいなら   Workbooks("Book1").Sheets("Aシート").Cells.Copy Workbooks("Book2").Sheets("Aシート").[A1]

ATAMAbakanako
質問者

お礼

ご回答ありがとうございます。 後出しの情報になり、大変申し訳ありません。 AとBが同じ形式ではなく、Aが日にち単位、BがそのAの毎日の記録を一日ずつ記録していく。というような形なのでシートごとというのと、同じ記録場所というのができないのです。 せっかくご回答いただいたのに申し訳ありません。

ATAMAbakanako
質問者

補足

申し訳ありません。 自分の質問がわかりにくすぎるのでもう一度質問をちゃんと考えて出直してきます。 せっかくいろいろと教えていただいたのに申し訳ありません。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.2

「Book1のAシートには抽出して並び替えた結果が入っている」んですよね? これをそのままBook2にコピーするだけの話なんじゃないんですか?

ATAMAbakanako
質問者

お礼

くだらない質問にコメしていただきありがとうございます。 ほんとすいません(汗)

ATAMAbakanako
質問者

補足

現在それで対応しているのですが、空白の欄もあり、それを値のみ貼り付けするとValueになってしまうので、それをデリートで消すのがめんどくさくて、マクロにて入力出来たらデリートの手間を省けるなぁ。と思いまして(汗)

  • 9don
  • ベストアンサー率21% (14/65)
回答No.1

単純にbook1のBシートを book2のAシートにコピーする ということではないのですか?

ATAMAbakanako
質問者

お礼

わかりにくい説明にコメントしていただき、ありがとうございます!

ATAMAbakanako
質問者

補足

ご回答ありがとうございます。 Aファイルは1日の数値、たとえば人数、商品、客層といったものを時間別に表示しているといったもので、 Bファイルはその数値を月単位で集計したものなのです。 なので、Aの数値を人数シート、商品シート、客層シートにそれぞれ入力する形になっております。 各シートのA列に時間帯が乗っており、それにB、C、D、と毎日1列づつずれて入力している状態になります。 説明がわかりにくく申し訳ありません。

関連するQ&A