[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/06/01(Fri) 21:06
投稿者名:sato
Eメール:
URL :
タイトル:
Windowsのユーザ環境変数の値を変更する方法
はじめまして、こんにちは。
現在、excelで取得した値をteratermというtelnetクライアントソフトの
マクロ渡すためにWindowsのユーザ環境変数を設定して、値を渡すことを
考えています。

環境変数の取得にはEnviron関数が用いられますが、excelのセル(activecell)上で
取得した値をユーザ環境変数へ設定する場合はどのようにしたらいいのでしょうか。
現在Windows上でユーザ環境変数「Config」を設定し、値には「aaa」が入っています。

ちなみにこちらの質問は「EXCEL Q&A さろん」で既に質問しており、こちらの掲示板を
教えていただきました。あちらの掲示板では魔界の仮面弁士さんに無断でコードを
使用させていただいており、申し訳ありません。
(あちらの質問はCLOSEさせていただいております。)
http://excelfactory.net/excelboard/excelvba/excel.cgi?mode=all&namber=97838&rev=0

どうぞよろしくお願いします。

投稿時間:2007/06/01(Fri) 23:25
投稿者名:るしぇ
Eメール:
URL :
タイトル:
Re: Windowsのユーザ環境変数の値を変更する方法
で、質問は何ですか?

>取得した値をユーザ環境変数へ設定する場合はどのようにしたらいいのでしょうか。
既に幾つかのサンプルコードが示されており、
今はそれぞれの書込みの内容を検証し、自分の
環境で実行して検証する段階のように思います。

質問しなければいけない内容があるのですか?

投稿時間:2007/06/02(Sat) 00:17
投稿者名:sato
Eメール:
URL :
タイトル:
Re: Windowsのユーザ環境変数の値を変更する方法
るしぇさん
レスありがとうございます。また、言葉足らずですみません。
魔界の仮面弁士さんのコードを引用させていただくと

 Dim userName As String
 
 With GetObject("winmgmts:\\.\root\cimv2").Get("Win32_Environment").SpawnInstance_
  .Name = "Config"
  .VariableValue = "bbb"
  .userName = userName
 .Put_
 End With

.Put_の部分でエラーとなります。
また、ユーザ環境変数「Config」値「aaa」にactivecellの値を代入したい場合は上記の
ような記述でよろしいのでしょうか。

投稿時間:2007/06/02(Sat) 16:55
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^2: Windowsのユーザ環境変数の値を変更する方法
> .Put_の部分でエラーとなります。

Windows のユーザ アカウントを指定していない(空っぽの状態)だからでは?

>  Dim userName As String
(中略)
>   .userName = userName
>    .Put_

投稿時間:2007/06/02(Sat) 21:25
投稿者名:sato
Eメール:
URL :
タイトル:
Re^3: Windowsのユーザ環境変数の値を変更する方法
魔界の仮面弁士さん、返信ありがとうございます。また魔界の仮面弁士に無断で
コードを使用させていただいており、申し訳ございません。

■.Put_の部分でエラーに関して

>Windows のユーザ アカウントを指定していない(空っぽの状態)だからでは?

現在、"Owner(パスワード無)"というコンピュータの管理者権限で実行して
いるのですが、そのままではまずいということでしょうか。

■設定したユーザ環境変数2個を恒常的に利用する場合について
ユーザ環境変数「Config1(値:aaa)」「Config2(値:bbb)」

Dim userName As String
  'userName = Environ("UserName")
  userName = "Administrator"
  With GetObject("winmgmts:\\.\root\cimv2").Get("Win32_Environment").SpawnInstance_
   .Name = "Test"
   .VariableValue = "abcd"
   .userName = userName
   .Put_
End With

こちらのコードに関して、実行の際にTest(値:abcd)というユーザ環境変数を作成する
というコードと解釈しておりますが、既に設定しているユーザ環境変数を呼び出して、
値を上書きするといったことをするにはどのようにしたらいいでしょうか。
何かヒントありましたら、教えてください。よろしくお願いします。

投稿時間:2007/06/04(Mon) 10:10
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^4: Windowsのユーザ環境変数の値を変更する方法
> 魔界の仮面弁士さん、返信ありがとうございます。また
> 魔界の仮面弁士に無断で
# 誤記だと承知の上で、2 行を引用してみたり。

> 現在、"Owner(パスワード無)"というコンピュータの管理者権限で実行して
> いるのですが、そのままではまずいということでしょうか。
まずは、『パスワードを付けてみたら、どうなるか』、
『Administrator でログオンし、Administrator に対して設定する場合はどうなるか』
などを試すところから始めてみてはいかがでしょう。

> 値を上書きする
Put_ のままで大丈夫ですよ。