覚えておいてください今回の作業は、一時的にではありますがシステムの設定をいじる部分があります。そのため、会社など、共有パソコンや機密情報を扱うマシンで勝手に以下の操作を行うことはオススメしません。管理者の方に許可を頂いてから行いましょう。当ブログでは責任を負いかねますので、あらかじめご了承ください。発生したエラーに関しては、どうか自己責任でお願いいたします。当ブログはあくまでも素人が調べて試した結果を再構成したものです。そのため、まだまだ勘違いや誤りが混ざっている可能性があります。調べては試すを繰り返して学ぶのはとても大事なことと考えています。*1私も、そのためにブログをはじめてみました。環境が許せば、ぜひご自宅のパソコンなどでチャレンジして、いっぱい闘ってみてください。PowerShellとは?いきなり横文字が出ました。Win10のパッケージ管理には、PowerShellなるWindowsの機能を使います。PowerShell自体は、Windows7から標準搭載となったものです。環境の準備は必要ありません。リリース時のニュースによると、マイクロソフトが提供するコマンドライン環境とスクリプティング機能の1つである。(マイナビニュース)https://news.mynavi.jp/article/20091104-windows7soft/う、うーん...。私は、まずここで躓きました。コマンドラインて?スクリプティングって何よ???、と。要は、「あの」黒い画面で、PCに命令する手段が増えました、というお話でした。呼びます)のことで、スクリプティングはいろんなコマンドでPCに命令すること、と思ってください。古くは「MS-DOS」や「コマンドプロンプト」が当てはまりますが、これらがいろいろパワーアップしています。詳しく知りたい方は、ぜひググってみてくださいね*3。安心してください、簡単ですよ。(古い)しつこいですが、英語の動詞と名詞の違いさえ理解できれば、あとは少しのコマンドと書く順番を覚えるだけです。コマンドを使うだけなら、条件分岐やループ、型の指定なども使いません。VBAよりカンタンです!安心してください!ということで、まずは早速PowerShellを起動してみましょう。「PowerShell」を検索します。「PowerShell」と入力。検索して出てきたら、右クリックして「管理者として実行」を選択します。今回は、ISEではなく(x86)でもない、64bit版を選びます。管理者権限のあるアカウントでやり直してみてください*5。...というわけで、ででん!これで、本日のメインゲスト、例の黒い画面の登場です!初期画面です。黒というか青いですね。笑ここからパソコンに命令していきます!わくわく!現在の設定を確認するPowerShellの起動ができたら、どんなスクリプトの操作を許可するか(=実行ポリシー)を設定します。現在の設定を確認しましょう。あれば、PowerShellを開いた時から下記のように表示されていると思います。C:Windows\system32>「何のこっちゃ?」な方もいると思いますが、とりあえずそのまま4行目にget-ExecutionPolicyというコマンドを入力してみてください。コピペでもOKですよ。get-ExecutionPolicyこの時、単語やハイフンとの間にスペースは使いませんので、ご注意を!また、PowerShellでは大文字・小文字は特に気にしなくても大丈夫ですが、スペルミスなどの誤字脱字には気を付けてください!間違ったまま実行すると、「何言ってんの?そんなコマンド知りませんよ?」と言われます...地味に傷つくやつです。笑そこで、分かりやすくするために、わたしは↑のように名詞の部分は単語ごとに1字目を大文字にして使っています。Shiftボタン分の操作は増えますが、読み間違えて失敗するよりはマシということで。ここでEnterを押すと、さっきのコマンドとあわせてこのようになるはずです。↑のコマンドを日本語で置き換えると、こんな内容です。結果さらに、これをVBA的に言うとこんな感じ。メソッド-オブジェクト戻り値(苦手な方もいるかと思いますが、上と見比べてみてくださいね。)get-ExecutionPolicyは「現在の実行ポリシーの状態を取得する」という意味のコマンドで、Restrictedは、「外部のネットワーク等からのアクセス・操作を制限中」という意味です。セキュリティで守られている状態ということですね。今回はこれを変更しましょう。C:Windows\system32>の部分は省略して書いてあるものとして読み進めて下さい。実行ポリシーを変更するでは、早速これ↓を入力します。RemoteSigned今度はset-ExecutionPolicy、-Execution、RemoteSignedの間にそれぞれ半角スペースが入りますので、ご注意ください!いま宣言した実行ポリシーのRemoteSignedは、「遠隔で作成されてインターネットからダウンロードしたスクリプトは、署名されたもののみアクセス・操作を許可します*6」という意味です。「ある程度しっかり管理されているものだけを処理します」ということです。オプションで条件を追加するこのコマンドも文法的に言うと、こんな感じになります。結果こちらもVBA的に言い換えると、こうですね。うん、ちょっと長い!ちなみに名前付き引き数とは、例えばVBAで表をソートする時のkey:=Range("A1"),〜の部分のことです。With名前はkey:=の部分、引き数はRange("A1")の部分ですね。この名前付き引き数の部分を、PowerShellではオプションと呼びます。「ちなみに~」以下の部分を指します。オプションを使うときは、上述の通り、それぞれコマンドの前に半角のスペースが入ることを覚えておきましょう。今度はこんな風に長めのメッセージが出ます。実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。(https://go.microsoft.com/fwlink/?LinkID=135170)で説明されているセキュリティ上の危険にさらされる可能性があります。"N"):いきなりビックリしますねぇ。笑でも、焦らずじっくりメッセージを読みましょう。セキュリティでパソコンを守ってくれているところを、私たち指揮官が「解放セヨ!」と命令するので「ホントに良いですか?後悔しませんか??」と確認してくれているのです。結果-------------------------------の形式でリアルタイムに入力・処理していくことを、対話モードと言います。さっき、実行ポリシーを取得してRestrictedという結果をすぐに返してくれたのも、このためです。対して、バッチ処理など、事前に「実行ファイル」というものを作ってまとめて出力・実行するスクリプト・モードもあります。作業を効率化できます(※外部サイト)。PowerShellでは、このように「対話モード」と「スクリプト・モード」に分かれています*7。今回はひとつずつ指示を出して進めたいので、このまま、対話モードで進めて行きます。※なお、通常は入力や命令と言ったらEnterを押すところまでを指します。ここからは基本的にEnterも省いて表記しますね。代行をお願いするそれでいま、PowerShellさんには「本当に実行してもいいですか?」と聞かれています。そこですかさず堂々と、aと答えてあげてください。