VBA-9Withステートメントを組み合わせてシートに罫線を引く

お知らせ記事には広告が含まれておりますがExcelのスキルUPに繋がる様コンテンツ自体は手を抜かずに作成しております

マクロでも部位毎や格子状に罫線が引けます

今回は以下3つの機能について勉強します。

3つの機能には関連がありますのでここで一緒に勉強する事にします。

  1. 罫線の引き方
  2. Withステートメントの使い方
  3. 実行ボタンの作成方法

本記事を読むとコードの文字数を減らすことが出来ます。可読性が上がります。

加えてエクセルシートの画面からマクロを実行出来るようになります。

コードの実行時にVBEをアクティブにする必要が無くなります。

EnjoyExcel
EnjoyExcel

なんとなく関連がなさそうな機能ですが一緒に勉強しましょう。理由があります。

罫線とWithステートメントは一緒に勉強する事で効率良くコードを学ぶことが出来るんですよ。

以降で確認していきましょう。

前回の記事

変数の型を紹介しました。変数を宣言する事に対するメリットも紹介しています。

最終行と最終列もセット出来るようになりました。変数も分かるようになってきました。

本シリーズの進捗状況としては50%程度消化出来ました。

本記事での課題

今回の課題です。

EnjoyExcel
EnjoyExcel
課題

ボタンにマクロを関連付けてみよう

初心者向けエクセルマクロ学習シリーズ

一旦できる事を整理します

ここまでで勉強したこと、できる事を整理しましょう。

勉強してきたこと
  • マクロとVBAの違い
  • データの保存方法
  • VBEの使い方
  • すこしだけオブジェクトとプロパティが分かる
  • リスト形式のデータにおいて最終行、列の取得
  • 変数の宣言と使用方法

進捗状況としては約半分ぐらいです。以降の記事では条件分岐や繰り返し処理、関数を勉強していきます。

実務をマクロに置き換える事ができる様になってきます。

3つの機能を勉強する

冒頭でも紹介した3つの機能です。本記事では3つの機能を使えるように勉強していきます。

  1. 罫線の引き方
  2. Withステートメントの使い方
  3. 実行ボタンの作成方法

3つの機能を勉強する理由

結論としては「実務に対応できるようなコードを書けるようにするため」です。

出来る事が増えてきた中でさらに実務に対応する事を考えると罫線を引くという機能が欲しいです。

この機能が備わればマクロを使って表を作る事が出来るようになります。

Withステートメントは罫線のコードと一緒に勉強すると分かりやすく効率が良いです。よってここで一緒に勉強します。

最後に実行ボタンの話です。ここで勉強する事にしたのはタイミング的にそろそろかなと思ったので用意しました。

勉強の進度を考えるとセルの画面からコードを実行する事を考えてもよい段階にきました

マクロを壊されない様にするのも理由の1つです

データを運用する際マクロを起動する度にVBEを起動して・・・というのは手間がかかります。

加えてグループで使うデータの際はVBEからマクロを実行すると複数人がVBEを触る事になります。

マクロをよく知らない人がVBEを操作すると誤った作業でコードが書き換えられる可能性があります。

よってセルの画面からコードを実行させた方が手間も省けるし色々な問題も起こりにくくなります

その為に実行ボタンを用意します。

コードも書けるようになってきたので環境面の事も考える時期だと考えこのタイミングになりました。

これが3つの機能を勉強する理由です。

1_罫線を引く

セルの上、下、右、左、範囲内の十字、実線だったり点線、色を変えたり・・・マクロで全て対応出来ます。

しかし全部は説明しません。理由は勉強する範囲が広くなりすぎてしますからです。

加えてあまり使わない機能を勉強しても意味が無いです。

ここは使用頻度と勉強範囲を考慮して学習していく事にします。

ここでは実線を引くコードを書いてみましょう。

書き方のコツさえ分かれば後は場所と線の種類を入れ替えるだけですので各自でやってみてください。

部位毎に実線を引く

以下は場所ごとに実線を引くコードです。

コメントを見ていただくと何をしているのか分かります。

ただしなんでこのコードで線が引けるのかは分からないかもしれません。

Bordersプロパティの引数で線を引く部位を特定します。

続いてLineStyleプロパティにxlContinuous(実線)を代入しています。

指定範囲の中からindexで指定の場所に線を引きます

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番目の記事を読み返していただくと分かる様になってきます。ここでは説明を省略します。

2_withステートメント

続いてWithステートメントの説明をします。

上のコードの.Bordersの前には本来Rangeオブジェクトが居ます。

でも毎回書くと面倒だし画面に文字が多くなるので見にくいです。よってWithを使います。

Wth 〇〇 と End with で挟んだ範囲は○○を省略しましょう」という書き方が出来ます。

With 内はドット以降にコードを書くことで〇〇をドットの前に持ってますという建付けになります。

これでコードの量も減って見やすくなります。以上がWithステートメントの説明です。

格子状に実線を引く

格子状に線を引くコードを紹介します。1行ですので覚えてしまいましょう。

指定範囲の全範囲に線を引きます見出し

Range.Borders.プロパティ = 設定値

とにかく格子状に線を引いてしまうというコードです。具体的には以下の様に使います。

セルA1からE10に格子状の実線を引きます

Range(“A1:E10”).Borders.LineStyle = xlContinuous

これで罫線の説明は一旦終了します。もっとできる事ありますが先に進みます。

興味ある方は調べてみてください。

3_ボタンを準備

ではボタンをセットしましょう。いろいろ作り方ありますけどこれでOK。

画像内の赤枠のアイコンを使ってボタン風の図形を用意してください。

あとはボタンにマクロを登録したらそれで終了です。

準備したボタン風の図形を選択し右クリック。マクロの登録を選択。

ボタンに設定したいマクロを選択して右下のOKボタンでセット完了です。これだけです。

結構簡単です。こうすることでマクロの実行が格段に楽になります。

まとめ

罫線は線の種類や色等やれる事が沢山あるので是非調べて使ってみてください。

本日勉強したこと
  1. 罫線の書き方
  2. ボタンの作り方
  3. ボタンにマクロを植え付ける方法
ボタンは簡単です

Enjoy Excel

シリーズ後半の見通しを書いておきます。次はメソッドの話をします。

続いてメッセージボックスの説明をしていきます。IF文のスキルが必要になりますので合わせて説明します。

そのあとは繰り返し処理(ループ)の説明をします。

最後に少しだけExcelのワークシート関数の使い方を紹介してこのシリーズは終了の予定です。

終了前に課題に挑戦していただきますのでしっかり勉強していきましょう。

参考:おすすめ書籍

初心者様向けの書籍です。多くの書籍とは一風変わった事を書いてますが共感が持てたので紹介します。

EnjoyExcel
EnjoyExcel

「マクロを勉強するのは少しでも仕事を効率化させる為」であり

「マクロを完璧にマスターするわけではない」という考えのもと書かれた本です。

タイトルとURLをコピーしました