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

エクセル 時間を.(ドット)で入力するには?

給与計算のなかで、時刻の入力があります。
その入力方法で、表示形式は時刻(h:mm)のままで「8:30」を「8.30」と入力する方法はないでしょうか?
8:30を8.5と入力するのではなく、記号:のみ.に代替えできないか?ということです。

実はマクロのわかる方と給与計算ソフト(エクセル)を作成しているのですが、私が「テンキーのみで時刻入力ができたほうが良い」と提案したところ「マクロでどうこう出来る問題ではない。: の入力がそんなに難しいのか?右手でテンキーを使うなら左手を : の所に置いて居れば良いじゃないか?」と言われました。しかし実際に下のサイトを見つけ、出来なくはないのではないか?と思っております。

http://www009.upp.so-net.ne.jp/naminami/

彼曰く
0:00 は24を掛ける事で数値になります
現状は 時刻表示を数値に換算してから計算していますから
マクロを変えれば数値で入力されても可能ですが
問題は時刻を数値で表示するのは結構難しいのです
例えば 2:30 を必ず 2.5と入力して呉れますか
翌日の 3:00はどの様に記入されますか?
そうした事を勘案すると 作業者の日報の通り(時計の通り) 1:30 とか 1:15 と
入力する方が楽なのです

というのです。
私は、マクロの知識がないので強くいうことができないのですが、やはり無理なのでしょうか?

長文で申し訳ありません。
ここまで読んでくれただけでもありがたいですが尚、回答いただければ本当に感謝です。
よろしくお願いいたしますm(__)m

A 回答 (4件)

参考になれば、、ですが。



私も頻繁に時刻の入力がありますので、質問者同様 結構苦労した経験があるんで、いろいろ
やってみた経緯があります。

VBAのchangeイベントでは簡単に実現できますが、パタパタ キー入力するには、ちょっと
レスポンスが悪くて、それに 片手は帳票をめくっているんで、どうしても片手打ちになり、
キー位置が離れるとどうしても違和感があって、、、。

私はどうせならと思ってドットも打たず、08:00 なら「8」だけ、08:25なら「825」で
済むよう、レスポンスも考慮してセル内の式で作りました
(単純なLEN、RIGHT、& などの組合わせですが、結構長くなります)
ファイルサイズは大きくなりますが、400行×3シート程度をストレスなく入力しています。
 ただ、ちょっと細工が必要なんで、ここで表現しにくいんで 下記にUPしましたので、
それこそ「参考になれば、、」ですが、ダウンロードしてみてください。
ファイル名は「時刻入力の一例.xls」です。

内容は 上級の方から見れば陳腐かもしれませんが、結構使えてます^^

http://cid-e07ce487cff96a59.office.live.com/brow …
    • good
    • 1
この回答へのお礼

ありがとうございますm(__)m
lll49erlllさんのような意見を期待していました。
実は、私は給与計算の入力をされる方と、プログラマーとの間に入ってやり取りをしている立場です。

プログラマーの方はなかなか、現場の意見には納得できないようで「指を少し動かすだけだろ」的な固定概念があり、一方入力側は「右手だけで済ましたい。入力が何百とあると大変」という意見であり、間に挟まった私は毎日悩まされる日々でした(今回の時間入力以外にも難問があって・・)
私に知識があれば現場の方々の意見を取り入れて作ってあげたいとは思うのですが、残念ながらそのような頭はもっておらず、lll49erlllさんのような柔軟な考え方のできる方の意見を吸収できてありがたいです。

ただ、参考に為せていただいたファイルの中の「アンダーバー4個に@ =文字の右にスペースが入り、文字が左に押し出されて、みえなくするため」の意味が理解できないのですが、出来ればもう少し砕けて説明していただくことは出来ませんか?
lll49erlllさんのような頭を持ち合わせておらずすいませんm(__)m

お礼日時:2010/08/27 09:00

 とりあえず、8.30 と入力すれば 8:30 となればいい、というのであれば、



Private Sub Worksheet_Change(ByVal Target As Range)
Dim h As Integer
Dim m As Integer

If Target.Column <> 1 Then Exit Sub 'A列に入力するときのみ有効
If Not IsNumeric(Target.Value) Then Exit Sub

h = Int(Target.Value)
m = (Target.Value - h) * 100

Application.EnableEvents = False

Target.Value = h & ":" & m

Application.EnableEvents = True

End Sub

とかでいけるかな?

時刻とならないような、8.85 みたいなのを入れると、うまくいきません。(シリアル値が生で表示される)


でも、私なら

> : の入力がそんなに難しいのか?右手でテンキーを使うなら左手を : の所に置いて居れば良いじゃないか?

に一票!
    • good
    • 0
この回答へのお礼

マクロの記述まで書き添えていただいてありがとうございます。
そうですか。私は一票のがしてしまったのですね・・・

きっと打ちなれていらっしゃる方はなんてことはないんでしょうね。
左手は、Tabキーに置きたいんです。入場時間→退場時間→次行入場時間・・・・・・と打つので。

お礼日時:2010/08/26 18:04

IME(もしくはお使いの日本語変換システム)で「..(カンマ2つ)」→「:」に変換するように単語登録されては如何でしょうか。


私はこれで入力してますが、特に問題ありません。
時刻は、必ず「:」を用いて入力しておく方が後々面倒になりません。
    • good
    • 0
この回答へのお礼

はい。ありがとうございます。
私の考えはあったのですが、「..」と2つ打つということが要領が悪い気がして妥協できませんでした。
これは、ほかのエクセルファイルで「.」を使用したときに支障がないように2つにするんですすよね?

お礼日時:2010/08/26 16:45

マクロなんか要りません。

オートコレクトで「..」を「:」に自動修
正するように設定します。テンキーで1..30とタイプすれば、勝手に
1:30になりますよ。

この回答への補足

はい。ありがとうございます。
私もその考えはあったのですが、「..」と2つ打つということが要領が悪い気がして妥協できませんでした。
これは、ほかのエクセルファイルで「.」を使用したときに支障がないように2つにするんですよね?

補足日時:2010/08/26 16:46
    • good
    • 0

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