Excel VBAで作成した図形をGif形式に変換し貼り付けテスト:三角くじを作ってみよう - Step3

VBAで作成した図形をCopyし、PasteSpecialメソッドで貼り付けを行います。




オートシェープに文字を入力し回転させた場合、図形は回転できますがテキストは回転できません。
その為、透明化できるGif画像に変換し貼り付けたいと思います。
ここではその貼り付け位置を指定して、うまくいくかテストを行います。
PasteSpecialメソッドのFormatでGIF形式を指定すれば貼り付けができます。
貼り付け後、SetステートメントでObjectに代入し、Topプロパティ・Leftプロパティで位置を指定しています。
次にNameプロパティで名前をつけています。
名前は「kuji」+連番にする予定です。
ここまで問題なく進行できています。


シート画面

「くじ引き」シートの左10、上10の位置に前回コピーしたものを PasteSpecial でペーストしています。
ペーストした画像

シートのVBAコード

下記のVBAコードに変更してください。

'作成開始ボタン
Private Sub CommandButton1_Click()
    Dim ln1 As Long
    Dim ln2 As Long
    
    ln1 = MyGetSuchi("C2")
    If ln1 <= 0 Or ln1 > 100 Then
        MsgBox "くじ枚数は1~100の範囲で入力してください。"
        Exit Sub
    End If
    
    ln2 = MyGetSuchi("C3")
    If ln2 < 0 Or ln2 > ln1 Then
        MsgBox "当たり枚数は,くじ枚数より少なくしてください。"
        Exit Sub
    End If
    
    Range("C2") = ln1
    Range("C3") = ln2
    'オートシェイプ作成
    ExMakeShape
    'シェイプの貼り付け
    ExPasteShape
End Sub
下記のVBAコードを追加してください。

Sub ExPasteShape()
    Dim tshape As Shape
    
    Sheets("くじ引き").Activate
    
    '貼り付け
    ActiveSheet.PasteSpecial Format:="図 (GIF)", Link:=False, DisplayAsIcon:=False
    Set tshape = Selection.ShapeRange(1)
    '位置変更
    tshape.Left = 10
    tshape.Top = 10
    '名前を付ける
    tshape.Name = "kuji1"
    Set tshape = Nothing
End Sub

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


Copyright (c) Excel-Excel ! All rights reserved