戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
数値入力→時刻に変換

    [195330] 数値入力→時刻に変換-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ けんけん -(2022/10/25(08:37))
    □U R L/
      質問失礼します。 
      時間計算のため、VBAを活用したいです。
      シート全体(もしくは可能であれば、何行目の何列目や範囲指定がコードのセル部分を変更するだけでできるものだとより助かります…)のセルに数値を入力すれば時間に変換されるようなコードが知りたいです。 
      例) 
      1:8分 入力:8→0:08 
      2:27分 入力:27→0:27 
      3:1時間23分 入力:123→1:23 
      4:13時間 入力:1300→13:00 
      ネット上に下記コードを共有してくれてる方がいたんですが、 
      1、2に対応できず、かつ2列目3列目のみの範囲だけなので 
      こちらを応用、もしくは新たにコードをご教授いただけたらと思っておりますm(_ _)m 
      最終的にSUM関数で合計したいです。
      よろしくお願いします! 
      
      
      
      Option Explicit 
      
      Private Sub Worksheet_Change(ByVal r As Range) 
      
          On Error Resume Next
          '// 消したときは以降を処理しない
          If r.Text = "" Then
              Exit Sub
          End If
          '// 時刻以外が入力された場合は以降を処理しない
          If r.Column <> 2 And r.Column <> 3 Then
              Exit Sub
          End If
          '// 数値以外が入力された場合は以降を処理しない
          If IsNumeric(r.Value) = False Then
              Exit Sub
          End If
          Dim iLength         As Integer      '// 文字列長
          '// 入力文字列長を取得
          iLength = Len(r.Value)
          '// 3文字入力時
          If iLength = 3 Then
              '// 1:23形式に変換
              r.Value = Left(r.Value, 1) & ":" & Right(r.Value, 2)
          '// 4文字入力時
          ElseIf iLength = 4 Then
              '// 12:34形式に変換
              r.Value = Left(r.Value, 2) & ":" & Right(r.Value, 2)
          End If
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒Excel 2007
      ++++++++++++++++++++




    [195331] Re[1]: 数値入力→時刻に変換-

    保留中です・・・ / 記事引用/メール受信=OFF■

    □投稿者/ けんけん -(2022/10/25(08:59))
    □U R L/

      すみません。
      初めてこのような掲示板を利用させていただいたのですが、
      別サイトに1件投稿後、こちらに投稿してしまいました。
      マルチポストを知らずとはいえルール違反申し訳ございません。
      別サイトの投稿が削除できなかったので、コメントにてこちらでの対応を希望する旨コメントしておきました。

      以降、気を付けます。どなたかご教授いただけますと助かります。
      よろしくお願いします。




    [195332] Re[2]: 数値入力→時刻に変換-

    記事引用/メール受信=OFF■

    □投稿者/ 補足 -(2022/10/25(09:15))
    □U R L/

      マルチポスト先で回答がついてそれについて追加質問をしておきながら取り消し。

      h ttps://www.excel.studio-kazu.jp/kw/20221024203818.html?t=085910




    [195333] Re[3]: 数値入力→時刻に変換-

    記事引用/メール受信=OFF■

    □投稿者/ けんけん -(2022/10/25(09:21))
    □U R L/

      @補足

      すみません。反省しています。




    [195334] Re[4]: 数値入力→時刻に変換-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2022/10/25(11:21))
    □U R L/
      Private Sub Worksheet_Change(ByVal r As Range)
          Const 限定範囲 As String = "B:C" 'B列およびC列のみ処理
          
          If Intersect(r, Range(限定範囲)) Is Nothing Then '限定範囲のみ処理
              Exit Sub
          ElseIf r.CountLarge > 1 Then '1セルのみ処理
              Exit Sub
          ElseIf r.Value = "" Then '// 消したときは以降を処理しない
              Exit Sub
          ElseIf IsNumeric(r.Value) = False Then '// 数値のみ処理
              Exit Sub
          End If
          
          Application.EnableEvents = False
              r.Value = Format(r.Value, "0:00")
          Application.EnableEvents = True
      End Sub
      
      >最終的にSUM関数で合計したいです。
      
      どの範囲をどこに表示するのか分からないです。


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [195335] Re[5]: 数値入力→時刻に変換-

    記事引用/メール受信=OFF■

    □投稿者/ けんけん -(2022/10/25(11:49))
    □U R L/

      @半平太さん

      返信ありがとうございます!!
      すごすぎます!
      おおむね希望通りのコードです。

      SUM関数については、B2等入力範囲の上部に挿入しようと考えていたため、
      作っていただいた限定範囲部分を
      "B:C"→"B3:C30"のように変更すれば解決できました。
      仮に、連続しない複数箇所を限定範囲とする場合、どのようなコードになりますでしょうか?
      よろしくお願いします。




    [195336] Re[6]: 数値入力→時刻に変換-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2022/10/25(12:02))
    □U R L/
      >連続しない複数箇所を限定範囲とする場合
      どんな箇所なのか分からないと具体的に回答できません。
      
      例えば、B3:C30,F3:F9,H13:H19 と決まった範囲なら
      
      Const 限定範囲 As String = "B:C" 'B列およびC列のみ処理
                      ↓
       Const 限定範囲 As String = "B3:C30,F3:F9,H13:H19"
      
      と変更するだけで済みますが・・


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [195337] Re[7]: 数値入力→時刻に変換-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ けんけん -(2022/10/25(12:06))
    □U R L/

      @半平太さん

      具体的に記載せずすみません!
      したかったことは、例で記載してくださった内容で解決できました。

      ご対応ありがとうございました。
      また機会がございましたら、よろしくお願いいたします。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G