連続データのマクロ
マクロ講座19回
オートフィルを実行するマクロを作成します。AutoFillメソッドを使っています。
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").AutoFill Destination:=Range("A1:A12") End Sub
オートフィルの種類一覧です。種類を省略するとデフォルトが適用されます。
今回はここまでです。お疲れ様でした。