
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【教えて!goo ウォッチ 人気記事】風水師直伝!住まいに幸運を呼び込む三つのポイント
記事を読む>>
-
VBAの計算について
Visual Basic(VBA)
-
複数条件のオートフィルタ(VBA)
Visual Basic(VBA)
-
なぜこんな初歩的なVBAのIf文でエラーか発生して使えないのか、全く理解出来ません。誰か助けてくださ
Visual Basic(VBA)
-
-
4
ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。
Visual Basic(VBA)
-
5
エクセルVBAで教えて頂きたいのですが?
Visual Basic(VBA)
-
6
Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の
Visual Basic(VBA)
-
7
vba 同じブック内での転記について
Excel(エクセル)
-
8
VBAでWorkbook.addの使い方
Visual Basic(VBA)
-
9
Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日
Visual Basic(VBA)
-
10
VBA For Each 〜 複数条件について
Visual Basic(VBA)
-
11
VBAコードで質問があります
Visual Basic(VBA)
-
12
VBAで重複データを確認したい
Visual Basic(VBA)
-
13
VBAで質問があります
Visual Basic(VBA)
-
14
初めてマクロを入力しますが、テキストとおりに入力したのに構文エラーです。修正を教えてください。
Visual Basic(VBA)
-
15
VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく
Visual Basic(VBA)
-
16
シート間で同じ値があったら指定範囲をコピーして貼り付け
Visual Basic(VBA)
-
17
VBAチェックボックスで有効無効切り替えできるように
Visual Basic(VBA)
-
18
マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」
Visual Basic(VBA)
-
19
Excel VBAでAA(BBB) → BBB.AA に置換したい
Visual Basic(VBA)
-
20
VBAリストボックスで選択した後
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
エクセルVBAでテキストボックス...
-
5
VBAで複数のブックを開かずに処...
-
6
GetOpenFileNameで開いたブック...
-
7
[Excel]ADODBでNull変換されて...
-
8
VBAで別ブックのシートを指定し...
-
9
VBA シート名が一致した場合の...
-
10
VBSでExcelのオープン確認
-
11
複数のエクセルブックをひとつ...
-
12
Excel VBA 同じ名前のフォルダ...
-
13
任意のブックを開き、任意のシ...
-
14
マクロを利用して別ファイルに...
-
15
ACCESSVBA からExcelの他ブック...
-
16
VBAマクロ実行時エラーの修正に...
-
17
あああ..ああい..ああう とい...
-
18
Worksheets メソッドは失敗しま...
-
19
エクセルVBA 最終行を選んで並...
-
20
VBAでの SendKeysの変数指定方法
おすすめ情報
公式facebook
公式twitter
ありがとうございます!
サブフォルダ名、ファイル名等指定したらほぼ思っていた通りになりました。
1つお伺いしたいのですが、
注文書を作成する元のブックはシートが既に4枚存在しており、フォームで作成した注文書が5枚目のシートとして作成されます。
この5番目のシートのみを保存したいのですがどのように変更すればよいでしょうか...