• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA の作り方について【初心者】)

Excel VBA の作り方について【初心者】

このQ&Aのポイント
  • Excel VBA の作り方を初心者向けに解説します。
  • A1セルから「営業部【山本】」を取り出して表示する方法を紹介します。
  • A2以降のセルに同じ作業を繰り返すVBAの作り方をご説明します。

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

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8467/18126)
回答No.1

私ならこんな感じにします。エラーのときの処理はしていません。 Sub macro1() '---行数確認 nr = Range("A1048576").End(xlUp).Row For i = 1 To nr '---名前抜き出し x = Range("A1").Offset(i - 1) j1 = InStr(x, "【") j2 = InStr(x, "】") Range("C1").Offset(i - 1) = Mid(x, j1 + 1, j2 - j1 - 1) '---分表示 x = Range("B1").Offset(i - 1) Range("D1").Offset(i - 1) = Int(x * 24 * 60) '--- Next i End Sub

noname#245127
質問者

お礼

できました!! ありがとうございます!!

その他の回答 (1)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 御質問の様な処理を行いたいシートのシートモジュールに、下記のVBAの構文を入力されると良いと思います。(尚、「シートモジュール」に構文を入力する方法が、もしも分らない場合には、補足コメント欄等を使用してその旨をお尋ね頂ければ、改めて回答致します) Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range, myRange As Range Set myRange = Intersect(Target, Columns("B")) If myRange Is Nothing Then Exit Sub For Each c In myRange With Range("D" & c.Row) If TypeName(c.Value) = "Double" And c.NumberFormatLocal Like "*:m*" Then .Value = Hour(c.Value) * 60 + Minute(c.Value) Else .ClearContents End If End With Next c End Sub

noname#245127
質問者

お礼

できました!! ありがとうございます!!