質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

2758閲覧

VBAのマクロをVBSに変換し実行したいです。

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2020/11/08 15:32

前提・実現したいこと

VBAのマクロをVBSに変換して実行したいです。
実行内容としては、
1.シートの保護を解除
2.特定の行を削除
3.シートの保護(特定の操作を許可)

発生している問題・エラーメッセージ

実行できない内容として3.シートの保護(特定の操作を許可)の部分になります。
VBSで記述した際「sheet.Protect」までだとシートの保護はされます。「sheet.Protect」以降の処理がされない状況です。

該当のソースコード

VBA

1Sub Macro1() 2 ActiveSheet.Unprotect 3 Rows("17:20").Select 4 Selection.Delete Shift:=xlUp 5 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ 6 , AllowInsertingColumns:=True, AllowInsertingRows:=True, _ 7 AllowDeletingColumns:=True, AllowDeletingRows:=True 8End Sub

上記のコードを下記へ変更し、「sheet.Protect」の続きが書けず悩んでいます。
VBA通りに記述してもシートの保護すらかからない状況です。

VBS

1path = "Excelファイル" 2 3Set obj = CreateObject("Excel.Application") 4Set oXlsx = obj.WorkBook.Open(path) 5obj.Visible = True 6Set sheet = oXlsx.WorkBook.Item(1) 7 sheet.Unprotect 8 sheet.rows("17:20").delete 9 sheet.Protect DrawingObjects=True, Contents=True, Scenarios=True _ 10 , AllowInsertingColumns=True, AllowInsertingRows=True, _ 11 AllowDeletingColumns=True, AllowDeletingRows=True

試したこと

記述方法を変えてみたりなどしてみましたが、上手くいきませんでした。
その他調べたりもしたのですが、VBAの情報しか出てこず行き詰っている状況です。

補足情報(FW/ツールのバージョンなど)

Windows10

備考

業務上VBSで実行できるようにしたい為、お手数ですがよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

メソッド名が間違っている、全角空白が紛れ込んでいるなど、いろいろ間違ってますが、コピペミスでしょうか?

VBScriptだと名前付きでパラメーターを渡せないので、位置で。

VBScript

1Set obj = CreateObject("Excel.Application") 2Set oXlsx = obj.WorkBooks.Open(path) 3obj.Visible = True 4Set sheet = oXlsx.Sheets(1) 5 sheet.Unprotect 6 sheet.rows("1:1").delete 7 sheet.Protect Null,True,True,True, _ 8 Null,Null, _ 9 Null,Null,True,True, _ 10 Null,True,True

expression.Protect (Password, DrawingObjects, Contents, Scenarios,

UserInterfaceOnly, AllowFormattingCells,
AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows,
AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting,
AllowFiltering, AllowUsingPivotTables)

投稿2020/11/08 16:33

otn

総合スコア84788

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/11/08 17:06

ありがとうございます、実現したいことが実行できました!! おそらくコピペミスコードの間違いなどがあったと思います、申し訳ないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問