Excel VBA:オートシェイプを作成後コピーしGIF画像で貼り付け

オートシェイプに入力された文字も回転させるために、GIF画像にします。




Homeに戻る > Excel オートシェイプのTipsへ

オートシェイプとは丸・四角・矢印などの図形のことで、Excel2010から「図形」と呼ばれるようになりました。

Excelのオートシェイプに文字を入力し回転すると、シェイプ自体は回転しますが文字は回転できません。

そこでコピーしたものをGIF形式にしペーストすると画像になる為、文字も回転できるようになります。

但し、文字の編集はできなくなります。

オートシェイプを作成するには、AddShapeメソッドを使用しています。使い方はこのページを参照してください。

オートシェイプへの文字の入力は、TextFrameオブジェクトとCharactersオブジェクトを使います。

GIF形式で貼り付けるには、PasteSpecialメソッドを使います。


テキストボックスも文字列を操作する、TextFrameオブジェクトとCharactersオブジェクトの構文

Shapeオブジェクト.TextFrame.Characters.プロパティ

プロパティ一覧

  • Text : 入力する文字列を設定します。
  • Font : 文字列のフォントを設定します。
  • Count : 文字列数をカウントします。
  • Caption : 文字列を取得します。

クリップボードの内容をシートに貼り付ける、PasteSpecialメソッドの構文

PasteSpecial(Format、 Link、 DisplayAsIcon、 IconFileName、 IconIndex、 iconlabel、 nohtmlformatting)

PasteSpecialの引数

  • Format :(省略可能) クリップボードの形式を指定します。「図(PNG)」「図(GIF)」「図(JPEG)」などになります。
  • Link :(省略可能) 元のデータと貼り付けたデータをリンクするにはTrueを指定します。既定値はFalse
  • DisplayAsIcon :(省略可能) アイコンとして表示する場合はTrueを指定します。 既定値はFalse
  • IconFileName :(省略可能) DisplayAsIconプロパティがTrueの場合、ファイル名を指定します。
  • IconIndex :(省略可能) アイコンファイルから使用するアイコンのインデックス番号を指定します。
  • IconLabel :(省略可能) アイコンのラベルを文字列で指定します。
  • NoHTMLFormatting :(省略可能) HTMLから書式設定・ハイパーリンク・およびイメージを削除するにはTrueを指定します。 Falseを設定すると、HTMLをそのまま貼り付けます。

関連する「オートシェイプの名前を調べ削除する」を掲載していますので、参考にしてください。




オートシェイプを作成後コピーしGIF画像で貼り付けるVBA

ExcelシートのVBAコード

作成したVBAコードの解説

  1. Shapeオブジェクトを宣言します。
  2. AddShapeメソッドでオートシェイプを作成します。
  3. TextFrameオブジェクトとCharactersオブジェクトのTextプロパティで、表示する文字列を設定します。
  4. Copyメソッドでクリップボードにコピーします。
  5. Deleteメソッドでオートシェイプを削除します。
  6. PasteSpecialメソッドでGIFフォーマットを指定し貼り付けます。

Option Explicit

'シェイプを作成後コピーしGIF形式で貼り付けする
Sub ExMakeShape()
    Dim tshape As Shape
    
    '元の図形を作成
    With ActiveSheet.Range("D9:E15")
        Set tshape = ActiveSheet.Shapes.AddShape(Type:=msoShapeLeftArrow, _
        Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
    End With
    '文字をセット
    tshape.TextFrame.Characters.Text = "シェイプ"
    'コピー
    tshape.Copy
    '削除
    tshape.Delete
    Set tshape = Nothing
    'GIF形式で貼り付け
    ActiveSheet.PasteSpecial Format:="図 (GIF)", Link:=False, DisplayAsIcon:=False
End Sub

Private Sub CommandButton1_Click()
    ExMakeShape
End Sub


Excel実行画面

ボタンをクリックすると、シェイプを作成し、「シェイプ」と文字をセットします。
次に、コピー後削除し、GIF形式で貼り付けます。
GIF画像で貼り付け


Homeに戻る > Excel オートシェイプのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved