Excel VBA質問箱 IV

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

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


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

【80125】条件分岐の使い方 ノンボ 18/8/30(木) 21:25 質問[未読]
【80126】Re:条件分岐の使い方 マナ 18/8/30(木) 22:01 発言[未読]
【80127】Re:条件分岐の使い方 ノンボ 18/8/31(金) 20:23 お礼[未読]
【80128】Re:条件分岐の使い方 マナ 18/8/31(金) 20:34 発言[未読]
【80129】Re:条件分岐の使い方 ノンボ 18/9/1(土) 7:13 発言[未読]
【80130】Re:条件分岐の使い方 マナ 18/9/1(土) 8:53 発言[未読]
【80132】Re:条件分岐の使い方 ノンボ 18/9/1(土) 9:53 発言[未読]
【80134】Re:条件分岐の使い方 マナ 18/9/1(土) 10:51 発言[未読]
【80135】Re:条件分岐の使い方 ノンボ 18/9/1(土) 11:10 発言[未読]
【80136】Re:条件分岐の使い方 マナ 18/9/1(土) 11:23 発言[未読]
【80137】Re:条件分岐の使い方 ノンボ 18/9/1(土) 11:37 お礼[未読]
【80131】Re:条件分岐の使い方 ねこの手 18/9/1(土) 8:54 発言[未読]
【80133】Re:条件分岐の使い方 ノンボ 18/9/1(土) 10:00 お礼[未読]

【80125】条件分岐の使い方
質問  ノンボ E-MAIL  - 18/8/30(木) 21:25 -

引用なし
パスワード
    お世話になります。

 VBAのスキルがまだ拙いです。

 下記データがあります。

A列店舗コード B列口座コード C列売上金額

 100235     001       1,100
 100332     002       1,300
 100342     003       1,500
 100442     004       1,700
 100534     005       1,800
 100425     006       2,000
 100567     007       1,900
 100781     008       2,100

条件1 1行目のタイトル行(店舗コードなど)と2行目B列が空白の場合3行目以     降のデータをコピーして繰り上げます。
条件2 1行目のタイトル行と2行目B列が空白でない場合、3行め以降のデータは     そのままにしたいのです。
下記ソースコードを記入しました。

 Sub Test()
  Dim i As Integer, j As Integer
  j = 1
  For i = 2 To 10
    If (Range("B" & i).Rows <> "") Then
      j = j + 1
      Rows(i).Copy Rows(j)
      Rows(i) = ""
    End If
  Next i
End Sub

 条件1はうまくいくのですが、条件2ですとデータが削除されてしまいます。
  Exit for などいくつか試みてみましたがうまくいきません。どのようなコード を書けばよろしいでしょうか、ご教授ねがえればと思いまして投稿しました。
  よろしくお願いします。

【80126】Re:条件分岐の使い方
発言  マナ  - 18/8/30(木) 22:01 -

引用なし
パスワード
   ▼ノンボ さん:

こんな方法のほうが単純でよいのでは?

1)ジャンプ機能でB列が空白セルを選択
2)選択セルを行削除

 

【80127】Re:条件分岐の使い方
お礼  ノンボ E-MAIL  - 18/8/31(金) 20:23 -

引用なし
パスワード
   ▼マナ さん:
>▼ノンボ さん:
>
>こんな方法のほうが単純でよいのでは?
>
>1)ジャンプ機能でB列が空白セルを選択
>2)選択セルを行削除
>
> 
さっそくご返答いただきましてありがとうございます。
セルを削除しますとフォーマットがくずれてしまいうまくありません。
ほかの方法がありませんでしょうか?

【80128】Re:条件分岐の使い方
発言  マナ  - 18/8/31(金) 20:34 -

引用なし
パスワード
   ▼ノンボ さん:

>セルを削除しますとフォーマットがくずれてしまいうまくありません。

行全体を削除ですが、それでもだめなのですか?

【80129】Re:条件分岐の使い方
発言  ノンボ E-MAIL  - 18/9/1(土) 7:13 -

引用なし
パスワード
   ▼マナ さん:
>▼ノンボ さん:
>
>>セルを削除しますとフォーマットがくずれてしまいうまくありません。
>
>行全体を削除ですが、それでもだめなのですか?

マナさん
 返信ありがとうございます。
 行全体でも削除してしまうとまずいです。罫線や一部セルが結合しております。
 ほかに方法はありませんでしょうか。コードを書いていただくとたすかります。
 

【80130】Re:条件分岐の使い方
発言  マナ  - 18/9/1(土) 8:53 -

引用なし
パスワード
   ▼ノンボ さん:

ますます何をしようとしているかわからなくなりました

なので確認です。
条件1;B2セルが空白の場合3行目以下をぜんたいに上につめる
条件2;B2セルが空白でない場合は何もしない

で、条件1は、現在のコードで問題ない

ということで間違いないですか?
条件2を追加するだけでよいなら簡単ですが…

 
  

【80131】Re:条件分岐の使い方
発言  ねこの手  - 18/9/1(土) 8:54 -

引用なし
パスワード
   ▼ノンボ さん:
>マナさん
> 返信ありがとうございます。
> 行全体でも削除してしまうとまずいです。罫線や一部セルが結合しております。

横やり失礼します。

結合してあるセルががあって、A,B,C列以外にもデータがあり、それらも同じように
移動させないといけないってことですよね?

一度、レイアウトを提示したほうが適切なアドバイスがもらえると思います。

【80132】Re:条件分岐の使い方
発言  ノンボ E-MAIL  - 18/9/1(土) 9:53 -

引用なし
パスワード
   ▼マナ さん:
