teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

解答追加

2019/10/08 10:37

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -18,4 +18,56 @@
18
18
 
19
19
  ### まとめ
20
20
  どんな方法でも結構です(言語でもshellでも)
21
- 何か解決に近づく方法がございましたらお教え頂ければ幸いです。
21
+ 何か解決に近づく方法がございましたらお教え頂ければ幸いです。
22
+
23
+ ### 解決策
24
+ できました。
25
+ まさに理想の形で!
26
+ otunさんありがとうございました!
27
+
28
+ ```vba
29
+ Option Explicit
30
+
31
+ Sub setPasswordExcelFile()
32
+ Dim delimiter As String
33
+ If Application.OperatingSystem Like "*Mac*" Then
34
+ delimiter = "/"
35
+ Else
36
+ delimiter = Chr(92)
37
+ End If
38
+
39
+ 'バックグラウンド実行
40
+ Application.ScreenUpdating = False
41
+
42
+ 'ファイル名作成
43
+ Dim strFileName As String
44
+ strFileName = "a4.xlsx"
45
+
46
+ 'ファイルパス指定
47
+ Dim strFilePath As String
48
+ strFilePath = ThisWorkbook.Path & delimiter & strFileName
49
+
50
+ Dim wb As Workbook
51
+ Set wb = Workbooks.Open(strFilePath)
52
+ ActiveWindow.Visible = False
53
+ wb.Activate
54
+
55
+ 'ファイル保存
56
+ Application.DisplayAlerts = False '警告メッセージ非表示
57
+ wb.SaveAs FileName:=strFilePath, _
58
+ Password:="Password"
59
+ Application.DisplayAlerts = True '警告メッセージ非表示解除
60
+
61
+ '完了メッセージ
62
+ MsgBox "ファイルの保存が完了しました" & vbCrLf & _
63
+ "保存先は" & strFilePath & "です。"
64
+ Application.ScreenUpdating = True
65
+ End Sub
66
+
67
+
68
+
69
+ 'Sub Clic()
70
+ ' Module2.setPasswordExcelFile
71
+ 'End Sub
72
+
73
+ ```

1

markdown編集

2019/10/08 10:37

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  ### 試したこと
7
7
 
8
- (1) VBAで行う場合、下記のコードで可能でした
8
+ #### (1) VBAで行う場合、下記のコードで可能でした
9
9
  ```
10
10
  ActiveWorkbook.SaveAs Filename:="FilePath", Password:="password"
11
11
  ```
@@ -13,7 +13,7 @@
13
13
  しかしいちいちマクロ画面を開く必要があり、非エンジニアにはわかりづらい事。
14
14
  またすでに編集が完了してある大量のファイルに同様の設定を行い為、最善の解決とは思えません。
15
15
 
16
- (2) PythonのOpenPyxlで設定する
16
+ #### (2) PythonのOpenPyxlで設定する
17
17
  OpenPyxlにはシートにパスワードをかける事は可能ですが、ブックにかける事はできないようです。
18
18
 
19
19
  ### まとめ