Excel VBA質問箱 IV

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

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


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

【43268】1つのデータからTree状態の情報に振り分ける方法 うまくいかん 06/10/7(土) 15:55 質問[未読]
【43272】Re:1つのデータからTree状態の情報... ponpon 06/10/7(土) 17:18 発言[未読]
【43276】Re:1つのデータからTree状態の情報... うまくいかん 06/10/7(土) 18:11 発言[未読]
【43273】Re:1つのデータからTree状態の情報に... Hirofumi 06/10/7(土) 17:21 発言[未読]
【43275】Re:1つのデータからTree状態の情報に... うまくいかん 06/10/7(土) 18:10 発言[未読]
【43279】Re:1つのデータからTree状態の情報... ichinose 06/10/7(土) 20:49 発言[未読]
【43424】Re:1つのデータからTree状態の情報... うまくいかん 06/10/13(金) 23:33 発言[未読]
【43432】Re:1つのデータからTree状態の情報... 徘徊者 06/10/14(土) 18:56 発言[未読]
【43434】Re:1つのデータからTree状態の情報... 乱入者 06/10/15(日) 9:24 発言[未読]
【43274】Re:1つのデータからTree状態の情報に... ichinose 06/10/7(土) 18:05 発言[未読]
【43277】Re:1つのデータからTree状態の情報に... うまくいかん 06/10/7(土) 18:15 発言[未読]

【43268】1つのデータからTree状態の情報に振...
質問  うまくいかん  - 06/10/7(土) 15:55 -

引用なし
パスワード
   こんにちは。EXCEL VBA初心者です。
現在、1つのデータからTree状にデータを細かく振り分けていくマクロを作っていますが、どうもうまくいきません。

例としては:
aがb と c 2つにまず分かれます.bが以下のように分かれます

  b  1  d  g  0
a→ → 2 → e →h → 0
    3  f  i  1 'もしiが存在した場合、1

cが以下のように分かれます
    1  d  g  0
c →  2 →e →h → 0

この状態で、aの存在する数だけ、Loopされるようにしたいのですが、うまくいきません。

それぞれ、ファンクションにして値を抽出しているのですが、うまく連携しません。

まず第一に、aから条件なしでbとcに分ける方法はなんでしょうか?
条件があれば、いくらでもifなどを使用できるのですが、有無を言わさず、bとcに分けたいのです。

よろしくお願いします。
  

【43272】Re:1つのデータからTree状態の情報...
発言  ponpon  - 06/10/7(土) 17:18 -

引用なし
パスワード
   ▼うまくいかん さん:
>こんにちは。EXCEL VBA初心者です。
>現在、1つのデータからTree状にデータを細かく振り分けていくマクロを作っていますが、どうもうまくいきません。
>
>例としては:
>aがb と c 2つにまず分かれます.bが以下のように分かれます
>
>  b  1  d  g  0
>a→ → 2 → e →h → 0
>    3  f  i  1 'もしiが存在した場合、1
>
>cが以下のように分かれます
>     1  d  g  0
> c →  2 →e →h → 0
>
>この状態で、aの存在する数だけ、Loopされるようにしたいのですが、うまくいきません。
>
>それぞれ、ファンクションにして値を抽出しているのですが、うまく連携しません。
>
>まず第一に、aから条件なしでbとcに分ける方法はなんでしょうか?
>条件があれば、いくらでもifなどを使用できるのですが、有無を言わさず、bとcに分けたいのです。


なにも条件がなくて分けるのは、出来ないと思います。
また、その条件は、上の説明では理解できませんでした。
休日は、回答者が少なく、私のようなもので申し訳ないのですが、
とんちんかんの回答なら無視してください。

データの中身がどんなものかわからないので・・・・
以下は、
データAの中の"d"を見つけ、その前後でデータをデータB、データCに分けるものです。
Sub test()
  
  detaA = "abcdefg"
  
  i = InStr(detaA, "d")
  If i > 0 Then
    detaB = Mid(detaA, 1, i)
    detaC = Mid(detaA, i + 1, Len(detaA) - i)
    MsgBox detaB
    MsgBox detaC
  End If
End Sub

【43273】Re:1つのデータからTree状態の情報...
発言  Hirofumi  - 06/10/7(土) 17:21 -

引用なし
パスワード
   私だけなのかも解りませんが?
