これまでシート上のオートシェイプをVBAを使用し別シートにコピペしていたのですが、
Excel2013から2019へバージョンアップすると反映しなくなってしまいました。
別のテキストは全て反映されています。(Excel2013ではシェイプも全て反映。)
・新しいブックにデータ、シェイプを再度作成しマクロをコピー
・オプションー詳細設定のオブジェクト表示 → すべて
・グラフィックアクセラレータを無効にチェック
・オブジェクトの選択と表示 → 目のアイコン有
以上の対応はしましたが直りません。
もし別案があればご教授願います。
よろしくお願いいたします(>_<)
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
投稿後気が付きました
>上記データが取得できない場合はコピペ不可という認識であっていますか?
取得できていないシェイプがあると言う事でしょうか?
取得できない場合は、違う方法になるかと、
しかしそれは、オートシェイプではないと言う事になるのではないかと思います。
ごめんなさい。本日はこの辺で、、
No.2
- 回答日時:
#1です
.Typeの1は、図形・オートシェイプ
28はグラフィックとなります。
Nameは、B列です。Rectangular Callout 4 など
これは、一意のはずです。
>オートシェイプをコピーしたいとの事なので
補足お礼の結果にある1のシェープいずれかだと推測します。
コピペのコードが分らないので推測ですが、名前、または、
ShapeのあるアドレスなどでShapeを特定取得してCopyしているのではないでしょうか
または、#1に示したFor のようにシートにあるすべてのShapeに対してIf ~~.Name Thenなどで
取得、特定しているのではないかと推測します。
テストしたリストのアドレスからShapeを特定して
対象のShapeをどのように現行処理で取得されているか、判れば
現行に合うように(コード側)変更すれば、コピペできると思います。
新たに特定Shapeを取得(コピペ)する必要がある場合は、
Shapeに対して一意の.Nameや状況によっては、.TopLeftCell.Addressで特定して
コピペしてみてください。
No.1
- 回答日時:
こんばんは、
残念ながら、事象を検証できないので、想像で、、
まず、>Excel2013から2019へバージョンアップする は、
Office32bitから64bitなのかな?
>オートシェイプをVBAを使用し別シートにコピペしていたのですが
どの様に抽出(特定)してコピペしていたのでしょうか?
Nameプロパティなどで特定したいたのであれば、
下記コードで現状のShape各プロパティを確認して、実行コードを確認してみては
いかがでしょう。
一部のプロパティなので必要に応じて追加してください。
Sub Shape_Test()
Dim shp As Shape
Dim n As Long: n = 1
For Each shp In ActiveSheet.Shapes
With Sheets(1)
.Cells(n, "A") = shp.Type
.Cells(n, "B") = shp.Name
.Cells(n, "C") = shp.ShapeStyle
.Cells(n, "D") = shp.TopLeftCell.Address
End With
n = n + 1
Next shp
End Sub
新規シートを追加して、インデックス1(一番左のタグ位置)にして
該当のシェープのあるシートをアクティブシート(選択)にして、
上記プロシージャを実行して各シェープのプロパティを確認してみては、
該当コードを修正して取得できるようなら
コピペも可能なのではないでしょうか、、
回答頂き有難うございます。
私はVBA初心者ですので、Nameプロパティなのか知識がありません。
Nameプロパティかどうなのか確認方法はありますか?
>Office32bitから64bit
こちらについては未確認です。確認します!
自分の持っているファイル(シェイプが反映するファイル)で実行コードを確認しました。
1 Rectangular Callout 4 0 $AE$2
1 Rectangular Callout 5 0 $C$60
1 Smiley Face 1 0 $F$9
1 Plaque 2 0 $F$12
1 Pentagon 12 0 $F$38
1 Pie 15 0 $G$18
1 Flowchart: Or 23 0 $F$21
28 Graphic 28 0 $F$32
1 Flowchart: Or 17 0 $F$24
1 Flowchart: Or 18 0 $F$29
28 Graphic 19 0 $F$34
1 Pentagon 13 0 $F$52
28 Graphic 14 0 $F$46
1 Flowchart: Or 16 0 $F$43
28 Graphic 20 0 $F$48
1 Pie 21 0 $G$15
このように表示されたのですが、該当コードを修正する必要が
あるのでしょうか?
上記データが取得できない場合はコピペ不可という認識であっていますか?
知識足らずですみません。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) Excel シート複数 金額日計表と日付 簡単にシートコピーしたら前日の残高と日付を変更させたい 1 2022/07/15 22:10
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/25 11:42
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelのInitializeイベントとAc...
-
ACCESSのVBAにてExcelのシ...
-
エクセルVBAで名前の決まってい...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel・Word リサーチ機能を無...
-
配列数式の解除
-
Excel マクロ VBA プロシー...
-
UserForm1.Showでエラーになり...
-
教えて下さい
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
String""から型'Double'への変...
-
End Sub が必要です。
-
マクロで"#N/A"のエラー行を削...
-
ExcelのVBA。public変数の値が...
-
TERA TERMを隠す方法
-
フランスの生年月日(jj/mm/aaaa)
-
実行時エラー'-2147467259(8000...
-
Excel VBAからAccessマクロを実...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのVBAにてExcelのシ...
-
excelのInitializeイベントとAc...
-
Excelマクロ 別シートへ連続コ...
-
エクセルVBAで名前の決まってい...
-
「IsText」の使い方を教えてく...
-
EXCELで1シートのデータを複数...
-
同一ブック内・別シートの内容...
-
excel
-
VBAでシートをまたぐ処理の方法
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel マクロ VBA プロシー...
-
UserForm1.Showでエラーになり...
-
配列数式の解除
-
メッセージボックスのOKボタ...
-
教えて下さい
-
String""から型'Double'への変...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
おすすめ情報