4-7 月別に抽出したデータを別Sheetにコピーするマクロを作る

小遣帳の今月の分を「出金記録」のSheetから抽出して、それを別のSheetにコピーし、今月の予算に対しての残額を出すマクロを作ってみましょう。
やはり、元はキーボードマクロから始めます。

1.小遣帳.xlsのメニューバーの「ツール(T)」の「マクロ(M)」の「新しいマクロの記録(R)」を選択して[Enter]キーを押して、キーボードマクロの記録を開始します。マクロ名は「月別コピー」などとします。今回は、ショートカットキーは入力しないでおきます。

ここから、以下の操作をマクロに記録させます。

2.コピーする「Sheet2」に何かデータが書かれていると、そのデータが残ってしまう事がありますので、[Ctrl+PageDown]キーでSheet2を選択します。
そして、[Ctrl+Home]キーでCell[A1]を選択して、[Shift+Ctrl+End]キーで全て選択します。
[Alt],[E]キーを押してメニューバーの「編集(E)」の「クリア(A)」の「すべて(A)」を選択して[Enter]キーを押して選択範囲を削除しておきます。(範囲選択に[Ctrl+A]は使わないで下さい。キーボードマクロの記述が、限定的な記述になります。)。

3.[Ctrl+Pageup]キーで「出金記録」Sheetに戻ります。

4.前に行なった、「オートフィルタ」の機能を使って、抽出したいデータを抽出します。

5.[Ctrl+Home]キーでCell[A1]を選択してから、抽出された「出金記録」Sheetのデータを[Shift+Ctrl+End]キーで範囲指定します。

6.[Ctrl+C]キーでコピーします。

7.[Ctrl+PageDown]キーを1度押して隣のSheetを選択します。

8.[Ctrl+Home]キーを押してCell[A1]を選択し、[Ctrl+V]キーで貼り付けます。

9.A列の日付が[######]となった場合は、列幅が足りませんので、Cell[A1]を選択してから[Shift+Ctrl+下カーソル]キーで範囲選択して、メニューバーの「書式(O)」のプルダウンメニューの「列(C)」のサブメニューで「選択範囲に合わせる」を選択して[Enter]キーを押します。

10.カーソルキーでCell[E1]を選択して、IMEをOnにして「合計」と入力します。

11.カーソルキーでCell[F1]を選択して、「残額」と入力します。

12.カーソルキーでCell[G1]を選択して「今月の予算は」と記入します。

13.IMEをOffにします。

14.Cell[E2]に次の式を入力します。
=SUM($D$2:$D2)

16.Cell[F2]に次の式を入力します。
=IF($H$1<>"",$H$1-$E2,"")
これはCell[H1]に予算額を入力すると、E列で残高を計算させる式です。
Cell[H1]に何か入力されているときだけ計算をします。(IF関数のヘルプなども参照しておいて下さい)。

17.[Ctrl+Home]キーでCell[A1]を選択して[Ctrl+下カーソル]キーでデータの記入されている最下段のCellを選択してその行番号を覚えておきます。

18.カーソルキーでセル[E2]を選択します。

19.[Shift]+[下カーソル]キーで上で覚えていたデータの入力されている最下段の行までを範囲選択します。

20.[Ctrl+D]キーを押してコピーします。

21.カーソルキーでセル[F2]を選択して[shift+下カーソル]キーで上で覚えていた最下段の行までを範囲選択します。

22.[CtrL+D]キーでコピーします。

23.忘れないように[Ctrl+PageUp]キーで「出金記録」Sheetへ戻り、「オートフィルタ」を解除します。

24.[Ctrl+PageDown]キーで[Sheet2]に戻ります。

25.[Ctrl+Home]キーでCell[A1]を選択しておきます。

26.[Alt+T]キーを押してメニューバーの「ツール(T)」のプルダウンメニューの「マクロ(M)」の「記録終了」を選択して[Enter]キーをおします。

27.「Visual Basic Editor」を起動して、「Module2」をエクスポートします。

28.「Module2.bas」をエディタで開きます。
以下のようなコードが記述されています。
--ここから

Sub 月別コピー()
'
' 月別コピー Macro
' マクロ記録日 : 2008/5/13 ユーザー名 : masana
'

'
ActiveSheet.Next.Select
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Clear
ActiveSheet.Previous.Select
Range("A1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=">=2008/4/1", Operator:=xlAnd, _
Criteria2:="<=2008/4/30"
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
ActiveSheet.Next.Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Columns.AutoFit

Range("E1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "合計"
ActiveCell.Characters(1, 2).PhoneticCharacters = "ゴウケイ"
Range("F1").Select
ActiveCell.FormulaR1C1 = "残高"
ActiveCell.Characters(1, 2).PhoneticCharacters = "ザンダカ"
Range("G1").Select
ActiveCell.FormulaR1C1 = "今月の予算"
ActiveCell.Characters(1, 2).PhoneticCharacters = "コンゲツ"
ActiveCell.Characters(4, 2).PhoneticCharacters = "ヨサン"
Range("E2").Select
ActiveCell.FormulaR1C1 = "=SUM(R2C4:RC4)"
Range("F2").Select
ActiveCell.FormulaR1C1 = "=IF(R1C8<>"""",R1C8-RC5,"""")"
Range("A1").Select
Selection.End(xlDown).Select
Range("E2:E5").Select
Selection.FillDown
Range("F2:F5").Select
Selection.FillDown
ActiveSheet.Previous.Select
Selection.AutoFilter
ActiveSheet.Next.Select
Range("A1").Select
End Sub

--ここまで


 前の項目へ  視覚障害者のためのExcel講座へ戻る  次の項目へ