|
ありがとうございます!G-Luck さん
ものすごく勉強になります!
でもできればコピー先が別のシートとかだったらどうなりますかね?
ご返答ください。
>条件を下記として、コードを書いてみました
> コピー元をA1
> 貼り付け位置を B1とし、同じシート上にある。
> 対象シートを、現在表示している。
> 数式が入力されていてもコピーしない。(=""が入力されていてもコピーしない)
>
>Option Explicit
>
>Private Sub myCopy()
>
> Dim mySheet As Worksheet
> '対象セルを含むシート、
> ’ただし、コピー元と貼り付け先が同じシートに含まれる。
> Dim buf As Variant '一時保持 貼り付け先の値
> Dim i As Long '繰り返し用
>
> '現在のシートを取得する
> Set mySheet = ActiveSheet
>
> 'コピー元のデータを取得する
> mySheet.Range("A1").Copy
>
> 'コピー先を選択する。
> mySheet.Range("B1").Select
>
> '繰り返しによって、空白セルを探す
> For i = 1 To 100
> '無限ループ回避のため、forを用いています。Doを利用してもいいです。
> buf = Selection.Value '値の取得
> If TypeName(buf) = "Empty" Then '空白かの確認
> mySheet.Paste Destination:=Selection '貼り付け
> Exit For 'ループを抜ける
> End If
> Selection.Offset(1, 0).Select
> '空白の場合、ひとつ下を選択する
> Next i
>
>End Sub
|
|