- 締切済み
フォルダ選択と取得したパスの表示
どうしてもわからないのでご教授お願いします。 コマンドボタンを使用して、フォルダの選択のダイアログを表示し、選択したフォルダのパスを取得することはできたのですが、そこから取得したパスを任意のセルに表示させたいです。 どうすれば表示させることができるでしょうか。 Private Sub commandbutton1_Click() Dim Shell, myPath Set Shell = CreateObject("Shell.Application") Set myPath = Shell.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, "C:\") If Not myPath Is Nothing Then MsgBox myPath.Items.Item.Path Set Shell = Nothing Set myPath = Nothing End Sub ご教授宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- piroin654
- ベストアンサー率75% (692/917)
この質問は、 http://oshiete1.watch.impress.co.jp/qa6861738.html のダイアログの設定で回答は不要かもしれませんが、 No2の補足に、 >テキストボックス1とテキストボックス2にも >別ソースが必要になりますよね。 とありますが、No2のところに、 >なお、最初からシートが固定ならば、たとえばSheet1の場合、 >Worksheets("Sheet1").Range(TextBox1.Value).Value = myPath.Items.Item.Path >でも。 としていますから、この場合はテキストボックスはセルを 特定するTextBox1のみにセルの位置を入力すればよろしいかと。 >そこから取得したパスを任意のセルに表示させたいです。 任意のセルの意味が中途半端なのでいまのところ これが回答の最終形かと。
- piroin654
- ベストアンサー率75% (692/917)
追加です。もしフォームを必要なくなるまで 表示しておくならば、フォームのデザインビューで プロパティを表示し、ShowModalプロパティで、 False を選択しておきます。 Sheetなどにボタンを設定し、 UserForm1.Show とすれば、フォームの使い勝手が良くなります。
- piroin654
- ベストアンサー率75% (692/917)
No1です。間違いがあったので訂正しておきます。 >Worksheets(TextBox1.Value).Range(TextBox2.Value).Value = "C:\" & myPath Worksheets(TextBox2.Value).Range(TextBox1.Value).Value = myPath.Items.Item.Path にしてください。 なお、最初からシートが固定ならば、たとえばSheet1の場合、 Worksheets("Sheet1").Range(TextBox1.Value).Value = myPath.Items.Item.Path でも。
お礼
ありがとうございます。 テキストボックス1とテキストボックス2にも別ソースが必要になりますよね。
- piroin654
- ベストアンサー率75% (692/917)
解決できましたか。 一つの案として、ユーザーフォームにボタンを一つと テキストボックスを二つ設定します。 TextBox1にシート名、TextBox2にセル位置を入力します。 たとえば、TextBox1にSheet1、TextBox2にA1のように 入力し、ボタンをクリックします。 Private Sub CommandButton1_Click() Dim Shell, myPath Set Shell = CreateObject("Shell.Application") Set myPath = Shell.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, "C:\") If Not myPath Is Nothing Then Worksheets(TextBox1.Value).Range(TextBox2.Value).Value = "C:\" & myPath End If Set Shell = Nothing Set myPath = Nothing End Sub
お礼
早い回答ありがとうございました。 自分でいろいろ調べたり、勉強しながらやってるので返答が大変遅くなってしまいますがよろしくお願いします。