【VBA】テキストボックスを作成する方法!装飾まで完全自動化!

f:id:yshgs_elec:20201228221458j:plain

「VBAでデータ整理をしたついでに資料作成まで実施したい。」

「資料にテキストボックスを使用するにはどうしたらいんだろう?」

 

この記事ではこんな悩みを解決するために、VBAでテキストボックスを作成する方法をご紹介します。

VBAでテキストボックスを作成するという作業イメージ図

普段のエクセル作業なら上の画像のように

①挿入②図③図形④テキストボックスを選択し、

さらに出てきたテキストボックスに対して

⑤文字入力⑥テキストボックスの装飾

という面倒な作業をやっているのではないでしょうか?

 

この作業が自動化できたら非常に便利ですよね。

テキストボックスを多用している人はぜひ最後までご覧ください。

 

それでは早速やっていきます!

スポンサーリンク

作業内容説明

いきなりVBAコードを紹介してもどんな作業が行われているのかイメージしにくいと思いますので、今回は以下のようなテキストボックスを作成していこうと思います。

VBAでテキストボックスを作成したサンプル

具体的には、

⓪ある位置にテキストボックスを挿入

①テキスト入力

②太文字に変更

③文字サイズ変更(今回はフォントサイズ=20に)

④文字の色変更(今回は赤に)

⑤テキストボックスの大きさ自動調整

⑥外枠の色設定(今回は黒に)

⑦背景色の設定(今回は白に)

という流れで実施していきます。

 

あなたにとって不必要なところは削除していただいても問題ありませんので、必要に応じてご利用ください。

 

それではこの作業を自動で実施できるVBAコードをご紹介していきます。

スポンサーリンク

テキストボックスを作成するVBAコード

以下が先ほど紹介した作業を実施してくれるVBAコードです。

 

先ほどの述べたとおり、あなたにとって必要なところを適宜変更、修正していただければと思います。

 

◆テキストボックスを作成するVBAコード

Sub make_text_box()
    Dim text_contents  As String
    text_contents = "テキストボックス"
    ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 50, 50, 10, 10).Select
    With Selection
        'テキスト入力
        .Text = text_contents
        '太文字に変更
        .Font.Bold = True
        '文字サイズ変更
        .Font.Size = 20
        '文字の色変更
        .Font.Color = RGB(255, 0, 0)
        'テキストボックスの大きさ調整(自動)
        .AutoSize = True
        '外枠の色変更
        .ShapeRange.Line.Visible = msoTrue
        .ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
        '背景色の変更
        .ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
    End With
End Sub

以下が上のVBAコードを実行した結果です。

 

きちんと動いていることが確認できました。

サンプルコードを実行した結果

なお、今回はテキストボックスに入力する文章は、VBAコード内に直接入力する形にしていますが、ここはもちろんセルのデータに変更することもできます。

 

その際は

text_contents = Range(“A1”)

というように変更すればOKです。

 

またテキストボックスを挿入する位置や大きさに関しては【ActiveSheet.Shapes.AddLabel(~~~)】の中の数字を調整することで変更できますので、ここも適宜変更してみてください。

⇒先ほどのコードでは50,50,10,10となっていたところですね。

 

◆テキストボックスの位置&サイズの変更について

1番目の数字:テキストボックスの左からの位置

2番目の数字:テキストボックスの上からの位置

3番目の数字:テキストボックスの幅

4番目の数字:テキストボックスの高さ

※幅や高さを変更したいときは.AutoSize=Trueのところを消しておきましょう。

 

スポンサーリンク

おわりに

というわけで今回は、テキストボックスの作成から装飾までをVBAで自動化する方法についてご紹介しました。

 

この記事の内容をコピーしておくだけで、面倒な資料作成作業を削減できると思いますのでぜひご活用ください。

 

このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

 

・日々の残業時間を減らしたい。

・業務をもっと効率的にこなしたい。

・もっと勉強する時間を作りたい。

こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。

この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

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