- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA 他のブックへ値を返す)
Excel VBAで他のブックへ値を返す方法
このQ&Aのポイント
- Excel VBAを使用して他のブックに値を返す方法を学びたいです。
- 「備品」というブックと「不用品報告」というブックを作成し、ボタンをクリックすると「備品」のデータが「不用品報告」に順次入力されるようにしたいです。
- ActiveCell.Rowを使用して特定の行のデータを飛ばすことができないようです。別の方法や不具合の対処法について教えていただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
不用品報告をマクロの中で開いた時点で、アクティブセルはそっちのブック(の開いているシートの)になります。 それまで開いていたthisworkbookの(=マクロを起動した時点の)、アクティブセルではありません。 簡易な直し方: set workbook1=workbook.open(…不用品報告 thisworkbook.activate などのようにして、アクティブを引き戻してください。 別の対処法: sub macro1() dim w as workbook dim targetrow as long dim rx as long rx = activecell.row set w = workbooks.open(thisworkbook.path & ""\不用品報告.xlsx") activeworkbook.worksheets("廃棄一覧").select targetrow = range("C65536").end(xlup).row + 1 cells(targetrow, "G").value = thisworkbook.worksheets("一覧").cells(rx, 15).value cells(targetrow, "H").value = "報告する" w.close savechanges:=true msgbox "DONE" end sub
お礼
とてもスッキリする回答ありがとうございます。 無事望み通りのことができました。 しかも、自分のものよりシンプルなやり方まで教えていただき、とても参考になりました。 本当にありがとうございました。