OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

エクセルVBAの図形について

  • 困ってます
  • 質問No.214568
  • 閲覧数741
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 82% (43/52)

図形を使用するVBAをはじめて作成中ですが、わからないことがありましたので質問します。

(1)オートシェイプに独自のプロパティーを設定したいのですが良い方法はありますか?
(便宜上、NAMEプロパティーで代用しておりますが複数のプロパティを設定したいのです)

(2)ONACTIONプロパティに設定しているマクロに対し、
どの図形から実行されたのか知りたいのですが、良い方法はありますか?

(3)ある図形からコネクトされている別の図形を特定する方法はありますか?

どれかひとつへの回答でもかまいませんので教えてください。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 68% (791/1163)

質問1 ShapeRangeコレクションを作成して、そのコレクションにプロパティを設定しては。
    『ShapeRange』でVisual Basic のHelpの
    『ShapeRange コレクション オブジェクト』を参照してみてください。

質問2
質問3
   下記にサンプルを書いてみました。
   
   OnAction でShowNameを呼び出し、図形の名前、コネクタの始点、終点をシートに書き出しています。
   最後にOnActionを定義した図形の名前をメッセージボックスに出しています。

Sheet1のコードウインドウに貼り付け(Sheet1に図形がある)

Sub OnActionTest()
  Shapes(1).OnAction = "ShowName"
End Sub

標準モジュールに貼り付け

Public Sub ShowName()
  Dim sp As Shape '図形
  Dim ct As Integer 'カウンタ
  Dim connStart As Shape 'コネクタの始点が接続する図形
  Dim connEnd As Shape 'コネクタの終点が接続する図形

  On Error Resume Next
  For Each sp In ActiveSheet.Shapes
    ct = ct + 1
    Range("A" & ct) = sp.Name
    Set connStart = sp.ConnectorFormat.BeginConnectedShape '質問(3)始点
    Range("B" & ct) = connStart.Name
    Set connEnd = sp.ConnectorFormat.EndConnectedShape '質問(3)終点
    Range("C" & ct) = connEnd.Name
  Next

  MsgBox ActiveSheet.Shapes(Application.Caller).Name '質問(2)OnAction が定義された図形
End Sub
補足コメント
tamo

お礼率 82% (43/52)

質問1は私の説明不足です。
独自のプロパティを設定したいとは、VBAで用意されているものではなく、新しいプロパティを作成したいという意味です。(上記ヘルプにはShapeRange コレクション オブジェクトを使用して”既存”のプロパティを設定するというよう項目しかみあたりませんでした。私の読み違いでしたらお手数ですが例をあげてください)

質問3の答えはバッチリです。(僕もこの答えには自力でたどりつけました。ついでに、どこにつながっているかを知りたいときはBeginConnectionSiteなどを使かえばよいことも…)
投稿日時 - 2002-02-11 15:33:47
お礼コメント
tamo

お礼率 82% (43/52)

質問1については、とりあえずNAMEプロパティでやります。ちょっと格好が悪いぐらいで支障はないですからね。

質問2については無茶苦茶勉強になりました。早速使わせてもらいます。ヘルプにはきちんと載っているんですが、なかなか見つけられないものですね。いやホント助かりました。
サンプルコードまでつけていただいて、ほんとうにありがとうございました。また何かあったら質問しますのでよろしくお願いします。

ところで『普通のサラリーマンです。』のnishi6さん、結構EXCELマニアですね。(誉め言葉ですよ)
ではまた。
投稿日時 - 2002-02-12 01:58:10
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