• ベストアンサー

Excel vbaでなんとかできますか?

現在働き方改革の一貫で個人でも出勤退勤、実働時間、残業時間を管理しなくてはいけなくなりExcelであれこれ試してるのですが上司がとにかくExcel苦手の為、vbaから入力フォームを作ろうとしてるのですが上手くいきません。 やりたいことは入力フォームにて名前、出勤退勤時間の入力、日付。そしたらExcelに自動で入力。こんなことできるでしょうか?お力をお貸しください。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.4

ユーザーフォームを作成し テキストボックスを 名前 日付 出勤 退勤 としてコマンドボタンのクリックイベントで以下のようにすれば1行目にデータが入力されます。これが最低限の事になると思います。苦手な人が入力するのでしたら、年、月、日や時、分を別に入力させるとかもっと考えないと駄目だと思いますが、かなり面倒ですよ。 Private Sub CommandButton1_Click() If Me.名前 <> "" Then Range("A1").Value = Me.名前 Else MsgBox "名前のデータが不正です", vbInformation Me.名前.SetFocus Exit Sub End If If IsDate(Me.日付) Then Range("B1").Value = Format(Me.日付, "yyyy/mm/dd") Else MsgBox "日付のデータが不正です", vbInformation Me.日付.SetFocus Exit Sub End If If IsDate(Me.出勤) Then Range("C1").Value = Format(Me.出勤, "hh:mm") Else MsgBox "出勤のデータが不正です", vbInformation Me.出勤.SetFocus Exit Sub End If If IsDate(Me.退勤) Then Range("D1").Value = Format(Me.退勤, "hh:mm") Else MsgBox "退勤のデータが不正です", vbInformation Me.退勤.SetFocus Exit Sub End If End Sub

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

こんなことを聞いているレベルで、VBAで仕事のデータ処理などの着手は「やめときなはれ」。  元データは、電話聞き取り、や本人書類作成でしょうから、書類作成は紙ベースでよいではないか。 結局、従業員のベルを予想すると、原データは、とりあえず紙ベース提出にならざるを得ないのだろうから。在宅勤務などで、パソコンで勤怠データなど送ってくる(来させる)のか?  むしろ質問者のデータ処理より、データ通信などを便利にする方がまず求められているのではないか。  これはエクセル(VBAや関数など)の知識より、広範囲な経験と知識が求められる。そして現場でないと、適当なやりかたがアドバイスできない。  最少のデータ整理だけ、エクセルシート+関数でやることになろう。 VBAなどプログラムは、人によって、向き不向き(好き嫌いの)がスキル獲得に、影響するので、甘く見ないこと。数年ベースの自己修練を考えているなら、 数十万円の勉強代も含めて考える話だろうが。  システムは専門家に任せるでき。選択肢の次は、既存のソフト(優良、フリー)を探すべきでしょう。 得意な人・以前から関心のある人は、すでに、VBAの本を読んだり、WEBで調べて、コードを真似しているだろう。 できる・できないをこんなところに聞いても、質問者の自己満足だけで、足しにならない。行き詰まって、出来ない点を、ここで質問を数回繰り返しても完成するようなものではない。システムは、ものを作る以外は、金をかければ(専門家に頼めば)何でもできると言えるものだ。出来るできないは問題でなない。 社長がコンピュター利用に熱心じゃなくて、金を出さないのが最大の問題で、質問者が、一人頑張っても、もし問題など起こったら、勝手にやったとなる。 また、たとえ、おもちゃみたいなシステムでも、質問者の後継者がいないとかの問題も発生する。 == 地域のグループで、簡単なシステムなど、当面は無料で、相談(対面)できるところが、探せばあるのではないか。引退世代も含め、エクセルのスキルなど、世の中に眠っているように思うが。 最近、まさか出ると思っていなかったが、数時間だが、VBAを無料でやってみさせる催しが、市内のパソコンショップから出て、世の中は広いな、と思った個人的経験をした。

  • skp026
  • ベストアンサー率45% (1010/2238)
回答No.5

まずはGoogleなどで以下のキーワード検索をおすすめします。 Excel 勤怠管理 これにより、様々な具体例がでてきます。それを参考にExcelによる勤怠管理をお試しになると良さそうです。 ※ もしも「社員毎にExcelで勤怠管理が指示され、入力したシートの提出が要求されている」ということなら、専用のExcelシートも指定されているはずです。勝手にフォームを組み込んだりは禁止されていることが多いです。 別のシートのVBAから、指定されたシートを制御したりは不可能ではないですが、込み入ったプログラミングになりやすいですし、指定されたシートが変更されたら、VBAのプログラムも変更が必要です。VBAでフォームを追加し入力しやすくすることは可能ですが、禁止されていたり将来破綻することが予想されます。上司には自分で頑張るよう伝えることが良さそうです。 ※ もしも「社員毎に勤怠管理する手順作成を質問主さんが指示され、質問主さんはその手順にExcelを選んだ」ということなら、Excelはおすすめしません。入力する社員毎も、そのシートをまとめる作業も、便利にはなりません。クラウド型の勤怠管理システムなどの利用を会社に提案ください。 以上、参考にならなかったらごめんなさい。

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.3

VBA を検討する前に Excel のフォーム機能を検討されましたか? https://forest.watch.impress.co.jp/docs/serial/exceltips/1208637.html

  • owan-wan
  • ベストアンサー率42% (3/7)
回答No.2

可能です。 フォームの作成や入力された値からの自動入力は vba で出来ます。 参考書も多くありますし、インターネットで「Excel vba 〈やりたいこと〉」で検索すると参考になるサイトもあります。

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

出来ますよ。 書店に行って、VBAの参考書で、出退勤のサンプルが載っている本を探してみるのも手ですよ。

関連するQ&A