マクロ講座15回

1月から12月まで入力するマクロ

ActiveCell.FormulaR1C1を使います。
今回は、1月から12月まで入力するマクロを作ります。
「オートフィルでできるからいらないよ。」って言う人もいるけど、1つ作るといろいろ応用が利きますよ。
(サンプルファイルは、こちらから マクロ講座15回サンプルデータ

1月から12月まで入力するマクロ~マクロの記録

マクロの記録開始します。
●赤い丸のマクロの記録ボタンを押します。
(1)セルA1を選択して、 ”1月”と入力、
(2)セルA2を選択して、 ”2月”と入力、
(3)次に、A1:A2を選択して、 オートフィルでA12までドラッグ
 マク□の記録を終了します。  ■青い四角の記録終了ボタンを押します。

マクロの中身を見てみよう。

マクロの中身解説 
Sub ・・・マクロの開始
Range("A1").Select
ActiveCell.FormulaR1C1 = "1月"
 A1セルを選択してちょうだい。
 アクティブになっているセルの値を "1月" にしてちょうだい。
  
  これは、もう一つにまとめて、
  
  Range("A1").FormulaR1C1 = "1月"  とすることができます。
スポンサーリンク
スポンサーリンク

   次の行
  ActiveCell.Characters(2, 1).PhoneticCharacters = "ガツ" 
  
 アクティブセルに入力したフリガナを覚えてくれているわけですが、
 今回は必要ないので、削除。

 同様に、
  Range("A2").Select
  ActiveCell.FormulaR1C1 = "2月"

 A2セルを選択してちょうだい。
 アクティブになっているセルの値を "2月" にしてちょうだい。
  
 これも、まとめて、1行に
  
  Range("A2").FormulaR1C1 = "2月" 
  
 にしちゃいましょう。 

  ActiveCell.Characters(2, 1).PhoneticCharacters = "ガツ"

 これは必要ないね。

  Range("A1:A2").Select 
  
 A1:A2を選択してちょうだい。

  Selection.AutoFill Destination:=Range("A1:A12"), _
    Type:=xlFillDefault
 選択をオートフィルを使ってコピーするタイプはデフォルトね

  Range("A1:A12").Select
  
 A1:A12を選択してちょうだい。

End Sub ・・・マクロの終了 
   
さあ、そういうわけだから、いらないコードは削除しますね。

【簡素化したマクロ】
Sub Macro2()

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

End Sub    
 これで十分簡素化したのだけれど、

 それでも、「A1セルの内容を1月にしてちょうだい」では、長いよね。

 いっそ、

   A1セルは1月
   A2セルは2月

 なんてどうだろう?
Sub Macro2()

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

End Sub    
それから、Select Selectionコードを省略できるのでしたね。
タイプはデフォルトでなんてのも、省略できますね。

【さらに簡素化したマクロ】
Sub Macro3()

    Range("A1") = "1月"
    Range("A2") = "2月"
    Range("A1:A2").AutoFill Destination:=Range("A1:A12")

End Sub    
【今日のポイント】

いらないコードは削除できる。

だんだんマクロのコードを見慣れてくると、どこが必要で、どこは
いらないかが分かってきます。
今日の講義は以上です。お疲れ様でした。
スポンサーリンク
スポンサーリンク