• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでやりたいこと質問します!)

VBA初心者がやりたいこととは?

このQ&Aのポイント
  • VBA初心者がB列に数字を入力し、C列に累計を表示する方法や入力履歴を表示する方法についての質問です。
  • また、Enterの使用方法やクリアボタンについても知りたいです。
  • VBAの学習方法やVBAを使っている人たちについても興味があります。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

思いつくままの詰め込みご相談で、回答するのが大変です。 ご質問は1投稿で1つずつ解決を積み重ねてください。こちらのような質問相談掲示板の、基本的なマナーです。 >履歴の蓄積 changeイベントで随時転記していきます。 準備:I4からN4のセルに、それぞれ「履歴」とかなんとか記入しておく 手順: シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range)  if application.intersect(target, range("B11:B16")) is nothing then exit sub  if target.count > 1 then   msgbox "ENTER SINGLE CELL"   application.enableevents = false   application.undo   application.enableevents = true   exit sub  end if  cells(65536, target.row - 2).end(xlup).offset(1) = iif(target = "", 0, target.valeu) end sub ファイルメニューから終了してエクセルに戻り、B11からB16の範囲に記入する。 #クリアボタンを使わずにセルの記載内容を消去したときの履歴の取り方も不明なので、てきとーに細工してあります。どーしたいのか考えて適切に応用してください。 >Enterを2回押すと入力するセルが移動する。 日本語入力がONになっている状態での記入を想定したご質問ですか。 それとも何か違う事を考えているのでしょうか。状況を詳しく補足して、別途ご相談として投稿してください。 >C列に設けたクリアボタンでクリアすると直前の入力がクリアできる。 「クリアボタン」て何を使おうとしているのか不明です(*)が、単純に 1.履歴を調べて「1つ前」が記録されているか確認する 2.隣のB列セルをクリアする 3.履歴があれば、1つ前の記録をB列セルに転記する 4.履歴の1番下をクリアする といった段取りです。 *:補足 エクセルでは「フォーム」コントロールのコマンドボタン、「ActiveXコントロール」のコマンドボタン、オートシェイプの図形やJPG画像などで作成したボタンなどを利用することが出来ます。具体的にどれを使うかに応じて、マクロの書き振りが変わります。 >オールクリアボタン 単純にセルをクリアするだけです。 sub macro2()  application.enableevents = false  range("B12:B16").clearcontents  range("I5:N999").clearcontents  application.enableevents = true end sub #詰め込みご相談に対しては、こんな感じにさらさらっと回答が寄せられて終わりです。 >インターネットで質問し回答をコピーして使用したりしています。 ツカエる回答が欲しければ、それなりにご質問者さんも丁寧にご相談なさってください。

tomochannjejeje
質問者

お礼

早速のご回答ありがとうございます。 インターネットで質問するのも、まだ2~3回目のため要領が分からず詰め込みすぎてしまったようです。<m(__)m> アドバイス通り状況を補足して、別途投稿し直します。 またよろしくお願いします。