お世話になります。
苦労しながらもエクセルVBAをいじっています。仕事の効率を上げるために、VBAで自動化をしていますが、わからないことがありますので教えてください。
月ごとのシートを作成して、その月に完成させたプロジェクトのリストを入力するブックを作り、各契約者に配りたいと思っています。そのブックには、報告書提出を簡素化できるように、作成したい該当月のシートだけを抽出して決められた名前で保存し、電子メールに添付して送信できる状態にした報告書作成のプログラムを組んでいます。が、抽出されたシートだけのブックを、オリジナルのブックがあるフォルダと同じところに保存したいんです。"名前を付けて保存"をVBAに設定すると、絶対パスが必要な要ですし、もしも指定しなければ作業フォルダ(カレントフォルダ)に保存されるようですが、何とかしてオリジナルのブックと同じフォルダに保管できないものでしょうか。
どうぞよろしくお願いします。
ちなみに、下記が自分なりにやってみたものです。
---------------------------------
Private Sub CommandButton1_Click()
Dim myName As String
Dim pasu As String
With ListBox1
If (.ListIndex = -1) Then
MsgBox "提出用報告書を作成するシートを選択してください"
Else
Worksheets(.List(.ListIndex)).Select
pasu = ActiveWorkbook.Path
ActiveSheet.Copy
myName = ActiveSheet.Name
ActiveWorkbook.SaveAs Filename:= _
"" & myName & "" & Application.UserName & ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Unload UserForm2
End If
End With
End Sub
No.3ベストアンサー
- 回答日時:
こんにちは。
ChDir も一つの考え方かもしれませんが、
シート1つのブックが出来上がって、そのActiveWorkbookと同じ場所に保存するなら、作ったpasu を加えればよいのではありませんか?
pasu = ActiveWorkbook.Path
ActiveSheet.Copy
myName = ActiveSheet.Name
Fname = pasu & "\" & myName & Application.UserName & ".xls"
ActiveWorkbook.SaveAs Filename:= Fname, _
FileFormat:=xlNormal, _
Password:="", _
WriteResPassword:="", _
ReadOnlyRecommended:=False, _
CreateBackup:=False
それから、なるべく、コードは見やすいように整列して書くことが上達の早道と言われています。
なお、読み違えていましたら、申し訳ありません。
No.5
- 回答日時:
半角スペースは詰められるんですよね>整列
なお、各パスを返すプロパティはルートディレクトリだと最後に"\"が入りますので考慮が必要です。そうでないとパス名で終わって、"\"は入らないんですけどね。
No.4
- 回答日時:
こんにちは。
KenKen_SP です。> オリジナルのブックと同じフォルダ
このオリジナルというのが、何なのかよく分からないのですが、
ThisWorkbook.Path
でコードが記載されたブックのパスが返ります。
ActiveWorkbook.Path は現在アクティブになっているブックの
パスが返されます。
このどちらかで対応できませんか?
どうもありがとうございました。初心者なもので、わかりにくいこともあったかと思いますが、親切に教えていただきまして、ありがとうございました。
No.2
- 回答日時:
今、環境が手元に無いので未検証ですが^^
'参考URLより
phn = ActiveWorkbook.Path
dva = Left(phn, 2)
dra = Mid(phn, 3)
ChDrive dva
ChDir dra
'質問文より
ActiveWorkbook.SaveAs Filename:= _
"" & myName & "" & Application.UserName & ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Unload UserForm2
参考URL:http://www2s.biglobe.ne.jp/~iryo/vba/VBA14.html# …
No.1
- 回答日時:
カレントフォルダを変更してはどうでしょうか?
ActiveWorkbook.Pathからドライブ名とパス名をそれぞれ拾って、ChDrive と ChDir で変更すればよいのでは?
必要なら、変更前のカレントフォルダ(作業フォルダ)を保存しておいて、VBA終了時に元に戻してはどうでしょうか?
参考URL:http://www2s.biglobe.ne.jp/~iryo/vba/VBA14.html# …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 16:59
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/20 14:46
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
2024年に成し遂げたこと
今年も残すところわずか。 皆さんが今年達成したことを教えていただきたいです。 どんな小さなものでも構いません。
-
何歳が一番楽しかった?
自分の人生を振り返ったとき、何歳のころが一番楽しかったですか? 子供の頃でしょうか、それとも大人になってからでしょうか。
-
「黒歴史」教えて下さい
若気のいたりでやってしまったけれど、いまとなっては封印したい… そんなあなたの黒歴史を教えて下さい。
-
エクセルVBAで一つ上の階層を指定して保存したい
Excel(エクセル)
-
【VBA】マクロの入ったファイルと同じフォルダに,出力したファイルを保存するコードについて
Visual Basic(VBA)
-
EXcelのマクロで相対パスでファイルを開く
その他(Microsoft Office)
-
-
4
エクセルで相対パスの書き方を教えてください
Excel(エクセル)
-
5
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
6
ActiveWorkbook.Pathの一つ下のフォルダ
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
[Excel] ファイル名を変数指定して保存するマクロ
Excel(エクセル)
-
9
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
10
SaveAsの保存先について
Visual Basic(VBA)
-
11
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
12
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
13
VBAでワークシートを引数としてサンプル関数に渡したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでブックを非表示で開いて処...
-
WorkBooksをオープンさせずにシ...
-
複数ファイルから特定シートの...
-
Excelの警告について
-
エクセルでウィンドウの枠固定...
-
エクセル:特定のブックのみ、...
-
USBフラッシュメモリーのエクセ...
-
ブックのピボットを別ブックに...
-
Excelファイルをダブルクリック...
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
エクセルで別ブックをバックグ...
-
エクセルで「ディスクがいっぱ...
-
【マクロ】【VBA】別ブックへの...
-
Excel起動時に特定のワークシー...
-
たくさんあるフォームコントロ...
-
エクセルで開いていないbookの...
-
Excelで複数ブックの同一セルに...
-
Excel VBA セルと同じ名前のブ...
-
【困っています】VBA 追加処理...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
エクセルで参照しているデータ...
-
WorkBooksをオープンさせずにシ...
-
同じフォルダへのハイパーリン...
-
エクセルファイルを開かずにpdf...
-
Excelで複数ブックの同一セルに...
-
Excelでブックの共有を掛けると...
-
Excel(2010)のフィルターが保...
-
Excelファイルをダブルクリック...
-
ブックのピボットを別ブックに...
-
VBAでブック保護非保護を判定す...
-
Excelで指定範囲のデータ...
-
エクセルにおける,「ブック」...
-
VBA バックグラウンドで別ブッ...
-
「ブックの共有」を有効にして...
-
エクセルで別ブックをバックグ...
-
エクセルでウィンドウの枠固定...
おすすめ情報