見出し画像

図形の編集を自動化するエクセルマクロ【マクロの作り方を徹底解析】

エクセルで図形の編集がうまくできない、編集に時間がかかる!

こんな悩みを解決してくれるのが、図形を編集するエクセルマクロです。

マクロを使えば、図形の貼り付け、大きさや色の編集、貼り付け場所の調整を全て自動化することができます。マクロを設定さえすれば、誰でも簡単に図形の編集作業ができるようになります。

仕事では、貼り付けた写真だけでは内容がわかりにくいため、写真に丸や矢印を付け加えて補足説明をすることが基本となっています。真っすぐな線を引く、ちょうどいい丸を書く!ことに多くの時間を費やしています。

内容の編集よりも、装飾の編集に時間がかかっている!という方が多いのではないでしょうか。

こんな手間と時間がかかる図形の編集を自動化するマクロの作り方、導入の仕方を紹介します。

記事の最後では、マクロが設定されたエクセルファイルをダウンロードしてお使いいただけます。図形編集作業が多いという方におすすめの内容になっています。矢印や丸を使って補足説明が必要となる資料にマクロの設定がおすすめです。


図形を編集するエクセルマクロとは

図形の大きさ、表示場所、色を指定して表示させることができます。そのため、図形を貼り付けた後にマウスを使って図形を動かしたり、色を変えたりする操作を省略することができます。

記事で紹介するマクロは、貼り付ける場所、大きさ、色をユーザーフォームで指定して貼り付けるという内容です。

画像1

ユーザーフォームの「図形の種類」を変えるだけで図形を変更することができます。

表示場所を指定して、いろんな種類の図形を貼り付ける作業がある!という方におすすめです。

図形を編集するマクロの作り方

マクロ初心者の方でもわかりやすいように、図形を編集するマクロの作り方を紹介していきます。

1.マクロ編集画面(Visual Basic)を開く

画像2


2.標準モジュールを作成

画像3

画像4

これで図形を編集するマクロを作成する場所の用意が完了しました。自分でマクロを作成するには、この「モジュールの作成」は必ず必要なので覚えるようにしましょう。


図形を編集するマクロの作り方

図形を編集するマクロには、大きく2種類のマクロが設定されています。

1つ目は「直線を引く」マクロで、2つ目は「図形を表示する」マクロです。

1.「直線を引く」マクロの作成

直線の編集には、AddLineを使用します。

AddLineの基本構造
オブジェクト.AddLine(AX, AY, EX, EY)
AX…左上隅を基点とした線の始点のX座標
AY…左上隅を基点とした線の始点のY座標
EX…左上隅を基点とした線の終点のX座標
EY…左上隅を基点とした線の終点のY座標

標準モジュールに直線を編集するマクロを記入していきます。

画像11

Sub 直線()
   Dim SL As Long
   Dim ST As Long
   Dim EL As Long
   Dim ET As Long
   Dim R As Long
   Dim G As Long
   Dim B As Long
   On Error Resume Next
   SL = UserForm1.TextBox1.Value
   ST = UserForm1.TextBox2.Value
   EL = UserForm1.TextBox3.Value
   ET = UserForm1.TextBox4.Value
   R = UserForm1.TextBox5.Value
   G = UserForm1.TextBox6.Value
   B = UserForm1.TextBox7.Value
   If SL = 0 Then
   MsgBox "始まりの列入力欄に値を入れてください"
   Exit Sub
   ElseIf ST = 0 Then
   MsgBox "始まりの行入力欄に値を入れてください"
   Exit Sub
   ElseIf ET = 0 Then
   MsgBox "終わりの列入力欄に値を入れてください"
   Exit Sub
   ElseIf EL = 0 Then
   MsgBox "終わりの行入力欄に値を入れてください"
   Exit Sub
   ElseIf (R < 0) Or (R > 255) Then
   MsgBox "直線の色欄に適切な値を入れてください"
   Exit Sub
   ElseIf (G < 0) Or (G > 255) Then
   MsgBox "直線の色欄に適切な値を入れてください"
   Exit Sub
   ElseIf (B < 0) Or (B > 255) Then
   MsgBox "直線の色欄に適切な値を入れてください"
   Exit Sub
   Else
   End If
   AX = Cells(ST, SL).Left
   AY = Cells(ST, SL).Top
   EX = Cells(ET, EL).Left
   EY = Cells(ET, EL).Top
   With ActiveSheet.Shapes.AddLine(AX, AY, EX, EY)
         .Line.ForeColor.RGB = RGB(R, G, B)
   End With
End Sub

これで標準モジュールに記載するマクロが完成です。

マクロは、ユーザーフォームのテキストボックスに入力された数字をAddLineに当てはめている!という内容です。

ダウンロードしてお使いいただけるエクセルファイルには、プログラム1行ごとにマクロの解説が記載されています。

プログラムをもっと詳しく知りたい!という方は記事の最後でダウンロードして中身をご確認してください。

ユーザーフォームの作成

上記で作成した、直線を編集するマクロでは直線の場所や色を決定するための情報が必要です。この情報をユーザーフォームのテキストボックスから取得する設定を行っていきます。

画像7

