Excel VBA質問箱 IV

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

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


1996 / 13645 ツリー ←次へ | 前へ→

【70454】7機でのBATがうまく動いてくれません 充実野菜 11/11/17(木) 14:57 質問[未読]
【70456】Re:7機でのBATがうまく動いてくれません 充実野菜 11/11/17(木) 17:42 質問[未読]
【70461】Re:7機でのBATがうまく動いてくれません kumatti 11/11/18(金) 8:37 回答[未読]
【70469】Re:7機でのBATがうまく動いてくれません 充実野菜 11/11/18(金) 17:16 質問[未読]
【70525】Re:7機でのBATがうまく動いてくれません kumatti 11/11/25(金) 9:07 発言[未読]
【70597】Re:7機でのBATがうまく動いてくれません 充実野菜 11/12/5(月) 19:16 質問[未読]

【70454】7機でのBATがうまく動いてくれません
質問  充実野菜  - 11/11/17(木) 14:57 -

引用なし
パスワード
   こんにちは よろしくお願いいたします


▼【70439】アドレスバー非表示他でエクスプローラを開きたい
tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=70439;id=excel
関連です

7機でのBATがうまく動いてくれません

動作は、
ネットワークの接続/ローカルエリア接続
インターネット プロトコル(TCP/IP)
静的ネットワーク(ip固定 DHCP無し wins無し)
の設定をしたいと思っています


XP機 XP_P2P.bat
netsh interface ip set address name = "ローカル エリア接続" source = static addr = 192.168.0.10 mask = 255.255.255.0
netsh interface ip set dns name = "ローカル エリア接続" source = static addr = none
netsh interface ip set wins name = "ローカル エリア接続" source = static addr = none
は動きますが


7機 7_P2P.bat
netsh interface ip set address name = "ローカル エリア接続" source = static addr = 192.168.0.11 mask = 255.255.255.0
netsh interface ip set dns name = "ローカル エリア接続" source = static addr = none
netsh interface ip set wins name = "ローカル エリア接続" source = static addr = none
一瞬 DOS画面は開くのですが、直ぐに閉じてしまい
インターネット プロトコル(TCP/IP)
のプロパティを見ても

IP アドレスを自動的に取得する(O)
のままとなっています

どのように記述すればよいのでしょうか
アドバイスよろしくお願いいたします

【70456】Re:7機でのBATがうまく動いてくれません
質問  充実野菜  - 11/11/17(木) 17:42 -

引用なし
パスワード
   バッチファイルの実行は
右クリック/管理者として実行
すれば動作させることが出来ました

セキュリティ上から出来るかどうかわからないのですが
エクセルのコードから
バッチファイルを管理者権限で実行のダイアログを呼び出すことが出来るでしょうか

闇雲に実行させるわけではないので可能のような気がしているのですが
ググってみましたがヒットすることが出来ませんでした

アドバイスよろしくお願いいたします

【70461】Re:7機でのBATがうまく動いてくれません
回答  kumatti  - 11/11/18(金) 8:37 -

引用なし
パスワード
   ▼充実野菜 さん:
権限昇格させてから実行させればいいのでは。
Sub hoge()
  CreateObject("Shell.Application").ShellExecute "excel.exe", """" & ThisWorkbook.FullName & """", vbNullString, "runas", 1
  ThisWorkbook.Saved = True
  Application.Quit
End Sub

【70469】Re:7機でのBATがうまく動いてくれません
質問  充実野菜  - 11/11/18(金) 17:16 -

引用なし
パスワード
   kumatti さん ありがとうございます

ご提示頂いたコードで
エクセルを管理者権限で起動させることが出来たみたいです・・・
が、良くわかりません

やりたい作業は
エクセルシート上のボタンで
Private Sub CommandButton5_Click()
  Dim p As String
  Dim myID   
  ChDir ("C:\")  
  p = CreateObject("Wscript.Shell").SpecialFolders("desktop") & "\7_IP.bat"
  myID = Shell(p, vbNormalFocus)
End Sub
を管理者権限で実行
その後の確認ダイアログは、使用者が手動で押す
です


CreateObject("Shell.Application")、"runas",

bat
で検索してみましたが、うまく見つけることが出来ませんでした

下記、アドバイス頂けると嬉しいです

Q1
ご提示頂いたコードで
エクセルexeが昇格していれば、そのなかのマクロも管理者権限で実行できるということなのでしょうか
起動したエクセルをどうすれば昇格できるかわからなかったので試すことが出来ませんでした


Q2
  p = CreateObject("Wscript.Shell").SpecialFolders("desktop") & "\7_IP.bat"
  myID = Shell(p, vbNormalFocus)

  CreateObject("Shell.Application").ShellExecute "excel.exe", """" & ThisWorkbook.FullName & """", vbNullString, "runas", 1
スタイルに記述することは可能なのでしょうか

"runas"、BATで検索してみましたが、記載例を見つけることが出来ませんでした


よろしくお願いいたします

【70525】Re:7機でのBATがうまく動いてくれません
発言  kumatti  - 11/11/25(金) 9:07 -

引用なし
パスワード
   セルなど永続的な領域にフラグを保持して、
そこで判定とか。

Option Explicit

Private Sub Workbook_Open()
  If CBool(Range("A1").Value) Then
    '//何か処理
    Debug.Print "ok"
  End If
End Sub

Sub hoge()
  Range("A1").Value = -1 'フラグ有効
  ThisWorkbook.Save
  CreateObject("Shell.Application").ShellExecute "excel.exe", """" & ThisWorkbook.FullName & """", vbNullString, "runas", 1
  Application.Quit
End Sub

Sub hoge2()
  Range("A1").Value = 0 'フラグ無効
End Sub

【70597】Re:7機でのBATがうまく動いてくれません
質問  充実野菜  - 11/12/5(月) 19:16 -

引用なし
パスワード
   kumatti さん 書込みありがとうございます

お尋ねしたい項目は多々有るのですが
目前の対応で手いっぱいです

関連
▼【70596】セルの背景色2003,2010 充実野菜

ちょっと時間がかかってしまうと思いますが
追Q 書き込み時 お手すきの時に アドバイス頂けると嬉しいです

よろしくお願いいたします

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