1月から12月まで入力するマクロ〜やさしいマクロ講座
マクロ講座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月" とすることができます。
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 ・・・マクロの終了
さあ、そういうわけだから、いらないコードは削除しますね。
【簡素化したマクロ】
それでも、「A1セルの内容を1月にしてちょうだい」では、長いよね。
いっそ、
A1セルは1月
A2セルは2月
なんてどうだろう?
タイプはデフォルトでなんてのも、省略できますね。
【さらに簡素化したマクロ】
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
【今日のポイント】
いらないコードは削除できる。
だんだんマクロのコードを見慣れてくると、どこが必要で、どこは
いらないかが分かってきます。
いらないコードは削除できる。
だんだんマクロのコードを見慣れてくると、どこが必要で、どこは
いらないかが分かってきます。
今日の講義は以上です。お疲れ様でした。
スポンサーリンク
スポンサーリンク