次の方法で共有

Excel起動時のCPU個数を設定するバッチファイルの作成方法を教えてください

Anonymous
2020-03-25T07:24:01+00:00

Excel2016(Office 365 Solo)がよく応答なしになるので下記の

Microsoftサポートのサイトにある「複数コアのCPU環境で実行中のAccessが応答なしになる」

https://support.microsoft.com/ja-jp/help/2646068

を参考にCPUを削減して起動する方法を探しました。CPU2個にすると応答なしが回避できるのですが、

Excel2010を搭載したPCではコマンドプロンプトで

start "Excel" /affinity 3 <EXCEL.EXEのフルパス>を実行してできました。

起動するCPUの指定=CPU0(16進数で1)+CPU1(16進数で2)=3

ただ、Excel2016(Office365 Solo)搭載のPCではOSPPREARM.EXEというファイルしかなくどのようにすれば起動できるのか

わかりません。できればExcel単体の起動が望ましいのですが、Office全体でしか無理ならOffice全体のCPUを制限する方法でも構いません。

start "OSPPREARM" /affinity 3 <OSPPREARM.EXEのフルパス>や

start "Excel" /affinity 3 <OSPPREARM.EXEのフルパス>などをやってみましたが、反応なしやファイルが見つかりませんで起動できません。

excel2010の場合はバッチファイルはコマンドを.bat形式で保存したら作れましたが、Excel2016でも同様ですか。

よろしくお願いします。

家庭向け Windows | その他 | アプリ

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2020-03-25T13:25:59+00:00

エラーが出ている部分についてコマンドの記述が間違えている可能性があります。

元々応答なしになるのはコア数の問題ではない可能性が高いので、そちらを解決された方が良いかと思います。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2020-03-25T22:01:49+00:00

    sakuramotiさん、ありがとうございます。

    何も理解しないまま初めてPowerShellを触りましたが、例文の真似だけではだめですね。

    いろいろとミスがありました。少し理解をしてからまたトライしてみます。 

    とりあえずは手動でCPUの数を変更します。  

    「応答なし」の原因はCPUの数以外にあるのでは?というご指摘は私もそう思いつつも

    個々数か月はVBAのあれこれを修正しましたが、CPUの個数の減少が一番効果があるので、

    この方法を使うことにしました。毎日使うExcelなので少しでも手間を省くためにバッチ

    ファイル化してみようとしました。

    Office365は通常のインストールと違うクイックインストールで従来のExcel2010とは

    扱いが違うということ

    を理解しました。

    本件、これにて終了とさせていただきます。ありがとうございました。

    (それにしてもここのエディタは使いにくい。変換も改行も一発でいきません)

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2020-03-25T08:19:38+00:00

    sakuramotiさん、早速のお返事ありがとうございました。

    やってみましたが、うまくいきませんでした。

    コア数変更の例

    PowerShell "Get-Process OSPPREARM | %% { $_.ProcessorAffinity=3 }"

    の場合は

    %% : 用語 '%%' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。

    %を1つにした場合は、

    Get-Process : 名前 "OSPPREARM" のプロセスが見つかりません。プロセス名を確認し、コマンドレットを再度呼び出してください。

    発生場所 行:1 文字:1

    • Get-Process OSPPREARM | % { .ProcessorAffinity=3 }
    • 
      

        + CategoryInfo          : ObjectNotFound: (OSPPREARM:String) [Get-Process], ProcessCommandException

        + FullyQualifiedErrorId : NoProcessFoundForGivenName,Microsoft.PowerShell.Commands.GetProcessCommand

    パス名を指定したらとフルパスを入れて

    PowerShell "Get-Process C:\Program Files (x86)\Microsoft Office\Office16\OSPPREARM | % { $_.ProcessorAffinity=3 }"

    としたら

    x86 : 用語 'x86' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。

    名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください

    発生場所 行:1 文字:31

    • Get-Process C:\Program Files (x86)\Microsoft Office\Office16\OSPPREAR ...

    +                               ~~~

        + CategoryInfo          : ObjectNotFound: (x86:String) [], CommandNotFoundException

        + FullyQualifiedErrorId : CommandNotFoundException

    というエラーで起動できませんでした。

    コマンドレットの意味が理解できていないので、改修方法がわかりません。

    何かお気づきの点がありましたら教えてください。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2020-03-25T07:32:21+00:00

    こんにちは

    Windows 10 でのプロセスの指定は下記のような方法で出来ないでしょうか。

    Office については、Office 2010 は MSI 版、Office 2016 はクイック実行なので同じコマンドは動作しない可能性があります。

    https://itengine.seesaa.net/article/453362400.html

    ※ 上記はマイクロソフトのサイトではないので広告等にはご注意ください。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません