• ベストアンサー

総合勤務管理表を作ろうとしています。

勤務管理表を作成しようと考えています。 エクセルは初歩のマクロが使える程度、アクセスはまったくの素人です。 今現状は、社員用月間勤務予定表、アルバイト用月間勤務予定表、日別作業配置表、勤怠チェック表を独立したエクセルファイルでやっています。 将来的には、相互をリンクさせてひとつのファイルで管理したいと考えています。 (例えば、Aが月間勤務表で公休のなっていれば、日別作業配置表、勤怠チェック表にも公休と表示させたいです。) 会社では、僕以上にエクセル&アクセスの知識がない方がほとんどで、せっかく作ってもエクセルの計算式を削除されることが多々ございまして、できるのなら、トップ画面でパスワード認証を行うことや、新規アルバイトを登録するようなこと、入力項目以外は管理者以外には変更できないようにしたいのです。 PC歴も浅く何から手をつけていけばわからない状態です。 このようなケースはアクセスを使ったほうが便利なのでしょうか? このようなことが詳しく書かれているURLや本がございましたらご伝授していただきたいのでが、よろしくお願いします。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.4

>エクセルの計算式を削除されることが多々ございまして... 何を言っているのか分からない場合、とりあえず下記VBAコードを貼り付けて実際に試して見て下さい。 計算式のあるセルは保護をかけましょう。ユーザーが入力するセルは保護がかからないようにします。 マスタ登録などは、パスワードを知る人のみが可能で、パスワードを入力しないと保護されていないセルの編集しかできないよう設計します。 管理者パスワードは標準モジュールの冒頭で記載のある abcde です。変更する場合、ここを書き直します。 あと、プロジェクトをロックしておくと、なお良しです。 【VBAコード1:場所=ThisWorkBoookモジュール】 'ブックを開いた直後の処理 Private Sub Workbook_Open()   Call パスワード認証(True) End Sub 'ブックを閉じる直前の処理 Private Sub Workbook_BeforeClose(Cancel As Boolean)   Call シート保護(False) End Sub 【VBAコード2:場所=標準モジュール】 '管理者パスワード設定 Public Const cstPassword As String = "abcde" Sub パスワード認証呼び出し()   Call パスワード認証(True) End Sub Public Sub パスワード認証(Dummy As Boolean)   Dim strInput As String   'パスワード入力   strInput = Application.InputBox( _     Prompt:="管理者以外の方は何も入力せず [ OK ] をクリック.", _     Title:="Password?", Type:=2)   'パスワード照合   If strInput = cstPassword Then     '一致 --> 管理者 保護解除     Call シート保護(True)     MsgBox "管理者モードで開きました", vbInformation   Else     '不一致 --> 一般ユーザー シート保護     Call シート保護(False)   End If End Sub '全シートをパスワード付きで保護/保護解除 Public Sub シート保護(Flag As Boolean)   For Each Sh In ThisWorkbook.Sheets     If Flag Then       Sh.Unprotect Password:=cstPassword     Else       Sh.Protect Password:=cstPassword     End If   Next Sh End Sub

sinkichi
質問者

お礼

お礼が遅れまして、申し訳ございません。 ご丁寧に教えていただきありがとうございました。 なんとか教えていただきました構文を理解できるように勉強します。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • at121
  • ベストアンサー率41% (85/206)
回答No.3

「ご利用の注意」シート から メニュー操作 シート: シート名 を シートの機能-ログイン名 の形で用意  例 data-aa、data-bb  シート「ご利用の注意」 のメニューとして "data-表"、 "認証登録" などを セルに入力 動作 bbで ログインし 「ご利用の注意」 のメニューの "data-表"を選択すると data-bb シート飛ばされる。 "認証登録"の権限がなければ"認証"シートにいけず「ご利用の注意」に戻される。 aa でログインすれば「ご利用の注意」のメニューの "data-表"を選択すると data-aa シート 、"認証登録"にて "認証"シートにいける。 ↓ThisWorkbookのモジュールに追加↓ Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If Sh.Name <> "ご利用の注意" Then Exit Sub Select Case Target Case "data-表" On Error Resume Next 移動先シート = "data-" + ログインユーザー Worksheets(移動先シート).Select If Err Then MsgBox (ログインユーザー + " さんの「data-表」がないので管理者に相談してね。") End If Case "認証登録" 移動先シート = "認証" Worksheets(移動先シート).Select If Err Then MsgBox ("「認証」シートがないので管理者に相談してね。") End If Case "月次予定表" '・・・必要に応じて作成・・ End Select End Sub

