• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:なぜなのか教えてください。)

ネットからサンプルコードを取得した結果、なぜlngTaskIDは数値型なのか?

このQ&Aのポイント
  • ネットからサンプルコードを取得したところ、lngTaskIDは数値型となっていました。しかし、なぜ数値型なのかがわかりません。
  • Shell関数のヘルプを調べると、バリアント型を返すと書かれていますが、具体的な理由がわかりません。
  • Debug.Print lngTaskIDで取得した数値はランダムなものでした。それらの数値がどのような意味を持つのかが気になります。

質問者が選んだベストアンサー

  • ベストアンサー
  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

ヘルプには、戻り値はタスクIDでバリアント型とありますが、実際には(32ビットであれば)プロセスIDでLong値を納めたDouble型が返されます。

YRCOYNBJVM
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBAでフリーソフトを起動する事は可能でしょうか?

    Sub Sample1() Dim rc As Long rc = Shell("notepad.exe", vbNormalFocus) If rc = 0 Then MsgBox "起動に失敗しました" End Sub でメモ帳は開けるのですが、 QR Code Editorというソフトを入れていて、 それをVBAで開きたいのですがどうすればいいでしょうか? QR Code Editorは、 "C:\Program Files (x86)\Psytec\QR Code Editor\PsQREdit.exe" に入っています。 Sub Sample1() Dim rc As Long rc = Shell("PsQREdit.exe", vbNormalFocus) End Sub にすると、ファイルが見つかりません。 (Error 53)になってしまいます。 ご教授よろしくお願いします。

  • メモ帳を好きな位置で開くには?

    Sub Sample() Dim i As Long i = Shell("notepad.exe", vbNormalFocus) End Sub このコードだと、多分前回開いた時と同じ位置・大きさで開いてしまうのですが、 Sub Sample() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Top = 0 objIE.Left = 0 objIE.Width = 500 objIE.Height = 500 Set objIE = Nothing End Sub のように、サイズを指定して開く方法はありますか? メモ帳に限らず、Shell関数を使ってアプリケーションを開くときに サイズや位置を指定する方法を教えてください。

  • エクセルVBAで外部ソフトFFFTPを操作(2)

    「FFFTPを立ち上げて、ホスト一覧からサイト名を選んで接続」 この作業をエクセルVBAで行いたいと前回質問した者です。 http://okwave.jp/qa/q7596470.html そこで、 Sub Sample1() Dim rc As Long rc = Shell("C:~\FFFTP.exe"-s サイト名", vbNormalFocus) If rc = 0 Then MsgBox "起動に失敗しました" End Sub この書き方で、成功したのですが、エクセルSheet1、A1のセルにサイト名があるとして、サイト名のところにA1セルを入れるにはどのように書けばいいのでしょうか? rc = Shell("C:~\FFFTP.exe"-s (ここにA1のセルを入れたい)", vbNormalFocus) VBAがほとんど分からず苦労してます。どなたか教えていただけないでしょうか?

  • GetWindowText、GetActiveWindowについて

    こんばんは。よろしくお願いします。 まずは以下をご覧ください。 Excel VBA です。 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub Sample() Dim rtn, rtn2 As Long Dim Name As String Dim Leng As Long Dim ReturnValue ReturnValue = Shell("CALC.EXE", 1) AppActivate ReturnValue Sleep 500 Name = String(250, Chr(0)) Leng = Len(Name) rtn = GetActiveWindow() rtn2 = GetWindowText(rtn, Name, Leng) Debug.Print Name End Sub これを実行しても、イミディエイトウインドウに「電卓」は出ません。 エラーもありません。 なぜなのでしょうか?

  • Windows Script Hostは、スクリプ

    Windows Script Hostは、スクリプト言語なのでしょうか? Sub Sample() Dim WSH As Variant Set WSH = CreateObject("Wscript.Shell") Debug.Print WSH.SpecialFolders("Favorites") Set WSH = Nothing End Sub このようなコードでVBAでWSHを使っていますが WSHが何なのかわからないまま使っています。

  • 開いたときの位置を指定する事は可能ですか?

    Sub Sample() Dim myFile As String myFile = "C:\Program Files (x86)\" Shell "C:\Windows\Explorer.exe " & myFile, vbNormalFocus End Sub これでフォルダを起動させているのですが 開いたときの位置を指定する事は可能ですか? TOP=0 など、IE操作の様に画面に対する位置を指定したいのですが どうすればいいでしょうか?

  • エクセルVBAでPDFを開く

    以下のような記述でアクロバットリーダーは立ち上がるのですが、 「この文書を開くときにエラーが発生しました。このファイルが見つかりません」 と出てきてしまいます。 どのようにしたら開いてくれるのでしょうか? Sub test3() Dim P As String P = "\\C:\AAA\sample.PDF" Shell "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe" & " " & P, vbNormalFocus End Sub

  • 空白が必要な理由を教えてください。

    http://okwave.jp/qa/q5024766.html を参考にVBAでフォルダを開いたのですが 一つ疑問があります。(素朴な疑問です) Sub OpenFolders() Dim targ As String targ = "C:\" Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus  '空白あり End Sub のコードは 「Shell "C:\Windows\Explorer.exe "」のexeの右隣に空白が入りますがなぜでしょうか?? Shell関数を使う場合は、空白を入れるのですか? Shell "C:\Windows\Explorer.exe" & targ, vbNormalFocus  '空白なし としたらエラーになりました。 ご教授よろしくお願いします。

  • 新規にメモ帳を起動して、「test」と入力したい

    新規にメモ帳を起動して、「test」と入力したいです。そして保存はしたくないです。 Sub Sample() Dim rc As Long rc = Shell("notepad.exe", vbNormalFocus) End Sub これだと、新規にメモ帳は起動できますが、書き込みができません。 Sub Sample2() Dim strList As String Dim adoSt As ADODB.Stream Set adoSt = CreateObject("ADODB.Stream") With adoSt .Type = adTypeText .Charset = "UTF-8" .Open End With adoSt.WriteText "test", adWriteLine adoSt.SaveToFile "c:\test.txt", adSaveCreateOverWrite adoSt.Close Set adoSt = Nothing End Sub これだとメモ帳を作成して書き込めますが、保存されてしまいます。 新規にメモ帳を起動→文字を書き込む までをvbaで行い、その後は×ボタンで消せる状態にしたいのですが、 どうすればいいか教えてください。

  • Variant型で宣言してるのにEmptyになる

    エクセルVBA2003について質問です。 Sub aaa1() Dim a As Variant Debug.Print TypeName(a) End Sub を実行してイミディエイトウインドウで確認すると Emptyが返ってきます。 Variantが返ってこない理由は何でしょうか? また、変数の方の宣言をしない場合は Variant型になるはずなのに Sub aaa2() Dim a Debug.Print TypeName(a) End Sub を実行すると、同じくEmptyが返ってきます。 Variantが返らない理由を教えてください。よろしくお願いします。

専門家に質問してみよう