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

    [191385] セル結合を省く変数の定義について-

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

    □投稿者/ れむた -(2020/02/16(22:04))
    □U R L/
      VBA初心者です。
      自動計算のコードを書いています。
      基本的な形はできたのですが、
      いざ実行しようとしたら、結合されたセルが邪魔をしてうまくいきませんでした。
      内容は以下の通りです。
      
      Sub 自動計算()
      
         '変数を定義
         Dim row As Long
         '変数に代入
          For row = 1 To 1500
      
             '特定のセルに値が入っていたら計算結果を返す
               If Cells(row, 5) <> "" Then
               Cells(row, 4) = Cells(row, 6) / Cells(row, 5)
          
                End If
          
          Next
          
      End Sub
      
      
      このコードを使用予定のエクセルの表は30行で一枚の表となっており、
      31行目から同じ様式の表が続きます。(行の最終はランダムです)
      それぞれの表の1行目から3行目まではセル結合がされ、表題が入っています。
      この時、上記のコードを実行すると、型が一致しないとなります。
      試しに、変数を4 to 1500に変えると、一枚目の表だけは無事に動きました。
      つまり、結合されたセルが邪魔をしてマクロが実行されないのだと思います。
      1枚だけの表であればこれでいいのですが、2枚目以降の表も同様の結果を得るためには、
      変数をどのように指定すればいいでしょうか?ご教授願います。
      


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

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




    [191386] Re[1]: セル結合を省く変数の定義について-

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

    □投稿者/ リスキーダック -(2020/02/16(22:26))
    □U R L/

      良く解ってないけど、こんな風に・・。

      Cells(row, 4).MergeArea.Cells(1).value




    [191387] Re[2]: セル結合を省く変数の定義について-

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

    □投稿者/ サンダー -(2020/02/16(23:12))
    □U R L/
      各ページの頭3行をパスする。てことですか?
      
      
      Dim Pcnt As Integer
      
      Pcnt = 10  '1ページの行数
      
      For row = 1 To 1500
          If (row - 1 Mod Pcnt) + 1 > 3 Then '1から3行目はパスする
               '特定のセルに値が入っていたら計算結果を返す
               If Cells(row, 5) <> "" Then
               Cells(row, 4) = Cells(row, 6) / Cells(row, 5)
          
                End If
          
          Next


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

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




    [191388] Re[3]: セル結合を省く変数の定義について-

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

    □投稿者/ れむた -(2020/02/17(00:20))
    □U R L/
      結果的にこちらのコードで解決できました。
      
      Sub 自動計算()
      
          Dim row As Long
          
          For row = 1 To 1000
          
               If VarType(Cells(row, 5).Value) = vbDouble Then
               Cells(row, 4) = Cells(row, 6) / Cells(row, 5)
               Cells(row, 4).NumberFormatLocal = "#,###"
               
          
                End If
          
          Next
          
      End Sub
      
      言い忘れていて申し訳ないのですが、Cells(row, 5)は必ず数値になります。
      そのため、同セルが数値であるならばという条件に変えてみました。
      サンダーさん、リスキーダックさんに頂いたコードではなぜか動作しませんでした。ご助力いただきありがとうございます。
      
      


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

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




    [191390] Re[4]: セル結合を省く変数の定義について-

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

    □投稿者/ サンダー -(2020/02/17(09:53))
    □U R L/
      私のコード、End Ifぬけてましたね
      
      解決できてよかったです。
      If IsNumeric(ActiveCell) Then
      数値、空白
      
      If VarType(ActiveCell) = vbDouble Then
      数値
      
      なるほどです。


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

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



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

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

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


- Child Forum -
Edit:ゆう-G