こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

[EXCEL]ボタン押す→時刻が表に入る方法

会社で勤務時間をEXCELで管理することになりました。(タイムカードのように)
毎日、出勤時、退勤時にその時刻を入力していく必要があり、少しでも操作の手間を省きたいので、
ボタンのようなものを設置して、今の時刻が表の中の必要なところに入るようにしたいのですが、
EXCELでそういうことはできますか?

投稿日時 - 2011-03-26 10:02:09

QNo.6621519

すぐに回答ほしいです

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

可能なのだが、エクセルVBAを知ってないと、うまく行かないし、他人にデータ入力を任せる場面があるなら、それなりの防御機能を考えないとだめです。
しかし今でも、誤ったら他人の行にデータを入れ放題ですか。
こういうのはお金(給与)や名誉(遅刻)に関連することで、個人が所有CDの整理表を自分で作るなどとは違うのです。
エクセルなどというソフトはそういうことに適してないのです。
既に回答で言及の在るフォームなどを使って、他人(他行)のデータは隠したり(見えないように)し足りは出来ますが、VBAも中級程度のならないと。ある程度システム思考に慣れないと無理です。
CTRL+:、CTRL+;などの操作を覚えてもらうほうが良いでしょう。ボタンクリックとそう手間は変わらない。

投稿日時 - 2011-03-26 12:06:12

ANo.4

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

>EXCELでそういうことはできますか?
他の方々がおっしゃるよう 出来ます。
但し VBAと機能の知識が必要になります。
実験として以下を試してみてください。
新しいシートで
   A    B  C
1写真番号 日付 時刻

と訓日して
 C列を選択 セル の書式を 日付
 D列を選択 セル の書式を 時刻
にしておきます。
シート名のタブを右クリックして コードの表示 をクリック
VBエディターが起動するので
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
Target.Offset(0, 1).Value = Date
Target.Offset(0, 2).Value = Now
Target.Offset(0, 2).Value = Now - Date
Target.Offset(1, 0).Activate
End Sub
を貼り付けて閉じてください。
B列に 適当に社員番号を 入れてください
C列に 日付
D列に 時刻が入ります。
VBAについての実験と思ってください。

更に必用な機能がありますので
http://excelvba.pc-users.net/index.html
などのVBAについての勉強のサイトがありますので
一通り目を通して見られることをお勧めします。

投稿日時 - 2011-03-26 20:42:52

ANo.3

マクロを利用する事になります
基本は
ユーザーフォームでボタンに
ActiveCell=Now
とコードを書き込めば、選択されたセルに現在時刻情報が代入されます

>表の中の必要なところに入るように

と言うことであれば、必要なセルを選択するマクロを前出のコ-ドの手前に作る必要が出てきます
マクロはシートの構成によって変化してしまいますので現時点の情報だけでは

>EXCELでそういうことはできますか?

の質問には<可能です>としか回答できません

投稿日時 - 2011-03-26 10:29:47

時間を入力したいところ(セル)で「Ctrl + :」したら時間が入りますがこれが一番簡単では、

なお「Ctrl + ;」なら年月日が入力出来ます。

投稿日時 - 2011-03-26 10:14:51

ANo.1

(1)ボタンを作りボタンの上で右クリックしマクロの登録

(2)新規作成

(3)開いたModuleが 下記のようになっていることを確認
Sub ※オブジェクト名_Click()

End Sub

(4)下記のように書き換える。
Sub ※オブジェクト名_Click()
Range("A1").Value = Format(Now, "hh:mm")
End Sub

ただし、セルのA1に時刻を書く場合のコードになりますので
A1の部分を変更してください。

秒まで出したい場合は"hh:mm:ss"になります。

投稿日時 - 2011-03-26 10:13:10

あなたにオススメの質問