2017.08.10皆様こんにちは、ノグチです。エクセルVBAで請求書や発注書などを作っているとき、会社のロゴや印章を表示させたいな...なんてことありますよね。ボタンやオートシェイプをVBAで表示/非表示にしたり、表示する場所を指定できたら...ということもありますよね。図形をシートに沢山、上下の位置もそろえて表示したい...でも手で一つ一つの図形の位置を調整するのも大変...なんてこともあるかもしれません。今回は、そんなエクセルの画像をVBAで操作するための第一歩として、Shapeオブジェクトととは何か?また、Shapeオブジェクトとして操作できるモノの種類を調べた結果をご紹介します!目次Shapeオブジェクトとは?Shapeオブジェクトで操作できる図形の種類を調べてみるShapeオブジェクトの情報を取得するプロパティシート上のすべてのShapeオブジェクトの情報を取得するまとめ連載目次:エクセルVBAで図形を操作するShapeオブジェクトの使い方Shapeオブジェクトとは?エクセルVBAでシート上の図形を操作する時に使用するのが、Shapeオブジェクトです。Shapeオブジェクトで図形などの操作や情報の取得をするには、このように記述します。Shapeオブジェクト.メソッドまたはプロパティしかし、一言で図形と言っても、具体的にどんなモノを指すのでしょうか。論より証拠ということで、調べてみました。Shapeオブジェクトで操作できる図形の種類を調べてみるShapeオブジェクトで操作できる図形その他を調べるために、エクセルのシートにオートシェイプやアイコン、蛍光ペンで描画したものや画像、グラフなどを張り付けたものを用意しました。Shapeオブジェクトで図形の情報が取得できる=Shapeオブジェクトで操作できるモノ、ということで、この色々な図形などの情報を、Shapeオブジェクトを使って取得してみましょう。Shapeオブジェクトの情報を取得するプロパティさて、画像や図形の情報を、Debug.printを使ってイミディエイトウインドウに表示してみましょう。Debug.printについてはこちらの記事で説明されていますので、併せてご覧ください。今回はエクセルVBAでイミディエイトウィンドウを使う方法の超基本として、初心者のうちからぜひとも知っておいて欲しいDebug.Printの使い方です。一行に複数の出力をする方法も解説していますよ。tonari-it.com2017.03.30先にお見せした図形や画像の説明には、種類(オートシェイプやグラフなど)を記入してあります。今回は、Shapeオブジェクトのプロパティを使って、この説明に記入してあるテキストを取得してみようというわけです。取得できれば、その画像や図形はShapeオブジェクトで操作できるということですね。今回使用するプロパティはこちらの2つです。Shapeオブジェクト.Nameこのプロパティは、Shapeオブジェクトの名前を取得するプロパティです。この名前というのは、人間がつけたものではなく、エクセルが内部で自動的につけてくれる名前を指します。お次はAlternativeTextプロパティ。Shapeオブジェクト.AlternativeTextこちらは、Shapeオブジェクトの説明文を取得するプロパティです。これらのプロパティでShapeオブジェクトの説明を取得して、イミディエイトウインドウに表示してみましょう。シート上のすべてのShapeオブジェクトの情報を取得するさて、シートに張り付けた図形などのうち、Shapeオブジェクトで操作できるものの情報を取得するために、下記コードを用意してみました。Sub「シートにある図形などのうち、Shapeオブジェクトの情報をイミディエイトウインドウに表示する」というコードです。このコードを実行すると、イミディエイトウインドウはこうなります。ボタンイミディエイトウインドウにシート上にある全ての図形などの「名前」と「説明」が表示されていますね。先にお見せしたシートに張り付けた図形その他は全てShapeオブジェクトで操作ができる、ということになります。なんだか面白味のない結果になってしまいましたが、グラフや蛍光ペンで描画したものもShapeオブジェクトで操作できるのは私にとっても発見でした。まとめ今回は、エクセルVBAで図形などを操作するための第一歩として、ShapeオブジェクトとShapeオブジェクトで操作ができるモノの一例をお見せしました。大体の帳票やエクセルツールで使うような図形やグラフなら、このShapeオブジェクトで操作ができそうですね。「これってShapeオブジェクトで操作できるものなのかな?」というものがあれば、今回ご紹介したコードを実行してみると、Shapeオブジェクトなのかどうなのかを確認することができますよ。次回は同じくこのShapeオブジェクトを使って、フォルダに格納している画像ファイルをシートに追加する方法をご紹介していきます。エクセルVBAで画像ファイルをシートに追加するAddPictureメソッドの使い方ShapesオブジェクトのAddPictureメソッドで、エクセルのシート上に画像を追加する方法をご紹介しています。画像のサイズや位置が決まっている場合、手動で調整するのは手間なもの。エクセルVBAで位置やサイズを指定しておけば、面倒な調整が不要になりますよ。画像、オートシェイプ、グラフ、テキストボックス、ワードアート、ボタン...エクセルでは様々なものをシートに配置できますが、これらのアイテムは全てShapeオブジェクトです。これら、Shapeオブジェクトの挿入や配置など、自在に操作する方法をお伝えしていきます。投稿者プロフィールノグチフリーランスPG・SE元製造子会社SE。業務システム保守・導入両方やった経験をお伝えすることで、少しでもシステムや手作業に悩まされる人が減ればいいなぁと日々夢見ております。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。RowSourceプロパティとAddItemメソッドユーザーフォームを作って使ってみることを目標に、連載記事でフォームやコントロールのプロパティやメソッド、イベントをご紹介しています。今回は、コンボボックスに値をセットする方法を、コンボボックスのRowSourceプロパティを使う方法と、AddItemメソッドを使う方法の2通りご紹介しています。【初心者向けエクセルVBA】ワークシート・セルを選択する方法の色々について初心者向けエクセルVBAシリーズ、請求データから請求書を作成する方法をお伝えしています。今回は、エクセルVBAでセル・シートをアクティブにするためのSelectメソッドとActivateメソッドです。2018.02.24Excel・VBA活用術エクセルVBAでマクロの実行完了と処理時間をチャットワークに通知する方法エクセルVBAでHTTP通信を行う方法についてあれこれお伝えしています。今回は一つ便利な使用例として、マクロの実行完了についてチャットワークへの通知してお知らせする方法についてお伝えします。【エクセルVBA】ユーザーフォームを作ってみよう!VBEでフォームを挿入する方法エクセルのユーザーフォームを作成して動かすことを目標に、フォームの挿入やプロパティでの設定、VBAでの動かし方を順を追ってご紹介していく連載です。初回の今回は、VBEでユーザーフォームを挿入して、基本的なプロパティの設定方法をご紹介していきます。【エクセルVBA入門】エラーが発生したときに分岐処理を追加する方法エクセルVBAでバラバラの経費精算書ファイルのデータを収集するマクロの作り方をお伝えしています。今回はエクセルVBAでエラーが発生したときにメッセージを表示する処理を追加する方法をお伝えしていきます。Each~Next文でフォルダ内のブック全てを開く方法エクセルVBAを使ってバラバラの経費精算書のデータを集約するシリーズです。Each~Next文でフォルダ内の複数のワークブックの全てを順番に参照して処理していく方法についてお伝えします。PMshimさまこんにちは!ご指摘ありがとうございます。記事を修正させていただきました。今後とも当ブログをよろしくお願い致します。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント108セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント108セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。RowSourceプロパティとAddItemメソッド2020.01.21GASでGoogleスライドのSlideオブジェクトの概要とその取得方法2020.01.162020.01.24Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。