仕事を頑張る人のおしりトラブル対策

マイクロソフトのエクセル EXCEL(2010)において時刻入力を簡単にしたいのですが、下記のようなことをする方法はありますか?

ex.
タイムカードの集計をするのですが、
セルに「13時25分」を入力したく、表示は「13:25」としたい、日付情報は含まなくてOKの場合、
(カギカッコは分かりやすく見えるかなと思った表記であり不要)
私はキーボードのテンキーで1と3を押した後、ひらがなでいうと「け」のところにあるコロン(:)を押して、テンキーで2と5をおします。
が、このコロンをタイピングするのがめんどくさく、普段はかな入力なので「13け25」になってしまったりするので、
できれば予めセルに設定をするなどしておいてテンキーで1と3と2と5だけを押すと13:25になるとベストです。(1つのセルで完結したいので、こっちのセルに入れておくとこっちのセルがっていうのは好みではありません・・・)

8:05だとしたら「0805」、16:35だとしたら「1635」と入力するだけの方法はありませんか?

このQ&Aに関連する最新のQ&A

A 回答 (7件)

こんにちは!



>タイムカードの集計をするのですが
というコトですので、そのまま計算できるように実データにしてみてはどうでしょうか?

VBAになりますが一例です。
入力範囲がこちらでは判断できませんので、A列限定にしています。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)A列セルにデータを入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から//
'▼A列以外、複数セルの場合は何もしない。
If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Value <> "" Then
If .Value > 0 And .Value < 2400 Then
If .Value Mod 100 < 60 Then
.NumberFormatLocal = "h:mm"
Application.EnableEvents = False
.Value = TimeSerial(Int(.Value / 100), .Value Mod 100, 0)
Application.EnableEvents = True
Else
MsgBox "下二桁は60未満にしてください。"
.Select
End If
Else
MsgBox "入力値が不正です。"
.Select
End If
End If
End With
End Sub 'この行まで//


※ 本来であれば細かいエラー処理が必要なのでしょうが、
とりあえずはこの程度で・・・m(_ _)m
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
希望に一番近い感じで、ご教示頂いた内容を基にいじってみたいと思います。
VBAは齧ろうとしたくらいで挫折しましたがこれから勉強してみようと思いました。
ありがとうございました。

お礼日時:2015/08/21 08:21

解決されてましたらスルーしてください



A2:B32 の範囲でのものになりますが、以下のような感じではどうでしょう

805
234
45
567
1278
2367



8:05
2:34
0:45
6:07
13:18
24:07

となるかと
なお、まとめてはりつけても動くようにしてみました
また、変換後のものを移動/貼り付けしても、誤動作はしないかと
不具合あったら、修正するなり捨てるなりしてください


Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range, r As Range
  Dim vA As Variant, v As Variant
  Dim iT() As Long
  Dim i As Long, j As Long

  Set rng = Intersect(Target, Range("A2:B32"))
  If (rng Is Nothing) Then Exit Sub

  vA = Array(Array(60, 1), Array(24, 0))

  Application.ScreenUpdating = False
  Application.EnableEvents = False
  For Each r In rng
    If (r.Value <> "") Then
      i = Val(r.Value)
      If (i = r.Value) Then
        ReDim iT(2)
        For Each v In vA
          j = i Mod 100
          i = i \ 100
          i = i + (j \ v(0))
          iT(v(1)) = j Mod v(0)
        Next
        r = i + TimeSerial(iT(0), iT(1), iT(2))
      End If
    End If
  Next
  rng.NumberFormatLocal = "[h]:mm"
  Application.EnableEvents = True
  Application.ScreenUpdating = True
End Sub
    • good
    • 0

こんにちは。



本日は、もう私が書こうと思っていたものは、あらかた出てしまったので、マクロだけ提示しておきます。

せっかく、#4さんが書いていただいているのに、後付けで申し訳ないのですが、わたし流の方法です。こんなパターンのマクロは、もう10年前に書いていたような気がします。

私の考え方は、VBAの時間値というものは、24時間以内に対して、
ワークシート上は、時間自体の制限はないというところを、着眼点においたものなのです。

マクロを作っている人だけが、その違いを分かるかもしれません。まずは参考まで。
1290 と入れたら、どうなるか、とか、2645 はどう表示されるか。

シートタブを右クリック-コードの表示
現れた画面に以下を貼り付けます。

それから、書式が先で、値が後なのですね。あまりはっきりした記憶ではないのですが、値を先に入れると、その値が変わってしまうことがあるという現象からなのです。

