[[20210513174945]] 『RangeとCellsによるPrintAreaの指定』(ゆき) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『RangeとCellsによるPrintAreaの指定』(ゆき)

お世話になります、ゆきと申します。
基礎的なところだと思うのですが、周りにVBAの関係で質問できる方がいないので失礼します。

Excelのシートの一部範囲を変数(RangeとCellsの組み合わせ)で指定して、PDFで印刷したいと考えており、以下のようなコードを作成しましたが、エラーが出てしまいました。
RangeやCellsの前に「.」を噛ませてもみた(それが正しいのかもよくわかっていません)のですが、上手くいかず、どこを修正すれば良いのか手詰まりになっています。
申し訳ありませんが、どのように修正したらよいのかご教示いただきませんでしょうか。

【コード】
Sub Set_Save()

Dim T_Cell As String
Dim B_Cell As String
Dim myRange As Range
Dim S_FilePath As String
Dim S_FileName As String

S_FilePath = Range("A1").Value
S_FileName = S_FilePath & "\" & Range("A2").Value & ".pdf"

Application.ScreenUpdating = False

Range("A1").Activate

Set myRange = Range("A:A").Find("合算結果", , xlValues, xlWhole)
If myRange Is Nothing Then

    T_Cell = InputBox("タイトル行を見つけられませんでした。印刷範囲の最初の行を指定してください", "20")
Else
    T_Cell = MyRange.Row
End If

B_Cell = Cells(Rows.Count, "C").End(xlUp).Row

With ActiveSheet.PageSetup

    .Orientation = xlPortrait
    .Zoom = False
    .FitToPagesTall = 1
    .FitToPagesWide = 1
    .PrintArea = Range(Cells(T_Cell, 1), Cells(B_Cell, 3))
End With

Sheets(printSheet).ExportAsFixedFormat Type:=xlTypePDF, _

    Filename:=S_FileName, _
    Quality:=xlQualityStandard, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=True

Application.ScreenUpdating = True

End Sub

【エラーの内容】
実行時エラー1004「参照が正しくありません」
.PrintArea = Range(Cells(T_Cell, 1), Cells(B_Cell, 3))のところに対して表示されます。
それ以降の行についてはまだ動作を確認できていませんが、念のため掲載しました。

ご面倒をおかけしますが、どうぞよろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


PrintAreaはString型で指定です
https://excel-ubara.com/excelvba1/EXCELVBA373.html

VBEで確認できてないですが
.PrintArea = Range(Cells(T_Cell, 1), Cells(B_Cell, 3)).address
とかで動くんじゃないですか
(砂糖) 2021/05/13(木) 18:37


早速のお返事ありがとうございました。
無事に動作しました(正確には、後続にもミスがあったので、それも修正したところ動作しましたが、ご教示いただいた内容で問題の箇所は通過できました)。
大変助かりました、初歩的なところで失礼いたしました。
(ゆき) 2021/05/17(月) 17:31

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.