プロが教える店舗&オフィスのセキュリティ対策術

いつも お世話になります。
シート上に参照ボタンを作成し、
フォルダを表示させ、シートに選択した
フォルダの表示の仕方を教えて下さい。

A 回答 (4件)

BrowseForFolderを使ってみました。

(Excel97です)

Sheet1にコントロールツールボックスのコマンドボタン(CommandButton1)を1つ貼り付けます。
Sheet1のコードウインドウに下記コードをコピーして貼り付けてみて下さい。
Sheet1のA1に選択したフォルダを表示します。

ここから

'*************
'フォルダを指定
'*************
Private Sub CommandButton1_Click()
  Dim FolderPath As String '選択したフォルダ

  FolderPath = getFolder_Fnc("C:\") 'Cドライブを選択と仮定
  If Len(FolderPath) > 0 Then
    Worksheets("Sheet1").Range("A1") = FolderPath 'A1に書きこむ
  End If
End Sub

'*******************************************************
'フォルダ選択ダイアログを表示(ドライブが引数。引数なしも可)
' ※GetOpenFilenameやGetSaveAsFilenameはそのフォルダに
'               ファイルがないと指定できない
'*******************************************************
Public Function getFolder_Fnc(Optional setDrive As Variant)
  Dim intDrv As Variant 'ドライブ
  Dim selectFolder As Object 'フォルダの選択

  'ドライブを指定しているか
  If Not IsMissing(setDrive) Then
    intDrv = setDrive 'ドライブ指定あり
  Else
    intDrv = "" 'ドライブ指定なし
  End If

  'ユーザーがフォルダを選択するためにダイアログを表示
  Set selectFolder = CreateObject("Shell.Application"). _
        BrowseForFolder(0, "フォルダを選択してください。", 0, intDrv)

  '選択したか
  If Not selectFolder Is Nothing Then
    getFolder_Fnc = selectFolder.Items.Item.Path & "\" '何らかを選択
  Else
    getFolder_Fnc = "" 'キャンセルの場合
  End If
End Function
    • good
    • 0

下記ではだめですか。

内容が違うでしょうか。
他の皆さんのご解答は難しいのでなんとか易しくと。
テスト済み。
エクセルのSheet1にCommonDialogとCommandButtonを貼りつける。
CommonDialog1のプロパティとしてInitDirに\My Documentsやc:\ など適当にセットしておく。VisibleをFalseにしておく。
Sheet1のイベントプロセジュアーとして
Private Sub CommandButton1_Click()
CommonDialog1.ShowOpen
fn = CommonDialog1.Filename
st = 1
 For i = 1 To 10
  p = InStr(st, fn, "\")
  If p = 0 Then GoTo p1
  pb = p
  st = p + 1
 Next i
p1:
 s = Left(fn, pb - 1)
 Worksheets("sheet1").Range("a1") = s
End Sub
と入れる。
CommandButton1をクリックするとファイルを開くダイアログ
ボックスが出る。フォルダをクリックしどれか1つのファイル
をクリックするかしなくても「開く」をクリック。
するとA1(今回の仮の例)にファイル名を除いた部分が
セットされる。
    • good
    • 0
この回答へのお礼

ご丁寧な回答ありがとうございます。

お礼日時:2002/08/23 09:38

こんばんわ。


参考になるかどうかわかりませんが、
日経PC21のサイトの「2002 7月号」の
資料をダウンロードされてみてはいかがですか!?

参考URL:http://pc21.nikkeibp.co.jp/pc21/
    • good
    • 0

こんにちは。

maruru01です。

>シート上に参照ボタンを作成し、
>フォルダを表示させ、

"フォルダを表示させ"るというのは、フォルダ選択ダイアログを表示させるということでしょうか?
それなら、Win32APIのSHBrowseForFolder関数で出来ます。
過去の質問を、"SHBrowseForFolder"で検索するといくつかヒットします。
他の方法も書かれているようです。
一応1つ書いときます。

http://oshiete1.goo.ne.jp/kotaeru.php3?q=4321

>シートに選択した
>フォルダの表示の仕方を教えて下さい。

"フォルダの表示"というのは、上で選択したフォルダのフルパスをシート(のどこかのセル)に表示するということでしょうか?
それなら、上記の関数でフルパスが取得出来るので、セルに値を設定すればいいと思います。

とりあえず、質問の表現では何をしたいのか、いまいちつかめないので補足して下さい。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=4321
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!