• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 動作の後、動作した行のA列にカーソルを移動)

VBAで動作した行のA列にカーソルを移動する方法

このQ&Aのポイント
  • VBAを使用してエクセル2010で動作した行のA列にカーソルを移動する方法について相談させてください。
  • 現在、一覧シートのA3セルからCtrl + ↓でA列の入力行の最下行に移動し、そのセルの値をコピーしてA3セルに貼り付けるプロシージャがあります。
  • 改良したい点は、最下行ではなくカーソルのある行のA列の値をA3セルに貼り付けること、また、印刷後にカーソルを印刷した行のA列に移動することです。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

まず基本方針として、セレクトやセレクション、アクティブなんたらを使わない(選択を動かさない)マクロを書けるようにします。 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

schuler
質問者

お礼

ありがとうございます。 しかし、回答していただいた内容が理解できませんでした。 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列に 戻らないのではないでしょうか。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

(1) 先頭から2行目のSelection.End(xlDown).Selectをコメントアウトする。(行頭に’を付ける) (2) 最後から2行目をSelection.End(xlRight).Selectにする

schuler
質問者

お礼

ありがとうございます。 Sub 印刷() Range("A3").Select Selection.Copy Range("A3").Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("請求書").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False Sheets("一覧").Select Selection.End(xlRight).Select End Sub で良いということでしょうか? これで動かしてみたのですが、うまくいきませんでした。 4行目以降のどこかのセルにカーソルがあったときに、その行のA列に移動してその値を コピーするという記述は入っていますか?

関連するQ&A

専門家に質問してみよう