三流君のソースコード置き場

ブログにソースコードをアップして、ブログの検索機能で利用してます(利用予定です)

よく検索されるキーワード: [VBA]/ [VBS]/ [CreateObject]/ [Excel]/ [ADO]


Excel VBA Chart.Exportを使用した画像出力

グラフオブジェクトの画像出力を探る

設置方法は、
https://youtu.be/MPmTub_ECmI?si=m-SX4A4oouNsy_vz&t=1734
↑を2倍速で見てください。

いつものマクロ記録で記録後 オブジェクトを探る
操作を記録する

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("E2").Select
    ActiveSheet.ChartObjects("グラフ 1").Activate
    ActiveSheet.ChartObjects("グラフ 1").Activate
    Range("C9").Select
End Sub

と、記録される。
※残念、"図として保存"は、記録されないのか・・・

でも、
ActiveSheet.ChartObjectsがわかるので、

いつもの確認
? ActiveSheet.ChartObjects.count
1
? ActiveSheet.ChartObjects(1).name
Chart 3
? typename(ActiveSheet.ChartObjects(1))
ChartObject

ChartObjectは外観で中身は.Chartを見る

Dim objChart As ChartObject
と書いてから、
F1のヘルプかな

>ChartObject オブジェクトは、 Chart オブジェクトのコンテナーとして機能します。

Worksheets("Sheet1").ChartObjects(1).Chart
などでアクセスする

Dim objChart As Excel.Chart を探り、
Chart.Export メソッドを発見する

Dim objChart As Excel.Chart を探ると
https://learn.microsoft.com/ja-jp/office/vba/api/excel.chart(object)
より

Chart.CopyPicture おっコレかな?と思ったが、これは、クリップボードだった。※将来のメモ

Chart.Export メソッド (Excel)
https://learn.microsoft.com/ja-jp/office/vba/api/excel.chart.export

式。エクスポート (FileName、 FilterName、 Interactive)


次の使用例は、グラフ 1 を GIF ファイルとしてエクスポートします。
Worksheets("Sheet1").ChartObjects(1) _
.Chart. Export _
FileName:="current_sales.gif", FilterName:="GIF"

ループ処理で連続実行してみた

A列 B列 に都道府県のデータ
1 北海道
2 青森県
3 岩手県


46 鹿児島県
47 沖縄県

①空白のグラフエリアを追加して、背景画像としてベース画像の追加
②C1とリンクしたテキストボックス 番号セット用 を設置
③D1とリンクしたテキストボックス 都道府県名セット用 を設置
上記をグラフにリンクさせて事前準備して、

下記のマクロを実行する。

Sub test240622_グラフからJPGを作成()

    Dim y As Long
    Dim strFNAME As String
    
    For y = 1 To 47   '47都道府県のループ
        Range("C1") = Cells(y, "A")
        Range("D1") = Cells(y, "B")
        
        'ファイル名を作る ブックの位置\A列+".jpg"
        strFNAME = ThisWorkbook.Path & "\" & Cells(y, "A") & ".jpg"
        
        '単純にChart.Export で 出力する
        ActiveSheet.ChartObjects(1).Chart.Export _
            Filename:=strFNAME, FilterName:="JPG"
    Next

End Sub

仕組みは、
空のグラフを作成後、背景に画像をセットして、
グラフ内のテキストボックスとセルをリンクする

マクロで、
セルに都道府県名を代入すると、
グラフ内のテキストボックスにも表示される(リンクされているので)

グラフをChart.ExportでJPGファイルへ出力している
そんな仕組みです。

設置方法は、
https://youtu.be/MPmTub_ECmI?si=m-SX4A4oouNsy_vz&t=1734
↑を2倍速で見てください。

この動画は、1つの画像にデータを差し込み・セットして、出力です

グラフエリアを強引に使っているので、
画像の解像度など、
課題や使っていくと問題点があります。
※暇なとき、動画を頭
https://youtu.be/MPmTub_ECmI
から見てもらえると嬉しいです。

開発のヒントとなれば幸いです。

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。
・[Excel/Access VBA]の解説
・[ASP(Active Server Pages)]の解説。
・[元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
・[プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
三流君を踏み台にする
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。

三流解説動画の再生リスト
https://www.youtube.com/user/ken3video/playlists

[連絡先はココのフォームから]←連絡先の入力フォームです、気軽に書いてください
本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)