Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


16050 / 76734 ←次へ | 前へ→

【66157】Re:オートシェイプとループ処理について
回答  kanabun  - 10/8/5(木) 20:02 -

引用なし
パスワード
   ▼AA さん:

>オートシェイプの幅と位置情報が全て同じになってしまいます。
>どこが悪いのかわからない状況です。

こんにちは。

>   YOKOHABA = ActiveCell.Offset(0, 5).Value
>   TATEHABA = ActiveCell.Offset(0, 6).Value
>   YOKO = ActiveCell.Offset(0, 7).Value
>   TATE = ActiveCell.Offset(0, 8).Value

図形位置とサイズの情報が
Do〜Loop
の外にあるからです。Loopのなかに もってきましょう。

あと、
Shapes.AddShape(Type, Left, Top, Width, Height)
が正規のパラメータ順です。
> YOKOHABA, TATEHABA, YOKO, TATE
ではないですよ。大丈夫ですか

Sub AAA()
  Dim YOKOHABA As Long
  Dim TATEHABA As Long
  Dim YOKO As Long
  Dim TATE As Long
  Dim c As Range
  Dim v
  Dim s As String
  
  For Each c In Range("A2", Cells(Rows.Count, 1).End(xlUp))
    YOKOHABA = c.Item(1, 8).Value
    TATEHABA = c.Item(1, 9).Value
    YOKO = c.Item(1, 6).Value
    TATE = c.Item(1, 7).Value
    v = Application.Index(c.Resize(, 4).Value, 0#)
    s = Join(v, vbLf) & vbLf
    
    With ActiveSheet.Shapes.AddShape( _
      msoShapeRectangle, YOKOHABA, TATEHABA, YOKO, TATE)
      With .TextFrame.Characters
        .Text = s
        With .Font
          .Name = "MS Pゴシック"
          .FontStyle = "標準"
          .Size = 11
        End With
      End With
    End With
  Next c

End Sub
2 hits

【66155】オートシェイプとループ処理について AA 10/8/5(木) 19:23 質問
【66156】Re:オートシェイプとループ処理について りん 10/8/5(木) 20:01 発言
【66157】Re:オートシェイプとループ処理について kanabun 10/8/5(木) 20:02 回答
【66177】Re:オートシェイプとループ処理について AA 10/8/6(金) 17:20 お礼

16050 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free