sinkichi
質問者

お礼

お礼が遅れまして、申し訳ございません。 皆さん、すごすぎて自分が無知に感じられます。 ご丁寧に指導していただきまして、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.2

詳しい事情が分かりませんので断言はいたしませんが、ご希望を実現なされるためにはAccessを利用する方がよいでしょう。 ただ、今からACCESSを勉強してどうのこうのとするよりは、多少は利用できると仰られているExcelで十分実現可能な話だと思います。私はアプローチを少々させていただきます。 1) Workbook_Open() イベントを利用しましょう。 ファイルを開く瞬間にやりたいことは、ここに書きます。 トップ画面での認証が単に誤入力を防ぐものであり、悪意を持ったデータの改変の防止などといった目的でないのなら、このイベントにて、「InputBox」を利用します。 で、InputBoxに社員番号を入力してもらい、OKをクリックすると、その人が入力しても良い部分以外のセルをロックしてしまうなどという方法や、触られたくないシートを非表示にしてしまうとか、色々なことができます。 2) シートの保護や非表示を利用しましょう。これらをマクロ化してもよいですね。 http://okweb.jp/kotaeru.php3?q=1225586 http://okweb.jp/kotaeru.php3?q=1212034 は、私が以前回答したものですが、シートの保護や非表示もマクロで書くことができます。 3) その他のイベントも利用しましょう。 「作業者がある操作をしたときに、自動的にあることを実行したい」ということがありますね。それを実現するための各種イベントがあります。 セルの値が変更された瞬間にある操作を実行したい、とか、以下 選択範囲を変更した時に・・・ あるシートを表示させた時に、(あるいは隠した時に)・・・ 印刷する直前に・・・ ブックを閉じる直前に・・・ など、色々な状況で発生するイベントをマクロ上で表記できますので、これらを利用すると、入力時にマクロが動作していることを意識させません。(入力時に特別な操作を必要としないということです) 4) If Else、For Next、Do Loop を覚えましょう 「マクロの自動記録」と「VBA」の最も大きな差が、これらの命令文です。左から「もし~なら~という処理をする(これは関数でも似たようなものがありますが)、「決められた回数だけ、ある処理を繰り返す」、「ある条件を満たしている間、ある処理を繰り返す」という処理のことで、大抵のVBAの教則本の比較的冒頭に記載されています。これを使いこなせるかどうかが、「マクロができる」と「VBAができる」との違いといえます。 5) もう少し具体的な質問だと、誰かがそのものズバリのものを作ってくれます。 私をはじめ、ここにはおせっかいがたくさんいますので、例えば、「あるセルにこういう値を入力したら自動的に表を作成して欲しい」とか、シート名やセル範囲込みで質問すると、誰かが作ってくれますよ。 ボリュームが大きければ、部分部分に分割して質問すればよいですから。 6) いっそお金を払って作ってもらう http://www.paw.hi-ho.ne.jp/sunfish/feemenu.htm#program http://www5f.biglobe.ne.jp/~hatano/pc_soft.htm など、ExcelVBAやAccessのプログラムを請け負ってくれる人がたくさんいます。お急ぎならこういうのを利用するのもアリかもしれませんね。 最後に参考図書ですが、定番は「できるシリーズ」でしょう。 http://dekiru.impress.co.jp/news/2002/06/14/ex_mv02.htm 自分で読んでもいないのにお勧めするのもなんですが、こんな本は参考になりませんかね。 http://www.gihyo.co.jp/books/syoseki.php/4-7741-2251-3

sinkichi
質問者

お礼

お礼が遅れまして、申し訳ございません。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • at121
  • ベストアンサー率41% (85/206)
回答No.1

