エクセルVBAでApplication.Dialogsを使用して保存した後、選択したフォルダを変数に持たせることは可能でしょうか。
予めフォルダを選択するやり方も知っているのですが、ファイル名を固定で持たせ、かつ、パスワード設定なども一緒に設定したくて、Application.Dialogsを選択しました。
次に保存するときに同じフォルダを参照先に持たせたいです。
Function FileSave(Extention As String, DialogNum As Integer)
Dim FileName As String
Dim Done As Variant
FileName = "Test" & "_" & Format(Now(), "YYYYMMDDHHMMDDSS")
IF Activesheet.Cells(1,1) = ”” Then
SavePath = ThisWorkbook.Path
Else
SavePath = Activesheet.Cells(1,1)
EndIF
Done = IIf(Application.Dialogs(xlDialogSaveAs).Show(Arg1:=SavePath & "\" & FileName & Extention, Arg2:=DialogNum, Arg3:=Password), "保存", "キャンセル")
'ここに選択したフォルダのパスを入れたい
Activesheet.Cells(1,1) = "直前で選択したフォルダのパス"
End Function
No.3ベストアンサー
- 回答日時:
こんばんは
>予めフォルダを選択するやり方も知っているのですが、
ファイル名を固定で持たせ、かつ、パスワード設定なども一緒に設定したくて、Application.Dialogsを選択しました。
次に保存するときに同じフォルダを参照先に持たせたいです。
>Done = IIf(Applicat・・ の戻り値は "保存", "キャンセル" なので
予めフォルダを選択するやり方でやる方法で良いと思うのですが
仕様に合っていなかったらごめんなさい
Function FileSave(Extention As String, DialogNum As Integer)
Dim SavePath As String
Dim FileName As String
Dim saveFileName As Variant
Dim myPassword As String
myPassword = ""
If ActiveSheet.Cells(1, 1) = "" Then
SavePath = ThisWorkbook.Path & "\"
Else
SavePath = ActiveSheet.Cells(1, 1) & "\"
End If
FileName = "Test" & "_" & Format(Now(), "YYYYMMDDHHMMDDSS")
saveFileName = Application.GetSaveAsFilename(InitialFileName:=SavePath & FileName)
If saveFileName = False Then
Exit Function
End If
ActiveWorkbook.SaveAs FileName
ActiveWorkbook.SaveAs _
FileName:=saveFileName & Extention, _
FileFormat:=DialogNum, _
Password:=myPassword, _
WriteResPassword:="", _
ReadOnlyRecommended:=False, _
CreateBackup:=False
saveFileName = Left(saveFileName, InStrRev(saveFileName, "\") - 1)
ActiveSheet.Cells(1, 1) = saveFileName
End Function
回答いただきありがとうございます。
実行してみたところ思い通りの挙動になりました。
SaveAs に色々付け足せばいいんですね。なるほどです。
大変助かりました。
No.4
- 回答日時:
ごめんなさい
FileFilterを書きませんでした マクロ有効ブックを保存で良いかと・・・違うかもですが
saveFileName = Application.GetSaveAsFilename(InitialFileName:=SavePath & FileName, FileFilter:="Excelファイル,*.xlsm")
呼び出し
Call FileSave("xlsm", 52)
GetSaveAsFilename 戻り値に .が付くのでxlsm かな
No.2
- 回答日時:
Function FileSave(Extention As String, DialogNum As Integer)
Dim FileName As String
Dim Done As Variant
Dim SavePath As String
FileName = "Test" & "_" & Format(Now(), "YYYYMMDDHHMMDDSS")
If ActiveSheet.Cells(1, 1) = "" Then
SavePath = ThisWorkbook.Path
Else
SavePath = ActiveSheet.Cells(1, 1)
End If
Done = IIf(Application.Dialogs(xlDialogSaveAs).Show(Arg1:=SavePath & "\" & FileName & Extention, Arg2:=DialogNum, Arg3:="Password"), "保存", "キャンセル")
'ファイルが保存された場合に、選択したフォルダのパスをセルに格納する
If Done = "保存" Then
SavePath = Left(Done, Len(Done) - Len(FileName & Extention)) 'ファイル名を取り除いたフォルダパスを取得
ActiveSheet.Cells(1, 1) = SavePath
End If
End Function
回答いただきありがとうございます。
Done には”保存”または”キャンセル”の文字列が格納されるためパスの情報は持っていません。同様に書き換えましたが実行エラーになってしまいますね。
予めフォルダとファイル名、パスワードをフォームで選ばせる方法がベストな気がしてきました。
No.1
- 回答日時:
はい、可能です。
Application.Dialogs(xlDialogSaveAs)を使用すると、保存ダイアログボックスが表示され、ユーザーが保存するフォルダとファイル名を選択できます。ダイアログボックスが閉じた後、選択されたフォルダのパスを取得し、変数に格納することができす。お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) エクセル VBAについて教えてください 2 2023/04/26 13:25
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
保存先のフォルダ名を指定したいとき
Visual Basic(VBA)
-
エクセルのマクロについて教えてください。
Excel(エクセル)
-
ファイル保存時のダイアログ表示フォルダを変更したい
Visual Basic(VBA)
-
-
4
excelマクロ、任意セルの値で名前を付けて任意のフォルダに保存
Visual Basic(VBA)
-
5
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
6
エクセルをPDFで保存し、ファイル名はA1セルを参照するVBAの記述を教えてください。
Excel(エクセル)
-
7
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
【Ant】指定した複数のフォルダ...
-
マクロVBAのフォルダ階層別で検...
-
ExcelVBAでフォルダへのハイパ...
-
ファイル名と同名のフォルダを...
-
AIX findコマンド
-
API関数(DLL)の呼び出しにお...
-
パス名に2バイト文字(マルチバ...
-
Access VBA で フォルダ権限...
-
Excelのハイパーリンクについて...
-
C言語でのフォルダ作成
-
VBAでファイル名を指定して保存...
-
フォルダのサイズを取得したい
-
【コマンドプロンプト】名前順...
-
エクセルのマクロコードの一部...
-
Debug フォルダは消していいの?
-
自動的に作られるresource.hに...
-
フォルダにリンクを貼りたい
-
エクセルのマクロについて教え...
-
カレントフォルダって?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
Excelのハイパーリンクについて...
-
デスクトップの画像をhtmlに表...
-
VBA 最新のフォルダ取得
-
ファイル名と同名のフォルダを...
-
excelマクロ 冒頭3文字が一致す...
-
会社のネットワーク上のファイ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
VBA フォルダ名に特定の文字を...
-
【マクロ】ファイル名の日付に...
-
フォルダを開いて、閉じるのプ...
-
カレントフォルダって?
-
パス名に2バイト文字(マルチバ...
-
保存先のフォルダ名を指定した...
-
Excelで指定したフォルダに保存...
-
Debug フォルダは消していいの?
-
ExcelのVBAでフォルダ指定がで...
-
C ファイル出力で、フォルダが...
-
vbsで選択ダイアログを表示した...
おすすめ情報