Excel 2013 マクロ講座 19回マクロ講座

オートフィルのマクロ

Excelのオートフィル機能はとても便利ですね。
今回は、マクロでオートフィルを利用する方法を紹介します。
エクセルのシート上で便利に使っていたオートフィルをVBAで実行するには、Autofillメソッドを使います。
(サンプルファイルは、こちらから 2013マクロ講座19回サンプルデータ

オートフィルの利用方法

例えば、1月~12月までを入力するのも、セルに1月、2月、と入力して、フィルハンドルをドラッグすればデータが入ってくれます。

マクロの記録でオートフィルを実行してみよう

上記の図の手順を、
マクロの記録ボタンを押してやってみましょう。

【手順】
1.マクロの記録を開始
2.A1セルに1月と入力
3.A2セルに2月と入力
4.A1:A2を選択して、フィルハンドルをドラッグ
5.12月まで入力されたら、ドラッグを離す。
6.マクロの記録終了ボタンを押す
では、出来上がったコードを見てみましょう。

明らかに不要な部分から削っていきましょう。
オートフィルにフリガナ情報は不要なので、削除します。
ActiveCell.Characters(2, 1).PhoneticCharacters = "ガツ"

スポンサーリンク
スポンサーリンク

また、以下の部分もSelectして、アクティブにして中身は・・・なんて冗長なので、シンプルにしましょう。
Range("A1").Select
ActiveCell.FormulaR1C1 = "1月"


これは、
Range("A1") = "1月" でいいですね。

するとコードは、

さらに、Select、Selectionもダブっていますから、まとめましょう。
それに、わざわざデフォルトと指定する必要もないでしょう。

Range("A1:A2").Select
Selection.
AutoFill Destination:=Range("A1:A12"), Type:=xlFillDefault

これは、以下のように
Range("A1:A2").AutoFill Destination:=Range("A1:A12")
最終的に、オートフィルのコードは以下のようにとてもシンプルになりました。

Sub オートフィルマクロ()
    Range("A1") = "1月"
    Range("A2") = "2月"
    Range("A1:A2").AutoFill Destination:=Range("A1:A12")
End Sub    
    
ちなみに、2月の入力を省略しても動作します。
(Excelって賢いね!!)
Sub オートフィルマクロ()
    Range("A1") = "1月"
    Range("A1:A2").AutoFill Destination:=Range("A1:A12")
End Sub    
    
オートフィルの種類一覧です。種類を省略するとデフォルトが適用されます。

今回はここまでです。
お疲れ様でした。
スポンサーリンク
スポンサーリンク