VBA 追加処理の記述を教えてください。
お世話になります。マクロの初心者です、稚拙な部分はご容赦ください。
下記マクロを実行すると、元データが複数のファイルに分割されます。
追加作業としては、①シートの保護
出来上がった全ファイルのシートは1つ(シート名:『Sheet1』のみ)のA列~H列とJ列は保護され『I列』と『K列』は
保護されない(PWは、【9753】)。かつオートフィルタ設定でオートフィルタの操作は可能。
②ファイルの種類は、CSVでファイルを作成希望。
自動で作成したく(今は手動で毎週100件作成)、詳しい記述をご教示の程お願い致します。
下記に対象リンク先と記述を記します。
リンク先 https://www.helpforest.com/excel/emv_sample/ex10 …
-----------------------------------------------------------------------------------
SubSample()
DimMacroBAsWorksheet'このブックのシート
DimWb_DataAsWorkbook'1.分割元ブック
DimWb_newAsWorkbook'分割データ保存ブック
DimWsAsString'2.分割元シート名
DimPathAsString'3.分割データ保存先
DimC_GroupAsString'4.グループ対象列
DimGroupNameAsString'グループ名(ブック名)
DimC_CopyAsString'5.コピーデータ右端列
DimYMDAsString'6.保存ブック日付の表示形式
DimPSWAsString'7.読み取りパスワード
DimR_DataAsInteger'データの行番号
DimKoAsInteger'グループの件数
SetMacroB=ThisWorkbook.Worksheets(1)'このブックのシート
SetWb_Data=Workbooks(MacroB.Range("C11").Value)'分割元のブック名
Ws=MacroB.Range("C12")
Path=MacroB.Range("C13")&"\"
C_Group=MacroB.Range("C14")
C_Copy=MacroB.Range("C15")
YMD=MacroB.Range("C16")
PSW=MacroB.Range("C17")
IfYMD=""Then
YMD=""
Else
YMD=Format(Date,YMD)
EndIf
R_Data=2'データの開始行
Application.ScreenUpdating=False
Do
Wb_Data.Activate
Worksheets(Ws).Range(Cells(1,1),Cells(1,C_Copy)).Copy'1行目の項目名コピー
Workbooks.Add
ActiveSheet.PasteRange("A1")'新規ブックに貼り付け
SetWb_new=ActiveWorkbook
Wb_Data.Activate
GroupName=Cells(R_Data,C_Group)
Ko=WorksheetFunction.CountIf(Columns(C_Group),GroupName)'グループの件数を算出
Range(Cells(R_Data,"A"),Cells(R_Data+Ko-1,C_Copy)).Copy'グループ件数分コピー
Wb_new.Activate
ActiveSheet.PasteRange("A2")'新規ブック項目の下に貼り付け
ActiveSheet.Columns.AutoFit
ActiveSheet.UsedRange.Borders.LineStyle=True
Range("D2").Select
ActiveWindow.FreezePanes=True
DimmynameAsString'条件不明
IfActiveSheet.Range("A2")<>""Then
myname=ActiveSheet.Range("A2")
EndIf
Wb_new.SaveAsFilename:=Path&GroupName&"注残納期回答依頼リスト"&YMD&".xlsx",_
Password:=PSW'指定したフォルダーに保存
Wb_new.Close
R_Data=R_Data+Ko
LoopWhileCells(R_Data,C_Group)<>""
MsgBox"完了!"
Application.ScreenUpdating=True
EndSub
No.1ベストアンサー
- 回答日時:
こんばんは
>①シートの保護
シートの保護に関しては、セルのロックを含めて「マクロの記録」をとれば、処理方法がわかるものと思います。
それを、応用すれば宜しいでしょう。
>②ファイルの種類は、CSVでファイルを作成希望。
CSVは基本的にテキストファイルなので、エクセルのような列毎の保護のような機能はありません。
せいぜい、ファイル全体を「読み取り専用」(=書き込み禁止)にできる程度です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
VBAでブックを非表示で開いて処...
-
エクセルの関数 ENTERを押...
-
【ExcelVBA】シートをそれぞれ...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
フォルダ内の複数ファイルから...
-
エクセルで参照しているデータ...
-
エクセルでウィンドウの枠固定...
-
Excelで指定範囲のデータ...
-
エクセルで別ブックをバックグ...
-
Excelファイルをダブルクリック...
-
外部ブック参照が#REF!になって...
-
ブックのピボットを別ブックに...
-
別ブックから入力規則でリスト...
-
エクセルシートの一部を送りたい
-
フォルダ内の複数ファイルから...
-
フォルダ内ブックの数式を全て...
-
アクセスvbaでエクセルブックを...
-
Excelで複数ブックの同一セルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
WorkBooksをオープンさせずにシ...
-
エクセルで参照しているデータ...
-
エクセルで「ディスクがいっぱ...
-
Excelでブックの共有を掛けると...
-
Excelで複数ブックの同一セルに...
-
Excel(2010)のフィルターが保...
-
エクセルで別ブックをバックグ...
-
エクセルにおける,「ブック」...
-
同じフォルダへのハイパーリン...
-
ブックのピボットを別ブックに...
-
エクセルファイルを開かずにpdf...
-
エクセル2016です。「ブッ...
-
ブックの保護ができないんです...
-
エクセルで50行ごとに区切った...
-
エクセルシートの一部を送りたい
-
フォルダ内の複数ファイルから...
-
エクセル 複数のブックを一度...
おすすめ情報