tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルMsFlexGrid(表示方法)
記事No11703
投稿日: 2008/03/07(Fri) 10:41
投稿者今日遅刻
ディレクトリ選択ダイアログからフォルダを選択し、検索(コマンドボタン)入力で、
セル別にファイル名とパス名を表示させたいのですがわからなくて困っています。

[ツリー表示へ]
タイトルRe: MsFlexGrid(表示方法)
記事No11706
投稿日: 2008/03/07(Fri) 14:05
投稿者ぶぶ
> ディレクトリ選択ダイアログからフォルダを選択し、検索(コマンドボタン)入力で、
> セル別にファイル名とパス名を表示させたいのですがわからなくて困っています。
何がわからないのですか?
ここのMsFlexGrid関係を見てみてください。

[ツリー表示へ]
タイトルRe^2: MsFlexGrid(表示方法)
記事No11707
投稿日: 2008/03/07(Fri) 14:37
投稿者今日遅刻
> > ディレクトリ選択ダイアログからフォルダを選択し、検索(コマンドボタン)入力で、
> > セル別にファイル名とパス名を表示させたいのですがわからなくて困っています。
> 何がわからないのですか?
> ここのMsFlexGrid関係を見てみてください。
自分の調べ方も悪いと思うのですが。
Excelなどを使わずに、同じForm内でダイアログからフォルダを選択してセルに、ファイル名・パス名を別々に表示させたいと思っています。
説明が悪くてすみません。

[ツリー表示へ]
タイトルRe^3: MsFlexGrid(表示方法)
記事No11708
投稿日: 2008/03/07(Fri) 16:10
投稿者リル
何が分からないのかを書かないとレスがつきませんよ。

例えば、

ディレクトリ選択ダイアログからフォルダを選択する方法が分からない?
選択したフォルダから各ファイルのパスを取得する方法が分からない?
取得したパスからファイル名のみを抽出する方法が分からない?
取得したファイル名やパスをMsFlexGridのセルに挿入する方法が分からない?

できるだけ具体的に「分からない部分」を書かないとレスもつきません。

[ツリー表示へ]
タイトルRe^4: MsFlexGrid(表示方法)
記事No11709
投稿日: 2008/03/07(Fri) 16:46
投稿者今日遅刻
> 何が分からないのかを書かないとレスがつきませんよ。
>
> 例えば、
>
> ディレクトリ選択ダイアログからフォルダを選択する方法が分からない?
> 選択したフォルダから各ファイルのパスを取得する方法が分からない?
> 取得したパスからファイル名のみを抽出する方法が分からない?
> 取得したファイル名やパスをMsFlexGridのセルに挿入する方法が分からない?
>
> できるだけ具体的に「分からない部分」を書かないとレスもつきません。
レス及びご指摘ありがとうございます。
具体的には、
1.ディレクトリ選択ダイアログからフォルダを選択。
2.選択したフォルダのパス名を取得。取得したパス名をテキストボックスに表示。
3.検索ボタンを押すとテキストボックスに表示させたパス名をMSFGridにフォルダ内のファイル名とパス名を別々のセルに表示させる。
という流れです。
1.2は出来たのですが、3.の別々のセルに表示させる事が出来ません。
またわかりにくいようでしたらすみません。

[ツリー表示へ]
タイトルRe^5: MsFlexGrid(表示方法)
記事No11711
投稿日: 2008/03/07(Fri) 17:29
投稿者リル
> 具体的には、
> 1.ディレクトリ選択ダイアログからフォルダを選択。
> 2.選択したフォルダのパス名を取得。取得したパス名をテキストボックスに表示。
> 3.検索ボタンを押すとテキストボックスに表示させたパス名をMSFGridにフォルダ内のファイル名とパス名を別々のセルに表示させる。
> という流れです。
> 1.2は出来たのですが、3.の別々のセルに表示させる事が出来ません。

【プロジェクト】→【参照設定】でMicrosoft Scripting Runtime の参照に
チェックを入れておいて下さい。

検索ボタンをCommand1
MsFlexGridをFGrid1の設定と仮定して、

Private Sub Form_Load()
    'MsFlexGridの列数を設定(プロパティで設定しておけば大丈夫です。)
    FGrid1.Cols = 2
End Sub


Private Sub Command1_Click()
    Dim fso As New FileSystemObject
    'フォルダを指定(ここにテキストボックスに取得しているフォルダパスを入れる)
    Call subFileSearch(fso.GetFolder("D:\TEMP\Magnet"))
    Set fso = Nothing
End Sub

Private Sub subFileSearch(ByVal myFolder As Object)
    Dim myFile      As File
    Dim iCount      As Integer

    'フォルダ内のファイルを取得
    For Each myFile In myFolder.Files
        'MsFlexGridに追加
        FGrid1.TextMatrix(iCount, 0) = myFolder & "\" & myFile.Name
        FGrid1.TextMatrix(iCount, 1) = myFile.Name
        iCount = iCount + 1
    Next

    Set myFile = Nothing
End Sub

[ツリー表示へ]
タイトルRe^6: MsFlexGrid(表示方法)
記事No11713
投稿日: 2008/03/07(Fri) 18:27
投稿者今日遅刻
> > 具体的には、
> > 1.ディレクトリ選択ダイアログからフォルダを選択。
> > 2.選択したフォルダのパス名を取得。取得したパス名をテキストボックスに表示。
> > 3.検索ボタンを押すとテキストボックスに表示させたパス名をMSFGridにフォルダ内のファイル名とパス名を別々のセルに表示させる。
> > という流れです。
> > 1.2は出来たのですが、3.の別々のセルに表示させる事が出来ません。
>
> 【プロジェクト】→【参照設定】でMicrosoft Scripting Runtime の参照に
> チェックを入れておいて下さい。
>
> 検索ボタンをCommand1
> MsFlexGridをFGrid1の設定と仮定して、
>
> Private Sub Form_Load()
>     'MsFlexGridの列数を設定(プロパティで設定しておけば大丈夫です。)
>     FGrid1.Cols = 2
> End Sub
>
>
> Private Sub Command1_Click()
>     Dim fso As New FileSystemObject
>     'フォルダを指定(ここにテキストボックスに取得しているフォルダパスを入れる)
>     Call subFileSearch(fso.GetFolder("D:\TEMP\Magnet"))
>     Set fso = Nothing
> End Sub
>
> Private Sub subFileSearch(ByVal myFolder As Object)
>     Dim myFile      As File
>     Dim iCount      As Integer
>
>     'フォルダ内のファイルを取得
>     For Each myFile In myFolder.Files
>         'MsFlexGridに追加
>         FGrid1.TextMatrix(iCount, 0) = myFolder & "\" & myFile.Name
>         FGrid1.TextMatrix(iCount, 1) = myFile.Name
>         iCount = iCount + 1
>     Next
>
>     Set myFile = Nothing
> End Sub
上手くセルに表示できました。
リルさんご親切に有難うございます。
まだ自分では読めなかったり理解できてないコードがたくさんありましたので、意味などを調べてもう一度作成してみます。

[ツリー表示へ]