>▼ノンボ さん:
>
>ますます何をしようとしているかわからなくなりました
>
>なので確認です。
>条件1;B2セルが空白の場合3行目以下をぜんたいに上につめる
>条件2;B2セルが空白でない場合は何もしない
>
>で、条件1は、現在のコードで問題ない
>
>ということで間違いないですか?
>条件2を追加するだけでよいなら簡単ですが…
>
マナさん
 返信ありがとうございます。
 わかりずらくて申し訳ありません。
 条件1は、Bセルが空白の場合は、現在のコードで問題ありません。
 条件2、Bセルが空白でない場合が、3行目いかが消えてしまします。Bセルが空 白でない場合は、そのまま削除にならずにしたいです。条件2を追加するコード をご教授いただければと思います。
 
>

【80133】Re:条件分岐の使い方
お礼  ノンボ E-MAIL  - 18/9/1(土) 10:00 -

引用なし
パスワード
   ▼ねこの手 さん:
>▼ノンボ さん:
>>マナさん
>> 返信ありがとうございます。
>> 行全体でも削除してしまうとまずいです。罫線や一部セルが結合しております。
>
>横やり失礼します。
>
>結合してあるセルががあって、A,B,C列以外にもデータがあり、それらも同じように
>移動させないといけないってことですよね?
>
>一度、レイアウトを提示したほうが適切なアドバイスがもらえると思います。
 ねこの手さん:
 返信ありがとうございます。
 レイアウト全体、C列以下はないです。
 ご教授いただけましたら、お願いします。

【80134】Re:条件分岐の使い方
発言  マナ  - 18/9/1(土) 10:51 -

引用なし
パスワード
   ▼ノンボ さん:

> 条件1は、Bセルが空白の場合は、現在のコードで問題ありません。
> 条件2、Bセルが空白でない場合が、3行目いかが消えてしまします。Bセルが空 白でない場合は、そのまま削除にならずにしたいです

ごめんなさい。まだわかりません。

条件1について問題ないということは、
「Bセル」というのは「B2セル」の意味でよいですか。

 
もしそうなら、↓の理解で間違いないでしょうか。

>条件1;B2セルが空白の場合3行目以下をぜんたいに上につめる
>条件2;B2セルが空白でない場合は何もしない
>
>で、条件1は、現在のコードで問題ない


この場合、最初にコードを1行追加し
B2セルが空白ならExit subで終了するようにすればよいです。

'---------

それとも、「Bセル」は「B列のセル」という意味でしょうか
その場合は、iとjが同じ場合は値をクリアしなければよいです。

でも、結合セルがあのに、本当に出来ているのでしょうか?


 

【80135】Re:条件分岐の使い方
発言  ノンボ E-MAIL  - 18/9/1(土) 11:10 -

引用なし
パスワード
   ▼マナ さん:
>▼ノンボ さん:
>。
>> 条件1は、Bセルが空白の場合は、現在のコードで問題ありません。
>> 条件2、Bセルが空白でない場合が、3行目いかが消えてしまします。Bセルが空 白でない場合は、そのまま削除にならずにしたいです
>
>ごめんなさい。まだわかりません。
>
>条件1について問題ないということは、
>「Bセル」というのは「B2セル」の意味でよいですか。
>
> 
>もしそうなら、↓の理解で間違いないでしょうか。
>
>>条件1;B2セルが空白の場合3行目以下をぜんたいに上につめる
>>条件2;B2セルが空白でない場合は何もしない
>>
>>で、条件1は、現在のコードで問題ない
>
>
>この場合、最初にコードを1行追加し
>B2セルが空白ならExit subで終了するようにすればよいです。
>
>'---------
>
>それとも、「Bセル」は「B列のセル」という意味でしょうか
>その場合は、iとjが同じ場合は値をクリアしなければよいです。
>
>でも、結合セルがあのに、本当に出来ているのでしょうか?
>
マナさん
 なんどもありがとうございます。
 Bセルは、B2セルです。すみません。
 マナさんが言われるコードを書いてみました。
 Sub Test()
  Dim i As Integer, j As Integer
  If Range("b2") = "" Then
     Exit Sub
  End If
  j = 1
  For i = 2 To 10
    If (Range("B" & i).Rows <> "") Then
      j = j + 1
      Rows(i).Copy Rows(j)
      Rows(i) = ""
    End If
  Next i
End Sub
 
 間違えがあるとおもいますが、ご教授ください。
 何度も申し訳ありません。

>
>

【80136】Re:条件分岐の使い方
発言  マナ  - 18/9/1(土) 11:23 -

引用なし
パスワード
   ▼ノンボ さん:

問題がでるかどうかはデータによると思います。
空白がB2だけで、単に2行目を上に詰めたい(行削除せずに)
ということであれば

1)B2が空白でないなら終了
2)A3;C10をコピーし、A2に貼付け
3)A10;C10の値をクリア

でもよいのではと思います。

【80137】Re:条件分岐の使い方
お礼  ノンボ E-MAIL  - 18/9/1(土) 11:37 -

引用なし
パスワード
   ▼マナ さん:
>▼ノンボ さん:
>
>問題がでるかどうかはデータによると思います。
>空白がB2だけで、単に2行目を上に詰めたい(行削除せずに)
>ということであれば
>
>1)B2が空白でないなら終了
>2)A3;C10をコピーし、A2に貼付け
>3)A10;C10の値をクリア
>
>でもよいのではと思います。
 マナさん

 何度もありがとうございました。
 Exitsubを使って、うまくいきそうなきがします。または、コピーペーストで
 なんとかなるかもしれません。いろいろ試してみます。いろいろご教授していた だきありがとうございました。もっと勉強します。データをもう一度確認して
 みます。
 大変ありがとうございました。

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