質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

379閲覧

VBAの並び替えについて

zigzag110

総合スコア9

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/07/31 02:21

A列のn行目と(n+1)行目のセルを比較しながら並べ替えるプログラムを作りたいのですがどのようにプログラミングすればいいですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

「ソートアルゴリズム」でWeb検索すると、たくさんのソートの仕方を説明したページが見つかります。

それらを一通り読んで、どのアルゴリズムのプログラムを作るのかを決めてください。
(アルゴリズムが違うと、プログラムも違ってきますので、プログラムを作り始める前にアルゴリズムを決めておく必要があります)

ソートアルゴリズムの名前(バブルソート、クイックソート等)でWeb検索すると、コード例が書かれたページが見つかりますから、それらを参考にしてVBAでコードを書いてください。

投稿2018/07/31 02:52

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

A列のn行目と

エクセルの並び替え機能は使わないまたは使えないということですか?
エクセル君に任せた方がVBAで記述するより、処理速度は速い上に
コードが簡単になると思いますが。。。。

投稿2018/07/31 03:23

mattuwan

総合スコア2136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zigzag110

2018/07/31 04:43

研修の課題を出されたのですがVBAをまったくやったことがないのでよくわからないんです。
guest

0

ベストアンサー

質問内容がざっくりしすぎているので的確な回答はできませんが、処理の流れだけを回答すると次のような感じになると思います。

VBA

1For n=開始行 To 終了行 2 If Cells(n,1).Value 比較演算子 Cells(n+1,1).Value Then 3 並べ替え処理 4 End If 5Next

追記
ソートのサンプルです。

VBA

1Dim 開始行 As Integer 2Dim 終了行 As Integer 3Dim n As Integer 4Dim n2 As Integer 5Dim temp 6 7開始行 = 1 8終了行 = 10 9 10For n = 終了行 - 1 To 開始行 Step -1 11 For n2 = 開始行 To n 12 If Cells(n2, 1).Value > Cells(n2 + 1, 1).Value Then 13 temp = Cells(n2, 1).Value 14 Cells(n2, 1).Value = Cells(n2 + 1, 1).Value 15 Cells(n2 + 1, 1).Value = temp 16 End If 17 Next 18Next 19

投稿2018/07/31 02:54

編集2018/07/31 05:16
ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zigzag110

2018/07/31 04:48

並べ替え処理はどうやるんですか?
ttyp03

2018/07/31 04:49

「並べ替え」と言っているのはどういう処理ですか? 入れ替えればよいのですか?
zigzag110

2018/07/31 04:51

小さい順に並べる処理です。
ttyp03

2018/07/31 05:17

バブルソートでしょうか。 一応サンプルを回答しておきましたが、アルゴリズムについてはご自分で調べてみてください。 課題とのことなので、本来なら担当の方に聞くのが良いのですが・・・。
zigzag110

2018/07/31 05:23

担当がどこかに行ってしまって聞けないんです。 開始行はRangeで指定すればいいんですか?
ttyp03

2018/07/31 05:40

ん? いやサンプルで提示したのは1~10行を対象に処理する作りで完成しています。 開始行と終了行が決まっているなら他の値にすればよいし、動的な処理にするのであれば、別途質問をあげましょう。
ttyp03

2018/07/31 05:42

担当に聞ける環境であるなら、戻り次第、聞くのが手っ取り早いですね。 今は私のコードを解析したり、アルゴリズムを調べたりすればよろしいかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問