none
エクセルファイルを印刷するには RRS feed

  • 質問

  • エクセルのファイル(xls)を印刷する方法はありますか?

    エクセルファイルを右クリックをして「印刷」を選んだときと同じ挙動が得たいです

    2007年11月29日 9:33

回答

  • 次のようにすると、右クリックをして「印刷」を選んだときと同じ動作をします。

     

    コード ブロック

    System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo();
    si.FileName = file_name;
    si.Verb = "print";
    System.Diagnostics.Process.Start(si);

     

     

     

     

     

    2007年11月30日 12:03
  • loup247400 さん、こんにちは。

     

     loup247400 さんからの引用

    COMに対応した別言語に処理させて

    C#側からはそれを呼び出すということでしょうか?

    とりあえずVBScriptでやってみようと思います


    そのとおりです。
     

     Kazuya Ujihara さんからの引用

    次のようにすると、右クリックをして「印刷」を選んだときと同じ動作をします。


    あ、起動スイッチという方法がありましたね。

    選択中の Worksheets だけで良いならこの方が良いですね。

    2007年11月30日 16:18

すべての返信

  • loup247400 さん、こんにちは。

     loup247400 さんからの引用

    エクセルのファイル(xls)を印刷する方法はありますか?

    エクセルファイルを右クリックをして「印刷」を選んだときと同じ挙動が得たいです


    いろんな方法がありますが、手軽なのは COM に対応した言語で Worksheet.Printout メソッドを呼ぶことです。

    たとえば、ScriptControl から実行する方法があります。

    2007年11月29日 9:40
  • 返信ありがとうございます

    やはりCOMを使用する方法が標準的ですか。

    できればCOMは呼び出したくないのですが(解放処理とかが不安です)

    他の方法があれば教えていだたけませんでしょうか?

     

    当初はSystem.Diagnostics.ProcessからDOSコマンドで印刷しようと思っていたのですが

    printコマンド(print c:\test.xls)だと印刷していますと表示されますが印刷されません

    2007年11月29日 10:15
  • 私の説明不足のためか話がちょっとかみ合っていないようです。
    COM の参照カウントの解放が面倒だからこそ、COM 用の言語で実装してみてはと書いています。

    2007年11月29日 17:36
  • COMに対応した別言語に処理させて

    C#側からはそれを呼び出すということでしょうか?

    とりあえずVBScriptでやってみようと思います

    2007年11月30日 1:59
  • 次のようにすると、右クリックをして「印刷」を選んだときと同じ動作をします。

     

    コード ブロック

    System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo();
    si.FileName = file_name;
    si.Verb = "print";
    System.Diagnostics.Process.Start(si);

     

     

     

     

     

    2007年11月30日 12:03
  • loup247400 さん、こんにちは。

     

     loup247400 さんからの引用

    COMに対応した別言語に処理させて

    C#側からはそれを呼び出すということでしょうか?

    とりあえずVBScriptでやってみようと思います


    そのとおりです。
     

     Kazuya Ujihara さんからの引用

    次のようにすると、右クリックをして「印刷」を選んだときと同じ動作をします。


    あ、起動スイッチという方法がありましたね。

    選択中の Worksheets だけで良いならこの方が良いですね。

    2007年11月30日 16:18
  • ProcessStartInfoを使えばよかったのですね

    VBSのほうでもうまくいきましたが
    シートが1枚だけならこちらで事足りそうです

    ありがとうございます

    2007年12月3日 13:16