Sub MyShapeByVal()
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Rem オートシェイプ設定値 引き渡し処理
  Rem 作譜:Hitrock Camellia Shinopy
  Rem 言語:Excel VBA
  Rem 機能...
  Rem   オートシェイプの設定値を、コマンドボタンのポップヒントを介して、
  Rem   他のプロシージャに引き渡す。
  Rem 注記...
  Rem   1. 手作業で、オートシェイプを右クリックして[マクロの登録...]に下記を入力。
  Rem     (単一引用符で囲んで入力。)
  Rem     例...
  Rem     「'CommandBars("MyShapeByVal").Controls(1).TooltipText = "222": CommandBars("MyShapeByVal").Controls(1).Execute'」
  Rem    (コマンドバーのポップヒントに「222」を設定する例。)
  Rem   2. 実行前に「MyShapeByValInit」を一度実行しておくこと。
  Rem   3. セキュリティレベルを「低」に設定すること(あるいは署名で対処)。
  Rem   4. オートシェイプをクリックして実行。
  Rem 履歴...
  Rem   第01版:2007/02/02:作成。
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  Rem コマンドバー「MyShapeByVal」のコマンドボタンのポップヒントを取得。
  MsgBox CommandBars("MyShapeByVal").Controls(1).TooltipText
End Sub ' MyShapeByVal *----*----*    *----*----*    *----*----*    *----*----*

Sub MyShapeByValInit()
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Rem オートシェイプ設定値引き渡し処理:初期処理
  Rem 機能...
  Rem   設定値引き渡し用の浮動コマンドバーを非表示で追加。
  Rem 注記...
  Rem   1. 「MyShapeByVal」を実行する前に一度実行する。
  Rem   2. アプリケーション終了時まで有効。
  Rem   3. 「OnAction」にマクロ「MyShapeByVal」の保存先を指定すること。
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  Dim myCmmdBar As CommandBar
  Dim myCtrlBttn As CommandBarControl
  '
  On Error Resume Next
  CommandBars("MyShapeByVal").Delete
  On Error GoTo 0
  '
  Set myCmmdBar = CommandBars.Add(Name:="MyShapeByVal", Position:=msoBarFloating, Temporary:=True)
  Set myCtrlBttn = myCmmdBar.Controls.Add(Type:=msoControlButton, Before:=1, Temporary:=True)
  '
  With myCtrlBttn
    .DescriptionText = "ポップアップメニュー"
    .Style = msoButtonIconAndCaption
    .Caption = "MyShapeByVal実行"
    .TooltipText = "?????" ' ここに引き渡す値を設定する。
    .FaceId = 329
    .OnAction = "PERSONAL.XLS!MyShapeByVal.MyShapeByVal" ' マクロ保存先を指定。
  End With
  '
  ' myCmmdBar.Visible = True ' 画面上に表示(通常は表示不要)。
End Sub ' MyShapeByValInit *----*----*    *----*----*    *----*----*    *----*----*
inserted by FC2 system