Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1930 / 13645 ツリー ←次へ | 前へ→

【70955】オートシェイプの種類識別 saya 12/1/20(金) 23:09 質問[未読]
【70960】Re:オートシェイプの種類識別 kanabun 12/1/21(土) 10:39 発言[未読]
【70961】Re:オートシェイプの種類識別 kanabun 12/1/21(土) 10:57 発言[未読]
【70967】Re:オートシェイプの種類識別 saya 12/1/21(土) 21:59 質問[未読]
【70968】Re:オートシェイプの種類識別 kanabun 12/1/21(土) 22:35 発言[未読]
【70983】Re:オートシェイプの種類識別 saya 12/1/23(月) 22:53 お礼[未読]

【70955】オートシェイプの種類識別
質問  saya  - 12/1/20(金) 23:09 -

引用なし
パスワード
   sayaです。もうひとつ質問です。

  For Each sp In ActiveSheet.Shapes
    ct = ct + 1
    Sheets("Sheet2").Range("B" & ct) = sp.Value
  Next

というコードでオートシェイプの種類が取得できるのですが、取得した数値の意味が分かりませんでした。ヘルプを見てもわかりませんでした。数値の意味の一覧表のようなものは存在しませんでしょうか?
それから、イメージとコネクタは-2になってしまうのですが、どのような意味になるのでしょうか?
教えていただけると幸いです。

【70960】Re:オートシェイプの種類識別
発言  kanabun  - 12/1/21(土) 10:39 -

引用なし
パスワード
   ▼saya さん:

>  For Each sp In ActiveSheet.Shapes
>    Sheets("Sheet2").Range("B" & ct) = sp.Value

>というコードでオートシェイプの種類が取得できる
ぼくのところでは、そのコードは sp.Value でそういうプロパティは
Shapeオブジェクトにない、といってエラーになります。
「オートシェイプの種類」なら .AutoShapeType というプロパティが
ありますよ。
たとえば
四角形は msoShapeRectangle (1)
楕円は msoShapeOval  具体的な数値として 9 が割り当てられています。
> -2 
なら msoShapeMixed という種類のことですね。

【70961】Re:オートシェイプの種類識別
発言  kanabun  - 12/1/21(土) 10:57 -

引用なし
パスワード
   Sub Try1()
 Dim shp As Shape
 Dim i&
 For Each shp In Worksheets(1).Shapes
   i = i + 1
   With Worksheets(2).Cells(i, 1)
     .Value = shp.Name
     .Offset(, 1).Value = shp.Type
     .Offset(, 2).Value = AutoType(shp) '下の関数を呼び出す
   End With
 Next
End Sub

