
マクロでも部位毎や格子状に罫線が引けます
今回は以下3つの機能について勉強します。
3つの機能には関連がありますのでここで一緒に勉強する事にします。
- 罫線の引き方
- Withステートメントの使い方
- 実行ボタンの作成方法
本記事を読むとコードの文字数を減らすことが出来ます。可読性が上がります。
加えてエクセルシートの画面からマクロを実行出来るようになります。
コードの実行時にVBEをアクティブにする必要が無くなります。

なんとなく関連がなさそうな機能ですが一緒に勉強しましょう。理由があります。
罫線とWithステートメントは一緒に勉強する事で効率良くコードを学ぶことが出来るんですよ。
以降で確認していきましょう。
前回の記事
変数の型を紹介しました。変数を宣言する事に対するメリットも紹介しています。
最終行と最終列もセット出来るようになりました。変数も分かるようになってきました。
本シリーズの進捗状況としては50%程度消化出来ました。
本記事での課題
今回の課題です。

ボタンにマクロを関連付けてみよう
一旦できる事を整理します
ここまでで勉強したこと、できる事を整理しましょう。
- マクロとVBAの違い
- データの保存方法
- VBEの使い方
- すこしだけオブジェクトとプロパティが分かる
- リスト形式のデータにおいて最終行、列の取得
- 変数の宣言と使用方法
進捗状況としては約半分ぐらいです。
以降の記事では条件分岐や繰り返し処理、関数を勉強していきます。
実務をマクロに置き換える事ができる様になってきます。
3つの機能を勉強する理由
出来る事が増えてきた中でさらに実務に対応する事を考えると罫線を引くという機能が欲しいです。
この機能が備わればマクロを使って表を作る事が出来るようになります。
Withステートメントは罫線のコードと一緒に勉強すると分かりやすく効率が良いです。
よってここで一緒に勉強します。
最後に実行ボタンの話です。
ここで勉強する事にしたのはタイミング的にそろそろかなと思ったので用意しました。
勉強の進度を考えるとセルの画面からコードを実行する事を考えてもよい段階にきました。
データを運用する際マクロを起動する度にVBEを起動して・・・というのは手間がかかります。
マクロを壊されない様にするのも理由の1つです
加えてグループで使うデータの際はVBEからマクロを実行すると複数人がVBEを触る事になります。
マクロをよく知らない人がVBEを操作すると誤った作業でコードが書き換えられる可能性があります。
よってセルの画面からコードを実行させた方が手間も省けるし色々な問題も起こりにくくなります。
その為に実行ボタンを用意します。
コードも書けるようになってきたので環境面の事も考える時期だと考えこのタイミングになりました。
これが3つの機能を勉強する理由です。
罫線を引く
セルの上、下、右、左、範囲内の十字、実線だったり点線、色を変えたり・・・マクロで全て対応出来ます。
しかし全部は説明しません。理由は勉強する範囲が広くなりすぎてしますからです。
加えてあまり使わない機能を勉強しても意味が無いです。
ここは使用頻度と勉強範囲を考慮して学習していく事にします。
ここでは実線を引くコードを書いてみましょう。
書き方のコツさえ分かれば後は場所と線の種類を入れ替えるだけですので各自でやってみてください。
部位毎に実線を引く
以下は場所ごとに実線を引くコードです。
コメントを見ていただくと何をしているのか分かります。
ただしなんでこのコードで線が引けるのかは分からないかもしれません。
Bordersプロパティの引数で線を引く部位を特定します。
続いてLineStyleプロパティにxlContinuous(実線)を代入しています。
Range.Borders.(index).プロパティ = 設定値
With Range(”A1:E10”)
.Borders(xlEdgeTop).LineStyle = xlContinuous '上に実線
.Borders(xlEdgeBottom).LineStyle = xlContinuous '下に実線
.Borders(xlEdgeRight).LineStyle = xlContinuous '右に実線
.Borders(xlEdgeLeft).LineStyle = xlContinuous '左に実線
.Borders(xlInsideVertical).LineStyle = xlContinuous '範囲内のセルに垂直実線
.Borders(xlInsideHorizontal).LineStyle = xlContinuous '枠内のセルに平行実線
End With
シリーズ5番目の記事を読み返していただくと分かる様になってきます。ここでは説明を省略します。
withステートメント
続いてWithステートメントの説明をします。
上のコードの.Bordersの前には本来Rangeオブジェクトが居ます。
でも毎回書くと面倒だし画面に文字が多くなるので見にくいです。よってWithを使います。
「Wth 〇〇 と End with で挟んだ範囲は○○を省略しましょう」という書き方が出来ます。
With 内はドット以降にコードを書くことで〇〇をドットの前に持ってますという建付けになります。
これでコードの量も減って見やすくなります。以上がWithステートメントの説明です。
格子状に実線を引く
格子状に線を引くコードを紹介します。1行ですので覚えてしまいましょう。
Range.Borders.プロパティ = 設定値
とにかく格子状に線を引いてしまうというコードです。具体的には以下の様に使います。
Range(“A1:E10”).Borders.LineStyle = xlContinuous
これで罫線の説明は一旦終了します。もっとできる事ありますが先に進みます。
興味ある方は調べてみてください。
ボタンを準備
ではボタンをセットしましょう。いろいろ作り方ありますけどこれでOK。

図形のボタンをボタンっぽくデザインしてこれでOK。

あとはボタンにマクロを登録したらそれで終了です。
準備したボタン風の図形を選択し右クリック。マクロの登録を選択。

ボタンに設定したいマクロを選択して右下のOKボタンでセット完了です。これだけです。
結構簡単です。こうすることでマクロの実行が格段に楽になります。
まとめ
罫線は線の種類や色等やれる事が沢山あるので是非調べて使ってみてください。
- 罫線の書き方
- ボタンの作り方
- ボタンにマクロを植え付ける方法

Enjoy Excel
シリーズ後半の見通しを書いておきます。次はメソッドの話をします。
続いてメッセージボックスの説明をしていきます。IF文のスキルが必要になりますので合わせて説明します。
そのあとは繰り返し処理(ループ)の説明をします。
最後に少しだけExcelのワークシート関数の使い方を紹介してこのシリーズは終了の予定です。
終了前に課題に挑戦していただきますのでしっかり勉強していきましょう。