素人のVBA備忘録

客先や社内での研修用のVBAのコードを書き留めています。初心者にも分かりやすく書いているつもり?です。参考になれば嬉しいです。

特定の名前のシートを取り出すVBAコード

f:id:gray-to:20210302164440g:plain

特定の名前のシートを取り出すVBAコードはコチラ

Sub 売上から始まるワークシート名の一覧を取り出す()
Dim i As Long
'ダミーのワークシートを一番左に新規挿入
Worksheets.Add before:=Worksheets(1)
For i = 1 To Worksheets.Count
    '売上から始まるシート名ならば
    If Worksheets(i).Name Like "売上*" Then
        'ダミーのワークシートのセルA1からシート名を取り出す
        Cells(i, 1) = Worksheets(i).Name
End If
Next
End Sub

f:id:gray-to:20210302165548p:plain

空白行を削除するVBA

空白行を削除するコードはこちら

Sub Macro210301_03()
Dim i As Long, LastRow As Long
'最終セルの行番号の変数指定
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    '最終セルの行から2行目までの範囲指定
    For i = LastRow To 2 Step -1
        'C列が空白だったら
        If Cells(i, 3) = "" Then
            '列全体を削除する
            Cells(i, 3).EntireRow.Delete
        End If
    Next i
End Sub

色分けすると…

f:id:gray-to:20210302085202p:plain

こんな感じで動きます

f:id:gray-to:20210302000330g:plain
いかがでしょうか?
コピペしてお使いください。
やればできる!
VBAを活用してどんどん楽しましょう(^^)v

単価×数量のVBAコード

単価×数量のコードはこちら

Sub Macro210301_02()
Dim i As Long, LastRow As Long
'最終セルの行番号の変数指定
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
'2行目から最終セルの行の範囲指定
For i = 2 To LastRow
'数量がが51以上だったら
If Cells(i, 1) > 50 Then
'A列とB列の積をC列に代入する
Cells(i, 3) = Cells(i, 1) * Cells(i, 2)
End If
Next i
End Sub

分かりやすく色分けしました

f:id:gray-to:20210301220617j:plain

こんな感じです

f:id:gray-to:20210301214344g:plain 今回は数量が51以上に限り、単価×数量の計算をするという条件をつけました。なので、赤いセル(4・10・18行目)は50以下のため計算はしません。
ご自由にコピペしてお使いください。参考になれば嬉しいです。
やればできる!VBAを活用して、仕事どんどん捗らせましょう👍

A列のセルの数字を2倍するVBA

コードはコチラ

Sub Macro210301_01()
Dim i As Long, LastRow As Long
'最終セルの行番号の変数指定
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    '2行目から最終セルの行の範囲指定
    For i = 2 To LastRow
    'A列が空白でないとき
    If Cells(i, 1) <> "" Then
        'A列を2倍しB列に代入
        Cells(i, 2) = Cells(i, 1) * 2
    End If
    Next i
End Sub

分かりやすく色分けしました

f:id:gray-to:20210301210434p:plain

以下の条件での計算です

  • 最終行が分からない
  • A列が空欄でない

こんな感じです

f:id:gray-to:20210301163539g:plain

簡単だったでしょうか?
やればできる!
VBAを用いてガンガン楽しましょう(^^)v