<?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>印刷設定 | VBA・GAS・Pythonで仕事を楽しく効率化</title>
	<atom:link href="https://officevba.info/tag/%E5%8D%B0%E5%88%B7%E8%A8%AD%E5%AE%9A/feed/" rel="self" type="application/rss+xml" />
	<link>https://officevba.info</link>
	<description>仕事の役に立つVBA・GAS・Pythonのコードを紹介していきます。</description>
	<lastBuildDate>Sun, 14 Jun 2020 23:26:55 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://officevba.info/wp-content/uploads/2017/04/cropped-Excel_1-32x32.jpg</url>
	<title>印刷設定 | VBA・GAS・Pythonで仕事を楽しく効率化</title>
	<link>https://officevba.info</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ワークシートの印刷設定を変更するExcelVBAコード</title>
		<link>https://officevba.info/pagesetup/</link>
					<comments>https://officevba.info/pagesetup/#respond</comments>
		
		<dc:creator><![CDATA[okumasahito]]></dc:creator>
		<pubDate>Sun, 14 Jun 2020 23:26:55 +0000</pubDate>
				<category><![CDATA[シートの操作]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[印刷設定]]></category>
		<guid isPermaLink="false">http://officevba.info/?p=2142</guid>

					<description><![CDATA[目次 配布資料には印刷設定をしておくことが多い私が印刷設定で必要なこと印刷設定を行うExcelVBAのサンプルコード印刷設定を行うVBAコードのトラブル？エラーについて 配布資料には印刷設定をしておくことが多い 私自身は [&#8230;]]]></description>
										<content:encoded><![CDATA[
  <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">配布資料には印刷設定をしておくことが多い</a></li><li><a href="#toc2" tabindex="0">私が印刷設定で必要なこと</a></li><li><a href="#toc3" tabindex="0">印刷設定を行うExcelVBAのサンプルコード</a></li><li><a href="#toc4" tabindex="0">印刷設定を行うVBAコードのトラブル？エラーについて</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">配布資料には印刷設定をしておくことが多い</span></h2>
<p>私自身は紙でファイルを使う機会が少ないのですが、紙の文化が根強く残る業態のため取引先に送る資料には印刷設定をしておくことが多いです。</p>
<p>たくさんのファイルのたくさんのページに対して印刷設定をするのが面倒なのでExcelVBAで実行できる方法を調べてみました。</p>
<p>今回は印刷設定の機能のうち、私がよく使用するプロパティの部分をご紹介します。</p>
<h2><span id="toc2">私が印刷設定で必要なこと</span></h2>
<p>私が印刷範囲を設定する際に必要な項目は下記の通りです。</p>
<li>①印刷範囲の設定</li>
<li>②改ページ位置の変更（解除と設定）</li>
<li>③上下左右の余白の設定</li>
<li>④タイトル行の設定</li>
<li>⑤印刷の向き</li>
<li>⑥ページ数の設定（縦何ページ×横何ページに設定するか）</li>
<p>他にも設定できるものはたくさんありますが、とりあえずこれだけ抑えていれば私の普段使いには十分です。</p>
<h2><span id="toc3">印刷設定を行うExcelVBAのサンプルコード</span></h2>
<p>今回私が作成したExcelVBAコードは下記の通りです。</p>
<p>50行に1回改ページを入れる設定にしています。<br />
数字を変更すると他の設定も可能です。</p>
<div class="VBACode">Sub 印刷設定()<br />
<br />
<span class="VBA_Tab1"><span class="VBA_Comment0">’印刷範囲の設定はA1形式なのでAddressを使う</span></span><br />
<span class="VBA_Tab1">ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(Rows.Count, 6).End(xlUp)).Address</span><br />
<br />
<span class="VBA_Tab1"><span class="VBA_Comment0">’改ページをすべて削除</span></span><br />
<span class="VBA_Tab1">ActiveSheet.ResetAllPageBreaks</span><br />
<br />
<span class="VBA_Tab1">Dim i As Long</span><br />
<span class="VBA_Tab1"><span class="VBA_Comment0">’50行に1回改ページを追加</span></span><br />
<span class="VBA_Tab1">For i = 2 To Cells(Rows.Count, 6).End(xlUp).Row</span><br />
<span class="VBA_Tab2">If i Mod 50 = 0 Then</span><br />
<span class="VBA_Tab3">ActiveSheet.HPageBreaks.Add before:=Cells(i + 1, 1)</span><br />
<span class="VBA_Tab2">End If</span><br />
<span class="VBA_Tab1">Next i</span><br />
<br />
<span class="VBA_Tab1">With ActiveSheet.PageSetup</span><br />
<br />
<span class="VBA_Tab2">.LeftMargin = Application.InchesToPoints(0)   <span class="VBA_Comment">’左の余白</span></span><br />
<span class="VBA_Tab2">.RightMargin = Application.InchesToPoints(0)  <span class="VBA_Comment">’右の余白</span></span><br />
<span class="VBA_Tab2">.TopMargin = Application.InchesToPoints(0)    <span class="VBA_Comment">’上の余白</span></span><br />
<span class="VBA_Tab2">.BottomMargin = Application.InchesToPoints(0) <span class="VBA_Comment">’下の余白</span></span><br />
<br />
<span class="VBA_Tab2">.Orientation = xlPortrait   <span class="VBA_Comment">’縦向き</span></span><br />
<span class="VBA_Tab2"><span class="VBA_Comment0">’.Orientation = xlLandscape <span class="VBA_Comment0">’横向き</span></span><br />
<br />
<span class="VBA_Tab2">.PaperSize = xlPaperA4  <span class="VBA_Comment">’A4サイズで印刷</span></span><br />
<span class="VBA_Tab2">.Order = xlDownThenOver <span class="VBA_Comment">’印刷の順序（今回は列側を1ページにしているので関係なし）</span></span><br />
<br />
<span class="VBA_Tab2">.PrintTitleRows = &#8220;$1:$1&#8221; <span class="VBA_Comment">’行のタイトル設定</span></span><br />
<br />
<span class="VBA_Tab2">.Zoom = False<span class="VBA_Comment">’用紙に合わせて拡大縮小をする場合Falseを指定</span><br />
<span class="VBA_Tab2">.FitToPagesWide = 1       <span class="VBA_Comment">’列側のページ数</span></span><br />
<span class="VBA_Tab2">.FitToPagesTall = False   <span class="VBA_Comment">’行のページ指定（指定しない場合、Falseを記入）</span></span><br />
<br />
<span class="VBA_Tab1">End With</span><br />
<br />
End Sub</div>
<h2><span id="toc4">印刷設定を行うVBAコードのトラブル？エラーについて</span></h2>
<p>印刷設定にはPrintCommunicationというプロパティがあり、これはプリンタとの通信を規定するものになります。</p>
<p>印刷設定を行う前に「Application.PrintCommunication = False」と記載しておいて、プリンタとの接続を切ってから印刷設定をし、最後に「Application.PrintCommunication = True」として印刷設定を戻すことで、処理が高速化されるとよく紹介されています。</p>
<p>私の普段業務を行っている環境で、このPrintCommunicationの設定をコードに入れていると、1つのファイルに印刷設定の処理をしているときは問題なかったのですが、フォルダの中に含まれているファイルにすべて印刷設定を行ったりするコードを記載すると印刷設定が反映されないトラブルがありました。</p>
<p>原因は特定できていませんが、PrintCommunicationのコードを削除することできちんと動作するようになりましたので、PrintCommunicationが影響しているのは間違いなさそうです。</p>
<p>今回の印刷設定のVBAコードはそもそも高速化が必要な処理ではないため、当面このコードについては使わないようにしていきたいと思います。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://officevba.info/pagesetup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
