投稿者 ヒロ  (学生) 投稿日時 2019/12/24 14:32:44
プログラムで特定のExcelファイルを印刷する処理を作成しました。
(Formアプリケーションで、フォームにボタンを2つ配置しています)

Button1 は Win32 API のShellExecute 関数を使って、Button2 では Process 関数を使って印刷処理を行います。

結果は同じでしたが、Win32 API の関数を使用する場合、ネットで色々調べたるところ、引数の型や戻り値の型がいくつかパターンがあるようで、どれが正しいのかわからず、全部試してとりあえず動いた!という状況です。

第一パラメータの「親ウィンドウのハンドル」と、関数の戻り値をともに Long 型にしていましたが、どうもVB6 のときの書き方のようで、.NET では Integer 型にするべきということで、以下の様に記述しました。

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Integer, ByVal lpszOp As String, ByVal lpszFile As String, ByVal lpszParams As String, ByVal lpszDir As String, ByVal FsShowCmd As Integer) As Integer


ざっくりとした質問になりますが、これで問題はないのでしょうか?