none
Vistaで「Debug.WriteLine」を実行すると出力ウィンドウに出力される RRS feed

  • 質問

  • こんにちは。

    Visual Basic 2005 Express Edition にSP1とVista用の更新プログラム(ベータ)をあててWindows Vistaで使用しています。

    XPで使用すると、「Debug.WriteLine」の出力先はイミディエイトウィンドウだったのですが、Vistaだと出力先は出力ウィンドウになります。

    そういうものなのでしょうか? また、どうすれば出力先をイミディエイトウィンドウに戻すことができるでしょうか?

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

    2007年2月13日 12:45

回答

  • おおっ?

     

    調べてみたら、VB2005でもExpress Editionの[オプション]ダイアログに[デバッグ]ノードはありませんでした。もちろん2008にもありません。

     

    知らなかったなー。

     

    Debug.Print/WriteLineの出力先初期値は、VB2005Expressでは[イミディエイト]ウィンドウ、VB2008Expressでは[出力]ウィンドウのようです。

     

    ---

     

    変更する方法としては、少々面倒ですが「設定のインポートとエクスポート」を使う方法があります。
    以下、手順。

    1. メニューから[ツール]-[設定のインポートとエクスポート]を選択し、「設定のインポートとエクスポートウィザード」ダイアログを表示させます。
    2. [選択された環境設定をエクスポート]オプションボタンを選択し、[次へ]をクリックします。
    3. [エクスポートする設定を指定してください]ツリーで、一度[すべての設定]のチェックを外してから[すべての設定]-[オプション]-[デバッグ]だけにチェックを付け、[次へ]をクリックします。
    4. 設定ファイルの名前、格納ディレクトリは任意で構いません。で、[完了]をクリックします。
    5. 4.で保存した設定ファイルをテキストエディタで開きます。
    6. <UserSettings>-<Category name="Debugger"…>-<PropertyValue name="OutputToImmediate">の値を変更します。
      Debug.Printの出力先を[イミディエイト]ウィンドウにする場合は1、[出力]ウィンドウにする場合は0です。
    7. 変更した設定ファイルを保存します。
    8. 再度VB2008Expressのメニューから[ツール]-[設定のインポートとエクスポート]を選択し、「設定のインポートとエクスポートウィザード」ダイアログを表示させます。
    9. [選択された環境設定をインポート]オプションボタンを選択し、[次へ]をクリックします。
    10. 現在の設定の保存はしてもしなくても構いませんが、ここでは説明が長くなるので[いいえ、現在の設定を上書きして新しい設定をインポートします]を選択し、[次へ]をクリックします。
    11. [インポートする設定コレクションを指定してください]ツリーから、[ユーザーの設定]-[(4.で保存した設定ファイル名)]を(見当たらない場合は[参照]をクリックして、7.で保存したファイルを)選択し、[次へ]をクリックします。
    12. [インポートする設定を指定してください]ツリーで[すべての設定]-[オプション]-[デバッグ]にチェックされていることを確認(チェックされていない場合はチェック)し、[完了]をクリックします。

    以上で、Debug.Print/WriteLineの出力先を[イミディエイト]/[出力]ウィンドウに切り替えられると思います。

     

    余計な設定まで変更したくない場合は、6.の段階で「OutputToImmediate」以外の<PropertyValue>を全部削除してしまえばOKですよ。

    2008年9月8日 17:14
  • わたしの環境はVistaでVB2005Expressで,SP1と更新プログラムはあてていませんが,イミディエイトウィンドウに出力されています。

    VB.NETのときには出力ウィンドウをイミディエイトウィンドウにリダイレクトするというような設定があったように思うのですが,VB2005ExpressEditionには見当たりませんでした。

    なお,次のコードをForm.Loadなどに追加すればイミディエイトウィンドウに出力できるようになりませんか?

    お試しください。

    Debug.Listeners.Add(New DefaultTraceListener)

    2007年2月13日 14:27

