タイトル | : 恥ずかしい |
記事No | : 11425 |
投稿日 | : 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
|