2017-01-11 25 views
0

現在、以下のマクロを使用して、スプレッドシート「リファレンス」内のセルB3の内容に基づいてヘッダーをカスタマイズしています。Excel VBAでヘッダーエラーを作成する

現在、ヘッダーフォントが非常に大きくなっている問題が発生しています。ヘッダーが非常に大きくなるので、スプレッドシートを印刷すると(このファイルでよくする)、ページ全体を独占します。つまり、ヘッダーはプリント領域全体を覆い隠します。

私はどこでマクロに間違っているのか誰にも分かりませんが、なぜこの問題が発生しているのか、この問題を解決する方法についてのアイデアはありますか?

---- 

'========================================================================= 
' Custom Header based on value of specified cell 
'========================================================================= 

Sub HeaderFont() 

ActiveSheet.PageSetup.RightHeader = "&""Calibri,bold""&11" & Sheets("Reference").Range("B3") 

End Sub 
+0

何を取得しますか?あなたのコードは正常に動作し、 'Range(" B3 ")'のテキストから正しいヘッダを作成し、フォントを** Calibri、太字、11 **に設定します。あなたが得たい結果は何ですか? –

+0

大部分は問題なく動作しますが、ヘッダーが非常に大きくなることがあります。ヘッダーが常にマクロに設定された標準に準拠していることを確認したい - Calibri、Bold、11サイズのフォント。ヘッダーがマクロの指示されたフォントから壊れる原因になりますか? – Finley

答えて

0

多分、あなたは以下のコードのようなものに興味があるでしょう。 セル「B3」の文字列の長さをチェックし、長さに応じて(Select Caseを使用)、ヘッダーのフォントサイズを設定します。あなたのニーズに合わせてCaseの中の値を調整する必要があります。

Option Explicit 

'========================================================================= 
' Custom Header based on value of specified cell 
'========================================================================= 

Sub HeaderFont() 

Dim FntSize As Integer 

Select Case Len(Sheets("Reference").Range("B3")) 
    Case Is > 300 ' <-- length of string is more than 300 characters 
     FntSize = 11 

    Case Is > 200 ' <-- length of string is more than 200 characters 
     FntSize = 12 

    Case Else 
     FntSize = 13 

    ' you can add more Cases to have more scenarios 

End Select 

ActiveSheet.PageSetup.RightHeader = "&""Calibri,Bold""&" & FntSize & "" & Sheets("Reference").Range("B3") 

End Sub 
+0

実際にはなぜそれが起こっているのか考え出しただけです。しかし、私はそれが起こるのを避ける方法を考え出すのに役立つ必要があります。私は、フォントがサイズ11であることを指定します。文書名は、会社名の一部である番号3で始まります。ヘッダーテキストからフォントサイズを分けて、Excelを回避するにはどうすればいいですか?フォントサイズは113でなければならないと思うから? – Finley

+0

@Finley ok、私はあなたを助けたと思う –

関連する問題