まず基本方針として、セレクトやセレクション、アクティブなんたらを使わない(選択を動かさない)マクロを書けるようにします。
sub 印刷ver2()
’転記する
range("A3").value = cells(activecell.row, "A").value
’印刷する
worksheets("請求書").printout
end sub
何らかの理由でどーしても「これを選びたい」なら、それはそれとしてマクロの動作とは別に行います。
sub 印刷ver2a()
if activesheet.name <> "一覧" then
msgbox "一覧シートの対象データを選択してから実行"
exit sub
end if
cells(activecell.row, "A").select
range("A3").value = activecell.value
worksheets("請求書").printout
end sub
質問者
お礼
ありがとうございます。
しかし、回答していただいた内容が理解できませんでした。
sub 印刷ver2a()
if activesheet.name <> "一覧" then
msgbox "一覧シートの対象データを選択してから実行"
exit sub
end if
cells(activecell.row, "A").select
range("A3").value = activecell.value
worksheets("請求書").printout
end sub
とありますが、メッセージボックスは必要ありません。
また、このプロシージャだと、請求書を印刷したあとに、印刷した行のA列に
戻らないのではないでしょうか。
お礼
ありがとうございます。 しかし、回答していただいた内容が理解できませんでした。 sub 印刷ver2a() if activesheet.name <> "一覧" then msgbox "一覧シートの対象データを選択してから実行" exit sub end if cells(activecell.row, "A").select range("A3").value = activecell.value worksheets("請求書").printout end sub とありますが、メッセージボックスは必要ありません。 また、このプロシージャだと、請求書を印刷したあとに、印刷した行のA列に 戻らないのではないでしょうか。