フッターでの数式の使用(Microsoft Excel)
Skyeのワークシートには、重要な3つのセルがあります。 1つのセルには開始日が含まれ、2番目のセルには終了日が含まれ、3番目のセルにはそれらの日付間のトランザクションの合計が含まれます。彼は、これら3つのデータを動的に組み込んだ印刷ページのフッターを作成したいと考えています。彼は、これらの値を反映できるように数式をフッターに取り込む方法があるかどうか疑問に思います。
数式をフッターに入力できないため、Excelでこれを行う組み込みの方法はありません。それらはプログラムによって数式として認識されません。
ただし、マクロを使用してフッターを設定することはできます。このアプローチのために、開始日がセルE1に含まれ、終了日がセルE2に含まれ、トランザクションの合計がセルE3に含まれていると仮定します。その場合、次のようなマクロを使用できます。
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim sTemp As String With Worksheets("Sheet1") ' Set wording for date range sTemp = .Range("E1").Text & " through " & .Range("E2").Text sTemp = sTemp & " (" & .Range("E3").Text & ")" .PageSetup.CenterFooter = sTemp End With End Sub
このマクロには注意すべきことがいくつかあります。まず、マクロはSheet1という名前のワークシートにフッター情報のみを設定しますが、このワークシート名は必要に応じて変更できます。次に、.Valueプロパティの代わりに.Textプロパティが使用されていることに注意してください。次に示すように、実際にはセルの内容を参照する方法は3つあります。
sTemp = Worksheets("Sheet1").Range("E1") sTemp = Worksheets("Sheet1").Range("E1").Value sTemp = Worksheets("Sheet1").Range("E1").Text
最初の2つのアプローチは同等です。 sTempをセルの内容に等しく設定します。 3番目のアプローチは異なります。 sTempをセルのフォーマットされたテキストと等しく設定します。つまり、sTempは、セルでフォーマットされているため、セルE1にあるものと等しくなります。日付と合計を処理しているので、これは使用したいアプローチであり、マクロで使用されたものです。
第3に、マクロは最終的にsTemp変数にフッターを設定します。記述されているように、マクロは次のようなフッターを作成します。
1 Mar 2016 through 15 Mar 2016 ($1,234.56)
繰り返しますが、実際の外観は、セルE1、E2、およびE3のフォーマットによって異なります。マクロは「スルー」という単語を追加し、トランザクションの合計を括弧で囲みます。これらの追加要素は、マクロ内で直接変更できます。
第4に、マクロは、フォーマットされたsTemp文字列(フッター)をワークシートのページフッターの中央位置に割り当てます。フッターを他の場所に配置したい場合は、.CenterFooterプロパティを.LeftFooterまたは.RightFooterに変更するだけです。
最後に、このマクロはThisWorkbookモジュールに追加されるように設計されていることに注意する必要があります。ブックが印刷される直前に自動的に実行されます。ただし、印刷プレビューでワークシートを確認してもトリガーされないため、実際に印刷する前に表示される内容を信頼することはできません。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]
。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(559)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。