ユーザーフォームというフォルダを作成したら、ユーザーフォームの外観を作成していきます。今回は「ラベル」「テキストボックス」「コマンドボタン」を使用しています。外観はエクセルを使う人が見やすく操作しやすいものにすることが重要です。

画像13

テキストボックスの作成には注意が必要です。直線を編集するマクロの中で、テキストボックスの番号で区別された値を使用しています。

画像14

テキストボックスを適当に作ってしまうと、直線の場所、色の指定ができなくなります。

コマンドボタンを押すと、直線を編集するマクロが実行される設定を行います。

画像15

これでユーザーフォームの外観とプログラムの設定が完了です。次にユーザーフォームを表示させる設定を行います。

直線を引くマクロを導入したいシートにユーザーフォームを表示させます。

例えばSheet1に「直線を編集するマクロ」を表示させるには下記のような設定にします。

画像16

これでシート1を選択したときに、ユーザーフォームが表示されます。表示されたユーザーフォームを使って直線を編集することが可能になります。マクロが使えるようになります。

続いて「図形を編集する」マクロの説明をしていきます。


2.「図形を編集する」マクロの作成

図形の編集には、AddShapeを使用します。

AddShapeの基本構造
Shapesオブジェクト.AddShape(Type, Left, Top, Width, Height)

Typeには1~137までの整数かオブジェクト名(定数)が入ります。

画像5

標準モジュールに図形を編集するマクロを記入していきます。

画像6

Sub 図形()
   Dim ZU As Long
   Dim SL As Long
   Dim ST As Long
   Dim H As Long
   Dim W As Long
   Dim R As Long
   Dim G As Long
   Dim B As Long
   ZU = UserForm2.TextBox1.Value
   SL = UserForm2.TextBox2.Value
   ST = UserForm2.TextBox3.Value
   W = UserForm2.TextBox4.Value
   H = UserForm2.TextBox5.Value
   R = UserForm2.TextBox6.Value
   G = UserForm2.TextBox7.Value
   B = UserForm2.TextBox8.Value
   With ActiveSheet.Shapes.AddShape(ZU, SL, ST, H, W)
   .Top = Range(Cells(SL, ST), Cells(SL, ST)).Top
   .Left = Range(Cells(SL, ST), Cells(SL, ST)).Left
   .Fill.ForeColor.RGB = RGB(R, G, B)
   .Line.ForeColor.RGB = RGB(R, G, B)
   .Line.Weight = 1
   End With
End Sub

これで標準モジュールに記載するマクロが完成です。

マクロは、ユーザーフォームのテキストボックスに入力された数字をAddShapeに当てはめている!という内容です。

ダウンロードしてお使いいただけるエクセルファイルには、プログラム1行ごとにマクロの解説が記載されています。

プログラムをもっと詳しく知りたい!という方は記事の最後でダウンロードして中身をご確認してください。

ユーザーフォームの作成

上記で作成した、図形を編集するマクロでは図形の場所や大きさ、色を決定するための情報が必要です。この情報をユーザーフォームのテキストボックスから取得する設定を行っていきます。

画像7


ユーザーフォームというフォルダを作成したら、ユーザーフォームの外観を作成していきます。今回は「ラベル」「テキストボックス」「コマンドボタン」を使用しています。外観はエクセルを使う人が見やすく操作しやすいものにすることが重要です。

画像8

テキストボックスの作成には注意が必要です。直線を編集するマクロの中で、テキストボックスの番号で区別された値を使用しています。

画像9

テキストボックスを適当に作ってしまうと、図形の大きさ、場所、色の指定ができなくなります。

コマンドボタンを押すと、図形を編集するマクロが実行される設定を行います。

画像10

これでユーザーフォームの外観とプログラムの設定が完了です。標準モジュールで作成したマクロをCallを使って実行する方法はプログラムがすっきりするので、とてもおすすめです。

次にユーザーフォームを表示させる設定を行います。

図形を編集するマクロを導入したいシートにユーザーフォームを表示させます。

例えばSheet2に「図形を編集するマクロ」のみを表示させるには下記のような設定にします。

画像17

これでマクロが登録されたユーザーフォームを使うことができます。

直線や図形を編集するマクロの使い方

使い方はとてもシンプルで、ユーザーフォーム内のテキストボックスに整数を入力し、実行ボタンを押すだけです。たったこれだけの操作で図形を編集することができます。

画像18

「図形の種類」と「図形の色」には数字の制限があるので注意が必要です。左側の直線と図形はマクロを使って表示させたものです。

値を変えて実行するだけで次から次へと直線や図形を貼り付けることができるので、エクセル作業でよく図形を編集する!という方におすすめのマクロになっています。

マクロが設定されたエクセルファイルのダウンロード

この記事で紹介している、「直線を編集するマクロ」と「図形を編集するマクロ」の2つのマクロが設定されたエクセルファイルをダウンロードしてお使いいただけます。エクセルファイルのマクロにはプログラムの解説が詳しく記載されているので、自分でマクロを作るという方は是非参考にしてみてください。

ここから先は

63字 / 1ファイル

¥ 500

この記事が気に入ったらチップで応援してみませんか?