
No.2ベストアンサー
- 回答日時:
サンプルです。
Sub Sample()
Dim shp As Object
Dim cnt As Long
For Each shp In Selection.ShapeRange
' 13:画像 11:リンク画像
If shp.Type = 13 Or shp.Type = 11 Then
cnt = cnt + 1
End If
Next
Debug.Print "画像は " & cnt & " 個です"
End Sub
No.1
- 回答日時:
こんにちは
>Selection.ShapeCountで選択した図形の数がでますが
当方の環境(Excel2019)では、カウントできませんね。
ですので、以下はマクロそのものが異なっている環境下の可能性がありますので、ご参考までに・・・
選択対象の可能性をどこまで広げて(=グラフやフォーム要素など)考えるのかにもよりますが、一般化して考えるのなら・・
1)Selection内の個々の要素をVarTypeなどでShapeのみに絞り込む
2)ShapeStyleで図形以外(画像等)を絞り込む
(ShapeStyleだけだと3D図形やSmartArtなども同じ範疇になります。)
(グループ化されているオブジェクトは、まず、グループが要素になりますので
グループ内を調べないと特定はできません。)
3)確実に図形だけを選別するなら、ActiveSheet.Picturesで存在する画像要素を
取得できますので、こちらと照合して画像であることを特定すれば良いでしょう。
※ 3)では「グループ化」されたグループ内の画像は取得できないようですので、注意が必要になります。
※ 選択される対象の可能性が限られた状態であるなら、上記のうち不要となる部分は省くことが可能と思います。
※ いきなり3)のチェックだけでカウントする方法も考えられると思います。
回答ありがとうございました。こちらの表記に誤りがありました。Selection.ShapeRange.Countの間違いでした。回答していただきましたが、大変申し訳ありませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
オブジェクトをカウントする
Excel(エクセル)
-
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
-
4
Excel VBAでセル内の画像を選択したい
Excel(エクセル)
-
5
VBAでオブジェクトが選択されているかどうかを判定する方法
Excel(エクセル)
-
6
マウスで選択した図形のみVBAで移動したい。
Visual Basic(VBA)
-
7
VBA Shapes コピーと名前
Excel(エクセル)
-
8
エクセルのマクロでSelection.Shaperangeを使用した時のエラーについて
Visual Basic(VBA)
-
9
EXCELのVBAで画像を選んだ順に貼り付ける方法
Excel(エクセル)
-
10
マクロで選択した図形の選択状態を解除するには
Excel(エクセル)
-
11
複数の画像ファイルを挿入したい
Excel(エクセル)
-
12
エクセルVBAで画像を貼り付ける座標設定方法は?
PowerPoint(パワーポイント)
-
13
特定の名前のオートシェイプの有無を知りたい(エクセルVBA)
Excel(エクセル)
-
14
Excel VBA あるセルでENTERを押すと特定のセルへ移動したい
Excel(エクセル)
-
15
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
16
エクセル 図形の寸法を取得したい
Visual Basic(VBA)
-
17
【EXCEL VBA】オートシェイプをクリックした時にそのオートシェイプの名前を取得したい
Visual Basic(VBA)
-
18
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
19
Excel(VBA)
Excel(エクセル)
-
20
指定範囲内のオートシェイプを数えるには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Illustratorのサイズを指定する...
-
word2010 SmartArtで連絡網作...
-
エクセルで図形やワードアート...
-
オートシェイプで任意のドーナ...
-
マクロで選択した図形の選択状...
-
なぜか同色を指定しているのに...
-
エクセル マクロで、選択してい...
-
Excel 図形を移動させると複写...
-
EXCELでのデータ及び図形...
-
指定範囲内で図形等を削除する...
-
螺旋状の矢印を描くには?
-
Excel組織図を横に展開する方法...
-
ベクターワークスで線を複写
-
JPEG画像をイラストレータの塗...
-
in Designで一部のページにのみ...
-
突然カーソルが手の形に…
-
jw_cadで消えない線があります...
-
JW 文字の後ろを白く着色したい
-
業務でiCAD MXを使うことになり...
-
google spread sheet で拡大表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Illustratorのサイズを指定する...
-
word2010 SmartArtで連絡網作...
-
エクセルで図形やワードアート...
-
Excel組織図を横に展開する方法...
-
Excel に貼り付けた図形が、勝...
-
指定範囲内で図形等を削除する...
-
Excel 図形を移動させると複写...
-
なぜか同色を指定しているのに...
-
Office365 のExcelでオブジェク...
-
エクセル マクロで、選択してい...
-
イラストレーターで複数の線で...
-
jwCAD 登録した図形を呼び出し...
-
パワーポイント(2016)、線を...
-
ワードで大量の図形を一括でグ...
-
イラストレーターのクリッピン...
-
オートシェイプで任意のドーナ...
-
PowerPoint2013で、図形の枠線...
-
図形の特定の色を一括置換する...
-
マウスで選択した図形のみVBAで...
-
ベクターワークスで線を複写
おすすめ情報
Fuji Lin様 回答ありがとうございます。
こちらの表記に誤りがありました。
Selection.ShapeRange.Count
でした。申し訳ありません。グループ化などはやらないので、ただ単に一つのアクティブシートで複数選択した図形の内の画像の数のみを取得したいです。