連載
» 2014年05月21日 18時00分 UPDATE

VBA/マクロ便利Tips:Excelのオートフィルで連続データを簡単に作るには

業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、オートフィルを設定するAutoFillメソッドを使い、和風月名をオートフィルで表示するマクロや連番を表示するオートフィルのマクロの作り方について。

[薬師寺国安,PROJECT KySS]
「VBA/マクロ便利Tips」のインデックス

連載目次

※本Tipsの環境:Windows 8.1 Enterprize(64ビット)+Excel 2013


 今回は「オートフィル」に関するTipsを紹介しよう。「オートフィル」のマクロを使うと、いちいち手動で入力しなくても、例えばボタンを配置しておいて、ボタンクリック1つで連続した月名や曜日、十二支、連番などを表示できる。

 この場合は特にマクロでなくてもセルをドラッグするだけで、オートフィルの機能は実現できるが、マクロ化する方法を知っていると、将来使う場面に出くわしたときに役に立つことだろう。

 なお本Tips連載は、ある程度VBA/マクロが使える方を対象にしている。Excelマクロ/VBAの初心者の方は、「Excelマクロ/VBAリファレンス用途別・キーワード別一覧超まとめ」を参照しながら本稿を読んでいただきたい。

オートフィルを設定するAutoFillメソッド

 オートフィルをVBAで実現するには、AutoFillメソッドを使う。書式は下記のようになる。

AutoFillメソッドの書式

オブジェクト.AutoFill Destination:={オートフィルの対象となるRangeオブジェクト}


 オブジェクトには、対象となるRangeオブジェクトを指定する。「Destination」は必須項目で、オートフィルの書き込み先となるRangeオブジェクトを指定する。

和風月名をオートフィルで表示するマクロ

 例えば、図1のような「睦月」と入力されているデータがあったとしよう。このデータに「オートフィル」を使って「師走」までの「和風月名(わふうげつめい)」を自動的に表示させてみる。ちなみに「睦月」は1月、「師走」は12月だから、1月から12月までの「和風月名」が表示されることになる。

AutoFill_01.png 図1 「睦月」と入力されたデータがある

 図1から「師走」までの「和風月名」を表示するコードはリスト1になる。VBEを起動してModule1内にリスト1のコードを記述してみよう。

Option Explicit
Sub オートフィル()
  Range("B2").AutoFill Destination:=Range("B2:B13")
End Sub
リスト1 「和風月名」を表示するコード

 セル「B2」からオートフィルを開始し、オートフィルを適用する範囲をセル「B2:B13」に指定する。

 「オートフィル」プロシージャ内にマウスカーソルを移動して、VBEのメニューから[実行]→[Sub/ユーザーフォームの実行]と実行する。

 すると、図2のように1月〜12月までの「和風月名」が表示される。

AutoFill_02.png 図2 「オートフィル」で「和風月名」が表示された

 もちろん「和風月名」だけではなく、通常の「1月」〜「12月」もオートフィルで表示できる。また、曜日や十二支などもオートフィルで自動的に表示されるので、ぜひ試してみてほしい。

連番を表示するオートフィルのマクロ

 通常、Excelのセルに「1」とだけ入力してオートフィルを適用すると、同じ「1」だけが連続して表示される。その場合は、「1」と「2」を入力しておいてから、オートフィルを適用すると連番が表示される。

 例えば、図3のデータがあって、連番を表示したい場合は、リスト2のコードを書く。

AutoFill_03.png 図3 「1」と「2」と入力されたデータがある
Sub 連続データオートフィル()
  Range("C2:C3").AutoFill Destination:=Range("C2:C13")
End Sub
リスト2 連番をオートフィルで表示するコード

 セル「C2:C3」からオートフィルを開始し、オートフィルを適用する範囲をセル「C2:C13」に指定する。

 実行すると図4のように連番が表示される。

AutoFill_04.png 図4 連番が表示された

次回は、セルに数式を入れるマクロ

 次回は、セルに数式を入れるマクロを紹介する予定だ。お楽しみに。

著者プロフィール

kuniyasu.jpg

薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所

薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。

1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。

1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。

2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。

Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。

Microsoft MVP for Development Platforms - Client App Dev(Oct 2003-Sep 2012)。

Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。

Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。