![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの警告について
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
WorkBooksをオープンさせずにシ...
-
エクセルで50行ごとに区切った...
-
Excelで指定範囲のデータ...
-
Excelファイルをダブルクリック...
-
Excelで複数ブックの同一セルに...
-
エクセルで「ディスクがいっぱ...
-
複数ファイルから特定シートの...
-
エクセル 複数のブックを一度...
-
エクセルを共有するとPCによっ...
-
エクセル2016です。「ブッ...
-
Excelでブックの共有を掛けると...
-
エクセルの「ウィンドウ→表示し...
-
【マクロ】【VBA】別ブックへの...
-
複数のブックをひとつのブック...
-
MSアクセスのインポート手法(パ...
-
Excelで拡張子の後に数字が……何...
-
エクセルシートの一部を送りたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
エクセルで参照しているデータ...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
【マクロ】【VBA】別ブックへの...
-
Excelで複数ブックの同一セルに...
-
エクセルにおける,「ブック」...
-
エクセルで50行ごとに区切った...
-
エクセルファイルを開かずにpdf...
-
Excel(2010)のフィルターが保...
-
エクセルで「ディスクがいっぱ...
-
エクセル2016です。「ブッ...
-
エクセルでウィンドウの枠固定...
-
外部ブック参照が#REF!になって...
-
エクセルで別ブックをバックグ...
-
エクセルシートの一部を送りたい
-
ブックのピボットを別ブックに...
-
複数ファイルから特定シートの...
おすすめ情報