'// ヘルプの一覧をコードにしただけのものですが...
Function AutoType(shp As Shape) As String
 Dim ss As String
 Select Case shp.AutoShapeType
  Case msoShape24pointStar: ss = "msoShape24pointStar "
  Case msoShape4pointStar: ss = "msoShape4pointStar "
  Case msoShape8pointStar: ss = "msoShape8pointStar "
  Case msoShapeActionButtonBeginning: ss = "msoShapeActionButtonBeginning "
  Case msoShapeActionButtonDocument: ss = "msoShapeActionButtonDocument "
  Case msoShapeActionButtonForwardorNext: ss = "msoShapeActionButtonForwardorNext "
  Case msoShapeActionButtonHome: ss = "msoShapeActionButtonHome "
  Case msoShapeActionButtonMovie: ss = "msoShapeActionButtonMovie "
  Case msoShapeActionButtonSound: ss = "msoShapeActionButtonSound "
  Case msoShapeBalloon: ss = "msoShapeBalloon "
  Case msoShapeBentUpArrow: ss = "msoShapeBentUpArrow "
  Case msoShapeBlockArc: ss = "msoShapeBlockArc "
  Case msoShapeChevron: ss = "msoShapeChevron "
  Case msoShapeCloudCallout: ss = "msoShapeCloudCallout "
  Case msoShapeCube: ss = "msoShapeCube "
  Case msoShapeCurvedDownRibbon: ss = "msoShapeCurvedDownRibbon "
  Case msoShapeCurvedRightArrow: ss = "msoShapeCurvedRightArrow "
  Case msoShapeCurvedUpRibbon: ss = "msoShapeCurvedUpRibbon "
  Case msoShapeDonut: ss = "msoShapeDonut "
  Case msoShapeDoubleBracket: ss = "msoShapeDoubleBracket "
  Case msoShapeDownArrow: ss = "msoShapeDownArrow "
  Case msoShapeDownRibbon: ss = "msoShapeDownRibbon "
  Case msoShapeExplosion2: ss = "msoShapeExplosion2 "
  Case msoShapeFlowchartCard: ss = "msoShapeFlowchartCard "
  Case msoShapeFlowchartConnector: ss = "msoShapeFlowchartConnector "
  Case msoShapeFlowchartDecision: ss = "msoShapeFlowchartDecision "
  Case msoShapeFlowchartDirectAccessStorage: ss = "msoShapeFlowchartDirectAccessStorage "
  Case msoShapeFlowchartDisplay: ss = "msoShapeFlowchartDisplay "
  Case msoShapeFlowchartDocument: ss = "msoShapeFlowchartDocument "
  Case msoShapeFlowchartExtract: ss = "msoShapeFlowchartExtract "
  Case msoShapeFlowchartInternalStorage: ss = "msoShapeFlowchartInternalStorage "
  Case msoShapeFlowchartMagneticDisk: ss = "msoShapeFlowchartMagneticDisk "
  Case msoShapeFlowchartManualInput: ss = "msoShapeFlowchartManualInput "
  Case msoShapeFlowchartManualOperation: ss = "msoShapeFlowchartManualOperation "
  Case msoShapeFlowchartMerge: ss = "msoShapeFlowchartMerge "
  Case msoShapeFlowchartMultidocument: ss = "msoShapeFlowchartMultidocument "
  Case msoShapeFlowchartOffpageConnector: ss = "msoShapeFlowchartOffpageConnector "
  Case msoShapeFlowchartOr: ss = "msoShapeFlowchartOr "
  Case msoShapeFlowchartPredefinedProcess: ss = "msoShapeFlowchartPredefinedProcess "
  Case msoShapeFlowchartPreparation: ss = "msoShapeFlowchartPreparation "
  Case msoShapeFlowchartProcess: ss = "msoShapeFlowchartProcess "
  Case msoShapeFlowchartPunchedTape: ss = "msoShapeFlowchartPunchedTape "
  Case msoShapeFlowchartSequentialAccessStorage: ss = "msoShapeFlowchartSequentialAccessStorage "
  Case msoShapeFlowchartSort: ss = "msoShapeFlowchartSort "
  Case msoShapeFlowchartStoredData: ss = "msoShapeFlowchartStoredData "
  Case msoShapeFlowchartSummingJunction: ss = "msoShapeFlowchartSummingJunction "
  Case msoShapeFlowchartTerminator: ss = "msoShapeFlowchartTerminator "
  Case msoShapeFoldedCorner: ss = "msoShapeFoldedCorner "
  Case msoShapeHeart: ss = "msoShapeHeart "
  Case msoShapeHexagon: ss = "msoShapeHexagon "
  Case msoShapeHorizontalScroll: ss = "msoShapeHorizontalScroll "
  Case msoShapeIsoscelesTriangle: ss = "msoShapeIsoscelesTriangle "
  Case msoShapeLeftArrow: ss = "msoShapeLeftArrow "
  Case msoShapeLeftArrowCallout: ss = "msoShapeLeftArrowCallout "
  Case msoShapeLeftBrace: ss = "msoShapeLeftBrace "
  Case msoShapeLeftBracket: ss = "msoShapeLeftBracket "
  Case msoShapeLeftRightArrow: ss = "msoShapeLeftRightArrow "
  Case msoShapeLeftRightArrowCallout: ss = "msoShapeLeftRightArrowCallout "
  Case msoShapeLeftRightUpArrow: ss = "msoShapeLeftRightUpArrow "
  Case msoShapeLeftUpArrow: ss = "msoShapeLeftUpArrow "
  Case msoShapeLightningBolt: ss = "msoShapeLightningBolt "
  Case msoShapeLineCallout1: ss = "msoShapeLineCallout1 "
  Case msoShapeLineCallout1AccentBar: ss = "msoShapeLineCallout1AccentBar "
  Case msoShapeLineCallout1BorderandAccentBar: ss = "msoShapeLineCallout1BorderandAccentBar "
  Case msoShapeLineCallout1NoBorder: ss = "msoShapeLineCallout1NoBorder "
  Case msoShapeLineCallout2: ss = "msoShapeLineCallout2 "
  Case msoShapeLineCallout2AccentBar: ss = "msoShapeLineCallout2AccentBar "
  Case msoShapeLineCallout2BorderandAccentBar: ss = "msoShapeLineCallout2BorderandAccentBar "
  Case msoShapeLineCallout2NoBorder: ss = "msoShapeLineCallout2NoBorder "
  Case msoShapeLineCallout3: ss = "msoShapeLineCallout3 "
  Case msoShapeLineCallout3AccentBar: ss = "msoShapeLineCallout3AccentBar "
  Case msoShapeLineCallout3BorderandAccentBar: ss = "msoShapeLineCallout3BorderandAccentBar "
  Case msoShapeLineCallout3NoBorder: ss = "msoShapeLineCallout3NoBorder "
  Case msoShapeLineCallout4: ss = "msoShapeLineCallout4 "
  Case msoShapeLineCallout4AccentBar: ss = "msoShapeLineCallout4AccentBar "
  Case msoShapeLineCallout4BorderandAccentBar: ss = "msoShapeLineCallout4BorderandAccentBar "
  Case msoShapeLineCallout4NoBorder: ss = "msoShapeLineCallout4NoBorder "
  Case msoShapeMixed: ss = "msoShapeMixed "
  Case msoShapeMoon: ss = "msoShapeMoon "
  Case msoShapeNoSymbol: ss = "msoShapeNoSymbol "
  Case msoShapeNotchedRightArrow: ss = "msoShapeNotchedRightArrow "
  Case msoShapeNotPrimitive: ss = "msoShapeNotPrimitive "
  Case msoShapeOctagon: ss = "msoShapeOctagon "
  Case msoShapeOval: ss = "msoShapeOval "
  Case msoShapeOvalCallout: ss = "msoShapeOvalCallout "
  Case msoShapeParallelogram: ss = "msoShapeParallelogram "
  Case msoShapePentagon: ss = "msoShapePentagon "
  Case msoShapePlaque: ss = "msoShapePlaque "
  Case msoShapeQuadArrowCallout: ss = "msoShapeQuadArrowCallout "
  Case msoShapeRectangularCallout: ss = "msoShapeRectangularCallout "
  Case msoShapeRightArrow: ss = "msoShapeRightArrow "
  Case msoShapeRightBrace: ss = "msoShapeRightBrace "
  Case msoShapeRightTriangle: ss = "msoShapeRightTriangle "
  Case msoShapeRoundedRectangularCallout: ss = "msoShapeRoundedRectangularCallout "
  Case msoShapeStripedRightArrow: ss = "msoShapeStripedRightArrow "
  Case msoShapeTrapezoid: ss = "msoShapeTrapezoid "
  Case msoShapeUpArrowCallout: ss = "msoShapeUpArrowCallout "
  Case msoShapeUpDownArrowCallout: ss = "msoShapeUpDownArrowCallout "
  Case msoShapeUTurnArrow: ss = "msoShapeUTurnArrow "
  Case msoShapeWave: ss = "msoShapeWave "
  Case msoShape16pointStar: ss = "msoShape16pointStar "
  Case msoShape32pointStar: ss = "msoShape32pointStar "
  Case msoShape5pointStar: ss = "msoShape5pointStar "
  Case msoShapeActionButtonBackorPrevious: ss = "msoShapeActionButtonBackorPrevious "
  Case msoShapeActionButtonCustom: ss = "msoShapeActionButtonCustom "
  Case msoShapeActionButtonEnd: ss = "msoShapeActionButtonEnd "
  Case msoShapeActionButtonHelp: ss = "msoShapeActionButtonHelp "
  Case msoShapeActionButtonInformation: ss = "msoShapeActionButtonInformation "
  Case msoShapeActionButtonReturn: ss = "msoShapeActionButtonReturn "
  Case msoShapeArc: ss = "msoShapeArc "
  Case msoShapeBentArrow: ss = "msoShapeBentArrow "
  Case msoShapeBevel: ss = "msoShapeBevel "
  Case msoShapeCan: ss = "msoShapeCan "
  Case msoShapeCircularArrow: ss = "msoShapeCircularArrow "
  Case msoShapeCross: ss = "msoShapeCross "
  Case msoShapeCurvedDownArrow: ss = "msoShapeCurvedDownArrow "
  Case msoShapeCurvedLeftArrow: ss = "msoShapeCurvedLeftArrow "
  Case msoShapeCurvedUpArrow: ss = "msoShapeCurvedUpArrow "
  Case msoShapeDiamond: ss = "msoShapeDiamond "
  Case msoShapeDoubleBrace: ss = "msoShapeDoubleBrace "
  Case msoShapeDoubleWave: ss = "msoShapeDoubleWave "
  Case msoShapeDownArrowCallout: ss = "msoShapeDownArrowCallout "
  Case msoShapeExplosion1: ss = "msoShapeExplosion1 "
  Case msoShapeFlowchartAlternateProcess: ss = "msoShapeFlowchartAlternateProcess "
  Case msoShapeFlowchartCollate: ss = "msoShapeFlowchartCollate "
  Case msoShapeFlowchartData: ss = "msoShapeFlowchartData "
  Case msoShapeFlowchartDelay: ss = "msoShapeFlowchartDelay "
  Case msoShapeQuadArrow: ss = "msoShapeQuadArrow "
  Case msoShapeRectangle: ss = "msoShapeRectangle "
  Case msoShapeRegularPentagon: ss = "msoShapeRegularPentagon "
  Case msoShapeRightArrowCallout: ss = "msoShapeRightArrowCallout "
  Case msoShapeRightBracket: ss = "msoShapeRightBracket "
  Case msoShapeRoundedRectangle: ss = "msoShapeRoundedRectangle "
  Case msoShapeSmileyFace: ss = "msoShapeSmileyFace "
  Case msoShapeSun: ss = "msoShapeSun "
  Case msoShapeUpArrow: ss = "msoShapeUpArrow "
  Case msoShapeUpDownArrow: ss = "msoShapeUpDownArrow "
  Case msoShapeUpRibbon: ss = "msoShapeUpRibbon "
  Case msoShapeVerticalScroll: ss = "msoShapeVerticalScroll "
 End Select
 AutoType = ss

