• 締切済み

excelで図形の真ん中に線を引くマクロ

end-uの回答

  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

ActiveSheetの1、2番目のShapesを対象に処理するサンプル。 Sub try()   Dim x(1) As Single   Dim y(1) As Single   Dim z As Single   With ActiveSheet     With .Shapes(1)       x(0) = .Left + .Width / 2       y(0) = .Top - 100       y(1) = .Top + .Height     End With     With .Shapes(2)       x(1) = .Left + .Width / 2       z = .Top - 100       If z < y(0) Then y(0) = z       z = .Top + .Height       If z > y(1) Then y(1) = z     End With     With .Lines.Add(x(0), y(0), x(0), y(1))       .Border.LineStyle = msoLineSquareDot       With .ShapeRange.Duplicate         .Left = x(1)         .Top = y(0)       End With     End With     y(0) = y(0) + 50     With .Lines.Add(x(0), y(0), x(1), y(0))       .ArrowHeadStyle = xlDoubleClosed       z = .Width     End With   End With   MsgBox Application.Round(z * 3528 / 1000, 0) End Sub 取り敢えずExcel2003環境にて動作確認してます。

関連するQ&A

  • [エクセル2007] 図形を非表示にするマクロ

    図形「図A」を非表示にするマクロがあります。 Sub 図削除() ActiveSheet.Shapes("図A").Visible = False End Sub これを図A、図B、図C・・・・・・と増やしていく場合はどうすれば良いのでしょうか? Sub 図削除() ActiveSheet.Shapes("図A").Visible = False ActiveSheet.Shapes("図B").Visible = False ActiveSheet.Shapes("図C").Visible = False            ・            ・             ・ End Sub とするしかないのでしょうか?

  • オートシェイプの図形の高さ、幅をマクロで変えたい

    エクセルのオートシェイプで図形を作って、それをグループ化して、 A1(縦)A2(横)のセルへ数値を入力するとシート1上にあるオートシェイプの長さと幅が変化するようにしたいのです。マクロで出来るでしょうか。 シート上の図形は、Group25 です。 エクセル2010を使用しています。 よろしくお願いします。

  • エクセルで図形を描きたいのですが

    こんにちは。 エクセルで寸法を入力するとその数値に従った 図形を描きたいのですが 例えば四角形の場合 A1に「100」(縦の寸法) B1に「200」(横の寸法) と入力すると100*200の長方形が描ける。 といった具合です。 とりあえずココまでは「グラフ」を使ってできました。 問題は寸法も入れたいのです。 縦の線の横に「100」、横の線の上に「200」 と表示させたいのですがこれが出来ません。 現在はテキストボックスを作成して寸法を書いていますが これだと 1、寸法が変わるといちいち手作業で書き換えないといけない 2、寸法が変わると図形に合わせて手作業で動かさないといけない というのが不便です。 なんとか図形が変わるとそれに連動して数値と場所が 変更されるようには出来ないでしょうか?

  • excel2007 ではマクロの記録で 図形操作が無視されます

    excel2007 ではマクロの記録で 図形操作が無視されます 以前のバージョンのエクセルVBAで得たコードを移植すれば図形描画をマクロで行うことが可能なのですが、わずらわしいです。簡単に図形描画マクロが組めて大変重宝していたのですが残念です。 なぜ、図形操作をマクロ記録できなくなったのかその経緯をご存知の方 教えてください。セキュリティ上の対策なのか、ニーズがないと判断されてしまったのか、XMLとしての保存形式上の問題なのか、なぜなのでしょう? また、手軽に図形をプログラムで描画するのに便利な方法はないでしょうか。20年前のBASICの機能で十分なのですが・・・line(x1,y1)-line(x2,y2)なんて感じで描画したいのですが。excelシートにマクロで簡単に図形が描けなくなって困っています。

  • エクセルマクロ(VBA)の立て方について

    お世話になっております。 エクセルのVBAマクロについて教えてください。 以下のように2種類A,Bの縦に並んだ時系列データがあった場合、 A No1  2012/6/1    1 A No2  2012/7/1    3 A No3 2012/8/1    4 B No1  2012/6/15   2 B No2 2012/7/15   6 B No3  2012/8/15   7 B No4  2012/9/15   9 上記のデータを別のシートに以下のように表示させたいのです。 (上記1列目は以下1列目に対応、上記4列目の数字をA、B単位で累計和を以下2列目に表示) A 1 A 4 A 8 B 2 B 8 B 15 B 24 以上のVBAマクロの数式の立て方を教えていただけますでしょうか。 よろしくお願いいたします。

  • マクロで図形を移動したい。

    マクロまったくの素人です。 エクセル2007を使用しています。 次のことで悩んでいます。ご教示ください。 シート1にあるボタンを押すと、 1.シート2にある図形(セルA1)を同じシート2のA10のセルに移動。 2.シート2のプリントエリアで指定してある範囲を印刷。 3.A10にある図形がA1に戻る。 4.画面表示がシート1に戻る。 以上のような動作を一連としてボタンのワンクリックでしたいのです。 マクロは、全くの無知に近いです。どなたかご教示くだされば幸いです。よろしくお願いします。

  • エクセルで図形を挿入するマクロについて

    図形を挿入するマクロを考えています。 画像のように、A列に番号・B列に商品名・C列に数量があります。 C列に数量が入っている場合のみ数量を○で囲みたいと思っています。 コードがわからないので、「マクロの記録」を利用して、出た結果を 加工しようとしたのですが、○を背景なしで2~3個入れても、 何も記録されませんでした。 どのようなコードを書けばよいのか、教えていただけませんか?

  • エクセル2010 図形の貼り付けがずれます。

    エクセルAシートにある30個ほどの小さな図形をエクセルBシートに 貼り付けています。それが20シートあります。 AシートとBシートの30個ほどの小さな図形は同じ場所にはりつけなくては いけないので拡大表示+グループにして貼り付けています。 30個ほどの小さな図形以外は多種にわたってありますので、シートごとの コピーはできません。 それがなぜか拡大表示してグループにした図形を張りるけると 貼り付けなくてはいけない場所からずれて貼り付けられてしまいます。 拡大表示をやめると AシートからコピーしたものがBシートでも同じ位置にはりつけることができます。 うまく説明ができなくてすみませんが。 拡大表示と図形は愛称が悪いのでしょうか。 御教示よろしくお願い致します。

  • エクセルマクロを使ったオブジェクトの作り方

    エクセルのマクロを使って、自動的にセルの内容をオブジェクト(図形)に入れていきたいです。 (オブジェクトは随時新規作成) 例えば、セルのA1からA3に、”あ”、”い”、”う”が記入してあるとすると、 図形が3個作成されて、図形にはそれぞれ文字が記入されている。 という感じに作りたいのですが、できますか? 誰か教えてください><

  • エクセル マクロ

    エクセルを使って12桁の数字をsheet A と sheetBとの違いを調べる、表?をつくりたいのですが、マクロを使えば簡単と聞きました、マクロは全くわからないので、マクロを使わなくてもいいのですが、良い方法はありますか?  例えば エクセルの sheet A に 12桁の数字を50, sheet Bに12桁の数字を50, その中からsheetAにはあってsheetBには無いもの、sheetAには無くてsheetBには有るもの を色をつけてわかるようにしたいと思っています。 みなさんよろしくお願いいたします。