• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBA )

Excel VBAでアンケート集計をしたいと思い、プログラムを作ったのですが、K列にデータを入れると元々存在していたK列のデータが消えてしまいます。どう修正すればデータが残るのでしょうか?

このQ&Aのポイント
  • Excel VBAでアンケート集計をする際、K列にデータを入れると元々存在していたK列のデータが消えてしまいます。
  • データを登録する際に、K列に入力したデータが上書きされる問題が発生しています。
  • どのように修正すれば、データが残るようになるのでしょうか?

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

  • ベストアンサー
  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.1

たぶん、 [Database].Offset(行 - 1).Resize(1).ClearContents で、1行上の行をクリアしているのでは? 直後の [Database].Cells(行, 1) = txtNo.Value [Database].Cells(行, 2) = txtName.Text ・・・ を見ていると、 [Database].Offset(行).Resize(1).ClearContents とすべきでは?と思います。 ## 前の質問で大体見当はついたのだけど ## 書く前にクローズされていたようで。 ## でも、今回の質問のほうが全体のイメージが、かなりわかりやすいです。 ## →したがって、回答しやすいです。 ## 前回の質問では、Userformとかがどう絡んでいるのかまったくわからなかったので ## 回答書くのに躊躇して後回しにしていましたから。

1-29-jin
質問者

お礼

ありがとうございます やってみます

1-29-jin
質問者

補足

[Database].Offset(行).Resize(1).ClearContents に変更して 実行すると 直下にあるデータが全部消えてしまいました ><;; すいません I列まではうまく残ってくれるのですが、J列からがなぜだか残らずに消えてしまうのです。 なぜでしょうか ? 教えてください

その他の回答 (1)

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.2

ANo1ですが、 回答におかしな点があるので取り消しさせてください。 [Database]って名前をつけて、範囲指定しているのでは? と思われるのですが、どの範囲でしょうか? Offset()はその範囲の中での相対位置を示すはずなので、 別の行を [Database].Offset(行 - 1).Resize(1).Copy _ [Database].Cells(行 - 1, 1) でコピーしているのでは? と思われます。 原因は置いておいてとりあえずうまくいくようにしようと考えると、 [Database].Cells(行 - 1, 1).EntireRow.Insert [Database].Offset(行 - 1).Resize(1).Copy _ [Database].Cells(行 - 1, 1) [Database].Offset(行 - 1).Resize(1).ClearContents の [Database].Offset(行 - 1).Resize(1). をすべて、 [Database].rows(行).Resize(1). にすればうまくいきそうですが。

1-29-jin
質問者

お礼

ありがとうございます やってみます

関連するQ&A