[[20200224135111]] 『マクロでのランダム関数指定』(ちぃー) ページの最後に飛ぶ

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

 

『マクロでのランダム関数指定』(ちぃー)

マクロで、下記のようなこと出来ますか?

特定セルへ
11,12,13,14の数値をランダムに発生させたいのです。
全部で、164ヶ所✕20シートあります。

関数で、発生させて該当縦列へコピペしていましたが
それだけでなくもう一つのパターンもあるので貼り忘れ
が心配です。

マクロでのやり方,指定方法を、教えてください。

< 使用 Excel:Excel2016、使用 OS:Windows8 >


>164ヶ所
というのはどういうセル範囲でしょう?

数式を164箇所にマクロで入れてもいいのでしょうか?
それとも、メモリー上に数値を溜めといてあとで一気にセルに書き込むイメージでしょうか?

あと、VBAのRnd関数については調べられましたか?
https://www.moug.net/tech/exvba/0050139.html

 >それだけでなくもう一つのパターンもあるので貼り忘れ
 >が心配です。
この辺もよくわかりません。
何に困ってて何を心配しているか。

多分、いろいろなやり方を模索されてはいるとは思いますが、
やり方は1つじゃないので、まずは前提条件を明確にされることをお勧めします。
(まっつわん) 2020/02/24(月) 14:08


1〜20.21〜40,41〜60,61〜82と、20行一部22行
D列から4列おきにこの項目があります。
今は、作業列を使用しランダムに数値を発生させて
該当するところへコピペしてます。
どんなに集中していても途中で話しかけられると
どこまでやったのか分からなくなってしまうため
マクロにしたいと思ってます。
なので、メモリー上に書き留めて一気にセルへ書き込む
イメージでやりたいのです。

(ちぃー) 2020/02/24(月) 14:31


 >1〜20.21〜40,41〜60,61〜82
↑これは1行目から82行目という意味ですか?
微妙に区切られてることに意味がありそうですが、
 >20行一部22行
↑こちらも含めてセルのアドレスで表現できそうですかね?
(まっつわん) 2020/02/24(月) 14:39

D列 1〜20
H列 21〜

と、いうイメージです。
(ちぃー) 2020/02/24(月) 14:50


(横入り失礼)

 いずれにしても
 Set rng = Range("D1:D20,H21:H100?.....")
 For each r in rng
     r.Value = Application.RandBetween(11,14)
 Next
 などとするんでしょうか。
 範囲は、イメージしか提示されないので、そちらで手入れしてください。

 あ、複数シートでしたか。どのシートも同じ箇所ですよねえ。であれば、
 For each ws in Array(1,2,5,6,8) '例:手入れ必要
    Set rng = Worksheets(ws).Range("D1:D20,H21:H100?.....")
    For each r in rng
        r.Value = Application.RandBetween(11,14)
    Next
 Next
 のようなイメージでどうでしょうか。

(γ) 2020/02/24(月) 15:50


>どんなに集中していても途中で話しかけられると
>どこまでやったのか分からなくなってしまうため

こんな感じではだめですか?

1)作業用シートに、貼り付け先と同じセル位置に乱数作成しておいて
2)全範囲を1回でコピー
3)形式を選択して貼り付け(値、空白セルを無視する)

(マナ) 2020/02/24(月) 20:16


>どんなに集中していても途中で話しかけられると
>どこまでやったのか分からなくなってしまうため
これがよく理解できませんでした。

(1)11〜14までの乱数を発生させるのであれば、
=RANDBETWEEN(11,14)という一つの式を、
必要なセルに貼り付けていけばいいだけではないんですか?
その場合は、どこまでやったかということは関係なく、
適切な範囲の大きさのセル範囲単位で、
決められたセル範囲にCtrl+Vで貼り付けていくだけです。
他のシートにもシートごとコピーペイストで済みます。

(2)そうではなくて、いったん作った乱数というものがあり、
これを順序を変えずに順番に転記する必要があるということなら、
それは乱数という名の「変更不可能な数値」じゃないですか。
正確に順番に転記しないといけないわけです。
いったいどちらなんですか?

私は一律の式にしておいて、乱数の作成はExcelに任せればよいと
思いますが、違いますか?

# 何か、こちらが思い詰めたような書き方で少し可笑しいですが。

(γ) 2020/02/25(火) 06:23


乱数は、乱数です。ただし、何かするたび数値が変更
されていたら意味のないデータになるので一度キリの
発生でよいです。
直接セルへランダム関数を入れてしまうと毎回更新
するのでこちらでのデータが成り立ちません。
ただ、乱数を発生させて確定させることが出来れば
良いだけです。
(ちぃー) 2020/02/26(水) 07:05

式を挿入して、その後、値貼付すれば確定します。

2020/02/24(月) 15:50に動作するコードを提示しています。
これもマクロで乱数値を作り、それを値として書き込むもので、変動しません。
対象となるシート(の左から数えた番号)と、対象セル範囲を
あなたが書き込むだけで完成するものです。もう答えは出ているはずです。
頑張って下さい。
(γ) 2020/02/26(水) 08:55


コメント返信:

[ 一覧(最新更新順) ]


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