もっと具体的に質問しないと、何を如何して善いのか解りませんが?

【43274】Re:1つのデータからTree状態の情報...
発言  ichinose  - 06/10/7(土) 18:05 -

引用なし
パスワード
   ▼うまくいかん さん:
こんばんは。

データを木構造に振り分けたいということでしょうか?
それとも既に木構造を持つデータが存在して
それの検索方法が知りたいということでしょうか?

大抵この構造を持つデータは再帰呼び出しを使う場合が多いと思います。

「木構造」というワードで検索して木構造とは何かを調べてみてください。
(有名な例はフォルダとファイルですね!!)
その上で具体例を交えて説明してみてください。

現在の記述では、何をしたいのか
わかりません!!

【43275】Re:1つのデータからTree状態の情報...
発言  うまくいかん  - 06/10/7(土) 18:10 -

引用なし
パスワード
   ▼Hirofumi さん:
>私だけなのかも解りませんが?
>もっと具体的に質問しないと、何を如何して善いのか解りませんが?


そうですね。ちょっと説明しづらい状況なので、私も混乱しています。

では、具体的に簡単な例を挙げて説明します。

本を思い浮かべてください。

本があります→
それには6種類の分野に分かれています。→
その中の各々の分野には、良い、悪いという2種類の判断基準がありますが、両方細かく分岐して、それぞれの結果を出力します。→
まず良い場合は、その中に3つのカテゴリがあります。→
それらの3つのカテゴリにINDEX番号を1、2、3とつけます→
1のINDEXを非常に良い、2を良い、3を普通→
さらになぜ良いのかの理由を与えるために、1には、内容、2には価格、3には人気があるからと理由を書き出します。
それらのIndexに対して1と2は、0という数字を与えます。一方、3に対して、1という数字を与えます。これで、判断基準の良いバージョンは、終了。

さて、次は悪いバージョン。
悪いは、1、2のINDEXを与えます。→
1は、非常に悪い、2はまあまあとします。→
理由として、1は、内容、2は価格とします→
上の良いバージョンと同様に、1と2のINDEXに対し、0という数字を与えます。

このような複雑な分岐を本の数だけLOOPして結果を出力したいのです。
どうそ、知恵を下さい。

【43276】Re:1つのデータからTree状態の情報...
発言  うまくいかん  - 06/10/7(土) 18:11 -

引用なし
パスワード
   返信ありがとうございます。
下のhirofumiさんへの返信に、具体的な分岐内容を書きました。
参照して、何かいい手段があれば、教えてください。お願いします。


▼ponpon さん:
>▼うまくいかん さん:
>>こんにちは。EXCEL VBA初心者です。
>>現在、1つのデータからTree状にデータを細かく振り分けていくマクロを作っていますが、どうもうまくいきません。
>>
>>例としては:
>>aがb と c 2つにまず分かれます.bが以下のように分かれます
>>
>>  b  1  d  g  0
>>a→ → 2 → e →h → 0
>>    3  f  i  1 'もしiが存在した場合、1
>>
>>cが以下のように分かれます
>>     1  d  g  0
>> c →  2 →e →h → 0
>>
>>この状態で、aの存在する数だけ、Loopされるようにしたいのですが、うまくいきません。
>>
>>それぞれ、ファンクションにして値を抽出しているのですが、うまく連携しません。
>>
>>まず第一に、aから条件なしでbとcに分ける方法はなんでしょうか?
>>条件があれば、いくらでもifなどを使用できるのですが、有無を言わさず、bとcに分けたいのです。
>
>
>なにも条件がなくて分けるのは、出来ないと思います。
>また、その条件は、上の説明では理解できませんでした。
>休日は、回答者が少なく、私のようなもので申し訳ないのですが、
>とんちんかんの回答なら無視してください。
>
>データの中身がどんなものかわからないので・・・・
>以下は、
>データAの中の"d"を見つけ、その前後でデータをデータB、データCに分けるものです。
>Sub test()
>  
>  detaA = "abcdefg"
>  
>  i = InStr(detaA, "d")
>  If i > 0 Then
>    detaB = Mid(detaA, 1, i)
>    detaC = Mid(detaA, i + 1, Len(detaA) - i)
>    MsgBox detaB
>    MsgBox detaC
>  End If
>End Sub

