Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1607 / 13644 ツリー ←次へ | 前へ→

【73172】VBSでユーザーフォーム表示 亜矢 12/11/22(木) 18:56 質問[未読]
【73178】Re:VBSでユーザーフォーム表示 ウッシ 12/11/22(木) 23:03 回答[未読]
【73179】Re:VBSでユーザーフォーム表示 亜矢 12/11/23(金) 4:04 質問[未読]
【73180】Re:VBSでユーザーフォーム表示 ウッシ 12/11/23(金) 7:40 回答[未読]
【73181】Re:VBSでユーザーフォーム表示 亜矢 12/11/23(金) 9:02 お礼[未読]
【73182】Re:VBSでユーザーフォーム表示 UO3 12/11/23(金) 10:16 発言[未読]
【73185】Re:VBSでユーザーフォーム表示 ウッシ 12/11/23(金) 11:17 回答[未読]
【73183】Re:VBSでユーザーフォーム表示 UO3 12/11/23(金) 10:43 発言[未読]
【73184】Re:VBSでユーザーフォーム表示 UO3 12/11/23(金) 11:15 発言[未読]
【73186】Re:VBSでユーザーフォーム表示 亜矢 12/11/23(金) 12:36 お礼[未読]

【73172】VBSでユーザーフォーム表示
質問  亜矢  - 12/11/22(木) 18:56 -

引用なし
パスワード
   よろしくお願いします。
エクセルファイルにAuto_openにUserform1を開く様になっています。
そしてTextboxがあり、エクセルを開くとTextboxにいきなり入力
できるようになっています。これを下記のVBSで開かせると一度Userform1を
マウスでアクティブにしないとTextboxに入力できません。どこに問題があるか
おしえて頂きたいとおもいます。
option explicit
Dim objExcelApp, objExcelBook
dim AA
dim Wshshell
Set objExcelApp = CreateObject("Excel.Application")
'ワークブックを開く
Set objExcelBook = objExcelApp.Workbooks.Open("C:\××\××.xlsb", , True)
objExcelApp.Visible = true
'Excel側マクロ(Macro1)を起動
objExcelApp.Run "'" & "××.xlsb" & "'!Module1.AUTO_open"
実際には
objExcelApp.Visible = False
にする予定です。
 よろしくお願いします。

【73178】Re:VBSでユーザーフォーム表示
回答  ウッシ  - 12/11/22(木) 23:03 -

引用なし
パスワード
   こんばんは

Option explicit
Dim objExcelApp, objExcelBook
Dim Wshshell
Set Wshshell = WScript.CreateObject("WScript.Shell")
Set objExcelApp = CreateObject("Excel.Application")
'ワークブックを開く
With objExcelApp
  Set objExcelBook = .Workbooks.Open("P:\yu\Document\VBSでユーザーフォーム表示.xlsb", , 0)
  .Visible = 1
  Wshshell.AppActivate .Caption
  objExcelBook.RunAutoMacros 1 'xlAutoOpen
End With
Set Wshshell = Nothing

これでどうでしょう?

【73179】Re:VBSでユーザーフォーム表示
質問  亜矢  - 12/11/23(金) 4:04 -

引用なし
パスワード
   ▼ウッシ さん:
>こんばんは
>
>Option explicit
>Dim objExcelApp, objExcelBook
>Dim Wshshell
>Set Wshshell = WScript.CreateObject("WScript.Shell")
>Set objExcelApp = CreateObject("Excel.Application")
>'ワークブックを開く
>With objExcelApp
>  Set objExcelBook = .Workbooks.Open("P:\yu\Document\VBSでユーザーフォーム表示.xlsb", , 0)
>  .Visible = 1
>  Wshshell.AppActivate .Caption
>  objExcelBook.RunAutoMacros 1 'xlAutoOpen
>End With
>Set Wshshell = Nothing
>
>これでどうでしょう?
ありがとうございました。.Visible=1 では問題なくできました。が・・・
最終目的は。.Visible=0ですが、この場合は解決されませんでした。
解決策を教えて頂きたいと思います。

【73180】Re:VBSでユーザーフォーム表示
回答  ウッシ  - 12/11/23(金) 7:40 -

引用なし
パスワード
   こんにちは

>最終目的は。.Visible=0ですが、この場合は解決されませんでした。
>解決策を教えて頂きたいと思います。

