大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、図形やテキストボックスを挿入して、作成する方法について、ご紹介します。図形を挿入する場合は、「.Shapes.AddShape」を使います。テキストボックスの場合には、「.Shapes.AddTextbox」です。大量の図形を操作したい場合など、図形の挿入は、図形を扱う際に抑えておきたいVBAコードです。具体的に解説していきます。

はじめに

この記事では、図形やテキストボックスを、挿入して作成する方法について、ご紹介します。

図形を挿入して作成するには、「Shapes.AddShape」です。

テキストボックスを挿入するには、「Shapes.AddTextBox」となります。

図形とテキストボックスを挿入する際には、VBAコードが違いますけど、一旦、作成してしまえば、同じように扱うことができます。

大量の図形を操作したい場合に、まず押さえておきたいVBAコードです。

では、図形やテキストボックスを、挿入して作成する方法について、解説していきます。

この記事で紹介すること

  • 図形を挿入して作成する方法
  • テキストボックスを挿入して作成する方法

目次から見たい項目へ移動すると便利ですよ。

目次

VBAコードまとめ

VBAで図形を挿入して作成する、VBAコードをまとめておきます。

'図形を挿入(左の位置、上の位置、幅、高さ)
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 60, 50, 100, 50).Select
Set a = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 60, 50, 100, 50) 'オブジェクトの場合

'テキストボックスを挿入(左の位置、上の位置、幅、高さ)
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 60, 50, 100, 50).Select
Set a = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 60, 50, 100, 50) 'オブジェクトの場合

'代表的な図形
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50, 30, 60, 40).Select '正方形/長方形
ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, 50, 30, 60, 40).Select '四角形:角を丸くする
ActiveSheet.Shapes.AddShape(msoShapeIsoscelesTriangle, 50, 30, 60, 40).Select '三角形
ActiveSheet.Shapes.AddShape(msoShapeOval, 50, 30, 60, 40).Select '円
ActiveSheet.Shapes.AddShape(msoShapeRightArrow, 50, 30, 60, 40).Select '右矢印

'図形の種類を右矢印に変更
Selection.ShapeRange.AutoShapeType = msoShapeRightArrow '選択した図形の場合
ActiveSheet.Shapes("正方形/長方形 1").AutoShapeType = msoShapeRightArrow  '指定した図形の場合

VBAコードだけを確認したい場合に、ご活用ください。

では、図形を挿入して作成する方法について、解説していきます。

VBAで図形を挿入して作成する

VBAで、図形を挿入して作成するには、「.Shapes.AddShape」を使います。

.Shapes.AddShapeを使う

「.Shapes.AddShape」には、次のように入力します。

  • ActiveSheet.Shapes.AddShape(図形の種類,左の位置,上の位置,幅,高さ).Select

オブジェクトに格納する場合は、次のような感じです。

  • Set a = ActiveSheet.Shapes.AddShape(図形の種類,左の位置,上の位置,幅,高さ)

では、それぞれの方法で、図形を挿入して作成してみます。

図形の「正方形/長方形」を挿入して作成してみる

シートに「正方形/長方形」を挿入して作成してみます。

VBAコードは、こんな感じになります。

Sub TEST1()

    '図形を挿入(左の位置、上の位置、幅、高さ)
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 60, 50, 100, 50).Select
    
End Sub

では、実行してみます。

図形を挿入

正方形/長方形を挿入した結果

正方形/長方形の図形が、挿入されました。

選択までされています。

オブジェクトに格納して図形を挿入する

次は、オブジェクトに格納しながら、シートに「正方形/長方形」を挿入して作成してみます。

VBAコードは、こんな感じになります。

Sub TEST2()

    '図形を挿入(左の位置、上の位置、幅、高さ)
    'オブジェクトに格納する場合
    Set a = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 60, 50, 100, 50)
    
End Sub

では、実行してみます。

オブジェクトに格納して図形を挿入

正方形/長方形を挿入した結果

正方形/長方形の図形が、挿入されました。

図形を挿入して、オブジェクトに格納しただけなので、選択はされていません。

VBAでテキストボックスを挿入して作成する

次は、図形と似たもので、「テキストボックス」を挿入して、作成してみます。

.Shapes.AddTextboxを使う

テキストボックスの挿入は、次のようにします。

  • ActiveSheet.Shapes.AddTextbox(テキストボックスの種類,左の位置,上の位置,幅,高さ).Select

オブジェクトに格納して、テキストボックスを挿入するには、次のようにします。

  • Set a = ActiveSheet.Shapes.AddTextbox((テキストボックスの種類,左の位置,上の位置,幅,高さ)

という感じです。

では、それぞれの方法で、シートにテキストボックスを挿入してみましょう。

テキストボックスを挿入して作成

シートに「テキストボックス」を挿入して作成してみます。

VBAコードは、こんな感じになります。

Sub TEST3()
    
    'テキストボックス追加
    ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 60, 50, 100, 50).Select

End Sub

では、実行してみます。

テキストボックスを挿入

テキストボックスを挿入した結果

テキストボックスが、挿入されました。

選択までされています。

オブジェクトに格納してテキストボックスを挿入

次は、オブジェクトに格納しながら、シートに「テキストボックス」を挿入して作成してみます。

VBAコードは、こんな感じになります。