【43277】Re:1つのデータからTree状態の情報...
発言  うまくいかん  - 06/10/7(土) 18:15 -

引用なし
パスワード
   こんばんは。

先ほど、hirofumiさんへの返信として、具体例を書きました。
そうです。データを木構造に振り分けて、その結果をそれぞれ元データの数ごとに出力したいのです。

どうそ、上の方の返信を参照してください。
お願いします。


▼ichinose さん:
>▼うまくいかん さん:
>こんばんは。
>
>データを木構造に振り分けたいということでしょうか?
>それとも既に木構造を持つデータが存在して
>それの検索方法が知りたいということでしょうか?
>
>大抵この構造を持つデータは再帰呼び出しを使う場合が多いと思います。
>
>「木構造」というワードで検索して木構造とは何かを調べてみてください。
>(有名な例はフォルダとファイルですね!!)
>その上で具体例を交えて説明してみてください。
>
>現在の記述では、何をしたいのか
>わかりません!!

【43279】Re:1つのデータからTree状態の情報...
発言  ichinose  - 06/10/7(土) 20:49 -

引用なし
パスワード
   ▼うまくいかん さん:

>そうですね。ちょっと説明しづらい状況なので、私も混乱しています。
質問者が混乱していては質問内容がこれを見ている方に分かるわけがありません・・、
よね?


>では、具体的に簡単な例を挙げて説明します。
>
>本を思い浮かべてください。
>
>本があります→
>それには6種類の分野に分かれています。→
>その中の各々の分野には、良い、悪いという2種類の判断基準がありますが、両方細かく分岐して、それぞれの結果を出力します。→
>まず良い場合は、その中に3つのカテゴリがあります。→
>それらの3つのカテゴリにINDEX番号を1、2、3とつけます→
>1のINDEXを非常に良い、2を良い、3を普通→
>さらになぜ良いのかの理由を与えるために、1には、内容、2には価格、3には人気があるからと理由を書き出します。
>それらのIndexに対して1と2は、0という数字を与えます。一方、3に対して、1という数字を与えます。これで、判断基準の良いバージョンは、終了。
>
>さて、次は悪いバージョン。
>悪いは、1、2のINDEXを与えます。→
>1は、非常に悪い、2はまあまあとします。→
>理由として、1は、内容、2は価格とします→
>上の良いバージョンと同様に、1と2のINDEXに対し、0という数字を与えます。

まだ、はっきり分かりませんが、これは木構造のデータではありません。
(少なくとも上記の記述では、私には一般的な表データとしか思えません)
つまり、Excelで簡単に作成できるデータ構造ということです。

まずこの例を取り上げると
 一つの本に対して6つのカテゴリーに対して評価を行う項目(良い OR 悪い)
 があるのですね?

 本に対して評価対象となる6つのカテゴリーを仮に
 
 A

 B

 C

 D

 E

 F

としましょう。

これらに対して良い 又は、悪いの評価結果があるということですか?
さらに良い場合は良いの詳細と理由、
悪い場合も悪いの詳細と理由があるということですか?


そうすると

 1 評価カテゴリ  評価1  評価詳細  理由  評価2  
 2   A     良い    1     1   0
 3   B     良い    1     3   1
 4   C     悪い    2     2   0
 5   D     良い    3     1   0
 6   E     悪い    1     2   0
 7   F     悪い    2     2   0

尚、

>上の良いバージョンと同様に、1と2のINDEXに対し、0という数字を与えます。
この意味がよくわかりませんでしたが、
概ねこのような表が作成されるということしか うまくいかんさんの記述からは
読み取ることが出来ません」。

私の解釈が違うのであれば、さらなる説明を記述してください。
その場合は、例を最低でも3つぐらい挙げることですよ!!

私の解釈が正しいのであれば、
実際に本の評価されたデータはどのような形で
まとめられているのか
評価結果(これがプログラムの入力データになります)
のレイアウトの記述

及び、
>このような複雑な分岐を本の数だけLOOPして結果を出力したいのです。

という結果のレイアウトを記述してください。

【43424】Re:1つのデータからTree状態の情報...
発言  うまくいかん  - 06/10/13(金) 23:33 -

引用なし
パスワード
   ichinoseさん

