Excel VBA質問箱 IV

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

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


18282 / 76738 ←次へ | 前へ→

【63899】Re:選択ボックス作成について
発言  kanabun  - 09/12/30(水) 0:22 -

引用なし
パスワード
   ▼ひいろ さん:

>>無条件で
>>> UserForm1.Show(vbModeless)
>>と表示しているからですよね
>
>すみません。勉強不足で…
>ここを変えればいいのでしょうか?

そこは、文字通り、ユーザーフォームを表示しているところですから
何も変更する必要はありません。


>5,6については4をコピーしてそれぞれ5,6に数字だけ変えたのですが
>やっぱりユーザーフォームしか出てこず,肝心な中身が表示されません。

いま dspName の記述を推定しなが記述しなおすと、
以下のようです。
 変数 r は 指定列 retu の3行目から最終データ行までのセル範囲です。
 この範囲は Do〜Loopしなくても求まりますから、この範囲を 変数rに
 代入して
    For Each c In r
      処理
    Next
 のように、列ごとにLoopし 列別の処理をします。

●「retu」 が (1)(2)(4)のCaseについては すでに書いてあります。
★「retu」 が (5)と(6)についても、同様に 処理を書いてください。


Sub dspName(retu As Integer)
 Dim WS As Worksheet
 Dim temp1 As String
 Dim r As Range
 Dim c As Range
 
 UserForm1.Show vbModeless
 UserForm1.IstChoice.Clear
 
 Set WS = Worksheets("職員情報")
 With WS
  Set r = .Range(.Cells(3, retu), .Cells(3, retu).End(xlDown))
 End With
 
 Select Case retu
  Case 1 '--------------- 上と比較 ●
    For Each c In r
     If c.Value <> c.Offset(-1).Value Then
      UserForm1.IstChoice.AddItem c.Value
     End If
    Next
  Case 2 '--------------- 横と比較 ●
    For Each c In r
     If c(1, -1).Value = c(1, 0) Then
      UserForm1.IstChoice.AddItem c.Value
     End If
    Next
  Case 4 ' --------------- 固定セルと比較 ●
    temp1 = WS.Cells(8, 5).Value
    For Each c In r
     If c(1, 0).Value = temp1 Then
      UserForm1.IstChoice.AddItem c.Value
     End If
    Next
  
  Case 5
    For Each c In r
        '--- ここにパラメータが 5 のときの処理を書く ★
    Next
  
  Case 6
    For Each c In r
        '--- ここにパラメータが 6 のときの処理を書く ★
    Next
  
 End Select

End Sub

なお、
> UserForm1.IstChoice
というのは ListBoxコントロールのことで、ほんとうは
lstChoice が正しいのではないかと想像するのですが、
以下では原文のまま (lstChoiceでなく)IstChoice としてあります。

こういうタイプミスは
各モジュール(標準モジュールとか UserFormモジュール)の一番最初

Option Explicit
と宣言を入れておくことにより、コードの中で
lstChoice を IstChoice とタイプしたり、
変数temp1 を tmp1として使用したりすると
「変数が宣言されていません」と
警告が出るので、すぐタイプミスに気がつくようになります。
必ず
Option Explicit
を宣言してからコードを各習慣をつけるようにしてください。

また、掲示板に質問用に出すコードは インデントをきちんとつけた
コードを提示するようにしてください。インデントの付いてないコード
や、実際のコードをコピペしたものでないコードは
それだけで回答が付きにくくなります。

0 hits

【63894】選択ボックス作成について ひいろ 09/12/29(火) 18:21 質問
【63895】Re:選択ボックス作成について kanabun 09/12/29(火) 19:20 発言
【63896】Re:選択ボックス作成について ひいろ 09/12/29(火) 20:20 質問
【63897】Re:選択ボックス作成について kanabun 09/12/29(火) 21:30 発言
【63898】Re:選択ボックス作成について ひいろ 09/12/29(火) 22:16 質問
【63899】Re:選択ボックス作成について kanabun 09/12/30(水) 0:22 発言
【63900】Re:選択ボックス作成について kanabun 09/12/30(水) 0:37 発言

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