[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAで複数図形をコピーし、1つの行に貼り付けがしたい』(ゆきちゃん)
現在、図形のコピーのVBAが上手くいかず困っています。
内容は、セル(Topが96.6〜264)に作図された背景色赤(色番号329215)の
図形を下の行番号57へコピー、貼り付けて横に並べたいのですが思うようになりません。
作ったVBAは、以下です。
ご教授のほど、よろしくお願い致します。
Sub エクセル質問()
Dim shp As Shape
Dim retu, gyou As Long
Dim iro As String
For Each shp In ActiveSheet.shapes
iro = "329215" '赤(長方形)
If ((shp.Fill.ForeColor = iro) And (96.6 <= shp.Top <= 264)) Then
retu = shp.TopLeftCell.Column
shp.Select Selection.COPY gyou = 57 Cells(gyou, retu).Select ActiveSheet.Paste Else End If Next shp
End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
> Cells(gyou, retu).Select > ActiveSheet.Paste
Cells(gyou, retu).PasteSpecial
ってやったらどうですかね? 2007なので、図形類のマクロ記録が出来ないので良く解ってないですが。
それと、 >iro = "329215" '赤(長方形) は、ループの外に出した方が・・・・。
> shp.Select > Selection.COPY
図形選択、選択した物をコピー の意味なので、 選択が不要だと思いませんかね? (BJ) 2020/05/31(日) 15:20
> (96.6 <= shp.Top <= 264))
ここまで見なかった。 他言語では通るかも知れませんが、VBAでは通りません。 数式と同じように、1回1回?1個1個?指定して書かないとダメです。 2016以降で変わった? (BJ) 2020/05/31(日) 17:21
「ようです」、ではなくて、ステップ実行でどうなっているか確認してはどうでしょうか。
(マナ) 2020/05/31(日) 18:47
Dim shp As Shape Dim retu As Long, gyou As Long Dim iro As Long
(マナ) 2020/05/31(日) 18:53
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.