• ベストアンサー

エクセル 時間の表示形式AM/PM無にしたいです

こんにちは 時質問にも書きましたように午前午後であっても AM/PM表示なしの15:30であれば「3:30」と表示したi のですが 何かいい方法はありませんか? 近い答えとしてQNo.383850でセルの文字の折り返しを併用利用も ありましたが それ以外の考え方がないでしょうか。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

別列に値としてだして良いなら、既回答のようなのをおもいつく。 しかし、時刻値の入ったセルで、そう見せるのはキワモノの方法で無いと不可能と思う。今までの質問でも良い答えが、でなかったように記憶する。 そのキワモノの1つ。 四角図形を上から載せてPMなどを隠す。 ・欠点はセル右部に余白が出てしまう。 ・列幅調節が必要 ・いかにもVBAを使って大げさ。 こんなことに時間をとってもったいないと思うが、仕事イロイロでしょうか。 Sub Macro1() For i = 1 To 10 Cells(i, "f").NumberFormatLocal = "[$-409]h:mm AM/PM;@" With Cells(i, "F") l = .Left + Cells(i, "c").Width * 0.75 t = .Top + 2 h = .Height * 0.8 w = .Width * 0.3 End With ActiveSheet.Shapes.AddShape(msoShapeRectangle, l, t, h, w). _ Select Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.Solid Selection.ShapeRange.Fill.ForeColor.SchemeColor = 65 Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.Transparency = 0# Selection.ShapeRange.Line.Visible = msoFalse Next i End Sub 上記はほとんどマクロの記録をとったものを少し変えただけ。 10行までの例。 F列にデータがある例。 行高が同じ場合が都合が良い。 列幅を調節してPMAMが見えない幅を探る。

wakudo
質問者

お礼

ありがとうございます。みなさんからのご回答をまとめて整理しても imogasiさんのおっしゃる通りだと思いました。 *時刻値の入ったセルで、そう見せるのはキワモノの方法で無いと不可能と思う。・・・ このコメントが結果的に私が求めていたものだったような 気がいたしました。 それでもというのであれあば・・・VBAう~ん。なるほどってかんじです。 誰かを説得するためにはいろいろ代替案が必要なんだなと その結果「一筋なわじゃいかないよ」ってくるんだと思います。 ですので今回はimogasiさんにポイントを送らせてください。 みなさまにも本当に感謝しております。 ありがとうございました(__)

その他の回答 (3)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

=TEXT(MOD(A1,0.5),"h:mm") または、 =MOD(A1,0.5) ★表示形式を、 h:mm

wakudo
質問者

お礼

ご回答ありがとうございました。 こんなにたくさんご回答いただいているのに 全く気付かなかった自分に腹がたっております。 ですが関数を利用するといろいろな関数で結果を求めることが できるということを再認識させていただきました。 本当にありがとうございました。

noname#204879
noname#204879
回答No.2

=TEXT(A1-"12:0"*(HOUR(A1)>11),"h:mm")

wakudo
質問者

お礼

早速のご回答ありがとうございました。 本当にすみません。 前述にも書きましたようにできればセルの書式設定あたりでユーザー定義つくれないかなぁ なんて安直に考えておりました。 ですが、素早いご回答をいただけて感謝しております。 ありがとうございました。

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.1

A1に時刻表示 データ 一例 =IF(A1="","",TEXT(A1-IF(HOUR(A1)>11,"12:00",0),"h:mm"))

wakudo
質問者

お礼

早速のご回答ありがとうございました。 関数を使うのも一つですね。ありがとうございます。 ただすみません実は時刻データのセルに対しての表示形式に したいと考えております。 質問がわかりづらく申し訳ありません。 できればセルの書式設定あたりでユーザー定義つくれないかなぁ なんて安直に考えておりました。 ですが、素早いご回答をいただけて感謝しております。 ありがとうございました。