何から手をつけていけば・・ シートの保護とデータ範囲の書き換え許可は ツール>保護で・・・ ログイン・アクセス制限 シート名 認証、data、ご利用の注意 を用意 シート(認証)には 隣りあわせで 名前 アクセス権レベル 1, 2 などの数字   例 aa 1   bb  2  を設定 動作 ログインにて aa を設定すると 全てアクセス可 bbで ログインすると  dataシーのみアクセス可。それ以外は「ご利用の注意」シート に飛ばされる。 応用すれば、入力すべきシートに飛ばせる。 認証シートに登録していない名前でログインインすると「ご利用の注意」シート に飛ばされる。 ↓ThisWorkbookのモジュールに貼る↓ Public ログインユーザー As String Public アクセス権 As String Private Sub Workbook_SheetActivate(ByVal Sh As Object) Application.EnableEvents = False If ログインユーザー = "" Then 'ログイン処理 ログインユーザー = InputBox("きっ・・君の名は? ..", "ログイン") If Worksheets("認証").Cells.Find(ログインユーザー) Is Nothing Then Worksheets("ご利用の注意").Select Worksheets("ご利用の注意").Protect MsgBox ("ごめん 人違いだった・・  【アクセス禁止】") Else '認証成功 アクセス権 = Worksheets("認証").Cells.Find(ログインユーザー).Offset(0, 1).Value Worksheets("ご利用の注意").Select End If End If Select Case アクセス権 'チェック Case 1 If Sh.Name Like "*" Then '全て許可 Sh.Unprotect End If Case 2, 3, 12 If Sh.Name Like "data*" Then 'データシートを変更許可 Sh.Unprotect Else Sh.Protect 'このシートに対してはアクセス禁止 Worksheets("ご利用の注意").Select Worksheets("ご利用の注意").Protect End If Case Else '許可シート以外へのアクセスは戻る Worksheets("ご利用の注意").Select Worksheets("ご利用の注意").Protect End Select Application.EnableEvents = True End Sub

sinkichi
質問者

お礼

