• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2007VBA セルへ転記)

Excel2007VBAで日報データを転記する方法

このQ&Aのポイント
  • Excel2007VBAを使用して、日報データを転記する方法を解説します。質問者はVBA初心者であり、[sheet1]に入力した日付、社員番号、日勤・残業の情報を[sheet2]の該当するセルに転記したいという要望があります。解決方法やアドバイスについてのヒントも求めています。
  • Excel2007VBAを使用して、日報データを[sheet1]から[sheet2]へ転記する方法を解説します。質問者はVBA初心者であり、日付=4、社員番号=1002、日勤=1、残業=1(残業が無ければ0)と入力した場合、[sheet2]の該当するセルに値を転記したいという要望があります。解決方法やアドバイスについてのヒントも求めています。
  • Excel2007VBAを使用し、[sheet1]に入力した日報データを[sheet2]へ転記する方法について解説します。質問者は日付、社員番号、日勤・残業の情報を[sheet1]に入力し、[sheet2]の該当するセルに値を転記したいという要望があります。VBA初心者であるため、解決方法やアドバイスについてのヒントも求めています。

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

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

日報シートの何番地のセルに何を記入しようとしているのか、説明がありません。 Sheet1の A1に日付 A2に社番 A3に日勤(1または0?) A4に残業(1または0) からSheet2に転記します。 日付は1から31までの単純な数字で記入しているものとします。 sub macro1()  dim d as long  dim r as long  on error resume next  d = worksheets("Sheet1").range("A1").value   r = application.match(worksheets("Sheet1").range("A2").value, worksheets("Sheet2").range("A:A"), 0) ’データチェック  if d = 0 then   msgbox "BAD DATE"   exit sub  end if  if r = 0 then   msgbox "BAD NUMBER"   exit sub  end if ’本番  worksheets("Sheet2").cells(r, d + 3).value = worksheets("Sheet1").range("A3").value  worksheets("Sheet2").cells(r + 1, d + 3).value = worksheets("Sheet1").range("A4").value end sub

m_ken_14
質問者

お礼

早速のご回答ありがとうございます。 実は、一人の社員番号に5つの項目があります。 いずれも(0or1)が入ります。 それを縦、横でセルを探し出す事ができませんでした。 しかし今試したところ思い通りに行っております。 後は、腐りかかった頭をフル活動して物にしたいと思います。 本当にありがとうございました。 ただただ感謝です。

m_ken_14
質問者

補足

昨日 sheetとセルを変え項目を増やし完璧に動いていました。 が、今日ウキウキで開いたところ "BAD DATE"で止まってしまいます。 何が潜んでいるのか・・・ 日付は、(D:AH)に1~31まで単純に入っております。 試行錯誤しているのですが何分"超"の付く初心者で頭が動きません。 今一度 ご教授頂けますでしょうか。