• ベストアンサー

ExcelでA1=1973を小さい数順に並べ替える方法

米沢 栄蔵(@YON56)の回答

回答No.3

こんなのでどうでしょう。 これはA列を非表示にし、 セルB1にデータを入力し、セルC1にデータを出力させるものです。 セルB1のデータの型は、英数字OKです。 Sub SSS() Dim A, B, C, D, E Dim AA A = Range("B1").Value '入力データ B = Len(A) For C = 1 To B Cells(C, 1) = Asc(Mid(A, C, 1)) Next C AA = "" For C = 1 To B D = Application.WorksheetFunction.Min(Range(Cells(1, 1), Cells(B, 1))) E = Application.WorksheetFunction.Match(D, Range(Cells(1, 1), Cells(B, 1)), 0) AA = AA & Chr(Cells(E, 1).Value) Cells(E, 1) = "" Next C Range("C1") = AA '出力データ End Sub Worksheet関数(ワークシート)を使わない方法もあると思いますが、 マクロだけで最小値(最大値)を定義する式が面倒そうなので、 Worksheet関数を利用しました。

pure_power
質問者

お礼

ありがとうございました。

関連するQ&A

  • ダイアログボックスから数値を写しとる方法

    Excelでエディットボックスが2個あるダイヤログボックスを作りました。 マクロでダイヤログボックスを呼び出してから、数値を入力し、OKボタンを押せば、ワークシートの2箇所のセルに、それぞれ数値が反映されるようにしたいのですが、方法を教えてください。 よろしくお願いします。

  • エクセルデータ整理方法について(効率化)

    こんにちは。標記の件で質問があります。 XPパソコンのエクセル2003で、データ整理を効率良くしたいと思いますが、 その方法がわかりません。ご存知であれば教えてください。 1.エクセルのワークシート(sheet1)A5のセルの数字を、ワークシート(sheet100)のB8のセルに   入力したいと思います。(この作業だけならばリンク貼付け等で良いと思います。) 2.ここが問題なんですが、、ワークシート(sheet2)~(sheet99)までのA5のセルの数字をワークシー  ト(sheet100)のB9~B107までのセルに順に入力できる方法はありますか。 宜しくお願いします。

  • エクセルにてデータを大きい順に並べ替えることを自動でやりたい

    sheet1をデータ入力用のシートとし、以下のデータが入っています。   A  B  C  D 1 あ 5 2 い 4 3 は 8 4  sheet2は上記のBのデータを大きい順に並べ替えた出力用のシートとし、 以下のように出力されます。   A  B  C  D 1 は 8 2 あ 5 3 い 4 4  sheet1のデータが更新されて大きさの順番が変わると、 sheet2の並び順が自動で変わるように出来るのでしょうか? マクロを使わずに数式でやりたいと思っています。

  • エクセルのマクロでシート保護解除時に・・・

    エクセルのマクロでシート保護解除時に・・・ EXCEL2000を使っています。 ワークシートの保護を解除したタイミングで、マクロを自動実行することは可能でしょうか? 現在このような状態になっています。 特定の列(AとB)に保護がかかっています。一般社員はC列以降に入力可能で、パスワード を知っている管理職はA、B列に入力ができるようにしています。 A,B列にはリストボックスを設定しているのですが、これだとパスワードを知らなくても リストボックスで変更する事ができてしまいます。 そういうわけで、パスワードを外したときにリストボックスが表れるようにマクロを設定 したいと思っています。 VBAをいじった事がほとんどありませんでしたので、これまでのところは色々な方のコード を見ながら進めてきたのですが、「パスワードを解除した時に発動する」という条件を 見つける事ができなかったため、困窮した挙句この場で質問させて頂きました。 すみませんが、どなたかアドバイス頂けないでしょうか。 よろしくおねがいします。

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 マクロを発動した時に、あるセルに入力してある数値を参照し、その行のX列目に数値を張り付けるものを作成しようとしています。 例えば シート「1」の A1に日付を入力 B1にある数字を入力 シート「2」の A列にA1→1~A31→31の日付が入力されている時 マクロ発動時にシート「1」A1の日付と一致する シート「2」のB列にシート「1」のB1の値を貼り付け ↑たとえばシート「1」のA1が1日でB1が500だった場合 シート「2」の1日(A1)と同じ行でB列(B1に500を 貼り付けるものです。 かなり下手な説明だと自覚しておりますが、解読できる方 どうかご教授ねがいます。

  • エクセルでこんなことはできますか?

    エクセルで、 A列には日付が入っていて、B列には数値が入っています。 「A列の日付の月が5月のところのB列の値を合計する」 という式を作ることは可能でしょうか? ワークシートのセルに式を入力して実現できるでしょうか? それともマクロでないとできないでしょうか?? 自分で考えてみたのですが、ギブアップです。。。 日付が入力されているセルの月の値を抽出というか 検索する方法がわかりません・・・ どなたかご教授いただけないでしょうか?

  • マクロで数値の小さい順に並べたい。

    マクロで数値の小さい順に並べたい。 すみません、教えてください。B列に数値が順不同で記述されているのですが、その数値をA列に数値の 小さい順に並べ変えたいと思っています。それを、マクロで記述する方法を教えて頂けませんでしょうか。

  • エクセルで、データを小さい順に並べる方法はありますでしょうか??

    いつもお世話になります^ ^ エクセルで、 データを小さい順に並べる方法はありますでしょうか?? ただ単に小さい順に並べるのではなく、 少し複雑です^ ^; 5ケタの数字データがA1セルからA12389セルまであります。 その数値を小さい順に並べ、 別のセルに表示したいと考えています。 例)Aセル   例えばBセル   87697____67789   44361____13446   78623____23678   30814____01438   08307____00378 どなたか知識を分けていただけませんでしょうか?? よろしくお願い致しますm(_ _)m

  • エクセルで入力済みのセルのみ見つけて・・

    エクセルで入力済みのセルだけを見つけ出して、 指定した場所に並べる作業をマクロで1発で出来るようにしたいのですが、その方法を教えてください。 シートが37シートあります。(sheetA1~sheetA12,sheetB1~sheetB12,sheetC1~sheetC12,sheet37) それぞれセルC5からC20まで数値が入っていますが、 最終行はC20とは限りません。(sheet37はまとめるためのシートで空白) C15が最終行の場合もあれば、C18が最終行の場合もあります。 各シートそれぞれ最終行が違います。(列は同じですスタートもC5です) 各シートのC列の入力済みのセルの数値をsheet37のB1セルから順番に縦に並べたいのです。 A,B,Cのシート順にC列に入力された数値を縦に並べます。 空白は無しで詰めて並べます。 これを1回の作業でできるマクロを教えてください。 それから入力済みの最終行を見つけ出すマクロの部分を表示して頂けるとありがたいです。 宜しくお願いします。

  • エクセルマクロ超初心者で、悩んでます。

    エクセルマクロ超初心者で、悩んでます。 どなたか助けてください。 悩みはこうです↓ データ用のワークシートのセルに数字、文字が入力してあります。 セルの数値同士の引き算で算出した数値を列数として、別の印刷用のワークシートのセル番地(列、行)に、「文字」を表示したいのです。 日本語で書いちゃうと ワークシート「印刷用」の、あるセル番地(ワークシート「データ用」から、列数はJ1‐A1、行数はのB1の数値)に ワークシート「データ表」のC1の文字 を出力せよ です。 Worksheets選択がうまくいきません CellsかRangeを使うのかと思いますが、引き算する表現がわかりません・・ 文例があれば、稚拙ながら活用できるかなと思います。 よろしくお願いします!