三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

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

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

Excelに入力したデータを画像に流し込みたい グラフ機能"図として保存"を応用する方法 画像とテキストボックスのリンク処理

Excelに入力した都道府県の一覧を画像の指定位置へ流し込み、結果を画像として出力したい、そんなお話です。

タイトル画像と操作イメージ図

画像に指定した文字を流し込む・差し込み、画像として出力する方法:
まず、Excelでグラフエリアに背景画像やテキストボックスを挿入する方法を説明し、これらの要素とセルをリンクさせることで動的に内容を変更できるようにします。
次に、VBAマクロを用いて、都道府県名と番号をループ処理で順次変更しながら、グラフエリアを画像として保存する自動化の手順を紹介します。
最後に、この方法の応用範囲や注意点、更なる改善点などを解説します。
解説動画→ https://youtu.be/MPmTub_ECmI
目次
00:00 あいさつ 1.Excel 右クリックでグラフを"図として保存"する
02:41 2.挿入 テキスト テキストボックス で セルの値を参照する方法
05:38 3.グラフにテキストボックスを追加する方法
09:47 4.テキストボックス付きのグラフを右クリックで"図として保存"する
12:03 失敗例:グラフとリンクされないテキストボックスの例
14:59 5.応用編 グラフ無しのグラフエリアを作成する 真の質問、裏ボスの登場
15:48 5.1 空白のグラフエリアを作る
16:45 5.2 グラフエリアに背景画像が挿入できます
18:53 5.3 グラフエリアにテキストボックスを挿入します
19:56 5.4 背景画像付きのグラフを右クリックで"図として保存"する
6.マクロで自動化?にチャレンジしてみた
21:38 6.1 いつものマクロ記録で記録後 オブジェクトを探る
23:00 6.2 ChartObjectは外観で中身は.Chartを見る
24:32 6.3 Dim objChart As Excel.Chart を探り、Chart.Export メソッドを発見する
28:54 6.4 ループ処理で連続実行してみた マクロとベースグラフの作成手順
29:41 ①空白のグラフエリアを追加して、背景画像としてベース画像の追加
31:26 ②C1とリンクしたテキストボックス ③D1とリンクしたテキストボックス を設置
32:49 VBAコードの説明と実行
34:48 7.おわりの挨拶 と データを変更して再実行をテスト

1.Excel 右クリックでグラフを"図として保存"する

若手社員様「派遣のオジサンへ、Excel 右クリックでグラフを"図として保存"できるの知ってる?」

おっさん「はい、全ての種類は知らないけど、やったことありますよ」

若手社員様「全ての種類とか、いいから、1つ、やってみて」


2.挿入 テキスト テキストボックス で セルの値を参照する方法
02:41 https://www.youtube.com/watch?v=MPmTub_ECmI&t=161
若手社員様「派遣のオジサンへ、挿入 テキスト テキストボックス で セルの値を参照する方法を知ってる?」

おっさん「はい、やったことありますよ」

若手社員様「いいから、1つ、やってみて」


3.グラフにテキストボックスを追加する方法
05:38 https://www.youtube.com/watch?v=MPmTub_ECmI&t=338
若手社員様「次は、合わせ技。
おっちゃんは、グラフ内にテキストボックスを追加してセルの値を参照する方法を知ってますか?

おっさん「はい、知ってますよ。タイトルとかと一緒ですよね」

若手社員様「タイトルとか、いいから、1つ、やってみて」

ポイントは、
グラフを選択してから、
挿入 テキストボックスで、
グラフ内にテキストボックスがリンクされた状態で、画像になります。
※失敗例は、テキストボックスを単に重ねても、うまく画像化されない事かなぁ。

Excel グラフにテキストや図形を合わせたのに印刷されない件 印刷位置がずれる件 エクセル 初心者 操作方法
Excel グラフにテキストや図形を合わせたのに印刷されない件 印刷位置がずれる件 エクセル 初心者 操作方法 - YouTube
↑暇なとき、見てください。

