質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

9721閲覧

Shapesで名前をつけて線を描画

omou

総合スコア11

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2014/09/23 10:14

線を描画する際に線に名前を着けて個別に管理しようと思ったのですが、
.Name = i.ToString()の部分で引っかかっているみたいで、理由が分かりません。何が問題なのでしょうか?

ちなみに.Name = i.ToString()を消すと、線が描画されます。

'スコアを読み取って線を描画
Function DrawGraph(str As Integer, ParamArray scores()) As String
Dim i As Integer
Dim yjiku As Integer
Dim yjiku2 As Integer

'線を消す
For Each sh In Application.Worksheets("Sheet3").Shapes
If sh.Type = msoLine Then
sh.Delete
End If
Next

If UBound(scores) >= 2 Then
For i = 0 To UBound(scores) - 1
yjiku = ScoreGraph(scores(i))
yjiku2 = ScoreGraph(scores(i + 1))
Application.Worksheets("Sheet3").Shapes.AddLine(Application.Worksheets("Sheet3").Cells(yjiku, Application.ThisCell.Column + i * 2).Left, Application.Worksheets("Sheet3").Cells(yjiku, Application.ThisCell.Column + i * 2).Top, Application.Worksheets("Sheet3").Cells(yjiku2, Application.ThisCell.Column + (i * 2 + 2)).Left, Application.Worksheets("Sheet3").Cells(yjiku2, Application.ThisCell.Column + (i * 2 + 2)).Top).Select

With Selection.ShapeRange.Line
.Visible = msoTrue
.Weight = 1.5
.ForeColor.ObjectThemeColor = msoThemeColorText1
.Name = i.ToString() ←ここでダメっぽい
End With
Next
End If

DrawGraph = ""

End Function

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Selection.ShapeRange.Lineから返されるLineFormat型には、Nameプロパティがありません。
Selection.ShapeRangeから返されるShapeRange型からアクセスする必要があります。

また、.Netと異なり、Integer型にはメソッドがありませんので、文字列と結合するなどしてからNameに代入します。

例:

' VBA With Selection.ShapeRange .Visible = msoTrue .Name = "" & i With .Line .ForeColor.ObjectThemeColor = msoThemeColorText1 .Weight = 1.5 End With End With

投稿2014/09/23 11:45

argius

総合スコア9390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ありがとうございました!

投稿2014/09/23 14:17

omou

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

argius

2014/09/23 14:40

解決したのでしたら、解決済みにしていだだけると助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問