質問: nothing end sub
回答: こんにちは、 エディターの問題でしょうか?変数内やプロパティなどの前にある半角スペースが気になります。。コンパイルできていますか?投稿用に書き直したのでしょうか、あと、型はともかくとして、変数は宣言しましょう。 ご質問のコードをコピペで回答します。 >一旦、下記コードのようにエクセルファイル4行目の値を値貼りつけしてから実行するとうまくいきました。 なるほど、それで同じ場所に.pastespecial paste:=xlpastevalues しているのですね。 取り敢えず、 >ファイルaの4行目には関数を入れているため、できれば関数はそのまま残した であるなら、不要なので削除 workbooks .open filename:= desktop path & "\管理\ファイルb.xlsx" ここは、取り敢えず開かれると仮定して 目的のシートが表示されている保証はありますか?例えばファイルb.xlsxはシートが1つしかないのであれば良いのですが、、、どうでしょう? (自分使用のツール、プログラムなら良いけれど、目的シートを表示させるくらいは必要かと) ここを値貼り付けにすればよいのです。 多分、自動記録を改造したものなのでしょうが、普通のコピペになっていますね。 rows("4:4").select selection .copy range("a1").select workbooks .open filename:= desktop path & "\管理\ファイルb.xlsx" n = cells(rows .count, "a").end(xlup).row + 1 range("a" & n).select activesheet .paste cells .select application .cutcopymode = false なさりたい事は aブックの"ファイルa"シート内容をbブックのどこか解らないシートの最終行から下に値貼り付けするのですよね。 自動記録でもう一度この動作を記録してみましょう。 記録する時は、あらかじめbブックを開いておきます。 多分、 rows("4:4").select selection.copy windows("bブック.xlsx").activate rows("4:4").select selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _ :=false, transpose:=false range("a1").select application.cutcopymode = false windows("aブック.xlsm").activate こんな感じかな、、で windows("bブック.xlsx").activate は開いている時の対象なので これを、 workbooks .open filename:= desktop path & "\管理\ファイルb.xlsx" n = cells(rows .count, "a").end(xlup).row + 1 range("a" & n).select とすれば、値貼り付けが出来ると思います。 あと、気になるのは application .screen updating = false ''画面停止 のタイミング、現状は、noで抜けるとそのままになりますよ。 なので、実行時のみで良いと思います。 >エラー保護含め改善策をお教えいただければ幸いです。 色々必要ですが、先に挙げたシートの問題やブックが無かった時の処理などですかね。 =行ってほしいところ= そこに行く前に、 変数宣言、作成したプロシージャのデバッグ(コンパイル)と この時2つのブック、2つのシートが登場しますが、ブック、シートを変数にセットするかwithなどで(明示して)まとめ、整理してみましょう select selectionの添削なども考えてみましょう。 =行ってほしいところend= 正直、コードを書く方が簡単なのだけれど、頑張りました。 エラールーチンの追加は、限定条件で良いので期待する結果が出力されるコードを作ってからに、で良いでしょうか。