Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6172 / 13644 ツリー ←次へ | 前へ→

【46759】指定フォルダを開く ooisi 07/2/14(水) 12:17 質問[未読]
【46761】Re:指定フォルダを開く へっぽこ 07/2/14(水) 12:28 発言[未読]
【46762】Re:指定フォルダを開く Blue 07/2/14(水) 12:32 質問[未読]
【46766】Re:指定フォルダを開く Kein 07/2/14(水) 16:07 回答[未読]
【46771】Re:指定フォルダを開く ooisi 07/2/14(水) 20:01 発言[未読]
【46772】Re:指定フォルダを開く ichinose 07/2/14(水) 21:05 発言[未読]
【46776】Re:指定フォルダを開く ooisi 07/2/14(水) 22:09 発言[未読]
【46777】Re:指定フォルダを開く ichinose 07/2/14(水) 22:12 発言[未読]
【46778】Re:指定フォルダを開く ooisi 07/2/14(水) 22:25 発言[未読]
【46779】Re:指定フォルダを開く りん 07/2/14(水) 22:39 回答[未読]
【46780】Re:指定フォルダを開く ooisi 07/2/14(水) 22:56 発言[未読]
【46784】Re:指定フォルダを開く ichinose 07/2/15(木) 8:17 発言[未読]
【46789】Re:指定フォルダを開く ooisi 07/2/15(木) 13:49 発言[未読]
【46791】Re:指定フォルダを開く Kein 07/2/15(木) 14:10 発言[未読]
【46793】Re:指定フォルダを開く ooisi 07/2/15(木) 14:45 お礼[未読]

【46759】指定フォルダを開く
質問  ooisi  - 07/2/14(水) 12:17 -

引用なし
パスワード
   単純な質問ですが
作業中に指定フォルダを開くには
よろしくお願いします。

Sub 開く()
D:\OfficeII\ISO書類関連

【46761】Re:指定フォルダを開く
発言  へっぽこ  - 07/2/14(水) 12:28 -

引用なし
パスワード
   こんにちは。

h t t p ://www.officetanaka.net/excel/vba/tips/tips39.htm
この辺り、役に立つかと。

【46762】Re:指定フォルダを開く
質問  Blue  - 07/2/14(水) 12:32 -

引用なし
パスワード
   フォルダを開くとは?

エクスプローラで表示するということでしょうか?


「エクスプローラで」ってのがわかれば、Shell関数で出来ますね。

【46766】Re:指定フォルダを開く
回答  Kein  - 07/2/14(水) 16:07 -

引用なし
パスワード
   Const MyPath As String = "D:\OfficeII\ISO書類関連"
と、パスを定数で宣言し・・
1 WSHのRunメソッドを使うと

CreateObject("WScript.Shell").Run MyPath, 3, False

2 Shell でエクスプローラから開くなら

Shell "Explorer.exe " & MyPath, 1

などとする。

【46771】Re:指定フォルダを開く
発言  ooisi  - 07/2/14(水) 20:01 -

引用なし
パスワード
   ▼Kein さん:
へっぽこさん
Blueさん
Keinさん

返事遅くなりました
ありがとうございます。
デェフォルトで開くように
ファイルの種類は指定できないのでしょうか。
またexplorer最大表示ですがこれも表示方法
選択可能でしょうか?
よろしくお願いします。

【46772】Re:指定フォルダを開く
発言  ichinose  - 07/2/14(水) 21:05 -

引用なし
パスワード
   こんばんは。

>デェフォルトで開くように
>ファイルの種類は指定できないのでしょうか。
これは、

www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=17527;id=excel

ここの内容と同じですか?

>またexplorer最大表示ですがこれも表示方法
>選択可能でしょうか?

www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=34444;id=excel

IEの最大表示は↑でよいかと思います。

試してください。

【46776】Re:指定フォルダを開く
発言  ooisi  - 07/2/14(水) 22:09 -

引用なし
パスワード
   いろいろテストした結果下記コードが希望に一番近いのですが
フォルダを指定できませんか "D:\OfficeII\ISO書類関連"

Sub 開く3()
Dim OpenFileDialog As FileDialog
Dim strFilePath As String

Set OpenFileDialog = Application.FileDialog(msoFileDialogOpen)

