プロが教えるわが家の防犯対策術!

急いでいます。
エクセル2003を使っているのですが、進まなくなってしまい困っています。

原本というシートのB39~U48にかけて簡単な表とコマンドボタン(”表追加”)を作成しました。
この表をコマンドボタンを押す度に、48行目以降に1行間隔置きでどんどんコピーして貼り付けが行われるように、VBAを組みたいのですがうまくいかず困っています。
作成した表がずれない様にうまく貼りつけしたいです。
どなたか知恵を貸してください。

A 回答 (2件)

質問の内容だけでは具体的にどのようにしたいのかがよくわかりません。



「作成済の表と同様の計算式などを最終行から1行空けて次行に追加したい」という事だと解釈すると方法としては

1.最終行の行番号を取得する。
2.B39からU48までをセルをコピーする。
3.最終行から1行空けたの次の行からコピーしたセル内容を複写する。

と言う方法で解決しませんか?

入力されている最終行の行番号を取得するにはSpecialCells(xlCellTypeLastCell)メソッドで値が入力されている最後のセルを選択して、その行番号を見つければいいかと思います。

最終行の行番号を取得するVBAとして参考までに
Dim myLastCell As Range
Dim r As Long

myLastCell = Range("A1").SpecialCells(xlCellTypeLastCell)
r = myLastCell.Row

ただし一度入力してデータ削除したセルがその表より下の行にあるとSpecialCells(xlCellTypeLastCell)メソッドではそこを指してしまうので、その場合の回避処理が必要になります。
その行の表内で本来値が入力されているはずの列の値が""であれば、Findメソッドなどを使って1行上を指し示すような処理を追加する必要があるかと思います。

そのあたりはご自身で勉強してみてください。
    • good
    • 0

どこからコピーしてどこに貼り付けますか?1行おきとはコピーするのが?貼り付けるのが?うまく行かないのはどの動きでしょうか?作成した表がずれると言うのはどういった現象でしょうか?



うまく動かない部分のVBAを公表することは出来ませんか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!