'//
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myTime As Variant
Dim myH As Variant
Dim myValue As Variant
If Intersect(Target, Range("A1:A30")) Is Nothing Then Exit Sub '入力する範囲
If Target.Count > 1 Then Exit Sub '複数のセルの同時処理は行わない
If Target.Value = "" Then Exit Sub '空白は除外
If Not IsNumeric(Target) Then Exit Sub '文字は除外

myValue = Target.Value2
If Len(myValue) > 4 Then myValue = Left(myValue, 4)
myTime = Format(myValue, "00:00")
myH = Mid(myTime, 1, 2)
If myH >= 24 Then
 myTime = (myH \ 24) + (myH Mod 24) / 24 + Mid(myTime, 4, 2) / (24 * 60#)
End If
Application.EnableEvents = False
If IsDate(myTime) Then
  Target.Value = myTime
 Else
  Target.NumberFormat = "[h]:mm"
  Target.Value = myTime
 End If
 Application.EnableEvents = True
End Sub
'///
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
VBAはまだまだ勉強不足ですが、着眼点からいろいろなやり方があるものだなと勉強になりました。
改めて挑戦してみたいと思います。

お礼日時:2015/08/21 08:23

>8:05だとしたら「0805」、16:35だとしたら「1635」と入力するだけの方法はありませんか?


少し手間が掛かるが
入力したいセル(または列、行)の書式を「文字列」にしておき、
8:05を8.05、16:35を16.35と入力する。
後に「置換」で入力した範囲のピリオド(小数点のこと)をコロン(:)に置き換える。
これなら時間として計算も可能だ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
ご教示頂いた方法だと、なんとなく計算ミスが起こりそうなので(個人的な感想です)
今回はVBAに挑戦してみたいと思います。

お礼日時:2015/08/21 08:35

> 8:05だとしたら「0805」、16:35だとしたら「1635」と入力するだけの方法はありませんか?



時刻を入力するセル範囲に、「セルの書式設定」の「表示形式」で「ユーザー定義」を「#0":"00」に設定すれば、ご希望のように表示されます。
(8:05の場合、「805」「0805」どちらでもOKです。)

但し、時間の計算には使えませんので、お勧めしません
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
今回の目的は勤務時間を計算するためなので文字にするやり方では対応できません・・
一旦こっちのセルで入力して・・っていうのも考えましたが、
今回はVBAに挑戦してみたいと思います。

お礼日時:2015/08/21 08:33

● 入力規則はNo.1の方の通り、日本語入力を無効にします



● コロンは、オートコレクトを使うと便利だと思います。
当方は 「..」を「:」に自動変換するようにしてあります
13..25 と入力します
http://www4.synapse.ne.jp/yone/excel2010/faq/aut …

▲ 計算するでしょうからすすめませんが、表示形式で見かけ上なら
>8:05だとしたら「0805」、16:35だとしたら「1635」と入力するだけの方法はありませんか?
も可能です。表示形式のユーザー定義で #0!:00
計算するときは、=text(A1,"#0!:00")+0
とするなど、一工夫必要なので参考程度に
「エクセルの時刻入力を簡単にする方法」の回答画像2
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
オートコレクトのやり方は以前ググった時に試してみましたが、いまいち使い勝手が宜しくなく結局左手でコロンを打っていました。
コロンのついたテンキーが売ってないかも探しましたが発見に至りませんw
今回はVBAに挑戦してみたいと思います。

お礼日時:2015/08/21 08:29

>テンキーで1と3と2と5だけを押すと13:25になるとベスト


コッチの方が簡単な気がします

例えばA1のセルを選択した状態で
・データ→データの入力規則
・「データの入力規則」というダイアログで「日本語入力」タブを選択。
・「日本語入力」という項目で「無効」を選択
とやっておくと、かな入力で「13け25」が「13:25」となる筈です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

「け」or「:」のキーを押す事自体が離れていて面倒なので、テンキーの数字キーのみで出来ないかなぁと模索しています。
1、3、2、5、エンターキー、の5つのみで次のセルへというような方法を・・・

お礼日時:2015/08/20 12:18

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルの時間入力を簡単にする方法

エクセルの時間の入力をする場合、例えばセルに「1000」と打って入れると「10:00」と入力されるようにしたいのですが、やり方が分かりません。
VBA使用してもいいので、やり方を教えてください。
あと、例えば「12/24 10:00」の場合も、テンキーだけで「12/241000」といった形で簡単に出来ないでしょうか?

Aベストアンサー

質問者様の希望とは多少異なりますが、私はテンキーのみで時間を入力
できるようにしてます。
ツールバーのツール⇒オートコレクトのオプションで
オートコレクトタブを開き、
修正文字列に..(コンマ2つです)
修正後の文字列に:(コロンです) を入力しますと、
10..00と入力すれば10:00と自動でなりますよ。
12/24 10:00の場合も12/2410..00と入力すれば12/24と10:00の間にスペースは入りませんが、12/2410:00になります。
12/24.10..00なら12/24.10:00にはなりますけど。

Qエクセルで時間入力10:30の:コロン省略したい。

始業と終業の時間を入力し勤務時間を計算しております。
始業時間はA1に8:30 終業時間はB1に17:00と入れております。
コロン(:)を省略できるととても楽になります。8:30は830と入力、17:00は1700と入力して
表示にはコロンが入り、セルの書式としては時刻と認識し時間計算が出来ればありがたいです。
よろしくお願い致します。

Aベストアンサー

それが実現されると数値の3桁も4桁も全部コロンがついて入力されることになるのでものすごく不便。
セルの書式設定で特定のセル範囲にのみそれを適用するという方法もあるが、それだと入力した物は時間として見なされず計算に使えない。
Private Sub Worksheet_Change(ByVal Target As Range)
を使って
If Len(Target.Value) < 4 Then t = "0" & Target.Value
Target.NumberFormatLocal = "h:mm;@"
Target..Formula = Left(t, 2) & ":" & Right(t, 2)
とする方法なら実用的。


「オートコレクト」を使って、コロンの代わりにピリオド二連打したらコロンと見なすとしたほうが簡単。

QExcel時間の入力方法

Excel2013です。
38時間15分を入力するのに、38:15と入力すると セルには38:15:00と表示され、数式バーには 1900/1/1 14:15:00 と表示されています。
38:15:00と表示されたセルの「書式設定」→「h:mm」を選択すると セルの38:15:00が14:15に変わります。数式バーの1900/1/1 14:15:00 はそのままです。
時間の38:15を入力する方法はどうすればいいでしょうか?
Windows8.1です。

Aベストアンサー

>セルには38:15:00と表示され、数式バーには 1900/1/1 14:15:00 と表示されています。
セルには入力時の値を見て自動的に数値の表示形式を"[h]:mm:ss"に設定されたためです。
数式バーについては日時のシリアル値として1900/1/1 14:15:00と表示されます。
時刻(時間ではない)は24時以上はありませんので整数部は日付に置き換えられます。
Excelの日付の起点は1900/1/1を1と定義されていますのでシリアル値の整数部は1900/1/0からの経過日数と判断されます。

>時間の38:15を入力する方法はどうすればいいでしょうか?
入力は38:15とタイプしてEnterキーで確定すれば良いでしょう。
セルの表示形式をユーザー定義で[h]:mmに変更すれば目的通りになります。
数式バーの表示は気にしないでください。

Qエクセルの時間計算でコロン(:)を省略した定義を設定し、時間差分の計算

エクセルの時間計算でコロン(:)を省略した定義を設定し、時間差分の計算をする方法を教えて下さい。
例えば・・・
入力文字200→(2:00)となる様に設定して
さらに以下の様に時間差分の計算をする方法です。
17:00-16:15=0:45となる様に計算したいです。
コロン省略設定をしなければ簡単なのですが・・・・設定すると差分の計算がおかしくなります。

Aベストアンサー

C2に
=TEXT(B2,"0!:00")-TEXT(A2,"0!:00")
として,計算結果を無駄に省略表記する必要はないので,
C列のセルにはセルを右クリックして書式設定の表示形式のユーザー定義で
[h]:mm;;;
 後ろはセミコロンが3個なので間違えないこと
と設定しておけばOKです。


#掲示されたサンプルはなんだか時間が逆ってますが,Aに開始,Bに終了の前提です。

Qエクセルで9と入力したら時刻表示で9:00と表示したい。

かなり初心者な質問かもしれませんが、エクセルで9と入力したら時刻表示で9:00と表示しり、12.5で12:30などと表示させたいのですが、どうにもこうにもわかりません。どうしたらいいのでしょうか?

Aベストアンサー

セルに9と入れると、値は9です。表示形式で9:00にはなりません。このセルの値を(1)時間計算に使う(2)表示形式で時刻で使えるものを使う
ために9:00(または9:)と入力されることをお勧めします。入力の時1ストロークケチることが、あとあとややこしいことをしなければならないことになる可能性大です。日付・時刻はこの点要注意です。
9:00の時刻のエクセルの値は=9/24で0.375です。
このことを理解できないうちは要注意です。

Qエクセルに入力された数値を ●時間●分 と変換

教えて下さい

エクセルに min(分)で数値が入力されています
それを 何時間何分 という表示に変える方法はありませんか?

例) 445 → 7時間25分

