アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。
今回は、エクセルの勤務表の作り方について質問させて頂きました。
写真にも添付しているのですが、ベースはこのような形でしていきたいと考えています。

そこで、出勤と退社の時刻を社員自身に入力して貰う事になりました。
入力方法は
(1)社員のIDを入力すると自分の欄に飛ぶ
(2)その日の出勤と退社の時刻しか更新出来ない
(3)その日までの1週間のデータを常に表示
を考えています。
しかし、この3つの設定の仕方が分かりません。
どれかでも方法を知っている方、是非ご教授お願いします。
ちなみにエクセルは2007を使用しています。
どうぞ宜しくお願いします。

「エクセルで勤務表の作成」の質問画像

A 回答 (3件)

(1)社員のIDを入力すると自分の欄に飛ぶ


--->VBAの力を借りることになります。
(2)その日の出勤と退社の時刻しか更新出来ない
--->その日にちによって、保護をかけたり、はずしたり?やはりVBA?
(3)その日までの1週間のデータを常に表示
--->別途、データのみのシートに入力したら?

一案です、別途、入力とデータ用のシートを準備します。
   A   B  C  D   E


3     日付 ID 出退勤 
4   =Today()   出勤

6作業列  日付 ID 出退勤 時刻



適当な位置に ボタンを配置して
Sub ボタン1_Click()
Dim GYOU As Double
GYOU = Range("B" & Rows.Count).End(xlUp).Row + 1
Range("A" & GYOU).Value = Range("B4").Value & Range("C4").Value & Range("D4").Value
Range("B" & GYOU).Value = Range("B4").Value
Range("C" & GYOU).Value = Range("C4").Value
Range("D" & GYOU).Value = Range("D4").Value
Range("E" & GYOU).Value = Time
End Sub
と云ったようなコードを実行させる。

操作方法は、
1、朝の時間は、 D4セルに出勤と入れておく
2、社員の方に、ID を入れてもらって、ボタンを押すと
自動で、日付、ID、出勤、時刻が入ります。

退勤の時間には、D4セルを 退勤にしておいて、朝と同様

作業列(A列)を検索するVlookup関数を写真のシートに
配置すれば、ご希望の表示が簡単にできます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
なかなかいい感じにできました。
ありがとうございました。

お礼日時:2012/06/03 22:14

(1)


社員さんの数が多くないなら、リンクを人数分、設置しておくのが手っ取り早いです。右クリックして「ハイパーリンク」をクリックから。検索してみてください。(入力するとジャンプみたいに仕込むにはVBA(マクロ)が必要。)

シートの枚数が多いのでしょうから、リンクを用意してあげるなら、たぶん全てのシートから全てのシートに飛べるようにしておかないと、あまり意味がないでしょう。数が多いとたいへんなので、「複数シートの同時編集」とかで検索してみてください。

(2)
シートを保護してください。その際にあらかじめ、入力を可能にするセルのみ「セルの書式設定」の「保護」タブで「ロック」のチェックを外しておいてから、シートを保護します。検索してみてください。

(3)
C3、E3セルに次の式を入力。

M3 =o3-1
O3 =today()

次いで、M3セルをコピーし、C3、E3、G3、I3、K3セルに貼り付け。

以上で表示されているはずの日付をVLOOKUP関数の第1引数「検査値」として使用。各人が入力する表からVLOOKUPによりデータを拾ってきて、添付図の表に表示させる。検索してみてください。


以上ですが、せっかく皆さんに入力してもらうなら、各人でシートを分けないほうが、後ですぐにいろいろ使えて便利かもしれませんね。参考URLをご覧になってみてください。

参考URL:http://oshiete.goo.ne.jp/qa/7483630.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
人が多いのでなかなかシートを作るのが難しく・・・
もう少し悩んでみます。

お礼日時:2012/06/03 22:13

ん?


ご相談を出しなおすのは全然構いませんが、その際は前のご質問は放置せず、解決で閉じる操作を忘れずに行っておいてください。



>出勤と退社の時刻を社員自身に入力して貰う事になりました。

あなたが自分で使うんじゃなくしたのでしたら、次のように仕込みます。


1.あなたが作成した画像の通りの配置でエクセルを作成する
  シート名はSheet1にする
2.ALT+F11を押す
3.現れた画面で挿入メニューから標準モジュールを挿入する
4.現れたシートに下記をコピー貼り付ける


sub auto_open()
 dim d as date
 worksheets("Sheet1").select
 application.screenupdating = false
 activesheet.protect userinterfaceonly:=true
 cells.locked = true
 on error resume next

 for d = range("O3")+1 to date
  range("E:P").copy range("C1")
  range("O3") = range("O3") + 1
  range("O5:P9999").specialcells(xlcelltypeconstants).clearcontents
 next d
 range("O:P").locked = false
 application.screenupdating = true
end sub


5.ブックを名前を付けて保存で、ファイルの種類をマクロ有効形式にして保存し、閉じる
6.ブックを開くと、データが勝手に移動する。


#マクロのセキュリティについて下記を参考にします
http://pasofaq.jp/office/excel/excel2007macro.htm





>IDを入力すると自分の欄に

あれもこれもと詰め込まれたご相談に全部回答する義務は無いので割愛しますが、わざわざIDを記入する手間の内に自分の名前を探して記入してもらった方が簡単です。ご相談で掲示された表にも、「IDを入れる欄」とか用意されていません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
早速試したのですが、なかなか思うようにならず・・・
もう少し悩んでみます。

お礼日時:2012/06/03 22:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!