• 締切済み

Excel VBA 数値を入れ 図形の線を変える

図形を作成し、毎年更新をするのですが 数値を入れて、画像の線の幅を変更したいです。 下記、内容で作成したのですが、うまく動きません。 何が問題でしょうか? 数値を入れる場所は、B51になります。 Sub Macro1() ' Dim i As Integer Dim ws1 As Worksheet Set ws1 = ActiveSheet For i = 1 To 20 ActiveSheet.Shapes(ws1.Cells(50 + i, 1).Value).Select Selection.ShapeRange.Line.Weight = ws1.Cells(50 + i, 2).Value Next i End Sub

みんなの回答

  • kybo
  • ベストアンサー率53% (349/647)
回答No.2

プログラム自体に特に問題点があるようには見えません。 ・うまくいかないとはエラーになるのか ・エラーになる場合、iが何番目の時でその図形名は本当に存在するのか などを調べた方がよいです。 試しに下図の表と線と以下のコードで試したところ、正常に機能しました。 Sub Macro1() Dim i As Integer Dim ws1 As Worksheet Set ws1 = ActiveSheet For i = 1 To 2 ActiveSheet.Shapes(ws1.Cells(i, 1).Value).Select Selection.ShapeRange.Line.Weight = ws1.Cells(i, 2).Value Next i End Sub

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

>ここの質問コーナーで「>うまく動きません」とだけ書く人が多いが、 (1)プログラムがエラーで走らない。途中でエラーでとまる (2)走るが思った通りでない(出来上がりの結果) (3)その他いろいろあろう などはっきり書くこと。 ーー 私が質問の一部を簡略化して、変えてテスト実行すると、それらしく動いたが。 テキストオックスを3つ貼り付け(Sheet1に) A11:A13に 1 2 3 B21:B23に 5 16 3 こういう例も本番どおり挙げられても多すぎて回答者で作りにくい(手数がかかる)し、 内情を出したくない人も多かろう。だから 要点を押さえ簡略化・一部化する術を磨くこと。すると質問者側に、いろんな進歩があると思う。 ただ実例はぜひ記述してほしい。 ーーー 標準モジュールに Sub Macro1() ' Dim i As Integer Dim ws1 As Worksheet Set ws1 = ActiveSheet For i = 1 To 3 ActiveSheet.Shapes(ws1.Cells(10 + i, "A").Value).Select Selection.ShapeRange.Line.Weight = ws1.Cells(20 + i, "B").Value Next i End Sub 質問に、内容を追加したほうがよいのではないか。