エクセルで絵を書いていて、ふと、一体どれくらいの数のオブジェクトで出来上がっているのか
数えてみたくなったのだが、実際に数えるとなると大変だ。
そこで、簡単に数えられる方法はないかと調べてみると、
ありました!非常に簡単なマクロです。
(マクロとは、エクセルやアクセス内でで動くプログラムのことです)
マクロとは?とかVBA(Visual Basic Editorの略)とは、等の講釈は省きます。
マクロを知りたいと思う方は、「EXCEL VBA 入門口座へようこそ!!」がお薦めです。
まず、マクロを書き込む画面を表示させます。
EXCEL2003では |
EXCEL2007では |
|
|
すると下記の画面が出てきます。This Workbook → 挿入 → 標準モジュール で Module1 が表示されます。
下図は、EXCEL2007のものですが、2003もほぼ同じです。 |
Module1にマクロを書き込みます |
|
|
書き込むマクロは、これだけです (下の構文をコピペしてもOKです)
Sub 図形Count ()
MsgBox ActiveSheet.Shapes.Count
End Sub
このマクロについて簡単に説明しておきます。
1行目
Sub 図形Count()はマクロの名前です。図形Countの所は好きな言葉でOKです、アルファベット、ひらがな、カタカナ、漢字が使えます。($や数字で始まるものは使えません)
Sub 好きな名前 ここまで入力して Enter を押すと この後の ()と最後の End Sub が自動的に入力されます。
マクロの基本形がこれです、頭にマクロ名と最後に、プログラムの終了を意味する End Subが絶対必要です。
Sub マクロ名()
構文
End Sub
2行目
構文のところを説明します、構文(プログラム)には決まった文法がありますが、今回は省略します。
訳が分からなくても構わないので、構文をそのまま打ち込んで見てください。
でも、せっかくですから、ちょっとだけ意味を説明しておきます。
MsgBox とは Message Box の略で、例えばエクセル終了時に「保存しますか」と聞いてくる画面がそうです。
ActiveSheetとは 今開いている Sheet を指します。
Shapes.Countは、図形をカウントしなさいという命令です。
命令文を日本語で言うと「今開いているシート内のすべての図形を数えて、メッセージボックスで表示しなさい。」となります。
Visual BasicEditor を閉じる場合は、右上の×をクリックしてください、「保存しますか」とは聞いてきません。
ここまでできたら後は、そのマクロを実行させます。
visual BasicEditor を表示させたまま実行する場合、
下図の三角形の部分をクリックします。 |
Visual BasicEditor を閉じたあとから実行する場合
開発 → マクロ → |
EXCEL2003の場合 |
|
マクロ名選択 → 実行
|
←左のマクロ実行画面と同じものがが出てきます、
後は同じです |
エクセル上に、マクロボタンを設定しておき、そのボタンを押すとマクロが実行されるようにすることもできます。マクロボタンの設定
今回レトロバスの絵で、オブジェクトの数を数えてみました。
たくさんありそうです。
結果
となりました
グループ化された図形は、1つとカウントされます。正確に数を数える場合は、
すべてのグレープ化を解除しておく必要があります。
EXCEL VBA を勉強したい方は、下記のページがお勧めです。
(私もこのサイトで勉強しました)
サイトへは、下記画像をクリックしてください。