人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルのVBAに関する質問です。オートフィルタでつくられるプルダウンの一覧のうち、セルに記述されている部分(重複を除いたもの)を配列として取り込むことは可能なのでしょうか? プルダウンでは、上から、すべて、オプション、トップテンなどとでてきますが、この部分を除いた下のほうの一覧です。無理ならば、オートフィルタと同じように、重複を除いた一覧を簡単に取得することは可能なのでしょうか?

●質問者: kaiketsu
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:VBA エクセル オプション セル トップテン
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● SALINGER
●60ポイント

簡単とまでは行きませんが、特定のセル範囲を重複無しで配列に格納するマクロです。

Sub Macro()
 Dim r As Range
 Dim i As Long
 Dim myData() As String
 Dim f As Boolean
 
 ReDim myData(0)
 
 For Each r In Selection
 If myData(0) = "" Then
 myData(0) = r.Value
 Else
 f = False
 For i = 0 To UBound(myData)
 If myData(i) = r.Value Then
 f = True
 Exit For
 End If
 Next
 If Not f Then
 ReDim Preserve myData(UBound(myData) + 1)
 myData(UBound(myData)) = r.Value
 End If
 End If
 Next
End Sub

ここでは選択した範囲を配列myDataに入れています。

プルダウンのリストとなる範囲が決まっている場合は、

一箇所あるselectionを特定のRangeに置き換えればいいです。

http://q.hatena.ne.jp/

◎質問者からの返答

ありがとうございます。ただ、うーん、簡単ではないんですね。オートフィルタの一覧を横取りするようなことができるといいのですが、

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