4.テキストボックス付きのグラフを右クリックで"図として保存"する
09:47 https://www.youtube.com/watch?v=MPmTub_ECmI&t=587
右クリックでグラフを"図として保存"する
保存後、確認する

って、感じの単体テストを行ってみました。


5.応用編 グラフ無しのグラフエリアを作成する 真の質問、裏ボスの登場
14:59 https://www.youtube.com/watch?v=MPmTub_ECmI&t=899
ここまでの基本技・操作方法は、
みなさんの方が良く知ってて情弱の私(おっさん)よりも強いと思います。

次は、真の質問、裏ボスの登場です。
質問内容:

>01 北海道、02 青森、03 秋田… というように
>①番号②都道府県名の2項目のエクセルのデータを画像に自動反映?
>入力?されるようにするにはどうしたらいいでしょうか?

5.1 空白のグラフエリアを作る

通常、範囲を選択してからグラフを作成するのですが、
何も選択しないで、グラフの作成ボタンを押します。

みなさんのような上級者が行わない、操作ミスをわざと行います。


5.2 グラフエリアに背景画像が挿入できます

なんとなく、察しの良い視聴者さんは気が付かれたと思いますが
※「君のような勘のいいガキは嫌いだよ」の方が、一部の人には良いかも、相手を見てセリフを使ってね

①グラフエリアをダブルクリックしてグラフエリアの書式を表示する
②塗りつぶし ◎図またはテクスチャ を選択する
③画像ソース 挿入する
④ファイルから

で、グラフエリアに背景画像を表示できます。

5.3 グラフエリアにテキストボックスを挿入します

単体テストで行った、
①グラフエリアにテキストボックスを挿入して、
②セルとリンクします

5.4 背景画像付きのグラフを右クリックで"図として保存"する

あとは、"図として保存"して、内容を確認します。

以上、ここまでたどり着けばOKかなぁ?
おっさんのKen3は
※「君のような勘のいいガキは嫌いだよ」
って話でした、

じゃなかった、ここから、自動化しないとなぁ・・・

6.マクロで自動化?にチャレンジしてみた

6.1 いつものマクロ記録で記録後 オブジェクトを探る
21:38 https://www.youtube.com/watch?v=MPmTub_ECmI&t=1298
操作を記録する

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

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

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

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

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

6.3 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"

※ゴメン、初見攻略のフリしてたけど、実は数年前から知ってた。
私も三流だけど少しは討伐経験のある、おっさん冒険者だった

視聴者心の声:「うん、知ってた。
僕は大人だから知らないふりしてた、初見っぽくやってるなぁコイツって思ってた」

6.4 ループ処理で連続実行してみた
28:54 https://www.youtube.com/watch?v=MPmTub_ECmI&t=1734

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


46 鹿児島県
47 沖縄県

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

上記をグラフにリンクさせて事前準備後に、
下記のマクロを実行する。
32:49 https://www.youtube.com/watch?v=MPmTub_ECmI&t=1969
↑簡単なコード説明↓を軽く説明する

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








7.おわりの挨拶

グラフエリアを強引に使っているので、
画像の解像度など、
課題や使っていくと問題点があります。

一つのやり方、強引な応用技として頭のスミに。

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

YouTubeに載せるタイトル案:
1. 【Excel自動化】グラフを画像化して大量の都道府県名入り画像を一瞬で作成!
2. VBAで楽々自動化!Excelグラフを都道府県名入り画像に変換する方法
3. 【裏技】Excelグラフを応用!都道府県名と番号の画像を自動生成する方法

類似単語ペア:

  • Excel,エクセル
  • VBA,マクロ
  • グラフ,チャート
  • 画像化,画像出力
  • 自動化,自動処理
  • ループ処理,繰り返し処理
  • ChartObject,グラフオブジェクト
  • Chart.Export,グラフエクスポート
  • テキストボックス,テキストエリア

ランダムな占い

再生リスト:[占い 今日のラッキーカラー]をショート動画

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



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