マクロ初心者です。どこがまちがっているのかわかりません 【指示したい内容】 「売上」ワークシートをシート内の一番右端にコピーするコードを次の条件で記述する。 【作成条件】
マクロ初心者です。どこがまちがっているのかわかりません 【指示したい内容】 「売上」ワークシートをシート内の一番右端にコピーするコードを次の条件で記述する。 【作成条件】 ・シートのコピーには「Copy」メソッドを使用し、引数は参照シート(一番右端のシート)の後ろ(After)を指定する ・一番右端のシート位置は「Worksheets」プロパティのコレクション番号を「Count」プロパティで参照する ・シートの名前はセル「H1」の値と文字列"月売上"を連結演算子「&」でつなげたものを設定する ※「&」演算子:P.88参照(「&」の前後には必ずスペースを入力) 例)セル「H1」が数値の「2」でマクロを実行した場合、コピーしたシート名は「2月売上」になる セル「A3」から右下の終端セル(セル「E14」)のデータを削除するコードを次の条件で記述する 【作成条件】 ・削除範囲の参照方法:セル「A3」を基準にデータの終端(右及び下)を「End」プロパティで参照する ・基準になるセル「A3」の参照には「Range」プロパティを使用する ・データの削除には「ClearContents」メソッドを使用する 【作成したマクロ文】 Sub シートのコピー() Worksheets("売上").Copy _ After:=Worksheets(Worksheets.Count) Worksheets(2).Name = "(H1)" & "月売上" Range("A3", Range("A3").End(xlDown). _ End(xlToRight)).ClearContents End Sub 宜しくお願いします。
Visual Basic | Excel・60閲覧・50
ベストアンサー
>「売上」ワークシートをシート内の一番右端にコピーするコードを次の条件で記述する。 Worksheets("売上").Copy _ After:=Worksheets(Worksheets.count) ActiveSheet.Name = range("H1").Value & "月売上" >セル「A3」から右下の終端セル(セル「E14」)のデータを削除するコードを次の条件で記述する rightEnd = range("A3").End(xlToRight).address rightDownEnd = range(rightEnd).End(xlDown).ClearContents range("A3" & ":" & rightDownEnd ).ClearContents Rangeの記載の仕方がよくわかっていないようですので、 参考書なりサイトなりで、勉強して練習したほうがいいかと思います。 また今回はCells使ってませんが、 よく使いますので、 Range← →Cellsの変換もついでにやってたほうがいいかと思います。 右下は下記でもいいなら1回で取得できますね rightDownEnd = Cells.SpecialCells (xlCellTypeLastCell).ClearContents
質問者からのお礼コメント
通信教育で勉強中なもので、苦戦しながら作成しておりますがいただいたものを加工しなんとかいけました。ありがとうございました!
お礼日時:5/22 22:19