
平素は皆様にご教授いただき、まことにありがとうございます。
リストボックス内で、時間で昇順にソートをかけたいと思い、サイトを巡回して似たようなものを見つけたので、少し変えて作ってみました。
結果として、エラーは出ずに、昇順ソートしてくれていますが、、以下のような問題に直面しています、、画像もお付けいたします。
1、2列目から1列目に寄ってしまう
2、ソートすると、1桁時刻と2桁時刻をわけてしまう
という感じです。
1次元配列(専門用語の理解とか使い方間違ってると思います。。。以下同じ)でなくて、2次元配 列で放り込む方法ってあるんでしょうか、、
それと、列のみ削除するって可能なんでしょうか、、どこにも載ってないです、、いずれも。。
よろしければ、ご教授いただければ幸いです。。毎回もうしわけございません。。
Private Sub CommandButton12_Click()
Dim column1 As String
Dim column2 As String
Dim i As Long
With CreateObject("System.Collections.ArrayList")
For i = 0 To ListBox1.ListCount - 1
column1 = ListBox1.List(i, 0)
column2 = ListBox1.List(i, 1)
.Add column2
Next i
.Sort
ListBox1.Clear
For i = 0 To .Count - 1
ListBox1.AddItem .Item(i)
Next i
.Clear
End With
End Sub

No.1ベストアンサー
- 回答日時:
こんばんは!
質問文を拝見すると
何か操作そのものを難しくしているような気がします。
ちなみに今回は単なるアドバイスになりますが・・・
自分であれば
どこか使っていない列を利用し、リストボックスに表示するデータを作成し
そこで昇順等の操作を行う → 必要行だけリストボックスに表示する!
といった流れにします。
※ 印刷するシートにその作業用の列を作成した場合は
「印刷設定」で印刷したい範囲だけを指定すればそこは印刷されません。m(_ _)m
毎度ご回答くださり、誠にありがとうございます。
そうですね、、それが素直なやり方なのだろうと思いますが、ちょっと作ってみて、結構楽だなぁとは思います。自己満足かもしれませんが^^;
ちなみにですが リストボックスをリストビュアーに置き換えるということは可能ですか?
No.4
- 回答日時:
ListViewコントロールの使い方
http://officetanaka.net/excel/vba/listview/
どのように使うものなのかを知り、置き換えられるかを判断する。
ただListBoxで悩んでいる(並び替えなど)のなら、置き換えても同じ悩みを持つだけではないかなと。
何度もお返事を頂きまして、申し訳ございません。
どうやら、見出しもつけられて、ソートもできるようです。やってみる価値はあるかなと思いますので、やってみます。
情報までいただきまして、ありがとうございます。
No.2
- 回答日時:
直接コードは書けませんので疑問点だけに対して。
>1、2列目から1列目に寄ってしまう
ArrayList に .Add column2 2列目だけ格納していれば取り出しても1列しか出せませんよ。
>2、ソートすると、1桁時刻と2桁時刻をわけてしまう
『わける』と言う表現とは違います。ただ単にListBoxに入っている値では『時刻』ではなく『文字列』であると言う事。
しかも格納する際にも文字列から時刻に変換はされてませんし。
ここはNo.1さんのアドバイスにもあるようにシートにリストを書き出して並び替えた方が、セルに入れられた『時刻みたいな文字列』をExcelは『時刻』と扱うと思います。
検証できないので絶対とは言えませんが多分そう認識すると思います。
並び替えた後にListBoxへ戻せば宜しいかと。
いつもご回答いただきまして、ありがとうございます。
付け加えてみたら、数字の後に名前が一直線になって出てきました。やっぱり、一列なんですかね、、あの中身って、、
配列なんて見ていると、全身にじんましんが多発しておりますが、、
なんとか理解してみようと思います。
数字で認識しない、、そうですよね、、言われてみたら、、
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
リストボックス内を昇順並べる方法
Excel(エクセル)
-
エクセルVBA ListBoxの並び替え:VBA初心者です
Visual Basic(VBA)
-
【VBA】【ユーザーフォーム_ListBox】オートフィルタで絞りこんだ値だけを取り出したい
Visual Basic(VBA)
-
-
4
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
5
listboxの並び替え
Visual Basic(VBA)
-
6
コンボボックスの中身を任意順で並べ替え VBA
Excel(エクセル)
-
7
ExcelVBA でリストリストボックスに列見出しをコーディングでつける
Excel(エクセル)
-
8
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
9
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
10
EXCEL VBA リストボックスの列を指定してForeColorを変更する方法について
Excel(エクセル)
-
11
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
12
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
13
【VBA】ユーザーフォーム リストボックスのヘッダー設定方法
Visual Basic(VBA)
-
14
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
15
コンボボックスへ降順に表示するには?
Excel(エクセル)
-
16
エクセルVBAでフォームのListboxをスクロールするには?
その他(Microsoft Office)
-
17
EXCEL2013 VBA ListBox 未選択
Excel(エクセル)
-
18
Excel vba ListBoxについて
Excel(エクセル)
-
19
変数をコントロール型で使用する方法
Visual Basic(VBA)
-
20
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
あるディレクトリ内のファイル...
-
VBA基本構文の作り方 2列の...
-
昇順ソート
-
サイトで価格順で表示するなど...
-
VB.NETでファイル名順にファイ...
-
文字列をソートする方法
-
Fortran77で多次元配列を並び替...
-
C# DataTableの行をソートしてD...
-
C言語のCSV形式からのソート
-
C言語でアナグラムを求めるプロ...
-
関数から配列を返すには?
-
C言語 配列の長さの上限
-
VBAのプログラムで、DIAG = 1# ...
-
char*を初期化したいのですが
-
Integer変数をカラにしたいので...
-
「#undef」と「#define」の使い...
-
define で 配列
-
複数の選択範囲の行番号を個別...
-
C# Listを使わずに2次元配列の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VB.NETでファイル名順にファイ...
-
C# DataTableの行をソートしてD...
-
C言語・要素除去
-
配列の問題
-
VBA基本構文の作り方 2列の...
-
あるディレクトリ内のファイル...
-
Excelですべての組合せ(重複組...
-
n番目に大きい数を求めるアル...
-
2次元配列を複数項目でソートし...
-
ファイル名「1.jpg ~10.jpg~...
-
クイックソートしながら重複要...
-
C# ArrayListを二次元配列のよ...
-
csvファイル内にてソートす...
-
C言語について
-
昇順ソート
-
int num[10]という配列に、適当...
-
EXCEL VBAのソートについて
-
excel VBA の条件をつけての列...
おすすめ情報
いましがた、リストビュアーなるものを見つけたのですが、これをリストボックスから置き換えることって可能なんでしょうか?
今回も皆様にご指導いただいたこと、誠にありがとうございました。
どうやら、リストビューを使うことが一番いいような感じです。
今回もベストアンサーを選ばせて頂きますが、ご指導いただいた皆様に感謝申し上げます。