
Excel VBAについての質問です。
現在、建築関係の注文書を作成しています。
作成した注文書をフォルダに自動的に格納されるマクロを作成することは可能でしょうか。
注文書を作成するフォームでは既に登録した情報が2つのリスト形式で表示されるようになっています。(上からListbox1,Listbox2)
それ以外の下3つの項目は作成時に入力します。
登録ボタンを押すと、名前を付けてフォームの内容を反映した注文書を作成するようにしたのですが
これを工事場所の欄と同じ名前のフォルダに保存できるようにしたいです。
フォルダに関しては注文書を格納するフォルダ(例では注文書作成フォルダ)を作成し、
その中に保存していきたいです。
①工事場所と同じ名前のフォルダが存在する場合
→作成した注文書を同じ名前のフォルダに格納
②工事場所と同じ名前のフォルダが存在しない場合
→作成した注文書と同じ名前のフォルダを作成し、格納
以上、よろしくお願いいたします。

No.1ベストアンサー
- 回答日時:
こんにちは
不明な点に関して、勝手に以下のように想定しました。
・「注文書作成」フォルダはデスクトップに必ず存在する
・保存するブックはThisWorkbookとする
・保存形式は「.xlsx」とする
・指定されたブック名のファイルが既に存在する場合、ファイル名に連番を付けて保存する
※ 違っている部分に関しては適宜修正願います。
サブフォルダ名、ファイル名はフォームから取得(?)するのだろうと想像しますが、ひとまず直接指定にしてありますので修正してください。
以下、ご参考までに。
Sub Q_13313892()
Dim folderName, fileName, i
Dim folderPath, filePath
Const ext = ".xlsx"
i = 1
folderName = "hoge" ' サブフォルダ名(実際のものに設定のこと)
fileName = "fuga" ' フォルダ名(実際のものに設定のこと)
folderPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
folderPath = folderPath & "\注文書作成\" & folderName
If Dir(folderPath, 16) <> folderName Then MkDir folderPath
filePath = folderPath & "\" & fileName & ext
While Dir(filePath) <> ""
i = i + 1
filePath = folderPath & "\" & fileName & "(" & i & ")" & ext
Wend
Application.DisplayAlerts = False
ThisWorkbook.SaveAs filePath, xlOpenXMLWorkbook
Application.DisplayAlerts = True
End Sub
No.2
- 回答日時:
No1です。
>この5番目のシートのみを保存したいのですがどのように
>変更すればよいでしょうか...
対象とするシートだけのブックとして保存したいってことでしょうか?
もしそうであるなら、一旦、その様なブックを作成して、そのブックを保存するということになるでしょう。
5番目のシートを作成するのではなく、最初から新しいブックのシートにその「5番目のシート」の内容を作成するようにしておけば、そのブックを保存するだけで済みますね。
5シートあるブックから1シートだけのブックを作成したいのであれば、
・不要な4シートを削除する
・新しいブックとして1シートをコピーする
などが考えられます。
保存したらお終い(=ブックを閉じる)のであれば、4シートを削除しても問題はないでしょう。
更に同じような処理を続けるのであれば、新しいブックにコピーするのが簡単でしょう。
シートのCopyメソッドで引数を省略すると、新しいブックにコピーされます。
https://learn.microsoft.com/ja-jp/office/vba/api …
全体像がよくわかりませんけれど、そもそも単独で保存する目的でシートを作成するのなら、最初に記したように、初めから新しいブックにシートを作成しておくのがよさそうに思います。
ご回答いただきありがとうございます。
いただいたSub Q_13313892()のコードを変えてみたのですが、一旦5シートすべてを保存してその上から1シートのみcopyしてブックを作成の流れになり、最初の5シート保存を変更するやり方が分からないままでした。。。
もう少しいろいろいじってみようと思います!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) Wordマクロで指定したフォルダ名に保存する方法について 8 2022/12/13 11:35
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- その他(プログラミング・Web制作) フォルダを一括で作成する方法 0 2022/07/27 19:19
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- 財務・会計・経理 業者間での注文書・請書の取り扱いについて 2 2022/06/27 15:53
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
Excelで指定したフォルダに保存...
-
VBA 最新のフォルダ取得
-
マクロでネットワークドライブ...
-
PHPで、指定フォルダ(サブフォ...
-
C ファイル出力で、フォルダが...
-
デスクトップの画像をhtmlに表...
-
フォルダを開いて、閉じるのプ...
-
excelマクロ 冒頭3文字が一致す...
-
会社のネットワーク上のファイ...
-
excel VBA Dirにて検索したフォ...
-
【ExcelVBA】一覧表の記載に従...
-
VBA:特定の文字を含むフォルダ...
-
ファイル名と同名のフォルダを...
-
Access VBA で フォルダ権限...
-
VBA フォルダ名に特定の文字を...
-
ExcelVBAでフォルダへのハイパ...
-
フォルダにリンクを貼りたい
-
平日出力されるログを月次処理...
-
C#でフォルダをロックする方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
ファイル名と同名のフォルダを...
-
デスクトップの画像をhtmlに表...
-
VBA 最新のフォルダ取得
-
VBA フォルダ名に特定の文字を...
-
Access VBA で フォルダ権限...
-
ディレクトリ名変更してコピー...
-
excelマクロ 冒頭3文字が一致す...
-
Excelで指定したフォルダに保存...
-
パス名に2バイト文字(マルチバ...
-
ExcelのVBAでフォルダ指定がで...
-
excel VBA Dirにて検索したフォ...
-
【マクロ】ファイル名の日付に...
-
VBA フォルダの複数選択ができない
-
Excelのハイパーリンクについて...
-
あるフォルダーのファイルを違...
-
C ファイル出力で、フォルダが...
-
フォルダを開いて、閉じるのプ...
-
ThisWorkbookがあるフォルダ更...
おすすめ情報
ありがとうございます!
サブフォルダ名、ファイル名等指定したらほぼ思っていた通りになりました。
1つお伺いしたいのですが、
注文書を作成する元のブックはシートが既に4枚存在しており、フォームで作成した注文書が5枚目のシートとして作成されます。
この5番目のシートのみを保存したいのですがどのように変更すればよいでしょうか...