advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 1039 for オートシェイプ (0.001 sec.)
[[20100304203952]]
#score: 6703
@digest: 5d22e2ab85dc934d1b309f8f316297b7
@id: 48128
@mdate: 2010-03-08T06:56:03Z
@size: 3107
@type: text/plain
#keywords: dashstyle (32379), msolinerounddot (29993), msolinesolid (23915), swich (14426), shaperange (7071), 種変 (6024), 数vb (5492), weight (5416), solid (5230), 線種 (4942), れsu (4741), caller (4721), 形以 (4689), 点線 (4090), 実線 (3645), line (3467), つ名 (3461), dot (3394), typename (3005), と点 (2399), シェ (2258), トシ (2179), ェイ (2126), ichinose (1652), イプ (1575), selection (1525), 図形 (1317), 間隔 (1164), 登録 (994), shapes (880), オー (824), shp (809)
『マクロでの線種変更について』(いけっち)
オートシェイプにマクロを登録し、そのオートシェイプをクリックすることで線種を実線・点線への切り替えを行っています。 このとき、点線を「Selection.ShapeRange.Line.DashStyle = msoLineRoundDot」の記述により変更をしているのですが、手動で「点線(丸)」を選択する場合と点線の粗さ(点と点の間隔)が違います。 細かい間隔にしたいのですが、何か知恵はないでしょうか? ちなみに、記述しているマクロは下記のようなマクロです。(オブジェクトは50ぐらいあって、一つ一つ名前を付けてマクロもそれぞれsubを作成しています。下手くそですが・・・・。) Sub Object1() Dim L As Integer i = ActiveCell.Address ActiveSheet.Shapes("オブジェクト1").Select L = Selection.ShapeRange.Line.DashStyle If L = msoLineSolid Then Selection.ShapeRange.Line.DashStyle = msoLineRoundDot Selection.ShapeRange.Line.Weight = 0.75 Else Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Weight = 1.75 End If Range(i).Select End Sub ---- 外しているでしょうが・・ (mitsu) >Selection.ShapeRange.Line.Weight = 0.75 を Selection.ShapeRange.Line.Weight = 0.25 へ変更。 ---- >、一つ一つ名前を付けてマクロもそれぞれsubを作成しています。 この50のオートシェイプに投稿されたような破線と実線の切り替えを行うVBAコードを登録したいという ことなら、オートシェイプの数VBAコードを用意する必要はありません。 標準モジュールに '======================================================================== Sub swich_dot_solid() Dim shp As Variant shp = Application.Caller If TypeName(shp) = "String" Then With ActiveSheet.Shapes(shp).Line If .DashStyle = msoLineSolid Then .DashStyle = msoLineRoundDot .Weight = 0.75 Else .DashStyle = msoLineSolid .Weight = 1.75 End If End With End If End Sub 上記のswich_dot_solidを個々のオートシェイプに登録してください。 ichinose ---- >mitsuさん 私も初めは線の太さの問題かと思いましたが、そうではありませんでした…。単なるエクセルのバグなんですかね。。。 >ichinoseさん ありがとうございます。非常にわかりやすい!後学のために「If TypeName(shp) = "String" Then」はどういう意味ですか?? ---- あっ、これ間違いです。 Sub swich_dot_solid() If TypeName(Application.Caller) = "String" Then With ActiveSheet.Shapes(Application.Caller).Line If .DashStyle = msoLineSolid Then .DashStyle = msoLineRoundDot .Weight = 0.75 Else .DashStyle = msoLineSolid .Weight = 1.75 End If End With End If End Sub 図形に登録したマクロ内では、Application.Callerは、図形の名前を文字列として返します。 よって、 If TypeName(Application.Caller) = "String" Then これは、図形に登録されている場合だけ、If以下の処理を行うという意味です。 もっとも、図形以外でも文字列を返す場合もあるので、簡単なチェックですけどね!! Application.Callerは、よくHelpで確認してみてください。 ichinose ---- >ichinoseさん ありがとうございました! ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201003/20100304203952.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97048 documents and 608239 words.

訪問者:カウンタValid HTML 4.01 Transitional