<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>写真・図  |  独学エクセル塾</title>
	<atom:link href="https://dokugakuexcel.com/category/%E3%83%9E%E3%82%AF%E3%83%ADvba/%E5%86%99%E7%9C%9F%E3%83%BB%E5%9B%B3/feed/" rel="self" type="application/rss+xml" />
	<link>https://dokugakuexcel.com</link>
	<description>初心者から中級者までシステム・関数・VBAを伝授します</description>
	<lastBuildDate>Sun, 09 Apr 2023 19:24:39 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://dokugakuexcel.com/wp-content/uploads/2021/06/cropped-cropped-image-66-1-32x32.jpg</url>
	<title>写真・図  |  独学エクセル塾</title>
	<link>https://dokugakuexcel.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">194648711</site>	<item>
		<title>【マクロVBA】図形の枠の色の設定・変更方法！ Line.ForeColorとRGB等の使い方</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%9b%b3%e5%bd%a2%e3%81%ae%e6%9e%a0%e3%81%ae%e8%89%b2%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%83%bb%e5%a4%89%e6%9b%b4%e6%96%b9%e6%b3%95%ef%bc%81-line-forecolor/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2580%2591%25e5%259b%25b3%25e5%25bd%25a2%25e3%2581%25ae%25e6%259e%25a0%25e3%2581%25ae%25e8%2589%25b2%25e3%2581%25ae%25e8%25a8%25ad%25e5%25ae%259a%25e3%2583%25bb%25e5%25a4%2589%25e6%259b%25b4%25e6%2596%25b9%25e6%25b3%2595%25ef%25bc%2581-line-forecolor</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%9b%b3%e5%bd%a2%e3%81%ae%e6%9e%a0%e3%81%ae%e8%89%b2%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%83%bb%e5%a4%89%e6%9b%b4%e6%96%b9%e6%b3%95%ef%bc%81-line-forecolor/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Wed, 05 Oct 2022 14:41:02 +0000</pubDate>
				<category><![CDATA[写真・図]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[色]]></category>
		<category><![CDATA[RGB]]></category>
		<category><![CDATA[SchemeColor]]></category>
		<category><![CDATA[ObjectThemeColor]]></category>
		<category><![CDATA[図形]]></category>
		<category><![CDATA[枠]]></category>
		<category><![CDATA[Line.ForeColor]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3626</guid>

					<description><![CDATA[エクセルにはさまざまな図形を挿入することができます。さらに図を塗りつぶしたり、枠の色を変更したりなど様々な機能が存在します。 この機能はマクロVBAでも設定・変更が可能です。 今回は図形の枠に色を付ける方法について紹介し [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>エクセルにはさまざまな図形を挿入することができます。<br>さらに図を塗りつぶしたり、枠の色を変更したりなど様々な機能が存在します。</p>



<p>この機能はマクロVBAでも設定・変更が可能です。</p>



<p>今回は<strong><span class="marker-under">図形の枠に色を付ける方法について紹介</span></strong>しています。<br>様々な方法を紹介していますので是非参考にしてみてください。</p>



<p>　</p>



<p>図形の塗りつぶしについてはこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%9b%b3%e5%bd%a2%e3%81%ae%e5%a1%97%e3%82%8a%e3%81%a4%e3%81%b6%e3%81%97%e3%83%bb%e8%89%b2%e3%81%ae%e8%a8%ad%e5%ae%9a%e6%96%b9%e6%b3%95%ef%bc%81-fill-fo/">【マクロVBA】図形の塗りつぶし・色の設定方法！ Fill.ForeColorとRGB等の使い方 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>それでは見ていきましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">&#x2b1b;︎忙しい人向けのコピペ用プログラム</a></li><li><a href="#toc2" tabindex="0">&#x2b1b;︎構文</a></li><li><a href="#toc3" tabindex="0">&#x2b1b;︎図の枠に色を付けるをする</a><ol><li><a href="#toc4" tabindex="0">①RGBで図形の枠に色を付ける方法</a></li><li><a href="#toc5" tabindex="0">②SchemeColorで図形の枠に色を付ける方法</a></li><li><a href="#toc6" tabindex="0">③ObjectThemeColorで図形の枠に色を付ける方法</a></li></ol></li><li><a href="#toc7" tabindex="0">&#x2b1b;︎オススメの図の枠に色を付ける方法</a></li><li><a href="#toc8" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc9" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">&#x2b1b;︎忙しい人向けのコピペ用プログラム</span></h2>



<p></p>



<pre class="wp-block-verse">Sub 変数を応用して図の枠に色をRGBでつける()
Dim Target, <span class="bold-red">Red</span> As Long, <span class="bold-green">Green</span> As Long, <span class="bold-blue">Blue</span> As Long
<span class="bold-red">Red</span> = 115 '任意のRの数値を入力
<span class="bold-green">Green </span>= 55 '任意のGの数値を入力
<span class="bold-blue">Blue</span> = 100 '任意のBの数値を入力
Target = Selection.Name
ActiveSheet.Shapes(Target).Line.ForeColor.RGB = RGB(<span class="bold-red">Red</span>, <span class="bold-green">Green</span>, <span class="bold-blue">Blue</span>)
End Sub</pre>



<p></p>



<h2 class="wp-block-heading"><span id="toc2">&#x2b1b;︎構文</span></h2>



<p>今回は３パターン紹介しています。<br>使用方法は後ほど紹介しています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px">①RGBで図形の枠に色を付ける方法<br></span></strong>Activesheet.Shapes (“ここに図形の名前”).Line.ForeColor.RGB = RGB(<span class="bold-red">Rの数値</span>,<span class="bold-green">Gの数値</span>,<span class="bold-blue">Bの数値</span>)</p></blockquote>



<p>　</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px">②SchemeColorで図形の枠に色を付ける方法<br></span></strong>Activesheet.Shapes (“ここに図形の名前”).Line.ForeColor.SchemeColor = <span class="bold-red">ここに1から80の数値</span></p></blockquote>



<p>　</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px">③ObjectThemeColorで図形の枠に色を付ける方法<br></span></strong>Activesheet.Shapes (“ここに図形の名前”).Line.ForeColor.ObjectThemeColor =<span class="bold-red">テーマの配色の名前または値</span></p></blockquote>



<p>　<br>※配色については下記表を参照してください。</p>



<p>　</p>



<figure class="wp-block-table"><table><thead><tr><th>名前</th><th>値</th><th>説明</th></tr></thead><tbody><tr><td>msoThemeColorMixed</td><td>-2</td><td>テーマの色の組み合わせを指定します。</td></tr><tr><td>msoNotThemeColor</td><td>0</td><td>テーマの色を指定しません。</td></tr><tr><td>msoThemeColorDark1</td><td>1</td><td>濃色 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorLight1</td><td>2</td><td>淡色 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorDark2</td><td>3</td><td>濃色 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorLight2</td><td>4</td><td>淡色 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent1</td><td>5</td><td>アクセント 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent2</td><td>6</td><td>アクセント 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent3</td><td>7</td><td>アクセント 3 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent4</td><td>8</td><td>アクセント 4 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent5</td><td>9</td><td>アクセント 5 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent6</td><td>10</td><td>アクセント 6 テーマの色を指定します。</td></tr><tr><td>msoThemeColorHyperlink</td><td>11</td><td>ハイパーリンクのテーマの色を指定します。</td></tr><tr><td>msoThemeColorFollowedHyperlink</td><td>12</td><td>クリックされたハイパーリンクのテーマの色を指定します。</td></tr><tr><td>msoThemeColorText1</td><td>13</td><td>テキスト 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorBackground1</td><td>14</td><td>背景 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorText2</td><td>15</td><td>テキスト 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorBackground2</td><td>16</td><td>背景 2 テーマの色を指定します。</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc3">&#x2b1b;︎図の枠に色を付けるをする</span></h2>



<p>先程は３つの構文を紹介しました。<br>それでは実際にそれぞれの使用方法を紹介します。</p>



<h3 class="wp-block-heading"><span id="toc4">①RGBで図形の枠に色を付ける方法</span></h3>



<p>まずは<strong><span class="marker-under">RGBで図形の枠に色を付ける方法</span></strong>について見ていきましょう。<br>RGBとは「<span class="bold-red">RED:赤</span>」「<span class="bold-green">Green:緑</span>」「<span class="bold-blue">Blue:青</span>」の原色を意味しており、<br>この3色を混ぜて色を指定します。</p>



<p>各数値は<strong><span class="marker-under-red">「0から255」で指定</span></strong>します。<br>では構文を再度確認しましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><span class="fz-20px"><strong>Activesheet.Shapes (“ここに図形の名前”).Line.ForeColor.RGB = RGB(<span class="bold-red">Rの数値</span>,<span class="bold-green">Gの数値</span>,<span class="bold-blue">Bの数値</span>)</strong></span></p></blockquote>



<p>Activesheet.Shapesの後に図形の名前を入力します。<br><strong><span class="marker-under">図の名前は図を選択した際に左上の「名前のボックス」から確認</span></strong>することができます。</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="215" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-19-1024x215.png" alt="" class="wp-image-3628" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-19-1024x215.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-19-300x63.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-19-768x161.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-19.png 1118w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>「変数= Selection.Name」で選択している図の名前を変数に格納して活用することも可能です。</p>



<p>一方、RGBの方はRGB(<span class="bold-red">赤の要素</span>,<span class="bold-green">緑の要素</span>,<span class="bold-blue">青の要素</span>)のように指示します。</p>



<p>ちなみに各要素の数値が大きければ各原色は濃くなります。<br>一例を紹介すると下記の通りです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>白:RGB(0,0,0)<br>黒:RGB(255,255,255)<br>赤:RGB(255,0,0)<br>黄色:RGB(255,255,0)<br>青:RGB(0,0,255)</p></blockquote>



<p>では実際にプログラムを作成してみましょう。<br>見本として下図のシートを用意しました。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-20.png" alt="" class="wp-image-3629" width="489" height="218" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-20.png 567w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-20-300x134.png 300w" sizes="(max-width: 489px) 100vw, 489px" /></figure>



<p>今回は見本で「<span class="bold-blue">見本図</span>」という名前をつけた図を用意しました。<br>こちらの図の枠に色を付けるてみたいと思います。</p>



<p>例で赤色の枠になるように色を付けてみましょう。<br>プログラムはこのようになります。</p>



<pre class="wp-block-verse">Sub 図の枠の色をRGBでつける()
ActiveSheet.Shapes("<span class="bold-blue">見本図</span>").Line.ForeColor.RGB = RGB(<span class="bold-red">255</span>,<span class="bold-green"> 0</span>, <span class="bold-blue">0</span>)
End Sub</pre>



<p>それでは実行してみましょう。<br>結果はこのようになりました。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-21.png" alt="" class="wp-image-3630" width="622" height="184" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-21.png 744w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-21-300x89.png 300w" sizes="(max-width: 622px) 100vw, 622px" /></figure>



<p>見本の図の枠の色を赤くすることができました。</p>



<p><strong><span class="marker-under">選択している図の色を変更したい場合</span></strong>はこちらです。</p>



<pre class="wp-block-verse">Sub 図の枠の色をRGBでつける()
Dim Target As String
Target = Selection.Name
ActiveSheet.Shapes(Target).Line.ForeColor.RGB = RGB(<span class="bold-red">255</span>, <span class="bold-green">0</span>,<span class="bold-blue"> 0</span>)
End Sub</pre>



<h3 class="wp-block-heading"><span id="toc5">②SchemeColorで図形の枠に色を付ける方法</span></h3>



<p>次に<strong><span class="marker-under">「SchemeColor」で図形の枠に色を付ける方法</span></strong>を見ていきましょう。</p>



<p>では再度、構文を確認したいと思います。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px">Activesheet.Shapes (“ここに図形の名前”).Line.ForeColor.SchemeColor = <span class="bold-red">ここに1から80の数値</span></span></strong></p></blockquote>



<p>こちらの方法は「ForeColor.SchemeColor」で枠に色を付けるを宣言し、「＝」の後に<br>「<span class="bold-red">0から80</span>」の数値を指定します。</p>



<p>では見本で「<span class="bold-red">6</span>」で実行してみましょう。</p>



<p>今回も下図の「見本図」の色を変えたいと思います。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="567" height="253" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-22.png" alt="" class="wp-image-3631" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-22.png 567w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-22-300x134.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></figure>



<p>プログラムはこちらです。</p>



<pre class="wp-block-verse">Sub 図の枠の色をSchemeColorでつける()
ActiveSheet.Shapes("見本図").Line.ForeColor.SchemeColor =<span class="bold-red"> 6</span>
End Sub</pre>



<p>それでは実行してみましょう。<br>結果はこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="753" height="226" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-23.png" alt="" class="wp-image-3632" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-23.png 753w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-23-300x90.png 300w" sizes="(max-width: 753px) 100vw, 753px" /></figure>



<p>「見本図」の枠の色が変わりました。</p>



<p>では「SchemeColor」の1から80の色はどのようなものか<br>下図の一覧で確認してみましょう。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-24.png" alt="" class="wp-image-3633" width="631" height="442" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-24.png 982w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-24-300x210.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-24-768x539.png 768w" sizes="(max-width: 631px) 100vw, 631px" /></figure>



<p>一応確認用の図を表示させるプログラムを載せています。</p>



<pre class="wp-block-verse">Sub SchemeColorの色一覧()

Dim CycleR As Long, CycleC As Long, No As Long
Dim TargetLeft, TargetTop, TargetWidth, TargetHeight

No = 1
For CycleC = 1 To 10 Step 3
　For CycleR = 1 To 20 Step 1
　　TargetLeft = Cells(CycleR, CycleC).Left
　　TargetTop = Cells(CycleR, CycleC).Top
　　TargetWidth = Cells(CycleR, CycleC).Width
　　TargetHeight = Cells(CycleR, CycleC).Height
　　With ActiveSheet.Shapes.AddShape(msoShapeRectangle, TargetLeft, TargetTop, TargetWidth, TargetHeight)
　　.Line.ForeColor.SchemeColor = No
　　End With
　　Cells(CycleR, CycleC + 1) = ":" &amp; No
　　No = No + 1
　Next CycleR
Next CycleC

End Sub</pre>



<p><strong><span class="marker-under">選択している図の色を変更したい場合</span></strong>はこちらです。</p>



<pre class="wp-block-verse">Sub 図の枠の色をSchemeColorでつける()
Dim Target As String
Target = Selection.Name
ActiveSheet.Shapes(Target).Line.ForeColor.SchemeColor = <strong><span class="bold-red">10</span></strong>
End Sub</pre>



<h3 class="wp-block-heading"><span id="toc6">③ObjectThemeColorで図形の枠に色を付ける方法</span></h3>



<p>こちらは<strong><span class="marker-under">設定しているテーマを活用した貼り付け方法</span></strong>になります。<br>テーマとは色を塗りつぶす際の初めに表示されるデフォルトの色になります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="234" height="356" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-25.png" alt="" class="wp-image-3634" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-25.png 234w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-25-197x300.png 197w" sizes="(max-width: 234px) 100vw, 234px" /></figure>



<p>つまり、こちらの方法で枠に色を付けた場合、<strong><span class="marker-under-red">「ページレイアウト」</span></strong>の<strong><span class="marker-under-red">「配色」</span></strong>の設定を変えると、その配色に合わせて色が変化します。<br>テーマに沿った枠の色を付けたい場合に使えそうですね。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1004" height="276" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-26.png" alt="" class="wp-image-3635" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-26.png 1004w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-26-300x82.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-26-768x211.png 768w" sizes="(max-width: 1004px) 100vw, 1004px" /></figure>



<p>では構文を見てみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px">Activesheet.Shapes (“ここに図形の名前”).Line.ForeColor.ObjectThemeColor =<span class="fz-20px"><strong> <span class="bold-red">テーマの配色の名前または値</span></strong></span></span></strong></p></blockquote>



<p>ここでの<strong><span class="marker-under">「テーマの配色」は「名前」または「値」が当てはまります。</span></strong><br>一覧に関しては下記の表をご参照ください。</p>



<p>　</p>



<figure class="wp-block-table"><table><thead><tr><th>名前</th><th>値</th><th>説明</th></tr></thead><tbody><tr><td>msoThemeColorMixed</td><td>-2</td><td>テーマの色の組み合わせを指定します。</td></tr><tr><td>msoNotThemeColor</td><td>0</td><td>テーマの色を指定しません。</td></tr><tr><td>msoThemeColorDark1</td><td>1</td><td>濃色 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorLight1</td><td>2</td><td>淡色 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorDark2</td><td>3</td><td>濃色 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorLight2</td><td>4</td><td>淡色 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent1</td><td>5</td><td>アクセント 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent2</td><td>6</td><td>アクセント 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent3</td><td>7</td><td>アクセント 3 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent4</td><td>8</td><td>アクセント 4 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent5</td><td>9</td><td>アクセント 5 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent6</td><td>10</td><td>アクセント 6 テーマの色を指定します。</td></tr><tr><td>msoThemeColorHyperlink</td><td>11</td><td>ハイパーリンクのテーマの色を指定します。</td></tr><tr><td>msoThemeColorFollowedHyperlink</td><td>12</td><td>クリックされたハイパーリンクのテーマの色を指定します。</td></tr><tr><td>msoThemeColorText1</td><td>13</td><td>テキスト 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorBackground1</td><td>14</td><td>背景 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorText2</td><td>15</td><td>テキスト 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorBackground2</td><td>16</td><td>背景 2 テーマの色を指定します。</td></tr></tbody></table></figure>



<p>ちなみにテーマと値を比較すると下図のようになります。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-27.png" alt="" class="wp-image-3636" width="373" height="164" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-27.png 600w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-27-300x132.png 300w" sizes="(max-width: 373px) 100vw, 373px" /></figure>



<p>では実際に図の枠に色を付けてみたいと思います。<br>今回も下図の「見本図」の色を変えたいと思います。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-28.png" alt="" class="wp-image-3637" width="481" height="213" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-28.png 567w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-28-300x133.png 300w" sizes="(max-width: 481px) 100vw, 481px" /></figure>



<p>プログラムはこのようになります。</p>



<pre class="wp-block-verse">Sub 図の枠の色をObjectThemeColorでつける()<br>ActiveSheet.Shapes("見本図").Line.ForeColor.ObjectThemeColor = msoThemeColorAccent4<br>End Sub</pre>



<p>今回は「msoThemeColorAccent4」としていますが「8」でも問題ありません。<br>実行した結果はこちらのです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="753" height="226" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-29.png" alt="" class="wp-image-3638" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-29.png 753w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-29-300x90.png 300w" sizes="(max-width: 753px) 100vw, 753px" /></figure>



<p>「見本図」の枠の色が変わりました。<br>先ほどの配色の表の通りに色が変化しましたね。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-30.png" alt="" class="wp-image-3639" width="554" height="200" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-30.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-30-300x108.png 300w" sizes="(max-width: 554px) 100vw, 554px" /></figure>



<p>では見本で配色を変えてみましょう。<br>このようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="999" height="256" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-32.png" alt="" class="wp-image-3641" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-32.png 999w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-32-300x77.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-32-768x197.png 768w" sizes="(max-width: 999px) 100vw, 999px" /></figure>



<p>配色に合わせて図の色も変化しました。</p>



<p><strong><span class="marker-under">選択している図の色を変更したい場合</span></strong>はこちらです。</p>



<pre class="wp-block-verse">Sub 図の枠の色をObjectThemeColorでつける()<br>Dim Target<br>Target = Selection.Name<br>ActiveSheet.Shapes(Target).Line.ForeColor.ObjectThemeColor = msoThemeColorAccent4<br>End Sub</pre>



<h2 class="wp-block-heading"><span id="toc7">&#x2b1b;︎オススメの図の枠に色を付ける方法</span></h2>



<p>これまで3つの方法で図の枠に色を付ける方法を紹介しましたが、<br>オススメを挙げるとすると「RGB」での指定になります。</p>



<p>理由としては下記の内容になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>・色の調整や変更を計算や変数で応用できる<br>・RGBでの指定はどの条件でも変わらない（ObjectThemeColorは配色の設定で変わる）</p></blockquote>



<p>例を見ていきます。<br>下記のプログラムを用意しました。</p>



<pre class="wp-block-verse">Sub 変数を応用して図の枠に色をRGBでつける()
Dim Target, <span class="bold-red">Red</span> As Long, <span class="bold-green">Green</span> As Long, <span class="bold-blue">Blue</span> As Long
<span class="bold-red">Red</span> = 115 '任意のRの数値を入力
<span class="bold-green">Green </span>= 55 '任意のGの数値を入力
<span class="bold-blue">Blue</span> = 100 '任意のBの数値を入力
Target = Selection.Name
ActiveSheet.Shapes(Target).Line.ForeColor.RGB = RGB(<span class="bold-red">Red</span>, <span class="bold-green">Green</span>, <span class="bold-blue">Blue</span>)
End Sub</pre>



<p>通常RGBの値を数値で入力していましたが、<br>見本のように変数を活用することができます。</p>



<h2 class="wp-block-heading"><span id="toc8">&#x2b1b;︎公式の説明</span></h2>



<p>わかりやすいように説明したため公式と使用する語句が異なりますが<br>マイクロソフト公式の説明については下記のリンクを参照してください。☟</p>



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/excel.lineformat.forecolor">LineFormat.ForeColor プロパティ (Excel) | Microsoft Learn</a></p>



<h2 class="wp-block-heading"><span id="toc9">&#x2b1b;︎まとめ</span></h2>



<p>いかがだったでしょうか。<br>VBAでも図の枠に色を付けることができるのは便利ですね。</p>



<p>是非参考にしてみてください。</p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%9b%b3%e5%bd%a2%e3%81%ae%e6%9e%a0%e3%81%ae%e8%89%b2%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%83%bb%e5%a4%89%e6%9b%b4%e6%96%b9%e6%b3%95%ef%bc%81-line-forecolor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3626</post-id>	</item>
		<item>
		<title>【マクロVBA】図形の塗りつぶし・色の設定方法！ Fill.ForeColorとRGB等の使い方</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%9b%b3%e5%bd%a2%e3%81%ae%e5%a1%97%e3%82%8a%e3%81%a4%e3%81%b6%e3%81%97%e3%83%bb%e8%89%b2%e3%81%ae%e8%a8%ad%e5%ae%9a%e6%96%b9%e6%b3%95%ef%bc%81-fill-fo/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2580%2591%25e5%259b%25b3%25e5%25bd%25a2%25e3%2581%25ae%25e5%25a1%2597%25e3%2582%258a%25e3%2581%25a4%25e3%2581%25b6%25e3%2581%2597%25e3%2583%25bb%25e8%2589%25b2%25e3%2581%25ae%25e8%25a8%25ad%25e5%25ae%259a%25e6%2596%25b9%25e6%25b3%2595%25ef%25bc%2581-fill-fo</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%9b%b3%e5%bd%a2%e3%81%ae%e5%a1%97%e3%82%8a%e3%81%a4%e3%81%b6%e3%81%97%e3%83%bb%e8%89%b2%e3%81%ae%e8%a8%ad%e5%ae%9a%e6%96%b9%e6%b3%95%ef%bc%81-fill-fo/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Wed, 05 Oct 2022 13:13:05 +0000</pubDate>
				<category><![CDATA[写真・図]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[図]]></category>
		<category><![CDATA[RGB]]></category>
		<category><![CDATA[塗りつぶし]]></category>
		<category><![CDATA[SchemeColor]]></category>
		<category><![CDATA[ObjectThemeColor]]></category>
		<category><![CDATA[Fill.ForeColor]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3609</guid>

					<description><![CDATA[エクセルにはさまざまな図形を挿入することができます。さらに塗りつぶしであったり、枠の色を変更したりなど様々な機能が存在します。 この機能はマクロVBAでも設定・変更が可能です。 今回は図形を塗りつぶす方法について紹介して [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>エクセルにはさまざまな図形を挿入することができます。<br>さらに塗りつぶしであったり、枠の色を変更したりなど様々な機能が存在します。</p>



<p>この機能はマクロVBAでも設定・変更が可能です。</p>



<p>今回は<strong><span class="marker-under">図形を塗りつぶす方法について紹介</span></strong>しています。<br>様々な方法を紹介していますので是非参考にしてみてください。</p>



<p>　</p>



<p>図形の枠の色の変更方法についてはこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%9b%b3%e5%bd%a2%e3%81%ae%e6%9e%a0%e3%81%ae%e8%89%b2%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%83%bb%e5%a4%89%e6%9b%b4%e6%96%b9%e6%b3%95%ef%bc%81-line-forecolor/">【マクロVBA】図形の枠の色の設定・変更方法！ Line.ForeColorとRGB等の使い方 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>それでは見ていきましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">&#x2b1b;︎忙しい人向けのコピペ用プログラム</a></li><li><a href="#toc2" tabindex="0">&#x2b1b;︎構文の説明</a></li><li><a href="#toc3" tabindex="0">&#x2b1b;︎図の塗りつぶしをする</a><ol><li><a href="#toc4" tabindex="0">①RGBでの塗りつぶし</a></li><li><a href="#toc5" tabindex="0">②SchemeColorでの塗りつぶし</a></li><li><a href="#toc6" tabindex="0">③ObjectThemeColor</a></li></ol></li><li><a href="#toc7" tabindex="0">&#x2b1b;︎オススメの図に塗りつぶしをする方法</a></li><li><a href="#toc8" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc9" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">&#x2b1b;︎忙しい人向けのコピペ用プログラム</span></h2>



<p></p>



<p></p>



<pre class="wp-block-verse">Sub 変数を応用して図に色をRGBで塗りつぶす()
Dim Target, <span class="bold-red">Red </span>As Long, <span class="bold-green">Green</span> As Long, <span class="bold-blue">Blue</span> As Long
<span class="bold-red">Red </span>= 115 '任意のRの数値を入力
<span class="bold-green">Green</span> = 55 '任意のGの数値を入力
<span class="bold-blue">Blue</span> = 100 '任意のBの数値を入力
Target = Selection.Name
ActiveSheet.Shapes(Target).Fill.ForeColor.RGB = RGB(<span class="bold-red">Red</span>, <span class="bold-green">Green</span>, <span class="bold-blue">Blue</span>)
End Sub</pre>



<p></p>



<h2 class="wp-block-heading"><span id="toc2">&#x2b1b;︎構文の説明</span></h2>



<p>今回は３パターン紹介しています。<br>使用方法は後ほど紹介しています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px">①RGBでの塗りつぶし</span></strong><br>Activesheet.Shapes (“ここに図形の名前”).Fill.ForeColor.RGB = RGB(<span class="bold-red">Rの数値</span>,<span class="bold-green">Gの数値</span>,<span class="bold-blue">Bの数値</span>)</p></blockquote>



<p>　</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px">②SchemeColorでの塗りつぶし</span></strong><br>Activesheet.Shapes (“ここに図形の名前”).Fill.ForeColor.SchemeColor = <span class="bold-red">ここに1から80の数値</span></p></blockquote>



<p>　</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px">③ObjectThemeColorでの塗りつぶし</span></strong><br>Activesheet.Shapes (“ここに図形の名前”).Fill.ForeColor.ObjectThemeColor = <span class="bold-red">テーマの配色の名前または値</span></p></blockquote>



<p>　<br>※配色については下記表を参照してください。</p>



<p>　</p>



<figure class="wp-block-table"><table><thead><tr><th>名前</th><th>値</th><th>説明</th></tr></thead><tbody><tr><td>msoThemeColorMixed</td><td>-2</td><td>テーマの色の組み合わせを指定します。</td></tr><tr><td>msoNotThemeColor</td><td>0</td><td>テーマの色を指定しません。</td></tr><tr><td>msoThemeColorDark1</td><td>1</td><td>濃色 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorLight1</td><td>2</td><td>淡色 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorDark2</td><td>3</td><td>濃色 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorLight2</td><td>4</td><td>淡色 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent1</td><td>5</td><td>アクセント 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent2</td><td>6</td><td>アクセント 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent3</td><td>7</td><td>アクセント 3 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent4</td><td>8</td><td>アクセント 4 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent5</td><td>9</td><td>アクセント 5 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent6</td><td>10</td><td>アクセント 6 テーマの色を指定します。</td></tr><tr><td>msoThemeColorHyperlink</td><td>11</td><td>ハイパーリンクのテーマの色を指定します。</td></tr><tr><td>msoThemeColorFollowedHyperlink</td><td>12</td><td>クリックされたハイパーリンクのテーマの色を指定します。</td></tr><tr><td>msoThemeColorText1</td><td>13</td><td>テキスト 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorBackground1</td><td>14</td><td>背景 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorText2</td><td>15</td><td>テキスト 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorBackground2</td><td>16</td><td>背景 2 テーマの色を指定します。</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc3">&#x2b1b;︎図の塗りつぶしをする</span></h2>



<p>先程は３つの塗りつぶしの構文を紹介しました。<br>それでは実際にそれぞれの使用方法を紹介します。</p>



<h3 class="wp-block-heading"><span id="toc4">①RGBでの塗りつぶし</span></h3>



<p>まずは<strong><span class="marker-under">RGBで色をつける方法</span></strong>を見ていきましょう。<br>RGBとは「<span class="bold-red">RED:赤</span>」「<span class="bold-green">Green:緑</span>」「<span class="bold-blue">Blue:青</span>」の原色を意味しており、<br>この3色を混ぜて色を指定します。</p>



<p>各数値は<strong><span class="marker-under-red">「0から255」で指定</span></strong>します。<br>では構文を再度確認しましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px">Activesheet.Shapes (“ここに図形の名前”).Fill.ForeColor.RGB = RGB(<span class="bold-red">Rの数値</span>,<span class="bold-green">Gの数値</span>,<span class="bold-blue">Bの数値</span>)</span></strong></p></blockquote>



<p>Activesheet.Shapesの後に図形の名前を入力します。<br>図の名前は<strong><span class="marker-under">図を選択した際に左上の「名前のボックス」から確認</span></strong>することができます。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="200" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-5-1024x200.png" alt="" class="wp-image-3610" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-5-1024x200.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-5-300x58.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-5-768x150.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-5.png 1108w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>「変数= Selection.Name」で選択している図の名前を変数に格納して活用することも可能です。</p>



<p>一方、RGBの方はRGB(<span class="bold-red">赤の要素</span>,<span class="bold-green">緑の要素</span>,<span class="bold-blue">青の要素</span>)のように指示します。</p>



<p>ちなみに各要素の数値が大きければ各原色は濃くなります。<br>一例を紹介すると下記の通りです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>白:RGB(0,0,0)<br>黒:RGB(255,255,255)<br>赤:RGB(255,0,0)<br>黄色:RGB(255,255,0)<br>青:RGB(0,0,255)</p></blockquote>



<p>では実際にプログラムを作成してみましょう。<br>見本として下図のシートを用意しました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="567" height="290" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-6.png" alt="" class="wp-image-3611" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-6.png 567w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-6-300x153.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></figure>



<p>今回は見本で「<span class="bold-blue">見本図</span>」という名前をつけた図を用意しました。<br>こちらを塗りつぶしてみたいと思います。</p>



<p>例で赤色に塗りつぶしてみましょう。<br>プログラムはこのようになります。</p>



<pre class="wp-block-verse">Sub 図に色をRGBで塗りつぶす()
ActiveSheet.Shapes("<span class="bold-blue">見本図</span>").Fill.ForeColor.RGB = RGB(<span class="bold-red">255</span>, <span class="bold-green">0</span>, <span class="bold-blue">0</span>)
End Sub</pre>



<p>それでは実行してみましょう。<br>結果はこのようになりました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="708" height="213" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-7.png" alt="" class="wp-image-3612" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-7.png 708w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-7-300x90.png 300w" sizes="(max-width: 708px) 100vw, 708px" /></figure>



<p>見本図を赤く塗りつぶすことができましたね。</p>



<p><strong><span class="marker-under">選択している図の色を変更したい場合</span></strong>はこちらです。</p>



<pre class="wp-block-verse">Sub 図に色をRGBで塗りつぶす()<br>Dim Target As String<br>Target = Selection.Name<br>ActiveSheet.Shapes(Target).Fill.ForeColor.RGB = RGB(255, 0, 0)<br>End Sub</pre>



<h3 class="wp-block-heading"><span id="toc5">②SchemeColorでの塗りつぶし</span></h3>



<p>次に<strong><span class="marker-under">「SchemeColor」で塗りつぶす方法</span></strong>を見ていきましょう。</p>



<p>では再度、構文を確認したいと思います。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px">Activesheet.Shapes (“ここに図形の名前”).Fill.ForeColor.SchemeColor = <span class="bold-red">ここに1から80の数値</span></span></strong></p></blockquote>



<p>こちらの方法は「<strong><span class="marker-under-red">ForeColor.SchemeColor」で塗りつぶしを宣言</span></strong>し、「＝」の後に<br>「<span class="bold-red">0から80</span>」の数値を指定します。</p>



<p>では見本で「<span class="bold-red">6</span>」で実行してみましょう。</p>



<p>今回も下図の「見本図」の色を変えたいと思います。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="567" height="290" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-8.png" alt="" class="wp-image-3613" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-8.png 567w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-8-300x153.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></figure>



<p>プログラムはこちらです。</p>



<pre class="wp-block-verse">Sub 図に色をSchemeColorで塗りつぶす()<br>ActiveSheet.Shapes("見本図").Fill.ForeColor.SchemeColor = 6<br>End Sub</pre>



<p>それでは実行してみましょう。<br>結果はこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="707" height="209" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-9.png" alt="" class="wp-image-3614" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-9.png 707w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-9-300x89.png 300w" sizes="(max-width: 707px) 100vw, 707px" /></figure>



<p>「見本図」の色が変わりました。</p>



<p>では「SchemeColor」の1から80の色はどのようなものか<br>下図の一覧で確認してみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="982" height="689" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-10.png" alt="" class="wp-image-3615" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-10.png 982w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-10-300x210.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-10-768x539.png 768w" sizes="(max-width: 982px) 100vw, 982px" /></figure>



<p>一応確認用の図を表示させるプログラムを載せています。</p>



<pre class="wp-block-verse">Sub SchemeColorの色一覧()

Dim CycleR As Long, CycleC As Long, No As Long
Dim TargetLeft, TargetTop, TargetWidth, TargetHeight

No = 1
For CycleC = 1 To 10 Step 3
 For CycleR = 1 To 20 Step 1
  TargetLeft = Cells(CycleR, CycleC).Left
  TargetTop = Cells(CycleR, CycleC).Top
  TargetWidth = Cells(CycleR, CycleC).Width
  TargetHeight = Cells(CycleR, CycleC).Height
  With ActiveSheet.Shapes.AddShape(msoShapeRectangle, TargetLeft, TargetTop, TargetWidth, TargetHeight)
        .Fill.ForeColor.SchemeColor = No
  End With
  Cells(CycleR, CycleC + 1) = ":" &amp; No
  No = No + 1
 Next CycleR
Next CycleC

End Sub</pre>



<p><strong><span class="marker-under">選択している図の色を変更したい場合</span></strong>はこちらです。</p>



<pre class="wp-block-verse">Sub 図に色をSchemeColorで塗りつぶす1()<br>Dim Target As String<br>Target = Selection.Name<br>ActiveSheet.Shapes(Target).Fill.ForeColor.SchemeColor = 5<br>End Sub</pre>



<h3 class="wp-block-heading"><span id="toc6">③ObjectThemeColor</span></h3>



<p>こちらは<strong><span class="marker-under">設定しているテーマを活用した貼り付け方法</span></strong>になります。<br>テーマとは色を塗りつぶす際の初めに表示されるデフォルトの色になります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="234" height="356" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-11.png" alt="" class="wp-image-3616" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-11.png 234w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-11-197x300.png 197w" sizes="(max-width: 234px) 100vw, 234px" /></figure>



<p>つまり、こちらの方法で塗りつぶした場合、<strong><span class="marker-under-red">「ページレイアウト」</span></strong>の<strong><span class="marker-under-red">「配色」</span></strong>の設定を変えると<br>その<strong><span class="marker-under">配色に合わせて色が変化</span></strong>します。<br>テーマに沿った塗りつぶしをしたい場合に使えそうですね。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1004" height="276" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-12.png" alt="" class="wp-image-3617" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-12.png 1004w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-12-300x82.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-12-768x211.png 768w" sizes="(max-width: 1004px) 100vw, 1004px" /></figure>



<p>では構文を見てみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><span class="fz-20px"><strong>Activesheet.Shapes (“ここに図形の名前”).Fill.ForeColor.ObjectThemeColor = <span class="bold-red">テーマの配色の名前または値</span></strong></span></p></blockquote>



<p>ここでの「テーマの配色」は「名前」または「値」が当てはまります。<br>一覧に関しては下記の表をご参照ください。</p>



<p></p>



<p>　</p>



<figure class="wp-block-table"><table><thead><tr><th>名前</th><th>値</th><th>説明</th></tr></thead><tbody><tr><td>msoThemeColorMixed</td><td>-2</td><td>テーマの色の組み合わせを指定します。</td></tr><tr><td>msoNotThemeColor</td><td>0</td><td>テーマの色を指定しません。</td></tr><tr><td>msoThemeColorDark1</td><td>1</td><td>濃色 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorLight1</td><td>2</td><td>淡色 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorDark2</td><td>3</td><td>濃色 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorLight2</td><td>4</td><td>淡色 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent1</td><td>5</td><td>アクセント 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent2</td><td>6</td><td>アクセント 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent3</td><td>7</td><td>アクセント 3 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent4</td><td>8</td><td>アクセント 4 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent5</td><td>9</td><td>アクセント 5 テーマの色を指定します。</td></tr><tr><td>msoThemeColorAccent6</td><td>10</td><td>アクセント 6 テーマの色を指定します。</td></tr><tr><td>msoThemeColorHyperlink</td><td>11</td><td>ハイパーリンクのテーマの色を指定します。</td></tr><tr><td>msoThemeColorFollowedHyperlink</td><td>12</td><td>クリックされたハイパーリンクのテーマの色を指定します。</td></tr><tr><td>msoThemeColorText1</td><td>13</td><td>テキスト 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorBackground1</td><td>14</td><td>背景 1 テーマの色を指定します。</td></tr><tr><td>msoThemeColorText2</td><td>15</td><td>テキスト 2 テーマの色を指定します。</td></tr><tr><td>msoThemeColorBackground2</td><td>16</td><td>背景 2 テーマの色を指定します。</td></tr></tbody></table></figure>



<p></p>



<p></p>



<p>ちなみにテーマと値を比較すると下図のようになります。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-13.png" alt="" class="wp-image-3618" width="398" height="175" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-13.png 600w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-13-300x132.png 300w" sizes="(max-width: 398px) 100vw, 398px" /></figure>



<p>では実際に図を塗りつぶしてみたいと思います。<br>今回も下図の「見本図」の色を変えたいと思います。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-14.png" alt="" class="wp-image-3619" width="428" height="219" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-14.png 567w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-14-300x153.png 300w" sizes="(max-width: 428px) 100vw, 428px" /></figure>



<pre class="wp-block-verse">Sub 図に色をObjectThemeColorで塗りつぶす()
ActiveSheet.Shapes("見本図").Fill.ForeColor.ObjectThemeColor = <span class="bold-red">msoThemeColorAccent3</span>
End Sub</pre>



<p>今回は「<span class="bold-red">msoThemeColorAccent3</span>」としていますが「<span class="bold-red">7</span>」でも問題ありません。<br>実行した結果はこちらのです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="728" height="212" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-15.png" alt="" class="wp-image-3620" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-15.png 728w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-15-300x87.png 300w" sizes="(max-width: 728px) 100vw, 728px" /></figure>



<p>「見本図」の色が変わりました。<br>先ほどの配色の表の通りに色が変化しましたね。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-16.png" alt="" class="wp-image-3621" width="454" height="159" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-16.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-16-300x105.png 300w" sizes="(max-width: 454px) 100vw, 454px" /></figure>



<p>では見本で配色を変えてみましょう。<br>このようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="991" height="246" src="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-17.png" alt="" class="wp-image-3622" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/10/image-17.png 991w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-17-300x74.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/10/image-17-768x191.png 768w" sizes="(max-width: 991px) 100vw, 991px" /></figure>



<p>配色に合わせて図の色も変化しました。</p>



<p><strong><span class="marker-under">選択している図の色を変更したい場合</span></strong>はこちらです。</p>



<pre class="wp-block-verse">Sub 図に色をObjectThemeColorで塗りつぶす()<br>Dim Target As String<br>Target = Selection.Name<br>ActiveSheet.Shapes(Target).Fill.ForeColor.ObjectThemeColor = 7<br>End Sub</pre>



<h2 class="wp-block-heading"><span id="toc7">&#x2b1b;︎オススメの図に塗りつぶしをする方法</span></h2>



<p>これまで3つの方法で図に塗りつぶしをする方法を紹介しましたが、<br>オススメを挙げるとすると<strong><span class="marker-under">「RGB」での指定</span></strong>になります。</p>



<p>理由としては下記の内容になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>・色の調整や変更を計算や変数で応用できる<br>・RGBでの指定はどの条件でも変わらない（ObjectThemeColorは配色の設定で変わる）</p></blockquote>



<p>例を見ていきます。<br>下記のプログラムを用意しました。</p>



<pre class="wp-block-verse">Sub 変数を応用して図に色をRGBで塗りつぶす()
Dim Target, <span class="bold-red">Red </span>As Long, <span class="bold-green">Green</span> As Long, <span class="bold-blue">Blue</span> As Long
<span class="bold-red">Red </span>= 115 '任意のRの数値を入力
<span class="bold-green">Green</span> = 55 '任意のGの数値を入力
<span class="bold-blue">Blue</span> = 100 '任意のBの数値を入力
Target = Selection.Name
ActiveSheet.Shapes(Target).Fill.ForeColor.RGB = RGB(<span class="bold-red">Red</span>, <span class="bold-green">Green</span>, <span class="bold-blue">Blue</span>)
End Sub</pre>



<p>通常RGBの値を数値で入力していましたが、<br>見本のように変数を活用することができます。</p>



<h2 class="wp-block-heading"><span id="toc8">&#x2b1b;︎公式の説明</span></h2>



<p>わかりやすいように説明したため公式と使用する語句が異なりますが<br>マイクロソフト公式の説明については下記のリンクを参照してください。☟</p>



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/excel.fillformat.forecolor">FillFormat.ForeColor プロパティ (Excel) | Microsoft Learn</a></p>



<h2 class="wp-block-heading"><span id="toc9">&#x2b1b;︎まとめ</span></h2>



<p>いかがだったでしょうか。<br>VBAでも図の塗りつぶしをできるのは便利ですね。</p>



<p>是非参考にしてみてください。</p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%9b%b3%e5%bd%a2%e3%81%ae%e5%a1%97%e3%82%8a%e3%81%a4%e3%81%b6%e3%81%97%e3%83%bb%e8%89%b2%e3%81%ae%e8%a8%ad%e5%ae%9a%e6%96%b9%e6%b3%95%ef%bc%81-fill-fo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3609</post-id>	</item>
		<item>
		<title>【マクロVBA】写真・図を変数や配列のように格納して、様々なサイズ・位置に貼り付ける方法</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%86%99%e7%9c%9f%e3%83%bb%e5%9b%b3%e3%82%92%e5%a4%89%e6%95%b0%e3%82%84%e9%85%8d%e5%88%97%e3%81%ae%e3%82%88%e3%81%86%e3%81%ab%e6%a0%bc%e7%b4%8d/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2580%2591%25e5%2586%2599%25e7%259c%259f%25e3%2583%25bb%25e5%259b%25b3%25e3%2582%2592%25e5%25a4%2589%25e6%2595%25b0%25e3%2582%2584%25e9%2585%258d%25e5%2588%2597%25e3%2581%25ae%25e3%2582%2588%25e3%2581%2586%25e3%2581%25ab%25e6%25a0%25bc%25e7%25b4%258d</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%86%99%e7%9c%9f%e3%83%bb%e5%9b%b3%e3%82%92%e5%a4%89%e6%95%b0%e3%82%84%e9%85%8d%e5%88%97%e3%81%ae%e3%82%88%e3%81%86%e3%81%ab%e6%a0%bc%e7%b4%8d/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Wed, 21 Sep 2022 14:55:11 +0000</pubDate>
				<category><![CDATA[写真・図]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[配列]]></category>
		<category><![CDATA[写真]]></category>
		<category><![CDATA[変数]]></category>
		<category><![CDATA[貼り付け]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3518</guid>

					<description><![CDATA[写真や図を変数や配列のように格納して活用したいと思ったことはないでしょうか。 通常であれば、写真・図を貼り付けたい場合はコピーペーストして対応すると思いますが、貼り付け位置が多い場合や、貼り付けのパターンが多ければコピペ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><strong><span class="marker-under">写真や図を変数や配列のように格納して活用</span></strong>したいと思ったことはないでしょうか。</p>



<p>通常であれば、写真・図を貼り付けたい場合はコピーペーストして対応すると思いますが、<br>貼り付け位置が多い場合や、貼り付けのパターンが多ければコピペでの貼り付けは面倒です。</p>



<p>そこで今回はマクロVBAで変数・配列のように図を格納して好きな位置に</p>



<p>貼り付ける方法を紹介します。<br>是非参考にしてみてください。それではみていきましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">&#x2b1b;︎忙しい人向けのコピぺ用プログラム</a></li><li><a href="#toc2" tabindex="0">&#x2b1b;︎プログラムの考え方について</a></li><li><a href="#toc3" tabindex="0">&#x2b1b;︎実践編:写真・図を格納して貼り付ける方法</a><ol><li><a href="#toc4" tabindex="0">・①指定範囲内にある写真・図を選択する</a></li><li><a href="#toc5" tabindex="0">・②写真・図を保存して、そのパスを変数に格納する</a></li><li><a href="#toc6" tabindex="0">・③指定位置に貼り付ける</a></li><li><a href="#toc7" tabindex="0">・④プログラム終了後は写真・図ファイルを削除する</a></li><li><a href="#toc8" tabindex="0">・プログラムまとめ</a></li></ol></li><li><a href="#toc9" tabindex="0">&#x2b1b;︎応用:見本のプログラム</a><ol><li><a href="#toc10" tabindex="0">・格納した写真・図をブック内の全てのシートに貼り付ける。</a></li></ol></li><li><a href="#toc11" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc12" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">&#x2b1b;︎忙しい人向けのコピぺ用プログラム</span></h2>



<p><strong><span class="marker-under">黄色の蛍光ペン</span></strong>の部分をお好みで打ち換えてください。</p>



<pre class="wp-block-verse">Sub 図を格納して貼り付け()

Dim WideValue, HighValue, <span class="bold-red">PhotoName</span> As String

For Each <span class="bold-blue">TARGET </span>In ActiveSheet.Shapes '写真を繰り返し選択
　If Not Intersect(<span class="bold-blue">TARGET</span>.TopLeftCell, Range("<strong><span class="marker-under">切り取り範囲</span></strong>")) Is Nothing And _
　　Not Intersect(<span class="bold-blue">TARGET</span>.BottomRightCell, Range("<strong><span class="marker-under">切り取り範囲</span></strong>")) Is Nothing Then
　　　TARGET.Select False '指定範囲に入っていない写真は除外
　End If
Next <span class="bold-blue">TARGET</span>

With Selection
　WideValue = .Width '幅を格納
　HighValue = .Height '高さを格納
　.Copy '対象をコピー
End With　

ActiveSheet.ChartObjects.Add(0, 0, WideValue, HighValue).Name = "<span class="bold-green">Targerpicture</span>" 'チャートの作成
ActiveSheet.ChartObjects("<span class="bold-green">Targerpicture</span>").Activate '作成したチャートをアクティブに
ActiveChart.Paste 'チャートに写真を貼り付ける
ActiveChart.ChartArea.Format.Line.Visible = msoFalse 'チャートの外枠をなくす

<span class="bold-red">PhotoName</span> = "<strong><span class="marker-under">保存するパス</span></strong>" &amp; "\" &amp; "貼り付け用写真.jpg"

With ActiveSheet.ChartObjects("<span class="bold-green">Targerpicture</span>")
　.Chart.Export <span class="bold-red">PhotoName</span> '写真を名前をつけて保存
　.Delete
End With

Set OBJSHAPE = ActiveSheet.Shapes.AddPicture( _
　　　　　　　　  FileName:=<span class="bold-red">PhotoName</span>, _
                          LinkToFile:=False, _
　　　　　　　　  SaveWithDocument:=True, _
　　　　　　　　  Left:=ActiveSheet.Range("<strong><span class="marker-under">貼り付け位置</span></strong>").Left, _
　　　　　　　　  Top:=ActiveSheet.Range("<strong><span class="marker-under">貼り付け位置</span></strong>").Top, _
　　　　　　　　  Width:=ActiveSheet.Range("<strong><span class="marker-under">貼り付けサイズ</span></strong>").Width, _
　　　　　　　　  Height:=ActiveSheet.Range("<strong><span class="marker-under">貼り付けサイズ</span></strong>").Height) '貼り付け

Kill <span class="bold-red">PhotoName</span> '写真を消す

End Sub
</pre>



<p></p>



<h2 class="wp-block-heading"><span id="toc2">&#x2b1b;︎プログラムの考え方について</span></h2>



<p>まず結論から言うと<strong><span class="marker-under">配列や変数などに写真・図を格納することは不可能</span></strong>です。<br>しかし、<strong><span class="marker-under">似たような事をすることは出来ます</span></strong>。</p>



<p>様々な方法があるのかもしれませんが今回紹介する方法は<br><strong><span class="marker-under">写真・図を一旦保存して、そのファイル名を変数に書き込み<br>その変数を用いて指定位置に貼り付け</span></strong>ます。</p>



<p>なので手順としては</p>



<pre class="wp-block-verse">①指定範囲内にある写真・図を選択する
②写真・図を保存して、そのパスを変数に格納する
③指定位置に貼り付ける
④プログラム終了後は写真・図ファイルを削除する</pre>



<p>と言った流れになります。<br>では実践編をみていきましょう。</p>



<h2 class="wp-block-heading"><span id="toc3">&#x2b1b;︎実践編:写真・図を格納して貼り付ける方法</span></h2>



<p>では①から④の順に見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc4">・①指定範囲内にある写真・図を選択する</span></h3>



<p>まずは<strong><span class="marker-under">格納したい写真・図を名前をつけて保存</span></strong>したいと思います。<br>注意点としてVBAで保存できるのは「Chart」となります。<br>「Chart」はグラフを意味します。</p>



<p>なのでイメージとして<strong><span class="marker-under">「Chart」を作成して<br>そこに指定した写真・図を貼り付けて写真・図ごと「Chart」を保存する</span></strong><br>といった流れです。</p>



<p>ではまず、保存したい写真・図を選択します。<br>見本の写真は下図の通りです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="486" height="203" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-81.png" alt="" class="wp-image-3519" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-81.png 486w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-81-300x125.png 300w" sizes="(max-width: 486px) 100vw, 486px" /></figure>



<p>今回は指定範囲内にある写真・図を登録してみましょう。</p>



<p>構文はこちらです。</p>



<pre class="wp-block-verse">For Each <span class="bold-blue">TARGET</span> In ActiveSheet.Shapes '写真を繰り返し選択

If Not Intersect(<span class="bold-blue">TARGET</span>.TopLeftCell, Range("<strong><span class="bold-red">A1:D5</span></strong>")) Is Nothing And _
Not Intersect(<span class="bold-blue">TARGET</span>.BottomRightCell, Range("<span class="bold-red">A1:D5</span>")) Is Nothing Then
TARGET.Select False '指定範囲に入っていない写真は除外
End If
Next 
<span class="bold-blue">TARGET</span></pre>



<p>今回は見本で<strong><span class="marker-under-red">「<span class="bold-red">A1からD5</span>」にある写真・図を対象</span></strong>にしました。<br>なので「Range(&#8220;A1:D5&#8221;)) Is Nothing」で範囲をしぼっています。</p>



<p>仕組みとして<strong><span class="marker-under">「TopLeftCell」で写真の左上、「BottomRightCell」で写真の右下を検知し、<br>対象範囲内にあるか確認</span></strong>しています。</p>



<p>その後、範囲内に該当する写真・図については選択した状態を維持するようになります。<br>実行した結果はこちら。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="388" height="150" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-82.png" alt="" class="wp-image-3520" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-82.png 388w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-82-300x116.png 300w" sizes="(max-width: 388px) 100vw, 388px" /></figure>



<p>これで選択は出来ましたが、選択した写真・図を<br>「<strong><span class="marker-under-blue">Chart」に貼り付ける</span></strong>必要があります。<br>しかし、通常の状態で「Chart」を生成すると選択した写真・図のサイズとは<br>異なってしまいます。</p>



<p>そこで<strong><span class="marker-under-blue">現在の写真・図のサイズを格納し、そのサイズに見合った<br>「Chart」を生成</span></strong>する必要があります。</p>



<p>ではプログラムを見ていきましょう。</p>



<pre class="wp-block-verse">Dim <span class="bold-red">WideValue</span>, <span class="bold-blue">HighValue</span>

With Selection
<span class="bold-red">WideValue</span> = .Width '幅を格納
<span class="bold-blue">HighValue</span> = .Height '高さを格納
.Copy '対象をコピー

End With</pre>



<p>現状は対象の写真を選択している状態です。<br>その選択した写真を対象に<strong><span class="marker-under">「<span class="bold-red">WideValue</span> = .Width」で写真・図の幅を格納</span></strong>し、<strong><span class="marker-under">「<span class="bold-blue">HighValue</span> = .Height 」で写真・図の高さを格納</span></strong>します。<br>さらに貼り付けるため、対象をコピーしています。</p>



<p>では、チャートを作成して、対象の写真を貼り付けてみましょう。<br>プログラムはこちら</p>



<pre class="wp-block-verse">ActiveSheet.ChartObjects.Add(0, 0,<span class="bold-red"> WideValue</span>, <span class="bold-blue">HighValue</span>).Name = "Targerpicture" 'チャートの作成
ActiveSheet.ChartObjects("Targerpicture").Activate '作成したチャートをアクティブに
ActiveChart.Paste 'チャートに写真を貼り付ける
ActiveChart.ChartArea.Format.Line.Visible = msoFalse 'チャートの外枠をなくす</pre>



<p>まずはチャートの作成の構文はこちらです。</p>



<pre class="wp-block-verse"><strong>ActiveSheet.ChartObjects.Add(<span class="bold-green">左端からの距離</span>, <span class="bold-green">上端からの距離</span>, <span class="bold-red">幅</span>, <span class="bold-blue">高さ</span>).Name = "チャートの名前"</strong></pre>



<p>左端からの距離と上端からの距離については今回は写真として<strong><span class="marker-under">保存するだけなので<br>それぞれ「0」</span></strong>とします。<br><span class="bold-red">幅</span>と<span class="bold-blue">高さ</span>については、先ほど変数に格納した「<span class="bold-red">WideValue</span>」「<span class="bold-blue">HighValue</span>」が該当します。</p>



<p>そして今回はチャートの名前を「Targerpicture」としました。<br>こちらを２行目のプログラムでアクティブ状態にします。</p>



<p>さらに3行目の<strong><span class="marker-under">「ActiveChart.Paste」でチャートに写真を貼り付け</span></strong>ます。<br>そして最後にチャートの外枠を無くしました。外周に黒い線が残ってもいい場合はこちらは省略してください。</p>



<p>ではこれでChart形式の写真・図ができました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="451" height="216" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-83.png" alt="" class="wp-image-3521" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-83.png 451w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-83-300x144.png 300w" sizes="(max-width: 451px) 100vw, 451px" /></figure>



<h3 class="wp-block-heading"><span id="toc5">・②写真・図を保存して、そのパスを変数に格納する</span></h3>



<p>ではChart形式で保存できるようになったので、<br><strong><span class="marker-under">指定フォルダに保存&amp;変数にパスを格納</span></strong>していきましょう。</p>



<p>プログラムはこのようになります。</p>



<pre class="wp-block-verse">Dim <span class="bold-red">PhotoName</span> As String

<span class="bold-red">PhotoName</span> = "C:\検証ファイル\" &amp; "貼り付け用写真.jpg"

With ActiveSheet.ChartObjects("Targerpicture")
.<span class="bold-blue">Chart.Export</span> <span class="bold-red">PhotoName</span>
.Delete
End With</pre>



<p>では仕組みを紹介します。<br>現在は①でチャート形式にした写真・図を作成している状態です。</p>



<p>まず変数で写真・図を保存する名前をフルパスを含めて決めています。<br>つまり、<strong><span class="marker-under-blue">フルパスで指名したフォルダ・ファイル名で一旦<br>写真・図を保存する</span></strong>ようになります。</p>



<p>見本では「ローカルディスクC」の「検証ファイル」に保存して、<br>写真・図名を「貼り付け用写真」としました。<br>写真・図なので拡張子を「.jpg」としています。</p>



<p>そして「<span class="bold-blue">Chart.Export</span>＋<span class="bold-red">先程のフルパス変数</span>」で<br>写真・図として保存を実行します。</p>



<p>つまり、このフルパスが入った変数「<span class="bold-red">PhotoName</span>」が<br>画像を貼り付ける変数になります。</p>



<p>ちなみにここまでのプログラムを実行してみましょう。<br>指定ファイルにファイルが追加されました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="650" height="204" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-84.png" alt="" class="wp-image-3522" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-84.png 650w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-84-300x94.png 300w" sizes="(max-width: 650px) 100vw, 650px" /></figure>



<h3 class="wp-block-heading"><span id="toc6">・③指定位置に貼り付ける</span></h3>



<p>では実際に<strong><span class="marker-under">指定位置に貼り付け</span></strong>てみましょう。<br>まず構文から紹介したいと思います。</p>



<pre class="wp-block-verse">Set OBJSHAPE = ActiveSheet.Shapes.AddPicture( _
FileName:=<span class="bold-red">ここにファイル名</span>, _
LinkToFile:=False, _
SaveWithDocument:=TrueかFalse, _
Left:=<span class="bold-blue">左端からの貼り付け位置</span>, _
Top:=<span class="bold-blue">上端からの貼り付け位置</span>, _
Width:=<span class="bold-green">写真・図の幅</span>, _
Height:=<span class="bold-green">写真・図の高さ</span>)</pre>



<p>では構文に当てはめていきましょう。<br>まず「<span class="bold-red">FileName</span>」は先程のフルパスが格納された変数「<span class="bold-red">PhotoName</span>」になります。</p>



<p>次に「LinkToFile」ですが図をグラフィック ファイルとリンクするかどうかを指定します。<br>今回は「False」にします。</p>



<p>「SaveWithDocument」については文書を保存するときに図も一緒に保存するかどうかを指定します。<br>今回は「True」にしておきましょう。</p>



<p>次に貼り付け位置についてです。<br>ここでは<strong><span class="marker-under-blue">左端からの貼り付け位置が「Left」</span></strong>、<strong><span class="marker-under-blue">上端からの貼り付け位置が「Top」</span></strong>となります。<br>ここには数値でもいいですが、セルを指定しても構いません。</p>



<p>今回は見本で「<span class="bold-blue">E7</span>」に貼り付けたいと思います。</p>



<p>最後に写真のサイズを指定します。<br><strong><span class="marker-under">写真の幅は「Width」、高さは「Height」で指定</span></strong>します。</p>



<p><strong><span class="marker-under">通常のサイズを維持する場合は「<span class="bold-green">-1</span>」</span></strong>を入力します。<br>もちろん、直接サイズを入力しても構いません。</p>



<p>今回は見本で「<span class="bold-green">E7</span>」のセルのサイズに合わせて貼り付けます。</p>



<p>すべて足したプログラムはこちらです。</p>



<pre class="wp-block-verse">Set OBJSHAPE = ActiveSheet.Shapes.AddPicture( _
FileName:=<span class="bold-red">PhotoName</span>, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=ActiveSheet.Range("<span class="bold-blue">E7</span>").Left, _
Top:=ActiveSheet.Range("<span class="bold-blue">E7</span>").Top, _
Width:=ActiveSheet.Range("<span class="bold-green">E7</span>").Width, _
Height:=ActiveSheet.Range("<span class="bold-green">E7</span>").Height)</pre>



<h3 class="wp-block-heading"><span id="toc7">・④プログラム終了後は写真・図ファイルを削除する</span></h3>



<p>写真・図を貼り付け終わったら最後に元の状態に戻すため<br><strong><span class="marker-under">保存した写真・図を削除</span></strong>します。</p>



<p>削除する構文はこちら。</p>



<pre class="wp-block-verse"><span class="bold-blue">kill</span><span class="bold-red"> フルパス</span></pre>



<p>では当てはめていきましょう。</p>



<p>フルパスは見本では「<span class="bold-red">PhotoName</span>」に格納しているので<br>「<span class="bold-blue">Kill </span><span class="bold-red">PhotoName</span>」だけで写真・図ファイルを削除できます。</p>



<p>これで一連の動作は完了です。</p>



<h3 class="wp-block-heading"><span id="toc8">・プログラムまとめ</span></h3>



<p>では①から④を組み合わせてみます。<br>結果はこちらです。</p>



<pre class="wp-block-verse">Sub 図を格納して貼り付け()

Dim WideValue, HighValue, <span class="bold-red">PhotoName</span> As String

For Each <span class="bold-blue">TARGET </span>In ActiveSheet.Shapes '写真を繰り返し選択
　If Not Intersect(<span class="bold-blue">TARGET</span>.TopLeftCell, Range("A1:D5")) Is Nothing And _
　　Not Intersect(<span class="bold-blue">TARGET</span>.BottomRightCell, Range("A1:D5")) Is Nothing Then
　　　TARGET.Select False '指定範囲に入っていない写真は除外
　End If
Next <span class="bold-blue">TARGET</span>

With Selection
　WideValue = .Width '幅を格納
　HighValue = .Height '高さを格納
　.Copy '対象をコピー
End With　

ActiveSheet.ChartObjects.Add(0, 0, WideValue, HighValue).Name = "<span class="bold-green">Targerpicture</span>" 'チャートの作成
ActiveSheet.ChartObjects("<span class="bold-green">Targerpicture</span>").Activate '作成したチャートをアクティブに
ActiveChart.Paste 'チャートに写真を貼り付ける
ActiveChart.ChartArea.Format.Line.Visible = msoFalse 'チャートの外枠をなくす

<span class="bold-red">PhotoName</span> = "C:\検証ファイル\" &amp; "貼り付け用写真.jpg"

With ActiveSheet.ChartObjects("<span class="bold-green">Targerpicture</span>")
　.Chart.Export <span class="bold-red">PhotoName</span> '写真を名前をつけて保存
　.Delete
End With

Set OBJSHAPE = ActiveSheet.Shapes.AddPicture( _
　　　　　　　　  FileName:=<span class="bold-red">PhotoName</span>, _
                          LinkToFile:=False, _
　　　　　　　　  SaveWithDocument:=True, _
　　　　　　　　  Left:=ActiveSheet.Range("E7").Left, _
　　　　　　　　  Top:=ActiveSheet.Range("E7").Top, _
　　　　　　　　  Width:=ActiveSheet.Range("E7").Width, _
　　　　　　　　  Height:=ActiveSheet.Range("E7").Height) '貼り付け

Kill <span class="bold-red">PhotoName</span> '写真を消す

End Sub
</pre>



<p>長いですが、これで写真・図を格納して貼り付けるプログラムができました。<br>では実践してみましょう。</p>



<p>今回は「A1からD5」内の写真・図を格納して<br>「E7」に貼り付けます。</p>



<p>実行した結果はこちら。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="906" height="214" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-85.png" alt="" class="wp-image-3523" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-85.png 906w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-85-300x71.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-85-768x181.png 768w" sizes="(max-width: 906px) 100vw, 906px" /></figure>



<p>狙い通り、貼り付けることができていますね。<br>サイズもセルの大きさに合わせて貼り付けてくれています。</p>



<h2 class="wp-block-heading"><span id="toc9">&#x2b1b;︎応用:見本のプログラム</span></h2>



<p>ここからは先程のプログラムを応用したプログラムの事例を紹介します。</p>



<h3 class="wp-block-heading"><span id="toc10">・格納した写真・図をブック内の全てのシートに貼り付ける。</span></h3>



<p>まずは写真・図を格納して、<strong><span class="marker-under">ブック内のシート全ての指定位置に<br>貼り付け</span></strong>てみましょう。</p>



<p>今回は先頭のシートの「A1からD5」の中の写真・図を<br>他の全てのシートの「E7」に貼り付けるプログラムを見てみましょう。</p>



<pre class="wp-block-verse">Sub 図を格納して貼り付け()

Dim WideValue, HighValue, PhotoName As String, SheetNo, cycle

For Each TARGET In ActiveSheet.Shapes '写真を繰り返し選択
  If Not Intersect(TARGET.TopLeftCell, Range("A1:D5")) Is Nothing And _
     Not Intersect(TARGET.BottomRightCell, Range("A1:D5")) Is Nothing Then 
     TARGET.Select False '指定範囲に入っていない写真は除外
  End If
Next TARGET

With Selection
  WideValue = .Width '幅を格納
  HighValue = .Height '高さを格納
  .Copy '対象をコピー
End With

ActiveSheet.ChartObjects.Add(0, 0, WideValue, HighValue).Name = "Targerpicture" 'チャートの作成
ActiveSheet.ChartObjects("Targerpicture").Activate '作成したチャートをアクティブに
ActiveChart.Paste 'チャートに写真を貼り付ける
ActiveChart.ChartArea.Format.Line.Visible = msoFalse 'チャートの外枠をなくす

PhotoName = "C:\検証ファイル\" &amp; "貼り付け用写真.jpg"

With ActiveSheet.ChartObjects("Targerpicture")
  .Chart.Export PhotoName '写真を名前をつけて保存
  .Delete
End With

<span class="bold-blue">SheetNo</span> = Sheets.Count

For <span class="bold-red">cycle </span>= 2 To <span class="bold-blue">SheetNo </span>Step 1
  Sheets(<span class="bold-red">cycle</span>).Activate
  Set OBJSHAPE = ActiveSheet.Shapes.AddPicture( _
                           FileName:=PhotoName, _
                           LinkToFile:=False, _
                           SaveWithDocument:=True, _
                           Left:=ActiveSheet.Range("E7").Left, _
                           Top:=ActiveSheet.Range("E7").Top, _
                           Width:=ActiveSheet.Range("E7").Width, _
                           Height:=ActiveSheet.Range("E7").Height) '貼り付け
Next cycle

Kill PhotoName '写真を消す

End Sub</pre>



<p><strong><span class="marker-under-blue">「<span class="bold-blue">SheetNo</span>」に全体のシート数をカウント</span></strong>して<br>「For Next」で貼り付けてシート数分貼り付けるようにしています。</p>



<p>通常、シートを繰り返し選択する場合は「For Each 変数 In Worksheets」<br>を使用しますが、貼り付けるシートを変則的に応用するために<br>今回はシート番号で対象シートをアクティブにさせています。</p>



<h2 class="wp-block-heading"><span id="toc11">&#x2b1b;︎公式の説明</span></h2>



<p>わかりやすいように説明したため公式と使用する語句が異なりますが<br>マイクロソフト公式の説明については下記のリンクを参照してください☟</p>



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.shapes.addpicture">Shapes.AddPicture メソッド (PowerPoint) | Microsoft Learn</a></p>



<h2 class="wp-block-heading"><span id="toc12">&#x2b1b;︎まとめ</span></h2>



<p>いかがだったでしょうか。<br>本記事の内容を活用すると、図を変数のように活用することができます。</p>



<p>エクセル内で図を定期的に指定位置に貼り付けたりする際には便利です。<br>署名の貼り付けなどにも活用できますね！</p>



<p>是非参考にしてみてください。<br>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%86%99%e7%9c%9f%e3%83%bb%e5%9b%b3%e3%82%92%e5%a4%89%e6%95%b0%e3%82%84%e9%85%8d%e5%88%97%e3%81%ae%e3%82%88%e3%81%86%e3%81%ab%e6%a0%bc%e7%b4%8d/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3518</post-id>	</item>
		<item>
		<title>【マクロVBA】写真の軽量化！シート・ブック内の全ての写真を軽量化する方法</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%86%99%e7%9c%9f%e3%81%ae%e8%bb%bd%e9%87%8f%e5%8c%96%ef%bc%81%e3%82%b7%e3%83%bc%e3%83%88%e3%83%bb%e3%83%96%e3%83%83%e3%82%af%e5%86%85%e3%81%ae/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2580%2591%25e5%2586%2599%25e7%259c%259f%25e3%2581%25ae%25e8%25bb%25bd%25e9%2587%258f%25e5%258c%2596%25ef%25bc%2581%25e3%2582%25b7%25e3%2583%25bc%25e3%2583%2588%25e3%2583%25bb%25e3%2583%2596%25e3%2583%2583%25e3%2582%25af%25e5%2586%2585%25e3%2581%25ae</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%86%99%e7%9c%9f%e3%81%ae%e8%bb%bd%e9%87%8f%e5%8c%96%ef%bc%81%e3%82%b7%e3%83%bc%e3%83%88%e3%83%bb%e3%83%96%e3%83%83%e3%82%af%e5%86%85%e3%81%ae/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Sun, 11 Sep 2022 14:56:13 +0000</pubDate>
				<category><![CDATA[写真・図]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[シート]]></category>
		<category><![CDATA[ブック]]></category>
		<category><![CDATA[貼り付け]]></category>
		<category><![CDATA[写真]]></category>
		<category><![CDATA[軽量化]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3488</guid>

					<description><![CDATA[エクセルを使用するなかで、ファイルの容量の管理は１つの課題です。例えば写真をたくさん入れていたり、図を多用していたり、不要な行・列数を使用していたり、容量の増加の原因は様々です。 その中でも容量が大きい写真の軽量化につい [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>エクセルを使用するなかで、<strong><span class="marker-under">ファイルの容量の管理は１つの課題</span></strong>です。<br>例えば写真をたくさん入れていたり、図を多用していたり、不要な行・列数を<br>使用していたり、容量の増加の原因は様々です。</p>



<p>その中でも<strong><span class="marker-under">容量が大きい写真の軽量化について説明</span></strong>したいと思います。</p>



<p>さらに今回は<strong><span class="marker-under-red">シート・ブック内すべての写真をまとめて<br>軽量化できるプログラム</span></strong>を紹介しますので是非参考にしてみてください。</p>



<p>それではみていきましょう！</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">&#x2b1b;︎こんなことができる！</a></li><li><a href="#toc2" tabindex="0">&#x2b1b;︎忙しい人向けのコピぺ用プログラム</a><ol><li><a href="#toc3" tabindex="0">・シート内の写真の軽量化</a></li><li><a href="#toc4" tabindex="0">・ブック内の写真の軽量化</a></li></ol></li><li><a href="#toc5" tabindex="0">&#x2b1b;︎写真が容量が大きい理由</a></li><li><a href="#toc6" tabindex="0">&#x2b1b;︎図を軽量化するプログラム</a></li><li><a href="#toc7" tabindex="0">&#x2b1b;︎対象シート内の写真を軽量化する</a></li><li><a href="#toc8" tabindex="0">&#x2b1b;︎対象ブック内の写真を軽量化する</a></li><li><a href="#toc9" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc10" tabindex="0">&#x2b1b;︎注意点</a></li><li><a href="#toc11" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">&#x2b1b;︎こんなことができる！</span></h2>



<p>シート・ブック内の全ての写真を軽量化することができる</p>



<h2 class="wp-block-heading"><span id="toc2">&#x2b1b;︎忙しい人向けのコピぺ用プログラム</span></h2>



<h3 class="wp-block-heading"><span id="toc3">・シート内の写真の軽量化</span></h3>



<pre class="wp-block-verse">Sub シート内の画像軽量化()

Dim SelectPictures As Picture '対象の写真
Dim LeftPosition As Double, TopPosition As Double '左端・上端からの距離

For Each SelectPictures In ActiveSheet.Pictures
　If TypeName(SelectPictures) &lt;> "OLEObject" Then
　　SelectPictures.Select
　　LeftPosition=SelectPictures.Left
　　TopPosition=SelectPictures.Top
　　Selection.Cut
　　ActiveSheet.PasteSpecial Format:="図(JPEG)"
　　Selection.Left=LeftPosition
　　Selection.Top=TopPosition
　End If
Next

End Sub</pre>



<h3 class="wp-block-heading"><span id="toc4">・ブック内の写真の軽量化</span></h3>



<pre class="wp-block-verse">Sub ブック内の画像軽量化()

Dim SelectPictures As Picture '対象の写真
Dim LeftPosition As Double, TopPosition As Double '左端・上端からの距離
Dim CycleBook As Worksheet '対象のシート

For Each CycleBook In Worksheets 'シートを繰り返し格納
　CycleBook.Activate 'シートをアクティブ
　　For Each SelectPictures In ActiveSheet.Pictures　
　　If　TypeName(SelectPictures)&lt;>"OLEObject"Then
　　　SelectPictures.Select
　　　LeftPosition=SelectPictures.Left
　　　TopPosition=SelectPictures.Top
　　　Selection.Cut
　　　ActiveSheet.PasteSpecial Format:="図(JPEG)"
　　　Selection.Left=LeftPosition
　　　Selection.Top=TopPosition
　　　EndIf
　Next
Next
End Sub</pre>



<h2 class="wp-block-heading"><span id="toc5">&#x2b1b;︎写真が容量が大きい理由</span></h2>



<p>まず、プログラムを紹介するにあたり<br>なぜ、<strong><span class="marker-under">写真の容量が多いか理解</span></strong>しておきましょう。</p>



<p>見本でフリー素材の図を用意しました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="608" height="400" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-67-1.jpg" alt="" class="wp-image-3489" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-67-1.jpg 608w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-67-1-300x197.jpg 300w" sizes="(max-width: 608px) 100vw, 608px" /></figure>



<p><br>綺麗ですねー！</p>



<p>では図を拡大してみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="998" height="662" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-67-2.jpg" alt="" class="wp-image-3490" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-67-2.jpg 998w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-67-2-300x199.jpg 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-67-2-768x509.jpg 768w" sizes="(max-width: 998px) 100vw, 998px" /></figure>



<p><br>図を拡大してみましょう。</p>



<p><strong><span class="marker-under">拡大しても画質は綺麗</span></strong>ですね。<br>実はこの現象が容量増加の原因となります。</p>



<p>原理を説明すると、現在のサイズは写真本来のサイズが100％でなく<br><strong><span class="marker-under">現在のサイズ以上の画質を持っている</span></strong>ことになります。<br>言い方を変えれば<strong><span class="marker-under">余分な容量を使っている</span></strong>ということになります。</p>



<p>なので今回は現在のサイズに合わせて容量を適正にする方法です。<br>では本題に移りましょう。</p>



<h2 class="wp-block-heading"><span id="toc6">&#x2b1b;︎図を軽量化するプログラム</span></h2>



<p>ではプログラムを紹介します。<br>先程の説明で容量の増加の原因は余分な容量を写真が抱えている<br>ことが原因でした。</p>



<p>解決する方法として<strong><span class="marker-under">対象の図を切り取って再度そのサイズで<br>図として貼り付けます</span></strong>。そうするとそのサイズに合わせた容量で<br>貼り付けるので、その差ぶんの容量が減る仕組みです。</p>



<p>プログラムの構造を紹介します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>対象の図.Select<br>Selection.Cut<br>ActiveSheet.PasteSpecial Format:=“図 (JPEG)”</p>
</blockquote>



<p>では説明です。<br>1行目の<strong><span class="marker-under-red">「対象の図.Select」では軽量化したい図を選択</span></strong>します。<br>2行目の<strong><span class="marker-under-red">「Selection.Cut」では先程選択した図を切り取り</span></strong>ます。<br>3行目の<strong><span class="marker-under-red">「ActiveSheet.PasteSpecial Format:=“図 (JPEG)”」<br>では切り取った写真を今のサイズの容量に合わせて貼り付け</span></strong>ます。</p>



<p>これで1つの対象の図を軽量化することができます。<br>後はブックまたはシート内の全ての写真を繰り返し選択して<br>上記の処理を行えばいいだけです。</p>



<p>では実践編を見てみましょう。</p>



<h2 class="wp-block-heading"><span id="toc7">&#x2b1b;︎対象シート内の写真を軽量化する</span></h2>



<p>ではこれまでの説明した内容をまとめて<br><strong><span class="marker-under">シート内の写真をすべて軽量化</span></strong>してみましょう。</p>



<p>まず、シート内の<strong><span class="marker-under">写真を繰り返し選択するプログラム</span></strong>を紹介します。<br>プログラムはこちらです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>For Each <span class="bold-red">変数</span> In ActiveSheet.Pictures</p>



<p>&#8216;ここに処理プログラム</p>



<p>Next</p>
</blockquote>



<p>これで<strong><span class="marker-under-red">シート内の写真を繰り返し変数に入れていきます。</span></strong></p>



<p>もう一つ課題があります。<br>それは選択した写真が「ActiveX」でないことを確認しないといけません。</p>



<p><strong><span class="marker-under-blue">「ActiveX 」とは開発タブの「挿入」にある「ActiveXコントロール」が<br>該当</span></strong>します。なぜ、ActiveX出ないことを確認する必要があるかというと<br>「Pictures 」で繰り返し変数に格納してますが、ActiveXも対象となってしまいます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="939" height="332" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-67.png" alt="" class="wp-image-3491" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-67.png 939w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-67-300x106.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-67-768x272.png 768w" sizes="(max-width: 939px) 100vw, 939px" /></figure>



<p>さらにActiveXでVBAを動かしている人も多いでしょうから<br>軽量化にするプログラムを実行すると<strong><span class="marker-under-blue">ActiveXが図になってしまう</span></strong>ということに<br>なりかねません。</p>



<p>そこで<strong><span class="marker-under-blue">ActiveXか判別できるプログラム</span></strong>は下記のようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>If TypeName(<span class="bold-red">変数</span>) &lt;&gt; “OLEObject” Then<br>’ここに処理内容<br>End If</p>
</blockquote>



<p>条件の<strong><span class="marker-under">「OLEObject」とはActiveXを含むので<br>OLEObjectでないことを条件として処理します。</span></strong></p>



<p>さらにもう一つ課題があります。</p>



<p>それは<strong><span class="marker-under-red">切り取った位置と貼り付けた位置</span><span class="marker-under-red">が</span><span class="marker-under-red">異なる</span></strong>ことです。<br>手動で切り取ってみればわかるのですが、貼り付けの位置は現在選択しているセルになります。</p>



<p>そこで、<strong><span class="marker-under-red">切り取る前に現在の位置を記録しておき<br>貼り付けた際には記録した位置に戻す必要があります</span></strong>。</p>



<p>プログラムはこちらです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><span class="bold-blue">左端からの写真の距離変数</span> = <span class="bold-red">変数</span>.Left<br><span class="bold-green">上端からの写真の距離変数</span> = <span class="bold-red">変数</span>.Top</p>



<p>&#8216;ここに写真を切り取って貼り付けるプログラム</p>



<p>Selection.Left = <span class="bold-blue">左端からの写真の距離変数</span><br>Selection.Top = <span class="bold-green">上端からの写真の距離変数</span></p>
</blockquote>



<p>こうなります。<br>左端・上端からの写真の距離を変数に格納しておき、<br>貼り付け後に写真の位置を元の位置に戻します。</p>



<p>では総まとめです。<br>これまでの切り取って写真で貼り付ける、シート内の写真を順次選択する、<br>写真の位置を元に戻すプログラムを一つにします。</p>



<p>結果はこのようになります。</p>



<pre class="wp-block-verse">Sub シート内の画像軽量化()

Dim<span class="bold-red"> SelectPictures</span> As Picture '対象の写真
Dim <span class="bold-blue">LeftPosition</span> As Double, <span class="bold-green">TopPosition</span> As Double '左端・上端からの距離

For Each <span class="bold-red">SelectPictures</span> In ActiveSheet.Pictures
　If TypeName(<span class="bold-red">SelectPictures</span>) &lt;> "OLEObject" Then
　　<span class="bold-red">SelectPictures</span>.Select
　　<span class="bold-blue">LeftPosition</span>=<span class="bold-red">SelectPictures</span>.Left
　　<span class="bold-green">TopPosition</span>=<span class="bold-red">SelectPictures</span>.Top
　　Selection.Cut
　　ActiveSheet.PasteSpecial Format:="図(JPEG)"
　　Selection.Left=<span class="bold-blue">LeftPosition</span>
　　Selection.Top=<span class="bold-green">TopPosition</span>
　End If
Next

End Sub</pre>



<p>これで完成です。<br>今回は見本で下図のようなシートを用意しました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="634" height="422" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-68.jpg" alt="" class="wp-image-3492" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-68.jpg 634w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-68-300x200.jpg 300w" sizes="(max-width: 634px) 100vw, 634px" /></figure>



<p>シートの容量を見てみましょう。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="38" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-68-1024x38.png" alt="" class="wp-image-3493" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-68-1024x38.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-68-300x11.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-68-768x28.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-68.png 1168w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>「<strong><span class="marker-under"><span class="bold-red">3152KB</span>」と、なかなか大きいですね。</span></strong></p>



<p>これをプログラムを実行するとこのようになりました。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="139" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-69-1024x139.png" alt="" class="wp-image-3494" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-69-1024x139.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-69-300x41.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-69-768x104.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-69.png 1173w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong><span class="marker-under">「<span class="bold-red">288KB</span>」と容量が10倍以上小さく</span></strong>なっていますね。</p>



<h2 class="wp-block-heading"><span id="toc8">&#x2b1b;︎対象ブック内の写真を軽量化する</span></h2>



<p>今度はブック内に範囲を広げましょう。<br>考え方は先程と同様です。</p>



<p><strong><span class="marker-under">シート内の写真の軽量化の処理を<br>ブック内にあるシートすべて繰り返し処理</span></strong>をすれば可能です。</p>



<p>ではブック内のシートをアクティブにする繰り返しプログラムを<br>紹介したいと思います。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Dim 変数　As Worksheet</p>



<p>For Each 変数 In ThisWorkbook.Worksheets</p>



<p>変数.Activate<br>’ここに処理<br>Next</p>
</blockquote>



<p>これでアクティブブック内のシート全ての処理ができます。</p>



<p>では先ほどのプログラムに追加してみましょう。<br>このようになります。</p>



<pre class="wp-block-verse">Sub ブック内の画像軽量化()

Dim SelectPictures As Picture '対象の写真
Dim LeftPosition As Double, TopPosition As Double '左端・上端からの距離
Dim CycleBook As Worksheet '対象のシート

For Each CycleBook In Worksheets 'シートを繰り返し格納
　CycleBook.Activate 'シートをアクティブ
　　For Each SelectPictures In ActiveSheet.Pictures　
　　If　TypeName(SelectPictures)&lt;>"OLEObject"Then
　　　SelectPictures.Select
　　　LeftPosition=SelectPictures.Left
　　　TopPosition=SelectPictures.Top
　　　Selection.Cut
　　　ActiveSheet.PasteSpecial Format:="図(JPEG)"
　　　Selection.Left=LeftPosition
　　　Selection.Top=TopPosition
　　　EndIf
　Next
Next
End Sub</pre>



<p>これで先ほどシート内の写真を軽量化しましたが<br>ブック単位で軽量化することができます。</p>



<h2 class="wp-block-heading"><span id="toc9">&#x2b1b;︎公式の説明</span></h2>



<p>わかりやすいように説明したため公式と使用する語句が異なりますが マイクロソフト公式の説明については下記のリンクを参照してください。☟</p>



<p><a href="https://docs.microsoft.com/ja-jp/office/vba/api/excel.worksheet.pastespecial">Worksheet.PasteSpecial メソッド (Excel) | Microsoft Docs</a></p>



<h2 class="wp-block-heading"><span id="toc10">&#x2b1b;︎注意点</span></h2>



<p>今回紹介した方法は、<span class="marker-under"><strong>現在の写真のサイズに合わせて<br>画質を揃える方法</strong></span>でした。</p>



<p>しかし言い換えると、これまでは拡大しても画質が綺麗だったにも<br>かかわらず、<strong><span class="marker-under">プログラム実行後は拡大すると画質が悪くなります。</span></strong></p>



<p>写真を使いまわしたい場合は別のバックアップ等取っておく<br>必要がありますので、実行の際は気をつけてください。</p>



<h2 class="wp-block-heading"><span id="toc11">&#x2b1b;︎まとめ</span></h2>



<p>いかがだったでしょうか。<br>エクセルで図を貼り付ける機会がたくさんある方は<br>ファイルが重くなってないか確認してみてください。</p>



<p>重ければ入力や動作が遅くなる上<br>添付して送信する際にも時間がかかるなど<br>いいことはありません。</p>



<p>是非参考にしてみてください<br>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%86%99%e7%9c%9f%e3%81%ae%e8%bb%bd%e9%87%8f%e5%8c%96%ef%bc%81%e3%82%b7%e3%83%bc%e3%83%88%e3%83%bb%e3%83%96%e3%83%83%e3%82%af%e5%86%85%e3%81%ae/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3488</post-id>	</item>
	</channel>
</rss>