すべての返信

  • わたしの環境はVistaでVB2005Expressで,SP1と更新プログラムはあてていませんが,イミディエイトウィンドウに出力されています。

    VB.NETのときには出力ウィンドウをイミディエイトウィンドウにリダイレクトするというような設定があったように思うのですが,VB2005ExpressEditionには見当たりませんでした。

    なお,次のコードをForm.Loadなどに追加すればイミディエイトウィンドウに出力できるようになりませんか?

    お試しください。

    Debug.Listeners.Add(New DefaultTraceListener)

    2007年2月13日 14:27
  • YAS.sさん、回答ありがとうございます。

    教えていただいたコードをフォームのLoadイベントで実行してみました。

    すると、Debug.WriteLineメソッドの実行結果が、出力ウィンドウに二重に表示されるようになりました。

    デバッグ目的の出力なので、出力ウィンドウに表示されるだけでもありがたいのですが、でも何だか気になります。

    TraceListenerCollection というのは今回教えていただいてはじめて知りました。

    このコレクションに「イミディエイトウィンドウ」を表すTraceListenerを追加すればよいということなのですね。

    もう少し調べてみます。

    2007年2月15日 0:02
  • こんばんは。

    チウさんと同じ問題で困っています。

    こちらは、まったくの初心者でテキストを見ながら勉強していますが、何度やってもDebug.Printがイミディエイトウィンドウで確認できません。

    同じくExpress Editionを使っていますが、もし解決方法を発見されていたらぜひ教えてください。

     

    2008年9月7日 14:18
  • 2005 Pro ですが、

    「オプション」「デバッグ」「全般」に

    「出力ウィンドウの文字をすべてイミディエイト ウィンドウにリダイレクトする」チェックボックス

    というのがあり、既定でチェック済みです。

    http://msdn.microsoft.com/ja-jp/library/85yzd16c(VS.80).aspx

     

    Expressではありませんか?
    2008年9月8日 6:41
  •  まどか さんからの引用

    「オプション」「デバッグ」「全般」に

    「出力ウィンドウの文字をすべてイミディエイト ウィンドウにリダイレクトする」チェックボックス

    というのがあり、既定でチェック済みです。

    http://msdn.microsoft.com/ja-jp/library/85yzd16c(VS.80).aspx

     

    Expressではありませんか?

    Visual Basic 2008 Expressで確認しましたが、デバッグのノードすらないようです。(すべての設定を表示にはしてあります)

    どうやったら、変更できるかは分かりませんが。
    2008年9月8日 14:00
    モデレータ
  • おおっ?

     

    調べてみたら、VB2005でもExpress Editionの[オプション]ダイアログに[デバッグ]ノードはありませんでした。もちろん2008にもありません。

     

    知らなかったなー。

     

    Debug.Print/WriteLineの出力先初期値は、VB2005Expressでは[イミディエイト]ウィンドウ、VB2008Expressでは[出力]ウィンドウのようです。

     

    ---

     

    変更する方法としては、少々面倒ですが「設定のインポートとエクスポート」を使う方法があります。
    以下、手順。

    1. メニューから[ツール]-[設定のインポートとエクスポート]を選択し、「設定のインポートとエクスポートウィザード」ダイアログを表示させます。
    2. [選択された環境設定をエクスポート]オプションボタンを選択し、[次へ]をクリックします。
    3. [エクスポートする設定を指定してください]ツリーで、一度[すべての設定]のチェックを外してから[すべての設定]-[オプション]-[デバッグ]だけにチェックを付け、[次へ]をクリックします。
    4. 設定ファイルの名前、格納ディレクトリは任意で構いません。で、[完了]をクリックします。
    5. 4.で保存した設定ファイルをテキストエディタで開きます。
    6. <UserSettings>-<Category name="Debugger"…>-<PropertyValue name="OutputToImmediate">の値を変更します。
      Debug.Printの出力先を[イミディエイト]ウィンドウにする場合は1、[出力]ウィンドウにする場合は0です。
    7. 変更した設定ファイルを保存します。
    8. 再度VB2008Expressのメニューから[ツール]-[設定のインポートとエクスポート]を選択し、「設定のインポートとエクスポートウィザード」ダイアログを表示させます。
    9. [選択された環境設定をインポート]オプションボタンを選択し、[次へ]をクリックします。
    10. 現在の設定の保存はしてもしなくても構いませんが、ここでは説明が長くなるので[いいえ、現在の設定を上書きして新しい設定をインポートします]を選択し、[次へ]をクリックします。
    11. [インポートする設定コレクションを指定してください]ツリーから、[ユーザーの設定]-[(4.で保存した設定ファイル名)]を(見当たらない場合は[参照]をクリックして、7.で保存したファイルを)選択し、[次へ]をクリックします。
    12. [インポートする設定を指定してください]ツリーで[すべての設定]-[オプション]-[デバッグ]にチェックされていることを確認(チェックされていない場合はチェック)し、[完了]をクリックします。

    以上で、Debug.Print/WriteLineの出力先を[イミディエイト]/[出力]ウィンドウに切り替えられると思います。

     

    余計な設定まで変更したくない場合は、6.の段階で「OutputToImmediate」以外の<PropertyValue>を全部削除してしまえばOKですよ。

    2008年9月8日 17:14
  • こんにちは。中川俊輔 です。

     

    皆様、回答ありがとうございます。

     

    チウさん、フォーラムのご利用ありがとうございます。

    その後いかがでしょうか?

    勝手ながら、有用な情報と思われる回答へ回答済みチェックをつけさせていただきました。

     

    回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
    有用な情報と思われる回答があった場合は、なるべく回答済みボタンを押してチェックを付けてください。

    チウさんはチェックを解除することもできますので、ご確認ください。

     

    それでは!

    2008年9月22日 7:13