Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


849 / 886 ←次へ | 前へ→

【40】Re:リストボックス内を並べ替え
お礼  WhiteRabbit  - 03/5/16(金) 21:18 -

引用なし
パスワード
   ▼らいでん さん:
こんばんは。返信ありがとうございます。

>こんにちは。
>ご提示のデータですと
>
>Sub TempTable()
> Dim TmpTb As Table
> Dim myArray() As Variant
> Dim lngCol As Long
> Dim strCell As String
> Dim i As Long
> 
> Set TmpTb = ThisDocument.Tables(1)
> 'ソート処理
> '見出しは対象外,2列目,JISコードを基準,昇順
> TmpTb.Sort ExcludeHeader:=False, FieldNumber:="列 2", SortFieldType:= _
>  wdSortFieldJapanJIS, SortOrder:=wdSortOrderAscending
> 
> lngCol = TmpTb.Rows.Count - 1
> ReDim myArray(lngCol, 1)
> 
> For i = 0 To lngCol
>  '一列目のデータを配列に格納
>  strCell = TmpTb.Cell(i + 1, 1).Range.Text
>  myArray(i, 0) = Left(strCell, Len(strCell) - 2)
>  '二列目のデータを配列に格納
>  strCell = TmpTb.Cell(i + 1, 2).Range.Text
>  myArray(i, 1) = Left(strCell, Len(strCell) - 2)
> Next
> 
> With UserForm1.ListBox1
>  .ColumnCount = 2
>  .List = myArray
>  .ListIndex = 0
>  .ColumnWidths = "20;40"
> End With
> UserForm1.Show
> 
> Set TmpTb = Nothing
>End Sub
>
>こういったところでしょうか。

サンプルコードありがとうございます。うまく作動しました。

>Excelですとご存知の通りUsedRangeそのものが配列として取り扱えますが
>Wordの表(セル)では、改行情報やセル区切りといったWord固有の情報が
>存在しますのでこの情報を切り捨てるという処理が必要になります。

>ですのでExcelと同じような使い勝手のよさを期待されると辛いものが
>あります。

ExcelVBA自体もよくわかってませんがWordの方もなかなか難しいのですね。

>>作業用のシートを適宜追加し
>と仰っていますので、多分
>リストボックスのデータを一旦表に書き出す→ソート処理→配列変数格納
>→表の削除、または作業用文書の削除
>といった一連の処理を考えておられるのでしたら、更なる工夫が必要に
>なるでしょう。

まさにそんなところですね。ちょっと勿体ない感じはしますが、ありものでできるのは捨てがたいですね。

>この点
>>他のサイトを検索したら配列変数にとりこんでからのソートで対応
>こちらのアルゴリズムと天秤にかけて考える必要がありそうですね。

いろいろと教えていただき勉強になります。
また質問すると思いますが今後もよろしくお願いします。

2,123 hits

【21】リストボックス内を並べ替え WhiteRabbit 03/4/24(木) 15:17 質問
【28】Re:リストボックス内を並べ替え らいでん 03/5/4(日) 1:42 発言
【31】Re:リストボックス内を並べ替え WhiteRabbit 03/5/13(火) 15:14 お礼
【33】Re:リストボックス内を並べ替え らいでん 03/5/14(水) 0:16 回答
【36】Re:リストボックス内を並べ替え WhiteRabbit 03/5/15(木) 15:27 質問
【39】Re:リストボックス内を並べ替え らいでん 03/5/16(金) 16:15 回答
【40】Re:リストボックス内を並べ替え WhiteRabbit 03/5/16(金) 21:18 お礼

849 / 886 ←次へ | 前へ→
ページ:  ┃  記事番号:
207137
(SS)C-BOARD v3.8 is Free