[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートシェイプの矢印をマクロで』(mo-.-mo)
オートシェイプの矢印をマクロで作成したいのですが? (自動マクロで作成してみましたが) 始めに任意のセル〜セルを指定してマクロを実行させたいのです。 その間に矢印を直線で引きたい(セル枠の上の部分に→が付くと良いのですが) 任意のセルのマクロが判りませんお教え下さい。
ActiveSheet.Shapes.AddLine(384.75, 555.75, 467.25, 555.75).Select Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle Selection.ShapeRange.Line.EndArrowheadLength = msoArrowheadLengthMedium Selection.ShapeRange.Line.EndArrowheadWidth = msoArrowheadWidthMedium End Sub
(WinXP, Excel2003) (mo-.-mo)
こんなこと?(ROUGE) Sub momo() Dim rr As Range If TypeName(Selection) <> "Range" Then Exit Sub Set rr = Selection rr.Parent.Shapes.AddLine(rr.Left, rr.Top, rr.Left + rr.Width, rr.Top).Select With Selection.ShapeRange.Line .EndArrowheadStyle = msoArrowheadTriangle .EndArrowheadLength = msoArrowheadLengthMedium .EndArrowheadWidth = msoArrowheadWidthMedium End With rr.Select End Sub
(ROUGE)様 有り難う御座います。出来ました。
(mo-.-mo)
再度お教え願いませんでしょうか?
任意のセルを指定しますがその時、線が左のセルの左端より少し(セルの半分位でも) 先から書き始め、右のセルも右端が少し短く書き終えるような事が出来ますでしょうか? →の両サイドを短くしたいのですが、贅沢を言って申し訳ありません。
宜しくお願い致します。
(mo-.-mo)
> rr.Parent.Shapes.AddLine(rr.Left, rr.Top, rr.Left + rr.Width, rr.Top).Select
を
rr.Parent.Shapes.AddLine(rr.Left + rr.Cells(1).Width / 2, rr.Top, _ rr.Left + rr.Width - rr.Cells(rr.Cells.Count).Width / 2, rr.Top).Select
に差し替えてください。 (ROUGE)
(ROUGE)様 有り難う御座います。出来ました、助かりました・・・・感謝感謝です。
(mo-.-mo)
再再度お教え願いませんでしょうか?
下記のマクロでオートシェイプ○を作成しました。 又位置をセルの右上角を真ん中に来るようにしたいのですが、判りませんでした、 それと順序で最前面にしたいのですが。 宜しくお願い致します。
Private Sub CommandButton3_Click()
hi = 0.95 wi = 0.6
awide = ActiveCell.Width aheight = ActiveCell.Height aleft = ActiveCell.Left - awide * (wi - 1) * 0.5 atop = ActiveCell.Top - aheight * (hi - 1) * 0.5
ActiveSheet.Shapes.AddShape(msoShapeOval, aleft, atop, awide * wi, aheight * hi).Select Selection.ShapeRange.Fill.Visible = msoTrue Selection.Characters.Text = "" With Selection.Font .Name = "MS 明朝" .FontStyle = "標準" .Size = 9
End With
End Sub
(mo-.-mo)
With ActiveCell awide = .Width aheight = .Height aleft = .Offset(, 1).Left - awide / 2 atop = .Top - aheight / 2 End With With ActiveSheet.Shapes.AddShape(msoShapeOval, aleft, atop, awide, aheight) .Fill.Visible = msoTrue .TextFrame.Characters.Text = "" .TextFrame.Characters.Font.Name = "MS 明朝" .TextFrame.Characters.Font.FontStyle = "標準" .TextFrame.Characters.Font.Size = 9 .ZOrder msoBringToFront End With
細かい調整は自分でしてね。 BJ
BJ様 有り難うございます。
hi = 0.95 ' 楕円高さのセル高さ倍率1.5位,適宜変更可能 wi = 0.6 '楕円幅のセル幅倍率1.2位 適宜変更可能
最初作成した部分で(hi = 0.95 wi = 0.6) ここで○のサイズを調整していましたが 何処でサイズ変更して良いのか???何せ初心者な物で申し訳ありません。
(mo-.-mo)
算数計算。 自分であれこれやってください。 これは、初心者だからとかは、関係無いと思う。 計算した結果の変数を利用した方が解り易くなるのかも。 BJ
With ActiveCell awide = .Width aheight = .Height aleft = .Offset(, 1).Left - awide * 1.2 / 2 'atop = .Top - aheight / 2 atop = .Top - aheight * 1.5 / 2 End With この辺のaleftとかを上と一緒にしないで 別変数として、計算した結果にすれば解りやすい? With ActiveSheet.Shapes.AddShape(msoShapeOval, aleft, atop, awide * 1.2, aheight * 1.5)
BJ様 有り難うございました。 (マクロでオートシェイプ○を作成しました。)色々調べて最初の○マクロがやっと出来ました、 意味が判って作成出来たのでは無いので、数字をあたったりしてやっと出来たのです、 何も調べずに質問しているのでは無いです、初心者には本当に判らないのです、 判らない物がマクロなど使うなと言われれば仕方がないですが、 判って有る方から見ればそんなこともと思われるかも知れませんが、 だから初心者ですと記入いたしました、申し訳有りませんでした。 (mo-.-mo)
参考になれば… (1or8) [[20071114041820]]『土曜日を□、日・祝日を○で囲みたい』(シュー)
>数字をあたったりしてやっと出来たのです 私もそうですよ。 ↓ ↓ ↓ ↓ AddShape(msoShapeOval, aleft, atop, awide, aheight) この辺なんかどれがどこ当たるのか、いちいちサイズ変えて確認してます。 ヘルプ見ればいいのでしょうが、これもなんか面倒で、結局もっと面倒な事してます。 BJ
BJさんのコードで言うと、
>With ActiveCell > awide = .Width > aheight = .Height
ここでアクティブセルの高さを幅を円の大きさにしているので そこが変更箇所です。
下のように。
awide = 0.6 aheight = 0.95 With ActiveCell aleft = .Offset(, 1).Left - awide / 2 atop = .Top - hi / 2 End With With ActiveSheet.Shapes.AddShape(msoShapeOval, aleft, atop, awide, aheight) .Fill.Visible = msoTrue .TextFrame.Characters.Text = "" .TextFrame.Characters.Font.Name = "MS 明朝" .TextFrame.Characters.Font.FontStyle = "標準" .TextFrame.Characters.Font.Size = 9 .ZOrder msoBringToFront End With
1つづつヘルプを見れば少しづつでも理解できると思います。 脱初心者目指して頑張ってください。 (momo)
(momo)様 BJ様 (1or8)様 有り難うございました。
脱初心者目指して頑張ります、なにせローマ字も苦手なおばあちゃんですのでトホホ。
(mo-.-mo)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.