それは無理です。(多分)
UseFormもExcel.Applicationの一部なんですから。

そういう時は自分はAutoOpenでApplication.WindowState = xlMinimizedしてます。
あくまでApplication.Visible は True です。

【73181】Re:VBSでユーザーフォーム表示
お礼  亜矢  - 12/11/23(金) 9:02 -

引用なし
パスワード
   ▼ウッシ さん:
>こんにちは
>
>>最終目的は。.Visible=0ですが、この場合は解決されませんでした。
>>解決策を教えて頂きたいと思います。
>
>それは無理です。(多分)
>UseFormもExcel.Applicationの一部なんですから。
>
>そういう時は自分はAutoOpenでApplication.WindowState = xlMinimizedしてます。
>あくまでApplication.Visible は True です。
ありがとうございました。お手数をお掛けしました。

【73182】Re:VBSでユーザーフォーム表示
発言  UO3  - 12/11/23(金) 10:16 -

引用なし
パスワード
   ▼ウッシ さん:

>それは無理です。(多分)
>UseFormもExcel.Applicationの一部なんですから。
>
>そういう時は自分はAutoOpenでApplication.WindowState = xlMinimizedしてます。
>あくまでApplication.Visible は True です。

VBSからは離れて。

そんなことはないですよ。
当方のスタッフ達が使っている仕組みは基本、エクセルはVisible=False にして
ユーザーフォームだけを、あたかもWindowsアプリのように見せかけた形式のものにしています。

【73183】Re:VBSでユーザーフォーム表示
発言  UO3  - 12/11/23(金) 10:43 -

引用なし
パスワード
   ▼亜矢 さん:

こちらで、実際に使っているコードです。
VBSファイルと同じフォルダにある、●●●.xls を開いています。
●●●.xls では、標準モジュールのAuto_Openではなく ThisWOrkbookモジュールの
Workbook_Open でユーザーフォームを表示しています。
VBSで立ち上げたエクセルは Visible=False ですから、それについては何もしていません。
エクセルは表示されず、ユーザーフォームだけが表示され、そのテキストボックスにフォーカスがあります。

Option Explicit

Dim objXLApp
Dim objXLBook
Dim VbsPath
Dim VbsName
Dim VbsFull
Dim x

  VbsFull = WScript.ScriptFullName
  x = InStrRev(VbsFull, "\")
  VbsPath = Left(VbsFull, x) 
  VbsName = Mid(VbsFull,x + 1)
  Set objXLApp = CreateObject("Excel.Application")
  Set objXLBook = objXLApp.Workbooks.Open(VbsPath & "\●●●.xls")

【73184】Re:VBSでユーザーフォーム表示
発言  UO3  - 12/11/23(金) 11:15 -

引用なし
パスワード
   ▼亜矢 さん:

もう1つ。
おそらくすでに手当済みで、以下は老婆心だと思いますが。
エクセル非表示でユーザーフォームを閉じた場合、何もしなければ、
【透明のエクセル幽霊】がPC上に残り漂います。
もちろん、タスクマネージャーから終了させる手立てもありますが

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
 Application.Quit
End Sub

これを忘れずに記述しておく必要がありますね。

【73185】Re:VBSでユーザーフォーム表示
回答  ウッシ  - 12/11/23(金) 11:17 -

引用なし
パスワード
   ▼UO3 さん:

こんにちは

出来ますね、済みません。
ユーザーフォームだけ表示を使ったのはもう何年も前だったのですが
完全に出来ないと思い込んでました、その頃、結構調べた記憶があるんですけど。

【73186】Re:VBSでユーザーフォーム表示
お礼  亜矢  - 12/11/23(金) 12:36 -

引用なし
パスワード
   ▼UO3 さん:
>▼亜矢 さん:
>
>もう1つ。
>おそらくすでに手当済みで、以下は老婆心だと思いますが。
>エクセル非表示でユーザーフォームを閉じた場合、何もしなければ、
>【透明のエクセル幽霊】がPC上に残り漂います。
>もちろん、タスクマネージャーから終了させる手立てもありますが
>
>Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
> Application.Quit
>End Sub
>
>これを忘れずに記述しておく必要がありますね。
アドバイスありがとうございます。上記の件はすでに処理済みです。

1607 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free