年収1166万のサラリーマンでもノマド生活希望!

45歳での早期退職募集、リストラが標準となる昨今。理想の生活のために何を準備すべきか?一緒に考えていきましょう!

初めての仕事でのマクロ作成【予算実績があれば実績、なければ予定を転記】


スポンサードリンク

先日仕事で初めてマクロを組んでみました。シンプルなものですが無駄なコピペが減りかなり助かりました。

 

予算実績があれば実績、なければ予定を転記

マクロでやりたいこと

f:id:mu-sansan:20191213203321j:plain

入力された予算から実績があれば実績を転記。実績がなければ予定を転記となります。今までは、一つ一つ実績があるのか確認しながらコピペしていました。

 

マクロを組む考え方

その月の予定と実績の数字を比べてみて、

両方に数字があるならば→実績

実績が0ならば→予定

と条件を組むことになります。

 

組んでみたマクロ

Sub 実績処理()

Dim i As Long, z As Long, lastcolumn As Long, t As Long


'コピー元行の指定
i = 5

'コピー先行の指定
z = i + 6

'コピー元列の数の指定(数字が入っている最後の列番号)
lastcolumn = Cells(10, Columns.Count).End(xlToLeft).Column

t = 2

For k = 2 To lastcolumn
'実績、予定ともに数字がある場合は実績を反映
 If Cells(i, t).Value <> 0 And Cells(i, t + 1).Value <> 0 Then
 Cells(z, k).Value = Cells(i, t + 1).Value

'実績がない場合は予定を反映
 ElseIf Cells(i, t).Value <> 0 And Cells(i, t + 1).Value = 0 Then
 Cells(z, k).Value = Cells(i, t).Value

'それ以外は0を返す
 Else
 Cells(z, k).Value = 0
 End If

'次の月の実績に移動
t = t + 2
Next k

End Sub

 もしこうしたほうがいいよ!というアドバイスがあればぜひお願いします!