

No.1ベストアンサー
- 回答日時:
この回答への補足
ありがとうございます。
私の説明が悪いですね。
行いたかったのは以下のようなツールの作成です。
・ある業務の所要時間を測定したい。
・該当業務の開始時刻をすばやく入力
・同、終了時刻を入力
・両者の差をとって所要時間とする。
秒単位の測定を行いたいんでツールの入力はすばやく行いたいです。
「Ctrl」+「*」キーで現在の時刻が入るやないですか。
それで秒の位までデータがあると簡単なのですが、分までしかデータがなく秒が「00」になってしまうんですよ。
設定の問題ですかね?
「NOW()」関数を使用しますとシートが再計算されるたびにデータが更新されますよね。
ちょっと上手くないなあ、と。
NOW()関数をどこかで表示さえておいてコピペで「値のみ貼り付け」とかって小さなマクロを組んでもいいのですが、もっと手軽にできる方法はないものか、と。
といいますか上記「Ctrl」+「*」キーで秒のデータまで入力できなかったかな?というのが質問の主旨です。
わかりづらくて申し訳ありません。
No.10
- 回答日時:
harukaです
いかがでしょうか。
補足みましたが、イマイチ状況がわからず。
でも、なんとなく、私の直後にお答えくださった
Wendy02 さんので、解決に向かっているような気がします。
#6は即興で作成したので、
これよりは、#8方式の方がいいですよ。
おはようございます。
みなさんからいただいたアドバイスにたいし
結果を即答できる能力がわたしにはありません。
GW前でバタバタしていることもあり
いろいろ試しながらの作業はGW後とさせていただきます。
いったんここでお礼申し上げます。
ありがとうございました。
またすぐ次の疑問が湧くかと思います。
そのときはまたご助力ください。
せやで、深夜に回答いただいたり何度も何度も丁寧に課アドバイスいただいたり、
なんでみなさんそんなにエエ人なんですか。
涙出ますわ(笑)
って笑とるやんけ!!
一人突っ込みでした。
でわ!
みなさん、ありがとうございます!!
No.9
- 回答日時:
>エクセル(2002.SP3)で現在時刻を入力するのに
>「Ctrl」+「*」で入力できるかと思いますが
>「分」までしかデータがありません。
殆どの回答者の方がEXCELによる解決策を述べておられますので、
ご質問者の本来の質問の主旨に戻って、
>「秒」の単位まで簡単に入力したい
に何か他に方法が無いか考えてみたところ、以前仕事で使っていた
クリップボードに拡張機能を付加するフリーソフトがあったことを
思い出しました。
そこで似たようなものがないか検索してみたところ以下のURLで
「Charu3」というソフトを見つけました。
このソフトを起動し、常駐させておけば、EXCELのワークシートに
現在時刻を入力できます。
(現在時刻がクリップボードに取込まれ貼付け可能になる)
これをキー操作で簡単に行うために設定が必要です。
常駐させた状態でアイコンを左クリックして以下のように操作します。
1.表示されたメニューの「チュートリアル」から
「2.マクロ機能」→「時間マクロ」をシンクルクリック
2.「時間マクロ」が反転している状態で右クリック
3.表示されたメニューから「プロパティ(R)」をクリック
4.テキスト編集画面にサンプルが表示されるので
「時間も貼り付けられます。」の文言と改行をを削除
5.拡張マクロテンプレートで「ホットキー」を選択し、
拡張マクロウィンドウに「HotKey=」と表示されるのを確認
6.HotKey=のあとに実際に時刻を入力するときに使用する
ショートカットキーを書き込む
例えば「HotKey=ctrl+shift+t」などと記述する。
上記手続きのあと、EXCELを起動してセルを一つクリックし、
「Ctrl」+「Shift」+「T」を押してみてください。
キーを押した時刻が秒まで入力されたと思います。
>「Ctrl」+「*」で入力できるかと思いますが
に一番近いと思いますがどうでしょうか。
参考URL:http://keiziweb.com/software.html
おはようございます。
フリーソフトですか。
フリーは大好きです(笑)
本日はGW前の最後の業務でして朝からバタバタしてます。
せっかく教えていただきならが使用させていただくのはGW後になってしまいます。
お詫びとともにお礼を申し上げます。
ありがとうございました。
No.8
- 回答日時:
kansaiheartさん、
>コントロール機能を用いれば一日に繰り返される小分類(おそらく数百~1000以上)の数だけコントロールを作成しないといけないのかな?
はっきりと、イメージが湧いたわけではありませんが、私の #7のマクロは、そういう内容には、あまり向かないです。私のは、ワークシート外に記録を取っていますので、数をこなすことができません。一人の人が、1つのブックで、1日~数日の仕事の最初と最後の時間の差を取るような行為に向いています。
短期の時間で、数を多く必要な場合は、harukabcdeさんの#6 のようなものが良いと思います。
以下のような、単純なものがよいと思います。
以下は、記録をつけるシートモジュールのみに、有効です。2行目から書き込んでいきます。
'----------------------------------------------------------
Private Sub CommandButton1_Click()
'Start
Range("A65536").End(xlUp).Offset(1).Value = Format(Now, "hh:mm:ss")
End Sub
Private Sub CommandButton2_Click()
'Finish
Range("B65536").End(xlUp).Offset(1).Value = Format(Now, "hh:mm:ss")
End Sub
'----------------------------------------------------------
'シートに記録が一杯になっていくようでしたら、以下のクリックすれば、ボタンが画面といっしょについてきます。
'同じくシートモジュールです。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
WinTop = ActiveWindow.VisibleRange.Top
CommandButton1.Top = WinTop + 3
CommandButton2.Top = WinTop + 3
End Sub
'----------------------------------------------------------
おはようございます。
アドバイスいただいた時間見ますと深夜にかご回答いただいた由。
朝からGW前の進行でバタバタしてまして今WEBを覗くことが出来ました。
いただいた回答を検証しながら作業させていただきます。
いったんここでお礼を言わせていただきます。
ありがとうございました。
No.7
- 回答日時:
マクロのタイムラグの精度の問題もありますが、ここでは秒まで出ますので、問題はないと思います。
まず、コマンドボタンを2つ用意して、StartUp と、FinishTime を登録してください。
今回のコマンドボタンは、フォームで作ったほうが簡単です。このマクロは、一旦、Excelを終えても、記録を測ってくれます。ただし、StartUpからの所要時間です。
[標準モジュール]に登録するのが適切です。
このマクロを使うためには、最初にカスタム・ドキュメント・プロパティに登録が必要です。
'--------------------------------------------
Sub プロパティ登録()
'要登録
Dim 記録時間 As Double
記録時間 = Now
With ThisWorkbook.CustomDocumentProperties
.Add Name:="記録時間", _
LinkToContent:=False, _
Type:=msoPropertyTypeString, _
Value:=記録時間
End With
End Sub
'これを削除する場合は、ワークシートのファイル-プロパティ-カスタム
'ユーザー設定から、記録時間の所を削除してください。
'--------------------------------------------
Sub StartUp()
'開始時間記録
On Error GoTo ErrMsg
ThisWorkbook.CustomDocumentProperties("記録時間").Value = Now
ErrMsg:
If Err > 0 Then
MsgBox "最初に、プロパティの登録をしてください。"
Else
MsgBox "時間を記録しました"
End If
End Sub
'メッセージボックス(MsgBox)の代わりに、セルに書き出しても可能です。
'例: Sheet1.Range("D1").Value _
= ThisWorkbook.CustomDocumentProperties("記録時間").Value
Sub FinishTime()
'終了時間
Dim CDP As String
Dim myDate As Date
Dim myHour As Date
Dim DifferenceTime As Double
CDP = ThisWorkbook.CustomDocumentProperties("記録時間")
myDate = DateValue(CDP)
myHour = TimeValue(CDP)
If Date >= myDate Then
DifferenceTime = Now - CDbl(CDate(CDP))
msg = Application.Evaluate("TEXT(" & DifferenceTime & ",""[hh]:mm:ss"")")
Else
msg = "設定時間が取れません。"
End If
MsgBox msg
End Sub
'メッセージボックス(MsgBox)の代わりに、セルに書き出しても良いと思います。
'例: Sheet1.Range("D2").Value = msg
マクロのご提示 ありがとうございます。
これこのままコピペして使わしていただけるもんですか?
試してみます。ありがとうございます。
もしよろしければ下記の補足の件、
お願いさせていただきたいのですが。
No.6
- 回答日時:
間違えた!
こっちです
Sub Macro1()
With Range("a1")
.Value = Now()
.NumberFormatLocal = "h:mm:ss"
End With
End Sub
Sub Macro2()
With Range("a2")
.Value = Now()
.NumberFormatLocal = "h:mm:ss"
End With
End Sub
マクロの設定や、
マクロをボタンに登録する方法は大丈夫ですか?
この回答への補足
最後の山です。
各業務要素ごとに秒単位で所要時間を測定するつもりです。
ざっとした分類の流れは
(メンバー各人)→(業務大分類)→(業務小分類:業務要素):所要時間測定
となります。
たとえばメンバー各人が
kansaiheart:(案件処理1)→(確認/計算/入力1)
某主任:(CADdataたちあげ)→(計算処理2)
といった順に項目を決め込み それぞれの業務要素に対して開始時間(=直前の要素の終了時間)を入力します。
いまのところ、
エクセルのコントロール機能を用い大分類を選択し、
小分類:業務要素もコントロール機能で選択します。
ここで大分類ごとに小分類のリストが違ってきますので
小分類のコントロール機能のリストにif関数を用いて大分類の決め込みにたいし別のリストからリストを読み込んでくるようにしています。
ただ上記小分類ごとに(開始時刻)~(終了時刻)(=差をとって所要時間)を個々のデータとして取り扱いたいので
コントロール機能を用いれば一日に繰り返される小分類(おそらく数百~1000以上)の数だけコントロールを作成しないといけないのかな?
というところで固まってしまいました(涙)
(上記データのイメージはファイルメーカをご存知やとして「表レイアウト」ってレイアウトがあったかと思います。ああいう感じで1つ1つの時間データを取り扱いたいと考えてます。
当方、業務ソフトとしてはエクセルとファイルメーカ、その他CAD etc.が多少使える程度の知識しかありません。マクロもごく簡単なものがわかる程度です)
以上、言葉では非常に説明しにくいですがエクセルの画面上びっしりと業務要素および所要時間のデータが表になってるイメージを感じていただければ幸いです。
よろしくアドバイスお願いします。
マクロのご提示 ありがとうございます。
今なんとか処理してるところです。
上記 補足させていただきました。
非常にわかりづらいのですが項目の選択をくりかえさねばならないため、秒単位での測定に支障が出てます。
よろしければアドバイスください。
No.5
- 回答日時:
じゃぁ、やっぱマクロかなぁ
Sub Macro1()
With Range("a1")
.Value = "=NOW()"
.NumberFormatLocal = "h:mm:ss"
End With
End Sub
Sub Macro2()
With Range("a2")
.Value = "=NOW()"
.NumberFormatLocal = "h:mm:ss"
End With
End Sub
開始と終了用にボタンを2つ用意して、
それを押すとか。
No.4
- 回答日時:
#3
・ある業務の所要時間を測定したい。
・該当業務の開始時刻をすばやく入力
・同、終了時刻を入力
・両者の差をとって所要時間とする。
入力規則を2箇所(開始用と終了用)に作成して
その下に引き算の関数を入れれば所要時間が出ると思います
まだ何かあるのですか?
この回答への補足
先の業務終了=次の業務開始というスタンスですので上記は解決してます。
NO.3の補足についてお願いします。
(お礼入力から補足入力にタイムラグがありました。
アクセス多すぎのサーバーエラーが出てました。
申し訳ありません)
それと最後の山ですが、うまく表現できませんので手元で文章をまとめたうえで補足させていただきます。
ここまでのご丁寧なご回答、ありがとうございます。
もう少し よろしくお願いします。
No.3
- 回答日時:
#2です
使い方を詳しく書けば良かったですかね
どのセルを使いたいか不明ですが
A1に
=now()
と入力
(これは、単に現在時刻を取得するためだけです)
実際に使用するセルへ
データ-入力規則
リスト
で、
元の値に
=A1
と入力します
すると、
B1がリスト形式になり、リストを選択するたびに
現在時刻now値が入ります。
表示駅式を
hh:mm:ss
にすれば、現在時刻が表示されます。
余談ですが、
A1は
=today()
も使えます
この回答への補足
あと山が2つあります。
よければアドバイスください。
まずは簡単そうなほうから。
入力規則を利用しますと該当セルにデータを入力するのにダブルアクションが必要ですよね。
1.セルを選んで「▼」を出す。
2.「▼」を選んでデータ入力。
下記補足に書きましたとおり秒単位の測定を被測定者本人が行います。
ですのでツールの入力に時間がかかってしまっては信頼性の低いデータになってしまいます。
できればワンアクションでデータの入力を行いたいのですが。
ファイルメーカなどですとフィールドそのものをボタンにすることが出来たような気がします。
本件、入力規則を用いてそういうことができますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
漢字→ひらがな 一括変換
-
Excel97 数字を0120と入力する...
-
PowerPointの表内のカンマ
-
【VBA】PDF出力に任意のファイ...
-
EXCELでタイトル行と一番下の行...
-
エクセル 数式の無効化
-
エクセルで休日の「休」という...
-
EXCEL 連動したドロップダウン...
-
セル上に表示された見かけ上の...
-
エクセル関数:文字だけでなく...
-
EXCELで縦の行全てに一括して文...
-
Excelでセルを次の行の先頭の列...
-
名簿の漢字名を関数で半角カナ...
-
エクセルで「-3E+06」と...
-
エクセルでオートサムを使った...
-
【Excel】選択したすべてのセル...
-
Excelで数値をgからkgへ(÷1000)
-
Excelのテーブル上のセルの保護...
-
エクセルでチェックボックスを...
-
エクセルでハイパーリンクのコピー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tera term マクロのinputbox
-
関数を使った日時の自動入力
-
漢字→ひらがな 一括変換
-
エクセルにペーストしたときの...
-
エクセルでの現在時刻入力
-
エクセルで勤怠管理表のようなもの
-
エクセルのコピー貼り付けマクロ
-
エクセル☆セルに入力必須の制限...
-
キーボード、マウス操作を自動...
-
エクセルでHTML情報を無視したい
-
修正保護の確認のVBAについて
-
エクセルで保護を自動に行う設定
-
「星の数を10個」をマクロで書...
-
エクセル
-
excelでセルに自動入力したい
-
エクセル_日付けの自動入力
-
PowerPointの表内のカンマ
-
エクセル 数式の無効化
-
【VBA】PDF出力に任意のファイ...
-
EXCELでタイトル行と一番下の行...
おすすめ情報