- ベストアンサー
(続)EXCEL VBA のコードをズバリで!
- 円の雛型の各種設定が保存・呼び出しで初期化される不具合。急遽、円を生成することに。
- .Ovals.Add(200, 0, 20, 20) についての質問
- .Border.LineStyle の点線の記号定数や文字の垂直方向指定に関する質問
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
私が前回のレスでOvalsを使ったのはまずかったですね。 隠しObjectなのでヘルプ等で確認できません。 素直にShapeを使ってください。失礼しました。 ところでExcelのバージョンは何でしょう? 2007以外ではマクロ記録が参考になります。 ただし、Shape操作時の Selection が TextFrame になる事がありますからその点は気をつけてください。 Sub try3() 'ステップ実行推奨 Dim sp As Shape Dim L As Single Dim T As Single Dim W As Single Dim H As Single L = 10 T = 20 W = 30 H = 40 Set sp = ActiveSheet.Shapes.AddShape(msoShapeOval, L, T, W, H) With sp '最初にテキスト追加しないと後のTextFrame操作でエラー .TextFrame.Characters.Text = "" '線に対する処理 .Line.DashStyle = msoLineSquareDot .Line.DashStyle = msoLineRoundDot .Line.DashStyle = msoLineDash .Line.DashStyle = msoLineSolid .Line.ForeColor.RGB = RGB(255, 255, 255) .Line.ForeColor.RGB = RGB(0, 0, 0) .Line.Weight = 1 '背景に対する処理 .Fill.ForeColor.RGB = RGB(0, 0, 0) .Fill.ForeColor.RGB = RGB(255, 255, 255) 'TextFrameに対する処理 .TextFrame.Characters.Text = "aa" .TextFrame.Characters.Font.Color = vbWhite .TextFrame.Characters.Font.Color = vbBlack .TextFrame.HorizontalAlignment = xlCenter .TextFrame.VerticalAlignment = xlCenter .TextFrame.HorizontalAlignment = xlLeft '余白、向き .TextFrame.MarginLeft = 0 .TextFrame.MarginRight = 0 .TextFrame.MarginTop = 0 .TextFrame.MarginBottom = 0 .TextFrame.Orientation = 3 .TextFrame.Orientation = 2 .TextFrame.Orientation = 1 End With Set sp = Nothing End Sub
その他の回答 (1)
- layy
- ベストアンサー率23% (292/1222)
前回、洩れが起こりそうだと言ったのに。 甘く見ない方が良い。 大袈裟にいえば、この前新幹線5路線止まったのも小さなミスからです。 もう一度言っておきます。 100%を求めること。100%の説明であり、100%のテストであり、確認であり。説明不足は洩れを招きます。 回答はテストしていないまま提供している、というつもりで自分で確認、保持するべき。 なので、 再度、伝え洩れは無いか、です。
お礼
>再度、伝え洩れは無いか、です。 それは、本当の所は判りません。 が、あくまでも現時点では無いと思っていますが・・・。 この怪しさが、確かに問題です。 さて、前回の指摘を受けて・・・。 「おい、本当にこれは役所に提出するのかい?」 「アハア!そんな訳ないだろうが!」 「エッ!」 「国土交通省ってのは、実は富○建設のあだ名さ!」 「島で一番の土建屋の富○建設かい?」 「そんなの常識だぜ!」 と、島暮らし一ヶ月の私にとっては驚きの答えでした。 「6割がたあっていればいいさ!アハハ!」 実は、どうでもよい土建屋の私的な調査資料だったと知って愕然です。 少し、状況に関して訂正しておきます。 しかし、ズバリのコードが無いとプログラミングできない自分が実に情けないです。 まあ、そこら辺りはシルバー人材センターの限界だと思ってください。 それはそれとして、回答者の指摘は<肝に銘じて>教訓にしたいと思います。 重ねての指摘、本当にありがとうございます。
お礼
お礼が遅くなってしまいました。 2倍速になったのでプログラムをさぼっていました。 本日、只今、オブジェクトをShapeに修正しました。 実際に作業してみたところ60分が20分まで短縮されました。 これで余裕を持って作業をすることができます。 本当にありがとうございました。 現場の担当者の方も、2倍速でもものすごーく喜んでいます。 3倍速ですと、とってもだと推察されます。 本当にありがとうございました。
補足
バージョンは2007です。 点線で描画されれば、ほぼ完成でした。 記号定数ではなく1,2と試しましたが、点線がなく当惑していたところです。 Ovalsを使っても、ほぼ作業時間を半減することに成功しました。 現実問題としては、余白の操作はしないでフォントサイズを小さくして対応していたからです。 だから、手作業は一部の円を点線にする作業のみだったからです。 まあ、それでも100%手作業を廃止してなんぼですのでShapesを使います。 朝と夜も別の仕事をしていますので、パソコンに向かうのは夜に2、3時間のみ。 離島住まいという環境ですので書籍もありません。 そういう事情で厚かましく質問を重ねた次第です。 先ずは、補足欄にてお礼をしておきます。