お礼が遅れまして、申し訳ございません。 何とかご回答のお陰で光がうっすら見えてきました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで、勤務表を

    勤務表を作りたいと思っています 3交代のシフト制の会社で、各時間帯にどの位の人員が配置されているか、一目瞭然の表のようなものを作成したいと考えています 例えば、(1)5:00~16:00 (2)8:00~19:00 (3)19:00~9:00というシフトで、各時間帯にA~Iまでを休みを含めて配置した時に、現場にいる人員の管理ができるようなものを考えています エクセル上で、(1)5:00~16:00に配置された人の欄に、その時間が色が変わるなど・・・ 表現が難しいのですが、そのように表現できないかと考えています もし何かアイデアがあればご教授ください 

  • 勤務表の作成で困ってます・・。

    早速ですがエクセルで知恵をお貸しください。 添付画像でお見せしているように勤務表で勤怠を入力した際に 別の形式の勤務表へ自動的に反映を行えないか模索しております。 関数や並び替えなど色々と試行錯誤しましたが、、 どうしても上手く行かずご質問させて頂きました。 分かりづらくて申し訳ありませんが御回答のほど宜しくお願い致します。

  • エクセルでシフト表作成をしたい

    30人規模のシフト表作成をエクセルでやっています。 月間シフトを作成して、日別シフトも作成しているんですが、これを同時にできないかな、という相談です。 例えば、月間シフトで10月14日にAさんが7時から16時まで、Bさんが10時から19時までのシフトだとすると、日別シフト表の方にAさんとBさんの勤務時間を棒線などで表示させて、各時間帯で人が多いとか少ないとかを視覚的に把握したいのです。 こういった事はエクセルVBAで可能でしょうか。 エクセルでなくても、こういうソフトがあるとかでも教えて頂けたら嬉しいですが、自宅PCだけでなく職場のPCでも使いたいので、可能ならVBAで自作をしたいです。

  • エクセルで勤務時間管理表

    エクセルで勤務時間管理表を作成しました。 D列に出勤時刻、E列に退勤時刻とし、G列には労働時間が4時間を超える場合に1時間マイナスをして表示させるように計算式をいれました。 休日は未入力、空欄です。 これでG列をオートSUMにて月間労働時間表示させると休日の分も1時間マイナスしてしまいます。 どのようにすればいいのでしょう?

  • 勤務表は最終的にどこへ?

    勤務表についてふっと疑問に思ったので質問致しました。 従業員が会社に毎月勤務表(または勤怠カード)を提出します。 これは給与に必要だからだと分かってます。 では、会社に提出した勤務表はその後どうなるのでしょうか。 勤務表が会社に提出してそこで終わりなら、仮に労働時間が問題が あっても従業員が相談する、もしくは入院した、もしくは死んだなど 大事にならない限り勧告などが来ないと思います。 勤務表は社労士に提出しているんでしょうか。 社労士は企業を経営していく上での労務管理や社会保険に関する相談、 指導を行う事のが業務の範囲の場合、従業員の労働時間を管理をするのも 範囲に入りますか。 そのあたりの仕組みが分からないのでご教示頂けると幸いでございます。

  • エクセルの勤務表で勤務者がいないセルに色をつけたい

    エクセルの勤務表で勤務者がいないセルに色をつけたい 勤務表で各勤務地に人員を配置するのですが、配置する人員が手当てできないことがあります。 配置できていないセルを一目でわかるように、セルに色をつけたいのですが、できるでしょうか。 表はA1に勤務地、B1に日勤者名、C1に夜勤者名、A2とA3は結合して勤務地の渋谷、A4とA5は結合して勤務地の上野と以下続きます。 B2に勤務者名、C2に勤務者名と以下続きます。 添付の表の赤枠のところが勤務者を手配できないセルです。 勤務者を手配できていないセルに色をつけたいのですが。 また、できればでいいのですが、空白のセルに勤務者を入力したらセルの色が無にする。 それからセルの色を残すの両方教えていただきたいのですが。 よろしくお願いします。

  • 勤務表・有給日数の管理が無いのですが…

    初めて質問します。 私が勤務している会社の部署は、勤務表がありません。それに、有給日数の概念もありません。 極端な話、病気で長期間休んでも、欠勤控除にはならず基本給+手当は支給されます。 しかし、残業しても勤務表が無いので、残業代はつきません。 よくある会社だと、勤務表(またはタイムカード)があって、各社員の有給日数も管理していると思います。 気になるところは以下の通りです。 ・病気で長い期間休もうが、月の営業日数×8h(所定時間オーバー)でも変わらない完全固定給制は合法なのでしょうか。(給与計算等は、アウトソーシングの労務士によるチェックをしているので違法ではない??) ・残業していた場合、残業代は請求出来るのでしょうか(毎日の稼働時間は、ノートに書き留めてはいますが効力になるか) ・なぜ、勤務表と有給の管理をしない形式を取っているのかが分からない(社の人間に言ってもいまいち分からない様子)

  • エクセルで勤務日程表を作りたい!

    エクセル2010を使って、添付した画像のような日程表を作りたいです。 月間のシフト表と日程表は別のエクセルブックです。 実際の従業員は20名いる上、勤務時間もバラバラなので「早番」「遅番」と設定する事が出来ません。 日程表は、一番左の列がA列とすると、A列、E列、H列、L列に時間列が入ります。 勤務時間外の時間帯のセルをグレーで塗りつぶしたいのですが、 このような表を作るにはどうしたら良いでしょうか? どなたかお力を貸して頂けませんでしょうか?よろしくお願い致します。

  • 勤務時間管理表の入力を手抜きしたい

    勤務時間管理表の入力を手抜きしたい Excel2007で勤務時間を管理しています 9:00を入力するのにいちいち:を入力するのがわずらわしいので 900と入力して9:00と表示させることはできないでしょうか ユーザー定義でh:mmを設定しても 900と入力すると0:00が表示されてしまいます 何か方法があると思いますが アドバイスよろしくお願いします

  • 【労務】あなたの会社はどのような勤怠管理を行っていますか?

    【労務】あなたの会社はどのような勤怠管理を行っていますか? 会社で勤怠管理のシステムの見直しを行っています。現在、Notesというソフトの中に入っている(?)勤務表に始業時刻と、終業時刻を記入し、翌月に前月の勤務表を申請して、各サイトの総務部が勤務表から手動計算して、手当計算しています。手動計算がかなり手間で、問題になっているのですが、それを見直すため、下記の2点質問させてください。 (1)みなさんの会社はどのような勤怠管理を行っていますでしょうか? (こんなものを使って勤務時間を管理していて、こういうふうに集計している等) (2)勤務表として労基法で求められる最低限のことは? 勤怠管理システム見直しにあたり、広く情報を集めようと思い、投稿しました。 ご返事お待ちしています。

このQ&Aのポイント
  • お見合いした相手と街で再会した場合、どのような対応をするべきかについて考えてみましょう。
  • お見合い相手との再会がある場合、素通りするか声をかけるか迷うかもしれませんが、積極的に接することをおすすめします。
  • また、万が一派遣先や取引先になった場合も、適切な対応をすることが重要です。
回答を見る

専門家に質問してみよう