With OpenFileDialog

  .AllowMultiSelect = False
  .ButtonName = "指定する"
  .Filters.Clear
  .Filters.Add "Excel ファイル", "*.xls"
  .Title = "情報アーカイブの指定"
 
  If .Show = -1 Then

'    strFilePath = .SelectedItems.Item(1)

  'ユーザーが [キャンセル] をクリックした場合
  Else
  End If

End With
End Sub

【46777】Re:指定フォルダを開く
発言  ichinose  - 07/2/14(水) 22:12 -

引用なし
パスワード
   ▼ooisi さん:
フォルダ選択ダイアログを表示したい
ということですか?
ならば・・・、
Sub Test()
  Dim fld As Object
  Dim 初期値
  初期値 = "D:\My Documents"
  Set fld = CreateObject("Shell.Application").BrowseForFolder(0, "フォルダを選択してください", 0, 初期値)
  If Not fld Is Nothing Then
    MsgBox fld.Items.Item.Path
  End If

End Sub

過去ログにも沢山ありますから、参考にしてください。

【46778】Re:指定フォルダを開く
発言  ooisi  - 07/2/14(水) 22:25 -

引用なし
パスワード
   ▼ichinose さん:
先ほどのダイアログでなく下記が近いのですが
デフォルトの[ファイル]→[開く]のようなファイルの種類は
指定できないのでしょうか?よろしくお願いします。

Sub 開く2()
  Const MyPath As String = "D:\OfficeII\ISO書類関連"
Shell "Explorer.exe " & MyPath, 1
End Sub

【46779】Re:指定フォルダを開く
回答  りん E-MAIL  - 07/2/14(水) 22:39 -

引用なし
パスワード
   ooisi さん、こんばんわ。
>>いろいろテストした結果下記コードが希望に一番近いのですが
>>フォルダを指定できませんか "D:\OfficeII\ISO書類関連"
>デフォルトの[ファイル]→[開く]のようなファイルの種類は
>指定できないのでしょうか?よろしくお願いします。

話の流れから、指定したフォルダからファイルを選択したいという意味に見えたので。
Sub test()
  Dim Pdat1 As String, Pdat2 As String
  Dim Ifile As Variant
  '
  Pdat1 = CurDir '現在のカレントフォルダ
  Pdat2 = "D:\OfficeII\ISO書類関連" '読み込むフォルダ
  If Dir(Pdat2, vbDirectory) = "" Then
   MsgBox Pdat2, vbExclamation, "フォルダなし"
  Else
   ChDrive Pdat2 'カレントドライブ変更
   ChDir Pdat2  'カレントフォルダ変更
   '
   Ifile = Application.GetOpenFilename("設定ファイル (*.xls), *.xls")
   If TypeName(Ifile) = "Boolean" Then
     MsgBox "中断", vbExclamation
   Else
     MsgBox Ifile, vbInformation, "ファイル"
   End If
   '
   ChDrive Pdat1 'カレントドライブ戻す
   ChDir Pdat1  'カレントフォルダ戻す
  End If
End Sub

【46780】Re:指定フォルダを開く
発言  ooisi  - 07/2/14(水) 22:56 -

引用なし
パスワード
   ▼りん さん:
ありがとうございます。
説明が下手ですみません
指定フォルダを開きそのまま選択して必要なbookがあれば
開きたいのですがよろしくお願いします。
尚、下記コードだとフォルダは開いたままなのですが
book選択し開いた場合フォルダは閉じたいのですが?

Sub 開く2()
  Const MyPath As String = "D:\OfficeII\ISO書類関連"
Shell "Explorer.exe " & MyPath, 1
End Sub

