
No.4ベストアンサー
- 回答日時:
VBAでの解決方法について、ご質問者の同様のご質問
https://oshiete.goo.ne.jp/qa/12672371.html
で、Qchan1962さんがコードをお示しになっておられます。
以下はQchan1962さんのコードを修正したものです。
繰返しと若干の変更を加えて、とりあえず集計表が作成される状態にしてあります。
Sub Count_Shapes()
Dim shp As Shape
Dim i As Long
Dim adrs As String
Dim ct As Long
For i = 3 To 9
ct = -1
adrs = "A" & i
For Each shp In ActiveSheet.Shapes
On Error Resume Next
If shp.TopLeftCell.Address(0, 0) = adrs Then buf = shp.Fill.ForeColor.RGB
Err.Clear
Next shp
For Each shp In ActiveSheet.Shapes
If shp.Fill.ForeColor.RGB = buf Then ct = ct + 1
Next shp
Range(adrs).Offset(0, 2).Value = ct
MsgBox adrs & "セルのシェイプと同じ色の数は" & ct & "個です"
Next
End Sub
図形のサンプルを作成して、上記コードを実行させた結果が添付画像になります。

この回答へのお礼
お礼日時:2021/11/16 14:42
ご回答ありがとうございました。
皆様のご指導のもと、いろいろと試してみましたがうまくできませんでした。VBAの勉強を始めたばかりなので・・・
とても助かりました。
No.3
- 回答日時:
マクロで可能です。
ただしvba に詳しくないと難しいでしょう。まずNo1の方のソースをアレンジしてください。
オートシェイプには属性がありますから、
No1の方のフォー・イーチの中のイフ文を加工してください。
例
オートシェイプの形や色を変数に代入
その上で形や色を判定して、件数をカウントする
Select case 形、色
丸、ピンク:あ = あ + 1
丸、赤い色:い = い + 1
End Select
セレクト文よりはIF文の方がよいかもしれません。
シェイプの属性が何かは、マクロを録音ボタンを使って生成してみて、
どんなものがあるか参考にしたり、
ネットでシェイプ属性に何があるか調べましょう。
およそ上記で言っている事が、
理解できるようになれば、マクロは作れます。
後は集計した個数を数量の列に表示するだけですね。
<開始>ボタンを配置して、
ボタンを押したら集計結果が表示されるようにするとよいでしょう。
がんばってみてくださいね。
この回答へのお礼
お礼日時:2021/11/16 14:42
お返事が遅くなり申し訳ございません。
VBAの勉強を始めたばかりなので、いろいろと試してみましたが、
うまくいきませんでした。
しかし、いろいろと勉強になりました。
ありがとうございました。
No.1
- 回答日時:
こんにちは
>マクロやVBAでカウントできますか?
できるとは思いますけれど・・・
>名前毎に個数をカウントしたいです。
同じ名前のシェイプを作っちゃうと、後々、区別するのが面倒だと思いますけれど。
(通常は、ユニークな名前にしておく)
そんなことはどうでもいい、とおっしゃるのなら…
Const searchName = "hoge"
Count = 0
For Each shp In ActiveSheet.Shapes
If shp.Name = searchName Then Count = Count + 1
Next shp
MsgBox searchName & "の数は" & Count & "です"
のような感じで可能かと。
※ 対象はActivesheet内のシェイプとしてあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
エクセル ボタンに設定したマク...
-
複数のマクロボタンをまとめて...
-
エクセルでマクロ(Excel 4.0)...
-
エクセル マクロ名にブック名...
-
エクセルで、「いいね」のよう...
-
エクセルの、記録を終了したマ...
-
Excelマクロで、稼働中のマクロ...
-
Excelのマクロでボタンを押すと...
-
エクセルのマクロ、VBAって?
-
エクセルの表を複数枚印刷した...
-
他のBOOKにマクロを反映させな...
-
EXCELのマクロが他のパソコンで...
-
TeraTermマクロでctrl+alt+del...
-
コピーしたデータを2行ずつに貼...
-
Excelのマクロ名の並び順の法則...
-
【マクロ】マクロボタンをクリ...
-
Excelの別シートへの反映方法を...
-
シート上のオートシェイプをす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
複数のマクロボタンをまとめて...
-
エクセル ボタンに設定したマク...
-
Excelのマクロでボタンを押すと...
-
エクセルで、「いいね」のよう...
-
エクセル マクロ名にブック名...
-
エクセルでマクロ(Excel 4.0)...
-
エクセルの、記録を終了したマ...
-
LDPlayerのマクロの編集方法を...
-
(Excel VBA)シートコピー時マ...
-
Excelマクロで、稼働中のマクロ...
-
エクセルの表を複数枚印刷した...
-
エクセルで明日の日付を表示す...
-
Excelのマクロ名の並び順の法則...
-
別シートのマクロボタンをマク...
-
Excelマクロをバックグラウンド...
-
エクセルマクロで、別のブック...
-
他のBOOKにマクロを反映させな...
-
EXCELのマクロが他のパソコンで...
おすすめ情報
すみません。エクセル初心者です。なので、具体的に例をあげます。
添付のようなもので、「あ」「い」「う」・・・のような集計表を作りたいです。
一度には無理かもしれませんが、「あ」を選択して、数量が確認できる・・・でもいいです。
これを実現できるマクロを教えてください。
よろしくお願いいたします。