No.1ベストアンサー
- 回答日時:
こんにちは!
VBAではなく関数でやってみました。
E・F列を作業用の列として使用します。
E1セルに 1 を入力 → E1セルを選択 → フィル(Excel2007以降ですと、画面左上にあるΣのアイコンの下にある、下向き矢印のアイコンをクリック)
→ 連続データの作成 → 「列」を選択 → 「停止値」に150と入力しOK
これでE1~E150セルに1からの連番が表示されます。
次にF1セルに
=RAND()
という数式を入れ、フィルハンドルでダブルクリック!
このE・F列のデータを参照します。
A1セルに
=IF(VLOOKUP(3*(ROW(A1)-1)+COLUMN(A1),$E:$F,2,0)<=SMALL($F:$F,8),1,"")
という数式を入れC1セルまでフィルハンドルでコピー → そのまま C50セルまでコピー!
これでF9キーを押すたびに、A1~C50セルに8個の「1」が表示されます。m(_ _)m
ご回答ありがとうございます!
また返信が遅れてしまいごめんなさい。
このようなやり方があったのですね!
全然そのような発想に至りませんでした・・・
最初に回答して頂いたので、ベストアンサーにしたいと思います。
No.2
- 回答日時:
>指定した範囲内に値を一定数配置したい
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける
sub macro1()
dim n as long
’ n = inputbox("count?")
n = 8
if n > selection.count or selection.areas.count > 1 then
msgbox "N/A"
exit sub
end if
selection.clearcontents
do until application.countif(selection, 1) = n
selection(int(rnd * selection.count) + 1) = 1
loop
end sub
ファイルメニューから終了してエクセルに戻る
1を記入したいセル範囲を選ぶ
ALT+F8を押してマクロを実行する。
ご回答ありがとうございます。
教えて頂いた方法でできることを確認致しました。
今後同様の内容をVBAで行う際に、参考にさせて頂きます!
No.3
- 回答日時:
No.1 さんみたいに、作業列と SMALL 関数でできると思います。
ベストアンサーは辞退します。あえて VBA なら、次のような感じで、素直に。セル範囲、セルの個数、記入する値などをユーザーが自由に指定する仕組みについては、いろいろ考えてください。
Sub ArrangeValuesAtRandom()
Dim rng As Range
Set rng = Range("a1:c50")
rng.ClearContents '既存データを消去
Randomize '乱数系列を更新
Do Until WorksheetFunction.Count(rng) = 8
rng(Int(Rnd * rng.Count) + 1).Value = 1 '各ループにおいて記入するセルの番号(位置)をランダムに指定
Loop
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAについて 2 2022/08/02 06:19
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルの関数で質問です。 3 2023/02/24 14:07
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Excel(エクセル) エクセルで指定範囲にある名前と重複した場合に入力できないようにしたい 1 2023/07/13 09:58
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Excel(エクセル) 条件付き書式 ある範囲で色がついているセルと同行の別のセルに色を付けたい 4 2022/04/20 07:04
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベース関数のCriteria(...
-
エクセルVBAを使いセルを指...
-
テキストボックス内の文字のふ...
-
Excelで数値→文字列変換で指数...
-
エクセルにおける、グラフの指...
-
エクセル
-
Excelの関数について、特定の文...
-
Excelで行ごとコピー、同じ行を...
-
excel 波形
-
Excelで、決まった行を繰り返し...
-
エクセルでグラフタイトルが折...
-
エクセル 入力中に表示されな...
-
エクセルで入力シートから別シ...
-
C+vのvは英語で何の頭文字...
-
すみません。兄の心理機能グラ...
-
塗りつぶしの色をコピーするには
-
ハイスペックなのにゲームがか...
-
EXCEL □(四角)の中に45を...
-
VBA セルの値と同じ名前のシー...
-
エクセル(Excel)の目盛りの一...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの数式で教えてください。
-
スピンボタンのコピー
-
エクセルVBAを使いセルを指...
-
HYPERLINKのリンク先のセル範囲...
-
エクセルVBA: 別のセルからの...
-
エクセルで全部の数字を3倍したい
-
エクセル VBA 特定の範囲内に一...
-
セルに入力したファイル名を参...
-
データベース関数のCriteria(...
-
エクセルでの先頭文字について
-
VBAからIEを操作する時のウィ...
-
エクセルで最後に入力したセル...
-
& と "" の使い方
-
Excel関数 - 文字列のなかに6ケ...
-
エクセルについて、a1からa10の...
-
【エクセル2016】行数を指定し...
-
Excelのマクロを使わず、数式内...
-
エクセル 同一セル内の特定文...
-
エクセルVBA 結構初歩的なこと...
-
Excelで数値→文字列変換で指数...
おすすめ情報