>>>いろいろテストした結果下記コードが希望に一番近いのですが
>>>フォルダを指定できませんか "D:\OfficeII\ISO書類関連"
>>デフォルトの[ファイル]→[開く]のようなファイルの種類は
>>指定できないのでしょうか?よろしくお願いします。
>
>話の流れから、指定したフォルダからファイルを選択したいという意味に見えたので。
>Sub test()
>  Dim Pdat1 As String, Pdat2 As String
>  Dim Ifile As Variant
>  '
>  Pdat1 = CurDir '現在のカレントフォルダ
>  Pdat2 = "D:\OfficeII\ISO書類関連" '読み込むフォルダ
>  If Dir(Pdat2, vbDirectory) = "" Then
>   MsgBox Pdat2, vbExclamation, "フォルダなし"
>  Else
>   ChDrive Pdat2 'カレントドライブ変更
>   ChDir Pdat2  'カレントフォルダ変更
>   '
>   Ifile = Application.GetOpenFilename("設定ファイル (*.xls), *.xls")
>   If TypeName(Ifile) = "Boolean" Then
>     MsgBox "中断", vbExclamation
>   Else
>     MsgBox Ifile, vbInformation, "ファイル"
>   End If
>   '
>   ChDrive Pdat1 'カレントドライブ戻す
>   ChDir Pdat1  'カレントフォルダ戻す
>  End If
>End Sub

【46784】Re:指定フォルダを開く
発言  ichinose  - 07/2/15(木) 8:17 -

引用なし
パスワード
   おはようございます。
まだよくわかりませんが・・・。
新規ブックで試してみてください



参照設定として「Microsoft Internet Controls」にチェックをしてください。

このブックのThisworkbookのモジュールに
'=======================================================
Private WithEvents ep As InternetExplorer
Private ie_end As Boolean
'=======================================================
Function get_selectitem(ByVal mypath As Variant, Optional ByVal myfilter As Variant = "*") As Variant
  Dim fl As Object
  get_selectitem = False
  Set ep = CreateObject("InternetExplorer.Application")
  With ep
   .Visible = True
   .MenuBar = False
   .navigate mypath
   Do While .Busy = True Or .ReadyState <> 4
    DoEvents
    Loop
   With .document
    On Error Resume Next
    ie_end = True
    Do While ie_end = True
      For Each fl In .SelectedItems
       If fl.Name Like myfilter Then
         DoEvents
         get_selectitem = fl.Name
         Exit For
         End If
       Next
      DoEvents
      If TypeName(get_selectitem) <> "Boolean" Then Exit Do
      Loop
    Application.Wait Now() + TimeValue("00:00:02")
    End With
   If ie_end = False Then get_selectitem = False
   DoEvents
   .Quit
   End With
 Set ep = Nothing
End Function
'=======================================================
Private Sub ep_OnQuit()
  DoEvents
  ie_end = False
End Sub


標準モジュールに

'=======================================================
Sub main()
  Dim ans
  ans = ThisWorkbook.get_selectitem("D:\My Documents\TESTエリア\testarea2002")
'フォルダパスを指定する
  DoEvents
  AppActivate Application.Caption
  If TypeName(ans) <> "Boolean" Then
    MsgBox ans
    End If
End Sub


このmainを実行してください。

指定したフォルダが表示されます。
何か選択すると、選択したファイル名が表示されます。
Win2000&Excel2002で確認。

このようなことですか?

【46789】Re:指定フォルダを開く
発言  ooisi  - 07/2/15(木) 13:49 -

引用なし
パスワード
   ▼ichinose さん:
りんさん
ありがとうございます。
基本的には下記でOKなんですが
これにファイルの種類[Excel ファイル](*.xls)条件と
該当bookを選択開いたときに\ISO書類関連のフォルダを
閉じたいのですができますか。?

Sub 開く()
  Const MyPath As String = "D:\OfficeII\ISO書類関連"
CreateObject("WScript.Shell").Run MyPath, 1, False
End Sub

【46791】Re:指定フォルダを開く
発言  Kein  - 07/2/15(木) 14:10 -

引用なし
パスワード
   >ファイルの種類[Excel ファイル](*.xls)条件
ファイルの種類を選択表示することは出来ません。なので普通に・・

Dim MyF As String

ChDrive "D:\"
ChDir "D:\OfficeII\ISO書類関連"
MyF = Application _
.GetOpenFilename("エクセルブック(*.xls),*.xls")
If MyF <> "False" Then Workbooks.Open MyF
ChDrive "C:\"
ChDir Application.DefaultFilePath

などとすれば良いのです。目的とする処理は、それでちゃんと出来るはずです。
あれこれ迷わず、GetOpenFilename以外に手軽な方法は無い、と思って下さい。

【46793】Re:指定フォルダを開く
お礼  ooisi  - 07/2/15(木) 14:45 -

引用なし
パスワード
   ▼Kein さん:
ありがとうございました。
解決しました。!!

6172 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free