経緯
PowerPointで自動化を行うためにVBAを使っていた際、
「外部のExcelファイルを開き、その中にあるグラフの一覧を取得したい」という要望が出てきました。
そこで、PowerPoint VBAからExcelを操作して、全てのシートからグラフを収集するコードを作成してみました。
実装したVBAコード
以下が、PowerPointのVBA内で実行できるコードです。
' Excelアプリケーションを作成
Dim xlApp As Object
Dim xlWorkbook As Object
Dim xlWorksheet As Object
Dim xlChartObject As Object
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
' Excelファイルを開く(filePath にパスを指定)
Set xlWorkbook = xlApp.Workbooks.Open(filePath)
' グラフのリストを作成
Dim chartList As Collection
Set chartList = New Collection
For Each xlWorksheet In xlWorkbook.Worksheets
For Each xlChartObject In xlWorksheet.ChartObjects
chartList.Add xlChartObject
Next xlChartObject
Next xlWorksheet
' グラフのリストを表示
Dim chartNames As String
chartNames = "選択されたExcelファイルのグラフリスト:" & vbCrLf
Dim i As Integer
For i = 1 To chartList.Count
chartNames = chartNames & "グラフ " & i & ": " & chartList(i).Name & vbCrLf
Next i
MsgBox chartNames, vbInformation
コードの補足
filePath
には、グラフを取得したいExcelファイルのパスを文字列で指定してください。- コードは、すべてのワークシートをループ処理し、その中のすべてのグラフオブジェクトを収集します。
- 収集したグラフは
Collection
型のchartList
に格納され、最後にMsgBox
で一覧として表示されます。
利用シーンと活用例
このコードは以下のようなケースに有効です。
- PowerPoint上で、別ファイルのグラフ構成を一覧確認したい
- グラフの自動貼り付け処理を行う前に、グラフの存在チェックや名前の取得を行いたい
- 複数のExcelファイルからグラフ構成をまとめたい
まとめ
- PowerPoint VBAからExcelを開き、各シート内のグラフオブジェクトを取得可能
ChartObjects
を使えば、埋め込みグラフも簡単に一覧化できるCollection
に格納し、MsgBox
で名前付きで出力することで、手軽に内容を確認できる
簡易なグラフリスト取得としては十分機能します。
ご自身のプロジェクトに応じて、取得したグラフをさらに処理するコードに拡張することも可能です。
ここまでお読みいただき、ありがとうございました。参考になれば幸いです。
スクールの紹介
最後に宣伝をさせてください。
技術で未来を切り拓く―あなたの夢を現実にするプログラミングスクール
Webデザインやプログラミングで成功を目指している方々にとって、このオンラインスクールは夢を叶えるための最適な場所です。皆さんのキャリアを次の段階へと引き上げるためにデザインされたこのスクールは、一人ひとりの成功を心から願い、それを実現するための全てを提供しています。ここでは、このスクールの魅力について詳しくご紹介します。
◆圧倒的な費用対効果
このオンラインプログラミングスクールは、Web系教育において最高の費用対効果を提供しています。多くの高額スクールが存在する中で、ここではリーズナブルな価格で、質の高い教材、無限のサポート、そして実際に市場で求められるスキルの習得機会を提供しています。
◆現役フリーランスの講師陣
講師たちは全員、現役のフリーランスプロフェッショナルです。市場で活躍している講師から直接、最新のトレンドや実践的なスキルを学べるのは、このスクールの大きな特徴です。
◆柔軟な学習コース
固定のコースがなく、学習者の興味やニーズに応じて自由に学習できます。進路変更も自由で、最低契約期間は1ヶ月という柔軟性を持っています。自分のペースで、自分に合った学習が可能です。
◆無制限の添削とサポート
理解できるまで、そして満足するまで、無制限に添削と質問への回答を提供しています。進路相談や技術面以外の相談にも対応しており、全面的にサポートします。
◆社長から学べる貴重な機会
デザイナー、プログラマー、ディレクター、マーケターとして豊富な経験を持つ社長から直接学べるのも、このスクールの特別な点です。他のスクールでは得られない、貴重な機会です。
◆実績作りへの徹底的なサポート
就職、転職、フリーランスとして成功するためには、高品質な実績が必要です。生徒の作品レベルを最大限に高め、市場で求められる実績を作り上げることに力を入れています。案件を取得できない生徒には、直接案件を提供することもあります。
◆メッセージからの約束
高額な授業料を支払わせて結果を出せないスクールとは違い、物理的なサポートは提供できないかもしれませんが、継続的な努力を通じて最高の結果を出せるようにサポートします。一緒に不正なスクールを撲滅し、あなたの夢を実現しましょう。
このプログラミングスクールは、Webデザインやプログラミングでの成功を目指す方々に必要な全てを備えています。今こそ、このコミュニティに参加し、あなたのキャリアを加速させる時です。
詳しくはこちら↓