表示は 7:25 でも 7.25 でも、何でも構いません

よろしくお願いします

Aベストアンサー

A列に「445」のような分が入力されているとして

B1=TIME(0,A1,0)
とします。
表示形式で「○時○分」などに変更すれば、

7時間25分…と表示可能です。

Qエクセルで勤怠管理表で休憩時間を計算させるには

エクセルで、社員の出勤時間の計算をしたいのですが、
休憩時間の控除の計算式がよくわからずに困っています。

パートさんが多いので、労働時間により休憩時間が異なり、下記のようにしています。
4時間30分未満=0分
4時間30分以上=30分
6時間以上=45分
8時間以上=60分

現在使用しているデータの時間表示は、出社「9:00」退社「17:00」延べ時間「8:00」というような、60進法の時分表示です。
これを、10進法表示にはしない方法で計算したいです。

現在の表では、
Aセル=出社時刻、Bセル=退社時刻、Cセル=述べ就労時間、Dセル=休憩時間、Eセル=勤務時間(←述べ就労時間-休憩時間)
にしているのですが、

Dセルの休憩時間が自動計算設定の仕方がわからず、述べ就労時間を見ながら手入力しています。(かなり手間なのと、間違いのもとなので)
これを自動計算できるようにしたいのですが・・

教えて頂けたら大変助かります。
宜しくお願いします。

