[[20171003143255]] 『図形の変換』(maguta) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『図形の変換』(maguta)

現在複数の図形を正方形/長方形で作成しているのですが、正方形/長方形からテキストボックスへ変換がしたいです。
なにか良い方法はありますでしょうか?

< 使用 Excel:Excel2016、使用 OS:Windows10 >


正方形/長方形は、Rectangleクラス。テキストボックスはTextBoxクラスであり、別種のオブジェクトです。プロパティ等で切り替える、とかはできません。 なので、同じようなTextBoxを貼りつけてから、元のRectangleを消すと良いでしょう。

線の太さとか色とか、どこまで合わせるのか判りませんが、面倒なので、必要に応じてご自分で調べてみてください。

 Sub test()
    Dim R As Object

    For Each R In ActiveSheet.Rectangles
        With ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, R.Left, R.Top, R.Width, R.Height)
            .TextFrame2.TextRange.Characters.Text = R.Caption
        End With
        R.Delete
    Next R
 End Sub
(???) 2017/10/03(火) 14:58

(???)さん
早急な返信ありがとうございます!
わかりやすいご説明で素人の私でも変換ができました!
あとは、サイズ、フォント、背景の色の指定ですが調べてやってみます!
本当にど素人なのでまたご質問させて頂くかもですが・・・
(maguta) 2017/10/03(火) 15:19

Excelのオブジェクトについては、あまり情報が出回っていないようなので、もうちょっと手を入れておきますね。

 Sub test()
    Dim R As Object

    For Each R In ActiveSheet.Rectangles
        With ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, R.Left, R.Top, R.Width, R.Height)
            .TextFrame2.TextRange.Characters.Text = R.Caption
            .TextFrame2.TextRange.Font.Fill.ForeColor.RGB = R.Font.Color
            .TextFrame2.TextRange.Font.Size = R.Font.Size
            .Fill.ForeColor.RGB = R.Interior.Color
            .Line.ForeColor.RGB = R.Border.Color
            .Line.Weight = R.Border.Weight / 2
        End With
        R.Delete
    Next R
 End Sub
(???) 2017/10/03(火) 16:02

(???)さん

ありがとうございます!
無知でごめんなさい。
動かしてみたのですがちょっとよくわからず・・・
もしかしてサイズやフォントや背景を入れて頂いたのですか!?

(maguta) 2017/10/03(火) 17:55


まぁ、そんな感じです。 思ったよりこれらのプロパティについて調べるのが難しい(ここまでやろうとした人が殆ど居ないか、ここまでやる人は自力解決してしまっているか)ので、自力で見つけられなくても気にしなくて良いですよ。

前のコードは枠のサイズと文字列を合わせただけでしたが、以下の設定合わせを追加しています。見た目、だいぶ一致したかと思いますが、いかがでしょうか。
・フォントの色
・フォントサイズ
・塗りつぶし色
・枠線の色
・枠線の太さ
(???) 2017/10/03(火) 18:02


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.