dポイントプレゼントキャンペーン実施中!

マクロ初心者です。
よろしくお願いします。

A列に約20文字以上の入力がある場合、B列には5文字目から10文字目を、C列には15文字から18文字目までを反映されたいです。

関数ではできるのですが、マクロてのやり方を教えて頂けないでしょうか。
よろしくお願いします。
A列の入力数は不特定です。

A 回答 (2件)

マクロの登録からだと、


Alt+F11でVBEditor起動。
左側のプロジェクトエクスプローラで、Sheet1を右クリック-[コードの表示]を選択。
「Sheet1(コード)」で、下記のマクロをコピペ。

Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("A:A")) Is Nothing Then 'A列が変更された?
  If 20 <= Len(Target.Text) Then '20文字以上?
   ' 1つ右のセル(B列)に、対象の5文字目からの6文字を抽出
   Target.Offset(0, 1).Value = Mid(Target.Text, 5, 6)
   ' 2つ右のセル(C列)に、対象の15文字目からの4文字を抽出
   Target.Offset(0, 2).Value = Mid(Target.Text, 15, 4)
  End If
 End If
End Sub

とか。
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2017/02/08 18:13

Sub WK()


Dim CNT1 As Long
Dim END1 As Long
Dim Sh As Worksheet

Set Sh = ActiveSheet
END1 = Sh.Range("A65536").End(xlUp).Row

For CNT1 = 1 To END1
 If Len(Sh.Range("A" & CNT1).Value) > 19 Then
  Sh.Range("B" & CNT1).Value = Mid(Sh.Range("A" & CNT1).Value, 5, 6)
  Sh.Range("C" & CNT1).Value = Mid(Sh.Range("A" & CNT1).Value, 15, 4)
 End If

Next CNT1
Application.StatusBar = False
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2017/02/08 18:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!