返信ありがとうございます。時間がかかってしまいましたが、なんとか自分で解決ことが出来ました。かなり複雑なNested Loopを使用ました。
もう少し、自分で時間が許す限り、いろいろとVBAで遊んでみたいと思います。
また質問があったときは、よろしくお願いします。


▼ichinose さん:
>▼うまくいかん さん:
>
>>そうですね。ちょっと説明しづらい状況なので、私も混乱しています。
>質問者が混乱していては質問内容がこれを見ている方に分かるわけがありません・・、
>よね?
>
>
>>では、具体的に簡単な例を挙げて説明します。
>>
>>本を思い浮かべてください。
>>
>>本があります→
>>それには6種類の分野に分かれています。→
>>その中の各々の分野には、良い、悪いという2種類の判断基準がありますが、両方細かく分岐して、それぞれの結果を出力します。→
>>まず良い場合は、その中に3つのカテゴリがあります。→
>>それらの3つのカテゴリにINDEX番号を1、2、3とつけます→
>>1のINDEXを非常に良い、2を良い、3を普通→
>>さらになぜ良いのかの理由を与えるために、1には、内容、2には価格、3には人気があるからと理由を書き出します。
>>それらのIndexに対して1と2は、0という数字を与えます。一方、3に対して、1という数字を与えます。これで、判断基準の良いバージョンは、終了。
>>
>>さて、次は悪いバージョン。
>>悪いは、1、2のINDEXを与えます。→
>>1は、非常に悪い、2はまあまあとします。→
>>理由として、1は、内容、2は価格とします→
>>上の良いバージョンと同様に、1と2のINDEXに対し、0という数字を与えます。
>
>まだ、はっきり分かりませんが、これは木構造のデータではありません。
>(少なくとも上記の記述では、私には一般的な表データとしか思えません)
>つまり、Excelで簡単に作成できるデータ構造ということです。
>
>まずこの例を取り上げると
> 一つの本に対して6つのカテゴリーに対して評価を行う項目(良い OR 悪い)
> があるのですね?
>
> 本に対して評価対象となる6つのカテゴリーを仮に
> 
> A
>
> B
>
> C
>
> D
>
> E
>
> F
>
>としましょう。
>
>これらに対して良い 又は、悪いの評価結果があるということですか?
>さらに良い場合は良いの詳細と理由、
>悪い場合も悪いの詳細と理由があるということですか?
>
>
>そうすると
>
> 1 評価カテゴリ  評価1  評価詳細  理由  評価2  
> 2   A     良い    1     1   0
> 3   B     良い    1     3   1
> 4   C     悪い    2     2   0
> 5   D     良い    3     1   0
> 6   E     悪い    1     2   0
> 7   F     悪い    2     2   0
>
>尚、
>
>>上の良いバージョンと同様に、1と2のINDEXに対し、0という数字を与えます。
>この意味がよくわかりませんでしたが、
>概ねこのような表が作成されるということしか うまくいかんさんの記述からは
>読み取ることが出来ません」。
>
>私の解釈が違うのであれば、さらなる説明を記述してください。
>その場合は、例を最低でも3つぐらい挙げることですよ!!
>
>私の解釈が正しいのであれば、
>実際に本の評価されたデータはどのような形で
>まとめられているのか
>評価結果(これがプログラムの入力データになります)
>のレイアウトの記述
>
>及び、
>>このような複雑な分岐を本の数だけLOOPして結果を出力したいのです。
>
>という結果のレイアウトを記述してください。

【43432】Re:1つのデータからTree状態の情報...
発言  徘徊者  - 06/10/14(土) 18:56 -

引用なし
パスワード
   放置はいかんよ。

http://www.happy2-island.com/bbs/bbs.cgi?mode=view&no=489

【43434】Re:1つのデータからTree状態の情報...
発言  乱入者  - 06/10/15(日) 9:24 -

引用なし
パスワード
   こっちもです。
http://www2.moug.net/bbs/exvba/20061007000012.htm
一方的に質問するだけですか?
>かなり複雑なNested Loopを使用ました。
そのコードを示して、回答してくださった方や
閲覧している人に還元すべきじゃないですか?
お騒がせしたまま、自分だけ満足すればいいってもんじゃない。
違います?
それとも公開できない事情でもあるのですか?
だったら、最初から、あちこちに質問をばら撒くもんじゃない。

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