End Function

【70967】Re:オートシェイプの種類識別
質問  saya  - 12/1/21(土) 21:59 -

引用なし
パスワード
   AutoShapeType の間違いでした申し訳ありません。あれこれ悩んでコードをいじっているうちにvalueと思い込んでいました。
オートシュエイプの一覧を出す方法を教えていただきありがとうございます。活用させていただきます。
ただ疑問なのですが一覧表はどこのあったものでしょうか。ヘルプを探しても見つからないのですが。キーワードを何にすると出てきますか?
それからAutoShapeType=-2がmsoShapeMixedについてですが、msoShapeMixedとは何でしょうか。これもヘルプで見つからないし、グーグルで検索しても説明が見つかりませんでした。
私の探し方に問題があるのだと思いますがこういうことのリテラシー向上についてヒントはないでしょうか。

【70968】Re:オートシェイプの種類識別
発言  kanabun  - 12/1/21(土) 22:35 -

引用なし
パスワード
   ▼saya さん:
>オートシュエイプの一覧を出す方法を教えていただきありがとうございます。

>ただ疑問なのですが一覧表はどこのあったものでしょうか。ヘルプを探しても見つからないのですが。
コードの
> Select Case shp.AutoShapeType
の AutoShapeType のうえにカーソルをおいて[F1]キーを押しますと、
ヘルプが表示されます。
[Excel2010]ですと、以下のようです:
■ Shape.AutoShapeType プロパティ
指定された Shape オブジェクトまたは ShapeRange オブジェクトの図形の
種類を設定します。これらのオブジェクトは、線、フリーフォーム、または
コネクタ以外のオートシェイプである必要があります。値の取得および設定
が可能です。MsoAutoShapeType クラスの定数を使用します。

