• 締切済み

VBAについて

例えば、セル内に食べ物の名前が入力されているとします。その食べ物を列ごとにそれぞれ格納し、別シートに格納した順番をランダムに表示させることはできるのでしょうか?出来るのであれば教えてください。よろしくお願いします。 例    aa1     aa2    aa3   aa4    aa5 1 レタス    いちご   トマト   米    ごぼう 2 キャベツ  ぶどう   りんご   パン   にんじん (aa1,aa2・・・は格納する名前になります) 列ごとに格納し、格納した中はそのままの順番で、aa1,aa2,aa3,aa4,aa5の順番を入れ替えて、表示するという感じです。

みんなの回答

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

(1)Alt+F11でVBEを開き、挿入から標準モジュールを挿入してください。 (2)以下のコードを標準モジュールへコピーし、コード内の出力シート名を設定してください。   (コード内で Set tar = Worksheets("Sheet2") の「"Sheet2"」部分です) (3)右上の×またはAlt+F11でVBEを終了してください。 (4)対象の表をセル選択して、Alt+F8から「列ランダム並び替え」を実行してください。 ■VBAコード Sub 列ランダム並び替え() '型宣言 Dim myRng As Variant Dim i As Long, j As Long Dim list() As Long Dim tar As Worksheet 'コピー先シート名設定 Set tar = Worksheets("Sheet2") '選択セル取得 myRng = Selection '列番号格納 ReDim list(UBound(myRng, 2) - 1) For i = 0 To UBound(list) list(i) = i + 1 Next i '列番号ランダムソート For i = 0 To UBound(list) Randomize rn = Int(UBound(list) * Rnd) tmp = list(i) list(i) = list(rn) list(rn) = tmp Next '出力 For i = 1 To UBound(myRng, 1) For j = 1 To UBound(myRng, 2) tar.Cells(i, j) = myRng(i, list(j - 1)) Next j Next i End Sub

関連するQ&A

  • 野菜の保存方法とどれくらいもつか。

    レタス、キャベツ、トマト、大根、ごぼうの保存方法とどれくらいもつかを教えて下さい。

  • 配列にある文字列を1つの変数に改行付きで格納する方法

    配列にある文字列を1つの変数に改行付きで格納する方法 Array ( [0] => レタス [1] => トマト [2] => きゅうり ) などの配列を $yasai 変数へ ------ レタス トマト きゅうり ------ と格納してテキスト表示させたいのですが、どのようにすれば可能でしょうか? そもそも可能なのでしょうか?ご存知の方、いらっしゃいましたら宜しくお願いします。

    • ベストアンサー
    • PHP
  • シュウ酸の少ない生野菜は?

    キャベツや人参、トマト、レタス、大根など、生で食べる野菜はほとんどシュウ酸が多めなようです。なにかシュウ酸が少なくて生で食べやすい野菜はないでしょうか? よろしくお願いします。

  • ぶり料理

    今晩ぶりを使って夕食を作ろうと思っているのですが、照り焼き、ぶり大根以外で何かオススメのレシピはありませんか? 野菜は、ごぼう、人参、玉ねぎ、しいたけ、エリンギ、トマト、レタス、きゅうりがあります。

  • エクセル VBA 複数あるセルの中身を1つのセルに表示させる2

    前回とほぼ同じ質問なのですが、宜しくお願いします。 複数のセルに書かれている日付を 1つのセルにまとめて表示させたいと考えています。 日付は、 10/3,トマト,長野(,で別セルとします) 4/5,トマト,長野 5/7,トマト,神奈川 5/6,レタス,千葉 3/4,レタス,東京 1/3,レタス,東京 のように縦に並んでいまして、 下の行(1/3)から1つのセルに入れていき 3/4,レタス,東京,1/3・3/4と [1/3・3/4]を1つのセルに入れ、 しかも出来れば「・」を間に入れて 1つのセルに表示させたいのです。 そして、同様にトマトにおいても行い、 最終的には、 10/3,トマト,長野,4/5・10/3 4/5,トマト,長野 5/7,トマト,神奈川,5/7 5/6,レタス,千葉,5/6 3/4,レタス,東京,1/3・3/4 1/3,レタス,東京 と表示させたいと思っております。 一致材料は2つあり、 品物と産地が一致することが必要です。 このとき、レタスとトマトの個数は数えなければ わかりません。 ここで教えていただいたことを、実際には 6個の項目が一致して始めて日付を1セルに まとめたいと思っています。しかも間には 判断とは関係ない列も含まれ、6項目が 横に連続はしていません。 配列を使えば良いみたいですが、勉強不足です。 大変難しいかと思いますが、 ぜひお知恵を貸して頂ければ幸いです

  • トマトとかオクラって日本語でなんていうの?

    トマトとかオクラって日本語の名前(和名?)ってあるんすか? あったとしたらなんていうんすか? あとレタスとかキャベツも知りたい。

  • 野菜・果物のカロリー情報

    以下の野菜・果物の100グラムあたりのカロリー値を知りたいのですが、どうすればいいのでしょうか(野菜・果物には「原材料名」などの表記がないので)? ・バナナ ・苺 ・和梨 ・キャベツ ・レタス ・トマト

  • 生で食べられる野菜

    最近自分でサラダを作るようになりました。 今使ってる野菜は、玉ねぎ、きゅうり、にんじん、キャベツ、レタス、カイワレ トマトくらいでワンパターンになってしまいます。 サラダとして生で食べられる野菜を教えて頂けないでしょうか? まったく恥ずかしい質問ですみませんm(__)m

  • Excelの使い方で質問

    例えば、 A列1~10には「No.」として1~10の数字が順番に入ってます。 B列1~10には「りんご」「みかん」「いちご」「ぶどう」という文字がいくつかずつ入っています。 そういうデータで「りんご」は「No.」いくつといくつにあるか、「みかん」は「No.」いくつといくつにあるか、「いちご」は…、「ぶどう」は…、といったように集計したいと思っています。 りんご 1,5,6 みかん 9 いちご 2,3,9 ぶどう 4,7,8,10 といった感じにできれば良いのですが、どうすればよろしいのでしょうか? よろしくご教授ください。

  • Excelでの全通りの組み合わせ出力方法(文字列)

    Excelについて全くの初心者で、教えて頂きたい質問があります。 Excelの文字列の全通りの組み合わせを出力がしたいのですが、その方法が分かりません。 例えばセルAに ・りんご ・みかん ・いちご セルBに ・だいこん ・キャベツ ・トマト があり、別のセルにその全通りの組み合わせを出力 (文字と文字の間はスペース) りんご だいこん りんご キャベツ りんご トマト みかん だいこん みかん キャベツ みかん トマト いちご だいこん いちご キャベツ いちご トマト この様に出来る方法はあるでしょうか? また出来ればその裏(だいこん りんご)も出力したいと考えており、キーワードは3つまで出来るようになりたいです。 どなたかご存じでしたら、ぜひお教え下さい。 よろしくお願いします。

専門家に質問してみよう