質問: エクセルの値のコピー(自動で)について 例えば、 セル(a1)に1 セル(b1)に3 セル(c1)に=sum(a1:b1) と入力します。 セル(c1)は、見た目には4ですが、 実際は「=sum(a1:b1)」です。 ここで、 セル(d1)には、セル(c1)のコピーを「値」の形式で貼り付けると セル(d1)は4となります。 このセルdの貼り付けを自動で行いたいのですが可能でしょうか。 私はマクロとか分かりません。 関数での方法を教えて下さい。
回答: こんばんわ。#2です。 >見た目だけでなく、実際にも「値」とするには、c1をコピーして、カーソルをd1に運び、形式を選択して貼り付けの「値」として貼り付けています。これを自動でやりたいのです。 つまり、d1を選択したときに数式バーに4と表示されるようにしたいということですよね?これを実行ためにはマクロを組む以外に方法はありません。サンプルマクロを組んでみました。次のように操作してみて下さい。 ・データの入っているブックを立ち上げ、alt+f11キーを押してvbe画面を表示させ、画面左上のvbaprojectと書かれている上にマウスポインターを合わせて右クリック後、挿入→クラスモジュールを順にクリックし、表示された右側の白い部分に下記のコードをコピー&ペーストする。 public withevents app as application private sub app_sheetchange(byval sh as object, byval target as range) dim myrow as integer myrow = target.row if target.address <> activesheet.range("b" & myrow).address then exit sub target.offset(0, 2).value = target.offset(0, 1).value end sub ・次に画面左上のvbaprojectと書かれている下のthisworkbookをダブルクリックし、表示された右側の白い部分に下記のコードをコピー&ペーストする。 dim myclass as new class1 private sub workbook_open() set myclass.app = application end sub ここまでの作業が終了したら、1度ブックを保存して終了し、再度ブックを立ち上げます。 操作方法: a列に適当な数値を入れる b列に適当な数値を入れる 貴方様のおやりになりたいことが実現していると思います。 不具合・ご不明な点等がございましたら、ご遠慮なくお知らせ下さい。