エクセルVBAで新たに一度に作成する複数のブックを保存するフォルダーをあらかじめ指定したいのですが、下記のような方法しか思い浮かびません。
もっとスマートなやり方はないでしょうか?(直接入力以外の方法で)
Sub Path_Get()
Dim myPath As String, damy As Variant
MsgBox "作成するファイルの保存先を選択します。" _
& vbCr & "なお、表示されたファイル名は気にしないで" _
& vbCr & "下さい。(笑)"
damy = Application.GetSaveAsFilename(fileFilter:="Excel (*.xls),*.xls")
MsgBox damy
If damy = False Then Exit Sub
For i = Len(damy) To 0 Step -1
If Mid(damy, i, 1) = "\" Then
myPath = Mid(damy, 1, i)
Exit For
End If
Next i
MsgBox "パスは " & myPath & "です。"
End Sub
No.1ベストアンサー
- 回答日時:
私は初心者ですので、誰か、回答してくれないかなって見ていたのですが、なかなか無く、他の人に聞いた他のサイトで検索したら、shishishishiの希望されている内容がありました。
こんな感じで良いのですよね?
最近、同サイトのメーリングリストを登録したのですが、初心者の私には難しい事を言っていて分からないものも一杯ありますけどね・・・
Sub フォルダ選択()
Dim ff As Object
Set ff = CreateObject("Shell.Application"). _
BrowseForFolder(0, "フォルダを選択してください", 0)
If Not ff Is Nothing Then
MsgBox ff.Self.Path
End If
End Sub
参考URL:http://www2.moug.net/app/bbs/message.php?cat=exv …
この回答への補足
ありがとうございました。
残念ながら「実行時エラー438.オブジェクトはこのプロパティまたはメソッドをサポートしていません」となってしまいました。(エクセルのバージョンは2000で試しました。)
参考URLも拝見しましたが、そこにあったようにデスクトップを指定するとエラーになるという
MsgBox ff.Items.Item.Path
とやると、デスクトップ以外ではOKでした。
さて、どうしましょうか。
もうすこし待ってみます。ありがとうございました。
No.4
- 回答日時:
こんばんは #1です。
職場のパソコンはExcel2000ですので、#1で記載したマクロを同パソコンで実施したところ、ディスクトップも問題なく表示されました。
また、マイネットワークやマイコンピューターもエラーが発生することなく表示されました。
勿論、ディスクトップと違って特定の実際のフォルダがあるわけで無いため、
マイコンピューター:「::{20D04FE0-3AEA-1069-A2D8-08002B30309D}」
マイネットワーク:「::{208D2C60-3AEA-1069-A2D7-08002B30309D}」
などと表示されました。
以上、Excel2000での結果報告です。
すみません、self.pathを調べたのですが分かりませんでした。
初心者の私には結果報告以上無理でした・・・。
No.3
- 回答日時:
度々すみません
#1です。
Excel2002で以下の用にすれば、ディスクトップ以外のフォルダに関しては、出来ました。
初心者ですので、強引な手法で申し訳ありません。
Sub フォルダ選択()
Dim ff As Object
Set ff = CreateObject("Shell.Application"). _
BrowseForFolder(0, "フォルダを選択してください", 0)
If Not ff Is Nothing Then
On Error Resume Next
MsgBox ff.Items.Item.Path
If Err = 91 Then End
End If
End Sub
この回答への補足
何度もすみません。上記の方法だとデスクトップを選択した際のエラーを回避して何もせずに終了させるのですね。
それなら最初からCドライブ以下しか表示させなければいいわけで、とりあえずは
Sub Excl_DP選択()
Dim ff As Object
Set ff = CreateObject("Shell.Application"). _
BrowseForFolder(0, "フォルダを選んでネ", 0, "c:\")
If Not ff Is Nothing Then
MsgBox ff.Items.Item.Path
End If
End Sub
でやってもいいのですが、他に方法はないですかねえ。
No.2
- 回答日時:
#1です。
私は、Excel2002で試して上手く出来ました。
> 「実行時エラー438.オブジェクトはこのプロパティまたはメソッド
これは、どこで発生したのですかね?
> MsgBox ff.Items.Item.Path
では上手く出来たと記載されていますが、ディスクトップ以外は問題無く表示されたのであれば、エラー回避処理をして、強引に処理させれば、最低限、ディスクトップ以外であれば出来るのかな?
すみません
初心者ですので、掲載したマクロの意味も分からず、また、自宅ではExcel2002しか無いために実際に出来るか分からず回答していますので間違いがあれば申し訳ありません。
この回答への補足
> 私は、Excel2002で試して上手く出来ました。
バージョンが違うとダメなケースってよくありますよね。
> 「実行時エラー438.オブジェクトはこのプロパティまたはメソッド 、これは、どこで発生したのですかね?
MsgBox ff.Self.Path です。すべてのフォルダでアラーになります。
MsgBox ff.Items.Item.Path ならデスlクトップ以外はOKでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBSでファイル名と同じフォルダ...
-
VBA 最新のフォルダ取得
-
vbsで選択ダイアログを表示した...
-
サーバ内のフォルダ名と各フォ...
-
Excelで指定したフォルダに保存...
-
ファイル名と同名のフォルダを...
-
ACCESS VBAからのファイル削除
-
windowsでテキストファイルの各...
-
フォルダにリンクを貼りたい
-
多量のファイルをフォルダに自...
-
ホームページビルダーで新しい...
-
excel VBA Dirにて検索したフォ...
-
Excelvbaでブックをコピー名前...
-
ファイルとフォルダのどちらも...
-
AIX findコマンド
-
VBAでExcelのBookの串刺し集計
-
C言語でのフォルダ作成
-
フォルダ選択ダイアログ:ネッ...
-
30日前を残して過去の日付フォ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
パス名に2バイト文字(マルチバ...
-
ファイル名と同名のフォルダを...
-
VBA 最新のフォルダ取得
-
Excelのハイパーリンクについて...
-
デスクトップの画像をhtmlに表...
-
ディレクトリ名変更してコピー...
-
VBA フォルダ名に特定の文字を...
-
バッチファイルで指定フォルダ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
excelマクロ 冒頭3文字が一致す...
-
【マクロ】ファイル名の日付に...
-
フォルダにリンクを貼りたい
-
会社のネットワーク上のファイ...
-
多量のファイルをフォルダに自...
-
C ファイル出力で、フォルダが...
-
保存先のフォルダ名を指定した...
-
vbsで選択ダイアログを表示した...
-
Excel VBA 同じ名前のフォルダ...
おすすめ情報