[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロでのランダム関数指定』(ちぃー)
マクロで、下記のようなこと出来ますか?
特定セルへ
11,12,13,14の数値をランダムに発生させたいのです。
全部で、164ヶ所✕20シートあります。
関数で、発生させて該当縦列へコピペしていましたが
それだけでなくもう一つのパターンもあるので貼り忘れ
が心配です。
マクロでのやり方,指定方法を、教えてください。
< 使用 Excel:Excel2016、使用 OS:Windows8 >
数式を164箇所にマクロで入れてもいいのでしょうか?
それとも、メモリー上に数値を溜めといてあとで一気にセルに書き込むイメージでしょうか?
あと、VBAのRnd関数については調べられましたか?
https://www.moug.net/tech/exvba/0050139.html
>それだけでなくもう一つのパターンもあるので貼り忘れ
>が心配です。
この辺もよくわかりません。
何に困ってて何を心配しているか。
多分、いろいろなやり方を模索されてはいるとは思いますが、
やり方は1つじゃないので、まずは前提条件を明確にされることをお勧めします。
(まっつわん) 2020/02/24(月) 14:08
(ちぃー) 2020/02/24(月) 14:31
と、いうイメージです。
(ちぃー) 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/24(月) 15:50に動作するコードを提示しています。
これもマクロで乱数値を作り、それを値として書き込むもので、変動しません。
対象となるシート(の左から数えた番号)と、対象セル範囲を
あなたが書き込むだけで完成するものです。もう答えは出ているはずです。
頑張って下さい。
(γ) 2020/02/26(水) 08:55
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.