IT
มัธยมปลาย

VBAでバブルソートをつくりたいです、プログラムを教えてほしいです。(変数を使ってワークシートに書き込めるようにしたいです。)

คำตอบ

変数を使ってワークシートに書き込めるようにしました。(ここで途中行き詰まりました)
以下、Excel2024のVBAで実験したときのコードと表示結果になります。
-------ここから-------
'変数の宣言を強制し、意図しないエラーを防ぎます。
Option Explicit

'マクロのメインプロシージャ
Public Sub BubbleSort_in_Excel()
'--- 元のコードのロジック ---
Const N As Integer = 6
Dim a(N - 1) As Long '配列を宣言
Dim i As Integer
Dim j As Integer
Dim t As Long

'配列に初期値を設定
a(0) = 80: a(1) = 41: a(2) = 35: a(3) = 90: a(4) = 40: a(5) = 20

'バブルソートのアルゴリズム(昇順)
For i = 0 To N - 2
For j = N - 1 To i + 1 Step -1
If a(j) < a(j - 1) Then
'要素を入れ替える
t = a(j)
a(j) = a(j - 1)
a(j - 1) = t
End If
Next j
Next i

'--- 結果をExcelシートに出力 ---
Dim outputSheet As Worksheet

'出力用のシートを準備(なければ追加)
On Error Resume Next
Set outputSheet = ThisWorkbook.Sheets("ソート結果")
If outputSheet Is Nothing Then
Set outputSheet = ThisWorkbook.Sheets.Add
outputSheet.Name = "ソート結果"
End If
On Error GoTo 0

'シートをクリア
outputSheet.Cells.Clear

'A列にソート後のデータを出力
outputSheet.Range("A1").Value = "ソート結果"
For i = 0 To N - 1
'A2セルから下方向へ出力
outputSheet.Cells(i + 2, 1).Value = a(i)
Next i

'結果が見やすいように列幅を自動調整
outputSheet.Columns("A").AutoFit

'メッセージボックスで完了を通知
MsgBox "ソートが完了し、「ソート結果」シートに出力しました。"

End Sub

แสดงความคิดเห็น
ข้อสงสัยของคุณเคลียร์แล้วหรือยัง?

เมื่อดูคำถามนี้แล้ว
ก็จะเจอคำถามเหล่านี้ด้วย😉