Sub TEST4()
    
    'テキストボックス追加
    'オブジェクトに格納する場合
    Set a = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 60, 50, 100, 50)

End Sub

では、実行してみます。

オブジェクトに格納してテキストボックスを挿入

テキストボックスを挿入した結果

テキストボックスが、挿入されました。

テキストボックスを挿入して、オブジェクトに格納だけをしたので、選択されていません。

という感じで、図形やテキストボックスを挿入して、作成することができます。

図形とテキストボックスで、VBAコードは違いますけど、一旦、作成してしまえば、同じように操作することができます。

VBAで代表的な図形を挿入して作成してみる

代表的な図形を挿入して、作成してみます。

図形は、たくさん種類があるので、「マクロの記録」で記録して、確認するといいです。

すべては書けないですね。

代表的な図形の種類

代表的な図形の種類で、引数は、こんな感じになります。

  • 正方形/長方形:msoShapeRectangle
  • 四角形:角を丸くする:msoShapeRoundedRectangle
  • 三角形:msoShapeIsoscelesTriangle
  • 円:msoShapeOval
  • 右矢印:msoShapeRightArrow

という感じです。

では、挿入してみます。

挿入して作成してみる

代表的な図形を、挿入してみます。

正方形/長方形:msoShapeRectangle

正方形/長方形を挿入して、作成してみます。

Sub TEST5()

    '正方形/長方形
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50, 30, 60, 40).Select

End Sub

では、挿入してみます。

正方形/長方形を挿入した結果

正方形/長方形を挿入できました。

四角形(角を丸くする):msoShapeRoundedRectangle

四角形(角を丸くする)を挿入して、作成してみます。

Sub TEST6()

    '四角形:角を丸くする
    ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, 50, 30, 60, 40).Select

End Sub

では、挿入してみます。

角を丸くした四角形を挿入した結果

四角形(角を丸くする)を挿入できました。

三角形:msoShapeIsoscelesTriangle

三角形を挿入して、作成してみます。

Sub TEST7()

    '三角形
    ActiveSheet.Shapes.AddShape(msoShapeIsoscelesTriangle, 50, 30, 60, 40).Select
    
End Sub

では、挿入してみます。

三角形を挿入した結果

三角形を挿入できました。

円:msoShapeOval

円を挿入して、作成してみます。

Sub TEST8()

    '円
    ActiveSheet.Shapes.AddShape(msoShapeOval, 50, 30, 60, 40).Select
    
End Sub

では、挿入してみます。

円を挿入した結果

円を挿入できました。

右矢印:msoShapeRightArrow

右矢印を挿入して、作成してみます。

Sub TEST9()

    '右矢印
    ActiveSheet.Shapes.AddShape(msoShapeRightArrow, 50, 30, 60, 40).Select
    
End Sub

では、挿入してみます。

右矢印を挿入した結果

右矢印を挿入できました。

VBAで図形のタイプを変更

VBAで、図形のタイプを変更する方法です。

一度、挿入して作成した図形のタイプを、変更できます。

使うVBAコードは、「.AutoShapeType」です。

.AutoShapeTypeを使う

「.AutoShapeType」を使って、図形のタイプを変更するには、次のように入力します。

  • Selection.ShapeRange.AutoShapeType = 変更後の図形の種類

指定した図形のタイプを変更するには、次のように入力します。

  • ActiveSheet.Shapes(図形の名前).AutoShapeType = 変更後の図形の種類

という感じです。

それぞれの方法で、図形のタイプを変更してみます。

選択した図形を「右矢印」に変更してみる

選択した図形を「右矢印」に変更してみます。

VBAコードは、こんな感じです。

Sub TEST10()
    
    '選択した図形を、右矢印に変更
    Selection.ShapeRange.AutoShapeType = msoShapeRightArrow
        
End Sub

では、選択した図形を「右矢印」に変更してみます。

選択した図形を「右矢印」に変更

変更する前の図形です、図形を選択しておきます。

選択した図形を変更する

変更後の図形です。

選択した図形を「右矢印」に変更した結果

選択した図形を「右矢印」に変更できました。

指定した図形を「右矢印」に変更してみる

次は、指定した図形を「右矢印」に変更してみます。

「図形の名前」を指定すると、図形を指定して、図形のタイプを変更できます。

VBAコードは、こんな感じになります。

Sub TEST11()
    
    '指定した図形を、右矢印に変更
    ActiveSheet.Shapes("正方形/長方形 1").AutoShapeType = msoShapeRightArrow
    
End Sub

では、指定した図形を「右矢印」に変更してみます。

指定した図形を「右矢印」に変更

「正方形/長方形 1」という名前の図形のタイプを、変更します。

名前を指定して図形のタイプを変更する

変更後の図形です。

指定した図形を「右矢印」に変更した結果

指定した、図形を「右矢印」に変更できました。

おわりに

この記事では、図形やテキストボックスを、挿入して作成する方法について、ご紹介しました。

図形を挿入して作成するには、「Shapes.AddShape」です。

テキストボックスを挿入するには、「Shapes.AddTextBox」となります。

図形とテキストボックスを挿入する際には、VBAコードが違いますけど、一旦、作成してしまえば、同じように扱うことができます。

大量の図形を操作したい場合に、まず押さえておきたいVBAコードです。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す