戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
セルの加算

    [189450] セルの加算-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ にゃんこ -(2019/06/06(18:21))
    □U R L/
      お世話になります。
      セルには数字が入ってます。
      A1+B1=C1
      A1+C1=D1
      E1+F1=G1
      E1+G1=H1 コードはここまですが。
      I1+J1=K1
      I1+K1=L1  こんな感じで続きます。
      
      
      実際には、行列とも、もう少しあります。
      私のスキルだと以下ように、ベタに書く感じです。
      他に効率の良いコードがあればご教授願います。
      
      Sub abc()
      
      Dim ra1
      Dim ra2
      
      ra1 = Range("a1").Value
      ra2 = Range("e1").Value
      
          Range("c1").Value = ra1 + Range("b1").Value
          Range("d1").Value = ra1 + Range("c1").Value
          Range("g1").Value = ra2 + Range("f1").Value
          Range("h1").Value = ra2 + Range("g1").Value
      
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189451] Re[1]: セルの加算-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2019/06/06(19:27))
    □U R L/
      一案考えてみました。
      
      ベースセルを順次変更し、相対位置を表すセルの名前はそのまま利用する案
      
      ※例えば、Range("E1").Range("D1") は、Range("H1")と同じセルになる。
      
      Sub abc()
          Dim ra1
          Dim baseCell As Range
          Dim shift As Long
          
          Set baseCell = Range("A1")
          
          For shift = 0 To 1  '繰り返したい数にする
              With baseCell
                  ra1 = .Range("a1").Value
                  
                  .Range("c1").Value = ra1 + .Range("b1").Value
                  .Range("d1").Value = ra1 + .Range("c1").Value
              End With
              
              Set baseCell = baseCell.Offset(, 4) '基準セルを4セル右隣に変更
          Next shift
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189456] Re[2]: セルの加算-

    記事引用/メール受信=OFF■

    □投稿者/ sy -(2019/06/06(22:39))
    □U R L/
      こんなんでも。
      行列ともforのループ終端を好きな値に変更して下さい。
      
      Sub test()
          Dim i As Long, k As Long
          For i = 1 To 1000 '行、取り合えず1000行まで
              For k = 3 To 26年 Step 4 '列、取り合えずZ列まで
                  Cells(i, k).FormulaR1C1 = "=RC[-2]+RC[-1]"
                  Cells(i, k + 1).FormulaR1C1 = "=RC[-3]+RC[-1]"
              Next k
          Next i
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189474] Re[3]: セルの加算-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ にゃんこ -(2019/06/09(11:34))
    □U R L/
      半平太さんAsyさんありがとうございました。
      最終的に、offsetを使いました。


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G