[[20200531145425]] 『VBAで複数図形をコピーし、1つの行に貼り付けがax(ゆきちゃん) ページの最後に飛ぶ

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

 

『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

早速のご返事をありがとうございます。
VBAの書き方、勉強になりました。
コピーに関して追記しますと、ず図形4つをおいてVBAを実行すると以下の2通りの結果となってしまいます。
1)57行目に図形が1つも貼付けされない場合
2)57行目に図形が1つだ貼付けされ、3つのコピー、貼付けされず終了する場合
どこかVBAの書き方に間違いがあるのでしょうか?引き続き、教えて下さい。
よろしくお願いいたします。
(ゆきちゃん) 2020/05/31(日) 17:10

 > (96.6 <= shp.Top <= 264))

 ここまで見なかった。
 他言語では通るかも知れませんが、VBAでは通りません。
 数式と同じように、1回1回?1個1個?指定して書かないとダメです。
 2016以降で変わった?
(BJ) 2020/05/31(日) 17:21

何度もお手数をお掛けします。
(96.6 <= shp.Top <= 264)) ⇒ (shp.Top <= 264)に変更して実行しましたが、
残念ながら結果は、以前と同じの2通りの結果がランダムに出てきます。
Far each shp...で繰り返し4つの図形のshpをコピーするところが飛ばされてしまっているようです。
なかなか難しいです。。。
(ゆきちゃん) 2020/05/31(日) 18: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


マナさん、ありがとうございます!
教えて頂いたステップ実行で確認しました所、実行途中で先に作っておいた
「Private Sub Worksheet...()」に飛んで行くことがわかりました。
何故飛ぶのかは、不明ですが、この「Private Sub Worksheet...()」を無くしてみたら
問題無く57行目に全図形をコピー、貼付けすることが出来ました。
「Private Sub Worksheet...()」と「Sub エクセル質問()」の両立させ方が、今後の課題と
なりますが原因がわかり、お陰様で この問題は解決しました。
本当に、ありがとうございました。 
(ゆきちゃん) 2020/05/31(日) 20:20

コメント返信:

[ 一覧(最新更新順) ]


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