電子書籍の厳選無料作品が豊富!

VBA初心者です。
VBAで、ページ設定のヘッダーにシートのセル値を読み込み、ヘッダー内の位置を右寄せにして、かつ フォントサイズを大きくするコードはどう表記すればいいのでしょうか。

例えば、ネットで調べて、左ヘッダーへ A1セル値を読み込むコードは、下記だとわかり、読み込むことがきました。

With ActiveSheet.PageSetup
.LeftHeader = Range("A1").Value
End with

また、右寄せの書式設定は → "&R"
フォントサイズ(ポイント16)は → ”&16” を付けることだとわかりました。

ただし、上記の 読み込んだセル値を、「サイズを16」にして、「位置を右寄せ」にする書き方がわかりません。
シートのセル値の書式は「標準」または「文字列」です。

ActiveSheet.PageSetup
.LeftHeader = "&R" Range("A1").Value
と書いてマクロを実行しても、セル値自体が読み込まれませんでした。
また、
ActiveSheet.PageSetup
.LeftHeader = Range("A1").Value
.LeftHeader = "&R"
と書いても、セル値は読み込まれませんでした。

その他、表記順を変えてみたり、「&」を追加してみたり、「” ”」を入れてみたりと、いろいろ試したのですが、どうしても思うようにできません。

どのように表記すればいいのか、ご教示をお願いします。

A 回答 (5件)

こんにちは、


私の環境Windows10 Excel 2016 32bit バージョン2102クリック
とExcel2013では再現されませんでした。(実行出来ました)
With ThisWorkbook.Sheets(1)
.PageSetup.LeftHeader = "&R&16" & .Range("A1").Text
End With
従って、Excelはプリンタドライバを読み込んでいますので
Officeの不具合やプリンター側に原因がありそうですね。

プリンタドライバなどを確認してみてはいかがでしょう。
また、アクティブプリンタをMicrosoft Print to PDFなどに変更して検証することも出来るかと思います。

>他の方法を考えたいと思います。
お力になれず、残念です。。
    • good
    • 0
この回答へのお礼

ありがとうございます。

>プリンタドライバなどを確認してみてはいかがでしょう。

アクティブプリンタをMicrosoft Print to PDFや他のプリンタに変更してやってみましたが、変化はありませんでした。

ヘッダーの左右を換えてみましたが、これも変化がありません。(読み込めず)
また、書式を センター(”&C”)にしても同じです。
ただし、フォントサイズの ”&16” をいれたコードの時に、印刷プレビューで確認すると非常に大きいフォント(150~200?)がヘッダー部分でなく、シート面に現れています。それも意図したセル値の文字列でなく一部分が欠けたようなバグった感じです。
ヘッダーへの読み込み時に、何らかの設定が違っているのかもしれません。

ということで、おっしゃるように Officeの不具合かもしれませんので、やはり諦めるしかなさそうです。

お手間をお掛けして申し訳ありません。
ご丁寧にありがとうございました。

お礼日時:2021/01/15 16:12

#2です


>下記のようにもやってみても、読み込めませんでした。
>.LeftHeader = "&R" & Range("A1").Value、、、
手数をかけますが、今一度下記のコード単体で確認してみてください。
もし、うまくいかない様であれば、Excelのバージョンなどを追記して頂いた方が良いと思います。
Sheets(1)は、インデックス指定なので対象のシートをインデックス又は名前で明示してください。

標準モジュールへ
Sub test()
With ThisWorkbook.Sheets(1)
.PageSetup.LeftHeader = "&R/&16" & .Range("A1").Text
End With
End Sub

クリアー
Sub Sample()
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
End With
End Sub
    • good
    • 0
この回答へのお礼

Qchan1962さん、ありがとうございます。

>標準モジュールへ
Sub test()
With ThisWorkbook.Sheets(1)
.PageSetup.LeftHeader = "&R/&16" & Range("A1").Text
End With
End Sub

ご指示の単体で試しましたが、やはりA1セル値は読み込めませんでした。
「"&R/&16" &」の部分を除いて試すと、セル値は読み込めます。
どうやら書式コードを付加すると 読み込めないようです。

ちなみに、Excel は 「Microsoft 365」ですが、「Office 2016」で試しても同じ状態でした。

今回一覧表を作成する際にヘッダー部分を見易くするようにしたかったのですが、諦めて他の方法を考えたいと思います。

大変ご尽力をいただき、ありがとうございました。

お礼日時:2021/01/15 13:37

マクロの記録を利用して、記載されたコードを参考にすることはできませんか?

    • good
    • 0

#1


確認しなくてごめんなさい。
.LeftHeader = "&R&16" & Range("A1").Value
    • good
    • 0

こんばんは、


確か / だったかと
.LeftHeader = "&R/&16" & Range("A1").Value
    • good
    • 0
この回答へのお礼

早速の回答、ありがとうございます。

ご教示いただいた構文でやってみましたが、やはりセル値は読み込めません。
「右寄せ」のみで、下記のようにもやってみても、読み込めませんでした。
.LeftHeader = "&R" & Range("A1").Value

お礼日時:2021/01/14 20:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A