• 締切済み

秒数変換

秒数を入力してそれが何日、何時間、何分、何秒に変換するプログラムを作りたいのですが Sub 秒数変換() Dim tt As Long, dd As Long, hh As Long, mm As Long, ss As Long tt = ("秒数を入力してください") mm = tt \ 60: ss = tt Mod 60 hh = mm \ 60: mm = mm Mod 60 dd = hh \ 24: hh = hh Mod 24 MsgBox tt & "秒は" & dd & "日" & hh & "時間" & mm & "分" & ss & "秒です" End Sub 自分で考えてこう作成したのですが、実行すると型があっていませんと表示がでます。なぜでしょう?

みんなの回答

回答No.2

エラーが出る場合はどこでエラーが出るのかを書きましょう。 で、試してみましたが tt = ("秒数を入力してください") でエラーが出ているかと思います。 Dim tt As Long としているので tt には整数しか入れられません。 しかしコードでは tt = ("秒数を入力してください") ですから tt には「秒数を入力してください」という文字列が代入されようとしているためエラーになっています。 ここのコードが「ダイアログボックスを表示してユーザーに整数を入力してもらう」というのをイメージしているのであれば、 tt = InputBox("秒数を入力してください") とします。 # ユーザーが整数を入力してくれるとは限らないので # エラートラップを掛けるか、Variant 型の変数に入れて、 # IsNumeric 関数で「数値として評価できる値か」を検査するとか。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

VBで入力を促すのであれば InputBoxなどを使いましょう 実行時にエラーが出る場合ここが怪しいといった部分にブレークポイントを設定して ステップ実行してみましょう VB付属のヘルプMSDNで 表示されたエラーについての情報を確認してください

endli0925
質問者

お礼

あ!すいません!すごい単純なこと見落としてました!ありがとうございます。