この「MsoAutoShapeType クラスの定数」にどんなものがあるか、調べるには
今度は [F2]キーを押して、オブジェクト・ブラウザを表示して、そこで調べます。
検索ボックスに「autoshapetype」とタイプし横の【検索】(双眼鏡アイコン)
ボタンを押しますと ライブラリ「Office」クラス「MsoAutoShapeType」とい
うのがありますから、これをクリックすると下のListBoxに
'MsoAutoShapeType'のメンバー
□msoShape10pointStar
□msoShape12pointStar

(以下、省略)
と出てきます。そのどれかの定数を選択すれば、一番下に
  「定数名」= 実際に使われている数値
が表示されるので、そこから実際に使われている数値が分かります。
最も、実際割り当てられている数値そのものは、重複しないID番号の
ようなもので、それを知っても利用価値はあまりないと思いますが、
「MsoAutoShapeType.msoShapeMixed」でググれば、定数一覧サイトが
ヒットします。
たとえば、以下
ht tp://include.wutils.com/com-dll/constants/constants-Office.htm

MsoAutoShapeType
enum, 139 members.
Public Enum MsoAutoShapeType
 msoShapeMixed = -2 '&HFFFFFFFE
 msoShapeRectangle = 1 '&H1
 msoShapeParallelogram = 2 '&H2
 msoShapeTrapezoid = 3 '&H3
 msoShapeDiamond = 4 '&H4
 msoShapeRoundedRectangle = 5 '&H5
 msoShapeOctagon = 6 '&H6
 msoShapeIsoscelesTriangle = 7 '&H7
 msoShapeRightTriangle = 8 '&H8
 msoShapeOval = 9 '&H9
 msoShapeHexagon = 10 '&HA
  (以下、略)


>それからAutoShapeType=-2がmsoShapeMixedについてですが、
> msoShapeMixedとは何でしょうか。これもヘルプで見つからないし、
こちらはなぜそう呼ばれてるのか、ぼくにも分かりません。画像とか、
いろんな要素のMixtureであることが多いから、それらをまとめて そう
呼んだのでしょうかねェ

【70983】Re:オートシェイプの種類識別
お礼  saya  - 12/1/23(月) 22:53 -

引用なし
パスワード
   回答ありがとうございました。これでバッチリ解決です。
オブジェクトブラウザは始めて知りました。
すごいものがあるんですね。

1930 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free