dポイントプレゼントキャンペーン実施中!

マクロ VBA
ハイパーリンクで飛んだ先の左を範囲指定して印刷 をしたいです。
("K23")の中身が変わってもそれに対応できるようにしたいんですが、どうかしたらいいのか…
飛んだ先の左を範囲指定してコピーという指示にするためにはどうしたら…

Range("K23").Select
    Windows("印刷するブック").Activate
    Application.Goto Reference:="R2864C3"
    Range("A2864:C2870").Select
    Range("C2864").Activate
    Selection.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
    Windows("ハイパーリンクが置いてあるブック").Activate
End Sub

A 回答 (1件)

こんばんは、


なさりたい事がイマイチわかりませんが、
K23セルの内容で選択範囲を変えたいと言う事でしょうか?

示されているコードを基に書き替えてみましたが、下記の条件が必須になります。
K23セルの値(内容)はセルを特定するアドレス(R1C1参照形式またはA1形式または名前)正し単一セル
K23セルの値(内容)はA列、B列のアドレスおよび指定できないアドレス(存在しないアドレス、文字列など)は不可
’Application.Gotoで選択されているセルを基軸としてOffset、Resizeしているので参照できない範囲が指定さ(含ま)れると実行時エラー1004が返ります。
?印刷するブックは、1シートしかないのでしょうか、、

Dim axis_Address As String
axis_Address = Range("K23").Text
Windows("印刷するブック").Activate
Application.Goto Reference:=axis_Address
Selection.Offset(, -2).Resize(7, 3).Select
Selection.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
Windows("ハイパーリンクが置いてあるブック").Activate

ブックがまたがっているようなので
axis_Address = Range("K23").Text 変数に代入しています。

もし、K23セルにR1C1参照形式を入力しないと言う事なら

Dim axis_Address As String
axis_Address = Range("K23").Text
Windows("印刷するブック").Activate
Range(axis_Address).Offset(, -2).Resize(7, 3).PrintOut From:=1, To:=1, Copies:=1, Collate:=True
Windows("ハイパーリンクが置いてあるブック").Activate

.Offset(, -2).Resize(7, 3) これで範囲を指定しています。
基軸セルから.Offset(, -2) 行を変えず左に2つ(ご質問の場合C列なのでA列になる)行方向は省略されている
基軸から.Resize(7, 3) 単一セルを行下方向に7行、列右方向に3列範囲を広げる

いずれも’’エラー処理を追加する必要があります。
また、シートオブジェクトが明示されていない点は気になりますが、

ご質問を読み違いしている可能性があるので、この辺で
    • good
    • 0

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