[[20050117220053]] 『A列が空欄のときE列にRANDをいれない』(Ty) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『A列が空欄のときE列にRANDをいれない』(Ty)
 いつも楽しく勉強をさせていただいています。
 ありがとうございます。

 A列が空欄の時、E列に"=RAND()"を入れないようにするには
 下記にどのように書き書き加えればいいのでしょうか、お教えください。

 Private Sub CommandButton1_Click()
 Application.ScreenUpdating = False
 Range("E2").Select
    ActiveCell.FormulaR1C1 = "=RAND()"
    Selection.AutoFill Destination:=Range("E2:E20"), Type:=xlFillDefault
    Range("E2:E20").Select
    Range("C1").Activate
    Selection.Sort Key1:=Range("E2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin, DataOption1:=xlSortNormal
    Range("E2:E20").Select
    Selection.ClearContents
    Range("C1").Select
 End Sub


 RAND関数を入れないだけで、あとの処理はするのでしょうか、それとも
 A列が空白の時は何もしないのでしょうか。

 (川野鮎太郎)

 いつもお世話になっています。
 >あとの処理はするのでしょうか
 E列で並び替えをします。
   現在の並び替えでは、5行しか入力していない時19行の並び替えをして
 19行の間に空欄行ができますが、その空欄行をなくして、上段5行に表示させたいのです。
ご指導ください。(Ty)


 これでいけますか。
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
For Each c In Range("A2:A20")
    With c.Offset(0, 4)
        If c.Value <> "" Then
            .Formula = "=RAND()"
        Else
            .ClearContents
        End If
    End With
Next c
Range("A2:E20").Sort Key1:=Range("E2")
Range("E2:E20").ClearContents
Application.ScreenUpdating = True
End Sub

 (川野鮎太郎)

 ありがとうございました。
 できました。
 今からじっくりと見比べます。
 マクロって、英語で方程式を解くようなものですね。
 (Ty)

 川野さんのご回答で十分ですが、
 ちょっと追加の質問をさせてください。
 上記マクロは、2行目〜20行目のA列〜E列の範囲の並び替えですが、
 2行目〜20行目の全列の並び替えはどのような書き方をするのでしょうか?
 (勉強中Ty)


 私も勉強中の身ですが、以下のご近所PGさんのコメントが大変わかり易く参考になります。
[[20050115131721]]『条件式書式を6つやりたいんですが・・・』(sirouto)

 今回の件をご近所さん的に言えば、
 「さっきまではA2からE20までの範囲で並び替えしたぞ。」
 「でも、今回は2行目から20行まで全部を並び替えたいんだよなぁ」
 「どこを変えれば良いんだろぅ・・」
 「とりあえずマクロの記録でやってみるか」
 「まず2行目から20行目までを選択して、データ−並び替え−E列で並び替えを記録して
  マクロの記録終了」

 VBEを開いてみるとこんなのが出てるぞ?
Sub Macro1()
' Macro1 Macro
' マクロ記録日 : 2005/1/17  ユーザー名 : Ayu
    Rows("2:20").Select
    Selection.Sort Key1:=Range("E2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin
End Sub

 さっきの鮎のコードでSortが並び替えだからここを変えれば良いんだな。
 Range("A2:E20").Sort Key1:=Range("E2") 

 てことは、範囲がRange("A2:E20")だったものをRows("2:20")に変えてみるか。
 Rows("2:20").Sort Key1:=Range("E2") こんな感じになったけど上手くいくかなぁ・・・。
 ゙(*・・)σ【マクロの実行】ぽちっとな♪

 ぉお!!(゚ロ゚屮)屮 .。゚+.(゚ー゚)。+.゚ イイ!!上手くいったぞ〜♪

 ってな感じでしょうか^^

 (川野鮎太郎)

 以前どこかで、川野さんがおっしゃってみえた「先ずマクロを記録して」という
 言葉がこのことですね。
 勉強の方法がようやくわかりました。ありがとうございました。(Ty)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.