エクセルのファイルがあります。
ファイルには複数のシートが入っています。(50シート)
複数のシートの中で、別ブックで保管したいシートのR1セルには、ファイル名を入れています。
R1セルに入っている値
総務部_aaaaa.xlsx
総務部_abbbb.xlsx
経理部_accaa.xlsx
営業部_ddddd.xlsx
ファイルはディスクトップのテストフォルダに保管したいと思っています。
C:\Users\aaa\Desktop\TEST\
R1セルにはいっている値をファイル名にして区分けするマクロはどのようにしたら良いのでしょうか。
No.2ベストアンサー
- 回答日時:
こんにちは
>マクロはどのようにしたら良いのでしょうか。
すでに回答にあるように、作るしかありません。
「R1セルを参照して空白でなかったら、指定のディレクトリに保存する」というものを、各シートで繰り返せば良いでしょう。
また、ご質問文には不明な点が多々あります。
例えば、
・複数シートに同じ保存先が指定されている可能性の有無
・保存先の指定がおかしな文字になっている場合の処置
・フォルダに既に同名のファイルが存在している場合の処置
などなど・・・
以下は、不明なケースに対して勝手に適当な処理を加えてあるので、相当に冗長になっていますが(多分、倍くらいの長さかも?)、ご参考までに。
Sub Q_13175734()
Dim Dic, v, p As String
Dim i As Long, j As Long
Const b = "\/:;*?""<>|"
' 以下二行の「CO」の文字を下記にあるように修正のこと!!!
Set Dic = CO("Scripting.Dictionary")
p = CO("WScript.Shell").SpecialFolders("Desktop") & "\TEST\"
If Dir(p, 16) = "" Then MkDir p
For i = 1 To Worksheets.Count
v = Worksheets(i).Range("R1").Text
If Right(v, 5) = ".xlsx" Then v = Left(v, Len(v) - 5)
For j = 1 To Len(b)
v = Replace(v, Mid(b, j, 1), "X")
Next j
If v <> "" Then
If Dic.Exists(v) Then
Dic(v) = Dic(v) & "|" & Worksheets(i).Name
Else
Dic.Add v, Worksheets(i).Name
End If
End If
Next i
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each v In Dic
Worksheets(Split(Dic(v), "|")).Copy
With ActiveWorkbook
.SaveAs p & v & ".xlsx"
.Close False
End With
Next v
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
※ 普通にコードを記述すると、投稿時にはじかれてしまうようです。
コメントの下二行の「CO」の部分を以下のように書き換えてください。
CO → CreateObject
こっちの原因を探して対応する方が、回答より時間がかかってしまった(汗
No.1
- 回答日時:
こんにちは
>R1セルにはいっている値をファイル名にして区分けするマクロはどのようにしたら良いのでしょうか。
ご質問者様は、マクロの書き方を知りたいですか?それとも結果が欲しいのでしょうか?
前者なら、先ずは自分で作りましょう
(ループ、制御系のコードを除けば If文を入れても5行くらいで出来ますのでトライしてみてはいかがでしょう)
下記で検索すればそのまま使えるコードが見つかります
内容を検証して必要なコードを1つにまとめます
①「VBA シートを別ブックとして保存する」
②「VBA ブック内のすべてのワークシートで同じ処理を行う」
③「VBA 空白以外のセル」
などで調べる
調べて作ったコードで上手くいかなかった時は書いたコードを添えて
再質問してみて・・
(プロシージャを書く方がこんな回答より簡単ですが前者であることを期待しています)
すでに書いているコードがあれば補足に示すと良いかもです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/08/04 13:56
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) 【マクロ】【VBA】同じフォルダ内にあるエクセルのデータを転記したい 2 2023/07/26 15:13
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) 3個のfileのセルデータを1個のfileのセルに貼り付けるVBAコードですが。 1 2023/02/20 09:21
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/04 10:48
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
1日前の検尿
-
今朝、毎朝の習慣でオナニーし...
-
変な話しになります。尿検査で...
-
射精をして1週間以内に尿検査を...
-
検便についてです。 便は取れた...
-
腕を見たら黄色くなってる部分...
-
2つの数値のうち、数値が小さい...
-
彼女のことが好きすぎて彼女の...
-
EXCELで条件付き書式で空白セル...
-
口の中に黒い血の塊
-
値が入っているときだけ計算結...
-
男です。昨日の午後3時くらいに...
-
白血球が多いとどんな心配があ...
-
Excelで""で囲む方法
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
中出しをするとお腹が痛い・・・。
-
麻疹風疹の抗体検査結果につい...
-
エクセルでエラーが出て困って...
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
至急!尿検査前日にオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
精子が黄色?
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
口の中に黒い血の塊
-
健否~書類の書き方~
-
甲状腺が腫れているが血液検査...
-
はしかの抗体検査は何科の病院...
-
テスターで断線を調べる方法教...
おすすめ情報