🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

3回答

10688閲覧

VBA 時間表記変換したい 75.5分→1:15:30

ppss

総合スコア40

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

1グッド

2クリップ

投稿2021/03/22 01:44

VBAで時間表記を変更したいです。

**【75.5分】**のようにデータが入力されています。
このデータ表記を **【1:15:30】**というように変換したいです。

※24時間を超える値も存在しています。その場合30時間10分40秒と表記したいです→【30:10:40】

どのような関数や計算、コードを書けばよいのか全く見当がついていません。
ヒントやアドバイス等頂けますでしょうか。
何卒よろしくお願い申しあげます。

boyon👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

シリアル値に変換してText関数を使うことができます。
※Format関数では[h]を使えないのでご注意ください。

vba

1Sub Sample() 2 3Dim t As Double 4t = Range("A1") / (24 * 60) 'シリアル値に変換 5Debug.Print WorksheetFunction.Text(t, "[h]:mm:ss") 'TEXT関数で24時間以上も表示可能にする 6 7End Sub 8

投稿2021/03/22 02:06

radames1000

総合スコア1925

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ppss

2021/03/22 02:48

ご回答ありがとうございます。 とてもスマートなコードで感激しました。 私の書いたコードではわかりにくかったのでこちらを採用させて頂きます。
sazi

2021/03/22 07:02 編集

範囲を超えた場合の書式があったんですね。 公式で探してみたけど、いまいちだったので以下。 TEXT関数(数値を書式設定した文字列に変換) https://excel-ubara.com/excel1/EXCEL573.html
radames1000

2021/03/22 07:58 編集

公式だとこちらがよさそうです。 Excel のセルの表示形式で [ユーザー定義] に使用できる書式記号について https://bit.ly/3c8995M
guest

0

まず、秒に換算します
75.5*60
その結果から、秒、分、時を出しましょう

投稿2021/03/22 01:46

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ppss

2021/03/22 01:50

ご回答頂きありがとうございます。 次々と計算していく方法でやってみます!
guest

0

Dim H As Long Dim M As Long Dim s As Long Dim NAMA As Double '生データ Worksheets("Sheet1").Select NAMA = Worksheets("Sheet1").Cells(4, 1).Value Dim NAMA2 As Double 'NAMAの少数部分 NAMA2 = NAMA - Fix(NAMA) Dim HMAE As Double 'H算出のための変数 HMAE = Fix(NAMA) / 60 s = NAMA2 * 60 If Fix(NAMA) < 60 Then M = Fix(NAMA) H = 0 Else H = Fix(HMAE) M = (HMAE - Fix(HMAE)) * 60 End If MsgBox H & ":" & M & ":" & s コード

投稿2021/03/22 02:50

編集2021/03/22 02:53
ppss

総合スコア40

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問