Aベストアンサー

IF文で
=IF(C2<"4:30"*1,0,IF(C2<"6:00"*1,"0:30"*1,IF(C2<"8:00"*1,"0:45"*1,"1:00"*1)))

Q数字を入力するとセルに色が付くようにするには

ウインドウズ7で、数字を入力するとセルに色が付くようにするにはどうすればよろしいでしょうか?

Aベストアンサー

Officeのバージョンが分かりませんので、excel2007・2010のバージョンでの操作方法を・・・。
(1) 条件付き書式をせってしたいセル範囲を選択(例えばA1~A10までを選択)
(2) 「ホーム」タブ→「スタイル」グループ内の「条件付き書式」をクリック
(3) 「新しい書式ルール」を選択
(4) ルールの種類から「指定の値を含むセルだけを書式設定」を選択
(5) 下方向の「セルの値▼」をクリックし、「空白なし」を選択」→「書式」から「塗りつぶし」を選択
(6) 塗りつぶしに色を選択→「OK」→「OK」→「OK]で「文字」「数値」を入力するとセルに設定色が付きます。

別の方法として・・・
(3) までの手順を済ませ、ルールの種類から「数式を使用して書式設定するセルを決定」を選択
(4) 枠の中に =A1<>"" と入力→「書式」よりセルの色を設定→「OK」→「OK」→「OK」でも設定できます。

Qエクセルでの時間計算(2時間30分→2.5と表示するには?)

開始時刻15:00、終了時刻17:30の場合の所要時間の計算ですが、15分=0.25で表示したいのです。この計算式を教えて下さい。
また、15分=0.25の場合、10分はいくつになるのですか?この計算方法も教えて下さい。
おバカでお恥ずかしいのですが、宜しくお願いします。

Aベストアンサー

A1セルに「15:00」と、B1セルに「17:30」と、C1セルに「=(B1-A1)*24」と入れてみて下さい。C1セルに「2.5」と表示される筈です。

エクセルでは、日付時刻は「1日間なら1、2日間なら2、12時間なら0.5」として記憶しています。つまり1時間を示す値は「1/24」として記憶しています。

そこで「日付時刻の差」を24倍すると「1時間を1にした数値」になります。

15分を0.25と決めた時、15分の場合は
15/60
=1/4
=0.25
と計算するのですから、同様にして10分の場合は
10/60
=1/6
=0.166666666…
と計算します。

Qエクセルで分から時間に変換したいのですが

いつもお世話になっています。よろしくお願いいたします。
エクセルで「分」の合計を「時分」に変換して表示したいのですがどうもうまくいきません。
どなたかご教授願えないでしょうか?
例:200(分)=3時間20分もしくは3:20
お願いいたします。

Aベストアンサー

A1に「分」が入っていて、別のセルに時分に変換して表示する場合とします。

24時間(1440分)未満であれば、
=A1/1440
とし、セルの書式設定で以下のいづれかを設定すればOK。
(1)[時刻]→[13:30]を選択
(2)[ユーザー定義]→h:m
(3)[ユーザー定義]→h時間m分
※分単位は常に2桁(2時間05分など)で表示したいなら
 (1)の設定か、またはmをmmに変更してください。


上記方法では23時間59分までしか正しく表示できないので、
もし24時間(1440分)以上になる場合は別の方法が必要です。
=INT(A1/60)&":"&MOD(A1,60)
または
=INT(A1/60)&"時間"&MOD(A1,60)&"分"
※分表示を常に2桁にするのであれば、
 MOD(A1,60)をRIGHT("0"&MOD(A3,60),2)に変更してください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報