関連するQ&A

  • 秒数(Long)→HH:mm:ssへの変換(99:59:59)

    Long型の秒数をHH:mm:ss形式に変換したいのですが、 Calenderクラスを利用した場合、最大23:59:59までは変換できたのですが、それを超える秒数を変換したい場合どのような方法があるのでしょうか? 秒数が359999の場合、99:59:59に変換したいのですが、 Calenderクラスを利用すると03:59:59となってしまいます。 ご教授お願いいたします。

  • 24時間以上の秒数を[hh:mm:ss]にするには

    エクセルで、23時間59分59秒(86399秒)までの秒数は、秒数/3600/24をし、書式を[hh:mm:ss]にすれば、[23:59:59]と表示しますが24時間以上(86400秒以上)を入力すると、[0:00:00]となり0に戻ってしまいます。[24:00:00]と表示させるにはどうしたらよろしいでしょうか。

  • 時間単位の変換for Excel

    2:59:00(hh:mm:ss)を2:59(mm:ss)に変換する関数や方法をご教授頂いてもよろしいでしょうか? 2分59秒と入力していたつもりが2時間59秒00秒になっていました、、、 書式の変更や、値に変換などしてますがプロセスが導けていません。。。 何卒よろしくお願いします。

  • psの結果のTIME(hh:mm:ss形式)を秒数表示に変換したい

    psの結果のTIME(hh:mm:ss)を、perl関数等で秒数表示に変換する方法を教えて下さい。 perlじゃなくてawkやsedなんかでできるんならそれでも構いません。 別言語の関数を使わずともpsのオプションでTIMEを秒数で表示させる事ができるならそれでも構いません。 使うシェルはHP-UXのbshです。

    • ベストアンサー
    • Perl
  • 日付や時刻の"01"を" 1"に変換したいです。

    下記のような問題で悩んでいます。何かよいアイディアがありましたら教えて下さい。 【要件】 ・SimpleDateFormatで指定された書式の文字列にした後、年月日時分秒ミリ秒の"01"~"09"を" 1"~" 9"のように前0を半角スペースに一括変換したい(年は書式がyy形式の場合のみ)。 ・SimpleDateFormatへの書式はエラーが起きない限りどんなものでも受け入れる(通常、書くわけがない書式についても)。 例) "yyyy/MM/dd HH:mm:ss:SSS" "'yyyy/MM/dd HH:mm:ss:SSS形式:'yyyy/MM/dd HH:mm:ss:SSS"  ※''の中にあるMMはテキストなので英字のまま。 "yyyy/MMMMMMMMMMMMMMMMMMMM/dd HH:mm:ss:SSS"  ※Mの数は不明 "yyyy/MM/dd MM MM HH:mm:ss:SSS"  ※月の表示指定が複数 引数 :日付(yyyyMMddHHmmssSSS形式), SimpleDateFormatへの書式 戻り値:SimpleDateFormatで変換後に"01"~"09"を" 1"~" 9"にした文字列 自分なりの検討案としては下記になります。 a.引数の書式をそのままSimpleDateFormatに引き渡ずに、一部修正してから呼び出す。 例)"yyyy/MM/dd HH:mm:ss:SSS"→yyyy/_M/_d _H:_m:_s:__S" ※"_"は半角スペースです。 実際はMやdなどが2桁になる場合は変換しません。 かなりごりごり200行ぐらい試しに書いたのですが、対応できないケースが出てきてその都度エンドレス状態です。 ちょっとこのまま実装するわけにいきません。いつバグがでるか・・・。 b.SimpleDateFormatで変換後に年月日時分秒ミリ秒に該当する箇所に"01"~"09"があったら置換する。  引数の書式からMMやddのindexを保持して、SimpleDateFormatで変換後の該当indexに置換。 例) 書式:"yyyy/MM/dd_HH:mm:ss:SSS" 日付:"20090101010101001" "2009/01/01_01:01:01:001"→"2009/_1/_1__1:_1:_1:__1" ※"_"は半角スペースです。 但し前提として、書式とSimpleDateFormatで変換後の文字列が1対1になっている必要があります。 単純な例ですと 書式:"yyyy/MMMM/dd HH:mm:ss:SSS" 書式のddは11~12桁目ですが、SimpleDateFormatで変換後は下記のようにインデックスがずれます。 "2009/1月/01 01:01:01:001" "2009/12月/01 01:01:01:001" もしかしたら下記のような感じで吸収できるのかもしれませんが、ちょっと個人的に出来そうに思えませんでした。 月が1桁 かつ 書式が"M"の場合 月が1桁 かつ 書式が"MM"の場合 月が1桁 かつ 書式が"MMM"の場合 月が1桁 かつ 書式が"MMMM"の場合 月が1桁 かつ 書式が"Mxn"の場合 月が2桁 かつ 書式が"M"の場合 月が2桁 かつ 書式が"MM"の場合 月が2桁 かつ 書式が"MMM"の場合 月が2桁 かつ 書式が"MMMM"の場合 月が2桁 かつ 書式が"Mxn"の場合 ここ1,2週間ほど煮詰まっています。どなたかアドバイス頂けると助かります。 自分的なネックは書式が限りなくフリー形式なところです。

    • ベストアンサー
    • Java
  • VBA 「何時間何分何秒」にするにはどうすればいい

    Declare Function GetTickCount Lib "KERNEL32" () As Long Sub Sample() Debug.Print GetTickCount & "ミリ秒" End Sub これで取得される値を 「何時間何分何秒」にするにはどうすればいいでしょうか? Format(GetTickCount, "hh:mm:ss") にするとなぜかオーバーフローしてしまいました。

  • javaのCalendar型を日付型に変換したい

    Calendar型の変数をフォーマット付き("yyyy/MM/dd hh:ss")に変換したいのですが上手い方法が見つかりませんでした。 初心者でも無いのですが、変換の方法があったらご教示願います。 よろしくお願いします。

    • ベストアンサー
    • Java
  • log4jが連続して同じログを

    JSFにて、log4jでログファイルにログ出力を行っているのですが、一回のログ出力メソッド呼び出しで、同じログが2~8行出力されてしまいます。 例) yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... ミリ秒単位で同じなので、一回出力されれば十分なのですが、複数行出力されています。 短時間で、かなりのサイズになってしまうため、困惑しております。 この事象の解決方法をご存じの方、解決方法をご教示願います。

  • 日付のフォーマット変換について

    はじめまして。 日付フォーマット変換について質問です。 「Tue Sep 16 04:06:38 JST 2003」 上記のようなStringの値を yyyy/mm/dd hh:mm:ssのように 変換したいのですが、どのような方法を とれば良いのかわからず困っております。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • 日付形式の変換

    はじめまして Perlで日付形式の変換をしたいと思っています。 RFC1123形式(2 Mar 2006 04:28:25 -0800)から yyyy/mm/dd hh:mm:ssの形式に変換したいのです。 色々と調べましたが、適当なヒントがあるところがありません でした。 どうぞ、関連サイトでも構いませんので、ご回答お願いいたします。

    • ベストアンサー
    • Perl

専門家に質問してみよう