オプション1とオプション2があります。
オプション1の項目とオプション2の項目をリスト1に表示させるまでは
出来たのですがリスト1内の項目をクリックするとイメージ1に
表示させたいのですがなかなかうまくいきません。
例えば、オプション2をクリックしリスト1に表示をしてリスト1に表示した
項目をクリックしイメージ1に表示をするとやりたいのです
先輩方アドバイスをいただけないでしょうか?
どうか、よろしくお願いいたします。
こんにちは
早速質問なのですが
フォーム1にフレーム1とリスト1とイメージ1がありフレーム1内に
オプション1とオプション2があります。
オプション1の項目とオプション2の項目をリスト1に表示させるまでは
出来たのですがリスト1内の項目をクリックするとイメージ1に
表示させたいのですがなかなかうまくいきません。
例えば、オプション2をクリックしリスト1に表示をしてリスト1に表示した
項目をクリックしイメージ1に表示をするとやりたいのです
先輩方アドバイスをいただけないでしょうか?
どうか、よろしくお願いいたします。
※上の投稿はミスです。こちらが正規の質問です。
内容からして VB6 か…それとも VBA 系でしょうか?
開発環境も明記するようにしてください。回答が大きく変わってしまいます。
> フォーム1にフレーム1とリスト1とイメージ1がありフレーム1内に
> オプション1とオプション2があります。
親子関係でいうと、こうなるのかな。
[Form1]
├[Frame1]
│├[Option1]
│└[Option2]
├[List1]
└[Image1]
> オプション1の項目とオプション2の項目をリスト1に表示させるまでは
ListBox や ComboBox であれば「項目」がありますが、
OptionButton の「項目」と言うのが、何のことか読み取れませんでした。
何か一連のデータ(たとえば学級名簿)があって、
それを List1 に表示させるのだが、その内容を
Option1/Option2 で絞り込む(たとえば男子/女子)感じでしょうか…?
> 出来たのですがリスト1内の項目をクリックするとイメージ1に
> 表示させたいのですがなかなかうまくいきません。
逆に言うと、Option1/Option2 の制御は何の問題も無いのですね?
わからないのは、List1 と Image1 の間の連携方法だけである…と。
何にしても、現時点でどのようなコードを書いているのかを
示してもらわないと、「修正案」を出すことができません。
(1) どのイベントに、処理を記述していますか?
(2) 選択された項目を取得する事はできていますか?
(3) その項目に相当するイメージを得ることはできていますか?
(4) そのイメージを Image1 に割り当てるために、どのようなコードを書いていますか?
魔界の仮面弁士様アドバイスありがとう御座います。
すいません、今後明記いたします。
windows xp pro VB6
>親子関係でいうと、こうなるのかな。
>[Form1]
>├[Frame1]
>│├[Option1]
>│└[Option2]
>├[List1]
>└[Image1]
その通りです。
>ListBox や ComboBox であれば「項目」がありますが、
>OptionButton の「項目」と言うのが、何のことか読み取れませんでした。
すいません、説明不足で・・・
下のイベントを見てもらうとわかるんですが、名前ですね^^;
>何か一連のデータ(たとえば学級名簿)があって、
>それを List1 に表示させるのだが、その内容を
>Option1/Option2 で絞り込む(たとえば男子/女子)感じでしょうか…?
その通りです。
>逆に言うと、Option1/Option2 の制御は何の問題も無いのですね?
>わからないのは、List1 と Image1 の間の連携方法だけである…と。
その通りです。
>(1) どのイベントに、処理を記述していますか?
-------------------------------------
Private Sub List1_Click()
End Sub
-------------------------------------
Private Sub Option1_Click()
List1.Clear
With List1
.AddItem "佐藤"
.AddItem "加藤"
.AddItem "山田"
.AddItem "斉藤"
.AddItem "吉田"
以下名前が続く・・・
End With
End Sub
-------------------------------------
Private Sub Option2_Click()
List1.Clear
With List1
.AddItem "森"
.AddItem "草間"
.AddItem "沼尻"
.AddItem "新井"
.AddItem "新垣"
以下名前が続く・・・
End With
End Sub
-------------------------------------
>(2) 選択された項目を取得する事はできていますか?
オプション1及びオプション2はちゃんと制御されてます。
オプション1を選択すると男の名前がリスト1へ反映されます。
オプション2を選択すると女の名前がリスト1へ反映されます。
>(3) その項目に相当するイメージを得ることはできていますか?
イメージはBMPの顔写真です。
>(4) そのイメージを Image1 に割り当てるために、どのようなコードを書いていますか?
If分を使う事は分かっているのですが、記述方法がわからないのです。
最終的には、オプション1(男)オプション2(女)どちらかを選ぶと
リスト1に名前が表示され、名前をクリックするとイメージ1へ顔写真を
表示と言う形になります。
>> (1) どのイベントに、処理を記述していますか?
ListBox の Click イベントを使っている(使おうとしている)のですね。
そこまでは問題ないと思います。
>> (2) 選択された項目を取得する事はできていますか?
> オプション1及びオプション2はちゃんと制御されてます。
> オプション1を選択すると男の名前がリスト1へ反映されます。
> オプション2を選択すると女の名前がリスト1へ反映されます。
いえ、ここでお聞きしたのは、OptionButton の事ではなく、
ListBox 内に配置された項目のうち、どの項目が選択されているのかを
把握できていますか? という意味です。
選択された項目を知るには、ListBox の ListIndex プロパティを使います。
ただし、複数選択(MultiSelect プロパティ)を有効にしている場合には、
Selected プロパティを利用してください。
>> (3) その項目に相当するイメージを得ることはできていますか?
> イメージはBMPの顔写真です。
それを取得できていますか、という意図の質問です。
たとえば、Option2 によってリストが更新されたあと、
ユーザによって「沼尻」が選ばれた場合に、その"沼尻" にあたる
画像情報(BMP ファイルのパスなど)を得ることはできていますか?
また、画像情報はそもそもどのようにして管理されているのでしょうか?
>>(4) そのイメージを Image1 に割り当てるために、どのようなコードを書いていますか?
> If分を使う事は分かっているのですが、記述方法がわからないのです。
If 文…ですか? それを、何の判定に使いたいのでしょうか?
何を判定したいのかを書いていただければ、使い方を例示しますよ。
魔界の仮面弁士様アドバイスありがとう御座います。
ほんとうに勉強不足ですいません
If分の使い道ですが、オプション1を選択後、佐藤を選んだ時に
顔写真を出力したいのです。
自分なりにIf分を使って記述したのですがエラーが出てしまいます。
Private Sub List1_Click()
If List1.Text = "佐藤" Then
image1 = c:\kanri\佐藤.bmp
Else List1.Text = "加藤" Then
image1 = c:\kanri\加藤.bmp
End If
End Sub
このIf分さえちゃんと記述出来れば出来そうな気がするのですが・・・
アドバイスをいただけないでしょうか?
どうか、よろしくお願いします。
なるほど。手順(2) を、「Text プロパティ」で行うようにしたのですね。
そこまでは良いのですが、手順(3)と手順(4)を一度にやろうとして
ハマっているようです。まずは、ひとつずつ解決していきましょう。
> 自分なりにIf分を使って記述したのですがエラーが出てしまいます。
そのような書き方をしていたら、項目が1000個あったときに、
If 文も1000個必要になってしまいますよ。
ですから、この段階での If 文の出番はありません。
If 文を使うのでは無く、「選択された名前」(佐藤とか加藤とか砂糖とか加糖とか)をもとに、
Dim bmpPath As String
bmpPath = "c:\kanri\" & List1.Text & ".bmp"
などとして、対応する画像情報を得ましょう。ここまでが手順(3)です。
続いて手順(4)。
画像のパスから、Image1 に画像をロードするには、
Set Image1.Picture = LoadPicture(bmpPath)
のように書きます。これで完了です。If 文の出番はありませんでした。
ただし LoadPicture する際には、対応するファイルが無ければ
エラーになりますから、もしも If 文を使うとすれば、
画像を読み込めるかどうかのチェックのために、
このタイミングで使う事になるでしょう。
魔界の仮面弁士様
アドバイスありがとう御座います。
アドバイス通りやってみました
すごいです・・・
If文でやってたら日が暮れますね^^;
bmpの画像が800枚近くもあるので・・・
今までの苦労は何だったんだ・・・
魔界の仮面弁士様、親切かつ丁寧なアドバイスありがとう御座いました。
無事に動作いたしましたのでご報告いたします。
感激です。本当に本当にありがとう御座いました。
解決のチェックを忘れました。
編集 削除