| すぐマク YNxv9c726 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| セルの値が長さゼロの文字列ならばその行を削除するには? |
|
|
|||
|
隋分、込み入ってますね。 「他」のシートは、240行ほど入力欄のある6枚のシートとは、別に存在するということでしょうか? 「他」のシートの例 240行ほど入力欄のあるシートの例・・全く同じシートが6枚ある
![]() また 「他のシートに入力されている情報をリンク」ということは、数式がセットしてあるということでしょうか? 例えば左図の「他」シートでは、 C5セルに数式 =IF(他!="○","有","") が入力してあり、C6:C240セルも同様ですが、これに似たことでしょうか。 そして、左図の「Sheet1」では、C7と C9セルが空欄ですから、「削除」ボタンをクリックすると 7行目と 9行目を削除すればよいのでしょうか? 質問の 1. がこれでよいならば、C5:C244セル範囲の中で空欄(長さゼロの文字列:"")を探して、その行を削除するマクロを作成することになります。 1. 5行目から240行目までを 1行ずつ繰り返し処理するマクロ いろいろな方法がありますが、[Macro]の[フロー制御]のページに掲載の 「行方向にForNextする」 が分かりやすく手軽かと思います。 2. そのセルが "" かどうかを調べる 同じ理由で、同じページの 「If...Then...Else」 がいいでしょう。 3. 行を削除する [Macro]の[セル制御]のページの 「行を挿入_削除する」 を参考にします。 これらを組み合わせて、下記のようなマクロを作成します。
'-----------------------------------------------------------------------------------------
Sub セルの値が長さゼロの文字列ならばその行を削除する()
Worksheets("Sheet1").Activate
For 行 = 244 To 5 Step -1
If Cells(行, 3) = "" Then
Rows(行).Delete Shift:=xlUp
End If
Next
End Sub
'-----------------------------------------------------------------------------------------
質問 2. の回答をしたいのですが、6枚のシートは「全く同じ」ということですね。私に先入観があるせいか、あなたがどうしたいのか、よく分かりません。 しかし、なんとなく、削除するべき行の判別の仕方が上記のマクロと違うだけのような気がします。であるならば、上記のマクロの If文を変えるだけかなと思います。じっくり研修なさってくださいませんか。
|
| http://www.geocities.jp/happy_ngi/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |