- 締切済み
時間表示で・・・
時間の入力の際000:00と表示してほしいので表示形式はユーザー定義[h]:mmとしてあります。時間を入力する時に数字だけ入力すると変な数字になってしまいます。コロンまで入力するとOKなんですが、マクロでなんとかしたいと思っています。よろしくお願いしますm(__)m
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
時間の入力で、例えば15時間43分を1543、8時間6分を806とA列に入力するなら、(Changeイベントを使わないなら、) 入力が一段落した(終わった)とき Sub test01() d = Range("A65536").End(xlUp).Row MsgBox d For i = 1 To d s = Cells(i, "A") Cells(i, "A").NumberFormat = "[h]:mm" If Len(s) >= 3 Then Cells(i, "A") = TimeSerial(Mid(s, 1, Len(s) - 2), Right(s, 2), 0) Else Cells(i, "A") = TimeSerial(0, s, 0) End If Next i End Sub を実行するとどうでしょう。(バッチ方式) 例データ A列 元のA列(数値になっている) 14:02 1402 18:29 1829 0:23 23 12:34 1234 45:28 (=SUM()で合計) こういう質問ですか。
- mshr1962
- ベストアンサー率39% (7417/18945)
>時間を入力する時に数字だけ入力すると変な数字になってしまいます。 数値だけで入力だとユーザー定義 000":"00 ですね。 計算時は =INT(A1/100)/24+MOD(A1,100)/1440 で計算になりますが...
- telescope
- ベストアンサー率54% (1069/1958)
時刻の入力がたくさんあって、いちいちコロンを入力するのが面倒だということなら、 A1セルに数値を入力し、B1セルに =(INT(A1/100))/24+(MOD(A1,100)/24/60) と式を入れます。 必要なだけ下方向にコピー&ペーストします。 A列の表示形式は、「標準」または「数値」、B列は「時刻」にします。 すべての入力が終わったら、B列をコピーして「形式を選択して貼り付け」で「値」をA列に貼り付けます。表示形式を「時刻」にします。 *Excelでは、1を24で割った数値を1時間、さらに60で割ると分としています。 1336と入力して、時刻表示にしても13時36分とは認識しません。 1900年1月1日から起算して1336日目と認識します。
- porilin
- ベストアンサー率22% (142/631)
セルの計算で私が回答した部分を参照してください。 マクロに加工すれば出来るでしょう (それくらいは出来ますよね?)