Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7873 / 13645 ツリー ←次へ | 前へ→

【36360】コピーした数式を同じ行のn列の値が1以上の時に直下のセルにコピーしたい もりもり 06/3/29(水) 22:00 質問[未読]
【36362】Re:コピーした数式を同じ行のn列の値が1以... Kein 06/3/29(水) 22:18 回答[未読]
【36369】Re:コピーした数式を同じ行のn列の値が1以... もりもり 06/3/29(水) 23:37 お礼[未読]

【36360】コピーした数式を同じ行のn列の値が1以...
質問  もりもり  - 06/3/29(水) 22:00 -

引用なし
パスワード
   activeセルの数式「 "=SUM(RC[-15]:RC[-1])"」をコピーしておいて、同じ行の15列前の値が1以上の時、activeセルの1行下のセルに数式をペースト(以降、行を1行ずつ下げて、15列前の値が無くなるまで、ペーストを続ける。)したいのですが、どのように書けば良いでしょうか?
ご教示ください。m(_ _)m

【36362】Re:コピーした数式を同じ行のn列の値が...
回答  Kein  - 06/3/29(水) 22:18 -

引用なし
パスワード
   普通はそのようなロジックを使うことはありません。あえてActiveCellを基準にするなら

Dim i As Integer
Dim MyR As Range

With ActiveCell
  If .Column < 16 Then Exit Sub
  i = .Column - 15
End With
On Error GoTo ELine
Set MyR = Columns(i).SpecialCells(2, 1)
On Error GoTo 0
MyR.Offset(, 15).FormulaR1C1 = _
"=IF(RC[-15]>=1,SUM(RC[-15]:RC[-1]),"""")"
Set MyR = Nothing
ELine:
End Sub

などとするとか。 

【36369】Re:コピーした数式を同じ行のn列の値が...
お礼  もりもり  - 06/3/29(水) 23:37 -

引用なし
パスワード
   Keinさん! すごい!!完璧です。
仕事でやむを得ず、VBA超入門書で勉強中の私には、文法が難解ですが・・・。
本当にありがとうございます。
今後ともご指導くださいますようお願いします。
m(_ _)m


▼Kein さん:
>普通はそのようなロジックを使うことはありません。あえてActiveCellを基準にするなら
>
>Dim i As Integer
>Dim MyR As Range
>
>With ActiveCell
>  If .Column < 16 Then Exit Sub
>  i = .Column - 15
>End With
>On Error GoTo ELine
>Set MyR = Columns(i).SpecialCells(2, 1)
>On Error GoTo 0
>MyR.Offset(, 15).FormulaR1C1 = _
>"=IF(RC[-15]>=1,SUM(RC[-15]:RC[-1]),"""")"
>Set MyR = Nothing
>ELine:
>End Sub
>
>などとするとか。

7873 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free