Excel 2013 マクロ講座19回 オートフィルのマクロ
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.マクロの記録終了ボタンを押す
マクロの記録ボタンを押してやってみましょう。

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


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

オートフィルにフリガナ情報は不要なので、削除します。
ActiveCell.Characters(2, 1).PhoneticCharacters = "ガツ"

スポンサーリンク
スポンサーリンク
また、以下の部分もSelectして、アクティブにして中身は・・・なんて冗長なので、シンプルにしましょう。
Range("A1").Select
ActiveCell.FormulaR1C1 = "1月"
これは、
Range("A1") = "1月" でいいですね。
するとコードは、

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")
それに、わざわざデフォルトと指定する必要もないでしょう。
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って賢いね!!)
(Excelって賢いね!!)
Sub オートフィルマクロ()
Range("A1") = "1月"
Range("A1:A2").AutoFill Destination:=Range("A1:A12")
End Sub
オートフィルの種類一覧です。種類を省略するとデフォルトが適用されます。


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