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

    [189390] セル範囲を可変にしたい-

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

    □投稿者/ だい -(2019/05/25(00:22))
    □U R L/
      excel2016で、windows10です
      
      下記コードで、範囲(I6〜M20)を指定してコードを実行していますが
      範囲を可変にしてコードを実行したいのです
      
      
      ご教示ください
      
      sub macro1()
      
      Dim i As Integer, j As Integer
      Dim no As Long, gt As Long
      
      For j = 9 To 13 'I列からM列を対象
      no = Cells(3, j) 'I3からM3の在庫値
      gt = 0
      For i = 6 To 20 '6行目から20行目 
      If Cells(i, j) <> "" And Cells(i, j).Interior.ColorIndex = xlNone Then
      gt = gt + Cells(i, j)  'I6からM20まで
      If gt > no Then  'gtが在庫値よりも大きいなら
      Cells(i, j).Interior.ColorIndex = 3  '背景色赤
      End If
      End If
      Next i
      Next j
      
      end sub
      
      列はIからMは変わりませんが、行数が変わる事があります
      範囲が変わってしまう(例で、I6〜M20→I6〜M256、I6〜M20→I6〜M29)と、
      下記コードの範囲ですと、コードが正常に実行されなかった為です
      I6は固定で、行数を変更して、範囲を可変にするにはどのようにしたら
      よいでしょうか?
      
      つたない文章を最後まで読んでくださってありがとうございました
      
      宜しくお願い申し上げます
      
      


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

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



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒OTHER
      ++++++++++++++++++++




    [189391] Re[1]: セル範囲を可変にしたい-

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

    □投稿者/ リスキーダック -(2019/05/25(02:50))
    □U R L/

      とりあえずの方法

      ht tp://officetanaka.net/excel/vba/tips/tips130.htm




    [189396] Re[2]: セル範囲を可変にしたい-

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

    □投稿者/ ucd -(2019/05/26(10:16))
    □U R L/
      Sub macro1()
      
      Dim i As Integer, j As Integer
      Dim no As Long, gt As Long
      
      For j = 9 To 13
      no = Cells(3, j)
      gt = 0
      For i = 6 To Range("I6").CurrentRegion.Rows.Count + 5 'ここ
      If Cells(i, j) <> "" And Cells(i, j).Interior.ColorIndex = xlNone Then
      gt = gt + Cells(i, j)
      If gt > no Then
      Cells(i, j).Interior.ColorIndex = 3
      End If
      End If
      Next i
      Next j
      
      End Sub


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

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



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒OTHER
      ++++++++++++++++++++




    [189400] Re[3]: セル範囲を可変にしたい-

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

    □投稿者/ γ -(2019/05/26(19:42))
    □U R L/
      こんな書き方もできるでしょう。
      その列の最終行をEndプロパティで求めるものです。
      (紹介された参照サイトを参考にしてください。)
      
      Sub macro1()
          Dim stock As Long
          Dim sum As Long
          Dim i As Long, j As Long
      
          For j = 9 To 13                 'I列からM列を対象
              stock = Cells(3, j).Value   '在庫値
              sum = 0
              For i = 6 To Cells(Rows.Count, j).End(xlUp).Row   '6行目からj列の最終行まで
                  If Cells(i, j).Value <> "" And Cells(i, j).Interior.ColorIndex = xlNone Then
                      sum = sum + Cells(i, j).Value
                      If sum > stock Then
                          Cells(i, j).Interior.ColorIndex = 3  '背景色赤
                      End If
                  End If
              Next i
          Next j
      End Sub
      
      補足注記:
      1)インデントをしっかりつけてください。
      (本テーマより、そちらのほうが私は余程気になります)
      
      2)シートのレイアウトが分からないので何とも言えませんが、
        H列に日付が将来にわたって入力済みです、などということがもしあれば、
        Range("I6").CurrentRegionはかなり広くなります。
        結果オーライかもしれないが、無駄な処理をしてしまうというリスクは
        あるかもしれませんね。
      


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

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




    [189403] Re[4]: セル範囲を可変にしたい-

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

    □投稿者/ だい -(2019/05/27(23:37))
    □U R L/

      Yさま

      ありがとうございます
      回答ありがとうございます

      インデントですが、どのようにしたら
      分かりやすいコードを書けるようになりますか?
      私は自身のコードに慣れてしまったので、
      気にならないのが現状です




    [189404] Re[5]: セル範囲を可変にしたい-

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

    □投稿者/ だい -(2019/05/27(23:38))
    □U R L/

      ucdさま

      回答ありがとうございました




    [189405] Re[6]: セル範囲を可変にしたい-

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

    □投稿者/ γ -(2019/05/28(07:07))
    □U R L/
      あら、一丁目一番地、イロハのイと思っていました。
      VBAに関する学習テキストは、どれも必ずインデントがついた例文に
      なっているはずですけどねえ。今からでも遅くないので、トライして下さい。
      
      (私もそうですが)素人であっても、インデントは必須でしょう。
      下記参照。
      ht tp://officeboole.com/study_aid02.html
      > プロジェクトやグループでシステム開発する場合は、それぞれコーディング
      > ルールのような決まりごとがあると思います。しかし個人で作成する場合は、
      > そこまで厳格なものは必要ないでしょう。
      > でも最低限次のようなことは、注意してコーディングした方がよいでしょう。
      > 1.字下げ(インデント)の実施
      
      タブキーを使うのがポイントです。
      「VBA入門記事 インデント徹底解説!」を参照してください。
      ht tps://thom.hateblo.jp/entry/2018/02/26/234247
      
      補足:
      (上記はいずれも、「VBA インデントの付け方」でネット検索したもの。
      こちらのサイトの決まりで、URLをそのまま載せることができないので、
      あえてspaceを入れているので、それをとったurlを使って下さい。)
      
      余談(勇み足とも言う):
      ちなみに、すべての回答に対してそれを実行してみて、
      目的が達せられたかどうかをコメントするようにしてください。
      それこそが、質問者さんが掲示板の閲覧者も含む関係者に対してできる貢献ですから。
      礼をいただくのはうれしいが、そのほうがもっと大切と考えます。
      




    [189419] Re[7]: セル範囲を可変にしたい-

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

    □投稿者/ リスキーダック -(2019/05/30(21:18))
    □U R L/

      >私は自身のコードに慣れてしまったので、
      >気にならないのが現状です

      自分だけで見るのなら、それも良いでしょうが、
      掲示板に載せるということは、他人に見てもらう訳で、礼儀として他人に見やすいコードに直すべき。

      まあ、正確に直せればいいんだけど、そこでまた間違いがあると2度、3度の手間になる。



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

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

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


- Child Forum -
Edit:ゆう-G