Excel VBA質問箱 IV

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

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


6580 / 13646 ツリー ←次へ | 前へ→

【44419】要素の抽出 taka 06/11/15(水) 21:12 質問[未読]
【44433】Re:要素の抽出 ichinose 06/11/16(木) 7:31 発言[未読]
【44442】Re:要素の抽出 ハチ 06/11/16(木) 12:52 発言[未読]

【44419】要素の抽出
質問  taka  - 06/11/15(水) 21:12 -

引用なし
パスワード
   エクセルの列に含まれる要素の種類を配列に取り込もうと思い、
for nextループとif文での判別で総当りする形で作ってみたのですが。
どうにも処理に時間がかかりすぎます。
何か良い関数や方法は無いでしょうか。
全ての列に対して

for i=1 to ubound(hairetu)

if .cells(i,1)=hairetu(i)then

 exit for

elseif hairetu(i)=0 then
 
 hairetu(i)=.cells(i,1)
 
 exit for

elseif i=ubound(hairetu) then

 redim preserve hairetu (ubound(hairetu)+1)
 hairetu(ubound)=.cells(i,1)

else

end if

next i

手元にファイルが無く正確では無いのですがこのような感じです。
どうかよろしくお願いします。

【44433】Re:要素の抽出
発言  ichinose  - 06/11/16(木) 7:31 -

引用なし
パスワード
   ▼taka さん:
おはようございます。

>エクセルの列に含まれる要素の種類を配列に取り込もうと思い、

takaさんが作成したいプログラムの機能としては、↑この1行でしか
述べていませんよね!! それの「要素の種類」??


>for i=1 to ubound(hairetu)
>
>if .cells(i,1)=hairetu(i)then
>
> exit for
>
>elseif hairetu(i)=0 then
> 
> hairetu(i)=.cells(i,1)
> 
> exit for
>
>elseif i=ubound(hairetu) then
>
> redim preserve hairetu (ubound(hairetu)+1)
> hairetu(ubound)=.cells(i,1)
>
>else
>
>end if
>
>next i
>
>手元にファイルが無く正確では無いのですがこのような感じです。

それと正しく作動するか否か定かではないコードの提示・・・。
これは、情報処理の問題だとしたら、難問ですね!!

1.機能概要
  プログラムの機能を簡潔に記述する

2.プログラムの入力データの説明
  必ず、データの例を記述する。

3.プログラムの入力データの説明
  必ず、入力データ例に対する出力データの例を記述する。

4.自身が作成したコードの提示

1〜3は、最低限必要な記述事項だと思っています。

これは、マナーだよ という立場で言っているのではなく、
VBAの技術的観点(プログラミングを習得する一環)から申し上げています。
プログラミングをしていけば、ドキュメントを書くということを
避けることは出来ないと思っています。

ここに質問投稿するということは、その練習に大いに役に立ちますよ!!

私は、ここに投稿する場合、この点をテーマに投稿することは多いです。

これは、takaさんだけでなく、質問者の方に対する私からの提案です。

【44442】Re:要素の抽出
発言  ハチ  - 06/11/16(木) 12:52 -

引用なし
パスワード
   ▼taka さん:
>エクセルの列に含まれる要素の種類を配列に取り込もうと思い、
>for nextループとif文での判別で総当りする形で作ってみたのですが。
>どうにも処理に時間がかかりすぎます。
>何か良い関数や方法は無いでしょうか。

良く使われるところでは

案1 フィルタオプションで"重複を無視"にチェックをいれて抽出する。
案2 Scripting.dictionaryの.Existsで判定しながら取り出す。

ですかね?
過去ログにサンプルもたくさんあります。

6580 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free