マクロの実行ボタンを配置する
ここまでで、セルの指定、For Nextによる繰り返し作業の仕込み方、IfとElseIfを使った条件分岐のやり方についてご紹介してきました。
これまで、Visual Basicのページの実行ボタンを押してマクロを実行させていたわけですが、エクセル側のページ内に、マクロの実行ボタンを配置することができます。
マクロに不慣れなメンバーにもマクロを実行してもらいやすくなるので、ボタンを配置してみましょう。
ボタンの配置の仕方
まず、開発タブを開いた状態で、
挿入→フォームコントロール→ボタン(フォームコントロール)を押します。
すると、四角が書けるようになるので、
マウスでドラッグして適当な大きさの四角を書きます。
これでボタンになりました。
クリックすると名前が変更できるようになるので、マクロの内容に合わせて修正しましょう。
エクセルのどこかのセルをクリックすると名前が確定します。
次に、ボタンの名前でないところ、ボタンの端っこあたりを右クリックするとメニューが出てくるので「マクロの登録」を押します。
実行させたいマクロの名前を選んでOKを押します。
ボタンを押すとマクロが実行されるはずですので、試してみてください。
マクロの調べ方
For Nextと、Ifがあれば、かなりいろんなことができるようになるんですが、「こういう作業はどうしたらいいんだろう?」と、やり方を調べたいときがあります。
そういう時は、
VBA +(やりたいこと)
で検索すると、先人の知恵がたくさん検索結果に出てきます。
例えば、セルB2に入った文字を赤にしたいんだけど、マクロではなんて書けばいいんだろう?と思ったら、
VBA + 文字色
と検索してみてください。
いろいろと結果が出てきますが、
どうやら B2の文字色を赤にするには
Cells(2, 2).Font.Color = RGB(255, 0, 0)
のように書けばいいようですね。
という感じで調べることができますので、困ったらVBA+(やりたいこと)で検索してみてください。
これまで一つのシートでやってきましたが、次回は複数のシートを操作するやり方についてご紹介します。
宿題-9
セルの背景を濃い青色に、文字色を白にする方法を調べてみてください。
解説
文字色の変更は、宿題-8で解説したので背景色について調べましょう。
Googleで「vba 背景色」で検索すると、
どうやら、Interior.Colorとすれば良いようですね。
またRGBカラーコードを調べると、
濃い青色はRGB(71, 68, 136)
白はRGB(255, 255, 255)のようです。
ということで、A1のセルに「文字の色を変更」と打ち込んで、
背景色を濃い青色に、文字色を白にするには、
Sub hw09_color()
Cells(1, 1) = "文字の色を変更"
Cells(1, 1).Interior.Color = RGB(71, 68, 136)
Cells(1, 1).Font.Color = RGB(255, 255, 255)
End Sub
とすれば完成です。
エクセルマクロ(EXCEL VBA) その10 複数のシートを使う方法
(文:森脇孝/エントレ)