tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 恥ずかしい
投稿日: 2008/02/13(Wed) 21:02
投稿者だめおやじ
> コードを送信します。VB始めて3ヶ月笑わないでください。現在の実力です。
> やりたいことは、一個のコンボボックスを繰り返し使用したいだけです。
> それぞれの階層に沢山のフォルダーが存在するためにdirを取得してそれを選択して、
  次の階層のdirを取得して最後にはファイル名を取得したいと考えています。
>これが全てのコード」です。
Option Explicit
Dim MyFile, MyPath, MyName
Dim MyFile1 As String
Dim MyFile2 As String
Dim MyFile3 As String
Dim MyFile4 As String
Dim MyFile5 As String
Dim MyFile6 As String
Dim MyFile7 As String
Dim MyFile8 As String
Dim MyFile9 As String
Dim kenna(20)
Dim fkenna As String
Dim hata As String
Dim skenna As String
Dim i
Dim kihon
Dim sss(300) As String
Private Sub Command1_Click()
  はじめ
  MyFile1 = "(""R:\ロータス\ロータス\基礎\データ\" '固定的なパス
  MyFile5 = "基本テキ1\" '固定的なパス
  MyFile7 = "*.sim"")" 'ファイル名を取り込むことが最終目的
  MyFile8 = "\"
End Sub
Private Sub はじめ()
  hata = "県" '頭初のフラッグたて。
  Call kennaa
End Sub

Private Sub ファイル() '最終目的ファイル名を取得したい

  MyFile10 = MyFile1 & MyFile2 & MyFile8 & MyFile3 & MyFile8 & MyFile4 & MyFile8 & MyFile5 & MyFile6 & MyFile8 & MyFile7
  MsgBox MyFile10

For i = 1 To 300
    If i = 1 Then
        MyFile = MyFile10
        sss(1) = MyFile
    Else
        MyFile = Dir
        sss(i) = MyFile
    If sss(i) = "" Then GoTo jp1
      
    End If
Next
jp1:
End Sub

Private Sub kennaa()

If hata = "県" Then
    MyPath = "R:\ロータス\ロータス\基礎\データ\"   ' 1回目のパスを設定します。
    MsgBox MyPath '動作確認済み
End If
If hata = "署" Then
    MyPath = "R:\ロータス\ロータス\基礎\データ\" & MyFile2 & "\" ' 2回目のパスを設定します。
    MsgBox MyPath 'msgboxでデレクトリーを取得していることは確認済み
End If
If hata = "事" Then '以下作動しないため動作未確認です
    MyPath = "R:\ロータス\ロータス\基礎\データ\" & MyFile2 & "\" & MyFile3 & "\" & MyFile4 & "\" ' 3回目のパスを設定します。
    MsgBox MyPath
End If
If hata = "基本" Then
    MyPath = "R:\ロータス\ロータス\基礎\データ\" & MyFile2 & "\" & MyFile3 & "\" & MyFile4 & "\" & "基本テキ1" & "\" & MyFile6 & "\" ' 4回目のパスを設定します。
    MsgBox MyPath
End If

Combo17.Clear 'コンボボックスのリスト消去

For i = 1 To 20
    kenna(i) = Empty '変数の値消去
Next

For i = 1 To 20

If i = 1 Then
    MyName = Dir(MyPath, vbDirectory)   ' 最初のフォルダ名を返します。
    kenna(i) = MyName
Else
    MyName = Dir
    kenna(i) = MyName                   'フォルダー名の取得
    MsgBox kenna(i)                     '動作確認済み
  If kenna(i) = "" Then GoTo jp1        'フォルダーをなくなったらジャンプ
  If kenna(i) = "森名" Then             '既定不要フォルダーのスキップ
     i = i - 1
  Else
  End If                  'なぜかこのプログラムではiが3からフォルダー名を取得するため
End If                    '自分では解決できないためやむを得ずのぬけみち
Next
skenna = i - 3  'フォルダー数

jp1:

Call kennab
If hata = "県" Then
    Combo17.Text = "所在県名"
    fkenna = ""
End If
If hata = "署" Then
    Combo17.Text = "署名"
    fkenna = ""
End If
If hata = "事" Then
    Combo17.Text = "事名"
    fkenna = ""
End If
If hata = "基本" Then
    Combo17.Text = "基本名"
    fkenna = ""
End If
If hata = "基本1" Then
    Combo17.Text = "基本1名"
    fkenna = ""
End If

End Sub

Private Sub kennab()

Combo17.Visible = True             'コンボボックスの表示

Combo17.FontName = "MS ゴシック"
Combo17.FontSize = 12
Combo17.AddItem kenna(3)           'kennaaで取得したフォルダー名をコンボのリストに設定
Combo17.AddItem kenna(4)
Combo17.AddItem kenna(5)
Combo17.AddItem kenna(6)
Combo17.AddItem kenna(7)
Combo17.AddItem kenna(8)
Combo17.AddItem kenna(9)
Combo17.AddItem kenna(10)
Combo17.AddItem kenna(11)

End Sub

Private Sub Combo17_Click()

    fkenna = Combo17      'コンボボックスドロップダウンよりクリックにより「fkenna」に値取得。
                          '<<<<####以下の部分が解決できない#####>>>>
                          '1回目ではこのコード<fkenna = Combo17> 部分で<fkenna>取得できるが、2回目以降はこの
                          'コードではコンボボックスよりドロップダウンによる値取得が出来ないで次の
If hata = "県" Then       'MsgBox MyFile3 & "署です。まで、実行されてしまいます。"
    MyFile2 = fkenna      'この「msgbox」がなければプログラムの最後まで実行されてしまいます。
    fkenna = ""
    MsgBox MyFile2 & "県です。"
    hata = "署"
    MsgBox hata
    MsgBox MyFile2 & "#$"
    Call kennaa           'Private Sub kennaaの2回目の処理進む
Else
End If

If hata = "署" Then
    MyFile3 = fkenna
    fkenna = ""
    MsgBox MyFile3 & "署です。"
    hata = "事"
    Call kennaa          'Private Sub kennaaの3回目の処理進む
Else
End If

If hata = "事" Then
    MyFile4 = fkenna
    fkenna = ""
    MsgBox MyFile4 & "事務所です。"
    hata = "基本"
    Call kennaa          'Private Sub kennaa4回目の処理進む
Else
End If
If hata = "基本" Then
    MyFile6 = fkenna
    fkenna = ""
    MsgBox MyFile6 & "です。"
    hata = "基本1"
    Call kennaa          'Private Sub kennaa5回目の処理進む
Else
End If
End Sub

Private Sub Form_Load()
Combo17.Visible = False
End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。